aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthew Sedam <matthewsedam@google.com>2023-12-11 20:31:15 +0000
committerMatthew Sedam <matthewsedam@google.com>2023-12-13 18:21:33 +0000
commit1e5aeb571ba45593e37ca17f58687f441f624920 (patch)
tree2db98ce6eec484e947b96e799476bee96d47a01d
parent3252a86ae42ebe07085dda71bf59f53883b59bc4 (diff)
downloadchre-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.cc8
-rw-r--r--host/common/include/chre_host/hal_client.h8
-rw-r--r--host/hal_generic/aidl/generic_context_hub_aidl.cc10
-rw-r--r--host/hal_generic/aidl/generic_context_hub_aidl.h3
-rw-r--r--host/hal_generic/common/multi_client_context_hub_base.cc10
-rw-r--r--host/hal_generic/common/multi_client_context_hub_base.h3
-rw-r--r--host/test/hal_generic/common/hal_client_manager_test.cc8
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();