summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Orlando Arbildo <oarbildo@google.com> 2022-09-24 16:57:48 +0000
committer Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> 2022-09-24 16:57:48 +0000
commitd9858770607f5fd43820cb69f4b1382275a691e4 (patch)
tree47c8867cc881cdcab421175ab0747cb3d6c41161
parent21cf047138dc43d4bb939ffd83e7cfc2c3cfab00 (diff)
parentd376c6a46d70e9db083baa2e5d2bd7f5ff53413f (diff)
Merge "TrustyRpc: Adding a create session with initialization callback function" am: e2c515ef7b am: 866d2f3c33 am: 12511760cb am: 2decd1ae01 am: d376c6a46d
Original change: https://android-review.googlesource.com/c/platform/frameworks/native/+/2229484 Change-Id: I990e6c51e07267a8c1980c0fc0c79a0ea6fbc71f Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r--libs/binder/RpcTrusty.cpp11
-rw-r--r--libs/binder/include_trusty/binder/RpcTrusty.h4
2 files changed, 14 insertions, 1 deletions
diff --git a/libs/binder/RpcTrusty.cpp b/libs/binder/RpcTrusty.cpp
index ea49eef676..3b53b05991 100644
--- a/libs/binder/RpcTrusty.cpp
+++ b/libs/binder/RpcTrusty.cpp
@@ -26,8 +26,12 @@ namespace android {
using android::base::unique_fd;
-sp<IBinder> RpcTrustyConnect(const char* device, const char* port) {
+sp<RpcSession> RpcTrustyConnectWithSessionInitializer(
+ const char* device, const char* port,
+ std::function<void(sp<RpcSession>&)> sessionInitializer) {
auto session = RpcSession::make(RpcTransportCtxFactoryTipcAndroid::make());
+ // using the callback to initialize the session
+ sessionInitializer(session);
auto request = [=] {
int tipcFd = tipc_connect(device, port);
if (tipcFd < 0) {
@@ -40,6 +44,11 @@ sp<IBinder> RpcTrustyConnect(const char* device, const char* port) {
LOG(ERROR) << "Failed to set up Trusty client. Error: " << statusToString(status).c_str();
return nullptr;
}
+ return session;
+}
+
+sp<IBinder> RpcTrustyConnect(const char* device, const char* port) {
+ auto session = RpcTrustyConnectWithSessionInitializer(device, port, [](auto) {});
return session->getRootObject();
}
diff --git a/libs/binder/include_trusty/binder/RpcTrusty.h b/libs/binder/include_trusty/binder/RpcTrusty.h
index f124e0c824..b034b9b65b 100644
--- a/libs/binder/include_trusty/binder/RpcTrusty.h
+++ b/libs/binder/include_trusty/binder/RpcTrusty.h
@@ -22,4 +22,8 @@ namespace android {
sp<IBinder> RpcTrustyConnect(const char* device, const char* port);
+sp<RpcSession> RpcTrustyConnectWithSessionInitializer(
+ const char* device, const char* port,
+ std::function<void(sp<RpcSession>&)> sessionInitializer);
+
} // namespace android