From 61366d4bd1a6f797a1274fc989fd12b525097913 Mon Sep 17 00:00:00 2001 From: Stephen Crane Date: Thu, 20 Jan 2022 17:45:34 -0800 Subject: [binder] Move Rust ping_binder() to external API The ping_binder() API should be publicly usable on Rust Binder objects. This change moves this method from the IBinderInternal trait to the IBinder trait for more general use. Test: atest rustBinderTest Bug: 195455757 Change-Id: I1751d9d69ee96197a8f2b577d0150b42445a7d5f --- libs/binder/rust/src/binder.rs | 6 +++--- libs/binder/rust/src/proxy.rs | 22 +++++++++++----------- 2 files changed, 14 insertions(+), 14 deletions(-) (limited to 'libs') diff --git a/libs/binder/rust/src/binder.rs b/libs/binder/rust/src/binder.rs index 7895a7293d..467e51e276 100644 --- a/libs/binder/rust/src/binder.rs +++ b/libs/binder/rust/src/binder.rs @@ -192,9 +192,6 @@ pub trait IBinderInternal: IBinder { /// Is this object still alive? fn is_binder_alive(&self) -> bool; - /// Send a ping transaction to this object - fn ping_binder(&mut self) -> Result<()>; - /// Indicate that the service intends to receive caller security contexts. #[cfg(not(android_vndk))] fn set_requesting_sid(&mut self, enable: bool); @@ -270,6 +267,9 @@ pub trait IBinder { /// The recipient will no longer be called if this object /// dies. fn unlink_to_death(&mut self, recipient: &mut DeathRecipient) -> Result<()>; + + /// Send a ping transaction to this object + fn ping_binder(&mut self) -> Result<()>; } /// Opaque reference to the type of a Binder interface. diff --git a/libs/binder/rust/src/proxy.rs b/libs/binder/rust/src/proxy.rs index 760d862c53..12bfde755e 100644 --- a/libs/binder/rust/src/proxy.rs +++ b/libs/binder/rust/src/proxy.rs @@ -312,17 +312,6 @@ impl> IBinderInternal for T { } } - fn ping_binder(&mut self) -> Result<()> { - let status = unsafe { - // Safety: `SpIBinder` guarantees that `self` always contains a - // valid pointer to an `AIBinder`. - // - // This call does not affect ownership of its pointer parameter. - sys::AIBinder_ping(self.as_native_mut()) - }; - status_result(status) - } - #[cfg(not(android_vndk))] fn set_requesting_sid(&mut self, enable: bool) { unsafe { sys::AIBinder_setRequestingSid(self.as_native_mut(), enable) }; @@ -412,6 +401,17 @@ impl> IBinder for T { ) }) } + + fn ping_binder(&mut self) -> Result<()> { + let status = unsafe { + // Safety: `SpIBinder` guarantees that `self` always contains a + // valid pointer to an `AIBinder`. + // + // This call does not affect ownership of its pointer parameter. + sys::AIBinder_ping(self.as_native_mut()) + }; + status_result(status) + } } impl Serialize for SpIBinder { -- cgit v1.2.3-59-g8ed1b