samsung: hidl: import default sensors 2.1 multihal
authorjosip-k <d3hum4niz3d@gmail.com>
Tue, 19 Jan 2021 18:35:43 +0000 (19:35 +0100)
committerJan Altensen <info@stricted.net>
Mon, 8 Feb 2021 11:34:31 +0000 (12:34 +0100)
    * hardware/interfaces/sensors/2.1/multihal from android-11.0.0_r27

Signed-off-by: josip-k <d3hum4niz3d@gmail.com>
Change-Id: I253755c6a46873c04b65d4c14fea65e3c5308f0b

hidl/sensors/2.1/Android.bp [new file with mode: 0644]
hidl/sensors/2.1/android.hardware.sensors@2.1-multihal.xml [new file with mode: 0644]
hidl/sensors/2.1/android.hardware.sensors@2.1-service-multihal.rc [new file with mode: 0644]
hidl/sensors/2.1/service.cpp [new file with mode: 0644]

diff --git a/hidl/sensors/2.1/Android.bp b/hidl/sensors/2.1/Android.bp
new file mode 100644 (file)
index 0000000..6a7cac9
--- /dev/null
@@ -0,0 +1,47 @@
+//
+// Copyright (C) 2020 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.hardware.sensors@2.1-service.multihal",
+    defaults: [
+        "hidl_defaults",
+    ],
+    vendor: true,
+    relative_install_path: "hw",
+    srcs: [
+        "service.cpp",
+    ],
+    init_rc: ["android.hardware.sensors@2.1-service-multihal.rc"],
+    vintf_fragments: ["android.hardware.sensors@2.1-multihal.xml"],
+    header_libs: [
+        "android.hardware.sensors@2.X-shared-utils",
+    ],
+    shared_libs: [
+        "android.hardware.sensors@2.0",
+        "android.hardware.sensors@2.0-ScopedWakelock",
+        "android.hardware.sensors@2.1",
+        "libbase",
+        "libcutils",
+        "libfmq",
+        "libhidlbase",
+        "liblog",
+        "libpower",
+        "libutils",
+    ],
+    static_libs: [
+        "android.hardware.sensors@1.0-convert",
+        "android.hardware.sensors@2.X-multihal",
+    ],
+}
diff --git a/hidl/sensors/2.1/android.hardware.sensors@2.1-multihal.xml b/hidl/sensors/2.1/android.hardware.sensors@2.1-multihal.xml
new file mode 100644 (file)
index 0000000..18bd3ae
--- /dev/null
@@ -0,0 +1,11 @@
+<manifest version="1.0" type="device">
+    <hal format="hidl">
+        <name>android.hardware.sensors</name>
+        <transport>hwbinder</transport>
+        <version>2.1</version>
+        <interface>
+            <name>ISensors</name>
+            <instance>default</instance>
+        </interface>
+    </hal>
+</manifest>
diff --git a/hidl/sensors/2.1/android.hardware.sensors@2.1-service-multihal.rc b/hidl/sensors/2.1/android.hardware.sensors@2.1-service-multihal.rc
new file mode 100644 (file)
index 0000000..fc99ee7
--- /dev/null
@@ -0,0 +1,7 @@
+service vendor.sensors-hal-2-1-multihal /vendor/bin/hw/android.hardware.sensors@2.1-service.multihal
+    class hal
+    user system
+    group system wakelock context_hub
+    writepid /dev/cpuset/system-background/tasks
+    capabilities BLOCK_SUSPEND
+    rlimit rtprio 10 10
diff --git a/hidl/sensors/2.1/service.cpp b/hidl/sensors/2.1/service.cpp
new file mode 100644 (file)
index 0000000..d68d9a3
--- /dev/null
@@ -0,0 +1,39 @@
+/*
+ * Copyright (C) 2020 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/hardware/sensors/2.1/ISensors.h>
+#include <hidl/HidlTransportSupport.h>
+#include <log/log.h>
+#include <utils/StrongPointer.h>
+#include "HalProxy.h"
+
+using android::hardware::configureRpcThreadpool;
+using android::hardware::joinRpcThreadpool;
+using android::hardware::sensors::V2_1::ISensors;
+using android::hardware::sensors::V2_1::implementation::HalProxyV2_1;
+
+int main(int /* argc */, char** /* argv */) {
+    configureRpcThreadpool(1, true);
+
+    android::sp<ISensors> halProxy = new HalProxyV2_1();
+    if (halProxy->registerAsService() != ::android::OK) {
+        ALOGE("Failed to register Sensors HAL instance");
+        return -1;
+    }
+
+    joinRpcThreadpool();
+    return 1;  // joinRpcThreadpool shouldn't exit
+}