split android.hidl.memory
Split android.hidl.memory into android.hidl.memory and
android.hidl.allocator. This must be done because IAllocator is served
over hwbinder transport and IMapper/IMemory are always going to be
passthrough hals.
Test: hidl_test, device boots with allocator
Bug: 35327976
Merged-In: Ib135b5e101fadadbbf16126a98f90181f76a253b
Change-Id: Ib135b5e101fadadbbf16126a98f90181f76a253b
diff --git a/transport/Android.bp b/transport/Android.bp
index 9dc54b4..0c32653 100644
--- a/transport/Android.bp
+++ b/transport/Android.bp
@@ -13,6 +13,8 @@
// limitations under the License.
subdirs = [
+ "allocator/1.0",
+ "allocator/1.0/default",
"base/1.0",
"manager/1.0",
"memory/1.0",
diff --git a/transport/allocator/1.0/Android.bp b/transport/allocator/1.0/Android.bp
new file mode 100644
index 0000000..b610db4
--- /dev/null
+++ b/transport/allocator/1.0/Android.bp
@@ -0,0 +1,59 @@
+// This file is autogenerated by hidl-gen. Do not edit manually.
+
+filegroup {
+ name: "android.hidl.allocator@1.0_hal",
+ srcs: [
+ "IAllocator.hal",
+ ],
+}
+
+genrule {
+ name: "android.hidl.allocator@1.0_genc++",
+ tools: ["hidl-gen"],
+ cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hidl:system/libhidl/transport android.hidl.allocator@1.0",
+ srcs: [
+ ":android.hidl.allocator@1.0_hal",
+ ],
+ out: [
+ "android/hidl/allocator/1.0/AllocatorAll.cpp",
+ ],
+}
+
+genrule {
+ name: "android.hidl.allocator@1.0_genc++_headers",
+ tools: ["hidl-gen"],
+ cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hidl:system/libhidl/transport android.hidl.allocator@1.0",
+ srcs: [
+ ":android.hidl.allocator@1.0_hal",
+ ],
+ out: [
+ "android/hidl/allocator/1.0/IAllocator.h",
+ "android/hidl/allocator/1.0/IHwAllocator.h",
+ "android/hidl/allocator/1.0/BnHwAllocator.h",
+ "android/hidl/allocator/1.0/BpHwAllocator.h",
+ "android/hidl/allocator/1.0/BsAllocator.h",
+ ],
+}
+
+cc_library_shared {
+ name: "android.hidl.allocator@1.0",
+ generated_sources: ["android.hidl.allocator@1.0_genc++"],
+ generated_headers: ["android.hidl.allocator@1.0_genc++_headers"],
+ export_generated_headers: ["android.hidl.allocator@1.0_genc++_headers"],
+ shared_libs: [
+ "libhidlbase",
+ "libhidltransport",
+ "libhwbinder",
+ "liblog",
+ "libutils",
+ "libcutils",
+ "android.hidl.base@1.0",
+ ],
+ export_shared_lib_headers: [
+ "libhidlbase",
+ "libhidltransport",
+ "libhwbinder",
+ "libutils",
+ "android.hidl.base@1.0",
+ ],
+}
diff --git a/transport/memory/1.0/IAllocator.hal b/transport/allocator/1.0/IAllocator.hal
similarity index 96%
rename from transport/memory/1.0/IAllocator.hal
rename to transport/allocator/1.0/IAllocator.hal
index 7f540aa..814c69d 100644
--- a/transport/memory/1.0/IAllocator.hal
+++ b/transport/allocator/1.0/IAllocator.hal
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package android.hidl.memory@1.0;
+package android.hidl.allocator@1.0;
/**
* Interface which allocates the required memory.
diff --git a/transport/allocator/1.0/default/Android.bp b/transport/allocator/1.0/default/Android.bp
new file mode 100644
index 0000000..914fc8d
--- /dev/null
+++ b/transport/allocator/1.0/default/Android.bp
@@ -0,0 +1,35 @@
+// Copyright (C) 2016 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_binary {
+ name: "android.hidl.allocator@1.0-service",
+ relative_install_path: "hw",
+ srcs: [
+ "AshmemAllocator.cpp",
+ "service.cpp"
+ ],
+ init_rc: ["android.hidl.allocator@1.0-service.rc"],
+
+ shared_libs: [
+ "android.hidl.base@1.0",
+ "android.hidl.allocator@1.0",
+ "libhidlbase",
+ "libhidltransport",
+ "libhwbinder",
+ "libbase",
+ "liblog",
+ "libutils",
+ "libcutils",
+ ],
+}
diff --git a/transport/memory/1.0/default/AshmemAllocator.cpp b/transport/allocator/1.0/default/AshmemAllocator.cpp
similarity index 91%
rename from transport/memory/1.0/default/AshmemAllocator.cpp
rename to transport/allocator/1.0/default/AshmemAllocator.cpp
index 667c46e..ce6dbf7 100644
--- a/transport/memory/1.0/default/AshmemAllocator.cpp
+++ b/transport/allocator/1.0/default/AshmemAllocator.cpp
@@ -20,11 +20,11 @@
namespace android {
namespace hidl {
-namespace memory {
+namespace allocator {
namespace V1_0 {
namespace implementation {
-// Methods from ::android::hidl::memory::V1_0::IAllocator follow.
+// Methods from ::android::hidl::allocator::V1_0::IAllocator follow.
Return<void> AshmemAllocator::allocate(uint64_t size, allocate_cb _hidl_cb) {
int fd = ashmem_create_region("AshmemAllocator_hidl", size);
if (fd < 0) {
@@ -44,6 +44,6 @@
} // namespace implementation
} // namespace V1_0
-} // namespace memory
+} // namespace allocator
} // namespace hidl
} // namespace android
diff --git a/transport/memory/1.0/default/AshmemAllocator.h b/transport/allocator/1.0/default/AshmemAllocator.h
similarity index 75%
rename from transport/memory/1.0/default/AshmemAllocator.h
rename to transport/allocator/1.0/default/AshmemAllocator.h
index 35ad420..307cb5a 100644
--- a/transport/memory/1.0/default/AshmemAllocator.h
+++ b/transport/allocator/1.0/default/AshmemAllocator.h
@@ -14,20 +14,20 @@
* limitations under the License.
*/
-#ifndef ANDROID_HIDL_ASHMEM_MEMORY_V1_0_ALLOCATOR_H
-#define ANDROID_HIDL_ASHMEM_MEMORY_V1_0_ALLOCATOR_H
+#ifndef ANDROID_HIDL_ASHMEM_ALLOCATOR_V1_0_ALLOCATOR_H
+#define ANDROID_HIDL_ASHMEM_ALLOCATOR_V1_0_ALLOCATOR_H
-#include <android/hidl/memory/1.0/IAllocator.h>
+#include <android/hidl/allocator/1.0/IAllocator.h>
#include <hidl/MQDescriptor.h>
#include <hidl/Status.h>
namespace android {
namespace hidl {
-namespace memory {
+namespace allocator {
namespace V1_0 {
namespace implementation {
-using ::android::hidl::memory::V1_0::IAllocator;
+using ::android::hidl::allocator::V1_0::IAllocator;
using ::android::hardware::hidl_array;
using ::android::hardware::hidl_memory;
using ::android::hardware::hidl_string;
@@ -37,15 +37,15 @@
using ::android::sp;
struct AshmemAllocator : public IAllocator {
- // Methods from ::android::hidl::memory::V1_0::IAllocator follow.
+ // Methods from ::android::hidl::allocator::V1_0::IAllocator follow.
Return<void> allocate(uint64_t size, allocate_cb _hidl_cb) override;
};
} // namespace implementation
} // namespace V1_0
-} // namespace memory
+} // namespace allocator
} // namespace hidl
} // namespace android
-#endif // ANDROID_HIDL_ASHMEM_MEMORY_V1_0_ALLOCATOR_H
+#endif // ANDROID_HIDL_ASHMEM_ALLOCATOR_V1_0_ALLOCATOR_H
diff --git a/transport/allocator/1.0/default/android.hidl.allocator@1.0-service.rc b/transport/allocator/1.0/default/android.hidl.allocator@1.0-service.rc
new file mode 100644
index 0000000..4f05523
--- /dev/null
+++ b/transport/allocator/1.0/default/android.hidl.allocator@1.0-service.rc
@@ -0,0 +1,4 @@
+service hidl_memory /system/bin/hw/android.hidl.allocator@1.0-service
+ class hal
+ user system
+ group system
diff --git a/transport/memory/1.0/default/service.cpp b/transport/allocator/1.0/default/service.cpp
similarity index 72%
rename from transport/memory/1.0/default/service.cpp
rename to transport/allocator/1.0/default/service.cpp
index 0302e51..63babd3 100644
--- a/transport/memory/1.0/default/service.cpp
+++ b/transport/allocator/1.0/default/service.cpp
@@ -1,15 +1,15 @@
-#define LOG_TAG "android.hidl.memory@1.0-service"
+#define LOG_TAG "android.hidl.allocator@1.0-service"
#include "AshmemAllocator.h"
#include <android-base/logging.h>
-#include <android/hidl/memory/1.0/IAllocator.h>
+#include <android/hidl/allocator/1.0/IAllocator.h>
#include <hidl/HidlTransportSupport.h>
using android::hardware::configureRpcThreadpool;
using android::hardware::joinRpcThreadpool;
-using android::hidl::memory::V1_0::IAllocator;
-using android::hidl::memory::V1_0::implementation::AshmemAllocator;
+using android::hidl::allocator::V1_0::IAllocator;
+using android::hidl::allocator::V1_0::implementation::AshmemAllocator;
using android::sp;
using android::status_t;
diff --git a/transport/base/1.0/Android.bp b/transport/base/1.0/Android.bp
index eb6b88f..c595bb2 100644
--- a/transport/base/1.0/Android.bp
+++ b/transport/base/1.0/Android.bp
@@ -13,8 +13,7 @@
tools: ["hidl-gen"],
cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hidl:system/libhidl/transport android.hidl.base@1.0",
srcs: [
- "types.hal",
- "IBase.hal",
+ ":android.hidl.base@1.0_hal",
],
out: [
"android/hidl/base/1.0/types.cpp",
@@ -27,8 +26,7 @@
tools: ["hidl-gen"],
cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hidl:system/libhidl/transport android.hidl.base@1.0",
srcs: [
- "types.hal",
- "IBase.hal",
+ ":android.hidl.base@1.0_hal",
],
out: [
"android/hidl/base/1.0/types.h",
diff --git a/transport/manager/1.0/Android.bp b/transport/manager/1.0/Android.bp
index 499b560..0e5766f 100644
--- a/transport/manager/1.0/Android.bp
+++ b/transport/manager/1.0/Android.bp
@@ -13,8 +13,7 @@
tools: ["hidl-gen"],
cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hidl:system/libhidl/transport android.hidl.manager@1.0",
srcs: [
- "IServiceManager.hal",
- "IServiceNotification.hal",
+ ":android.hidl.manager@1.0_hal",
],
out: [
"android/hidl/manager/1.0/ServiceManagerAll.cpp",
@@ -27,8 +26,7 @@
tools: ["hidl-gen"],
cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hidl:system/libhidl/transport android.hidl.manager@1.0",
srcs: [
- "IServiceManager.hal",
- "IServiceNotification.hal",
+ ":android.hidl.manager@1.0_hal",
],
out: [
"android/hidl/manager/1.0/IServiceManager.h",
diff --git a/transport/memory/1.0/Android.bp b/transport/memory/1.0/Android.bp
index 0a7b88f..4ec0191 100644
--- a/transport/memory/1.0/Android.bp
+++ b/transport/memory/1.0/Android.bp
@@ -3,7 +3,6 @@
filegroup {
name: "android.hidl.memory@1.0_hal",
srcs: [
- "IAllocator.hal",
"IMapper.hal",
"IMemory.hal",
],
@@ -14,12 +13,9 @@
tools: ["hidl-gen"],
cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hidl:system/libhidl/transport android.hidl.memory@1.0",
srcs: [
- "IAllocator.hal",
- "IMapper.hal",
- "IMemory.hal",
+ ":android.hidl.memory@1.0_hal",
],
out: [
- "android/hidl/memory/1.0/AllocatorAll.cpp",
"android/hidl/memory/1.0/MapperAll.cpp",
"android/hidl/memory/1.0/MemoryAll.cpp",
],
@@ -30,16 +26,9 @@
tools: ["hidl-gen"],
cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hidl:system/libhidl/transport android.hidl.memory@1.0",
srcs: [
- "IAllocator.hal",
- "IMapper.hal",
- "IMemory.hal",
+ ":android.hidl.memory@1.0_hal",
],
out: [
- "android/hidl/memory/1.0/IAllocator.h",
- "android/hidl/memory/1.0/IHwAllocator.h",
- "android/hidl/memory/1.0/BnHwAllocator.h",
- "android/hidl/memory/1.0/BpHwAllocator.h",
- "android/hidl/memory/1.0/BsAllocator.h",
"android/hidl/memory/1.0/IMapper.h",
"android/hidl/memory/1.0/IHwMapper.h",
"android/hidl/memory/1.0/BnHwMapper.h",
diff --git a/transport/memory/1.0/default/Android.bp b/transport/memory/1.0/default/Android.bp
index 62fb556..e3a05c3 100644
--- a/transport/memory/1.0/default/Android.bp
+++ b/transport/memory/1.0/default/Android.bp
@@ -35,25 +35,3 @@
"android.hidl.memory@1.0",
],
}
-
-cc_binary {
- name: "android.hidl.memory@1.0-service",
- relative_install_path: "hw",
- srcs: [
- "AshmemAllocator.cpp",
- "service.cpp"
- ],
- init_rc: ["android.hidl.memory@1.0-service.rc"],
-
- shared_libs: [
- "android.hidl.base@1.0",
- "android.hidl.memory@1.0",
- "libhidlbase",
- "libhidltransport",
- "libhwbinder",
- "libbase",
- "liblog",
- "libutils",
- "libcutils",
- ],
-}
diff --git a/transport/memory/1.0/default/HidlFetch.cpp b/transport/memory/1.0/default/HidlFetch.cpp
index adb55d3..d47cf97 100644
--- a/transport/memory/1.0/default/HidlFetch.cpp
+++ b/transport/memory/1.0/default/HidlFetch.cpp
@@ -16,7 +16,6 @@
#include "HidlFetch.h"
-#include "AshmemAllocator.h"
#include "AshmemMapper.h"
static std::string kAshmemMemoryName = "ashmem";
diff --git a/transport/memory/1.0/default/HidlFetch.h b/transport/memory/1.0/default/HidlFetch.h
index 389ca30..b220be4 100644
--- a/transport/memory/1.0/default/HidlFetch.h
+++ b/transport/memory/1.0/default/HidlFetch.h
@@ -17,7 +17,6 @@
#ifndef HIDL_FETCH_H
#define HIDL_FETCH_H
-#include <android/hidl/memory/1.0/IAllocator.h>
#include <android/hidl/memory/1.0/IMapper.h>
namespace android {
@@ -34,4 +33,4 @@
} // namespace hidl
} // namespace android
-#endif // HIDL_FETCH_H
\ No newline at end of file
+#endif // HIDL_FETCH_H
diff --git a/transport/memory/1.0/default/android.hidl.memory@1.0-service.rc b/transport/memory/1.0/default/android.hidl.memory@1.0-service.rc
deleted file mode 100644
index 1caaae9..0000000
--- a/transport/memory/1.0/default/android.hidl.memory@1.0-service.rc
+++ /dev/null
@@ -1,4 +0,0 @@
-service hidl_memory /system/bin/hw/android.hidl.memory@1.0-service
- class hal
- user system
- group system
diff --git a/transport/token/1.0/Android.bp b/transport/token/1.0/Android.bp
index ffa1c18..5f90cb7 100644
--- a/transport/token/1.0/Android.bp
+++ b/transport/token/1.0/Android.bp
@@ -12,7 +12,7 @@
tools: ["hidl-gen"],
cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hidl:system/libhidl/transport android.hidl.token@1.0",
srcs: [
- "ITokenManager.hal",
+ ":android.hidl.token@1.0_hal",
],
out: [
"android/hidl/token/1.0/TokenManagerAll.cpp",
@@ -24,7 +24,7 @@
tools: ["hidl-gen"],
cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hidl:system/libhidl/transport android.hidl.token@1.0",
srcs: [
- "ITokenManager.hal",
+ ":android.hidl.token@1.0_hal",
],
out: [
"android/hidl/token/1.0/ITokenManager.h",