diff options
author | Matthew Sedam <matthewsedam@google.com> | 2023-12-11 20:31:15 +0000 |
---|---|---|
committer | Matthew Sedam <matthewsedam@google.com> | 2023-12-13 18:21:33 +0000 |
commit | 1e5aeb571ba45593e37ca17f58687f441f624920 (patch) | |
tree | 2db98ce6eec484e947b96e799476bee96d47a01d | |
parent | 3252a86ae42ebe07085dda71bf59f53883b59bc4 (diff) | |
download | chre-1e5aeb571ba45593e37ca17f58687f441f624920.tar.gz |
Add stubs for CHRE reliable messages to the HAL
This CL adds stubs for CHRE reliable messages to the CHRE HAL.
Bug: 312417087
Test: atest VtsAidlHalContextHubTargetTest
Test: Presubmits
Change-Id: I897488d2cce445260030da71bfbbea0f27ff2633
-rw-r--r-- | host/common/chre_aidl_hal_client.cc | 8 | ||||
-rw-r--r-- | host/common/include/chre_host/hal_client.h | 8 | ||||
-rw-r--r-- | host/hal_generic/aidl/generic_context_hub_aidl.cc | 10 | ||||
-rw-r--r-- | host/hal_generic/aidl/generic_context_hub_aidl.h | 3 | ||||
-rw-r--r-- | host/hal_generic/common/multi_client_context_hub_base.cc | 10 | ||||
-rw-r--r-- | host/hal_generic/common/multi_client_context_hub_base.h | 3 | ||||
-rw-r--r-- | host/test/hal_generic/common/hal_client_manager_test.cc | 8 |
7 files changed, 50 insertions, 0 deletions
diff --git a/host/common/chre_aidl_hal_client.cc b/host/common/chre_aidl_hal_client.cc index c4e2a380..a6f377c4 100644 --- a/host/common/chre_aidl_hal_client.cc +++ b/host/common/chre_aidl_hal_client.cc @@ -44,6 +44,7 @@ using ::aidl::android::hardware::contexthub::ContextHubInfo; using ::aidl::android::hardware::contexthub::ContextHubMessage; using ::aidl::android::hardware::contexthub::HostEndpointInfo; using ::aidl::android::hardware::contexthub::IContextHub; +using ::aidl::android::hardware::contexthub::MessageDeliveryStatus; using ::aidl::android::hardware::contexthub::NanoappBinary; using ::aidl::android::hardware::contexthub::NanoappInfo; using ::aidl::android::hardware::contexthub::NanSessionRequest; @@ -197,6 +198,13 @@ class ContextHubCallback : public BnContextHubCallback { return ScopedAStatus::ok(); } + ScopedAStatus handleMessageDeliveryStatus( + char16_t /* hostEndPointId */, + const MessageDeliveryStatus & /* messageDeliveryStatus */) override { + resetPromise(); + return ScopedAStatus::ok(); + } + ScopedAStatus getUuid(std::array<uint8_t, 16> *out_uuid) override { *out_uuid = kUuid; return ScopedAStatus::ok(); diff --git a/host/common/include/chre_host/hal_client.h b/host/common/include/chre_host/hal_client.h index 68611146..bc6db3bb 100644 --- a/host/common/include/chre_host/hal_client.h +++ b/host/common/include/chre_host/hal_client.h @@ -45,6 +45,7 @@ using ::aidl::android::hardware::contexthub::HostEndpointInfo; using ::aidl::android::hardware::contexthub::IContextHub; using ::aidl::android::hardware::contexthub::IContextHubCallback; using ::aidl::android::hardware::contexthub::IContextHubDefault; +using ::aidl::android::hardware::contexthub::MessageDeliveryStatus; using ::aidl::android::hardware::contexthub::NanoappBinary; using ::aidl::android::hardware::contexthub::NanoappInfo; using ::aidl::android::hardware::contexthub::NanSessionRequest; @@ -133,6 +134,13 @@ class HalClient { return mCallback->handleNanSessionRequest(request); } + ScopedAStatus handleMessageDeliveryStatus( + char16_t hostEndPointId, + const MessageDeliveryStatus &messageDeliveryStatus) override { + return mCallback->handleMessageDeliveryStatus(hostEndPointId, + messageDeliveryStatus); + } + ScopedAStatus getUuid(std::array<uint8_t, 16> *outUuid) override { return mCallback->getUuid(outUuid); } diff --git a/host/hal_generic/aidl/generic_context_hub_aidl.cc b/host/hal_generic/aidl/generic_context_hub_aidl.cc index 1f0a3506..16c5c3c7 100644 --- a/host/hal_generic/aidl/generic_context_hub_aidl.cc +++ b/host/hal_generic/aidl/generic_context_hub_aidl.cc @@ -125,6 +125,9 @@ ScopedAStatus ContextHub::getContextHubs( hub.supportedPermissions = kSupportedPermissions; + // TODO(b/312417087): Implement reliable message support + hub.supportsReliableMessages = false; + out_contextHubInfos->push_back(hub); } @@ -297,6 +300,13 @@ ScopedAStatus ContextHub::setTestMode(bool enable) { return enable ? enableTestMode() : disableTestMode(); } +ScopedAStatus ContextHub::sendMessageDeliveryStatusToHub( + int32_t /* contextHubId */, + const MessageDeliveryStatus & /* messageDeliveryStatus */) { + // TODO(b/312417087): Implement reliable message support + return ndk::ScopedAStatus::ok(); +} + ScopedAStatus ContextHub::onHostEndpointConnected( const HostEndpointInfo &in_info) { std::lock_guard<std::mutex> lock(mConnectedHostEndpointsMutex); diff --git a/host/hal_generic/aidl/generic_context_hub_aidl.h b/host/hal_generic/aidl/generic_context_hub_aidl.h index 9c12c16c..024cb1e3 100644 --- a/host/hal_generic/aidl/generic_context_hub_aidl.h +++ b/host/hal_generic/aidl/generic_context_hub_aidl.h @@ -79,6 +79,9 @@ class ContextHub : public BnContextHub, ::ndk::ScopedAStatus sendMessageToHub( int32_t contextHubId, const ContextHubMessage &message) override; ::ndk::ScopedAStatus setTestMode(bool enable) override; + ::ndk::ScopedAStatus sendMessageDeliveryStatusToHub( + int32_t contextHubId, + const MessageDeliveryStatus &messageDeliveryStatus) override; ::ndk::ScopedAStatus onHostEndpointConnected( const HostEndpointInfo &in_info) override; ::ndk::ScopedAStatus onHostEndpointDisconnected( diff --git a/host/hal_generic/common/multi_client_context_hub_base.cc b/host/hal_generic/common/multi_client_context_hub_base.cc index 289d78ce..0c257c36 100644 --- a/host/hal_generic/common/multi_client_context_hub_base.cc +++ b/host/hal_generic/common/multi_client_context_hub_base.cc @@ -411,6 +411,13 @@ ScopedAStatus MultiClientContextHubBase::setTestMode(bool enable) { return fromResult(enable ? enableTestMode() : disableTestMode()); } +ScopedAStatus MultiClientContextHubBase::sendMessageDeliveryStatusToHub( + int32_t /* contextHubId */, + const MessageDeliveryStatus & /* messageDeliveryStatus */) { + // TODO(b/312417087): Implement reliable message support - transaction status + return ndk::ScopedAStatus::ok(); +} + bool MultiClientContextHubBase::enableTestMode() { std::unique_lock<std::mutex> lock(mTestModeMutex); if (mIsTestModeEnabled) { @@ -531,6 +538,9 @@ void MultiClientContextHubBase::handleHubInfoResponse( mContextHubInfo->chreApiMinorVersion = extractChreApiMinorVersion(version); mContextHubInfo->chrePatchVersion = extractChrePatchVersion(version); mContextHubInfo->supportedPermissions = kSupportedPermissions; + + // TODO(b/312417087): Implement reliable message support + mContextHubInfo->supportsReliableMessages = false; mHubInfoCondition.notify_all(); } diff --git a/host/hal_generic/common/multi_client_context_hub_base.h b/host/hal_generic/common/multi_client_context_hub_base.h index b35c444b..7d92e71e 100644 --- a/host/hal_generic/common/multi_client_context_hub_base.h +++ b/host/hal_generic/common/multi_client_context_hub_base.h @@ -78,6 +78,9 @@ class MultiClientContextHubBase ScopedAStatus onNanSessionStateChanged( const NanSessionStateUpdate &in_update) override; ScopedAStatus setTestMode(bool enable) override; + ScopedAStatus sendMessageDeliveryStatusToHub( + int32_t contextHubId, + const MessageDeliveryStatus &messageDeliveryStatus) override; // The callback function implementing ChreConnectionCallback void handleMessageFromChre(const unsigned char *messageBuffer, diff --git a/host/test/hal_generic/common/hal_client_manager_test.cc b/host/test/hal_generic/common/hal_client_manager_test.cc index 6c72a1c1..6236db71 100644 --- a/host/test/hal_generic/common/hal_client_manager_test.cc +++ b/host/test/hal_generic/common/hal_client_manager_test.cc @@ -36,6 +36,7 @@ namespace { using aidl::android::hardware::contexthub::AsyncEventType; using aidl::android::hardware::contexthub::BnContextHubCallback; using aidl::android::hardware::contexthub::ContextHubMessage; +using aidl::android::hardware::contexthub::MessageDeliveryStatus; using aidl::android::hardware::contexthub::NanoappInfo; using aidl::android::hardware::contexthub::NanSessionRequest; @@ -95,6 +96,13 @@ class ContextHubCallbackForTest : public BnContextHubCallback { const NanSessionRequest & /* request */) override { return ScopedAStatus::ok(); } + + ScopedAStatus handleMessageDeliveryStatus( + char16_t /* hostEndPointId */, + const MessageDeliveryStatus & /* messageDeliveryStatus */) override { + return ScopedAStatus::ok(); + } + ScopedAStatus getUuid(std::array<uint8_t, 16> *out_uuid) override { *out_uuid = mUuid; return ScopedAStatus::ok(); |