summaryrefslogtreecommitdiffstats
path: root/dumpstate
diff options
context:
space:
mode:
authorSteven Moreland <smoreland@google.com>2016-12-01 09:29:48 -0800
committerFelipe Leme <felipeal@google.com>2017-01-11 16:09:35 -0800
commit92a95b287040a6e4febfad00b946e4b00ca7eede (patch)
tree3dab290068d7053703ea9a6512164040ba7acf51 /dumpstate
parent060d5fb87c2cd0c1f359bac28682ad7e691a33cf (diff)
downloadandroid_hardware_interfaces-92a95b287040a6e4febfad00b946e4b00ca7eede.tar.gz
android_hardware_interfaces-92a95b287040a6e4febfad00b946e4b00ca7eede.tar.bz2
android_hardware_interfaces-92a95b287040a6e4febfad00b946e4b00ca7eede.zip
Dumpstate: default service implementation.
- dumpstate will not have passthrough mode. All new implementations are required anyway. It makes more sense to just have them binderized by default. Test: compiles/put on device in right location/running Bug: 31982882 Change-Id: Ib0c12a2e0da931060f0e9e990fb63b6c7bc9e872
Diffstat (limited to 'dumpstate')
-rw-r--r--dumpstate/1.0/default/Android.mk10
-rw-r--r--dumpstate/1.0/default/DumpstateDevice.cpp14
-rw-r--r--dumpstate/1.0/default/DumpstateDevice.h2
-rw-r--r--dumpstate/1.0/default/android.hardware.dumpstate@1.0-service.rc4
-rw-r--r--dumpstate/1.0/default/service.cpp34
5 files changed, 50 insertions, 14 deletions
diff --git a/dumpstate/1.0/default/Android.mk b/dumpstate/1.0/default/Android.mk
index 4d5c9087e..0b1518447 100644
--- a/dumpstate/1.0/default/Android.mk
+++ b/dumpstate/1.0/default/Android.mk
@@ -1,22 +1,22 @@
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
-LOCAL_MODULE := android.hardware.dumpstate@1.0-impl
+LOCAL_MODULE := android.hardware.dumpstate@1.0-service
+LOCAL_INIT_RC := android.hardware.dumpstate@1.0-service.rc
LOCAL_MODULE_RELATIVE_PATH := hw
LOCAL_SRC_FILES := \
DumpstateDevice.cpp \
+ service.cpp
LOCAL_SHARED_LIBRARIES := \
android.hardware.dumpstate@1.0 \
libbase \
libcutils \
+ libdumpstateutil \
libhidlbase \
libhidltransport \
libhwbinder \
liblog \
libutils
-LOCAL_STATIC_LIBRARIES := \
- libdumpstateutil
-
-include $(BUILD_SHARED_LIBRARY)
+include $(BUILD_EXECUTABLE)
diff --git a/dumpstate/1.0/default/DumpstateDevice.cpp b/dumpstate/1.0/default/DumpstateDevice.cpp
index 42642355b..8000d8582 100644
--- a/dumpstate/1.0/default/DumpstateDevice.cpp
+++ b/dumpstate/1.0/default/DumpstateDevice.cpp
@@ -22,6 +22,9 @@
#include "DumpstateUtil.h"
+using android::os::dumpstate::DumpFileToFd;
+using android::os::dumpstate::RunCommandToFd;
+
namespace android {
namespace hardware {
namespace dumpstate {
@@ -30,6 +33,10 @@ namespace implementation {
// Methods from ::android::hardware::dumpstate::V1_0::IDumpstateDevice follow.
Return<void> DumpstateDevice::dumpstateBoard(const hidl_handle& handle) {
+ // NOTE: this is just an example on how to use the DumpstateUtil.h functions to implement
+ // this interface - since HIDL_FETCH_IDumpstateDevice() is not defined, this function will never
+ // be called by dumpstate.
+
if (handle->numFds < 1) {
ALOGE("no FDs\n");
return Void();
@@ -51,13 +58,6 @@ Return<void> DumpstateDevice::dumpstateBoard(const hidl_handle& handle) {
return Void();
}
-
-IDumpstateDevice* HIDL_FETCH_IDumpstateDevice(const char* /* name */) {
- // TODO: temporary returning nullptr until it's implemented on master devices
- return nullptr;
-// return new DumpstateDevice();
-}
-
} // namespace implementation
} // namespace V1_0
} // namespace dumpstate
diff --git a/dumpstate/1.0/default/DumpstateDevice.h b/dumpstate/1.0/default/DumpstateDevice.h
index f216304f7..f8585f554 100644
--- a/dumpstate/1.0/default/DumpstateDevice.h
+++ b/dumpstate/1.0/default/DumpstateDevice.h
@@ -41,8 +41,6 @@ struct DumpstateDevice : public IDumpstateDevice {
};
-extern "C" IDumpstateDevice* HIDL_FETCH_IDumpstateDevice(const char* name);
-
} // namespace implementation
} // namespace V1_0
} // namespace dumpstate
diff --git a/dumpstate/1.0/default/android.hardware.dumpstate@1.0-service.rc b/dumpstate/1.0/default/android.hardware.dumpstate@1.0-service.rc
new file mode 100644
index 000000000..99b968e98
--- /dev/null
+++ b/dumpstate/1.0/default/android.hardware.dumpstate@1.0-service.rc
@@ -0,0 +1,4 @@
+service dumpstate-1-0 /system/bin/hw/android.hardware.dumpstate@1.0-service
+ class hal
+ user system
+ group system
diff --git a/dumpstate/1.0/default/service.cpp b/dumpstate/1.0/default/service.cpp
new file mode 100644
index 000000000..0d5bd9411
--- /dev/null
+++ b/dumpstate/1.0/default/service.cpp
@@ -0,0 +1,34 @@
+/*
+ * 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.
+ */
+#define LOG_TAG "android.hardware.dumpstate@1.0-service"
+
+#include <hidl/HidlSupport.h>
+#include <hidl/HidlTransportSupport.h>
+
+#include "DumpstateDevice.h"
+
+using ::android::hardware::configureRpcThreadpool;
+using ::android::hardware::dumpstate::V1_0::IDumpstateDevice;
+using ::android::hardware::dumpstate::V1_0::implementation::DumpstateDevice;
+using ::android::hardware::joinRpcThreadpool;
+using ::android::sp;
+
+int main (int /* argc */, char * /* argv */ []) {
+ sp<IDumpstateDevice> dumpstate = new DumpstateDevice;
+ configureRpcThreadpool(1, true);
+ dumpstate->registerAsService("dumpstate");
+ joinRpcThreadpool();
+}