wmcpuload: Bump to version 1.1.0pre5.
Obtained from http://distfiles.gentoo.org/distfiles/wmcpuload-1.1.0pre5.tar.gz
This commit is contained in:
		
							parent
							
								
									d606c50961
								
							
						
					
					
						commit
						e85e0559c3
					
				
					 29 changed files with 540 additions and 333 deletions
				
			
		| 
						 | 
				
			
			@ -1,10 +1,12 @@
 | 
			
		|||
$Id: AUTHORS,v 1.1.1.1 2002-10-14 09:31:17 sch Exp $
 | 
			
		||||
 | 
			
		||||
Main Author:
 | 
			
		||||
Seiichi SATO <ssato@sh.rim.or.jp>
 | 
			
		||||
 | 
			
		||||
Solaris port:
 | 
			
		||||
Jonathan Lang <lang@synopsys.com>
 | 
			
		||||
 | 
			
		||||
Writting manpage:
 | 
			
		||||
Man-page:
 | 
			
		||||
Gordon Fraser <gordon@debian.org>
 | 
			
		||||
 | 
			
		||||
NetBSD port:
 | 
			
		||||
| 
						 | 
				
			
			@ -12,3 +14,9 @@ Thomas Runge <coto@core.de>
 | 
			
		|||
 | 
			
		||||
BSDi port:
 | 
			
		||||
Nicolas Belan <belan@matranet.com>
 | 
			
		||||
 | 
			
		||||
IRIX port:
 | 
			
		||||
Jonathan C. Patschke <jp@celestrion.net>
 | 
			
		||||
 | 
			
		||||
Darwin port:
 | 
			
		||||
Landon Fuller <landonblue@mac.com>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,8 +1,8 @@
 | 
			
		|||
		    GNU GENERAL PUBLIC LICENSE
 | 
			
		||||
		       Version 2, June 1991
 | 
			
		||||
 | 
			
		||||
 Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
 | 
			
		||||
 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
 | 
			
		||||
 Copyright (C) 1989, 1991 Free Software Foundation, Inc.
 | 
			
		||||
     59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 | 
			
		||||
 Everyone is permitted to copy and distribute verbatim copies
 | 
			
		||||
 of this license document, but changing it is not allowed.
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -15,7 +15,7 @@ software--to make sure the software is free for all its users.  This
 | 
			
		|||
General Public License applies to most of the Free Software
 | 
			
		||||
Foundation's software and to any other program whose authors commit to
 | 
			
		||||
using it.  (Some other Free Software Foundation software is covered by
 | 
			
		||||
the GNU Lesser General Public License instead.)  You can apply it to
 | 
			
		||||
the GNU Library General Public License instead.)  You can apply it to
 | 
			
		||||
your programs, too.
 | 
			
		||||
 | 
			
		||||
  When we speak of free software, we are referring to freedom, not
 | 
			
		||||
| 
						 | 
				
			
			@ -55,7 +55,7 @@ patent must be licensed for everyone's free use or not licensed at all.
 | 
			
		|||
 | 
			
		||||
  The precise terms and conditions for copying, distribution and
 | 
			
		||||
modification follow.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		    GNU GENERAL PUBLIC LICENSE
 | 
			
		||||
   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -110,7 +110,7 @@ above, provided that you also meet all of these conditions:
 | 
			
		|||
    License.  (Exception: if the Program itself is interactive but
 | 
			
		||||
    does not normally print such an announcement, your work based on
 | 
			
		||||
    the Program is not required to print an announcement.)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
These requirements apply to the modified work as a whole.  If
 | 
			
		||||
identifiable sections of that work are not derived from the Program,
 | 
			
		||||
and can be reasonably considered independent and separate works in
 | 
			
		||||
| 
						 | 
				
			
			@ -168,7 +168,7 @@ access to copy from a designated place, then offering equivalent
 | 
			
		|||
access to copy the source code from the same place counts as
 | 
			
		||||
distribution of the source code, even though third parties are not
 | 
			
		||||
compelled to copy the source along with the object code.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  4. You may not copy, modify, sublicense, or distribute the Program
 | 
			
		||||
except as expressly provided under this License.  Any attempt
 | 
			
		||||
otherwise to copy, modify, sublicense or distribute the Program is
 | 
			
		||||
| 
						 | 
				
			
			@ -225,7 +225,7 @@ impose that choice.
 | 
			
		|||
 | 
			
		||||
This section is intended to make thoroughly clear what is believed to
 | 
			
		||||
be a consequence of the rest of this License.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  8. If the distribution and/or use of the Program is restricted in
 | 
			
		||||
certain countries either by patents or by copyrighted interfaces, the
 | 
			
		||||
original copyright holder who places the Program under this License
 | 
			
		||||
| 
						 | 
				
			
			@ -278,7 +278,7 @@ PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
 | 
			
		|||
POSSIBILITY OF SUCH DAMAGES.
 | 
			
		||||
 | 
			
		||||
		     END OF TERMS AND CONDITIONS
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	    How to Apply These Terms to Your New Programs
 | 
			
		||||
 | 
			
		||||
  If you develop a new program, and you want it to be of the greatest
 | 
			
		||||
| 
						 | 
				
			
			@ -303,9 +303,10 @@ the "copyright" line and a pointer to where the full notice is found.
 | 
			
		|||
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
			
		||||
    GNU General Public License for more details.
 | 
			
		||||
 | 
			
		||||
    You should have received a copy of the GNU General Public License along
 | 
			
		||||
    with this program; if not, write to the Free Software Foundation, Inc.,
 | 
			
		||||
    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 | 
			
		||||
    You should have received a copy of the GNU General Public License
 | 
			
		||||
    along with this program; if not, write to the Free Software
 | 
			
		||||
    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Also add information on how to contact you by electronic and paper mail.
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -335,5 +336,5 @@ necessary.  Here is a sample; alter the names:
 | 
			
		|||
This General Public License does not permit incorporating your program into
 | 
			
		||||
proprietary programs.  If your program is a subroutine library, you may
 | 
			
		||||
consider it more useful to permit linking proprietary applications with the
 | 
			
		||||
library.  If this is what you want to do, use the GNU Lesser General
 | 
			
		||||
library.  If this is what you want to do, use the GNU Library General
 | 
			
		||||
Public License instead of this License.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,3 +1,57 @@
 | 
			
		|||
$Id: ChangeLog,v 1.9 2006-01-28 10:40:06 sch Exp $
 | 
			
		||||
 | 
			
		||||
2006 Jan 28
 | 
			
		||||
  * cpu_linux.c:
 | 
			
		||||
  * main.c:
 | 
			
		||||
    applied a patch from php-coder <php-coder at altlinux.ru>
 | 
			
		||||
 | 
			
		||||
2005 Feb 12
 | 
			
		||||
  * main.c: clear digits before redraw_digit().
 | 
			
		||||
 | 
			
		||||
2005 Feb 10
 | 
			
		||||
  * cpu_linux.c:
 | 
			
		||||
  - supported linux 2.6
 | 
			
		||||
  - remvoed --ignore-proc.
 | 
			
		||||
  * configure.ac: remvoed --ignore-proc.
 | 
			
		||||
  * main.c: remvoed --ignore-proc.
 | 
			
		||||
 | 
			
		||||
2005 Jan 17
 | 
			
		||||
  * configure.ac: fixed a typo.
 | 
			
		||||
 | 
			
		||||
2004 Feb 1
 | 
			
		||||
  * src/cpu_freebsd.c: fixed a bug with --ignore-nice option.
 | 
			
		||||
 | 
			
		||||
2004 Jan 25
 | 
			
		||||
  * libdockapp/dockapp.c (dockapp_win): added.
 | 
			
		||||
  * src/main.c: ExposureMask
 | 
			
		||||
  * src/main.c: removed pixmap buffering for optimization.
 | 
			
		||||
 | 
			
		||||
2003 Oct 12
 | 
			
		||||
  * src/cpu_openbsd.c, src/cpu_netbsd.c: fixed a bug with --ignore-nice option.
 | 
			
		||||
    (Thanks to Nedko Arnaudov <nedko at users.sourceforge.net> for sending a
 | 
			
		||||
     patch)
 | 
			
		||||
 | 
			
		||||
2003 Mar 9
 | 
			
		||||
  * version 1.0.1 released
 | 
			
		||||
 | 
			
		||||
2003 Mar 8
 | 
			
		||||
  * src/cpu_freebsd.c: changed to use <sys/resource.h> instead of <sys/dkstat.h>
 | 
			
		||||
                       in the case of __FreeBSD_version >= 500101.
 | 
			
		||||
                       (Thanks to Philip Paeps <philip at paeps.cx)
 | 
			
		||||
 | 
			
		||||
2002 Sep 29
 | 
			
		||||
  * doc/wmcpuload.1: updated
 | 
			
		||||
 | 
			
		||||
2002 Sep 25
 | 
			
		||||
  * cpu_darwin.c: added (Landon Fuller <landonblue at mac.com>)
 | 
			
		||||
 | 
			
		||||
