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",