Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F103460138
D22871.id65887.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
2 KB
Referenced Files
None
Subscribers
None
D22871.id65887.diff
View Options
Index: head/usr.bin/top/display.h
===================================================================
--- head/usr.bin/top/display.h
+++ head/usr.bin/top/display.h
@@ -14,6 +14,7 @@
void display_header(int t);
int display_init(struct statics *statics);
void i_arc(int *stats);
+void i_battery(int nbat, int batt);
void i_carc(int *stats);
void i_cpustates(int *states);
void i_loadave(int mpid, double *avenrun);
Index: head/usr.bin/top/display.c
===================================================================
--- head/usr.bin/top/display.c
+++ head/usr.bin/top/display.c
@@ -1322,6 +1322,15 @@
}
}
+void
+i_battery(int nbat, int batt)
+{
+
+ if (nbat > 0) {
+ printf("; battery: %d%%", batt);
+ }
+}
+
#define SETUPBUFFER_MIN_SCREENWIDTH 80
#define SETUPBUFFER_REQUIRED_ADDBUFSIZ 2
Index: head/usr.bin/top/machine.h
===================================================================
--- head/usr.bin/top/machine.h
+++ head/usr.bin/top/machine.h
@@ -30,6 +30,7 @@
const char * const *carc_names;
const char * const *swap_names;
const char * const *order_names;
+ int nbatteries;
int ncpus;
};
@@ -50,6 +51,7 @@
int *carc;
int *swap;
struct timeval boottime;
+ int battery;
int ncpus;
};
Index: head/usr.bin/top/machine.c
===================================================================
--- head/usr.bin/top/machine.c
+++ head/usr.bin/top/machine.c
@@ -211,6 +211,10 @@
static long *pcpu_cp_diff;
static int *pcpu_cpu_states;
+/* Battery units and states */
+static int battery_units;
+static int battery_life;
+
static int compare_swap(const void *a, const void *b);
static int compare_jid(const void *a, const void *b);
static int compare_pid(const void *a, const void *b);
@@ -373,6 +377,12 @@
pcpu_cpu_states = calloc(ncpus * CPUSTATES, sizeof(int));
statics->ncpus = ncpus;
+ /* Allocate state of battery units reported via ACPI. */
+ battery_units = 0;
+ size = sizeof(int);
+ sysctlbyname("hw.acpi.battery.units", &battery_units, &size, NULL, 0);
+ statics->nbatteries = battery_units;
+
update_layout();
/* all done! */
@@ -579,6 +589,12 @@
} else {
si->boottime.tv_sec = -1;
}
+
+ battery_life = 0;
+ if (battery_units > 0) {
+ GETSYSCTL("hw.acpi.battery.life", battery_life);
+ }
+ si->battery = battery_life;
}
#define NOPROC ((void *)-1)
Index: head/usr.bin/top/top.c
===================================================================
--- head/usr.bin/top/top.c
+++ head/usr.bin/top/top.c
@@ -619,6 +619,9 @@
(*d_loadave)(system_info.last_pid,
system_info.load_avg);
+ /* display the battery info (if any) */
+ i_battery(statics.nbatteries, system_info.battery);
+
/* display the current time */
/* this method of getting the time SHOULD be fairly portable */
time(&curr_time);
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Tue, Nov 26, 7:51 AM (17 h, 19 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
14778340
Default Alt Text
D22871.id65887.diff (2 KB)
Attached To
Mode
D22871: Battery capacity remaining percent in top(1)
Attached
Detach File
Event Timeline
Log In to Comment