Loading cmds/flatland/GLHelper.cpp +1 −1 Original line number Original line Diff line number Diff line Loading @@ -241,7 +241,7 @@ bool GLHelper::createWindowSurface(uint32_t w, uint32_t h, status_t err; status_t err; if (mSurfaceComposerClient == nullptr) { if (mSurfaceComposerClient == nullptr) { mSurfaceComposerClient = new SurfaceComposerClient; mSurfaceComposerClient = sp<SurfaceComposerClient>::make(); } } err = mSurfaceComposerClient->initCheck(); err = mSurfaceComposerClient->initCheck(); if (err != NO_ERROR) { if (err != NO_ERROR) { Loading include/powermanager/PowerHalController.h +3 −0 Original line number Original line Diff line number Diff line Loading @@ -73,6 +73,9 @@ public: int tgid, int uid) override; int tgid, int uid) override; virtual HalResult<void> closeSessionChannel(int tgid, int uid) override; virtual HalResult<void> closeSessionChannel(int tgid, int uid) override; virtual HalResult<aidl::android::hardware::power::SupportInfo> getSupportInfo() override; virtual HalResult<aidl::android::hardware::power::SupportInfo> getSupportInfo() override; virtual HalResult<void> sendCompositionData( const std::vector<hal::CompositionData>& data) override; virtual HalResult<void> sendCompositionUpdate(const hal::CompositionUpdate& update) override; private: private: std::mutex mConnectedHalMutex; std::mutex mConnectedHalMutex; Loading include/powermanager/PowerHalWrapper.h +31 −39 Original line number Original line Diff line number Diff line Loading @@ -18,6 +18,8 @@ #include <aidl/android/hardware/power/Boost.h> #include <aidl/android/hardware/power/Boost.h> #include <aidl/android/hardware/power/ChannelConfig.h> #include <aidl/android/hardware/power/ChannelConfig.h> #include <aidl/android/hardware/power/CompositionData.h> #include <aidl/android/hardware/power/CompositionUpdate.h> #include <aidl/android/hardware/power/IPower.h> #include <aidl/android/hardware/power/IPower.h> #include <aidl/android/hardware/power/IPowerHintSession.h> #include <aidl/android/hardware/power/IPowerHintSession.h> #include <aidl/android/hardware/power/Mode.h> #include <aidl/android/hardware/power/Mode.h> Loading @@ -37,6 +39,8 @@ namespace android { namespace power { namespace power { namespace hal = aidl::android::hardware::power; // State of Power HAL support for individual apis. // State of Power HAL support for individual apis. enum class HalSupport { enum class HalSupport { UNKNOWN = 0, UNKNOWN = 0, Loading @@ -49,21 +53,20 @@ class HalWrapper { public: public: virtual ~HalWrapper() = default; virtual ~HalWrapper() = default; virtual HalResult<void> setBoost(aidl::android::hardware::power::Boost boost, virtual HalResult<void> setBoost(hal::Boost boost, int32_t durationMs) = 0; int32_t durationMs) = 0; virtual HalResult<void> setMode(hal::Mode mode, bool enabled) = 0; virtual HalResult<void> setMode(aidl::android::hardware::power::Mode mode, bool enabled) = 0; virtual HalResult<std::shared_ptr<PowerHintSessionWrapper>> createHintSession( virtual HalResult<std::shared_ptr<PowerHintSessionWrapper>> createHintSession( int32_t tgid, int32_t uid, const std::vector<int32_t>& threadIds, int32_t tgid, int32_t uid, const std::vector<int32_t>& threadIds, int64_t durationNanos) = 0; int64_t durationNanos) = 0; virtual HalResult<std::shared_ptr<PowerHintSessionWrapper>> createHintSessionWithConfig( virtual HalResult<std::shared_ptr<PowerHintSessionWrapper>> createHintSessionWithConfig( int32_t tgid, int32_t uid, const std::vector<int32_t>& threadIds, int64_t durationNanos, int32_t tgid, int32_t uid, const std::vector<int32_t>& threadIds, int64_t durationNanos, aidl::android::hardware::power::SessionTag tag, hal::SessionTag tag, hal::SessionConfig* config) = 0; aidl::android::hardware::power::SessionConfig* config) = 0; virtual HalResult<int64_t> getHintSessionPreferredRate() = 0; virtual HalResult<int64_t> getHintSessionPreferredRate() = 0; virtual HalResult<aidl::android::hardware::power::ChannelConfig> getSessionChannel(int tgid, virtual HalResult<hal::ChannelConfig> getSessionChannel(int tgid, int uid) = 0; int uid) = 0; virtual HalResult<void> closeSessionChannel(int tgid, int uid) = 0; virtual HalResult<void> closeSessionChannel(int tgid, int uid) = 0; virtual HalResult<aidl::android::hardware::power::SupportInfo> getSupportInfo() = 0; virtual HalResult<aidl::android::hardware::power::SupportInfo> getSupportInfo() = 0; virtual HalResult<void> sendCompositionData(const std::vector<hal::CompositionData>& data) = 0; virtual HalResult<void> sendCompositionUpdate(const hal::CompositionUpdate& update) = 0; }; }; // Empty Power HAL wrapper that ignores all api calls. // Empty Power HAL wrapper that ignores all api calls. Loading @@ -72,21 +75,20 @@ public: EmptyHalWrapper() = default; EmptyHalWrapper() = default; ~EmptyHalWrapper() override = default; ~EmptyHalWrapper() override = default; HalResult<void> setBoost(aidl::android::hardware::power::Boost boost, HalResult<void> setBoost(hal::Boost boost, int32_t durationMs) override; int32_t durationMs) override; HalResult<void> setMode(hal::Mode mode, bool enabled) override; HalResult<void> setMode(aidl::android::hardware::power::Mode mode, bool enabled) override; HalResult<std::shared_ptr<PowerHintSessionWrapper>> createHintSession( HalResult<std::shared_ptr<PowerHintSessionWrapper>> createHintSession( int32_t tgid, int32_t uid, const std::vector<int32_t>& threadIds, int32_t tgid, int32_t uid, const std::vector<int32_t>& threadIds, int64_t durationNanos) override; int64_t durationNanos) override; HalResult<std::shared_ptr<PowerHintSessionWrapper>> createHintSessionWithConfig( HalResult<std::shared_ptr<PowerHintSessionWrapper>> createHintSessionWithConfig( int32_t tgid, int32_t uid, const std::vector<int32_t>& threadIds, int64_t durationNanos, int32_t tgid, int32_t uid, const std::vector<int32_t>& threadIds, int64_t durationNanos, aidl::android::hardware::power::SessionTag tag, hal::SessionTag tag, hal::SessionConfig* config) override; aidl::android::hardware::power::SessionConfig* config) override; HalResult<int64_t> getHintSessionPreferredRate() override; HalResult<int64_t> getHintSessionPreferredRate() override; HalResult<aidl::android::hardware::power::ChannelConfig> getSessionChannel(int tgid, HalResult<hal::ChannelConfig> getSessionChannel(int tgid, int uid) override; int uid) override; HalResult<void> closeSessionChannel(int tgid, int uid) override; HalResult<void> closeSessionChannel(int tgid, int uid) override; HalResult<aidl::android::hardware::power::SupportInfo> getSupportInfo() override; HalResult<aidl::android::hardware::power::SupportInfo> getSupportInfo() override; HalResult<void> sendCompositionData(const std::vector<hal::CompositionData>& data) override; HalResult<void> sendCompositionUpdate(const hal::CompositionUpdate& update) override; protected: protected: virtual const char* getUnsupportedMessage(); virtual const char* getUnsupportedMessage(); Loading @@ -99,9 +101,8 @@ public: : mHandleV1_0(std::move(handleV1_0)) {} : mHandleV1_0(std::move(handleV1_0)) {} ~HidlHalWrapperV1_0() override = default; ~HidlHalWrapperV1_0() override = default; HalResult<void> setBoost(aidl::android::hardware::power::Boost boost, HalResult<void> setBoost(hal::Boost boost, int32_t durationMs) override; int32_t durationMs) override; HalResult<void> setMode(hal::Mode mode, bool enabled) override; HalResult<void> setMode(aidl::android::hardware::power::Mode mode, bool enabled) override; protected: protected: const sp<hardware::power::V1_0::IPower> mHandleV1_0; const sp<hardware::power::V1_0::IPower> mHandleV1_0; Loading @@ -127,9 +128,8 @@ protected: // Wrapper for the HIDL Power HAL v1.2. // Wrapper for the HIDL Power HAL v1.2. class HidlHalWrapperV1_2 : public HidlHalWrapperV1_1 { class HidlHalWrapperV1_2 : public HidlHalWrapperV1_1 { public: public: HalResult<void> setBoost(aidl::android::hardware::power::Boost boost, HalResult<void> setBoost(hal::Boost boost, int32_t durationMs) override; int32_t durationMs) override; HalResult<void> setMode(hal::Mode mode, bool enabled) override; HalResult<void> setMode(aidl::android::hardware::power::Mode mode, bool enabled) override; explicit HidlHalWrapperV1_2(sp<hardware::power::V1_2::IPower> handleV1_2) explicit HidlHalWrapperV1_2(sp<hardware::power::V1_2::IPower> handleV1_2) : HidlHalWrapperV1_1(std::move(handleV1_2)) {} : HidlHalWrapperV1_1(std::move(handleV1_2)) {} ~HidlHalWrapperV1_2() override = default; ~HidlHalWrapperV1_2() override = default; Loading @@ -141,7 +141,7 @@ protected: // Wrapper for the HIDL Power HAL v1.3. // Wrapper for the HIDL Power HAL v1.3. class HidlHalWrapperV1_3 : public HidlHalWrapperV1_2 { class HidlHalWrapperV1_3 : public HidlHalWrapperV1_2 { public: public: HalResult<void> setMode(aidl::android::hardware::power::Mode mode, bool enabled) override; HalResult<void> setMode(hal::Mode mode, bool enabled) override; explicit HidlHalWrapperV1_3(sp<hardware::power::V1_3::IPower> handleV1_3) explicit HidlHalWrapperV1_3(sp<hardware::power::V1_3::IPower> handleV1_3) : HidlHalWrapperV1_2(std::move(handleV1_3)) {} : HidlHalWrapperV1_2(std::move(handleV1_3)) {} ~HidlHalWrapperV1_3() override = default; ~HidlHalWrapperV1_3() override = default; Loading @@ -153,26 +153,24 @@ protected: // Wrapper for the AIDL Power HAL. // Wrapper for the AIDL Power HAL. class AidlHalWrapper : public EmptyHalWrapper { class AidlHalWrapper : public EmptyHalWrapper { public: public: explicit AidlHalWrapper(std::shared_ptr<aidl::android::hardware::power::IPower> handle) explicit AidlHalWrapper(std::shared_ptr<hal::IPower> handle) : mHandle(std::move(handle)) {} : mHandle(std::move(handle)) {} ~AidlHalWrapper() override = default; ~AidlHalWrapper() override = default; HalResult<void> setBoost(aidl::android::hardware::power::Boost boost, HalResult<void> setBoost(hal::Boost boost, int32_t durationMs) override; int32_t durationMs) override; HalResult<void> setMode(hal::Mode mode, bool enabled) override; HalResult<void> setMode(aidl::android::hardware::power::Mode mode, bool enabled) override; HalResult<std::shared_ptr<PowerHintSessionWrapper>> createHintSession( HalResult<std::shared_ptr<PowerHintSessionWrapper>> createHintSession( int32_t tgid, int32_t uid, const std::vector<int32_t>& threadIds, int32_t tgid, int32_t uid, const std::vector<int32_t>& threadIds, int64_t durationNanos) override; int64_t durationNanos) override; HalResult<std::shared_ptr<PowerHintSessionWrapper>> createHintSessionWithConfig( HalResult<std::shared_ptr<PowerHintSessionWrapper>> createHintSessionWithConfig( int32_t tgid, int32_t uid, const std::vector<int32_t>& threadIds, int64_t durationNanos, int32_t tgid, int32_t uid, const std::vector<int32_t>& threadIds, int64_t durationNanos, aidl::android::hardware::power::SessionTag tag, hal::SessionTag tag, hal::SessionConfig* config) override; aidl::android::hardware::power::SessionConfig* config) override; HalResult<int64_t> getHintSessionPreferredRate() override; HalResult<int64_t> getHintSessionPreferredRate() override; HalResult<aidl::android::hardware::power::ChannelConfig> getSessionChannel(int tgid, HalResult<hal::ChannelConfig> getSessionChannel(int tgid, int uid) override; int uid) override; HalResult<void> closeSessionChannel(int tgid, int uid) override; HalResult<void> closeSessionChannel(int tgid, int uid) override; HalResult<aidl::android::hardware::power::SupportInfo> getSupportInfo() override; HalResult<aidl::android::hardware::power::SupportInfo> getSupportInfo() override; HalResult<void> sendCompositionData(const std::vector<hal::CompositionData>& data) override; HalResult<void> sendCompositionUpdate(const hal::CompositionUpdate& update) override; protected: protected: const char* getUnsupportedMessage() override; const char* getUnsupportedMessage() override; Loading @@ -181,16 +179,10 @@ private: // Control access to the boost and mode supported arrays. // Control access to the boost and mode supported arrays. std::mutex mBoostMutex; std::mutex mBoostMutex; std::mutex mModeMutex; std::mutex mModeMutex; std::shared_ptr<aidl::android::hardware::power::IPower> mHandle; std::shared_ptr<hal::IPower> mHandle; std::array<HalSupport, std::array<HalSupport, static_cast<int32_t>(*(ndk::enum_range<hal::Boost>().end() - 1)) + 1> static_cast<int32_t>( *(ndk::enum_range<aidl::android::hardware::power::Boost>().end() - 1)) + 1> mBoostSupportedArray GUARDED_BY(mBoostMutex) = {HalSupport::UNKNOWN}; mBoostSupportedArray GUARDED_BY(mBoostMutex) = {HalSupport::UNKNOWN}; std::array<HalSupport, std::array<HalSupport, static_cast<int32_t>(*(ndk::enum_range<hal::Mode>().end() - 1)) + 1> static_cast<int32_t>( *(ndk::enum_range<aidl::android::hardware::power::Mode>().end() - 1)) + 1> mModeSupportedArray GUARDED_BY(mModeMutex) = {HalSupport::UNKNOWN}; mModeSupportedArray GUARDED_BY(mModeMutex) = {HalSupport::UNKNOWN}; }; }; Loading include/powermanager/PowerHintSessionWrapper.h +2 −0 Original line number Original line Diff line number Diff line Loading @@ -45,9 +45,11 @@ public: virtual HalResult<void> setMode(::aidl::android::hardware::power::SessionMode in_type, virtual HalResult<void> setMode(::aidl::android::hardware::power::SessionMode in_type, bool in_enabled); bool in_enabled); virtual HalResult<aidl::android::hardware::power::SessionConfig> getSessionConfig(); virtual HalResult<aidl::android::hardware::power::SessionConfig> getSessionConfig(); std::optional<int> getSessionId(); private: private: std::shared_ptr<aidl::android::hardware::power::IPowerHintSession> mSession; std::shared_ptr<aidl::android::hardware::power::IPowerHintSession> mSession; std::optional<int> mSessionId; int32_t mInterfaceVersion; int32_t mInterfaceVersion; }; }; Loading libs/binder/Binder.cpp +3 −0 Original line number Original line Diff line number Diff line Loading @@ -445,6 +445,9 @@ status_t BBinder::linkToDeath( const sp<DeathRecipient>& /*recipient*/, void* /*cookie*/, const sp<DeathRecipient>& /*recipient*/, void* /*cookie*/, uint32_t /*flags*/) uint32_t /*flags*/) { { // BBinder::linkToDeath is invalid because this process owns this binder. // The DeathRecipient is called on BpBinders when the process owning the // binder node dies. return INVALID_OPERATION; return INVALID_OPERATION; } } Loading Loading
cmds/flatland/GLHelper.cpp +1 −1 Original line number Original line Diff line number Diff line Loading @@ -241,7 +241,7 @@ bool GLHelper::createWindowSurface(uint32_t w, uint32_t h, status_t err; status_t err; if (mSurfaceComposerClient == nullptr) { if (mSurfaceComposerClient == nullptr) { mSurfaceComposerClient = new SurfaceComposerClient; mSurfaceComposerClient = sp<SurfaceComposerClient>::make(); } } err = mSurfaceComposerClient->initCheck(); err = mSurfaceComposerClient->initCheck(); if (err != NO_ERROR) { if (err != NO_ERROR) { Loading
include/powermanager/PowerHalController.h +3 −0 Original line number Original line Diff line number Diff line Loading @@ -73,6 +73,9 @@ public: int tgid, int uid) override; int tgid, int uid) override; virtual HalResult<void> closeSessionChannel(int tgid, int uid) override; virtual HalResult<void> closeSessionChannel(int tgid, int uid) override; virtual HalResult<aidl::android::hardware::power::SupportInfo> getSupportInfo() override; virtual HalResult<aidl::android::hardware::power::SupportInfo> getSupportInfo() override; virtual HalResult<void> sendCompositionData( const std::vector<hal::CompositionData>& data) override; virtual HalResult<void> sendCompositionUpdate(const hal::CompositionUpdate& update) override; private: private: std::mutex mConnectedHalMutex; std::mutex mConnectedHalMutex; Loading
include/powermanager/PowerHalWrapper.h +31 −39 Original line number Original line Diff line number Diff line Loading @@ -18,6 +18,8 @@ #include <aidl/android/hardware/power/Boost.h> #include <aidl/android/hardware/power/Boost.h> #include <aidl/android/hardware/power/ChannelConfig.h> #include <aidl/android/hardware/power/ChannelConfig.h> #include <aidl/android/hardware/power/CompositionData.h> #include <aidl/android/hardware/power/CompositionUpdate.h> #include <aidl/android/hardware/power/IPower.h> #include <aidl/android/hardware/power/IPower.h> #include <aidl/android/hardware/power/IPowerHintSession.h> #include <aidl/android/hardware/power/IPowerHintSession.h> #include <aidl/android/hardware/power/Mode.h> #include <aidl/android/hardware/power/Mode.h> Loading @@ -37,6 +39,8 @@ namespace android { namespace power { namespace power { namespace hal = aidl::android::hardware::power; // State of Power HAL support for individual apis. // State of Power HAL support for individual apis. enum class HalSupport { enum class HalSupport { UNKNOWN = 0, UNKNOWN = 0, Loading @@ -49,21 +53,20 @@ class HalWrapper { public: public: virtual ~HalWrapper() = default; virtual ~HalWrapper() = default; virtual HalResult<void> setBoost(aidl::android::hardware::power::Boost boost, virtual HalResult<void> setBoost(hal::Boost boost, int32_t durationMs) = 0; int32_t durationMs) = 0; virtual HalResult<void> setMode(hal::Mode mode, bool enabled) = 0; virtual HalResult<void> setMode(aidl::android::hardware::power::Mode mode, bool enabled) = 0; virtual HalResult<std::shared_ptr<PowerHintSessionWrapper>> createHintSession( virtual HalResult<std::shared_ptr<PowerHintSessionWrapper>> createHintSession( int32_t tgid, int32_t uid, const std::vector<int32_t>& threadIds, int32_t tgid, int32_t uid, const std::vector<int32_t>& threadIds, int64_t durationNanos) = 0; int64_t durationNanos) = 0; virtual HalResult<std::shared_ptr<PowerHintSessionWrapper>> createHintSessionWithConfig( virtual HalResult<std::shared_ptr<PowerHintSessionWrapper>> createHintSessionWithConfig( int32_t tgid, int32_t uid, const std::vector<int32_t>& threadIds, int64_t durationNanos, int32_t tgid, int32_t uid, const std::vector<int32_t>& threadIds, int64_t durationNanos, aidl::android::hardware::power::SessionTag tag, hal::SessionTag tag, hal::SessionConfig* config) = 0; aidl::android::hardware::power::SessionConfig* config) = 0; virtual HalResult<int64_t> getHintSessionPreferredRate() = 0; virtual HalResult<int64_t> getHintSessionPreferredRate() = 0; virtual HalResult<aidl::android::hardware::power::ChannelConfig> getSessionChannel(int tgid, virtual HalResult<hal::ChannelConfig> getSessionChannel(int tgid, int uid) = 0; int uid) = 0; virtual HalResult<void> closeSessionChannel(int tgid, int uid) = 0; virtual HalResult<void> closeSessionChannel(int tgid, int uid) = 0; virtual HalResult<aidl::android::hardware::power::SupportInfo> getSupportInfo() = 0; virtual HalResult<aidl::android::hardware::power::SupportInfo> getSupportInfo() = 0; virtual HalResult<void> sendCompositionData(const std::vector<hal::CompositionData>& data) = 0; virtual HalResult<void> sendCompositionUpdate(const hal::CompositionUpdate& update) = 0; }; }; // Empty Power HAL wrapper that ignores all api calls. // Empty Power HAL wrapper that ignores all api calls. Loading @@ -72,21 +75,20 @@ public: EmptyHalWrapper() = default; EmptyHalWrapper() = default; ~EmptyHalWrapper() override = default; ~EmptyHalWrapper() override = default; HalResult<void> setBoost(aidl::android::hardware::power::Boost boost, HalResult<void> setBoost(hal::Boost boost, int32_t durationMs) override; int32_t durationMs) override; HalResult<void> setMode(hal::Mode mode, bool enabled) override; HalResult<void> setMode(aidl::android::hardware::power::Mode mode, bool enabled) override; HalResult<std::shared_ptr<PowerHintSessionWrapper>> createHintSession( HalResult<std::shared_ptr<PowerHintSessionWrapper>> createHintSession( int32_t tgid, int32_t uid, const std::vector<int32_t>& threadIds, int32_t tgid, int32_t uid, const std::vector<int32_t>& threadIds, int64_t durationNanos) override; int64_t durationNanos) override; HalResult<std::shared_ptr<PowerHintSessionWrapper>> createHintSessionWithConfig( HalResult<std::shared_ptr<PowerHintSessionWrapper>> createHintSessionWithConfig( int32_t tgid, int32_t uid, const std::vector<int32_t>& threadIds, int64_t durationNanos, int32_t tgid, int32_t uid, const std::vector<int32_t>& threadIds, int64_t durationNanos, aidl::android::hardware::power::SessionTag tag, hal::SessionTag tag, hal::SessionConfig* config) override; aidl::android::hardware::power::SessionConfig* config) override; HalResult<int64_t> getHintSessionPreferredRate() override; HalResult<int64_t> getHintSessionPreferredRate() override; HalResult<aidl::android::hardware::power::ChannelConfig> getSessionChannel(int tgid, HalResult<hal::ChannelConfig> getSessionChannel(int tgid, int uid) override; int uid) override; HalResult<void> closeSessionChannel(int tgid, int uid) override; HalResult<void> closeSessionChannel(int tgid, int uid) override; HalResult<aidl::android::hardware::power::SupportInfo> getSupportInfo() override; HalResult<aidl::android::hardware::power::SupportInfo> getSupportInfo() override; HalResult<void> sendCompositionData(const std::vector<hal::CompositionData>& data) override; HalResult<void> sendCompositionUpdate(const hal::CompositionUpdate& update) override; protected: protected: virtual const char* getUnsupportedMessage(); virtual const char* getUnsupportedMessage(); Loading @@ -99,9 +101,8 @@ public: : mHandleV1_0(std::move(handleV1_0)) {} : mHandleV1_0(std::move(handleV1_0)) {} ~HidlHalWrapperV1_0() override = default; ~HidlHalWrapperV1_0() override = default; HalResult<void> setBoost(aidl::android::hardware::power::Boost boost, HalResult<void> setBoost(hal::Boost boost, int32_t durationMs) override; int32_t durationMs) override; HalResult<void> setMode(hal::Mode mode, bool enabled) override; HalResult<void> setMode(aidl::android::hardware::power::Mode mode, bool enabled) override; protected: protected: const sp<hardware::power::V1_0::IPower> mHandleV1_0; const sp<hardware::power::V1_0::IPower> mHandleV1_0; Loading @@ -127,9 +128,8 @@ protected: // Wrapper for the HIDL Power HAL v1.2. // Wrapper for the HIDL Power HAL v1.2. class HidlHalWrapperV1_2 : public HidlHalWrapperV1_1 { class HidlHalWrapperV1_2 : public HidlHalWrapperV1_1 { public: public: HalResult<void> setBoost(aidl::android::hardware::power::Boost boost, HalResult<void> setBoost(hal::Boost boost, int32_t durationMs) override; int32_t durationMs) override; HalResult<void> setMode(hal::Mode mode, bool enabled) override; HalResult<void> setMode(aidl::android::hardware::power::Mode mode, bool enabled) override; explicit HidlHalWrapperV1_2(sp<hardware::power::V1_2::IPower> handleV1_2) explicit HidlHalWrapperV1_2(sp<hardware::power::V1_2::IPower> handleV1_2) : HidlHalWrapperV1_1(std::move(handleV1_2)) {} : HidlHalWrapperV1_1(std::move(handleV1_2)) {} ~HidlHalWrapperV1_2() override = default; ~HidlHalWrapperV1_2() override = default; Loading @@ -141,7 +141,7 @@ protected: // Wrapper for the HIDL Power HAL v1.3. // Wrapper for the HIDL Power HAL v1.3. class HidlHalWrapperV1_3 : public HidlHalWrapperV1_2 { class HidlHalWrapperV1_3 : public HidlHalWrapperV1_2 { public: public: HalResult<void> setMode(aidl::android::hardware::power::Mode mode, bool enabled) override; HalResult<void> setMode(hal::Mode mode, bool enabled) override; explicit HidlHalWrapperV1_3(sp<hardware::power::V1_3::IPower> handleV1_3) explicit HidlHalWrapperV1_3(sp<hardware::power::V1_3::IPower> handleV1_3) : HidlHalWrapperV1_2(std::move(handleV1_3)) {} : HidlHalWrapperV1_2(std::move(handleV1_3)) {} ~HidlHalWrapperV1_3() override = default; ~HidlHalWrapperV1_3() override = default; Loading @@ -153,26 +153,24 @@ protected: // Wrapper for the AIDL Power HAL. // Wrapper for the AIDL Power HAL. class AidlHalWrapper : public EmptyHalWrapper { class AidlHalWrapper : public EmptyHalWrapper { public: public: explicit AidlHalWrapper(std::shared_ptr<aidl::android::hardware::power::IPower> handle) explicit AidlHalWrapper(std::shared_ptr<hal::IPower> handle) : mHandle(std::move(handle)) {} : mHandle(std::move(handle)) {} ~AidlHalWrapper() override = default; ~AidlHalWrapper() override = default; HalResult<void> setBoost(aidl::android::hardware::power::Boost boost, HalResult<void> setBoost(hal::Boost boost, int32_t durationMs) override; int32_t durationMs) override; HalResult<void> setMode(hal::Mode mode, bool enabled) override; HalResult<void> setMode(aidl::android::hardware::power::Mode mode, bool enabled) override; HalResult<std::shared_ptr<PowerHintSessionWrapper>> createHintSession( HalResult<std::shared_ptr<PowerHintSessionWrapper>> createHintSession( int32_t tgid, int32_t uid, const std::vector<int32_t>& threadIds, int32_t tgid, int32_t uid, const std::vector<int32_t>& threadIds, int64_t durationNanos) override; int64_t durationNanos) override; HalResult<std::shared_ptr<PowerHintSessionWrapper>> createHintSessionWithConfig( HalResult<std::shared_ptr<PowerHintSessionWrapper>> createHintSessionWithConfig( int32_t tgid, int32_t uid, const std::vector<int32_t>& threadIds, int64_t durationNanos, int32_t tgid, int32_t uid, const std::vector<int32_t>& threadIds, int64_t durationNanos, aidl::android::hardware::power::SessionTag tag, hal::SessionTag tag, hal::SessionConfig* config) override; aidl::android::hardware::power::SessionConfig* config) override; HalResult<int64_t> getHintSessionPreferredRate() override; HalResult<int64_t> getHintSessionPreferredRate() override; HalResult<aidl::android::hardware::power::ChannelConfig> getSessionChannel(int tgid, HalResult<hal::ChannelConfig> getSessionChannel(int tgid, int uid) override; int uid) override; HalResult<void> closeSessionChannel(int tgid, int uid) override; HalResult<void> closeSessionChannel(int tgid, int uid) override; HalResult<aidl::android::hardware::power::SupportInfo> getSupportInfo() override; HalResult<aidl::android::hardware::power::SupportInfo> getSupportInfo() override; HalResult<void> sendCompositionData(const std::vector<hal::CompositionData>& data) override; HalResult<void> sendCompositionUpdate(const hal::CompositionUpdate& update) override; protected: protected: const char* getUnsupportedMessage() override; const char* getUnsupportedMessage() override; Loading @@ -181,16 +179,10 @@ private: // Control access to the boost and mode supported arrays. // Control access to the boost and mode supported arrays. std::mutex mBoostMutex; std::mutex mBoostMutex; std::mutex mModeMutex; std::mutex mModeMutex; std::shared_ptr<aidl::android::hardware::power::IPower> mHandle; std::shared_ptr<hal::IPower> mHandle; std::array<HalSupport, std::array<HalSupport, static_cast<int32_t>(*(ndk::enum_range<hal::Boost>().end() - 1)) + 1> static_cast<int32_t>( *(ndk::enum_range<aidl::android::hardware::power::Boost>().end() - 1)) + 1> mBoostSupportedArray GUARDED_BY(mBoostMutex) = {HalSupport::UNKNOWN}; mBoostSupportedArray GUARDED_BY(mBoostMutex) = {HalSupport::UNKNOWN}; std::array<HalSupport, std::array<HalSupport, static_cast<int32_t>(*(ndk::enum_range<hal::Mode>().end() - 1)) + 1> static_cast<int32_t>( *(ndk::enum_range<aidl::android::hardware::power::Mode>().end() - 1)) + 1> mModeSupportedArray GUARDED_BY(mModeMutex) = {HalSupport::UNKNOWN}; mModeSupportedArray GUARDED_BY(mModeMutex) = {HalSupport::UNKNOWN}; }; }; Loading
include/powermanager/PowerHintSessionWrapper.h +2 −0 Original line number Original line Diff line number Diff line Loading @@ -45,9 +45,11 @@ public: virtual HalResult<void> setMode(::aidl::android::hardware::power::SessionMode in_type, virtual HalResult<void> setMode(::aidl::android::hardware::power::SessionMode in_type, bool in_enabled); bool in_enabled); virtual HalResult<aidl::android::hardware::power::SessionConfig> getSessionConfig(); virtual HalResult<aidl::android::hardware::power::SessionConfig> getSessionConfig(); std::optional<int> getSessionId(); private: private: std::shared_ptr<aidl::android::hardware::power::IPowerHintSession> mSession; std::shared_ptr<aidl::android::hardware::power::IPowerHintSession> mSession; std::optional<int> mSessionId; int32_t mInterfaceVersion; int32_t mInterfaceVersion; }; }; Loading
libs/binder/Binder.cpp +3 −0 Original line number Original line Diff line number Diff line Loading @@ -445,6 +445,9 @@ status_t BBinder::linkToDeath( const sp<DeathRecipient>& /*recipient*/, void* /*cookie*/, const sp<DeathRecipient>& /*recipient*/, void* /*cookie*/, uint32_t /*flags*/) uint32_t /*flags*/) { { // BBinder::linkToDeath is invalid because this process owns this binder. // The DeathRecipient is called on BpBinders when the process owning the // binder node dies. return INVALID_OPERATION; return INVALID_OPERATION; } } Loading