diff options
-rw-r--r-- | libs/binder/OS_android.cpp | 17 | ||||
-rw-r--r-- | libs/binder/ndk/Android.bp | 1 | ||||
-rw-r--r-- | libs/binder/rust/src/binder.rs | 2 | ||||
-rw-r--r-- | libs/binder/rust/src/lib.rs | 2 | ||||
-rw-r--r-- | libs/binder/rust/src/native.rs | 22 | ||||
-rw-r--r-- | libs/binder/rust/src/proxy.rs | 2 | ||||
-rw-r--r-- | libs/binder/trusty/rust/rules.mk | 37 | ||||
-rw-r--r-- | libs/gui/include/gui/view/Surface.h | 4 | ||||
-rw-r--r-- | libs/gui/view/Surface.cpp | 1 | ||||
-rw-r--r-- | libs/ultrahdr/Android.bp | 9 | ||||
-rw-r--r-- | libs/ultrahdr/adobe-hdr-gain-map-license/Android.bp | 2 | ||||
-rw-r--r-- | libs/ultrahdr/fuzzer/Android.bp | 9 | ||||
-rw-r--r-- | libs/ultrahdr/tests/Android.bp | 3 |
13 files changed, 91 insertions, 20 deletions
diff --git a/libs/binder/OS_android.cpp b/libs/binder/OS_android.cpp index 155588d7f5..1eace857fb 100644 --- a/libs/binder/OS_android.cpp +++ b/libs/binder/OS_android.cpp @@ -20,7 +20,8 @@ #include <cutils/trace.h> #include <utils/misc.h> -namespace android::binder::os { +namespace android::binder { +namespace os { uint64_t GetThreadId() { #ifdef BINDER_RPC_SINGLE_THREADED @@ -43,4 +44,16 @@ void trace_end(uint64_t tag) { atrace_end(tag); } -} // namespace android::binder::os +} // namespace os + +// Legacy trace symbol. To be removed once all of downstream rebuilds. +void atrace_begin(uint64_t tag, const char* name) { + os::trace_begin(tag, name); +} + +// Legacy trace symbol. To be removed once all of downstream rebuilds. +void atrace_end(uint64_t tag) { + os::trace_end(tag); +} + +} // namespace android::binder diff --git a/libs/binder/ndk/Android.bp b/libs/binder/ndk/Android.bp index 47b9f5868d..ccf3ce891f 100644 --- a/libs/binder/ndk/Android.bp +++ b/libs/binder/ndk/Android.bp @@ -139,6 +139,7 @@ cc_library { "performance*", "portability*", ], + afdo: true, } cc_library_headers { diff --git a/libs/binder/rust/src/binder.rs b/libs/binder/rust/src/binder.rs index 6d122c5388..e34d31e58f 100644 --- a/libs/binder/rust/src/binder.rs +++ b/libs/binder/rust/src/binder.rs @@ -30,8 +30,8 @@ use std::fmt; use std::io::Write; use std::marker::PhantomData; use std::ops::Deref; +use std::os::fd::AsRawFd; use std::os::raw::c_char; -use std::os::unix::io::AsRawFd; use std::ptr; /// Binder action to perform. diff --git a/libs/binder/rust/src/lib.rs b/libs/binder/rust/src/lib.rs index ed870b6d8c..7f9348d913 100644 --- a/libs/binder/rust/src/lib.rs +++ b/libs/binder/rust/src/lib.rs @@ -100,6 +100,7 @@ mod error; mod native; mod parcel; mod proxy; +#[cfg(not(target_os = "trusty"))] mod state; use binder_ndk_sys as sys; @@ -116,6 +117,7 @@ pub use proxy::{ get_declared_instances, get_interface, get_service, is_declared, wait_for_interface, wait_for_service, DeathRecipient, SpIBinder, WpIBinder, }; +#[cfg(not(target_os = "trusty"))] pub use state::{ProcessState, ThreadState}; /// Binder result containing a [`Status`] on error. diff --git a/libs/binder/rust/src/native.rs b/libs/binder/rust/src/native.rs index b250012801..8ae010ea88 100644 --- a/libs/binder/rust/src/native.rs +++ b/libs/binder/rust/src/native.rs @@ -24,13 +24,10 @@ use crate::sys; use std::convert::TryFrom; use std::ffi::{c_void, CStr, CString}; -use std::fs::File; use std::io::Write; use std::mem::ManuallyDrop; use std::ops::Deref; use std::os::raw::c_char; -use std::os::unix::io::FromRawFd; -use std::slice; use std::sync::Mutex; /// Rust wrapper around Binder remotable objects. @@ -331,6 +328,7 @@ impl<T: Remotable> InterfaceClassMethods for Binder<T> { /// contains a `T` pointer in its user data. fd should be a non-owned file /// descriptor, and args must be an array of null-terminated string /// pointers with length num_args. + #[cfg(not(target_os = "trusty"))] unsafe extern "C" fn on_dump( binder: *mut sys::AIBinder, fd: i32, @@ -340,9 +338,10 @@ impl<T: Remotable> InterfaceClassMethods for Binder<T> { if fd < 0 { return StatusCode::UNEXPECTED_NULL as status_t; } + use std::os::fd::FromRawFd; // Safety: Our caller promised that fd is a file descriptor. We don't // own this file descriptor, so we need to be careful not to drop it. - let mut file = unsafe { ManuallyDrop::new(File::from_raw_fd(fd)) }; + let mut file = unsafe { ManuallyDrop::new(std::fs::File::from_raw_fd(fd)) }; if args.is_null() && num_args != 0 { return StatusCode::UNEXPECTED_NULL as status_t; @@ -354,7 +353,7 @@ impl<T: Remotable> InterfaceClassMethods for Binder<T> { // Safety: Our caller promised that `args` is an array of // null-terminated string pointers with length `num_args`. unsafe { - slice::from_raw_parts(args, num_args as usize) + std::slice::from_raw_parts(args, num_args as usize) .iter() .map(|s| CStr::from_ptr(*s)) .collect() @@ -374,6 +373,19 @@ impl<T: Remotable> InterfaceClassMethods for Binder<T> { Err(e) => e as status_t, } } + + /// Called to handle the `dump` transaction. + #[cfg(target_os = "trusty")] + unsafe extern "C" fn on_dump( + _binder: *mut sys::AIBinder, + _fd: i32, + _args: *mut *const c_char, + _num_args: u32, + ) -> status_t { + // This operation is not supported on Trusty right now + // because we do not have a uniform way of writing to handles + StatusCode::INVALID_OPERATION as status_t + } } impl<T: Remotable> Drop for Binder<T> { diff --git a/libs/binder/rust/src/proxy.rs b/libs/binder/rust/src/proxy.rs index dad3379bdc..7434e9ddbd 100644 --- a/libs/binder/rust/src/proxy.rs +++ b/libs/binder/rust/src/proxy.rs @@ -32,8 +32,8 @@ use std::convert::TryInto; use std::ffi::{c_void, CStr, CString}; use std::fmt; use std::mem; +use std::os::fd::AsRawFd; use std::os::raw::c_char; -use std::os::unix::io::AsRawFd; use std::ptr; use std::sync::Arc; diff --git a/libs/binder/trusty/rust/rules.mk b/libs/binder/trusty/rust/rules.mk new file mode 100644 index 0000000000..be90df3147 --- /dev/null +++ b/libs/binder/trusty/rust/rules.mk @@ -0,0 +1,37 @@ +# Copyright (C) 2023 The Android Open Source Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +LOCAL_DIR := $(GET_LOCAL_DIR) +LIBBINDER_DIR := $(LOCAL_DIR)/../.. + +MODULE := $(LOCAL_DIR) + +MODULE_SRCS := $(LIBBINDER_DIR)/rust/src/lib.rs + +MODULE_CRATE_NAME := binder + +MODULE_LIBRARY_DEPS += \ + $(LIBBINDER_DIR)/trusty \ + $(LIBBINDER_DIR)/trusty/ndk \ + $(LIBBINDER_DIR)/trusty/rust/binder_ndk_sys \ + external/rust/crates/downcast-rs \ + trusty/user/base/lib/trusty-sys \ + +# Trusty does not have `ProcessState`, so there are a few +# doc links in `IBinder` that are still broken. +MODULE_RUSTFLAGS += \ + --allow rustdoc::broken-intra-doc-links \ + +include make/library.mk diff --git a/libs/gui/include/gui/view/Surface.h b/libs/gui/include/gui/view/Surface.h index f7dcbc698d..b7aba2b9dc 100644 --- a/libs/gui/include/gui/view/Surface.h +++ b/libs/gui/include/gui/view/Surface.h @@ -24,9 +24,9 @@ #include <binder/IBinder.h> #include <binder/Parcelable.h> -namespace android { +#include <gui/IGraphicBufferProducer.h> -class IGraphicBufferProducer; +namespace android { namespace view { diff --git a/libs/gui/view/Surface.cpp b/libs/gui/view/Surface.cpp index 198908d334..7c15e7cf92 100644 --- a/libs/gui/view/Surface.cpp +++ b/libs/gui/view/Surface.cpp @@ -20,7 +20,6 @@ #include <android/binder_parcel.h> #include <android/native_window.h> #include <binder/Parcel.h> -#include <gui/IGraphicBufferProducer.h> #include <gui/Surface.h> #include <gui/view/Surface.h> #include <system/window.h> diff --git a/libs/ultrahdr/Android.bp b/libs/ultrahdr/Android.bp index 9deba01dc8..eda5ea4578 100644 --- a/libs/ultrahdr/Android.bp +++ b/libs/ultrahdr/Android.bp @@ -21,7 +21,8 @@ package { } cc_library { - name: "libultrahdr", + name: "libultrahdr-deprecated", + enabled: false, host_supported: true, vendor_available: true, export_include_dirs: ["include"], @@ -46,7 +47,8 @@ cc_library { } cc_library { - name: "libjpegencoder", + name: "libjpegencoder-deprecated", + enabled: false, host_supported: true, vendor_available: true, @@ -64,7 +66,8 @@ cc_library { } cc_library { - name: "libjpegdecoder", + name: "libjpegdecoder-deprecated", + enabled: false, host_supported: true, vendor_available: true, diff --git a/libs/ultrahdr/adobe-hdr-gain-map-license/Android.bp b/libs/ultrahdr/adobe-hdr-gain-map-license/Android.bp index e999a8bd28..2fa361f0b7 100644 --- a/libs/ultrahdr/adobe-hdr-gain-map-license/Android.bp +++ b/libs/ultrahdr/adobe-hdr-gain-map-license/Android.bp @@ -13,7 +13,7 @@ // limitations under the License. license { - name: "adobe_hdr_gain_map_license", + name: "adobe_hdr_gain_map_license-deprecated", license_kinds: ["legacy_by_exception_only"], license_text: ["NOTICE"], } diff --git a/libs/ultrahdr/fuzzer/Android.bp b/libs/ultrahdr/fuzzer/Android.bp index 6c0a2f577c..8d9132fd4d 100644 --- a/libs/ultrahdr/fuzzer/Android.bp +++ b/libs/ultrahdr/fuzzer/Android.bp @@ -22,7 +22,8 @@ package { } cc_defaults { - name: "ultrahdr_fuzzer_defaults", + name: "ultrahdr_fuzzer_defaults-deprecated", + enabled: false, host_supported: true, shared_libs: [ "libimage_io", @@ -53,7 +54,8 @@ cc_defaults { } cc_fuzz { - name: "ultrahdr_enc_fuzzer", + name: "ultrahdr_enc_fuzzer-deprecated", + enabled: false, defaults: ["ultrahdr_fuzzer_defaults"], srcs: [ "ultrahdr_enc_fuzzer.cpp", @@ -61,7 +63,8 @@ cc_fuzz { } cc_fuzz { - name: "ultrahdr_dec_fuzzer", + name: "ultrahdr_dec_fuzzer-deprecated", + enabled: false, defaults: ["ultrahdr_fuzzer_defaults"], srcs: [ "ultrahdr_dec_fuzzer.cpp", diff --git a/libs/ultrahdr/tests/Android.bp b/libs/ultrahdr/tests/Android.bp index bda804ae31..00cc797591 100644 --- a/libs/ultrahdr/tests/Android.bp +++ b/libs/ultrahdr/tests/Android.bp @@ -22,7 +22,8 @@ package { } cc_test { - name: "ultrahdr_unit_test", + name: "ultrahdr_unit_test-deprecated", + enabled: false, test_suites: ["device-tests"], srcs: [ "gainmapmath_test.cpp", |