summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Android.bp1
-rw-r--r--adapter/Android.bp33
-rw-r--r--adapter/HidlBinderAdapter.cpp122
-rw-r--r--adapter/include/hidladapter/HidlBinderAdapter.h52
-rw-r--r--base/include/hidl/Status.h5
-rw-r--r--transport/allocator/1.0/Android.bp73
-rw-r--r--transport/base/1.0/Android.bp68
-rw-r--r--transport/manager/1.0/Android.bp72
-rw-r--r--transport/manager/1.1/Android.bp72
-rw-r--r--transport/memory/1.0/Android.bp75
-rw-r--r--transport/token/1.0/Android.bp73
11 files changed, 646 insertions, 0 deletions
diff --git a/Android.bp b/Android.bp
index 6abdab8..962984c 100644
--- a/Android.bp
+++ b/Android.bp
@@ -13,6 +13,7 @@
// limitations under the License.
subdirs = [
+ "adapter",
"base", // libhidlbase
"libhidlmemory", // libhidlmemory
"transport", // libhidltransport
diff --git a/adapter/Android.bp b/adapter/Android.bp
new file mode 100644
index 0000000..d89b216
--- /dev/null
+++ b/adapter/Android.bp
@@ -0,0 +1,33 @@
+// Copyright (C) 2017 The Android Open Source Project
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+cc_library_shared {
+ name: "libhidladapter",
+ srcs: [
+ "HidlBinderAdapter.cpp"
+ ],
+ export_include_dirs: ["include"],
+ shared_libs: [
+ "libhidlbase",
+ "libhidltransport",
+ "libhwbinder",
+ "libutils",
+ ],
+ export_shared_lib_headers: [
+ "libhidlbase",
+ "libhidltransport",
+ "libutils",
+ ],
+}
+
diff --git a/adapter/HidlBinderAdapter.cpp b/adapter/HidlBinderAdapter.cpp
new file mode 100644
index 0000000..e769cb5
--- /dev/null
+++ b/adapter/HidlBinderAdapter.cpp
@@ -0,0 +1,122 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <hidladapter/HidlBinderAdapter.h>
+
+#include <android/hidl/base/1.0/IBase.h>
+#include <android/hidl/manager/1.0/IServiceManager.h>
+#include <hidl/HidlTransportSupport.h>
+
+#include <iostream>
+#include <map>
+#include <string>
+
+namespace android {
+namespace hardware {
+namespace details {
+
+int adapterMain(const std::string& package, int argc, char** argv,
+ const AdaptersFactory& adapters) {
+ using android::hardware::configureRpcThreadpool;
+ using android::hidl::base::V1_0::IBase;
+ using android::hidl::manager::V1_0::IServiceManager;
+
+ if (argc != 4) {
+ std::cerr << "usage: " << argv[0] << " interface-name instance-name number-of-threads."
+ << std::endl;
+ return 1;
+ }
+
+ std::string interfaceName = package + "::" + argv[1];
+ std::string instanceName = argv[2];
+ int threadNumber = std::stoi(argv[3]);
+
+ if (threadNumber <= 0) {
+ std::cerr << "ERROR: invalid thread number " << threadNumber
+ << " must be a positive integer.";
+ }
+
+ auto it = adapters.find(interfaceName);
+ if (it == adapters.end()) {
+ std::cerr << "ERROR: could not resolve " << interfaceName << "." << std::endl;
+ return 1;
+ }
+
+ std::cout << "Trying to adapt down " << interfaceName << "/" << instanceName << std::endl;
+
+ configureRpcThreadpool(threadNumber, false /* callerWillJoin */);
+
+ sp<IServiceManager> manager = IServiceManager::getService();
+ if (manager == nullptr) {
+ std::cerr << "ERROR: could not retrieve service manager." << std::endl;
+ return 1;
+ }
+
+ sp<IBase> implementation = manager->get(interfaceName, instanceName).withDefault(nullptr);
+ if (implementation == nullptr) {
+ std::cerr << "ERROR: could not retrieve desired implementation" << std::endl;
+ return 1;
+ }
+
+ sp<IBase> adapter = it->second(implementation);
+ if (adapter == nullptr) {
+ std::cerr << "ERROR: could not create adapter." << std::endl;
+ return 1;
+ }
+
+ bool replaced = manager->add(instanceName, adapter).withDefault(false);
+ if (!replaced) {
+ std::cerr << "ERROR: could not register the service with the service manager." << std::endl;
+ return 1;
+ }
+
+ std::cout << "Press any key to disassociate adapter." << std::endl;
+ getchar();
+
+ bool restored = manager->add(instanceName, implementation).withDefault(false);
+ if (!restored) {
+ std::cerr << "ERROR: could not re-register interface with the service manager."
+ << std::endl;
+ return 1;
+ }
+
+ std::cout << "Success." << std::endl;
+
+ return 0;
+}
+
+// If an interface is adapted to 1.0, it can then not be adapted to 1.1 in the same process.
+// This poses a problem in the following scenario:
+// auto interface = new V1_1::implementation::IFoo;
+// hidlObject1_0->foo(interface) // adaptation set at 1.0
+// hidlObject1_1->bar(interface) // adaptation still is 1.0
+// This could be solved by keeping a map of IBase,fqName -> IBase, but then you end up
+// with multiple names for the same interface.
+sp<IBase> adaptWithDefault(const sp<IBase>& something,
+ const std::function<sp<IBase>()>& makeDefault) {
+ static std::map<sp<IBase>, sp<IBase>> sAdapterMap;
+
+ auto it = sAdapterMap.find(something);
+ if (it == sAdapterMap.end()) {
+ it = sAdapterMap.insert(it, {something, makeDefault()});
+ }
+
+ return it->second;
+}
+
+} // namespace details
+} // namespace hardware
+} // namespace android
diff --git a/adapter/include/hidladapter/HidlBinderAdapter.h b/adapter/include/hidladapter/HidlBinderAdapter.h
new file mode 100644
index 0000000..46df554
--- /dev/null
+++ b/adapter/include/hidladapter/HidlBinderAdapter.h
@@ -0,0 +1,52 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <android/hidl/base/1.0/IBase.h>
+#include <hidl/HidlSupport.h>
+
+#include <map>
+
+namespace android {
+namespace hardware {
+
+namespace details {
+
+using IBase = ::android::hidl::base::V1_0::IBase;
+
+// AdapterFactory(impl) -> adapter
+using AdapterFactory = std::function<sp<IBase>(sp<IBase>)>;
+// AdaptersFactory(package@interface)(impl) -> adapter
+using AdaptersFactory = std::map<std::string, AdapterFactory>;
+
+int adapterMain(const std::string& package, int argc, char** argv, const AdaptersFactory& adapters);
+
+sp<IBase> adaptWithDefault(const sp<IBase>& something,
+ const std::function<sp<IBase>()>& makeDefault);
+
+} // namespace details
+
+template <typename... Adapters>
+int adapterMain(const std::string& package, int argc, char** argv) {
+ return details::adapterMain(
+ package, argc, argv,
+ {{Adapters::Pure::descriptor, [](sp<::android::hidl::base::V1_0::IBase> base) {
+ return details::adaptWithDefault(
+ base, [&] { return new Adapters(Adapters::Pure::castFrom(base)); });
+ }}...});
+}
+
+} // namespace hardware
+} // namespace android \ No newline at end of file
diff --git a/base/include/hidl/Status.h b/base/include/hidl/Status.h
index e2aab3f..1a2ef6d 100644
--- a/base/include/hidl/Status.h
+++ b/base/include/hidl/Status.h
@@ -155,6 +155,11 @@ namespace details {
~return_status();
+ bool isOkUnchecked() const {
+ // someone else will have to check
+ return mStatus.isOk();
+ }
+
bool isOk() const {
mCheckedStatus = true;
return mStatus.isOk();
diff --git a/transport/allocator/1.0/Android.bp b/transport/allocator/1.0/Android.bp
index c64a039..e518028 100644
--- a/transport/allocator/1.0/Android.bp
+++ b/transport/allocator/1.0/Android.bp
@@ -60,3 +60,76 @@ cc_library {
"libutils",
],
}
+
+genrule {
+ name: "android.hidl.allocator@1.0-adapter-helper_genc++",
+ tools: ["hidl-gen"],
+ cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-sources -randroid.hidl:system/libhidl/transport android.hidl.allocator@1.0",
+ srcs: [
+ ":android.hidl.allocator@1.0_hal",
+ ],
+ out: [
+ "android/hidl/allocator/1.0/AAllocator.cpp",
+ ],
+}
+
+genrule {
+ name: "android.hidl.allocator@1.0-adapter-helper_genc++_headers",
+ tools: ["hidl-gen"],
+ cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-headers -randroid.hidl:system/libhidl/transport android.hidl.allocator@1.0",
+ srcs: [
+ ":android.hidl.allocator@1.0_hal",
+ ],
+ out: [
+ "android/hidl/allocator/1.0/AAllocator.h",
+ ],
+}
+
+
+cc_library {
+ name: "android.hidl.allocator@1.0-adapter-helper",
+ defaults: ["hidl-module-defaults"],
+ generated_sources: ["android.hidl.allocator@1.0-adapter-helper_genc++"],
+ generated_headers: ["android.hidl.allocator@1.0-adapter-helper_genc++_headers"],
+ export_generated_headers: ["android.hidl.allocator@1.0-adapter-helper_genc++_headers"],
+ vendor_available: true,
+ shared_libs: [
+ "libhidlbase",
+ "libhidltransport",
+ "libhwbinder",
+ "liblog",
+ "libutils",
+ "libcutils",
+ "libhidladapter",
+ "android.hidl.allocator@1.0",
+ "android.hidl.base@1.0-adapter-helper",
+ ],
+ export_shared_lib_headers: [
+ "libhidlbase",
+ "libhidltransport",
+ "libhwbinder",
+ "libutils",
+ "libhidladapter",
+ "android.hidl.allocator@1.0",
+ "android.hidl.base@1.0-adapter-helper",
+ ],
+}
+
+genrule {
+ name: "android.hidl.allocator@1.0-adapter_genc++",
+ tools: ["hidl-gen"],
+ cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-main -randroid.hidl:system/libhidl/transport android.hidl.allocator@1.0",
+ out: ["main.cpp"]}
+
+cc_test {
+ name: "android.hidl.allocator@1.0-adapter",
+ shared_libs: [
+ "libhidladapter",
+ "libhidlbase",
+ "libhidltransport",
+ "libutils",
+ "android.hidl.allocator@1.0",
+ "android.hidl.allocator@1.0-adapter-helper",
+ ],
+ generated_sources: ["android.hidl.allocator@1.0-adapter_genc++"],
+}
diff --git a/transport/base/1.0/Android.bp b/transport/base/1.0/Android.bp
index 8382824..dd4a814 100644
--- a/transport/base/1.0/Android.bp
+++ b/transport/base/1.0/Android.bp
@@ -40,3 +40,71 @@ genrule {
}
// android.hidl.base@1.0 is exported from libhidltransport
+
+genrule {
+ name: "android.hidl.base@1.0-adapter-helper_genc++",
+ tools: ["hidl-gen"],
+ cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-sources -randroid.hidl:system/libhidl/transport android.hidl.base@1.0",
+ srcs: [
+ ":android.hidl.base@1.0_hal",
+ ],
+ out: [
+ "android/hidl/base/1.0/ABase.cpp",
+ ],
+}
+
+genrule {
+ name: "android.hidl.base@1.0-adapter-helper_genc++_headers",
+ tools: ["hidl-gen"],
+ cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-headers -randroid.hidl:system/libhidl/transport android.hidl.base@1.0",
+ srcs: [
+ ":android.hidl.base@1.0_hal",
+ ],
+ out: [
+ "android/hidl/base/1.0/ABase.h",
+ ],
+}
+
+
+cc_library {
+ name: "android.hidl.base@1.0-adapter-helper",
+ defaults: ["hidl-module-defaults"],
+ generated_sources: ["android.hidl.base@1.0-adapter-helper_genc++"],
+ generated_headers: ["android.hidl.base@1.0-adapter-helper_genc++_headers"],
+ export_generated_headers: ["android.hidl.base@1.0-adapter-helper_genc++_headers"],
+ vendor_available: true,
+ shared_libs: [
+ "libhidlbase",
+ "libhidltransport",
+ "libhwbinder",
+ "liblog",
+ "libutils",
+ "libcutils",
+ "libhidladapter",
+ ],
+ export_shared_lib_headers: [
+ "libhidlbase",
+ "libhidltransport",
+ "libhwbinder",
+ "libutils",
+ "libhidladapter",
+ ],
+}
+
+genrule {
+ name: "android.hidl.base@1.0-adapter_genc++",
+ tools: ["hidl-gen"],
+ cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-main -randroid.hidl:system/libhidl/transport android.hidl.base@1.0",
+ out: ["main.cpp"]}
+
+cc_test {
+ name: "android.hidl.base@1.0-adapter",
+ shared_libs: [
+ "libhidladapter",
+ "libhidlbase",
+ "libhidltransport",
+ "libutils",
+ "android.hidl.base@1.0-adapter-helper",
+ ],
+ generated_sources: ["android.hidl.base@1.0-adapter_genc++"],
+}
diff --git a/transport/manager/1.0/Android.bp b/transport/manager/1.0/Android.bp
index 8bdbfa5..fc5e901 100644
--- a/transport/manager/1.0/Android.bp
+++ b/transport/manager/1.0/Android.bp
@@ -43,3 +43,75 @@ genrule {
}
// android.hidl.manager@1.0 is exported from libhidltransport
+
+genrule {
+ name: "android.hidl.manager@1.0-adapter-helper_genc++",
+ tools: ["hidl-gen"],
+ cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-sources -randroid.hidl:system/libhidl/transport android.hidl.manager@1.0",
+ srcs: [
+ ":android.hidl.manager@1.0_hal",
+ ],
+ out: [
+ "android/hidl/manager/1.0/AServiceManager.cpp",
+ "android/hidl/manager/1.0/AServiceNotification.cpp",
+ ],
+}
+
+genrule {
+ name: "android.hidl.manager@1.0-adapter-helper_genc++_headers",
+ tools: ["hidl-gen"],
+ cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-headers -randroid.hidl:system/libhidl/transport android.hidl.manager@1.0",
+ srcs: [
+ ":android.hidl.manager@1.0_hal",
+ ],
+ out: [
+ "android/hidl/manager/1.0/AServiceManager.h",
+ "android/hidl/manager/1.0/AServiceNotification.h",
+ ],
+}
+
+
+cc_library {
+ name: "android.hidl.manager@1.0-adapter-helper",
+ defaults: ["hidl-module-defaults"],
+ generated_sources: ["android.hidl.manager@1.0-adapter-helper_genc++"],
+ generated_headers: ["android.hidl.manager@1.0-adapter-helper_genc++_headers"],
+ export_generated_headers: ["android.hidl.manager@1.0-adapter-helper_genc++_headers"],
+ vendor_available: true,
+ shared_libs: [
+ "libhidlbase",
+ "libhidltransport",
+ "libhwbinder",
+ "liblog",
+ "libutils",
+ "libcutils",
+ "libhidladapter",
+ "android.hidl.base@1.0-adapter-helper",
+ ],
+ export_shared_lib_headers: [
+ "libhidlbase",
+ "libhidltransport",
+ "libhwbinder",
+ "libutils",
+ "libhidladapter",
+ "android.hidl.base@1.0-adapter-helper",
+ ],
+}
+
+genrule {
+ name: "android.hidl.manager@1.0-adapter_genc++",
+ tools: ["hidl-gen"],
+ cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-main -randroid.hidl:system/libhidl/transport android.hidl.manager@1.0",
+ out: ["main.cpp"]}
+
+cc_test {
+ name: "android.hidl.manager@1.0-adapter",
+ shared_libs: [
+ "libhidladapter",
+ "libhidlbase",
+ "libhidltransport",
+ "libutils",
+ "android.hidl.manager@1.0-adapter-helper",
+ ],
+ generated_sources: ["android.hidl.manager@1.0-adapter_genc++"],
+}
diff --git a/transport/manager/1.1/Android.bp b/transport/manager/1.1/Android.bp
index 5a1bf00..3b0682a 100644
--- a/transport/manager/1.1/Android.bp
+++ b/transport/manager/1.1/Android.bp
@@ -36,3 +36,75 @@ genrule {
}
// android.hidl.manager@1.1 is exported from libhidltransport
+
+genrule {
+ name: "android.hidl.manager@1.1-adapter-helper_genc++",
+ tools: ["hidl-gen"],
+ cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-sources -randroid.hidl:system/libhidl/transport android.hidl.manager@1.1",
+ srcs: [
+ ":android.hidl.manager@1.1_hal",
+ ],
+ out: [
+ "android/hidl/manager/1.1/AServiceManager.cpp",
+ ],
+}
+
+genrule {
+ name: "android.hidl.manager@1.1-adapter-helper_genc++_headers",
+ tools: ["hidl-gen"],
+ cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-headers -randroid.hidl:system/libhidl/transport android.hidl.manager@1.1",
+ srcs: [
+ ":android.hidl.manager@1.1_hal",
+ ],
+ out: [
+ "android/hidl/manager/1.1/AServiceManager.h",
+ ],
+}
+
+
+cc_library {
+ name: "android.hidl.manager@1.1-adapter-helper",
+ defaults: ["hidl-module-defaults"],
+ generated_sources: ["android.hidl.manager@1.1-adapter-helper_genc++"],
+ generated_headers: ["android.hidl.manager@1.1-adapter-helper_genc++_headers"],
+ export_generated_headers: ["android.hidl.manager@1.1-adapter-helper_genc++_headers"],
+ vendor_available: true,
+ shared_libs: [
+ "libhidlbase",
+ "libhidltransport",
+ "libhwbinder",
+ "liblog",
+ "libutils",
+ "libcutils",
+ "libhidladapter",
+ "android.hidl.base@1.0-adapter-helper",
+ "android.hidl.manager@1.0-adapter-helper",
+ ],
+ export_shared_lib_headers: [
+ "libhidlbase",
+ "libhidltransport",
+ "libhwbinder",
+ "libutils",
+ "libhidladapter",
+ "android.hidl.base@1.0-adapter-helper",
+ "android.hidl.manager@1.0-adapter-helper",
+ ],
+}
+
+genrule {
+ name: "android.hidl.manager@1.1-adapter_genc++",
+ tools: ["hidl-gen"],
+ cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-main -randroid.hidl:system/libhidl/transport android.hidl.manager@1.1",
+ out: ["main.cpp"]}
+
+cc_test {
+ name: "android.hidl.manager@1.1-adapter",
+ shared_libs: [
+ "libhidladapter",
+ "libhidlbase",
+ "libhidltransport",
+ "libutils",
+ "android.hidl.manager@1.1-adapter-helper",
+ ],
+ generated_sources: ["android.hidl.manager@1.1-adapter_genc++"],
+}
diff --git a/transport/memory/1.0/Android.bp b/transport/memory/1.0/Android.bp
index b6044c2..a3be879 100644
--- a/transport/memory/1.0/Android.bp
+++ b/transport/memory/1.0/Android.bp
@@ -68,3 +68,78 @@ cc_library {
"libutils",
],
}
+
+genrule {
+ name: "android.hidl.memory@1.0-adapter-helper_genc++",
+ tools: ["hidl-gen"],
+ cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-sources -randroid.hidl:system/libhidl/transport android.hidl.memory@1.0",
+ srcs: [
+ ":android.hidl.memory@1.0_hal",
+ ],
+ out: [
+ "android/hidl/memory/1.0/AMapper.cpp",
+ "android/hidl/memory/1.0/AMemory.cpp",
+ ],
+}
+
+genrule {
+ name: "android.hidl.memory@1.0-adapter-helper_genc++_headers",
+ tools: ["hidl-gen"],
+ cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-headers -randroid.hidl:system/libhidl/transport android.hidl.memory@1.0",
+ srcs: [
+ ":android.hidl.memory@1.0_hal",
+ ],
+ out: [
+ "android/hidl/memory/1.0/AMapper.h",
+ "android/hidl/memory/1.0/AMemory.h",
+ ],
+}
+
+
+cc_library {
+ name: "android.hidl.memory@1.0-adapter-helper",
+ defaults: ["hidl-module-defaults"],
+ generated_sources: ["android.hidl.memory@1.0-adapter-helper_genc++"],
+ generated_headers: ["android.hidl.memory@1.0-adapter-helper_genc++_headers"],
+ export_generated_headers: ["android.hidl.memory@1.0-adapter-helper_genc++_headers"],
+ vendor_available: true,
+ shared_libs: [
+ "libhidlbase",
+ "libhidltransport",
+ "libhwbinder",
+ "liblog",
+ "libutils",
+ "libcutils",
+ "libhidladapter",
+ "android.hidl.memory@1.0",
+ "android.hidl.base@1.0-adapter-helper",
+ ],
+ export_shared_lib_headers: [
+ "libhidlbase",
+ "libhidltransport",
+ "libhwbinder",
+ "libutils",
+ "libhidladapter",
+ "android.hidl.memory@1.0",
+ "android.hidl.base@1.0-adapter-helper",
+ ],
+}
+
+genrule {
+ name: "android.hidl.memory@1.0-adapter_genc++",
+ tools: ["hidl-gen"],
+ cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-main -randroid.hidl:system/libhidl/transport android.hidl.memory@1.0",
+ out: ["main.cpp"]}
+
+cc_test {
+ name: "android.hidl.memory@1.0-adapter",
+ shared_libs: [
+ "libhidladapter",
+ "libhidlbase",
+ "libhidltransport",
+ "libutils",
+ "android.hidl.memory@1.0",
+ "android.hidl.memory@1.0-adapter-helper",
+ ],
+ generated_sources: ["android.hidl.memory@1.0-adapter_genc++"],
+}
diff --git a/transport/token/1.0/Android.bp b/transport/token/1.0/Android.bp
index 957d1f9..3f9fbdb 100644
--- a/transport/token/1.0/Android.bp
+++ b/transport/token/1.0/Android.bp
@@ -60,3 +60,76 @@ cc_library {
"libutils",
],
}
+
+genrule {
+ name: "android.hidl.token@1.0-adapter-helper_genc++",
+ tools: ["hidl-gen"],
+ cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-sources -randroid.hidl:system/libhidl/transport android.hidl.token@1.0",
+ srcs: [
+ ":android.hidl.token@1.0_hal",
+ ],
+ out: [
+ "android/hidl/token/1.0/ATokenManager.cpp",
+ ],
+}
+
+genrule {
+ name: "android.hidl.token@1.0-adapter-helper_genc++_headers",
+ tools: ["hidl-gen"],
+ cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-headers -randroid.hidl:system/libhidl/transport android.hidl.token@1.0",
+ srcs: [
+ ":android.hidl.token@1.0_hal",
+ ],
+ out: [
+ "android/hidl/token/1.0/ATokenManager.h",
+ ],
+}
+
+
+cc_library {
+ name: "android.hidl.token@1.0-adapter-helper",
+ defaults: ["hidl-module-defaults"],
+ generated_sources: ["android.hidl.token@1.0-adapter-helper_genc++"],
+ generated_headers: ["android.hidl.token@1.0-adapter-helper_genc++_headers"],
+ export_generated_headers: ["android.hidl.token@1.0-adapter-helper_genc++_headers"],
+ vendor_available: true,
+ shared_libs: [
+ "libhidlbase",
+ "libhidltransport",
+ "libhwbinder",
+ "liblog",
+ "libutils",
+ "libcutils",
+ "libhidladapter",
+ "android.hidl.token@1.0",
+ "android.hidl.base@1.0-adapter-helper",
+ ],
+ export_shared_lib_headers: [
+ "libhidlbase",
+ "libhidltransport",
+ "libhwbinder",
+ "libutils",
+ "libhidladapter",
+ "android.hidl.token@1.0",
+ "android.hidl.base@1.0-adapter-helper",
+ ],
+}
+
+genrule {
+ name: "android.hidl.token@1.0-adapter_genc++",
+ tools: ["hidl-gen"],
+ cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-main -randroid.hidl:system/libhidl/transport android.hidl.token@1.0",
+ out: ["main.cpp"]}
+
+cc_test {
+ name: "android.hidl.token@1.0-adapter",
+ shared_libs: [
+ "libhidladapter",
+ "libhidlbase",
+ "libhidltransport",
+ "libutils",
+ "android.hidl.token@1.0",
+ "android.hidl.token@1.0-adapter-helper",
+ ],
+ generated_sources: ["android.hidl.token@1.0-adapter_genc++"],
+}