Update CPU GPU headroom HAL API
* change pid to tids list
* add configurable interval value
* change float (array) return type to union type
* add default values for the params
Bug: 346604998
Flag: EXEMPT HAL changes
Test: atest VtsHalPowerTargetTest
Change-Id: I4422b8489da5bf072ad821d04f91fcfabccf9d98
diff --git a/power/aidl/default/Power.cpp b/power/aidl/default/Power.cpp
index d9353fe..8490b62 100644
--- a/power/aidl/default/Power.cpp
+++ b/power/aidl/default/Power.cpp
@@ -71,14 +71,22 @@
return ScopedAStatus::ok();
}
-ndk::ScopedAStatus Power::getCpuHeadroom(const CpuHeadroomParams& _,
- std::vector<float>* _aidl_return) {
- *_aidl_return = {0.5f};
- return ndk::ScopedAStatus::ok();
+ndk::ScopedAStatus Power::getCpuHeadroom(const CpuHeadroomParams& params,
+ CpuHeadroomResult* _aidl_return) {
+ if (params.selectionType == CpuHeadroomParams::SelectionType::ALL) {
+ _aidl_return->set<CpuHeadroomResult::globalHeadroom>(100.0f);
+ return ndk::ScopedAStatus::ok();
+ } else if (params.selectionType == CpuHeadroomParams::SelectionType::PER_CORE) {
+ std::vector<float> headroom = {50.0f, 100.0f};
+ _aidl_return->set<CpuHeadroomResult::perCoreHeadroom>(headroom);
+ return ndk::ScopedAStatus::ok();
+ }
+ return ndk::ScopedAStatus::fromExceptionCode(EX_UNSUPPORTED_OPERATION);
}
-ndk::ScopedAStatus Power::getGpuHeadroom(const GpuHeadroomParams& _, float* _aidl_return) {
- *_aidl_return = 0.5f;
+ndk::ScopedAStatus Power::getGpuHeadroom(const GpuHeadroomParams& _,
+ GpuHeadroomResult* _aidl_return) {
+ _aidl_return->set<GpuHeadroomResult::globalHeadroom>(100.0f);
return ndk::ScopedAStatus::ok();
}