From: Ian Jackson Date: Sun, 3 Jun 2012 13:36:35 +0000 (+0100) Subject: wip new acpi found X-Git-Tag: debian/4.1.31~36 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?a=commitdiff_plain;h=d625cc214a18028db7b4583207c2324626c4e7f4;p=chiark-utils.git wip new acpi found --- diff --git a/cprogs/xacpi-simple.c b/cprogs/xacpi-simple.c index 180df33..20655ac 100644 --- a/cprogs/xacpi-simple.c +++ b/cprogs/xacpi-simple.c @@ -80,19 +80,21 @@ static void badusage(void) { fail("bad usage"); } typedef struct batinfo_field { const char *file; const char *label; + const char *acpi_label; + double acpi_conversion_factor; unsigned long *valuep; const char *unit; const char *enumarray[10]; } batinfo_field; -#define QUANTITY_FIELDS \ - QF(info, design_capacity, "mWh") \ - QF(info, last_full_capacity, "mWh") \ - QF(state, present_rate, "mW") \ - QF(state, remaining_capacity, "mWh") \ - QF(alarm, alarm, "mWh") +#define QUANTITY_FIELDS \ + QF(info, design_capacity, "mWh", energy_full_design, 1e-3) \ + QF(info, last_full_capacity, "mWh", energy_full, 1e-3) \ + QF(state, present_rate, "mW", power_now, 1e-3) \ + QF(state, remaining_capacity, "mWh", energy_now, 1e-3) \ + QF(alarm, alarm, "mWh", alarm, 1e-3) -#define QF(f,l,u) static unsigned long thisbat_##f##_##l; +#define QF(f,l,u,a,ac) static unsigned long thisbat_##f##_##l; QUANTITY_FIELDS #undef QF @@ -104,9 +106,9 @@ static unsigned long thisbat_state_present, thisbat_state_charging_state; static const batinfo_field fields[]= { #define E(f,l) #f, #l, &thisbat_##f##_##l, 0 #define QF(f,l,u) { #f, #l, &thisbat_##f##_##l, u }, - { E(alarm, present), { "no", "yes" } }, - { E(info, present), { "no", "yes" } }, - { E(state,present), { "no", "yes" } }, + { E(alarm, present), 0,0, { "no", "yes" } }, + { E(info, present), 0,0, { "no", "yes" } }, + { E(state,present), 0,0, { "no", "yes" } }, { E(state,charging_state), { "discharging", "charging", "charged" } }, QUANTITY_FIELDS /* take care re charging_state values order - */ { 0 } /* if you must change it, search for CHGST_... */ @@ -230,8 +232,7 @@ static int readbattery(void) { /* 0=>ok, -1=>couldn't */ } if (!(thisbat_alarm_present==0 || - thisbat_info_present==0 || - thisbat_state_present==0)) { + thisbat_state_present==0 || thisbat_info_present==0)) { if (thisbat_alarm_present == VAL_NOTFOUND) thisbat_alarm_present= 1;