configstore: configstore HAL is up-revisioned to 1.1

This change provides a reference implementation of the configstore HAL
v1.1.

Bug: 37727469
Test: Built sailfish-userdebug and configstore-1.1 works
Change-Id: I75e7fd1da8e90ae48d779a3ba28957c5a93a5529
This commit is contained in:
Jaesoo Lee 2017-04-28 18:29:40 +09:00
parent 33b92997c5
commit 812e85e126
12 changed files with 229 additions and 45 deletions

View file

@ -55,3 +55,4 @@ $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/etc/init/android.hardware.bl
$(call add-clean-step, rm -rf $(OUT)/soong/.intermediates/) $(call add-clean-step, rm -rf $(OUT)/soong/.intermediates/)
$(call add-clean-step, rm -rf $(OUT_DIR)/soong/.intermediates/hardware/interfaces/) $(call add-clean-step, rm -rf $(OUT_DIR)/soong/.intermediates/hardware/interfaces/)
$(call add-clean-step, rm -rf $(OUT_DIR)/soong/.intermediates/hardware/interfaces/) $(call add-clean-step, rm -rf $(OUT_DIR)/soong/.intermediates/hardware/interfaces/)
$(call add-clean-step, find $(PRODUCT_OUT)/system $(PRODUCT_OUT)/vendor -type f -name "android\.hardware\.configstore*" -print0 | xargs -0 rm -f)

View file

@ -1,4 +0,0 @@
service configstore-hal-1-0 /vendor/bin/hw/android.hardware.configstore@1.0-service
class hal animation
user system
group system

View file

@ -0,0 +1,60 @@
// This file is autogenerated by hidl-gen. Do not edit manually.
filegroup {
name: "android.hardware.configstore@1.1_hal",
srcs: [
"ISurfaceFlingerConfigs.hal",
],
}
genrule {
name: "android.hardware.configstore@1.1_genc++",
tools: ["hidl-gen"],
cmd: "$(location hidl-gen) -o $(genDir) -Lc++-sources -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.configstore@1.1",
srcs: [
":android.hardware.configstore@1.1_hal",
],
out: [
"android/hardware/configstore/1.1/SurfaceFlingerConfigsAll.cpp",
],
}
genrule {
name: "android.hardware.configstore@1.1_genc++_headers",
tools: ["hidl-gen"],
cmd: "$(location hidl-gen) -o $(genDir) -Lc++-headers -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.configstore@1.1",
srcs: [
":android.hardware.configstore@1.1_hal",
],
out: [
"android/hardware/configstore/1.1/ISurfaceFlingerConfigs.h",
"android/hardware/configstore/1.1/IHwSurfaceFlingerConfigs.h",
"android/hardware/configstore/1.1/BnHwSurfaceFlingerConfigs.h",
"android/hardware/configstore/1.1/BpHwSurfaceFlingerConfigs.h",
"android/hardware/configstore/1.1/BsSurfaceFlingerConfigs.h",
],
}
cc_library_shared {
name: "android.hardware.configstore@1.1",
generated_sources: ["android.hardware.configstore@1.1_genc++"],
generated_headers: ["android.hardware.configstore@1.1_genc++_headers"],
export_generated_headers: ["android.hardware.configstore@1.1_genc++_headers"],
vendor_available: true,
shared_libs: [
"libhidlbase",
"libhidltransport",
"libhwbinder",
"liblog",
"libutils",
"libcutils",
"android.hardware.configstore@1.0",
],
export_shared_lib_headers: [
"libhidlbase",
"libhidltransport",
"libhwbinder",
"libutils",
"android.hardware.configstore@1.0",
],
}

View file

