Page MenuHomeFreeBSD

D21663.diff
No OneTemporary

D21663.diff

Index: usr.sbin/acpi/acpiconf/acpiconf.c
===================================================================
--- usr.sbin/acpi/acpiconf/acpiconf.c
+++ usr.sbin/acpi/acpiconf/acpiconf.c
@@ -183,8 +183,52 @@
} else
printf("Present rate:\t\t%d %s\n",
battio.battinfo.rate, pwr_units);
- } else
- printf("State:\t\t\tnot present\n");
+ } else {
+ battio.unit = num;
+ if (ioctl(acpifd, ACPIIO_BATT_GET_BST, &battio) == -1)
+ err(EX_IOERR, "get battery status (%d) failed", num);
+ if (battio.bst.state != ACPI_BATT_STAT_NOT_PRESENT) {
+ const char *state;
+ switch (battio.bst.state & ACPI_BATT_STAT_BST_MASK) {
+ case 0:
+ state = "high";
+ break;
+ case ACPI_BATT_STAT_DISCHARG:
+ state = "discharging";
+ break;
+ case ACPI_BATT_STAT_CHARGING:
+ state = "charging";
+ break;
+ case ACPI_BATT_STAT_CRITICAL:
+ state = "critical";
+ break;
+ case ACPI_BATT_STAT_DISCHARG | ACPI_BATT_STAT_CRITICAL:
+ state = "critical discharging";
+ break;
+ case ACPI_BATT_STAT_CHARGING | ACPI_BATT_STAT_CRITICAL:
+ state = "critical charging";
+ break;
+ default:
+ state = "invalid";
+ }
+ printf("State:\t\t\t%s\n", state);
+ if (battio.bst.rate == -1)
+ printf("Present rate:\t\tunknown\n");
+ else if (amp && volt != UNKNOWN_VOLTAGE) {
+ printf("Present rate:\t\t%u mA (%u mW)\n",
+ battio.bst.rate,
+ battio.bst.rate * volt / 1000);
+ } else
+ printf("Present rate:\t\t%u %s\n",
+ battio.bst.rate, pwr_units);
+ if (battio.bst.cap == -1)
+ printf("Remaining capacity:\tunknown\n");
+ else
+ printf("Remaining capacity:\t%u %s\n",
+ battio.bst.cap, pwr_units);
+ } else
+ printf("State:\t\t\tnot present\n");
+ }
/* Print battery voltage information. */
if (volt == UNKNOWN_VOLTAGE)

File Metadata

Mime Type
text/plain
Expires
Mon, Apr 20, 11:51 AM (13 h, 10 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
31837480
Default Alt Text
D21663.diff (1 KB)

Event Timeline