Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d9858770 authored by Orlando Arbildo's avatar Orlando Arbildo Committed by Automerger Merge Worker
Browse files

Merge "TrustyRpc: Adding a create session with initialization callback...

Merge "TrustyRpc: Adding a create session with initialization callback function" am: e2c515ef am: 866d2f3c am: 12511760 am: 2decd1ae am: d376c6a4

Original change: https://android-review.googlesource.com/c/platform/frameworks/native/+/2229484



Change-Id: I990e6c51e07267a8c1980c0fc0c79a0ea6fbc71f
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents 21cf0471 d376c6a4
Loading
Loading
Loading
Loading
+10 −1
Original line number Original line Diff line number Diff line
@@ -26,8 +26,12 @@ namespace android {


using android::base::unique_fd;
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());
    auto session = RpcSession::make(RpcTransportCtxFactoryTipcAndroid::make());
    // using the callback to initialize the session
    sessionInitializer(session);
    auto request = [=] {
    auto request = [=] {
        int tipcFd = tipc_connect(device, port);
        int tipcFd = tipc_connect(device, port);
        if (tipcFd < 0) {
        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();
        LOG(ERROR) << "Failed to set up Trusty client. Error: " << statusToString(status).c_str();
        return nullptr;
        return nullptr;
    }
    }
    return session;
}

sp<IBinder> RpcTrustyConnect(const char* device, const char* port) {
    auto session = RpcTrustyConnectWithSessionInitializer(device, port, [](auto) {});
    return session->getRootObject();
    return session->getRootObject();
}
}


+4 −0
Original line number Original line Diff line number Diff line
@@ -22,4 +22,8 @@ namespace android {


sp<IBinder> RpcTrustyConnect(const char* device, const char* port);
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
} // namespace android