@ -0,0 +1,78 @@
# This file is autogenerated by hidl-gen. Do not edit manually.
LOCAL_PATH := $(call my-dir)
################################################################################
include $(CLEAR_VARS)
LOCAL_MODULE := android.hardware.configstore-V1.1-java
LOCAL_MODULE_CLASS := JAVA_LIBRARIES
intermediates := $(call local-generated-sources-dir, COMMON)
HIDL := $(HOST_OUT_EXECUTABLES)/hidl-gen$(HOST_EXECUTABLE_SUFFIX)
LOCAL_JAVA_LIBRARIES := \
android.hardware.configstore-V1.0-java \
android.hidl.base-V1.0-java \
#
# Build ISurfaceFlingerConfigs.hal
#
GEN := $(intermediates)/android/hardware/configstore/V1_1/ISurfaceFlingerConfigs.java
$(GEN): $(HIDL)
$(GEN): PRIVATE_HIDL := $(HIDL)
$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/ISurfaceFlingerConfigs.hal
$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
$(GEN): PRIVATE_CUSTOM_TOOL = \
$(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
-Ljava \
-randroid.hardware:hardware/interfaces \
-randroid.hidl:system/libhidl/transport \
android.hardware.configstore@1.1::ISurfaceFlingerConfigs
$(GEN): $(LOCAL_PATH)/ISurfaceFlingerConfigs.hal
$(transform-generated-source)
LOCAL_GENERATED_SOURCES += $(GEN)
include $(BUILD_JAVA_LIBRARY)
################################################################################
include $(CLEAR_VARS)
LOCAL_MODULE := android.hardware.configstore-V1.1-java-static
LOCAL_MODULE_CLASS := JAVA_LIBRARIES
intermediates := $(call local-generated-sources-dir, COMMON)
HIDL := $(HOST_OUT_EXECUTABLES)/hidl-gen$(HOST_EXECUTABLE_SUFFIX)
LOCAL_STATIC_JAVA_LIBRARIES := \
android.hardware.configstore-V1.0-java-static \
android.hidl.base-V1.0-java-static \
#
# Build ISurfaceFlingerConfigs.hal
#
GEN := $(intermediates)/android/hardware/configstore/V1_1/ISurfaceFlingerConfigs.java
$(GEN): $(HIDL)
$(GEN): PRIVATE_HIDL := $(HIDL)
$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/ISurfaceFlingerConfigs.hal
$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
$(GEN): PRIVATE_CUSTOM_TOOL = \
$(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
-Ljava \
-randroid.hardware:hardware/interfaces \
-randroid.hidl:system/libhidl/transport \
android.hardware.configstore@1.1::ISurfaceFlingerConfigs
$(GEN): $(LOCAL_PATH)/ISurfaceFlingerConfigs.hal
$(transform-generated-source)
LOCAL_GENERATED_SOURCES += $(GEN)
include $(BUILD_STATIC_JAVA_LIBRARY)
include $(call all-makefiles-under,$(LOCAL_PATH))

View file

@ -0,0 +1,25 @@
/*
* Copyright (C) 2017 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.1 (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.1
*
* 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.configstore@1.1;
import @1.0::ISurfaceFlingerConfigs;
/**
* New revision of ISurfaceFlingerConfigs
*/
interface ISurfaceFlingerConfigs extends @1.0::ISurfaceFlingerConfigs {
};

View file

@ -2,17 +2,18 @@ LOCAL_PATH := $(call my-dir)
################################################################################ ################################################################################
include $(CLEAR_VARS) include $(CLEAR_VARS)
LOCAL_MODULE := android.hardware.configstore@1.0-service LOCAL_MODULE := android.hardware.configstore@1.1-service
LOCAL_PROPRIETARY_MODULE := true LOCAL_PROPRIETARY_MODULE := true
LOCAL_MODULE_CLASS := EXECUTABLES LOCAL_MODULE_CLASS := EXECUTABLES
LOCAL_MODULE_RELATIVE_PATH := hw LOCAL_MODULE_RELATIVE_PATH := hw
LOCAL_INIT_RC := android.hardware.configstore@1.0-service.rc LOCAL_INIT_RC := android.hardware.configstore@1.1-service.rc
LOCAL_SRC_FILES:= service.cpp LOCAL_SRC_FILES:= service.cpp
include $(LOCAL_PATH)/surfaceflinger.mk include $(LOCAL_PATH)/surfaceflinger.mk
LOCAL_SHARED_LIBRARIES := \ LOCAL_SHARED_LIBRARIES := \
android.hardware.configstore@1.0 \ android.hardware.configstore@1.0 \
android.hardware.configstore@1.1 \
libhidlbase \ libhidlbase \
libhidltransport \ libhidltransport \
libbase \ libbase \

View file

@ -1,14 +1,29 @@
#include "SurfaceFlingerConfigs.h" /*
* Copyright (C) 2017 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.1 (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.1
*
* 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-base/logging.h> #include "SurfaceFlingerConfigs.h"
namespace android { namespace android {
namespace hardware { namespace hardware {
namespace configstore { namespace configstore {
namespace V1_0 { namespace V1_1 {
namespace implementation { namespace implementation {
// Methods from ::android::hardware::configstore::V1_0::ISurfaceFlingerConfigs follow. // Methods from ::android::hardware::configstore::V1_0::ISurfaceFlingerConfigs
// follow.
Return<void> SurfaceFlingerConfigs::vsyncEventPhaseOffsetNs(vsyncEventPhaseOffsetNs_cb _hidl_cb) { Return<void> SurfaceFlingerConfigs::vsyncEventPhaseOffsetNs(vsyncEventPhaseOffsetNs_cb _hidl_cb) {
#ifdef VSYNC_EVENT_PHASE_OFFSET_NS #ifdef VSYNC_EVENT_PHASE_OFFSET_NS
_hidl_cb({true, VSYNC_EVENT_PHASE_OFFSET_NS}); _hidl_cb({true, VSYNC_EVENT_PHASE_OFFSET_NS});
@ -36,7 +51,8 @@ Return<void> SurfaceFlingerConfigs::useContextPriority(useContextPriority_cb _hi
return Void(); return Void();
} }
Return<void> SurfaceFlingerConfigs::maxFrameBufferAcquiredBuffers(maxFrameBufferAcquiredBuffers_cb _hidl_cb) { Return<void> SurfaceFlingerConfigs::maxFrameBufferAcquiredBuffers(
maxFrameBufferAcquiredBuffers_cb _hidl_cb) {
#ifdef NUM_FRAMEBUFFER_SURFACE_BUFFERS #ifdef NUM_FRAMEBUFFER_SURFACE_BUFFERS
_hidl_cb({true, NUM_FRAMEBUFFER_SURFACE_BUFFERS}); _hidl_cb({true, NUM_FRAMEBUFFER_SURFACE_BUFFERS});
#else #else
@ -72,13 +88,14 @@ Return<void> SurfaceFlingerConfigs::hasHDRDisplay(hasHDRDisplay_cb _hidl_cb) {
return Void(); return Void();
} }
Return<void> SurfaceFlingerConfigs::presentTimeOffsetFromVSyncNs(presentTimeOffsetFromVSyncNs_cb _hidl_cb) { Return<void> SurfaceFlingerConfigs::presentTimeOffsetFromVSyncNs(
presentTimeOffsetFromVSyncNs_cb _hidl_cb) {
#ifdef PRESENT_TIME_OFFSET_FROM_VSYNC_NS #ifdef PRESENT_TIME_OFFSET_FROM_VSYNC_NS
_hidl_cb({true, PRESENT_TIME_OFFSET_FROM_VSYNC_NS}); _hidl_cb({true, PRESENT_TIME_OFFSET_FROM_VSYNC_NS});
#else #else
_hidl_cb({false, 0}); _hidl_cb({false, 0});
#endif #endif
return Void(); return Void();
} }
Return<void> SurfaceFlingerConfigs::useHwcForRGBtoYUV(useHwcForRGBtoYUV_cb _hidl_cb) { Return<void> SurfaceFlingerConfigs::useHwcForRGBtoYUV(useHwcForRGBtoYUV_cb _hidl_cb) {
@ -91,14 +108,14 @@ Return<void> SurfaceFlingerConfigs::useHwcForRGBtoYUV(useHwcForRGBtoYUV_cb _hidl
} }
Return<void> SurfaceFlingerConfigs::maxVirtualDisplaySize(maxVirtualDisplaySize_cb _hidl_cb) { Return<void> SurfaceFlingerConfigs::maxVirtualDisplaySize(maxVirtualDisplaySize_cb _hidl_cb) {
uint64_t maxSize = 0; uint64_t maxSize = 0;
#ifdef MAX_VIRTUAL_DISPLAY_DIMENSION #ifdef MAX_VIRTUAL_DISPLAY_DIMENSION
maxSize = MAX_VIRTUAL_DISPLAY_DIMENSION; maxSize = MAX_VIRTUAL_DISPLAY_DIMENSION;
_hidl_cb({true, maxSize}); _hidl_cb({true, maxSize});
#else #else
_hidl_cb({false, maxSize}); _hidl_cb({false, maxSize});
#endif #endif
return Void(); return Void();
} }
Return<void> SurfaceFlingerConfigs::useVrFlinger(useVrFlinger_cb _hidl_cb) { Return<void> SurfaceFlingerConfigs::useVrFlinger(useVrFlinger_cb _hidl_cb) {
@ -122,8 +139,13 @@ Return<void> SurfaceFlingerConfigs::startGraphicsAllocatorService(
return Void(); return Void();
} }
// Methods from ::android::hardware::configstore::V1_1::ISurfaceFlingerConfigs
// follow.
// Methods from ::android::hidl::base::V1_0::IBase follow.
} // namespace implementation } // namespace implementation
} // namespace V1_0 } // namespace V1_1
} // namespace configstore } // namespace configstore
} // namespace hardware } // namespace hardware
} // namespace android } // namespace android

View file

@ -1,31 +1,26 @@
#ifndef ANDROID_HARDWARE_CONFIGSTORE_V1_0_SURFACEFLINGERCONFIGS_H #ifndef ANDROID_HARDWARE_CONFIGSTORE_V1_1_SURFACEFLINGERCONFIGS_H
#define ANDROID_HARDWARE_CONFIGSTORE_V1_0_SURFACEFLINGERCONFIGS_H #define ANDROID_HARDWARE_CONFIGSTORE_V1_1_SURFACEFLINGERCONFIGS_H
#include <android/hardware/configstore/1.0/ISurfaceFlingerConfigs.h> #include <android/hardware/configstore/1.1/ISurfaceFlingerConfigs.h>
#include <hidl/MQDescriptor.h> #include <hidl/MQDescriptor.h>
#include <hidl/Status.h> #include <hidl/Status.h>
namespace android { namespace android {
namespace hardware { namespace hardware {
namespace configstore { namespace configstore {
namespace V1_0 { namespace V1_1 {
namespace implementation { namespace implementation {
using ::android::hardware::configstore::V1_0::ISurfaceFlingerConfigs; using ::android::hardware::configstore::V1_1::ISurfaceFlingerConfigs;
using ::android::hardware::configstore::V1_0::OptionalBool;
using ::android::hidl::base::V1_0::IBase;
using ::android::hardware::hidl_array;
using ::android::hardware::hidl_memory;
using ::android::hardware::hidl_string;
using ::android::hardware::hidl_vec;
using ::android::hardware::Return; using ::android::hardware::Return;
using ::android::hardware::Void; using ::android::hardware::Void;
using ::android::sp; using ::android::sp;
struct SurfaceFlingerConfigs : public ISurfaceFlingerConfigs { struct SurfaceFlingerConfigs : public ISurfaceFlingerConfigs {
// Methods from ::android::hardware::configstore::V1_0::ISurfaceFlingerConfigs follow. // Methods from
// ::android::hardware::configstore::V1_0::ISurfaceFlingerConfigs follow.
Return<void> vsyncEventPhaseOffsetNs(vsyncEventPhaseOffsetNs_cb _hidl_cb) override; Return<void> vsyncEventPhaseOffsetNs(vsyncEventPhaseOffsetNs_cb _hidl_cb) override;
Return<void> vsyncSfEventPhaseOffsetNs(vsyncEventPhaseOffsetNs_cb _hidl_cb) override; Return<void> vsyncSfEventPhaseOffsetNs(vsyncSfEventPhaseOffsetNs_cb _hidl_cb) override;
Return<void> useContextPriority(useContextPriority_cb _hidl_cb) override; Return<void> useContextPriority(useContextPriority_cb _hidl_cb) override;
Return<void> hasWideColorDisplay(hasWideColorDisplay_cb _hidl_cb) override; Return<void> hasWideColorDisplay(hasWideColorDisplay_cb _hidl_cb) override;
Return<void> hasHDRDisplay(hasHDRDisplay_cb _hidl_cb) override; Return<void> hasHDRDisplay(hasHDRDisplay_cb _hidl_cb) override;
@ -35,17 +30,18 @@ struct SurfaceFlingerConfigs : public ISurfaceFlingerConfigs {
Return<void> hasSyncFramework(hasSyncFramework_cb _hidl_cb) override; Return<void> hasSyncFramework(hasSyncFramework_cb _hidl_cb) override;
Return<void> useVrFlinger(useVrFlinger_cb _hidl_cb) override; Return<void> useVrFlinger(useVrFlinger_cb _hidl_cb) override;
Return<void> maxFrameBufferAcquiredBuffers(maxFrameBufferAcquiredBuffers_cb _hidl_cb) override; Return<void> maxFrameBufferAcquiredBuffers(maxFrameBufferAcquiredBuffers_cb _hidl_cb) override;
Return<void> startGraphicsAllocatorService( Return<void> startGraphicsAllocatorService(startGraphicsAllocatorService_cb _hidl_cb) override;
startGraphicsAllocatorService_cb _hidl_cb) override;
// Methods from
// ::android::hardware::configstore::V1_1::ISurfaceFlingerConfigs follow.
// Methods from ::android::hidl::base::V1_0::IBase follow. // Methods from ::android::hidl::base::V1_0::IBase follow.
}; };
} // namespace implementation } // namespace implementation
} // namespace V1_0 } // namespace V1_1
} // namespace configstore } // namespace configstore
} // namespace hardware } // namespace hardware
} // namespace android } // namespace android
#endif // ANDROID_HARDWARE_CONFIGSTORE_V1_0_SURFACEFLINGERCONFIGS_H #endif // ANDROID_HARDWARE_CONFIGSTORE_V1_1_SURFACEFLINGERCONFIGS_H

View file

@ -0,0 +1,4 @@
service configstore-hal /vendor/bin/hw/android.hardware.configstore@1.1-service
class hal animation
user system
group system

View file

@ -1,11 +1,11 @@
/* /*
* Copyright (C) 2017 The Android Open Source Project * Copyright (C) 2017 The Android Open Source Project
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.1 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
* You may obtain a copy of the License at * You may obtain a copy of the License at
* *
* http://www.apache.org/licenses/LICENSE-2.0 * http://www.apache.org/licenses/LICENSE-2.1
* *
* Unless required by applicable law or agreed to in writing, software * Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, * distributed under the License is distributed on an "AS IS" BASIS,
@ -14,17 +14,17 @@
* limitations under the License. * limitations under the License.
*/ */
#define LOG_TAG "android.hardware.configstore@1.0-service" #define LOG_TAG "android.hardware.configstore@1.1-service"
#include <android/hardware/configstore/1.0/ISurfaceFlingerConfigs.h> #include <android/hardware/configstore/1.1/ISurfaceFlingerConfigs.h>
#include <hidl/HidlTransportSupport.h> #include <hidl/HidlTransportSupport.h>
#include "SurfaceFlingerConfigs.h" #include "SurfaceFlingerConfigs.h"
using android::hardware::configureRpcThreadpool; using android::hardware::configureRpcThreadpool;
using android::hardware::joinRpcThreadpool; using android::hardware::joinRpcThreadpool;
using android::hardware::configstore::V1_0::ISurfaceFlingerConfigs; using android::hardware::configstore::V1_1::ISurfaceFlingerConfigs;
using android::hardware::configstore::V1_0::implementation::SurfaceFlingerConfigs; using android::hardware::configstore::V1_1::implementation::SurfaceFlingerConfigs;
using android::sp; using android::sp;
using android::status_t; using android::status_t;
using android::OK; using android::OK;

View file

@ -2,5 +2,6 @@
subdirs = [ subdirs = [
"1.0", "1.0",
"1.0/vts/functional", "1.0/vts/functional",
"1.1",
"utils", "utils",
] ]