diff --git a/benchmarks/msgq/1.0/Android.mk b/benchmarks/msgq/1.0/Android.mk new file mode 100644 index 0000000000..2f9acb337a --- /dev/null +++ b/benchmarks/msgq/1.0/Android.mk @@ -0,0 +1,33 @@ +LOCAL_PATH := $(call my-dir) +include $(CLEAR_VARS) + +LOCAL_MODULE := android.hardware.benchmarks.msgq@1.0 +LOCAL_MODULE_CLASS := SHARED_LIBRARIES + +intermediates := $(local-generated-sources-dir) + +HIDL := $(HOST_OUT_EXECUTABLES)/hidl-gen$(HOST_EXECUTABLE_SUFFIX) + +# +# Build IBenchmarkMsgQ.hal +# +GEN := $(intermediates)/android/hardware/benchmarks/msgq/1.0/BenchmarkMsgQAll.cpp +$(GEN): $(HIDL) +$(GEN): PRIVATE_HIDL := $(HIDL) +$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/IBenchmarkMsgQ.hal +$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates) +$(GEN): PRIVATE_CUSTOM_TOOL = \ + $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \ + -Lc++ -randroid.hardware:hardware/interfaces\ + android.hardware.benchmarks.msgq@1.0::$(patsubst %.hal,%,$(notdir $(PRIVATE_DEPS))) + +$(GEN): $(LOCAL_PATH)/IBenchmarkMsgQ.hal + $(transform-generated-source) +LOCAL_GENERATED_SOURCES += $(GEN) + +LOCAL_EXPORT_C_INCLUDE_DIRS := $(intermediates) +LOCAL_SHARED_LIBRARIES := \ + libhwbinder \ + libutils \ + +include $(BUILD_SHARED_LIBRARY) diff --git a/benchmarks/msgq/1.0/IBenchmarkMsgQ.hal b/benchmarks/msgq/1.0/IBenchmarkMsgQ.hal new file mode 100644 index 0000000000..8f84c0a32d --- /dev/null +++ b/benchmarks/msgq/1.0/IBenchmarkMsgQ.hal @@ -0,0 +1,30 @@ +package android.hardware.benchmarks.msgq@1.0; + +interface IBenchmarkMsgQ { + + struct shm_t { + uint32_t fdIndex; + uint32_t offset; + uint32_t extent; + }; + struct WireGrantorDescriptor { + uint32_t flags; + shm_t shm; + }; + + struct WireMQDescriptor { + vec grantors; + handle mq_handle; + uint32_t quantum; + uint32_t nQuanta; + uint32_t flags; + }; + + ConfigureClientInbox() generates ( WireMQDescriptor mq_desc_in ); + ConfigureClientOutbox() generates ( WireMQDescriptor mq_desc_out ); + RequestWrite (int32_t count) generates (int32_t ret); + RequestRead(int32_t count) generates (int32_t ret); + BenchmarkPingPong(uint32_t numIter); + BenchmarkServiceWriteClientRead(uint32_t numIter); + SendTimeData(vec time_data); +};