diff options
author | Felipe Leme <felipeal@google.com> | 2016-11-15 15:08:47 -0800 |
---|---|---|
committer | Felipe Leme <felipeal@google.com> | 2016-11-18 17:05:34 -0800 |
commit | e83f9fbc0294e49892ba3c3b4d8450543ed9c418 (patch) | |
tree | a398f06fddab4735947aca25bb711d96d067d7ba /dumpstate | |
parent | 17452436fb4b1c8171b7c24ea3d1cec04302eb9c (diff) | |
download | platform_hardware_interfaces-e83f9fbc0294e49892ba3c3b4d8450543ed9c418.tar.gz platform_hardware_interfaces-e83f9fbc0294e49892ba3c3b4d8450543ed9c418.tar.bz2 platform_hardware_interfaces-e83f9fbc0294e49892ba3c3b4d8450543ed9c418.zip |
Initial definition of the Dumpstate HIDL interfaces.
BUG: 31982882
Test: manually built it
Change-Id: I3dd1d681061d16059ec9cf67869f20759fb75cd0
Diffstat (limited to 'dumpstate')
-rw-r--r-- | dumpstate/1.0/Android.bp | 49 | ||||
-rw-r--r-- | dumpstate/1.0/IDumpstateDevice.hal | 24 | ||||
-rw-r--r-- | dumpstate/1.0/default/Android.mk | 22 | ||||
-rw-r--r-- | dumpstate/1.0/default/DumpstateDevice.cpp | 51 | ||||
-rw-r--r-- | dumpstate/1.0/default/DumpstateDevice.h | 36 | ||||
-rw-r--r-- | dumpstate/Android.bp | 4 |
6 files changed, 186 insertions, 0 deletions
diff --git a/dumpstate/1.0/Android.bp b/dumpstate/1.0/Android.bp new file mode 100644 index 0000000000..123275eb7d --- /dev/null +++ b/dumpstate/1.0/Android.bp @@ -0,0 +1,49 @@ +// This file is autogenerated by hidl-gen. Do not edit manually. + +genrule { + name: "android.hardware.dumpstate@1.0_genc++", + tools: ["hidl-gen"], + cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces android.hardware.dumpstate@1.0", + srcs: [ + "IDumpstateDevice.hal", + ], + out: [ + "android/hardware/dumpstate/1.0/DumpstateDeviceAll.cpp", + ], +} + +genrule { + name: "android.hardware.dumpstate@1.0_genc++_headers", + tools: ["hidl-gen"], + cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces android.hardware.dumpstate@1.0", + srcs: [ + "IDumpstateDevice.hal", + ], + out: [ + "android/hardware/dumpstate/1.0/IDumpstateDevice.h", + "android/hardware/dumpstate/1.0/IHwDumpstateDevice.h", + "android/hardware/dumpstate/1.0/BnDumpstateDevice.h", + "android/hardware/dumpstate/1.0/BpDumpstateDevice.h", + "android/hardware/dumpstate/1.0/BsDumpstateDevice.h", + ], +} + +cc_library_shared { + name: "android.hardware.dumpstate@1.0", + generated_sources: ["android.hardware.dumpstate@1.0_genc++"], + generated_headers: ["android.hardware.dumpstate@1.0_genc++_headers"], + export_generated_headers: ["android.hardware.dumpstate@1.0_genc++_headers"], + shared_libs: [ + "libhidlbase", + "libhidltransport", + "libhwbinder", + "libutils", + "libcutils", + ], + export_shared_lib_headers: [ + "libhidlbase", + "libhidltransport", + "libhwbinder", + "libutils", + ], +} diff --git a/dumpstate/1.0/IDumpstateDevice.hal b/dumpstate/1.0/IDumpstateDevice.hal new file mode 100644 index 0000000000..fec3eb4be9 --- /dev/null +++ b/dumpstate/1.0/IDumpstateDevice.hal @@ -0,0 +1,24 @@ +/* + * 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. + */ + +package android.hardware.dumpstate@1.0; + +interface IDumpstateDevice { + /* + * Dumps device-specific state into the given file descriptor. + */ + dumpstateBoard(handle h); +}; diff --git a/dumpstate/1.0/default/Android.mk b/dumpstate/1.0/default/Android.mk new file mode 100644 index 0000000000..4d5c9087e7 --- /dev/null +++ b/dumpstate/1.0/default/Android.mk @@ -0,0 +1,22 @@ +LOCAL_PATH := $(call my-dir) + +include $(CLEAR_VARS) +LOCAL_MODULE := android.hardware.dumpstate@1.0-impl +LOCAL_MODULE_RELATIVE_PATH := hw +LOCAL_SRC_FILES := \ + DumpstateDevice.cpp \ + +LOCAL_SHARED_LIBRARIES := \ + android.hardware.dumpstate@1.0 \ + libbase \ + libcutils \ + libhidlbase \ + libhidltransport \ + libhwbinder \ + liblog \ + libutils + +LOCAL_STATIC_LIBRARIES := \ + libdumpstateutil + +include $(BUILD_SHARED_LIBRARY) diff --git a/dumpstate/1.0/default/DumpstateDevice.cpp b/dumpstate/1.0/default/DumpstateDevice.cpp new file mode 100644 index 0000000000..fac4ff310f --- /dev/null +++ b/dumpstate/1.0/default/DumpstateDevice.cpp @@ -0,0 +1,51 @@ +#define LOG_TAG "dumpstate" + +#include "DumpstateDevice.h" + +#include <log/log.h> + +#include "DumpstateUtil.h" + +namespace android { +namespace hardware { +namespace dumpstate { +namespace V1_0 { +namespace implementation { + +// Methods from ::android::hardware::dumpstate::V1_0::IDumpstateDevice follow. +Return<void> DumpstateDevice::dumpstateBoard(const native_handle_t* handle) { + if (handle->numFds < 1) { + ALOGE("no FDs\n"); + return Void(); + } + + int fd = handle->data[0]; + if (fd < 0) { + ALOGE("invalid FD: %d\n", handle->data[0]); + return Void(); + } + ALOGD("DumpstateDevice::dumpstateBoard() FD: %d\n", fd); + ALOGI("Dumpstate HIDL not provided by device\n"); + dprintf(fd, "Dumpstate HIDL not provided by device; providing bogus data.\n"); + + // Shows some examples on how to use the libdumpstateutils API. + dprintf(fd, "Time now is: "); + RunCommandToFd(fd, {"/system/bin/date"}); + dprintf(fd, "Contents of a small file (/system/etc/hosts):\n"); + DumpFileToFd(fd, "/system/etc/hosts"); + + 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 +} // namespace hardware +} // namespace android diff --git a/dumpstate/1.0/default/DumpstateDevice.h b/dumpstate/1.0/default/DumpstateDevice.h new file mode 100644 index 0000000000..366888d54c --- /dev/null +++ b/dumpstate/1.0/default/DumpstateDevice.h @@ -0,0 +1,36 @@ +#ifndef ANDROID_HARDWARE_DUMPSTATE_V1_0_DUMPSTATEDEVICE_H +#define ANDROID_HARDWARE_DUMPSTATE_V1_0_DUMPSTATEDEVICE_H + +#include <android/hardware/dumpstate/1.0/IDumpstateDevice.h> +#include <hidl/MQDescriptor.h> +#include <hidl/Status.h> + +namespace android { +namespace hardware { +namespace dumpstate { +namespace V1_0 { +namespace implementation { + +using ::android::hardware::dumpstate::V1_0::IDumpstateDevice; +using ::android::hardware::hidl_array; +using ::android::hardware::hidl_string; +using ::android::hardware::hidl_vec; +using ::android::hardware::Return; +using ::android::hardware::Void; +using ::android::sp; + +struct DumpstateDevice : public IDumpstateDevice { + // Methods from ::android::hardware::dumpstate::V1_0::IDumpstateDevice follow. + Return<void> dumpstateBoard(const native_handle_t* fd) override; + +}; + +extern "C" IDumpstateDevice* HIDL_FETCH_IDumpstateDevice(const char* name); + +} // namespace implementation +} // namespace V1_0 +} // namespace dumpstate +} // namespace hardware +} // namespace android + +#endif // ANDROID_HARDWARE_DUMPSTATE_V1_0_DUMPSTATEDEVICE_H diff --git a/dumpstate/Android.bp b/dumpstate/Android.bp new file mode 100644 index 0000000000..bbb3e4bac0 --- /dev/null +++ b/dumpstate/Android.bp @@ -0,0 +1,4 @@ +// This is an autogenerated file, do not edit. +subdirs = [ + "1.0", +] |