Subject: bin/34593: apm(8) prints meaningless default unknow value for minutes_left
To: None <gnats-admin@netbsd.org, netbsd-bugs@netbsd.org>
From: None <lacombar@gmail.com>
List: netbsd-bugs
Date: 09/23/2006 21:40:01
>Number:         34593
>Category:       bin
>Synopsis:       apm(8) prints meaningless default unknow value for minutes_left
>Confidential:   no
>Severity:       critical
>Priority:       high
>Responsible:    bin-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sat Sep 23 21:40:00 +0000 2006
>Originator:     Arnaud LACOMBE
>Release:        -current
>Organization:
>Environment:
NetBSD ouikka 4.99.2 NetBSD 4.99.2 (GENERIC_LAPTOP) #2: Fri Sep 22 13:22:29 EDT 2006  foo@ouikka:/netbsd/obj/sys/arch/i386/compile/GENERIC_LAPTOP i386
>Description:
In the output of apm(8) when battery information are printed, if the APM/ACPI driver (src/sys/dev/acpi/acpi_apm.c) is unable to get the value of `minutes_left', the value returned to userland will be the default unknown value (0xffff) which will be printed on the screen.

I dream of having 45 days of battery on my laptop, but I guess the technology is not yet available :( , and thus, printing this is meaningless (and also wrong).
>How-To-Repeat:
run apm(8)
>Fix:
Index: apm.c
===================================================================
RCS file: /netbsd/cvsroot/src/usr.sbin/apm/apm.c,v
retrieving revision 1.16
diff -b -u -r1.16 apm.c
--- apm.c	23 Jan 2005 20:55:57 -0000	1.16
+++ apm.c	22 Sep 2006 17:38:29 -0000
@@ -279,6 +279,9 @@
 		switch (action) {
 		case GETSTATUS:
 printval:
+			/* default unknown value for minutes_left, from sys/dev/acpi/acpi_apm.c */
+			if(api->minutes_left == 0xffff) 
+				domin = FALSE;
 			if (verbose) {
 				if (dobstate)
 					printf("Battery charge state: %s\n",