Add a function for printing out the Goldfish battery properties to the android console.
Signed-off-by: Greg Bellows <greg.bell...@linaro.org> --- hw/misc/goldfish_battery.c | 54 ++++++++++++++++++++++++++++++++++++++ include/hw/misc/goldfish_battery.h | 2 ++ 2 files changed, 56 insertions(+) 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 */ -- 1.8.3.2