diff mbox

[v1,09/15] android-console: Add GF battery prop print func

Message ID 1415751963-4081-10-git-send-email-greg.bellows@linaro.org
State New
Headers show

Commit Message

Greg Bellows Nov. 12, 2014, 12:25 a.m. UTC
Add a function for printing out the Goldfish battery properties to the android
console.

Signed-off-by: Greg Bellows <greg.bellows@linaro.org>
---
 hw/misc/goldfish_battery.c         | 54 ++++++++++++++++++++++++++++++++++++++
 include/hw/misc/goldfish_battery.h |  2 ++
 2 files changed, 56 insertions(+)

--
1.8.3.2
diff mbox

Patch

diff --git a/hw/misc/goldfish_battery.c b/hw/misc/goldfish_battery.c
index c956eb2..c7c9d98 100644
--- a/hw/misc/goldfish_battery.c
+++ b/hw/misc/goldfish_battery.c
@@ -12,6 +12,7 @@ 
 #include "hw/hw.h"
 #include "hw/sysbus.h"
 #include "qemu/error-report.h"
+#include "monitor/monitor.h"
 #include "hw/misc/goldfish_battery.h"

 enum {
@@ -74,6 +75,59 @@  static const VMStateDescription goldfish_battery_vmsd = {
     }
 };

+void goldfish_battery_display(Monitor *mon)
+{
+    DeviceState *dev = qdev_find_recursive(sysbus_get_default(),
+                                           TYPE_GOLDFISH_BATTERY);
+    struct goldfish_battery_state *s = GOLDFISH_BATTERY(dev);
+    const char *value;
+
+    monitor_printf(mon, "AC: %s\n", (s->ac_online) ? "online" : "offline");
+
+    switch (s->status) {
+    case POWER_SUPPLY_STATUS_CHARGING:
+        value = "Charging";
+        break;
+    case POWER_SUPPLY_STATUS_DISCHARGING:
+        value = "Discharging";
+        break;
+    case POWER_SUPPLY_STATUS_NOT_CHARGING:
+        value = "Not charging";
+        break;
+    case POWER_SUPPLY_STATUS_FULL:
+        value = "Full";
+        break;
+    default:
+        value = "Unknown";
+    }
+    monitor_printf(mon, "status: %s\n", value);
+
+    switch (s->health) {
+    case POWER_SUPPLY_HEALTH_GOOD:
+        value = "Good";
+        break;
+    case POWER_SUPPLY_HEALTH_OVERHEAT:
+        value = "Overhead";
+        break;
+    case POWER_SUPPLY_HEALTH_DEAD:
+        value = "Dead";
+        break;
+    case POWER_SUPPLY_HEALTH_OVERVOLTAGE:
+        value = "Overvoltage";
+        break;
+    case POWER_SUPPLY_HEALTH_UNSPEC_FAILURE:
+        value = "Unspecified failure";
+        break;
+    default:
+        value = "Unknown";
+    }
+    monitor_printf(mon, "health: %s\n", value);
+
+    monitor_printf(mon, "present: %s\n", (s->present) ? "true" : "false");
+
+    monitor_printf(mon, "capacity: %d\n", s->capacity);
+}
+
 static uint64_t goldfish_battery_read(void *opaque, hwaddr offset, unsigned size)
 {
     uint64_t ret;
diff --git a/include/hw/misc/goldfish_battery.h b/include/hw/misc/goldfish_battery.h
index 85a9f2f..f497538 100644
--- a/include/hw/misc/goldfish_battery.h
+++ b/include/hw/misc/goldfish_battery.h
@@ -68,4 +68,6 @@  enum power_supply_property {
     POWER_SUPPLY_PROP_MANUFACTURER,
 };

+extern void goldfish_battery_display(Monitor *mon);
+
 #endif /* _HW_GOLDFISH_BATTERY_H */