ports/126391: [PATCH] sysutils/wmbsdbatt: Print current CPU frequency
Ulrich Spoerlein
uspoerlein at gmail.com
Sat Aug 9 11:30:01 UTC 2008
>Number: 126391
>Category: ports
>Synopsis: [PATCH] sysutils/wmbsdbatt: Print current CPU frequency
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: freebsd-ports-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: change-request
>Submitter-Id: current-users
>Arrival-Date: Sat Aug 09 11:30:00 UTC 2008
>Closed-Date:
>Last-Modified:
>Originator: Ulrich Spoerlein
>Release: FreeBSD 7.0-STABLE i386
>Organization:
>Environment:
>Description:
I sent these patches to the author a couple of years ago, but they never made
it into a new release. Please apply those patches to the FreeBSD port, as they
fix some minor nits and will print the current CPU frequency next to the
temperature. Something at least I find very useful to have.
- Print current CPU frequency next to temperature
- Add -b parameter to start with backlight turned on (like other WM dockapps)
- Don't call draw_all twice
- Fix missing dots in pixmap
Added file(s):
- files/patch-wmbsdbatt.c
- files/patch-zz-frequency
Port maintainer (xride at FreeBSD.org) is cc'd.
Generated with FreeBSD Port Tools 0.77
>How-To-Repeat:
>Fix:
--- wmbsdbatt-0.1_3.patch begins here ---
Index: Makefile
===================================================================
RCS file: /home/ncvs/ports/sysutils/wmbsdbatt/Makefile,v
retrieving revision 1.9
diff -u -p -u -r1.9 Makefile
--- Makefile 27 Jun 2008 17:43:55 -0000 1.9
+++ Makefile 9 Aug 2008 11:24:09 -0000
@@ -6,7 +6,7 @@
PORTNAME= wmbsdbatt
PORTVERSION= 0.1
-PORTREVISION= 2
+PORTREVISION= 3
CATEGORIES= sysutils windowmaker
MASTER_SITES= http://homepage.univie.ac.at/l.ertl/wmbsdbatt/files/
Index: files/patch-wmbsdbatt.c
===================================================================
RCS file: files/patch-wmbsdbatt.c
diff -N files/patch-wmbsdbatt.c
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ files/patch-wmbsdbatt.c 9 Aug 2008 11:24:09 -0000
@@ -0,0 +1,58 @@
+--- wmbsdbatt.c.orig Sat Jul 2 15:23:41 2005
++++ wmbsdbatt.c Sat Jul 2 15:35:19 2005
+@@ -33,6 +33,7 @@
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <string.h>
++#include <unistd.h>
+
+ #include <sys/types.h>
+ #include <sys/stat.h>
+@@ -112,14 +113,26 @@
+ void draw_all(void);
+ int init_stats(void);
+ int acpi_exists(void);
++void usage(void);
+ #if 0
+ void draw_rate(void);
+ #endif
+
++void
++usage(void)
++{
++ fprintf(stderr, "%s\n%s\n%s\n",
++ "usage: wmbsdbatt [-h | -b]",
++ " -h help",
++ " -b start with backlight on");
++
++ exit(0);
++}
++
+ int
+ main(int argc, char **argv)
+ {
+- int charging, ncolor, show;
++ int charging, ncolor, show, ch;
+ long timeout;
+ long animation_timeout, update_timeout;
+ struct sigaction sa;
+@@ -132,6 +145,19 @@
+
+ sa.sa_handler = SIG_IGN;
+ sa.sa_flags = SA_NOCLDWAIT;
++ while ((ch = getopt(argc, argv, "bh")) != -1) {
++ switch (ch) {
++ case 'b':
++ backlight = LIGHTON;
++ break;
++ case 'h':
++ usage();
++ break;
++ default:
++ usage();
++ break;
++ }
++ }
+
+ sigemptyset(&sa.sa_mask);
+ sigaction(SIGCHLD, &sa, NULL);
Index: files/patch-zz-frequency
===================================================================
RCS file: files/patch-zz-frequency
diff -N files/patch-zz-frequency
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ files/patch-zz-frequency 9 Aug 2008 11:24:09 -0000
@@ -0,0 +1,179 @@
+--- backlight_off.xpm Tue Dec 23 19:27:34 2003
++++ backlight_off.xpm Wed Jan 11 17:40:26 2006
+@@ -56,15 +56,15 @@
+ "+@#%&&&%%%&&&&&&&%%%%%%%%&&&%%%%%%%%&&%&&&&%%&&%%&%%%&%&+$",
+ "+@#%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%%%&+$",
+ "+@#%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&+$",
+-"+@#%&&%%%&&&%%%&&&%%%&&&%%%&&&%%%&&&&%&%&&&%&%&&&%%%&&&&+$",
+-"+@#%&%&&&%&%&&&%&%&&&%&%&&&%&%&&&%&&%&%&%&%&%&%&%&&&%&&&+$",
+-"+@#%&%&&&%&%&&&%&%&&&%&%&&&%&%&&&%&&%&%&%&%&%&%&%&&&%&&&+$",
+-"+@#%&%&&&%&%&&&%&%&&&%&%&&&%&%&&&%&&%&%&%&%&%&%&%&&&%&&&+$",
+-"+@#%&&%%%&&&%%%&&&%%%&&&%%%&&&%%%&&&&%&%&&&%&%&&&%%%&&&&+$",
+-"+@#%&%&&&%&%&&&%&%&&&%&%&&&%&%&&&%&&%&%&%&%&%&%&%&&&%&&&+$",
+-"+@#%&%&&&%&%&&&%&%&&&%&%&&&%&%&&&%&&%&%&%&%&%&%&%&&&%&&&+$",
+-"+@#%&%&&&%&%&&&%&%&&&%&%&&&%&%&&&%&&%&%&%&%&%&%&%&&&%&&&+$",
+-"+@#%&&%%%&&&%%%&&&%%%&&&%%%&&&%%%&&&&%&%&&&%&%&&&%%%&&&&+$",
++"+@#%&%%%&&&%%%&&&%%%&&&%%%&&&&&&&%%%&&&%%%&&&%%%&&&%%%&&+$",
++"+@#%%&&&%&%&&&%&%&&&%&%&&&%&&&&&%&&&%&%&&&%&%&&&%&%&&&%&+$",
++"+@#%%&&&%&%&&&%&%&&&%&%&&&%&&&&&%&&&%&%&&&%&%&&&%&%&&&%&+$",
++"+@#%%&&&%&%&&&%&%&&&%&%&&&%&&&&&%&&&%&%&&&%&%&&&%&%&&&%&+$",
++"+@#%&%%%&&&%%%&&&%%%&&&%%%&&&&&&&%%%&&&%%%&&&%%%&&&%%%&&+$",
++"+@#%%&&&%&%&&&%&%&&&%&%&&&%&&&&&%&&&%&%&&&%&%&&&%&%&&&%&+$",
++"+@#%%&&&%&%&&&%&%&&&%&%&&&%&&&&&%&&&%&%&&&%&%&&&%&%&&&%&+$",
++"+@#%%&&&%&%&&&%&%&&&%&%&&&%&&&&&%&&&%&%&&&%&%&&&%&%&&&%&+$",
++"+@#%&%%%&&&%%%&&&%%%&&&%%%&&&&&&&%%%&&&%%%&&&%%%&&&%%%&&+$",
+ "+@#%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&++$",
+ ".+++++++++++++++++++++++++++++++++++++++++++++++++++++++$.",
+ "..$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$.."};
+--- backlight_on.xpm Tue Dec 16 00:59:51 2003
++++ backlight_on.xpm Wed Jan 11 17:49:48 2006
+@@ -39,7 +39,7 @@
+ ".++++...............................++$$$+$$$+$$$+.+++.++@",
+ ".++++.$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$.+$$$+$$$+$$$++$+.+$+@",
+ ".++++.$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$.+$$$+$$$+$$$+++.+$++@",
+-".++++$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$.+$$$+$$$+$$$++.+$+++@",
++".++++.$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$.+$$$+$$$+$$$++.+$+++@",
+ ".++++...............................++$$$+$$$+$$$+.+$+.++@",
+ ".++++++++++++++++++++++++++++++++++++++++++++++++++$+++$+@",
+ ".++++...............................++$$$+$$$+$$$+.+++.++@",
+@@ -56,15 +56,15 @@
+ ".++++++$$$+++++++$$$$$$$$+++$$$$$$$$++$++++$$++$$+$$$+$++@",
+ ".+++++++++++++++++++++++++++++++++++++$$$$$$$$$$$$$$$$$++@",
+ ".++++++++++++++++++++++++++++++++++++++++++++++++++++++++@",
+-".+++++$$$+++$$$+++$$$+++$$$+++$$$++++$+$+++$+$+++$$$+++++@",
+-".++++$+++$+$+++$+$+++$+$+++$+$+++$++$+$+$+$+$+$+$+++$++++@",
+-".++++$+++$+$+++$+$+++$+$+++$+$+++$++$+$+$+$+$+$+$+++$++++@",
+-".++++$+++$+$+++$+$+++$+$+++$+$+++$++$+$+$+$+$+$+$+++$++++@",
+-".+++++$$$+++$$$+++$$$+++$$$+++$$$++++$+$+++$+$+++$$$+++++@",
+-".++++$+++$+$+++$+$+++$+$+++$+$+++$++$+$+$+$+$+$+$+++$++++@",
+-".++++$+++$+$+++$+$+++$+$+++$+$+++$++$+$+$+$+$+$+$+++$++++@",
+-".++++$+++$+$+++$+$+++$+$+++$+$+++$++$+$+$+$+$+$+$+++$++++@",
+-".+++++$$$+++$$$+++$$$+++$$$+++$$$++++$+$+++$+$+++$$$+++++@",
++".++++$$$+++$$$+++$$$+++$$$+++++++$$$+++$$$+++$$$+++$$$+++@",
++".+++$+++$+$+++$+$+++$+$+++$+++++$+++$+$+++$+$+++$+$+++$++@",
++".+++$+++$+$+++$+$+++$+$+++$+++++$+++$+$+++$+$+++$+$+++$++@",
++".+++$+++$+$+++$+$+++$+$+++$+++++$+++$+$+++$+$+++$+$+++$++@",
++".++++$$$+++$$$+++$$$+++$$$+++++++$$$+++$$$+++$$$+++$$$+++@",
++".+++$+++$+$+++$+$+++$+$+++$+++++$+++$+$+++$+$+++$+$+++$++@",
++".+++$+++$+$+++$+$+++$+$+++$+++++$+++$+$+++$+$+++$+$+++$++@",
++".+++$+++$+$+++$+$+++$+$+++$+++++$+++$+$+++$+$+++$+$+++$++@",
++".++++$$$+++$$$+++$$$+++$$$+++++++$$$+++$$$+++$$$+++$$$+++@",
+ ".++++++++++++++++++++++++++++++++++++++++++++++++++++++++@",
+ " .++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
+ " @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ "};
+--- parts.xpm Tue Dec 16 00:59:51 2003
++++ parts.xpm Wed Jan 11 17:45:26 2006
+@@ -61,13 +61,13 @@
+ "+...+ at ...++...@@...+ at ...+@...++...+ at ...++...+@...++###+$###++###$$###+$###+$###++###+$###++###+$###++###",
+ ".+++..@@@..+++..+++..@@@..+++..+++..@@@..+++..+++.#+++##$$$##+++##+++##$$$##+++##+++##$$$##+++##+++##+++",
+ ".@@@..@@@..+++..+++..@@@.&+++..+++..+++..+++..+++.#$$$##$$$##+++##+++##$$$##+++##+++##+++##+++##+++##+++",
+-"@. at .@+.+.++. at .++.@. at +...++...@+...@@...++...++...+$#$#$+#+#++#$#++#$#$+###++###$+###$$###++###++###++###",
+-"@. at .@+.+.++. at .++.@. at +...++...@+...@@...++...++...+$#$#$+#+#++#$#++#$#$+###++###$+###$$###++###++###++###",
+-"@. at .@+.+.++. at .++.@. at +...++...@+...@@...++...++...+$#$#$+#+#++#$#++#$#$+###++###$+###$$###++###++###++###",
+-".+.+.. at .@..+.+.. at .@..+++&&+++..+++..@@@..+++..+++.#+#+##$#$##+#+##$#$##+++&&+++##+++##$$$&#+++##+++&&$$$",
+-"+.+.++.+.+ at .@. at +.@.@@...+ at ...++...+@...++...+ at ...++#+#++#+#+$#$#$+#$#$$###+$###++###+$###++###+$###++###",
+-"+.+.++.+.+ at .@. at +.@.@@...+ at ...++...+@...++...+ at ...++#+#++#+#+$#$#$+#$#$$###+$###++###+$###++###+$###++###",
+-"+.+.++.+.+ at .@. at +.@.@@...+ at ...++...+@...++...+ at ...++#+#++#+#+$#$#$+#$#$$###+$###++###+$###++###+$###++###",
++"@. at .@+.+.++...++... at +...++...@+...@@...++...++...+$#$#$+#+#++###++###$+###++###$+###$$###++###++###++###",
++"@. at .@+.+.++...++... at +...++...@+...@@...++...++...+$#$#$+#+#++###++###$+###++###$+###$$###++###++###++###",
++"@. at .@+.+.++...++... at +...++...@+...@@...++...++...+$#$#$+#+#++###++###$+###++###$+###$$###++###++###++###",
++".+.+.. at .@..+++.. at .@..+++&&+++..+++..@@@..+++..+++.#+#+##$#$##+++##$#$##+++&&+++##+++##$$$&#+++##+++&&$$$",
++"+.+.++.+.+ at ...@+...@@...+ at ...++...+@...++...+ at ...++#+#++#+#+$###$+###$$###+$###++###+$###++###+$###++###",
++"+.+.++.+.+ at ...@+...@@...+ at ...++...+@...++...+ at ...++#+#++#+#+$###$+###$$###+$###++###+$###++###+$###++###",
++"+.+.++.+.+ at ...@+...@@...+ at ...++...+@...++...+ at ...++#+#++#+#+$###$+###$$###+$###++###+$###++###+$###++###",
+ ".@@@..+++..@@@..+++..@@@&&+++..+++..@@@&.+++..+++##$$$##+++##$$$##+++##$$$&&+++##+++##$$$&#+++##+++##+++",
+ "+++++++++++++++++++++++++++++++....+++....+++++++++++++++++..##+++####+++++++++++++++++#################",
+ "++++++++++++++++++++++++++++++++.+++..+..++.+++++..++.+++.+..+++##+##++#+++++##++#+++#+#################",
+--- wmbsdbatt.c Tue Dec 23 19:27:34 2003
++++ wmbsdbatt.c Wed Jan 11 18:00:47 2006
+@@ -67,6 +67,7 @@
+ int battery_time;
+ int temperature;
+ int low;
++ int freq;
+ #if 0
+ int capacity;
+ int rate;
+@@ -79,6 +80,7 @@
+ static char *sysctl_battery_time = "hw.acpi.battery.time";
+ static char *sysctl_temperature = "hw.acpi.thermal.tz0.temperature";
+ static char *sysctl_acline = "hw.acpi.acline";
++static char *sysctl_frequency = "dev.cpu.0.freq";
+
+ typedef enum { LIGHTOFF, LIGHTON } light;
+
+@@ -106,6 +108,7 @@
+ void draw_batt(void);
+ void draw_low(void);
+ void draw_temp(void);
++void draw_freq(void);
+ void draw_statusdigit(void);
+ void draw_pcgraph(void);
+ void blink_batt(void);
+@@ -238,7 +241,6 @@
+ }
+ if (show) {
+ /* show */
+- draw_all();
+ if (charging) {
+ blink_pos--;
+ }
+@@ -284,6 +286,10 @@
+ addr -= 273;
+ acpi_info.temperature = addr;
+
++ if (sysctlbyname(sysctl_frequency, &addr, &len, NULL, 0) == -1)
++ err(1, "sysctlbyname(\"%s\")", sysctl_frequency);
++ acpi_info.freq = addr;
++
+ if (sysctlbyname(sysctl_acline, &addr, &len, NULL, 0) == -1)
+ err(1, "sysctlbyname(\"%s\")", sysctl_acline);
+ acpi_info.acline = addr;
+@@ -372,6 +378,7 @@
+ draw_temp();
+ #endif
+ draw_temp();
++ draw_freq();
+
+ if (acpi_info.battery_status == CHARGING)
+ blink_batt();
+@@ -471,13 +478,35 @@
+ temp = 0;
+
+ dockapp_copyarea(parts, pixmap, (temp / 10) * 5 + light_offset, 40, 5,
+- 9, 23, 46);
++ 9, 32, 46);
+ dockapp_copyarea(parts, pixmap, (temp % 10) * 5 + light_offset, 40, 5,
+- 9, 29, 46);
++ 9, 38, 46);
+
+ /* '°C'. */
+- dockapp_copyarea(parts, pixmap, 10 + light_offset, 49, 5, 9, 36, 46);
+- dockapp_copyarea(parts, pixmap, 15 + light_offset, 49, 5, 9, 42, 46);
++ dockapp_copyarea(parts, pixmap, 10 + light_offset, 49, 5, 9, 44, 46);
++ dockapp_copyarea(parts, pixmap, 15 + light_offset, 49, 5, 9, 50, 46);
++
++}
++
++void
++draw_freq(void)
++{
++ int light_offset=0;
++ int freq = acpi_info.freq;
++
++ if (backlight == LIGHTON)
++ light_offset = 50;
++
++ if (freq < 0)
++ freq = 0;
++ else if (freq > 9999)
++ freq = 9999;
++ if (freq >= 1000)
++ dockapp_copyarea(parts, pixmap, ((freq / 1000) % 10) * 5 + light_offset, 40, 5, 9, 4, 46);
++ if (freq >= 100)
++ dockapp_copyarea(parts, pixmap, ((freq / 100) % 10) * 5 + light_offset, 40, 5, 9, 10, 46);
++ dockapp_copyarea(parts, pixmap, ((freq / 10) % 10) * 5 + light_offset, 40, 5, 9, 16, 46);
++ dockapp_copyarea(parts, pixmap, (freq % 10) * 5 + light_offset, 40, 5, 9, 22, 46);
+
+ }
+
--- wmbsdbatt-0.1_3.patch ends here ---
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-ports-bugs
mailing list