Add methods to health HAL interface to report storage info
The methods will report device specific storage info.
Bug: 68388678
Test: vts-tradefed run vts -m VtsHalHealthV2_0
Change-Id: I76a15f36f271312d2b49141ee1d45118be101397
diff --git a/health/2.0/default/Health.cpp b/health/2.0/default/Health.cpp
index 4710c90..96f6d70 100644
--- a/health/2.0/default/Health.cpp
+++ b/health/2.0/default/Health.cpp
@@ -1,3 +1,18 @@
+/*
+ * Copyright (C) 2018 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.
+ */
#define LOG_TAG "android.hardware.health@2.0-impl"
#include <android-base/logging.h>
@@ -160,6 +175,30 @@
return Void();
}
+Return<void> Health::getStorageInfo(getStorageInfo_cb _hidl_cb) {
+ std::vector<struct StorageInfo> info;
+ get_storage_info(info);
+ hidl_vec<struct StorageInfo> info_vec(info);
+ if (!info.size()) {
+ _hidl_cb(Result::NOT_SUPPORTED, info_vec);
+ } else {
+ _hidl_cb(Result::SUCCESS, info_vec);
+ }
+ return Void();
+}
+
+Return<void> Health::getDiskStats(getDiskStats_cb _hidl_cb) {
+ std::vector<struct DiskStats> stats;
+ get_disk_stats(stats);
+ hidl_vec<struct DiskStats> stats_vec(stats);
+ if (!stats.size()) {
+ _hidl_cb(Result::NOT_SUPPORTED, stats_vec);
+ } else {
+ _hidl_cb(Result::SUCCESS, stats_vec);
+ }
+ return Void();
+}
+
void Health::serviceDied(uint64_t /* cookie */, const wp<IBase>& who) {
(void)unregisterCallbackInternal(who.promote());
}
diff --git a/health/2.0/default/include/health2/Health.h b/health/2.0/default/include/health2/Health.h
index ab42ae7..41ba9e9 100644
--- a/health/2.0/default/include/health2/Health.h
+++ b/health/2.0/default/include/health2/Health.h
@@ -9,6 +9,12 @@
#include <healthd/BatteryMonitor.h>
#include <hidl/Status.h>
+using android::hardware::health::V2_0::StorageInfo;
+using android::hardware::health::V2_0::DiskStats;
+
+void get_storage_info(std::vector<struct StorageInfo>& info);
+void get_disk_stats(std::vector<struct DiskStats>& stats);
+
namespace android {
namespace hardware {
namespace health {
@@ -44,6 +50,8 @@
Return<void> getCapacity(getCapacity_cb _hidl_cb) override;
Return<void> getEnergyCounter(getEnergyCounter_cb _hidl_cb) override;
Return<void> getChargeStatus(getChargeStatus_cb _hidl_cb) override;
+ Return<void> getStorageInfo(getStorageInfo_cb _hidl_cb) override;
+ Return<void> getDiskStats(getDiskStats_cb _hidl_cb) override;
// Methods from ::android::hidl::base::V1_0::IBase follow.
Return<void> debug(const hidl_handle& fd, const hidl_vec<hidl_string>& args) override;