2002 Sep 1
 | 
			
		||||
  * main.c: changed description for `--cpu' oprion to be more clear.
 | 
			
		||||
  * README: updated
 | 
			
		||||
 | 
			
		||||
2002 Aug 20
 | 
			
		||||
  * cpu_irix.c: added for IRIX (Jonathan C. Patschke <jp at celestrion.net>)
 | 
			
		||||
 | 
			
		||||
2002 Jul 14
 | 
			
		||||
  * version 1.0.0 released
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -11,13 +65,13 @@
 | 
			
		|||
  * src/Makefile.am: added missing @DFLAGS@
 | 
			
		||||
 | 
			
		||||
2002 May 17
 | 
			
		||||
  * cpu_bsdi.c: added (Nicolas Belan <belan@matranet.com>)
 | 
			
		||||
  * cpu_bsdi.c: added (Nicolas Belan <belan at matranet.com>)
 | 
			
		||||
 | 
			
		||||
2002 April 09
 | 
			
		||||
  * dockapp.c, dockapp.h: moved to libdockapp/dockapp.[ch]
 | 
			
		||||
  * libdockapp/{COPYING,AUTHORS}: added (taken from libdockapp-0.4.0)
 | 
			
		||||
  * configure.ac: removed '-L/usr/local/lib' '-I/usr/local/include' from
 | 
			
		||||
                  *_search_path (Thanks to Thomas Runge <coto@core.de>)
 | 
			
		||||
                  *_search_path (Thanks to Thomas Runge <coto at core.de>)
 | 
			
		||||
  * README: added 'for GNOME users' section
 | 
			
		||||
 | 
			
		||||
2002 April 05
 | 
			
		||||
| 
						 | 
				
			
			@ -28,7 +82,7 @@
 | 
			
		|||
  * dockapp.c: removed background panel from windowed mode.
 | 
			
		||||
  * dockapp.c: added '-wp, --windowed-withpanel' option.
 | 
			
		||||
  * main.c: added '-t, --title' option to specify title name
 | 
			
		||||
            (Thanks to Ryan Lovett <ryan@ocf.berkeley.edu>)
 | 
			
		||||
            (Thanks to Ryan Lovett <ryan at ocf.berkeley.edu>)
 | 
			
		||||
  * wmcpuload.1: updated
 | 
			
		||||
  * cpu_netbsd.c: added 'CP_INTR' parameter
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,12 +1,13 @@
 | 
			
		|||
$Id: INSTALL,v 1.2 2003-04-06 09:12:41 sch Exp $
 | 
			
		||||
 | 
			
		||||
Supported Platforms:
 | 
			
		||||
====================
 | 
			
		||||
(ie: I've heard someone has compiled it on...)
 | 
			
		||||
 | 
			
		||||
- GNU/Linux Redhat 7.0, 7.1, 7.2, 7.3 (x86)
 | 
			
		||||
- GNU/Linux Redhat 7.0, 7.1, 7.2, 7.3, 8.0 (x86)
 | 
			
		||||
- GNU/Linux Mandrake 7.2, 8.0, 8.1, 8.2 (x86, ppc)
 | 
			
		||||
- Debian GNU/Linux 2.2 potato (x86)
 | 
			
		||||
- Debian GNU/Linux woody/sid
 | 
			
		||||
- Debian GNU/Linux 3.0 woody, sarge, sid
 | 
			
		||||
  (x86, alpha, arm, hppa, ia64, m68k, mips, ppc, s390, sparc)
 | 
			
		||||
- GNU/Linux SuSE 7.0, 7.1 (x86)
 | 
			
		||||
- GNU/Linux Gentoo 1.0, 1.0a (x86, powerpc)
 | 
			
		||||
| 
						 | 
				
			
			@ -14,11 +15,13 @@ Supported Platforms:
 | 
			
		|||
- FreeBSD 4-STABLE (x86, alpha)
 | 
			
		||||
- FreeBSD 5-CURRENT (x86, alpha)
 | 
			
		||||
- OpenBSD 2.9 (x86)
 | 
			
		||||
- NetBSD-current (x86, amigappc, bebox, macppc, powerpc, prep, vax)
 | 
			
		||||
- NetBSD 1.5 (x86, amigappc, bebox, macppc, powerpc, prep, vax)
 | 
			
		||||
- BSDi 4.1
 | 
			
		||||
- Solaris 7, 8
 | 
			
		||||
- Cygwin 1.3.3 / Windows 98, Me
 | 
			
		||||
- Cygwin 1.3.10 / Windows 98, Me, 2000
 | 
			
		||||
- IRIX 6.5
 | 
			
		||||
- Darwin 6.0.1
 | 
			
		||||
 | 
			
		||||
Patches to make it work on other platforms are welcome.
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,2 +1,3 @@
 | 
			
		|||
# $Id: Makefile.am,v 1.1.1.1 2002-10-14 09:31:17 sch Exp $
 | 
			
		||||
 | 
			
		||||
SUBDIRS = src libdockapp icons contrib doc
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,3 +1,5 @@
 | 
			
		|||
# $Id: NEWS,v 1.1.1.1 2002-10-14 09:31:17 sch Exp $
 | 
			
		||||
 | 
			
		||||
Overview of Changes in WMCPULoad 0.9.0:
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,3 +1,5 @@
 | 
			
		|||
$Id: README,v 1.6 2003-06-29 14:34:32 sch Exp $
 | 
			
		||||
 | 
			
		||||
WMCPULoad - A dockapp to monitor CPU usage
 | 
			
		||||
 | 
			
		||||
General Information
 | 
			
		||||
| 
						 | 
				
			
			@ -11,7 +13,8 @@ LCD look-alike user interface. The back-light may be turned on/off by clicking
 | 
			
		|||
the mouse button over the application. If the CPU usage hits a certain
 | 
			
		||||
threshold, an alarm-mode will alert you by turning back-light on.
 | 
			
		||||
 | 
			
		||||
It runs on GNU/Linux / FreeBSD / OpenBSD / NetBSD / BSDi / Solaris / Cygwin.
 | 
			
		||||
It runs on GNU/Linux / FreeBSD / OpenBSD / NetBSD / BSDi / Solaris / Cygwin /
 | 
			
		||||
IRIX / Darwin .
 | 
			
		||||
 | 
			
		||||
Installation
 | 
			
		||||
============
 | 
			
		||||
| 
						 | 
				
			
			@ -31,7 +34,7 @@ $ wmcpuload [OPTIONS]
 | 
			
		|||
 -bl, --backlight               turn on back-light
 | 
			
		||||
 -lc, --light-color <color>     back-light color (rgb:6E/C6/3B is default)
 | 
			
		||||
 -i,  --interval <number>       number of secs between updates (1 is default)
 | 
			
		||||
 -c,  --cpu <number>            CPU number (0, 1, ...)
 | 
			
		||||
 -c,  --cpu <number>            which CPU is monitored (0, 1, ...)
 | 
			
		||||
 -n,  --ignore-nice             ignore a nice value
 | 
			
		||||
 -p,  --ignore-proc <name><...> ignore all processes specified by command name
 | 
			
		||||
 -h,  --help                    show this help text and exit
 | 
			
		||||
| 
						 | 
				
			
			@ -46,12 +49,12 @@ $ wmcpuload [OPTIONS]
 | 
			
		|||
NOTES:
 | 
			
		||||
- '-n, --ignore-nice' option is activated under GNU/Linux / {Free,Open,Net}BSD.
 | 
			
		||||
- '-p, --ignore-proc' option is activated under GNU/Linux.
 | 
			
		||||
- '-c,  --cpu'        option is activated under GNU/Linux.
 | 
			
		||||
- '-c,  --cpu'        option is activated under GNU/Linux / IRIX.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
For AfterStep users
 | 
			
		||||
===================
 | 
			
		||||
Add below entry to your Wharf
 | 
			
		||||
Add this line to your ~/GNUstep/Library/AfterStep/wharf:
 | 
			
		||||
 | 
			
		||||
  *Wharf wmcpuload - Swallow "wmcpuload" wmcpuload -w &
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -66,8 +69,7 @@ open 'Create swallow Applet' dialog and enter the values as below.
 | 
			
		|||
  3. width: 62
 | 
			
		||||
  4. height: 62
 | 
			
		||||
 | 
			
		||||
NOTE: You can't run swallowed application with sawfish 1.0.1. This problem has
 | 
			
		||||
fixed in current cvs.
 | 
			
		||||
NOTE: GNOME2 does not support the swallowed application.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
For Enlightenment users
 | 
			
		||||
| 
						 | 
				
			
			@ -77,7 +79,7 @@ Use '-bw, --broken-wm' option.
 | 
			
		|||
 | 
			
		||||
For Golem users
 | 
			
		||||
===============
 | 
			
		||||
Add below entry to your ~/.golem/plugins/pier/rc
 | 
			
		||||
Add following entry to your ~/.golem/plugins/pier/rc
 | 
			
		||||
 | 
			
		||||
  param "item" "dock" {
 | 
			
		||||
          param "cmd" "exec wmcpuload";
 | 
			
		||||
| 
						 | 
				
			
			@ -91,7 +93,7 @@ Frequently Asked Questions
 | 
			
		|||
Q) Which window managers do support dockapps?
 | 
			
		||||
A) - Window Maker  http://www.windowmaker.org/
 | 
			
		||||
   - AfterStep     http://www.afterstep.org/
 | 
			
		||||
   - Blackbox      http://blackbox.alug.org/
 | 
			
		||||
   - Blackbox      http://blackboxwm.sourceforge.net/
 | 
			
		||||
   - Enlightenment http://www.enlightenment.org/
 | 
			
		||||
   - Fluxbox       http://fluxbox.sourceforge.net/
 | 
			
		||||
   - Waimea        http://waimea.sourceforge.net/
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,3 +1,5 @@
 | 
			
		|||
$Id: TODO,v 1.1.1.1 2002-10-14 09:31:17 sch Exp $
 | 
			
		||||
 | 
			
		||||
* optimize drawing-routines (MIT-SHM)
 | 
			
		||||
* other OS support (Mac OS X, HP-UX, IRIX, AIX ...)
 | 
			
		||||
* other OS support (HP-UX, AIX ...)
 | 
			
		||||
* multiprocessors support on Solaris, FreeBSD, NetBSD, OpenBSD and BSDi
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,9 +1,11 @@
 | 
			
		|||
dnl $Id: configure.ac,v 1.6 2006-01-28 10:40:37 sch Exp $
 | 
			
		||||
 | 
			
		||||
dnl Process this file with autoconf to produce a configure script.
 | 
			
		||||
AC_PREREQ(2.52)
 | 
			
		||||
 | 
			
		||||
dnl AC_INIT(src/main.c)
 | 
			
		||||
dnl AM_INIT_AUTOMAKE(wmcpuload, 0.9.0)
 | 
			
		||||
AC_INIT(wmcpuload, 1.0.0, ssato@sh.rim.or.jp)
 | 
			
		||||
AC_INIT(wmcpuload, 1.1.0pre5, ssato@sh.rim.or.jp)
 | 
			
		||||
AC_CANONICAL_HOST
 | 
			
		||||
AC_CANONICAL_TARGET
 | 
			
		||||
AM_INIT_AUTOMAKE($PACKAGE_NAME, $PACKAGE_VERSION)
 | 
			
		||||
| 
						 | 
				
			
			@ -89,15 +91,13 @@ dnl Determine OS
 | 
			
		|||
dnl ============
 | 
			
		||||
 | 
			
		||||
ignore_nice=no
 | 
			
		||||
ignore_proc=no
 | 
			
		||||
use_smp=no
 | 
			
		||||
 | 
			
		||||
case ${target_os} in
 | 
			
		||||
linux*)
 | 
			
		||||
  OS=linux
 | 
			
		||||
  ignore_nice=yes
 | 
			
		||||
  ignore_proc=yes
 | 
			
		||||
  AC_CHECK_HEADER(linux/threads.h, [AC_DEFINE(USE_SMP, 1, [use SMP support])],
 | 
			
		||||
    [echo "linux/threads.h header file was not found, but is necessary to support mulit processors"])
 | 
			
		||||
  use_smp=yes
 | 
			
		||||
  ;;
 | 
			
		||||
freebsd*)
 | 
			
		||||
  OS=freebsd
 | 
			
		||||
| 
						 | 
				
			
			@ -124,6 +124,13 @@ solaris*)
 | 
			
		|||
cygwin*)
 | 
			
		||||
  OS=cygwin
 | 
			
		||||
  ;;
 | 
			
		||||
irix*)
 | 
			
		||||
  OS=irix
 | 
			
		||||
  use_smp=yes
 | 
			
		||||
  ;;
 | 
			
		||||
darwin*)
 | 
			
		||||
  OS=darwin
 | 
			
		||||
  ;;
 | 
			
		||||
*)
 | 
			
		||||
  echo ""
 | 
			
		||||
  echo "Sorry, ${target_os} is not supported yet"
 | 
			
		||||
| 
						 | 
				
			
			@ -139,8 +146,8 @@ AC_SUBST(LIBS)
 | 
			
		|||
if test "$ignore_nice" = yes; then
 | 
			
		||||
  AC_DEFINE(IGNORE_NICE, 1, [use '--ignore-nice' option])
 | 
			
		||||
fi
 | 
			
		||||
if test "$ignore_proc" = yes; then
 | 
			
		||||
  AC_DEFINE(IGNORE_PROC, 1, [use '--ignore-process' option])
 | 
			
		||||
if test "$use_smp" = yes; then
 | 
			
		||||
  AC_DEFINE(USE_SMP, 1, [use SMP support])
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,3 +1,4 @@
 | 
			
		|||
# $Id: Makefile.am,v 1.1.1.1 2002-10-14 09:31:17 sch Exp $
 | 
			
		||||
 | 
			
		||||
EXTRA_DIST = README wmcpuload.spec.in
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,3 +1,5 @@
 | 
			
		|||
$Id: README,v 1.1.1.1 2002-10-14 09:31:17 sch Exp $
 | 
			
		||||
 | 
			
		||||
*** wmcpuload.spec
 | 
			
		||||
 | 
			
		||||
author:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,3 +1,4 @@
 | 
			
		|||
# $Id: Makefile.am,v 1.1.1.1 2002-10-14 09:31:17 sch Exp $
 | 
			
		||||
 | 
			
		||||
man_MANS = wmcpuload.1
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,3 +1,4 @@
 | 
			
		|||
.\" $Id: wmcpuload.1,v 1.2 2005-02-10 01:13:40 sch Exp $
 | 
			
		||||
.\"                                      Hey, EMACS: -*- nroff -*-
 | 
			
		||||
.\" First parameter, NAME, should be all caps
 | 
			
		||||
.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
 | 
			
		||||
| 
						 | 
				
			
			@ -57,7 +58,7 @@ back-light color (rgb:6E/C6/3B is default)
 | 
			
		|||
.B \-i,  \-\-interval <number>
 | 
			
		||||
number of secs between updates (1 is default)
 | 
			
		||||
.TP
 | 
			
		||||
.B \-c,  \-\-cpu <number>
 | 
			
		||||
.B \-c,  \-\-cpu <number> (GNU/Linux / IRIX)
 | 
			
		||||
CPU number to monitor (Counting starts with 0).
 | 
			
		||||
.TP
 | 
			
		||||
.B \-n,  \-\-ignore\-nice (GNU/Linux / FreeBSD / OpenBSD / NetBSD)
 | 
			
		||||
| 
						 | 
				
			
			@ -80,9 +81,6 @@ activate broken window manager fix
 | 
			
		|||
.TP
 | 
			
		||||
.B \-a,  \-\-alarm <percentage>
 | 
			
		||||
activate alarm mode. <percentage> is threshold of percentage from 0 to 100.(90 is default)
 | 
			
		||||
.TP
 | 
			
		||||
.B \-p,  \-\-ignore\-proc <name><...>
 | 
			
		||||
ignore all processes specified by command name
 | 
			
		||||
 | 
			
		||||
.SH AUTHOR
 | 
			
		||||
WMCPULoad was written by Seiichi SATO <ssato@sh.rim.or.jp>.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,3 +1,5 @@
 | 
			
		|||
# $Id: Makefile.am,v 1.1.1.1 2002-10-14 09:31:17 sch Exp $
 | 
			
		||||
 | 
			
		||||
EXTRA_DIST = \
 | 
			
		||||
	wmcpuload-16x16.xpm \
 | 
			
		||||
	wmcpuload-32x32.xpm \
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1 +1,3 @@
 | 
			
		|||
$Id: README,v 1.1.1.1 2002-10-14 09:31:17 sch Exp $
 | 
			
		||||
 | 
			
		||||
Icons for Mandrake GNU/Linux
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,3 +1,5 @@
 | 
			
		|||
/* $Id: dockapp.c,v 1.3 2004-01-25 14:06:27 sch Exp $ */
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright (c) 1999 Alfredo K. Kojima
 | 
			
		||||
 *
 | 
			
		||||
| 
						 | 
				
			
			@ -261,22 +263,39 @@ void
 | 
			
		|||
dockapp_copyarea(Pixmap src, Pixmap dist, int x_src, int y_src, int w, int h,
 | 
			
		||||
		 int x_dist, int y_dist)
 | 
			
		||||
{
 | 
			
		||||
    Window win;
 | 
			
		||||
 | 
			
		||||
    win = dockapp_isbrokenwm ? window : icon_window;
 | 
			
		||||
 | 
			
		||||
    if (src == win) {
 | 
			
		||||
	x_src += offset_w;
 | 
			
		||||
	y_src += offset_h;
 | 
			
		||||
    }
 | 
			
		||||
    if (dist == win) {
 | 
			
		||||
	x_dist += offset_w;
 | 
			
		||||
	y_dist += offset_h;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    XCopyArea(display, src, dist, gc, x_src, y_src, w, h, x_dist, y_dist);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
dockapp_copy2window (Pixmap src)
 | 
			
		||||
dockapp_copy2window(Pixmap src, int x_src, int y_src, int w, int h, int x_dist,
 | 
			
		||||
		    int y_dist)
 | 
			
		||||
{
 | 
			
		||||
    if (dockapp_isbrokenwm) {
 | 
			
		||||
	XCopyArea(display, src, window, gc, 0, 0, width, height, offset_w,
 | 
			
		||||
		  offset_h);
 | 
			
		||||
    } else {
 | 
			
		||||
	XCopyArea(display, src, icon_window, gc, 0, 0, width, height, offset_w,
 | 
			
		||||
		  offset_h);
 | 
			
		||||
    }
 | 
			
		||||
    Window win;
 | 
			
		||||
 | 
			
		||||
    win = dockapp_isbrokenwm ? window : icon_window;
 | 
			
		||||
 | 
			
		||||
    XCopyArea(display, src, win, gc, x_src, y_src, w, h, offset_w + x_dist,
 | 
			
		||||
	      offset_h + y_dist);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
Window
 | 
			
		||||
dockapp_win(void)
 | 
			
		||||
{
 | 
			
		||||
    return dockapp_isbrokenwm ? window : icon_window;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
Bool
 | 
			
		||||
dockapp_nextevent_or_timeout(XEvent *event, unsigned long miliseconds)
 | 
			
		||||
| 
						 | 
				
			
			@ -457,3 +476,5 @@ dockapp_blendedcolor(char *color_name, int r, int g, int b, float fac)
 | 
			
		|||
 | 
			
		||||
    return color.pixel;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* ex:set sw=4 softtabstop=4: */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,3 +1,5 @@
 | 
			
		|||
/* $Id: dockapp.h,v 1.3 2004-01-25 14:06:27 sch Exp $ */
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright (c) 1999 Alfredo K. Kojima
 | 
			
		||||
 *
 | 
			
		||||
| 
						 | 
				
			
			@ -98,7 +100,8 @@ Pixmap dockapp_XCreatePixmap(int w, int h);
 | 
			
		|||
void dockapp_setshape(Pixmap mask, int x_ofs, int y_ofs);
 | 
			
		||||
void dockapp_copyarea(Pixmap src, Pixmap dist, int x_src, int y_src,
 | 
			
		||||
		      int w, int h, int x_dist, int y_dist);
 | 
			
		||||
void dockapp_copy2window(Pixmap src);
 | 
			
		||||
void dockapp_copy2window(Pixmap src, int x_src, int y_src, int w, int h,
 | 
			
		||||
			 int x_dist, int y_dist);
 | 
			
		||||
Bool dockapp_nextevent_or_timeout(XEvent * event, unsigned long miliseconds);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,3 +1,5 @@
 | 
			
		|||
# $Id: Makefile.am,v 1.1.1.1 2002-10-14 09:31:17 sch Exp $
 | 
			
		||||
 | 
			
		||||
bin_PROGRAMS = wmcpuload
 | 
			
		||||
 | 
			
		||||
wmcpuload_SOURCES = \
 | 
			
		||||
| 
						 | 
				
			
			@ -15,7 +17,9 @@ EXTRA_wmcpuload_SOURCES = \
 | 
			
		|||
	cpu_netbsd.c \
 | 
			
		||||
	cpu_bsdi.c \
 | 
			
		||||
	cpu_solaris.c \
 | 
			
		||||
	cpu_cygwin.c
 | 
			
		||||
	cpu_cygwin.c \
 | 
			
		||||
	cpu_irix.c \
 | 
			
		||||
	cpu_darwin.c
 | 
			
		||||
 | 
			
		||||
wmcpuload_DEPENDENCIES = ../libdockapp/dockapp.o
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,3 +1,5 @@
 | 
			
		|||
/* $Id: cpu.h,v 1.3 2005-02-10 01:12:49 sch Exp $ */
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * cpu.h - header file of the module to get cpu usage
 | 
			
		||||
 *
 | 
			
		||||
| 
						 | 
				
			
			@ -13,13 +15,11 @@
 | 
			
		|||
#define COMM_LEN 16
 | 
			
		||||
#endif
 | 
			
		||||
#define MAX_PROC 5
 | 
			
		||||
 | 
			
		||||
#define MAX_CPU 99
 | 
			
		||||
 | 
			
		||||
typedef struct _cpu_options {
 | 
			
		||||
    int ignore_nice;
 | 
			
		||||
    int cpu_number;
 | 
			
		||||
    char *ignore_proc_list[MAX_PROC];
 | 
			
		||||
    int ignore_procs;
 | 
			
		||||
} cpu_options;
 | 
			
		||||
 | 
			
		||||
void cpu_init(void);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,3 +1,5 @@
 | 
			
		|||
/* $Id: cpu_bsdi.c,v 1.1.1.1 2002-10-14 09:31:17 sch Exp $ */
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * cpu_bsdi - module to get cpu usage, for BSDi
 | 
			
		||||
 *
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,3 +1,5 @@
 | 
			
		|||
/* $Id: cpu_cygwin.c,v 1.2 2005-02-10 01:15:21 sch Exp $ */
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * cpu_cygwin.c - module to get cpu usage, for Cygwin
 | 
			
		||||
 *
 | 
			
		||||
| 
						 | 
				
			
			@ -99,7 +101,7 @@ cpu_get_usage_9x(cpu_options *opts)
 | 
			
		|||
 | 
			
		||||
    if (RegOpenKeyEx(HKEY_DYN_DATA, "PerfStats\\StatData",
 | 
			
		||||
		     0, KEY_READ, &hkeyr) != ERROR_SUCCESS) {
 | 
			
		||||
	fprintf(stderr, "%s: can't open registry 'PerfStats\\StatData'\n", PACKAGE);
 | 
			
		||||
	fprintf(stderr, "%s: could not open registry 'PerfStats\\StatData'\n", PACKAGE);
 | 
			
		||||
	return 0;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -150,14 +152,14 @@ cpu_get_usage_NT(cpu_options *opts)
 | 
			
		|||
    SYSTEM_PERFORMANCE_INFORMATION spi;
 | 
			
		||||
 | 
			
		||||
    if ((h_ntdll = LoadLibraryEx("NTDLL.DLL", NULL, 0)) == NULL) {
 | 
			
		||||
	fprintf(stderr, "%s: can't load NTDLL.DLL\n", PACKAGE);
 | 
			
		||||
	fprintf(stderr, "%s: could not load NTDLL.DLL\n", PACKAGE);
 | 
			
		||||
	exit (1);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    NtQuerySystemInformation = GetProcAddress(h_ntdll,
 | 
			
		||||
					      "NtQuerySystemInformation");
 | 
			
		||||
    if (!NtQuerySystemInformation) {
 | 
			
		||||
	fprintf(stderr, "%s: can't find NtQuerySystemInformation()\n", PACKAGE);
 | 
			
		||||
	fprintf(stderr, "%s: could not find NtQuerySystemInformation()\n", PACKAGE);
 | 
			
		||||
	FreeLibrary(h_ntdll);
 | 
			
		||||
	return 0;
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										60
									
								
								wmcpuload/src/cpu_darwin.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										60
									
								
								wmcpuload/src/cpu_darwin.c
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,60 @@
 | 
			
		|||
/* $Id: cpu_darwin.c,v 1.1.1.1 2002-10-14 09:31:17 sch Exp $ */
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * cpu_darwin - module to get cpu usage, for Darwin
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (C) 2002 Landon Fuller <landonblue@mac.com>
 | 
			
		||||
 *
 | 
			
		||||
 * Licensed under the GPL
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#ifdef HAVE_CONFIG_H
 | 
			
		||||
#include "config.h"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#include <stdio.h>
 | 
			
		||||
#include <unistd.h>
 | 
			
		||||
#include <stdlib.h>
 | 
			
		||||
#include <string.h>
 | 
			
		||||
#include "cpu.h"
 | 
			
		||||
 | 
			
		||||
#include <mach/host_info.h>
 | 
			
		||||
#include <mach/mach_types.h>
 | 
			
		||||
#include <mach/message.h>
 | 
			
		||||
 | 
			
		||||
static host_cpu_load_info_data_t prevcount, curcount;
 | 
			
		||||
static mach_port_t host_priv_port;
 | 
			
		||||
 | 
			
		||||
static
 | 
			
		||||
getload(host_cpu_load_info_t cpucounters)
 | 
			
		||||
{
 | 
			
		||||
    mach_msg_type_number_t count;
 | 
			
		||||
    kern_return_t kr;
 | 
			
		||||
    count = HOST_CPU_LOAD_INFO_COUNT;
 | 
			
		||||
    kr = host_statistics (host_priv_port, HOST_CPU_LOAD_INFO, (host_info_t) cpucounters, &count);
 | 
			
		||||
    return (kr);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
cpu_init(void)
 | 
			
		||||
{
 | 
			
		||||
    host_priv_port = mach_host_self();
 | 
			
		||||
    getload(&prevcount);
 | 
			
		||||
    return;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* Returns the current CPU usage in percent */
 | 
			
		||||
int
 | 
			
		||||
cpu_get_usage(cpu_options *opts)
 | 
			
		||||
{
 | 
			
		||||
    double userticks, systicks, idleticks, totalticks, usedticks;
 | 
			
		||||
    getload(&curcount);
 | 
			
		||||
 | 
			
		||||
    userticks = curcount.cpu_ticks[CPU_STATE_USER] - prevcount.cpu_ticks[CPU_STATE_USER];
 | 
			
		||||
    systicks = curcount.cpu_ticks[CPU_STATE_SYSTEM] - prevcount.cpu_ticks[CPU_STATE_SYSTEM];
 | 
			
		||||
    idleticks = curcount.cpu_ticks[CPU_STATE_IDLE] - prevcount.cpu_ticks[CPU_STATE_IDLE];
 | 
			
		||||
    prevcount = curcount;
 | 
			
		||||
    usedticks = userticks + systicks;
 | 
			
		||||
    totalticks = usedticks + idleticks;
 | 
			
		||||
    return ((100 * (double) usedticks) / totalticks);
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,7 +1,9 @@
 | 
			
		|||
/* $Id: cpu_freebsd.c,v 1.3 2004-02-01 10:49:53 sch Exp $ */
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * cpu_freebsd.c - module to get cpu usage, for FreeBSD
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (c) 2001, 2002 Seiichi SATO <ssato@sh.rim.or.jp>
 | 
			
		||||
 * Copyright (c) 2001, 2002, 2004 Seiichi SATO <ssato@sh.rim.or.jp>
 | 
			
		||||
 *
 | 
			
		||||
 * Licensed under the GPL
 | 
			
		||||
 */
 | 
			
		||||
| 
						 | 
				
			
			@ -18,7 +20,14 @@
 | 
			
		|||
 | 
			
		||||
#include <kvm.h>
 | 
			
		||||
#include <fcntl.h>
 | 
			
		||||
#include <sys/dkstat.h>
 | 
			
		||||
 | 
			
		||||
#include <sys/param.h>
 | 
			
		||||
 | 
			
		||||
#if __FreeBSD_version < 500101
 | 
			
		||||
#   include <sys/dkstat.h>
 | 
			
		||||
#else
 | 
			
		||||
#   include <sys/resource.h>
 | 
			
		||||
#endif /* __FreeBSD_version < 500101 */
 | 
			
		||||
 | 
			
		||||
static kvm_t *kd = NULL;
 | 
			
		||||
static struct nlist nlst[] = { {"_cp_time"}, {0} };
 | 
			
		||||
| 
						 | 
				
			
			@ -63,20 +72,18 @@ cpu_get_usage(cpu_options *opts)
 | 
			
		|||
	sizeof(cpu_time))
 | 
			
		||||
	return 0;
 | 
			
		||||
 | 
			
		||||
    used = cpu_time[CP_USER] + cpu_time[CP_SYS];
 | 
			
		||||
    if (!opts->ignore_nice)
 | 
			
		||||
	used += cpu_time[CP_NICE];
 | 
			
		||||
    total = used + cpu_time[CP_IDLE];
 | 
			
		||||
 | 
			
		||||
    if (pre_total == 0) {
 | 
			
		||||
    /* calculate usage */
 | 
			
		||||
    total = cpu_time[CP_USER] + cpu_time[CP_SYS] + cpu_time[CP_INTR] +
 | 
			
		||||
	    cpu_time[CP_NICE] + cpu_time[CP_IDLE];
 | 
			
		||||
    used = cpu_time[CP_USER] + cpu_time[CP_SYS] + cpu_time[CP_INTR] +
 | 
			
		||||
	   (opts->ignore_nice ? 0 : cpu_time[CP_NICE]);
 | 
			
		||||
    if ((pre_total == 0) || !(total - pre_total > 0)) {
 | 
			
		||||
	result = 0;
 | 
			
		||||
    } else if ((total - pre_total) > 0) {
 | 
			
		||||
	result = (100 * (double) (used - pre_used)) / (double) (total -
 | 
			
		||||
		 pre_total);
 | 
			
		||||
    } else {
 | 
			
		||||
	result = 0;
 | 
			
		||||
	result = 100 * (double)(used - pre_used) / (double)(total - pre_total);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /* save used/total for next calculation */
 | 
			
		||||
    pre_used = used;
 | 
			
		||||
    pre_total = total;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										83
									
								
								wmcpuload/src/cpu_irix.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										83
									
								
								wmcpuload/src/cpu_irix.c
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,83 @@
 | 
			
		|||
/* $Id: cpu_irix.c,v 1.1.1.1 2002-10-14 09:31:17 sch Exp $ */
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * cpu_irix.c - module to get cpu usage, for IRIX 6.5 and IRIX64 6.5
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (C) 2002 Jonathan C. Patschke <jp@celestrion.net>
 | 
			
		||||
 * Copyright (C) 2002 Seiichi SATO <ssato@sh.rim.or.jp>
 | 
			
		||||
 *
 | 
			
		||||
 * licensed under the GPL
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#ifdef HAVE_CONFIG_H
 | 
			
		||||
#include "config.h"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#include <stdio.h>
 | 
			
		||||
#include <unistd.h>
 | 
			
		||||
#include <stdlib.h>
 | 
			
		||||
#include <string.h>
 | 
			
		||||
#include "cpu.h"
 | 
			
		||||
 | 
			
		||||
#include <sys/types.h>
 | 
			
		||||
#include <sys/sysmp.h>
 | 
			
		||||
#include <sys/sysinfo.h>
 | 
			
		||||
#include <sys/sysget.h>
 | 
			
		||||
 | 
			
		||||
int cpuCount;
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
cpu_init(void)
 | 
			
		||||
{
 | 
			
		||||
    cpuCount = (int)sysmp(MP_NPROCS);
 | 
			
		||||
    return;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* returns current CPU usage in percent */
 | 
			
		||||
int
 | 
			
		||||
cpu_get_usage(cpu_options *opts)
 | 
			
		||||
{
 | 
			
		||||
    struct sgt_cookie cookie;
 | 
			
		||||
    struct sysinfo info;
 | 
			
		||||
    long cpuload, cputotal;
 | 
			
		||||
    static long ocpuload, ocputotal;
 | 
			
		||||
    int result, i;
 | 
			
		||||
 | 
			
		||||
    if (opts->cpu_number >= cpuCount) return 0;
 | 
			
		||||
    SGT_COOKIE_INIT(&cookie); 
 | 
			
		||||
    if (opts->cpu_number < 1) {
 | 
			
		||||
      /* Get stats for all CPUs */
 | 
			
		||||
      cpuload  = 0;
 | 
			
		||||
      cputotal = 0;
 | 
			
		||||
      for (i = 0 ; i < cpuCount ; i++) {
 | 
			
		||||
        SGT_COOKIE_SET_CPU(&cookie, i);
 | 
			
		||||
        memset(((void *)&info), 0x00, sizeof(info));
 | 
			
		||||
        sysget(SGT_SINFO_CPU, ((char *)&info), sizeof(info),
 | 
			
		||||
               SGT_READ, &cookie);
 | 
			
		||||
        cpuload  += info.cpu[CPU_USER] + info.cpu[CPU_KERNEL] +
 | 
			
		||||
                    info.cpu[CPU_WAIT] + info.cpu[CPU_SXBRK]  +
 | 
			
		||||
                    info.cpu[CPU_INTR];
 | 
			
		||||
        cputotal += cpuload + info.cpu[CPU_IDLE]; 
 | 
			
		||||
      };
 | 
			
		||||
    } else {
 | 
			
		||||
      SGT_COOKIE_SET_CPU(&cookie, opts->cpu_number);
 | 
			
		||||
      memset(((void *)&info), 0x00, sizeof(info));
 | 
			
		||||
      sysget(SGT_SINFO_CPU, ((char *)&info), sizeof(info),
 | 
			
		||||
             SGT_READ, &cookie);
 | 
			
		||||
      cpuload  = info.cpu[CPU_USER] + info.cpu[CPU_KERNEL] +
 | 
			
		||||
                 info.cpu[CPU_WAIT] + info.cpu[CPU_SXBRK]  +
 | 
			
		||||
                 info.cpu[CPU_INTR];
 | 
			
		||||
      cputotal = cpuload + info.cpu[CPU_IDLE]; 
 | 
			
		||||
    }
 | 
			
		||||
#ifdef DEBUG
 | 
			
		||||
    fprintf(stderr, "!!!%d/%d: %d, %d, %d, %d, %d, %d\n", opts->cpu_number,
 | 
			
		||||
            cpuCount, info.cpu[CPU_USER], info.cpu[CPU_KERNEL], info.cpu[CPU_WAIT],
 | 
			
		||||
            info.cpu[CPU_SXBRK], info.cpu[CPU_INTR], info.cpu[CPU_IDLE]);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
    result    = ((cpuload - ocpuload) * 100) / (cputotal - ocputotal);
 | 
			
		||||
    ocpuload  = cpuload;
 | 
			
		||||
    ocputotal = cputotal;
 | 
			
		||||
 | 
			
		||||
    return result;
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,11 +1,27 @@
 | 
			
		|||
/*
 | 
			
		||||
 * cpu_linux.c - module to get cpu usage, for GNU/Linux
 | 
			
		||||
 * wmcpuload
 | 
			
		||||
 * GNU/Linux specific part
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (C) 2001, 2002 Seiichi SATO <ssato@sh.rim.or.jp>
 | 
			
		||||
 * Copyright (C) 2001, 2002, 2005 Seiichi SATO <ssato@sh.rim.or.jp>
 | 
			
		||||
 *
 | 
			
		||||
 * licensed under the GPL
 | 
			
		||||
 * This program is free software; you can redistribute it and/or
 | 
			
		||||
 * modify it under the terms of the GNU General Public License as
 | 
			
		||||
 * published by the Free Software Foundation; either version 2 of the
 | 
			
		||||
 * License, or (at your option) any later version.
 | 
			
		||||
 *
 | 
			
		||||
 * This program is distributed in the hope that it will be useful, but
 | 
			
		||||
 * WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
			
		||||
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 | 
			
		||||
 * General Public License for more details.
 | 
			
		||||
 *
 | 
			
		||||
 * You should have received a copy of the GNU General Public License
 | 
			
		||||
 * along with this program; if not, write to the Free Software
 | 
			
		||||
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
 | 
			
		||||
 * 02111-1307, USA.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/* $Id: cpu_linux.c,v 1.4 2006-01-28 10:40:09 sch Exp $ */
 | 
			
		||||
 | 
			
		||||
#ifdef HAVE_CONFIG_H
 | 
			
		||||
#include "config.h"
 | 
			
		||||
#endif
 | 
			
		||||
| 
						 | 
				
			
			@ -21,156 +37,97 @@
 | 
			
		|||
#include <sys/stat.h>
 | 
			
		||||
#include <linux/limits.h>
 | 
			
		||||
 | 
			
		||||
#ifdef USE_SMP
 | 
			
		||||
#include <linux/threads.h>
 | 
			
		||||
#endif
 | 
			
		||||
static int is_linux26;
 | 
			
		||||
 | 
			
		||||
static void set_pidlist_from_namelist(int names, char **name_list);
 | 
			
		||||
static int get_cpuusage_bypid(pid_t pid);
 | 
			
		||||
 | 
			
		||||
static int *pid_list;
 | 
			
		||||
static int pids;
 | 
			
		||||
 | 
			
		||||
void cpu_init(void)
 | 
			
		||||
static void
 | 
			
		||||
skip_line(FILE *fp)
 | 
			
		||||
{
 | 
			
		||||
    /*  You don't need initialization under GNU/Linux */
 | 
			
		||||
	int c;
 | 
			
		||||
 | 
			
		||||
	while ((c = fgetc(fp)) != '\n')
 | 
			
		||||
		if (c == EOF) break;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
cpu_init(void)
 | 
			
		||||
{
 | 
			
		||||
	unsigned long long softirq;
 | 
			
		||||
	FILE *fp;
 | 
			
		||||
 | 
			
		||||
	if (!(fp = fopen("/proc/stat", "r"))) {
 | 
			
		||||
		perror("fopen");
 | 
			
		||||
		exit(1);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	is_linux26 = fscanf(fp, "%*s  %*u %*u %*u %*u %*u %*u %llu",
 | 
			
		||||
			    &softirq);
 | 
			
		||||
 | 
			
		||||
	fclose(fp);
 | 
			
		||||
 | 
			
		||||
	return;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* returns current cpu usage in percent */
 | 
			
		||||
int
 | 
			
		||||
cpu_get_usage(cpu_options *opts)
 | 
			
		||||
cpu_get_usage(cpu_options * opts)
 | 
			
		||||
{
 | 
			
		||||
    static int pre_used, pre_total;
 | 
			
		||||
    static int pre_ig_used;
 | 
			
		||||
    int usage;
 | 
			
		||||
    int cpu, nice, system, idle;
 | 
			
		||||
    int used = 0, total = 0;
 | 
			
		||||
    int ig_used = 0;
 | 
			
		||||
    int i;
 | 
			
		||||
	unsigned long long user, nice, system, idle, iowait, irq, softirq;
 | 
			
		||||
	unsigned long long used, total;
 | 
			
		||||
	static unsigned long long pre_used = 0, pre_total = 0;
 | 
			
		||||
	int result;
 | 
			
		||||
 | 
			
		||||
	FILE *fp;
 | 
			
		||||
	if (!(fp = fopen("/proc/stat", "r"))) {
 | 
			
		||||
	perror("can't open /proc/stat");
 | 
			
		||||
		perror("fopen");
 | 
			
		||||
		exit(1);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
    fscanf(fp, "%*s %d %d %d %d", &cpu, &nice, &system, &idle);
 | 
			
		||||
 | 
			
		||||
#ifdef USE_SMP
 | 
			
		||||
    if (opts->cpu_number >= 0) {
 | 
			
		||||
	char cpu_name[20];
 | 
			
		||||
	if (opts->cpu_number > NR_CPUS - 1) {
 | 
			
		||||
	    fprintf (stderr, "MAX CPU number that can be running in SMP is %d\n", NR_CPUS - 1);
 | 
			
		||||
	    exit(1);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	for (i = 0; i <= opts->cpu_number; i++) {
 | 
			
		||||
	    fscanf(fp, "%s %d %d %d %d", cpu_name, &cpu, &nice, &system, &idle);
 | 
			
		||||
	    if (strncmp(cpu_name, "cpu", 3)){
 | 
			
		||||
		fprintf (stderr, "can't find cpu%d!\n", opts->cpu_number);
 | 
			
		||||
		exit (1);
 | 
			
		||||
	    }
 | 
			
		||||
	}
 | 
			
		||||
    }
 | 
			
		||||
#endif /* USE_SMP */
 | 
			
		||||
 | 
			
		||||
    fclose(fp);
 | 
			
		||||
    used = cpu + system;
 | 
			
		||||
    if (!opts->ignore_nice)
 | 
			
		||||
	used += nice;
 | 
			
		||||
    total = cpu + nice + system + idle;
 | 
			
		||||
 | 
			
		||||
    /* get CPU usage of processes which specified by name with '-p' option */
 | 
			
		||||
    if (opts->ignore_procs) {
 | 
			
		||||
	pids = 0;
 | 
			
		||||
	if (!(pid_list = malloc(sizeof(pid_t)))) {
 | 
			
		||||
	    perror("malloc");
 | 
			
		||||
	    exit(1);
 | 
			
		||||
	}
 | 
			
		||||
	set_pidlist_from_namelist(opts->ignore_procs, opts->ignore_proc_list);
 | 
			
		||||
	for (i = 0; i < pids; i++)
 | 
			
		||||
	    ig_used += get_cpuusage_bypid(pid_list[i]);
 | 
			
		||||
	free(pid_list);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /* calc CPU usage */
 | 
			
		||||
    if ((pre_total == 0) || !(total - pre_total > 0)) {
 | 
			
		||||
	usage = 0;
 | 
			
		||||
    } else  if (ig_used - pre_ig_used > 0) {
 | 
			
		||||
	usage = (100 * (double)(used - pre_used - ig_used + pre_ig_used)) /
 | 
			
		||||
		(double)(total - pre_total);
 | 
			
		||||
	if (opts->cpu_number == -1) {
 | 
			
		||||
		if (is_linux26)
 | 
			
		||||
			fscanf(fp, "%*s  %llu %llu %llu %llu %llu %llu %llu",
 | 
			
		||||
			       &user, &nice, &system, &idle, &iowait,
 | 
			
		||||
			       &irq, &softirq);
 | 
			
		||||
		else
 | 
			
		||||
			fscanf(fp, "%*s  %llu %llu %llu %llu",
 | 
			
		||||
			       &user, &nice, &system, &idle);
 | 
			
		||||
	} else {
 | 
			
		||||
	usage = (100 * (double)(used - pre_used)) / (double)(total - pre_total);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /* save current values for next calculation */
 | 
			
		||||
    pre_ig_used = ig_used;
 | 
			
		||||
    pre_used = used;
 | 
			
		||||
    pre_total = total;
 | 
			
		||||
 | 
			
		||||
    return usage;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* set pid list table from command names */
 | 
			
		||||
static void
 | 
			
		||||
set_pidlist_from_namelist(int names, char **name_list)
 | 
			
		||||
{
 | 
			
		||||
    DIR *dir;
 | 
			
		||||
    struct dirent *de;
 | 
			
		||||
    FILE *fp;
 | 
			
		||||
    char path[PATH_MAX + 1];
 | 
			
		||||
    char comm[COMM_LEN];
 | 
			
		||||
    pid_t pid;
 | 
			
		||||
		char cpu_name[20];
 | 
			
		||||
		int i;
 | 
			
		||||
 | 
			
		||||
    if (!(dir = opendir("/proc"))) {
 | 
			
		||||
	perror("can't open /proc");
 | 
			
		||||
		for (i = 0; i <= opts->cpu_number; i++)
 | 
			
		||||
			skip_line(fp);
 | 
			
		||||
 | 
			
		||||
		if (is_linux26)
 | 
			
		||||
			fscanf(fp, "%s  %llu %llu %llu %llu %llu %llu %llu",
 | 
			
		||||
			       cpu_name, &user, &nice, &system, &idle, &iowait,
 | 
			
		||||
			       &irq, &softirq);
 | 
			
		||||
		else
 | 
			
		||||
			fscanf(fp, "%s  %llu %llu %llu %llu",
 | 
			
		||||
			       cpu_name, &user, &nice, &system,
 | 
			
		||||
			       &idle);
 | 
			
		||||
 | 
			
		||||
		if (cpu_name[3] != '0' + opts->cpu_number) {
 | 
			
		||||
			fprintf(stderr, "Could not find cpu%d.\n",
 | 
			
		||||
				opts->cpu_number);
 | 
			
		||||
			exit(1);
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
    /* search specified process from all processes */
 | 
			
		||||
    chdir("/proc");
 | 
			
		||||
    while ((de = readdir(dir)) != NULL) {
 | 
			
		||||
	if ((de->d_name[0] != '.') &&
 | 
			
		||||
	    ((de->d_name[0] >= '0') && (de->d_name[0] <= '9'))) {
 | 
			
		||||
	    pid = (pid_t) atoi(de->d_name);
 | 
			
		||||
	    sprintf(path, "%d/stat", pid);
 | 
			
		||||
	    if ((fp = fopen(path, "r")) != NULL) {
 | 
			
		||||
		fscanf(fp, "%*d (%[^)]", comm);
 | 
			
		||||
		for (i = 0; i < names; i++) {
 | 
			
		||||
		    if (strcmp(comm, name_list[i]) == 0) {
 | 
			
		||||
			/* add process id to list */
 | 
			
		||||
			pids++;
 | 
			
		||||
			if (!(pid_list=realloc(pid_list, pids*sizeof(pid_t)))){
 | 
			
		||||
			    perror("realloc() failed");
 | 
			
		||||
			    exit(1);
 | 
			
		||||
			}
 | 
			
		||||
			pid_list[pids - 1] = pid;
 | 
			
		||||
		    }
 | 
			
		||||
		}
 | 
			
		||||
	fclose(fp);
 | 
			
		||||
	    }
 | 
			
		||||
	}
 | 
			
		||||
    }
 | 
			
		||||
    closedir(dir);
 | 
			
		||||
 | 
			
		||||
	used = user + system;
 | 
			
		||||
	if (!opts->ignore_nice)
 | 
			
		||||
		used += nice;
 | 
			
		||||
	total = user + nice + system + idle;
 | 
			
		||||
	if (is_linux26)
 | 
			
		||||
		total += iowait + irq + softirq;
 | 
			
		||||
 | 
			
		||||
	result = (100 * (double)(used - pre_used)) / (double)(total - pre_total);
 | 
			
		||||
 | 
			
		||||
	pre_total = total;
 | 
			
		||||
	pre_used = used;
 | 
			
		||||
 | 
			
		||||
	return result;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static int
 | 
			
		||||
get_cpuusage_bypid(pid_t pid)
 | 
			
		||||
{
 | 
			
		||||
    FILE *fp;
 | 
			
		||||
    char path[PATH_MAX];
 | 
			
		||||
    int utime = 0, stime = 0;
 | 
			
		||||
    int ret = 0;
 | 
			
		||||
 | 
			
		||||
    sprintf(path, "/proc/%d/stat", pid);
 | 
			
		||||
    if ((fp = fopen(path, "r")) != NULL) {
 | 
			
		||||
	fscanf(fp, "%*d %*s %*s %*d %*d %*d %*d %*d %*d %*d %*d %*d %*d %d %d ",
 | 
			
		||||
	       &utime, &stime);
 | 
			
		||||
	fclose(fp);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    ret = utime + stime;
 | 
			
		||||
    return ret;
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,3 +1,5 @@
 | 
			
		|||
/* $Id: cpu_netbsd.c,v 1.3 2003-10-13 04:34:02 sch Exp $ */
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * cpu_netbsd - module to get cpu usage, for NetBSD 
 | 
			
		||||
 *
 | 
			
		||||
| 
						 | 
				
			
			@ -5,6 +7,7 @@
 | 
			
		|||
 *
 | 
			
		||||
 * Copyright (c) 2001, 2002 Seiichi SATO <ssato@sh.rim.or.jp>
 | 
			
		||||
 * Copyright (c) 2002 Thomas Runge <coto@core.de>
 | 
			
		||||
 * Copyright (C) 2003 Nedko Arnaudov <nedko@users.sourceforge.net>
 | 
			
		||||
 *
 | 
			
		||||
 * Licensed under the GPL
 | 
			
		||||
 */
 | 
			
		||||
| 
						 | 
				
			
			@ -46,12 +49,11 @@ cpu_get_usage(cpu_options *opts)
 | 
			
		|||
    if (sysctl(mib, 2, &cpu_time, &size, NULL, 0) < 0)
 | 
			
		||||
	return 0;
 | 
			
		||||
 | 
			
		||||
    if (opts->ignore_nice) cpu_time[CP_NICE] = 0;
 | 
			
		||||
 | 
			
		||||
    /* calculate usage */
 | 
			
		||||
    used = cpu_time[CP_USER] + cpu_time[CP_SYS] +
 | 
			
		||||
	   cpu_time[CP_NICE] + cpu_time[CP_INTR];
 | 
			
		||||
    total = used + cpu_time[CP_IDLE];
 | 
			
		||||
    total = cpu_time[CP_USER] + cpu_time[CP_SYS] + cpu_time[CP_INTR] +
 | 
			
		||||
	    cpu_time[CP_NICE] + cpu_time[CP_IDLE];
 | 
			
		||||
    used = cpu_time[CP_USER] + cpu_time[CP_SYS] + cpu_time[CP_INTR] +
 | 
			
		||||
	   (opts->ignore_nice ? 0 : cpu_time[CP_NICE]);
 | 
			
		||||
    if ((pre_total == 0) || !(total - pre_total > 0)) {
 | 
			
		||||
	result = 0;
 | 
			
		||||
    } else {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,7 +1,10 @@
 | 
			
		|||
/* $Id: cpu_openbsd.c,v 1.3 2003-10-13 04:34:02 sch Exp $ */
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * cpu_openbsd - module to get cpu usage, for OpenBSD
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (C) 2001, 2002 Seiichi SATO <ssato@sh.rim.or.jp>
 | 
			
		||||
 * Copyright (C) 2003 Nedko Arnaudov <nedko@users.sourceforge.net>
 | 
			
		||||
 *
 | 
			
		||||
 * Licensed under the GPL
 | 
			
		||||
 */
 | 
			
		||||
| 
						 | 
				
			
			@ -43,18 +46,14 @@ cpu_get_usage(cpu_options *opts)
 | 
			
		|||
	return 0;
 | 
			
		||||
 | 
			
		||||
    /* calc usage */
 | 
			
		||||
    used = cpu_time[CP_USER] + cpu_time[CP_SYS];
 | 
			
		||||
    if (!opts->ignore_nice) {
 | 
			
		||||
	used += cpu_time[CP_NICE];
 | 
			
		||||
    }
 | 
			
		||||
    total = used + cpu_time[CP_IDLE];
 | 
			
		||||
 | 
			
		||||
    if (pre_total == 0) {
 | 
			
		||||
    total = cpu_time[CP_USER] + cpu_time[CP_SYS] + cpu_time[CP_INTR] +
 | 
			
		||||
	    cpu_time[CP_NICE] + cpu_time[CP_IDLE];
 | 
			
		||||
    used = cpu_time[CP_USER] + cpu_time[CP_SYS] + cpu_time[CP_INTR] +
 | 
			
		||||
	   (opts->ignore_nice ? 0 : cpu_time[CP_NICE]);
 | 
			
		||||
    if ((pre_total == 0) || !(total - pre_total > 0)) {
 | 
			
		||||
	result = 0;
 | 
			
		||||
    } else if ((total - pre_total) > 0) {
 | 
			
		||||
	result = 100 * (double)(used - pre_used) / (double)(total - pre_total);
 | 
			
		||||
    } else {
 | 
			
		||||
	result = 0;
 | 
			
		||||
	result = 100 * (double)(used - pre_used) / (double)(total - pre_total);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /* save used/total for next calculation */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,3 +1,5 @@
 | 
			
		|||
/* $Id: cpu_solaris.c,v 1.1.1.1 2002-10-14 09:31:17 sch Exp $ */
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * cpu_solaric.c - module to get cpu usage, for Solaris
 | 
			
		||||
 *
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,3 +1,5 @@
 | 
			
		|||
/* $Id: main.c,v 1.6 2006-01-28 10:40:09 sch Exp $ */
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 *    WMCPULoad - A dockapp to monitor CPU usage
 | 
			
		||||
 *    Copyright (C) 2001,2002  Seiichi SATO <ssato@sh.rim.or.jp>
 | 
			
		||||
| 
						 | 
				
			
			@ -14,7 +16,7 @@
 | 
			
		|||
 | 
			
		||||
 *    You should have received a copy of the GNU General Public License
 | 
			
		||||
 *    along with this program; if not, write to the Free Software
 | 
			
		||||
 *    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 | 
			
		||||
 *    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -35,11 +37,9 @@
 | 
			
		|||
 | 
			
		||||
typedef enum { LIGHTON, LIGHTOFF } light;
 | 
			
		||||
 | 
			
		||||
Pixmap pixmap;
 | 
			
		||||
Pixmap backdrop_on;
 | 
			
		||||
Pixmap backdrop_off;
 | 
			
		||||
Pixmap parts;
 | 
			
		||||
Pixmap pix_chartbuf;
 | 
			
		||||
Pixmap mask;
 | 
			
		||||
static char	*display_name = "";
 | 
			
		||||
static char	*title = NULL;
 | 
			
		||||
| 
						 | 
				
			
			@ -53,10 +53,12 @@ static int	hindex = 0;
 | 
			
		|||
 | 
			
		||||
/* prototypes */
 | 
			
		||||
static void update(void);
 | 
			
		||||
static void redraw(void);
 | 
			
		||||
static void switch_light(void);
 | 
			
		||||
static void draw_digit(int per);
 | 
			
		||||
static void parse_arguments(int argc, char **argv);
 | 
			
		||||
static void print_help(char *prog);
 | 
			
		||||
Window dockapp_win(void);
 | 
			
		||||
#if USE_SMP
 | 
			
		||||
static void draw_cpunumber(void);
 | 
			
		||||
#endif
 | 
			
		||||
| 
						 | 
				
			
			@ -71,14 +73,13 @@ main(int argc, char **argv)
 | 
			
		|||
    /* Parse Command-Line */
 | 
			
		||||
    cpu_opts.ignore_nice = False;
 | 
			
		||||
    cpu_opts.cpu_number = CPUNUM_NONE;
 | 
			
		||||
    cpu_opts.ignore_procs = 0;
 | 
			
		||||
    parse_arguments(argc, argv);
 | 
			
		||||
 | 
			
		||||
    /* Initialize Application */
 | 
			
		||||
    cpu_init();
 | 
			
		||||
    dockapp_open_window(display_name, title == NULL ? PACKAGE : title,
 | 
			
		||||
			SIZE, SIZE, argc, argv);
 | 
			
		||||
    dockapp_set_eventmask(ButtonPressMask);
 | 
			
		||||
    dockapp_set_eventmask(ButtonPressMask | ExposureMask);
 | 
			
		||||
 | 
			
		||||
    if (light_color) {
 | 
			
		||||
	colors[0].pixel = dockapp_getcolor_pixel(light_color);
 | 
			
		||||
| 
						 | 
				
			
			@ -87,9 +88,8 @@ main(int argc, char **argv)
 | 
			
		|||
    }
 | 
			
		||||
 | 
			
		||||
    /* change raw xpm data to pixmap */
 | 
			
		||||
    if (dockapp_stat == WINDOWED_WITH_PANEL) {
 | 
			
		||||
    if (dockapp_stat == WINDOWED_WITH_PANEL)
 | 
			
		||||
	backlight_on_xpm[1] = backlight_off_xpm[1] = WINDOWED_BG;
 | 
			
		||||
    }
 | 
			
		||||
    dockapp_xpm2pixmap(backlight_on_xpm, &backdrop_on, &mask, colors, ncolor);
 | 
			
		||||
    dockapp_xpm2pixmap(backlight_off_xpm, &backdrop_off, NULL, NULL, 0);
 | 
			
		||||
    dockapp_xpm2pixmap(parts_xpm, &parts, NULL, colors, ncolor);
 | 
			
		||||
| 
						 | 
				
			
			@ -98,17 +98,13 @@ main(int argc, char **argv)
 | 
			
		|||
	dockapp_setshape(mask, 0, 0);
 | 
			
		||||
    }
 | 
			
		||||
    if (mask) XFreePixmap(display, mask);
 | 
			
		||||
    /* pixmap : draw area */
 | 
			
		||||
    pixmap = dockapp_XCreatePixmap(SIZE, SIZE);
 | 
			
		||||
    pix_chartbuf = dockapp_XCreatePixmap(SIZE, SIZE);
 | 
			
		||||
 | 
			
		||||
    /* Initialize pixmap */
 | 
			
		||||
    if (backlight == LIGHTON) {
 | 
			
		||||
	dockapp_copyarea(backdrop_on, pixmap, 0, 0, SIZE, SIZE, 0, 0);
 | 
			
		||||
	dockapp_set_background(backdrop_on);
 | 
			
		||||
    } else {
 | 
			
		||||
	dockapp_copyarea(backdrop_off, pixmap, 0, 0, SIZE, SIZE, 0, 0);
 | 
			
		||||
	dockapp_set_background(backdrop_off);
 | 
			
		||||
    }
 | 
			
		||||
    dockapp_set_background(pixmap);
 | 
			
		||||
    dockapp_show();
 | 
			
		||||
 | 
			
		||||
    /* Main loop */
 | 
			
		||||
| 
						 | 
				
			
			@ -118,6 +114,10 @@ main(int argc, char **argv)
 | 
			
		|||
	    switch(event.type) {
 | 
			
		||||
		case ButtonPress:
 | 
			
		||||
		    switch_light();
 | 
			
		||||
		    redraw();
 | 
			
		||||
		    break;
 | 
			
		||||
		case Expose:
 | 
			
		||||
		    redraw();
 | 
			
		||||
		    break;
 | 
			
		||||
		default: /* make gcc happy */
 | 
			
		||||
		    break;
 | 
			
		||||
| 
						 | 
				
			
			@ -137,10 +137,19 @@ update(void)
 | 
			
		|||
{
 | 
			
		||||
    int usage;
 | 
			
		||||
    int x, h;
 | 
			
		||||
    Pixmap backdrop;
 | 
			
		||||
 | 
			
		||||
    static light pre_backlight;
 | 
			
		||||
    static Bool in_alarm_mode = False;
 | 
			
		||||
 | 
			
		||||
    if (backlight == LIGHTON) {
 | 
			
		||||
	backdrop = backdrop_on;
 | 
			
		||||
	x = 2;
 | 
			
		||||
    } else {
 | 
			
		||||
	backdrop = backdrop_off;
 | 
			
		||||
	x = 0;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /* get current cpu usage in percent */
 | 
			
		||||
    usage = cpu_get_usage(&cpu_opts);
 | 
			
		||||
    hindex++;
 | 
			
		||||
| 
						 | 
				
			
			@ -157,6 +166,7 @@ update(void)
 | 
			
		|||
	}
 | 
			
		||||
	if (backlight == LIGHTOFF) {
 | 
			
		||||
	    switch_light();
 | 
			
		||||
	    redraw();
 | 
			
		||||
	    return;
 | 
			
		||||
	}
 | 
			
		||||
    } else {
 | 
			
		||||
| 
						 | 
				
			
			@ -164,22 +174,18 @@ update(void)
 | 
			
		|||
	    in_alarm_mode = False;
 | 
			
		||||
	    if (backlight != pre_backlight) {
 | 
			
		||||
		switch_light();
 | 
			
		||||
		redraw();
 | 
			
		||||
		return;
 | 
			
		||||
	    }
 | 
			
		||||
	}
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /* save current chart */
 | 
			
		||||
    dockapp_copyarea(pixmap, pix_chartbuf,  9, 33, 44, 21, 0, 0);
 | 
			
		||||
    /* slide past chart */
 | 
			
		||||
    dockapp_copyarea(dockapp_win(), dockapp_win(), 9, 33, 44, 21, 6, 33);
 | 
			
		||||
    dockapp_copy2window(backdrop, 51, 33, 2, 21, 51, 33);
 | 
			
		||||
 | 
			
		||||
    /* all clear */
 | 
			
		||||
    if (backlight == LIGHTON) {
 | 
			
		||||
	dockapp_copyarea(backdrop_on, pixmap, 0, 0, 58, 58, 0, 0);
 | 
			
		||||
	x = 2;
 | 
			
		||||
    } else {
 | 
			
		||||
	dockapp_copyarea(backdrop_off, pixmap, 0, 0, 58, 58, 0, 0);
 | 
			
		||||
	x = 0;
 | 
			
		||||
    }
 | 
			
		||||
    /* clear digit */
 | 
			
		||||
    dockapp_copy2window(backdrop, 5, 7, 34, 20, 5, 7);
 | 
			
		||||
 | 
			
		||||
    /* draw digit */
 | 
			
		||||
    draw_digit(usage);
 | 
			
		||||
| 
						 | 
				
			
			@ -190,35 +196,41 @@ update(void)
 | 
			
		|||
	draw_cpunumber();
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
    /* draw chart */
 | 
			
		||||
    /* draw current chart */
 | 
			
		||||
    h = (21 * usage) / 100;
 | 
			
		||||
    dockapp_copyarea(pix_chartbuf, pixmap, 0, 0, 44, 21, 6, 33);
 | 
			
		||||
    dockapp_copyarea(parts, pixmap,100+x, 21-h, 2, h, 51, 54-h);
 | 
			
		||||
 | 
			
		||||
    /* show */
 | 
			
		||||
    dockapp_copy2window(pixmap);
 | 
			
		||||
 | 
			
		||||
    dockapp_copy2window(parts, 100+x, 21-h, 2, h, 51, 54-h);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* called when mouse button pressed */
 | 
			
		||||
static void
 | 
			
		||||
switch_light(void)
 | 
			
		||||
{
 | 
			
		||||
    int h, i, j = hindex;
 | 
			
		||||
    int x = 0;
 | 
			
		||||
 | 
			
		||||
    switch (backlight) {
 | 
			
		||||
	case LIGHTOFF:
 | 
			
		||||
	    backlight = LIGHTON;
 | 
			
		||||
	    dockapp_copyarea(backdrop_on, pixmap, 0, 0, 58, 58, 0, 0);
 | 
			
		||||
	    x = 2;
 | 
			
		||||
	    break;
 | 
			
		||||
	case LIGHTON:
 | 
			
		||||
	    backlight = LIGHTOFF;
 | 
			
		||||
	    dockapp_copyarea(backdrop_off, pixmap, 0, 0, 58, 58, 0, 0);
 | 
			
		||||
	    x = 0;
 | 
			
		||||
	    break;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
redraw(void)
 | 
			
		||||
{
 | 
			
		||||
    int h, i, j = hindex;
 | 
			
		||||
    int x = 0;
 | 
			
		||||
    Pixmap backdrop;
 | 
			
		||||
 | 
			
		||||
    if (backlight == LIGHTON) {
 | 
			
		||||
	backdrop = backdrop_on;
 | 
			
		||||
	x = 2;
 | 
			
		||||
    } else {
 | 
			
		||||
	backdrop = backdrop_off;
 | 
			
		||||
	x = 0;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    dockapp_copy2window(backdrop, 0, 0, 58, 58, 0, 0);
 | 
			
		||||
 | 
			
		||||
    /* redraw digit */
 | 
			
		||||
    draw_digit(history[hindex]);
 | 
			
		||||
| 
						 | 
				
			
			@ -232,13 +244,10 @@ switch_light(void)
 | 
			
		|||
    /* redraw chart */
 | 
			
		||||
    for (i = 0; i < MAX_HISTORY; i++) {
 | 
			
		||||
	h = (21 * history[j]) / 100;
 | 
			
		||||
	dockapp_copyarea(parts, pixmap, 100+x, 21-h, 2, h, 51-3*i, 54-h);
 | 
			
		||||
	dockapp_copy2window(parts, 100+x, 21-h, 2, h, 51-3*i, 54-h);
 | 
			
		||||
	j--;
 | 
			
		||||
	if (j < 0) j = MAX_HISTORY - 1;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /* show */
 | 
			
		||||
    dockapp_copy2window(pixmap);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
| 
						 | 
				
			
			@ -259,15 +268,16 @@ draw_digit(int per)
 | 
			
		|||
    }
 | 
			
		||||
 | 
			
		||||
    /* draw digit */
 | 
			
		||||
    dockapp_copyarea(parts, pixmap, v1 * 10, y, 10, 20, 29, 7);
 | 
			
		||||
    dockapp_copy2window(parts, v1 * 10, y, 10, 20, 29, 7);
 | 
			
		||||
    if (v10 != 0) {
 | 
			
		||||
	dockapp_copyarea(parts, pixmap, v10 * 10, y, 10, 20, 17, 7);
 | 
			
		||||
	dockapp_copy2window(parts, v10 * 10, y, 10, 20, 17, 7);
 | 
			
		||||
    }
 | 
			
		||||
    if (v100 == 1) {
 | 
			
		||||
	dockapp_copyarea(parts, pixmap, 10, y, 10, 20,  5, 7);
 | 
			
		||||
	dockapp_copyarea(parts, pixmap,  0, y, 10, 20, 17, 7);
 | 
			
		||||
	dockapp_copyarea(parts, pixmap,  0, y, 10, 20, 29, 7);
 | 
			
		||||
	dockapp_copy2window(parts, 10, y, 10, 20,  5, 7);
 | 
			
		||||
	dockapp_copy2window(parts,  0, y, 10, 20, 17, 7);
 | 
			
		||||
	dockapp_copy2window(parts,  0, y, 10, 20, 29, 7);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -275,20 +285,17 @@ draw_digit(int per)
 | 
			
		|||
static void
 | 
			
		||||
draw_cpunumber(void)
 | 
			
		||||
{
 | 
			
		||||
    int x_offset = 0;
 | 
			
		||||
    int v10 = 0, v1 = 0;
 | 
			
		||||
    int x, v1 = 0, v2 = 0;
 | 
			
		||||
 | 
			
		||||
    v10 = cpu_opts.cpu_number / 10;
 | 
			
		||||
    v1 = cpu_opts.cpu_number - v10 * 10;
 | 
			
		||||
    v2 = cpu_opts.cpu_number / 10;
 | 
			
		||||
    v1 = cpu_opts.cpu_number - v2 * 10;
 | 
			
		||||
 | 
			
		||||
    if (backlight == LIGHTON) {
 | 
			
		||||
	x_offset = 50;
 | 
			
		||||
    }
 | 
			
		||||
    x = backlight == LIGHTON ? 50 : 0;
 | 
			
		||||
 | 
			
		||||
    if (v10) {
 | 
			
		||||
	dockapp_copyarea(parts, pixmap, x_offset + v10 * 5, 40, 5, 9, 44, 10);
 | 
			
		||||
    }
 | 
			
		||||
    dockapp_copyarea(parts, pixmap, x_offset +  v1 * 5, 40, 5, 9, 50, 10);
 | 
			
		||||
    if (v2)
 | 
			
		||||
	dockapp_copy2window(parts, x + v2 * 5, 40, 5, 9, 44, 10);
 | 
			
		||||
 | 
			
		||||
    dockapp_copy2window(parts, x +  v1 * 5, 40, 5, 9, 50, 10);
 | 
			
		||||
}
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -362,33 +369,6 @@ parse_arguments(int argc, char **argv)
 | 
			
		|||
	    i++;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
#ifdef IGNORE_PROC
 | 
			
		||||
	else if (!strcmp(argv[i], "--ignore-proc") || !strcmp(argv[i], "-p")) {
 | 
			
		||||
	    if (argc == i + 1)
 | 
			
		||||
		fprintf(stderr, "%s: error parsing argument for option %s\n",
 | 
			
		||||
			argv[0], argv[i]), exit(1);
 | 
			
		||||
	    if (argv[i + 1][0] == '-')
 | 
			
		||||
		fprintf(stderr, "%s: error parsing argument for option %s\n",
 | 
			
		||||
			argv[0], argv[i]), exit(1);
 | 
			
		||||
	    while (i + 1 < argc) {
 | 
			
		||||
		if (!(argv[i + 1][0] == '-')) {
 | 
			
		||||
		    if (strlen(argv[i + 1]) >= COMM_LEN)
 | 
			
		||||
			fprintf(stderr, "%s: command name %s is longer than 15 characters\n",
 | 
			
		||||
				argv[0], argv[i + 1]), exit(1);
 | 
			
		||||
		    if (cpu_opts.ignore_procs == MAX_PROC)
 | 
			
		||||
			fprintf(stderr, "%s: maximum number of command names is %d\n",
 | 
			
		||||
				argv[0], MAX_PROC), exit(1);
 | 
			
		||||
		    cpu_opts.ignore_proc_list[cpu_opts.ignore_procs] = argv[i + 1];
 | 
			
		||||
		    cpu_opts.ignore_procs++;
 | 
			
		||||
		} else {
 | 
			
		||||
		    break;
 | 
			
		||||
		}
 | 
			
		||||
		i++;
 | 
			
		||||
	    }
 | 
			
		||||
 | 
			
		||||
	}
 | 
			
		||||
#endif	/* IGNORE_PROC */
 | 
			
		||||
 | 
			
		||||
#ifdef USE_SMP
 | 
			
		||||
	else if (!strcmp(argv[i], "--cpu") || !strcmp(argv[i], "-c")) {
 | 
			
		||||
	    int integer;
 | 
			
		||||
| 
						 | 
				
			
			@ -412,13 +392,6 @@ parse_arguments(int argc, char **argv)
 | 
			
		|||
	    print_help(argv[0]), exit(1);
 | 
			
		||||
	}
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
#if defined(USE_SMP) && defined(IGNORE_PROC)
 | 
			
		||||
    if (cpu_opts.cpu_number != CPUNUM_NONE && cpu_opts.ignore_procs) {
 | 
			
		||||
	fprintf(stderr, "You can't use '-c, --cpu' option with '-p, --ignore_procs' option");
 | 
			
		||||
	exit (1);
 | 
			
		||||
    }
 | 
			
		||||
#endif
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
| 
						 | 
				
			
			@ -429,23 +402,29 @@ print_help(char *prog)
 | 
			
		|||
    printf("  -d,  --display <string>       display to use\n");
 | 
			
		||||
    printf("  -t,  --title <string>         application title name\n");
 | 
			
		||||
    printf("  -bl, --backlight              turn on back-light\n");
 | 
			
		||||
    printf("  -lc, --light-color <string>   back-light color(rgb:6E/C6/3B is default)\n");
 | 
			
		||||
    printf("  -i,  --interval <number>      number of secs between updates (1 is default)\n");
 | 
			
		||||
    printf("  -lc, --light-color <string>   "
 | 
			
		||||
	   "back-light color(rgb:6E/C6/3B is default)\n");
 | 
			
		||||
    printf("  -i,  --interval <number>      "
 | 
			
		||||
	   "number of secs between updates (1 is default)\n");
 | 
			
		||||
#ifdef USE_SMP
 | 
			
		||||
    printf("  -c,  --cpu <number>           CPU number (0, 1, ... )\n");
 | 
			
		||||
    printf("  -c,  --cpu <number>           "
 | 
			
		||||
	   "which CPU is monitored (0, 1, ... )\n");
 | 
			
		||||
#endif
 | 
			
		||||
#ifdef IGNORE_NICE
 | 
			
		||||
    printf("  -n,  --ignore-nice            ignore a nice value\n");
 | 
			
		||||
#endif
 | 
			
		||||
#ifdef IGNORE_PROC
 | 
			
		||||
    printf("  -p,  --ignore-proc <name> ..  ignore all processes specified by command name\n");
 | 
			
		||||
#endif
 | 
			
		||||
    printf("  -h,  --help                   show this help text and exit\n");
 | 
			
		||||
    printf("  -v,  --version                show program version and exit\n");
 | 
			
		||||
    printf("  -w,  --windowed               run the application in windowed mode\n");
 | 
			
		||||
    printf("  -wp, --windowed-withpanel     run the application in windowed mode\n");
 | 
			
		||||
    printf("  -w,  --windowed               "
 | 
			
		||||
	   "run the application in windowed mode\n");
 | 
			
		||||
    printf("  -wp, --windowed-withpanel     "
 | 
			
		||||
	   "run the application in windowed mode\n");
 | 
			
		||||
    printf("                                with background panel\n");
 | 
			
		||||
    printf("  -bw, --broken-wm              activate broken window manager fix\n");
 | 
			
		||||
    printf("  -a,  --alarm <percentage>     activate alarm mode. <percentage> is threshold\n");
 | 
			
		||||
    printf("                                of percentage from 0 to 100.(90 is default)\n");
 | 
			
		||||
    printf("  -bw, --broken-wm              "
 | 
			
		||||
	   "activate broken window manager fix\n");
 | 
			
		||||
    printf("  -a,  --alarm <percentage>     "
 | 
			
		||||
	   "activate alarm mode. <percentage> is threshold\n");
 | 
			
		||||
    printf("                                "
 | 
			
		||||
	   "of percentage from 0 to 100.(90 is default)\n");
 | 
			
		||||
}
 | 
			
		||||
/* ex:set sw=4 softtabstop=4: */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue