diff options
Diffstat (limited to 'x11-wm/epplets/files/patch-ae')
-rw-r--r-- | x11-wm/epplets/files/patch-ae | 87 |
1 files changed, 84 insertions, 3 deletions
diff --git a/x11-wm/epplets/files/patch-ae b/x11-wm/epplets/files/patch-ae index c113df6c7a46..513f4fd2aaa3 100644 --- a/x11-wm/epplets/files/patch-ae +++ b/x11-wm/epplets/files/patch-ae @@ -1,6 +1,87 @@ ---- epplets/E-Cpu.c.orig Thu Jan 13 15:06:17 2000 -+++ epplets/E-Cpu.c Thu Jan 13 15:06:49 2000 -@@ -328,7 +328,7 @@ +--- epplets/E-Cpu.c.orig Wed Dec 29 06:08:09 1999 ++++ epplets/E-Cpu.c Wed Aug 1 12:10:17 2001 +@@ -7,10 +7,23 @@ + #include "config.h" + #include "epplet.h" + +-#ifdef HAVE_LIBGTOP ++#ifdef __FreeBSD__ ++ ++#include <sys/sysctl.h> ++#include <sys/dkstat.h> ++ ++#ifndef KERN_CP_TIME ++#define KERN_CP_TIME 106 ++#endif ++ ++int cpu_old[CPUSTATES]; ++ ++#elif defined(HAVE_LIBGTOP) ++ + #include <glibtop.h> + #include <glibtop/cpu.h> + #include "proc.h" ++ + #endif + + int cpus = 0; +@@ -201,7 +214,33 @@ + static void + cb_timer(void *data) + { +-#ifdef HAVE_LIBGTOP ++#ifdef __FreeBSD__ ++ ++ int cpu_new[CPUSTATES]; ++ int i, total, mib[2]; ++ size_t cpu_size; ++ double val; ++ ++ mib[0] = CTL_KERN; ++ mib[1] = KERN_CP_TIME; ++ cpu_size = sizeof(cpu_new); ++ ++ if(sysctl(mib, 2, cpu_new, &cpu_size, NULL, 0) == 0) ++ { ++ total=0; ++ for(i=0;i<CPUSTATES;i++) ++ total += cpu_new[i] - cpu_old[i]; ++ ++ val = 100.00 - (double)(cpu_new[CP_IDLE]-cpu_old[CP_IDLE])/total*100; ++ ++ for(i=0;i<CPUSTATES;i++) ++ cpu_old[i] = cpu_new[i]; ++ ++ for(i=0;i<cpus;i++) ++ prev_val[i] = load_val[i] = val; ++ } ++ ++#elif HAVE_LIBGTOP + + glibtop_cpu cpu; + double val, val2; +@@ -322,13 +361,27 @@ + static int + count_cpus(void) + { +-#ifdef HAVE_LIBGTOP ++#ifdef __FreeBSD__ ++ ++ int ncpu, mib[2]; ++ size_t size; ++ ++ mib[0] = CTL_HW; ++ mib[1] = HW_NCPU; ++ size = sizeof(ncpu); ++ ++ if(sysctl(mib, 2, &ncpu, &size, NULL, 0) == -1) ++ return 1; ++ ++ return ncpu; ++ ++#elif defined(HAVE_LIBGTOP) + int i,c = 0; + int bits; glibtop_cpu cpu; glibtop_get_cpu (&cpu); |