diff options
author | Alberto Villa <avilla@FreeBSD.org> | 2011-04-07 12:03:34 +0000 |
---|---|---|
committer | Alberto Villa <avilla@FreeBSD.org> | 2011-04-07 12:03:34 +0000 |
commit | 44b2f80d3d3021ba91f909836112f31da0867dab (patch) | |
tree | 554114e2c0b0579dc87d5ae82cdadae2eb0ccc9e /sysutils/ksysguardd | |
parent | be6138c5c5ea14fb3c9b74aa831d0c25f2b3d0a6 (diff) | |
download | ports-44b2f80d3d3021ba91f909836112f31da0867dab.tar.gz ports-44b2f80d3d3021ba91f909836112f31da0867dab.zip |
Notes
Diffstat (limited to 'sysutils/ksysguardd')
21 files changed, 2 insertions, 3173 deletions
diff --git a/sysutils/ksysguardd/distinfo b/sysutils/ksysguardd/distinfo index 751fd5e671a6..48c697a2cc77 100644 --- a/sysutils/ksysguardd/distinfo +++ b/sysutils/ksysguardd/distinfo @@ -1,2 +1,2 @@ -SHA256 (KDE/kdebase-workspace-4.6.1.tar.bz2) = b2c113aec1e5c79b31f2dcac718ba94d142fe39e8e9640d13d19c2dcbf5fae98 -SIZE (KDE/kdebase-workspace-4.6.1.tar.bz2) = 69489744 +SHA256 (KDE/kdebase-workspace-4.6.2.tar.bz2) = 6a55a53282a0ec7dd61f16f87fb8d0097d945891504982eb5122c96238b711e1 +SIZE (KDE/kdebase-workspace-4.6.2.tar.bz2) = 69356153 diff --git a/sysutils/ksysguardd/files/patch-CMakeLists.txt b/sysutils/ksysguardd/files/patch-CMakeLists.txt index 422cd5c26298..18c322c0d371 100644 --- a/sysutils/ksysguardd/files/patch-CMakeLists.txt +++ b/sysutils/ksysguardd/files/patch-CMakeLists.txt @@ -21,18 +21,6 @@ configure_file(config-ksysguardd.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-ksysguardd.h) -@@ -51,9 +54,9 @@ - - target_link_libraries(ksysguardd libksysguardd) - -- if( NOT ${CMAKE_SYSTEM_NAME} MATCHES "Linux" ) -+ if( NOT ${CMAKE_SYSTEM_NAME} MATCHES "Linux" OR NOT ${CMAKE_SYSTEM_NAME} MATCHES "kFreeBSD" ) - target_link_libraries(ksysguardd ${KDE4_KDEFAKES_LIBS}) -- endif( NOT ${CMAKE_SYSTEM_NAME} MATCHES "Linux" ) -+ endif( NOT ${CMAKE_SYSTEM_NAME} MATCHES "Linux" OR NOT ${CMAKE_SYSTEM_NAME} MATCHES "kFreeBSD" ) - - if( ${CMAKE_SYSTEM_NAME} MATCHES "NetBSD" ) - message(STATUS "Adding kvm library on NetBSD") @@ -67,4 +70,5 @@ target_link_libraries(ksysguardd socket nsl) endif( ${CMAKE_SYSTEM_NAME} MATCHES "SunOS" ) diff --git a/sysutils/ksysguardd/files/patch-FreeBSD__CMakeLists.txt b/sysutils/ksysguardd/files/patch-FreeBSD__CMakeLists.txt deleted file mode 100644 index 31e279c2c898..000000000000 --- a/sysutils/ksysguardd/files/patch-FreeBSD__CMakeLists.txt +++ /dev/null @@ -1,23 +0,0 @@ ---- FreeBSD/CMakeLists.txt 2011-03-17 20:50:04.000000000 +0200 -+++ FreeBSD/CMakeLists.txt 2011-03-07 18:04:26.000000000 +0200 -@@ -1,14 +1,16 @@ - INCLUDE_DIRECTORIES( ${CMAKE_CURRENT_SOURCE_DIR}/../CContLib ${CMAKE_CURRENT_SOURCE_DIR}/../ ) - --ADD_LIBRARY(libksysguardd STATIC -+ADD_LIBRARY(libksysguardd STATIC -+ acpi.c - apm.c -- CPU.c -+ cpuinfo.c - diskstat.c - loadavg.c - logfile.c - Memory.c - netdev.c -- ProcessList.c) -+ ProcessList.c -+ stat.c -+ uptime.c) - - TARGET_LINK_LIBRARIES(libksysguardd kvm) -- diff --git a/sysutils/ksysguardd/files/patch-FreeBSD__Memory.c b/sysutils/ksysguardd/files/patch-FreeBSD__Memory.c deleted file mode 100644 index 00a09438f5b9..000000000000 --- a/sysutils/ksysguardd/files/patch-FreeBSD__Memory.c +++ /dev/null @@ -1,402 +0,0 @@ ---- FreeBSD/Memory.c 2011-03-17 20:50:04.000000000 +0200 -+++ FreeBSD/Memory.c 2011-01-30 11:18:45.000000000 +0200 -@@ -3,6 +3,7 @@ - - Copyright (c) 1999-2000 Hans Petter Bieker <bieker@kde.org> - Copyright (c) 1999 Chris Schlaeger <cs@kde.org> -+ Copyright (c) 2010 David Naylor <naylor.b.david@gmail.com> - - 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 -@@ -21,33 +22,39 @@ - */ - - #include <sys/types.h> --#include <sys/param.h> - #include <sys/sysctl.h> --#include <sys/vmmeter.h> -- --#include <vm/vm_param.h> - - #include <fcntl.h> - #include <kvm.h> - #include <limits.h> - #include <stdio.h> --#include <stdlib.h> --#include <string.h> - #include <unistd.h> - - #include "Command.h" - #include "Memory.h" - #include "ksysguardd.h" - --static size_t Total = 0; --static size_t MFree = 0; --static size_t Used = 0; --static size_t Buffers = 0; --static size_t Cached = 0; --static size_t Application = 0; --static size_t STotal = 0; --static size_t SFree = 0; --static size_t SUsed = 0; -+#define MEM_ACTIVE 0 -+#define MEM_INACTIVE 1 -+#define MEM_WIRED 2 -+#define MEM_CACHED 3 -+#define MEM_BUFFERED 4 -+#define MEM_FREE 5 -+#define MEM_TOTAL 6 -+ -+static size_t memory_stats[7]; -+ -+#define SWAP_IN 0 -+#define SWAP_OUT 1 -+#define SWAP_USED 2 -+#define SWAP_FREE 3 -+#define SWAP_TOTAL 4 -+ -+static size_t swap_stats[5]; -+static size_t swap_old[2]; -+ -+static int pagesize; -+ - static kvm_t *kd; - - void -@@ -56,24 +63,57 @@ - char *nlistf = NULL; - char *memf = NULL; - char buf[_POSIX2_LINE_MAX]; -- -+ -+ pagesize = getpagesize(); -+ - if ((kd = kvm_openfiles(nlistf, memf, NULL, O_RDONLY, buf)) == NULL) { - log_error("kvm_openfiles()"); - return; - } - -- registerMonitor("mem/physical/free", "integer", printMFree, printMFreeInfo, sm); -- registerMonitor("mem/physical/used", "integer", printUsed, printUsedInfo, sm); -- registerMonitor("mem/physical/buf", "integer", printBuffers, printBuffersInfo, sm); -- registerMonitor("mem/physical/cached", "integer", printCached, printCachedInfo, sm); -- registerMonitor("mem/physical/application", "integer", printApplication, printApplicationInfo, sm); -+ registerMonitor("mem/physical/active", "integer", printMActive, printMActiveInfo, sm); -+ registerMonitor("mem/physical/inactive", "integer", printMInactive, printMInactiveInfo, sm); -+ registerMonitor("mem/physical/application", "integer", printMApplication, printMApplicationInfo, sm); -+ registerMonitor("mem/physical/wired", "integer", printMWired, printMWiredInfo, sm); -+ registerMonitor("mem/physical/cached", "integer", printMCached, printMCachedInfo, sm); -+ registerMonitor("mem/physical/buf", "integer", printMBuffers, printMBuffersInfo, sm); -+ registerMonitor("mem/physical/free", "integer", printMFree, printMFreeInfo, sm); -+ registerMonitor("mem/physical/used", "integer", printMUsed, printMUsedInfo, sm); -+ - registerMonitor("mem/swap/free", "integer", printSwapFree, printSwapFreeInfo, sm); - registerMonitor("mem/swap/used", "integer", printSwapUsed, printSwapUsedInfo, sm); -+ registerMonitor("mem/swap/pageIn", "integer", printSwapIn, printSwapInInfo, sm); -+ registerMonitor("mem/swap/pageOut", "integer", printSwapOut, printSwapOutInfo, sm); -+ -+ registerLegacyMonitor("cpu/pageIn", "float", printSwapIn, printSwapInInfo, sm); -+ registerLegacyMonitor("cpu/pageOut", "float", printSwapOut, printSwapOutInfo, sm); -+ -+ swap_old[SWAP_IN] = -1; -+ swap_old[SWAP_OUT] = -1; -+ -+ updateMemory(); - } - - void - exitMemory(void) - { -+ removeMonitor("mem/physical/active"); -+ removeMonitor("mem/physical/inactive"); -+ removeMonitor("mem/physical/application"); -+ removeMonitor("mem/physical/wired"); -+ removeMonitor("mem/physical/cached"); -+ removeMonitor("mem/physical/buf"); -+ removeMonitor("mem/physical/free"); -+ removeMonitor("mem/physical/used"); -+ -+ removeMonitor("mem/swap/free"); -+ removeMonitor("mem/swap/used"); -+ removeMonitor("mem/swap/pageIn"); -+ removeMonitor("mem/swap/pageOut"); -+ -+ removeMonitor("cpu/pageIn"); -+ removeMonitor("cpu/pageOut"); -+ - kvm_close(kd); - } - -@@ -81,129 +121,212 @@ - updateMemory(void) - { - size_t len; -- FILE *file; -- char buf[256]; -- struct kvm_swap kswap[16]; -- int i, swap_count, hlen, pagesize = getpagesize(); -- long blocksize; -- -- len = sizeof (Total); -- sysctlbyname("hw.physmem", &Total, &len, NULL, 0); -- Total /= 1024; -- -- /* Borrowed from pstat */ -- swap_count = kvm_getswapinfo(kd, kswap, 16, SWIF_DEV_PREFIX); -- getbsize(&hlen, &blocksize); -- --#define CONVERT(v) ((int)((quad_t)(v) * pagesize / blocksize)) -- -- if (swap_count > 0) { -- STotal = CONVERT(kswap[0].ksw_total); -- SUsed = CONVERT(kswap[0].ksw_used); -- SFree = CONVERT(kswap[0].ksw_total - kswap[0].ksw_used); -+ int swapin, swapout; -+ -+#define CONVERT(v) ((quad_t)(v) * pagesize / 1024) -+ -+#define GETSYSCTL(mib, var) \ -+ len = sizeof(var); \ -+ sysctlbyname(mib, &var, &len, NULL, 0); -+ -+#define GETPAGESYSCTL(mib, var) \ -+ GETSYSCTL(mib, var) \ -+ var = CONVERT(var); -+ -+#define GETMEMSYSCTL(mib, var) \ -+ GETSYSCTL(mib, var) \ -+ var /= 1024; -+ -+ /* -+ * Memory -+ */ -+ GETPAGESYSCTL("vm.stats.vm.v_active_count", memory_stats[MEM_ACTIVE]) -+ GETPAGESYSCTL("vm.stats.vm.v_inactive_count", memory_stats[MEM_INACTIVE]) -+ GETPAGESYSCTL("vm.stats.vm.v_wire_count", memory_stats[MEM_WIRED]) -+ GETPAGESYSCTL("vm.stats.vm.v_cache_count", memory_stats[MEM_CACHED]) -+ GETPAGESYSCTL("vm.stats.vm.v_free_count", memory_stats[MEM_FREE]) -+ GETMEMSYSCTL("vfs.bufspace", memory_stats[MEM_BUFFERED]) -+ GETMEMSYSCTL("hw.physmem", memory_stats[MEM_TOTAL]) -+ -+ /* -+ * Swap -+ */ -+ GETSYSCTL("vm.stats.vm.v_swappgsin", swapin); -+ GETSYSCTL("vm.stats.vm.v_swappgsout", swapout); -+ -+ if (swap_old[SWAP_IN] < 0) { -+ swap_stats[SWAP_IN] = 0; -+ swap_stats[SWAP_OUT] = 0; -+ } else { -+ swap_stats[SWAP_IN] = CONVERT(swapin - swap_old[SWAP_IN]); -+ swap_stats[SWAP_OUT] = CONVERT(swapout - swap_old[SWAP_OUT]); - } - -- len = sizeof (Buffers); -- if ((sysctlbyname("vfs.bufspace", &Buffers, &len, NULL, 0) == -1) || !len) -- Buffers = 0; /* Doesn't work under FreeBSD v2.2.x */ -- Buffers /= 1024; -- -- len = sizeof (Cached); -- if ((sysctlbyname("vm.stats.vm.v_cache_count", &Cached, &len, NULL, 0) == -1) || !len) -- Cached = 0; /* Doesn't work under FreeBSD v2.2.x */ -- Cached *= pagesize / 1024; -- -- len = sizeof (MFree); -- if ((sysctlbyname("vm.stats.vm.v_free_count", &MFree, &len, NULL, 0) == -1) || !len) -- MFree = 0; /* Doesn't work under FreeBSD v2.2.x */ -- MFree *= pagesize / 1024; -+ /* call CPU heavy swapmode() only for changes */ -+ if (swap_stats[SWAP_IN] > 0 || swap_stats[SWAP_OUT] > 0 || swap_old[SWAP_IN] < 0) { -+ struct kvm_swap swapary; -+ if (kvm_getswapinfo(kd, &swapary, 1, 0) < 0 || swapary.ksw_total == 0) { -+ int i; -+ for (i = 0; i < (sizeof(swap_stats) / sizeof(swap_stats[0])); ++i) -+ swap_stats[i] = 0; -+ } else { -+ swap_stats[SWAP_TOTAL] = CONVERT(swapary.ksw_total); -+ swap_stats[SWAP_USED] = CONVERT(swapary.ksw_used); -+ swap_stats[SWAP_FREE] = CONVERT(swapary.ksw_total - swapary.ksw_used); -+ } -+ } - -- Used = Total - MFree; -- Application = Used - Buffers - Cached; -+ swap_old[SWAP_IN] = swapin; -+ swap_old[SWAP_OUT] = swapout; - - return 0; -+ -+#undef CONVERT -+#undef GETSYSCTL -+#undef GETPAGESYSCTL -+#undef GETMEMSYSCTL - } - - void --printMFree(const char* cmd) -+printMActive(const char* cmd) - { -- fprintf(CurrentClient, "%d\n", MFree); -+ fprintf(CurrentClient, "%lu\n", memory_stats[MEM_ACTIVE]); - } - - void --printMFreeInfo(const char* cmd) -+printMActiveInfo(const char* cmd) -+{ -+ fprintf(CurrentClient, "Active Memory\t0\t%lu\tKB\n", memory_stats[MEM_TOTAL]); -+} -+ -+void -+printMInactive(const char* cmd) -+{ -+ fprintf(CurrentClient, "%lu\n", memory_stats[MEM_INACTIVE]); -+} -+ -+void -+printMInactiveInfo(const char* cmd) -+{ -+ fprintf(CurrentClient, "Inactive Memory\t0\t%lu\tKB\n", memory_stats[MEM_TOTAL]); -+} -+ -+void -+printMApplication(const char* cmd) - { -- fprintf(CurrentClient, "Free Memory\t0\t%d\tKB\n", Total); -+ fprintf(CurrentClient, "%lu\n", memory_stats[MEM_ACTIVE] + memory_stats[MEM_INACTIVE]); - } - - void --printUsed(const char* cmd) -+printMApplicationInfo(const char* cmd) -+{ -+ fprintf(CurrentClient, "Application (Active and Inactive) Memory\t0\t%ld\tKB\n", memory_stats[MEM_TOTAL]); -+} -+ -+void -+printMWired(const char* cmd) -+{ -+ fprintf(CurrentClient, "%lu\n", memory_stats[MEM_WIRED]); -+} -+ -+void -+printMWiredInfo(const char* cmd) - { -- fprintf(CurrentClient, "%d\n", Used); -+ fprintf(CurrentClient, "Wired Memory\t0\t%lu\tKB\n", memory_stats[MEM_TOTAL]); - } - - void --printUsedInfo(const char* cmd) -+printMCached(const char* cmd) - { -- fprintf(CurrentClient, "Used Memory\t0\t%d\tKB\n", Total); -+ fprintf(CurrentClient, "%lu\n", memory_stats[MEM_CACHED]); - } - - void --printBuffers(const char* cmd) -+printMCachedInfo(const char* cmd) - { -- fprintf(CurrentClient, "%d\n", Buffers); -+ fprintf(CurrentClient, "Cached Memory\t0\t%lu\tKB\n", memory_stats[MEM_TOTAL]); - } - - void --printBuffersInfo(const char* cmd) -+printMBuffers(const char* cmd) - { -- fprintf(CurrentClient, "Buffer Memory\t0\t%d\tKB\n", Total); -+ fprintf(CurrentClient, "%lu\n", memory_stats[MEM_BUFFERED]); - } - - void --printCached(const char* cmd) -+printMBuffersInfo(const char* cmd) - { -- fprintf(CurrentClient, "%d\n", Cached); -+ fprintf(CurrentClient, "Buffer Memory\t0\t%lu\tKB\n", memory_stats[MEM_TOTAL]); - } - - void --printCachedInfo(const char* cmd) -+printMFree(const char* cmd) - { -- fprintf(CurrentClient, "Cached Memory\t0\t%d\tKB\n", Total); -+ fprintf(CurrentClient, "%lu\n", memory_stats[MEM_FREE]); - } - - void --printApplication(const char* cmd) -+printMFreeInfo(const char* cmd) - { -- fprintf(CurrentClient, "%d\n", Application); -+ fprintf(CurrentClient, "Free Memory\t0\t%lu\tKB\n", memory_stats[MEM_TOTAL]); - } - - void --printApplicationInfo(const char* cmd) -+printMUsed(const char* cmd) - { -- fprintf(CurrentClient, "Application Memory\t0\t%ld\tKB\n", Total); -+ fprintf(CurrentClient, "%lu\n", memory_stats[MEM_TOTAL] - memory_stats[MEM_FREE]); -+} -+ -+void -+printMUsedInfo(const char* cmd) -+{ -+ fprintf(CurrentClient, "Used Memory\t0\t%lu\tKB\n", memory_stats[MEM_TOTAL]); - } - - void - printSwapUsed(const char* cmd) - { -- fprintf(CurrentClient, "%d\n", SUsed); -+ fprintf(CurrentClient, "%lu\n", swap_stats[SWAP_USED]); - } - - void - printSwapUsedInfo(const char* cmd) - { -- fprintf(CurrentClient, "Used Swap Memory\t0\t%d\tKB\n", STotal); -+ fprintf(CurrentClient, "Used Swap Memory\t0\t%lu\tKB\n", swap_stats[SWAP_TOTAL]); - } - - void - printSwapFree(const char* cmd) - { -- fprintf(CurrentClient, "%d\n", SFree); -+ fprintf(CurrentClient, "%lu\n", swap_stats[SWAP_FREE]); - } - - void - printSwapFreeInfo(const char* cmd) - { -- fprintf(CurrentClient, "Free Swap Memory\t0\t%d\tKB\n", STotal); -+ fprintf(CurrentClient, "Free Swap Memory\t0\t%lu\tKB\n", swap_stats[SWAP_TOTAL]); -+} -+ -+void -+printSwapIn(const char* cmd) -+{ -+ fprintf(CurrentClient, "%lu\n", swap_stats[SWAP_IN]); -+} -+ -+void -+printSwapInInfo(const char* cmd) -+{ -+ fprintf(CurrentClient, "Swapped In Memory\t0\t0\tKB/s\n"); -+} -+ -+void -+printSwapOut(const char* cmd) -+{ -+ fprintf(CurrentClient, "%lu\n", swap_stats[SWAP_OUT]); -+} -+ -+void -+printSwapOutInfo(const char* cmd) -+{ -+ fprintf(CurrentClient, "Swapped Out Memory\t0\t0\tKB/s\n"); - } diff --git a/sysutils/ksysguardd/files/patch-FreeBSD__Memory.h b/sysutils/ksysguardd/files/patch-FreeBSD__Memory.h deleted file mode 100644 index 85306ead9889..000000000000 --- a/sysutils/ksysguardd/files/patch-FreeBSD__Memory.h +++ /dev/null @@ -1,41 +0,0 @@ ---- FreeBSD/Memory.h 2011-03-17 20:50:04.000000000 +0200 -+++ FreeBSD/Memory.h 2010-11-09 11:06:08.000000000 +0200 -@@ -27,19 +27,30 @@ - - int updateMemory(void); - -+void printMActive(const char* cmd); -+void printMActiveInfo(const char* cmd); -+void printMInactive(const char* cmd); -+void printMInactiveInfo(const char* cmd); -+void printMApplication(const char* cmd); -+void printMApplicationInfo(const char* cmd); -+void printMWired(const char* cmd); -+void printMWiredInfo(const char* cmd); -+void printMCached(const char* cmd); -+void printMCachedInfo(const char* cmd); -+void printMBuffers(const char* cmd); -+void printMBuffersInfo(const char* cmd); - void printMFree(const char* cmd); - void printMFreeInfo(const char* cmd); --void printUsed(const char* cmd); --void printUsedInfo(const char* cmd); --void printBuffers(const char* cmd); --void printBuffersInfo(const char* cmd); --void printCached(const char* cmd); --void printCachedInfo(const char* cmd); --void printApplication(const char* cmd); --void printApplicationInfo(const char* cmd); -+void printMUsed(const char* cmd); -+void printMUsedInfo(const char* cmd); -+ - void printSwapUsed(const char* cmd); - void printSwapUsedInfo(const char* cmd); - void printSwapFree(const char* cmd); - void printSwapFreeInfo(const char* cmd); -+void printSwapIn(const char* cmd); -+void printSwapInInfo(const char* cmd); -+void printSwapOut(const char* cmd); -+void printSwapOutInfo(const char* cmd); - - #endif diff --git a/sysutils/ksysguardd/files/patch-FreeBSD__ProcessList.c b/sysutils/ksysguardd/files/patch-FreeBSD__ProcessList.c deleted file mode 100644 index cb29ec40467e..000000000000 --- a/sysutils/ksysguardd/files/patch-FreeBSD__ProcessList.c +++ /dev/null @@ -1,707 +0,0 @@ ---- FreeBSD/ProcessList.c 2011-03-17 20:50:04.000000000 +0200 -+++ FreeBSD/ProcessList.c 2011-02-10 16:06:59.000000000 +0200 -@@ -1,6 +1,7 @@ - /* - KSysGuard, the KDE System Guard - -+ Copyright (c) 2011 David Naylor <naylor.b.david@gmail.com> - Copyright (c) 1999-2000 Hans Petter Bieker<bieker@kde.org> - Copyright (c) 1999 Chris Schlaeger <cs@kde.org> - -@@ -20,423 +21,271 @@ - - */ - --#include <ctype.h> --#include <dirent.h> -+#include "ProcessList.h" -+ -+#include <fcntl.h> -+#include <paths.h> - #include <pwd.h> -+#include <signal.h> - #include <stdio.h> - #include <stdlib.h> - #include <string.h> - #include <sys/param.h> -- --#if defined(__DragonFly__) --#include <sys/user.h> --#include <sys/resourcevar.h> --#endif -- --#if (__FreeBSD_version > 500015) || (__FreeBSD_kernel_version > 500015) --#include <sys/priority.h> --#endif - #include <sys/sysctl.h> --#include <sys/time.h> - #include <sys/types.h> - #include <sys/user.h> -+#include <time.h> - #include <unistd.h> --#include <signal.h> - --#include "../../gui/SignalIDs.h" - #include "Command.h" --#include "ProcessList.h" --#include "ccont.h" --#include "ksysguardd.h" -- --CONTAINER ProcessList = 0; -+#include "../../gui/SignalIDs.h" - --int fscale; -+#define KILL_COMMAND "kill" -+#define SETPRIORITY_COMMAND "setpriority" -+#define PROC_MONITOR "ps" -+#define NPROC_MONITOR "pscount" -+#define PID_MONITOR "lastpid" -+#define PROCBUF 1024 -+#define STATEBUF 12 -+#define NAMEBUF 24 -+#define UNAMEBUF 12 -+#define ARGBUF 256 -+#define PWDBUF 16 -+#define NAMELEN 128 -+ -+static struct kinfo_proc proc_buf[PROCBUF], prev_list[PROCBUF]; -+static int nproc, prev_nproc, sorted_proc[PROCBUF], prev_sorted[PROCBUF]; - --#define BUFSIZE 1024 -+static struct timespec last_update; -+static float scale; - --typedef struct --{ -- /* This flag is set for all found processes at the beginning of the -- * process list update. Processes that do not have this flag set will -- * be assumed dead and removed from the list. The flag is cleared after -- * each list update. */ -- int alive; -+static int pagesize, smpmode; - -- /* the process ID */ -- pid_t pid; -+static unsigned int lastpid; - -- /* the parent process ID */ -- pid_t ppid; -- -- /* the real user ID */ -+static struct { - uid_t uid; -+ char name[NAMELEN]; -+} pwd_cache[PWDBUF]; -+static int pwd_size = 0, pwd_hit = 0, pwd_last = 0; - -- /* the real group ID */ -- gid_t gid; -+static char *const statuses[] = { "", "IDLE", "RUN", "SLEEP", "STOP", "ZOMBIE", "WAIT", "LOCK" }; -+static char (*cpunames)[8] = NULL; - -- /* a character description of the process status */ -- char status[16]; -+static int cmp_pid(const void *, const void *); -+static char *getname(const uid_t); - -- /* the number of the tty the process owns */ -- int ttyNo; -+void initProcessList(struct SensorModul *sm) { -+ size_t len; -+ -+ if (!RunAsDaemon) { -+ registerCommand(KILL_COMMAND, killProcess); -+ registerCommand(SETPRIORITY_COMMAND, setPriority); -+ } - -- /* -- * The nice level. The range should be -20 to 20. I'm not sure -- * whether this is true for all platforms. -- */ -- int niceLevel; -- -- /* -- * The scheduling priority. -- */ -- int priority; -- -- /* -- * The total amount of memory the process uses. This includes shared and -- * swapped memory. -- */ -- unsigned int vmSize; -- -- /* -- * The amount of physical memory the process currently uses. -- */ -- unsigned int vmRss; -- -- /* -- * The amount of memory (shared/swapped/etc) the process shares with -- * other processes. -- */ -- unsigned int vmLib; -- -- /* -- * The number of 1/100 of a second the process has spend in user space. -- * If a machine has an uptime of 1 1/2 years or longer this is not a -- * good idea. I never thought that the stability of UNIX could get me -- * into trouble! ;) -- */ --#if !defined(__DragonFly__) -- unsigned int userTime; --#else -- long userTime; --#endif -- -- /* -- * The number of 1/100 of a second the process has spend in system space. -- * If a machine has an uptime of 1 1/2 years or longer this is not a -- * good idea. I never thought that the stability of UNIX could get me -- * into trouble! ;) -- */ -- unsigned int sysTime; -- -- /* system time as multime of 100ms */ -- int centStamp; -- -- /* the current CPU load (in %) from user space */ -- double userLoad; -- -- /* the current CPU load (in %) from system space */ -- double sysLoad; -- -- /* the name of the process */ -- char name[64]; -- -- /* the command used to start the process */ -- char cmdline[256]; -- -- /* the login name of the user that owns this process */ -- char userName[32]; --} ProcessInfo; -+ len = sizeof(int); -+ if (sysctlbyname("kern.smp.active", &smpmode, &len, NULL, 0)) -+ smpmode = 0; -+ else { -+ int cpus = 0; -+ len = sizeof(int); -+ sysctlbyname("kern.smp.cpus", &cpus, &len, NULL, 0); -+ cpunames = malloc(8 * sizeof(char) * cpus); -+ while (cpus--) -+ snprintf(cpunames[cpus], 8, "CPU%d", cpus); -+ } - --static unsigned ProcessCount; -+ pagesize = getpagesize() / 1024; - --static int --processCmp(void* p1, void* p2) --{ -- return (((ProcessInfo*) p1)->pid - ((ProcessInfo*) p2)->pid); -+ registerMonitor(PROC_MONITOR, "table", printProcessList, printProcessListInfo, sm); -+ registerMonitor(NPROC_MONITOR, "integer", printProcessCount, printProcessCountInfo, sm); -+ registerMonitor(PID_MONITOR, "integer", printLastPID, printLastPIDInfo, sm); -+ -+ nproc = 0; -+ updateProcessList(); - } - --static ProcessInfo* --findProcessInList(int pid) --{ -- ProcessInfo key; -- long index; -+void exitProcessList(void) { -+ removeCommand(KILL_COMMAND); -+ removeCommand(SETPRIORITY_COMMAND); - -- key.pid = pid; -- if ((index = search_ctnr(ProcessList, processCmp, &key)) < 0) -- return (0); -+ removeMonitor(PROC_MONITOR); -+ removeMonitor(NPROC_MONITOR); -+ removeMonitor(PID_MONITOR); - -- return (get_ctnr(ProcessList, index)); -+ free(cpunames); -+ cpunames = NULL; - } - --static int --updateProcess(int pid) --{ -- static const char * const statuses[] = { "idle","run","sleep","stop","zombie" }; -- -- ProcessInfo* ps; -- struct passwd* pwent; -- int mib[4]; -- struct kinfo_proc p; -- struct rusage pru; -+int updateProcessList(void) { -+ int proc; -+ int mib[3]; - size_t len; -- size_t buflen = 256; -- char buf[256]; -- -- if ((ps = findProcessInList(pid)) == 0) -- { -- ps = (ProcessInfo*) malloc(sizeof(ProcessInfo)); -- ps->pid = pid; -- ps->centStamp = 0; -- push_ctnr(ProcessList, ps); -- bsort_ctnr(ProcessList, processCmp); -- } -+ struct timespec update; - -- ps->alive = 1; -+ memcpy(prev_list, proc_buf, sizeof(struct kinfo_proc) * nproc); -+ memcpy(prev_sorted, sorted_proc, sizeof(int) * nproc); -+ prev_nproc = nproc; - - mib[0] = CTL_KERN; - mib[1] = KERN_PROC; -- mib[2] = KERN_PROC_PID; -- mib[3] = pid; -- -- len = sizeof (p); -- if (sysctl(mib, 4, &p, &len, NULL, 0) == -1 || !len) -- return -1; -+ mib[2] = KERN_PROC_PROC; -+ len = PROCBUF * sizeof(struct kinfo_proc); -+ clock_gettime(CLOCK_MONOTONIC, &update); -+ sysctl(mib, 3, proc_buf, &len, NULL, 0); -+ nproc = len / sizeof(struct kinfo_proc); -+ -+ len = sizeof(unsigned int); -+ sysctlbyname("kern.lastpid", &lastpid, &len, NULL, 0); -+ -+ if (nproc > PROCBUF) -+ nproc = PROCBUF; -+ for (proc = 0; proc < nproc; ++proc) -+ sorted_proc[proc] = proc; -+ qsort(sorted_proc, nproc, sizeof(int), cmp_pid); - --#if (__FreeBSD_version > 500015) || (__FreeBSD_kernel_version > 500015) -- ps->pid = p.ki_pid; -- ps->ppid = p.ki_ppid; -- ps->uid = p.ki_uid; -- ps->gid = p.ki_pgid; -- ps->priority = p.ki_pri.pri_user; -- ps->niceLevel = p.ki_nice; --#elif defined(__DragonFly__) && __DragonFly_version >= 190000 -- ps->pid = p.kp_pid; -- ps->ppid = p.kp_ppid; -- ps->uid = p.kp_uid; -- ps->gid = p.kp_pgid; -- ps->priority = p.kp_lwp.kl_tdprio; -- ps->niceLevel = p.kp_nice; --#else -- ps->pid = p.kp_proc.p_pid; -- ps->ppid = p.kp_eproc.e_ppid; -- ps->uid = p.kp_eproc.e_ucred.cr_uid; -- ps->gid = p.kp_eproc.e_pgid; --#if defined(__DragonFly__) -- ps->priority = p.kp_thread.td_pri; --#else -- ps->priority = p.kp_proc.p_priority; --#endif -- ps->niceLevel = p.kp_proc.p_nice; --#endif -- -- /* this isn't usertime -- it's total time (??) */ --#if (__FreeBSD_version > 500015) || (__FreeBSD_kernel_version > 500015) -- ps->userTime = p.ki_runtime / 10000; --#elif defined(__DragonFly__) --#if __DragonFly_version >= 190000 -- if (!getrusage(p.kp_pid, &pru)) --#else -- if (!getrusage(p.kp_proc.p_pid, &pru)) --#endif -- { -- errx(1, "failed to get rusage info"); -- } -- ps->userTime = pru.ru_utime.tv_usec / 1000; /*p_runtime / 1000*/ --#elif __FreeBSD_version >= 300000 -- ps->userTime = p.kp_proc.p_runtime / 10000; --#else -- ps->userTime = p.kp_proc.p_rtime.tv_sec*100+p.kp_proc.p_rtime.tv_usec/100; --#endif -- ps->sysTime = 0; -- ps->sysLoad = 0; -- -- /* memory, process name, process uid */ -- /* find out user name with process uid */ -- pwent = getpwuid(ps->uid); -- strncpy(ps->userName,pwent&&pwent->pw_name? pwent->pw_name:"????",sizeof(ps->userName)); -- ps->userName[sizeof(ps->userName)-1]='\0'; -+ scale = (update.tv_sec - last_update.tv_sec) + (update.tv_nsec - last_update.tv_nsec) / 1000000000.0; -+ last_update = update; - -- if (fscale == 0) -- ps->userLoad = 0; -- else --#if (__FreeBSD_version > 500015) || (__FreeBSD_kernel_version > 500015) -- ps->userLoad = 100.0 * (double) p.ki_pctcpu / fscale; -- ps->vmSize = p.ki_size; -- ps->vmRss = p.ki_rssize * getpagesize(); -- strlcpy(ps->name,p.ki_comm? p.ki_comm:"????",sizeof(ps->name)); -- strcpy(ps->status,(p.ki_stat>=1)&&(p.ki_stat<=5)? statuses[p.ki_stat-1]:"????"); --#elif defined (__DragonFly__) && __DragonFly_version >= 190000 -- ps->userLoad = 100.0 * (double) p.kp_lwp.kl_pctcpu / fscale; -- ps->vmSize = p.kp_vm_map_size; -- ps->vmRss = p.kp_vm_rssize * getpagesize(); -- strlcpy(ps->name,p.kp_comm ? p.kp_comm : "????", -- sizeof(ps->name)); -- strcpy(ps->status,(p.kp_stat>=1)&&(p.kp_stat<=5)? statuses[p.kp_stat-1]:"????"); --#else -- ps->userLoad = 100.0 * (double) p.kp_proc.p_pctcpu / fscale; -- ps->vmSize = p.kp_eproc.e_vm.vm_map.size; -- ps->vmRss = p.kp_eproc.e_vm.vm_rssize * getpagesize(); --#if defined (__DragonFly__) -- strlcpy(ps->name,p.kp_thread.td_comm ? p.kp_thread.td_comm : "????", -- sizeof(ps->name)); --#else -- strlcpy(ps->name,p.kp_proc.p_comm ? p.kp_proc.p_comm : "????", sizeof(ps->name)); --#endif -- strcpy(ps->status,(p.kp_proc.p_stat>=1)&&(p.kp_proc.p_stat<=5)? statuses[p.kp_proc.p_stat-1]:"????"); --#endif -+ return (0); -+} - -- /* process command line */ -- /* do a sysctl to get the command line args. */ -+void printProcessList(const char* cmd) -+{ -+ int proc, prev_proc; -+ float load; -+ int mib[4]; -+ char *name, *uname, *state, *arg_fix; -+ char buf[STATEBUF + 1], buf2[UNAMEBUF], buf3[NAMEBUF], args[ARGBUF]; -+ struct kinfo_proc *ps, *last_ps; -+ size_t len; - -+ buf[STATEBUF] = '\0'; -+ buf3[0] = '['; - mib[0] = CTL_KERN; - mib[1] = KERN_PROC; - mib[2] = KERN_PROC_ARGS; -- mib[3] = pid; -- -- if ((sysctl(mib, 4, buf, &buflen, 0, 0) == -1) || !buflen) -- strcpy(ps->cmdline, "????"); -- else -- strncpy(ps->cmdline, buf, buflen); - -- return (0); --} -+ for (prev_proc = 0, proc = 0; proc < nproc; ++proc) { -+ ps = &proc_buf[sorted_proc[proc]]; - --static void --cleanupProcessList(void) --{ -- ProcessInfo* ps; -- -- ProcessCount = 0; -- /* All processes that do not have the active flag set are assumed dead -- * and will be removed from the list. The alive flag is cleared. */ -- for (ps = first_ctnr(ProcessList); ps; ps = next_ctnr(ProcessList)) -- { -- if (ps->alive) -- { -- /* Process is still alive. Just clear flag. */ -- ps->alive = 0; -- ProcessCount++; -+ mib[3] = ps->ki_pid; -+ len = ARGBUF; -+ sysctl(mib, 4, args, &len, 0, 0); -+ if (!len) -+ args[0] = '\0'; -+ else { -+ arg_fix = args; -+ while ((arg_fix += strlen(arg_fix)) < args + len - 1) -+ *arg_fix = '*'; - } -+ -+ if (args[0] == '\0' && (ps->ki_flag & P_SYSTEM || ps->ki_args == NULL)) { -+ int cpy; -+ cpy = strlcpy(buf3 + 1, ps->ki_comm, NAMEBUF - 1); -+ if (cpy > NAMEBUF - 2) -+ cpy = NAMEBUF - 2; -+ buf3[cpy + 1] = ']'; -+ buf3[cpy + 2] = '\0'; -+ name = buf3; -+ // TODO: should kernel processes be displayed? -+ //continue; -+ } else if (ps->ki_comm != NULL) -+ name = ps->ki_comm; - else -- { -- /* Process has probably died. We remove it from the list and -- * destruct the data structure. */ -- free(remove_ctnr(ProcessList)); -+ name = "????"; -+ -+ switch (ps->ki_stat) { -+ case SRUN: -+ if (smpmode && ps->ki_oncpu != 0xff) -+ state = cpunames[ps->ki_oncpu]; -+ else -+ state = statuses[2]; -+ break; -+ case SSLEEP: -+ if (ps->ki_wmesg != NULL) { -+ state = ps->ki_wmesg; -+ break; -+ } -+ -+ case SLOCK: -+ if (ps->ki_kiflag & KI_LOCKBLOCK) { -+ snprintf(buf, STATEBUF, "*%s", ps->ki_lockname); -+ state = buf; -+ break; -+ } -+ -+ case SIDL: -+ case SSTOP: -+ case SZOMB: -+ case SWAIT: -+ state = statuses[(int)ps->ki_stat]; -+ break; -+ -+ default: -+ snprintf(buf, STATEBUF, "?%d", ps->ki_stat); -+ state = buf; - } -- } --} - --/* --================================ public part ================================== --*/ -+ uname = getname(ps->ki_ruid); -+ if (uname[0] == '\0') { -+ snprintf(buf2, UNAMEBUF, "%d", ps->ki_ruid); -+ uname = buf2; -+ } - --void --initProcessList(struct SensorModul* sm) --{ -- size_t fscalelen; -- ProcessList = new_ctnr(); -+ for (;;) { -+ if (prev_proc >= prev_nproc) { -+ last_ps = NULL; -+ break; -+ } -+ last_ps = &prev_list[prev_sorted[prev_proc]]; -+ if (last_ps->ki_pid == ps->ki_pid && -+ last_ps->ki_start.tv_sec == ps->ki_start.tv_sec && -+ last_ps->ki_start.tv_usec == ps->ki_start.tv_usec) -+ break; -+ else if (last_ps->ki_pid > ps->ki_pid) { -+ last_ps = NULL; -+ break; -+ } -+ ++prev_proc; -+ } - -- registerMonitor("ps", "table", printProcessList, printProcessListInfo, sm); -- registerMonitor("pscount", "integer", printProcessCount, printProcessCountInfo, sm); -+ if (last_ps != NULL) -+ load = (ps->ki_runtime - last_ps->ki_runtime) / 1000000.0 / scale; -+ else -+ load = ps->ki_runtime / 1000000.0 / scale; - -- if (!RunAsDaemon) -- { -- registerCommand("kill", killProcess); -- registerCommand("setpriority", setPriority); -+ fprintf(CurrentClient, "%s\t%ld\t%ld\t%ld\t%ld\t%s\t%.2f\t%.2f\t%d\t%ld\t%ld\t%s\t%s\n", -+ name, (long)ps->ki_pid, (long)ps->ki_ppid, -+ (long)ps->ki_uid, (long)ps->ki_pgid, state, -+ ps->ki_runtime / 1000000.0, load, ps->ki_nice, -+ ps->ki_size / 1024, ps->ki_rssize * pagesize, uname, args); - } -- -- fscalelen = sizeof(fscale); -- if (sysctlbyname("kern.fscale", &fscale, &fscalelen, NULL, 0) == -1) -- fscale = 0; -- -- updateProcessList(); --} -- --void --exitProcessList(void) --{ -- removeMonitor("ps"); -- removeMonitor("pscount"); -- -- if (ProcessList) -- free (ProcessList); --} -- --int --updateProcessList(void) --{ -- int mib[3]; -- size_t len; -- size_t num; -- struct kinfo_proc *p; -- -- -- mib[0] = CTL_KERN; -- mib[1] = KERN_PROC; -- mib[2] = KERN_PROC_ALL; -- sysctl(mib, 3, NULL, &len, NULL, 0); -- p = malloc(len); -- sysctl(mib, 3, p, &len, NULL, 0); -- -- for (num = 0; num < len / sizeof(struct kinfo_proc); num++) --#if (__FreeBSD_version > 500015) || (__FreeBSD_kernel_version > 500015) -- updateProcess(p[num].ki_pid); --#elif __DragonFly_version >= 190000 -- /* Skip kernel threads with pid -1. Swapper with pid 0 also -- * causing problems is skipped in printProcessList() as 'kernel' -- * entry. */ -- if (p[num].kp_pid >= 0) -- updateProcess(p[num].kp_pid); --#elif defined(__DragonFly__) -- if (p[num].kp_proc.p_pid >= 0) -- updateProcess(p[num].kp_proc.p_pid); --#else -- updateProcess(p[num].kp_proc.p_pid); --#endif -- free(p); -- cleanupProcessList(); -- -- return (0); - } - --void --printProcessListInfo(const char* cmd) -+void printProcessListInfo(const char* cmd) - { - fprintf(CurrentClient, "Name\tPID\tPPID\tUID\tGID\tStatus\tUser%%\tSystem%%\tNice\tVmSize\tVmRss\tLogin\tCommand\n"); - fprintf(CurrentClient, "s\td\td\td\td\tS\tf\tf\td\tD\tD\ts\ts\n"); - } - --void --printProcessList(const char* cmd) --{ -- ProcessInfo* ps; -+void printProcessCount(const char *cmd) { -+ fprintf(CurrentClient, "%d\n", nproc); -+} - -- ps = first_ctnr(ProcessList); /* skip 'kernel' entry */ -- for (ps = next_ctnr(ProcessList); ps; ps = next_ctnr(ProcessList)) -- { -- fprintf(CurrentClient, "%s\t%ld\t%ld\t%ld\t%ld\t%s\t%.2f\t%.2f\t%d\t%d\t%d\t%s\t%s\n", -- ps->name, (long)ps->pid, (long)ps->ppid, -- (long)ps->uid, (long)ps->gid, ps->status, -- ps->userLoad, ps->sysLoad, ps->niceLevel, -- ps->vmSize / 1024, ps->vmRss / 1024, ps->userName, ps->cmdline); -- } -+void printProcessCountInfo(const char *cmd) { -+ fprintf(CurrentClient, "Number of Processes\t1\t65535\t\n"); - } - --void --printProcessCount(const char* cmd) --{ -- fprintf(CurrentClient, "%d\n", ProcessCount); -+void printLastPID(const char *cmd) { -+ fprintf(CurrentClient, "%u\n", lastpid); - } - --void --printProcessCountInfo(const char* cmd) --{ -- fprintf(CurrentClient, "Number of Processes\t1\t65535\t\n"); -+void printLastPIDInfo(const char *cmd) { -+ fprintf(CurrentClient, "Last used Process ID\t1\t65535\t\n"); - } - --void --killProcess(const char* cmd) -+void killProcess(const char *cmd) - { - int sig, pid; - -@@ -524,8 +373,7 @@ - fprintf(CurrentClient, "0\t%d\n", pid); - } - --void --setPriority(const char* cmd) -+void setPriority(const char *cmd) - { - int pid, prio; - -@@ -535,20 +383,58 @@ - switch(errno) - { - case EINVAL: -- fprintf(CurrentClient, "4\n"); -+ fprintf(CurrentClient, "4\t%d\t%d\n", pid, prio); - break; - case ESRCH: -- fprintf(CurrentClient, "3\n"); -+ fprintf(CurrentClient, "3\t%d\t%d\n", pid, prio); - break; - case EPERM: - case EACCES: -- fprintf(CurrentClient, "2\n"); -+ fprintf(CurrentClient, "2\t%d\t%d\n", pid, prio); - break; - default: -- fprintf(CurrentClient, "1\n"); /* unknown error */ -+ fprintf(CurrentClient, "1\t%d\t%d\n", pid, prio); /* unknown error */ - break; - } - } - else - fprintf(CurrentClient, "0\n"); - } -+ -+int cmp_pid(const void *first_idx, const void *last_idx) { -+ struct kinfo_proc *first = &proc_buf[*(int *)first_idx]; -+ struct kinfo_proc *last = &proc_buf[*(int *)last_idx]; -+ -+ if (first->ki_pid < last->ki_pid) -+ return -1; -+ else if (first->ki_pid > last->ki_pid) -+ return 1; -+ else -+ return 0; -+} -+ -+char *getname(const uid_t uid) { -+ int idx; -+ struct passwd *pw; -+ -+ for (idx = 0; idx < pwd_size; ++idx) { -+ if (pwd_cache[pwd_hit].uid == uid) -+ return pwd_cache[pwd_hit].name; -+ pwd_hit = (pwd_hit + 1) % pwd_size; -+ } -+ -+ if (pwd_size < PWDBUF) -+ pwd_last = pwd_size++; -+ else -+ pwd_last = (pwd_last + 1) % PWDBUF; -+ pwd_hit = pwd_last; -+ -+ pwd_cache[pwd_hit].uid = uid; -+ pw = getpwuid(uid); -+ if (pw == NULL) -+ pwd_cache[pwd_hit].name[0] = '\0'; -+ else -+ strlcpy(pwd_cache[pwd_hit].name, pw->pw_name, NAMELEN); -+ -+ return (pwd_cache[pwd_hit].name); -+} diff --git a/sysutils/ksysguardd/files/patch-FreeBSD__ProcessList.h b/sysutils/ksysguardd/files/patch-FreeBSD__ProcessList.h deleted file mode 100644 index 947899bc2df1..000000000000 --- a/sysutils/ksysguardd/files/patch-FreeBSD__ProcessList.h +++ /dev/null @@ -1,39 +0,0 @@ ---- FreeBSD/ProcessList.h 2011-03-17 20:50:04.000000000 +0200 -+++ FreeBSD/ProcessList.h 2011-01-30 11:06:11.000000000 +0200 -@@ -1,6 +1,7 @@ - /* - KSysGuard, the KDE System Guard - -+ Copyright (c) 2011 David Naylor <naylor.b.david@gmail.com> - Copyright (c) 1999 Chris Schlaeger <cs@kde.org> - - This program is free software; you can redistribute it and/or modify -@@ -22,15 +23,23 @@ - #ifndef _process_list_h_ - #define _process_list_h_ - --void initProcessList(struct SensorModul* sm); -+struct SensorModul; -+ -+void initProcessList(struct SensorModul *); - void exitProcessList(void); - - int updateProcessList(void); - --void printProcessList(const char*); --void printProcessListInfo(const char*); --void printProcessCount(const char* cmd); --void printProcessCountInfo(const char* cmd); -+void printProcessList(const char *); -+void printProcessListInfo(const char *); -+void printThreadList(const char *); -+void printThreadListInfo(const char *); -+ -+void printProcessCount(const char *); -+void printProcessCountInfo(const char *); -+ -+void printLastPID(const char *); -+void printLastPIDInfo(const char *); - - void killProcess(const char* cmd); - void setPriority(const char* cmd); diff --git a/sysutils/ksysguardd/files/patch-FreeBSD__acpi.c b/sysutils/ksysguardd/files/patch-FreeBSD__acpi.c deleted file mode 100644 index 7c2bbd46795c..000000000000 --- a/sysutils/ksysguardd/files/patch-FreeBSD__acpi.c +++ /dev/null @@ -1,244 +0,0 @@ ---- FreeBSD/acpi.c 1970-01-01 02:00:00.000000000 +0200 -+++ FreeBSD/acpi.c 2011-01-30 10:28:18.000000000 +0200 -@@ -0,0 +1,241 @@ -+/* -+ KSysGuard, the KDE System Guard -+ -+ Copyright (c) 2011 David Naylor <naylor.b.david@gmail.com> -+ -+ This program is free software; you can redistribute it and/or -+ modify it under the terms of version 2 of the GNU General Public -+ License as published by the Free Software Foundation. -+ -+ 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -+*/ -+ -+/* -+ * TODO -+ * - battery -+ * - fan -+ */ -+ -+#include "acpi.h" -+ -+#include <fcntl.h> -+#include <stdio.h> -+#include <sys/ioctl.h> -+#include <sys/types.h> -+#include <sys/sysctl.h> -+#include <unistd.h> -+ -+#include <dev/acpica/acpiio.h> -+ -+#include "Command.h" -+ -+#define BUF_LEN 80 -+ -+#define MAXTZ 6 -+#define TZ_MIB "hw.acpi.thermal.tz%i.temperature" -+#define TZ_MIB_LEN 32 -+#define TZ_MONITOR "acpi/thermal_zone/temp%i" -+ -+#define MAXBAT 6 -+#define BAT_CHARGE_MONITOR "acpi/battery/batt%i/batterycharge" -+#define BAT_CAPACITY_MONITOR "acpi/battery/batt%i/batterycapacity" -+#define BAT_REMAINING_MONITOR "acpi/battery/batt%i/remainingtime" -+#define BAT_VOLTAGE_MONITOR "acpi/battery/batt%i/batteryvoltage" -+#define BAT_RATE_MONITOR "acpi/battery/batt%i/batteryrate" -+#define BAT_UNIT(bat) (bat_bif[bat].bif.units ? "mA" : "mW") -+ -+static int acpifd = -1; -+ -+static int tz_temp[MAXTZ]; -+static int tz_cnt; -+ -+static int bat_cnt; -+static union acpi_battery_ioctl_arg bat_bif[MAXBAT], bat_bst[MAXBAT], bat_battinfo[MAXBAT]; -+ -+void initACPI(struct SensorModul *sm) { -+ char name[BUF_LEN]; -+ size_t len; -+ -+ /* Assume thermal zones use hw.acpi.thermal.tz%i.temperature format */ -+ for (tz_cnt = 0; tz_cnt < MAXTZ; ++tz_cnt) { -+ len = sizeof(int); -+ snprintf(name, TZ_MIB_LEN, TZ_MIB, tz_cnt); -+ if (sysctlbyname(name, &tz_temp[tz_cnt], &len, NULL, 0)) -+ break; -+ else { -+ snprintf(name, BUF_LEN, TZ_MONITOR, tz_cnt + 1); -+ registerMonitor(name, "float", printThermal, printThermalInfo, sm); -+ } -+ } -+ -+ if ((acpifd = open("/dev/acpi", O_RDONLY)) == -1) { -+ log_error("unable to open /dev/acpi"); -+ return; -+ } -+ -+ for (bat_cnt = 0; bat_cnt < MAXBAT; ++bat_cnt) { -+ bat_bif[bat_cnt].unit = bat_cnt; -+ if (ioctl(acpifd, ACPIIO_BATT_GET_BIF, &bat_bif[bat_cnt])) -+ break; -+ else { -+ snprintf(name, BUF_LEN, BAT_CHARGE_MONITOR, bat_cnt + 1); -+ registerMonitor(name, "integer", printBatCharge, printBatChargeInfo, sm); -+ snprintf(name, BUF_LEN, BAT_CAPACITY_MONITOR, bat_cnt + 1); -+ registerMonitor(name, "integer", printBatCapacity, printBatCapacityInfo, sm); -+ snprintf(name, BUF_LEN, BAT_REMAINING_MONITOR, bat_cnt + 1); -+ registerMonitor(name, "integer", printBatRemaining, printBatRemainingInfo, sm); -+ snprintf(name, BUF_LEN, BAT_VOLTAGE_MONITOR, bat_cnt + 1); -+ registerMonitor(name, "integer", printBatVoltage, printBatVoltageInfo, sm); -+ snprintf(name, BUF_LEN, BAT_RATE_MONITOR, bat_cnt + 1); -+ registerMonitor(name, "integer", printBatRate, printBatRateInfo, sm); -+ } -+ } -+} -+ -+void exitACPI(void) { -+ int bat, tz; -+ char name[BUF_LEN]; -+ -+ for (tz = 0; tz < tz_cnt; ++tz) { -+ snprintf(name, BUF_LEN, TZ_MONITOR, tz + 1); -+ removeMonitor(name); -+ } -+ -+ if (acpifd != -1) { -+ for (bat = 0; bat < bat_cnt; ++bat) { -+ snprintf(name, TZ_MIB_LEN, BAT_CHARGE_MONITOR, bat + 1); -+ removeMonitor(name); -+ snprintf(name, BUF_LEN, BAT_CAPACITY_MONITOR, bat + 1); -+ removeMonitor(name); -+ snprintf(name, BUF_LEN, BAT_REMAINING_MONITOR, bat + 1); -+ removeMonitor(name); -+ snprintf(name, BUF_LEN, BAT_VOLTAGE_MONITOR, bat + 1); -+ removeMonitor(name); -+ -+ } -+ -+ close(acpifd); -+ acpifd = -1; -+ } -+} -+ -+int updateACPI(void) { -+ int bat, tz; -+ char name[TZ_MIB_LEN]; -+ size_t len; -+ -+ for (tz = 0; tz < tz_cnt; ++tz) { -+ len = sizeof(int); -+ snprintf(name, TZ_MIB_LEN, TZ_MIB, tz); -+ sysctlbyname(name, &tz_temp[tz], &len, NULL, 0); -+ } -+ -+ for (bat = 0; bat < bat_cnt; ++bat) { -+ bat_bst[bat].unit = bat; -+ ioctl(acpifd, ACPIIO_BATT_GET_BST, &bat_bst[bat]); -+ bat_battinfo[bat].unit = bat; -+ ioctl(acpifd, ACPIIO_BATT_GET_BATTINFO, &bat_battinfo[bat]); -+ } -+ -+ return (0); -+} -+ -+void printThermal(const char *cmd) { -+ int tz; -+ -+ sscanf(cmd + 22, "%i", &tz); -+ fprintf(CurrentClient, "%f\n", (tz_temp[tz - 1] - 2732) / 10.0); -+} -+ -+void printThermalInfo(const char *cmd) { -+ int tz; -+ -+ sscanf(cmd + 22, "%i", &tz); -+ fprintf(CurrentClient, "ACPI Thermal Zone %i\t0\t0\tC\n", tz); -+} -+ -+/* -+void printBat(const char *cmd) { -+ int bat; -+ -+ sscanf(cmd + 17, "%i", &bat); -+ fprintf(CurrentClient, ""); -+} -+*/ -+ -+void printBatCharge(const char *cmd) { -+ int bat; -+ -+ sscanf(cmd + 17, "%i", &bat); -+ fprintf(CurrentClient, "%i\n", bat_bst[bat - 1].bst.cap); -+} -+ -+void printBatChargeInfo(const char *cmd) { -+ int bat; -+ -+ sscanf(cmd + 17, "%i", &bat); -+ fprintf(CurrentClient, "Battery %i charge\t0\t%i\t%sh\n", bat, bat_bif[bat - 1].bif.dcap, BAT_UNIT(bat - 1)); -+} -+ -+void printBatCapacity(const char *cmd) { -+ int bat; -+ -+ sscanf(cmd + 17, "%i", &bat); -+ fprintf(CurrentClient, "%i\n", bat_battinfo[bat - 1].battinfo.cap); -+} -+ -+void printBatCapacityInfo(const char *cmd) { -+ int bat; -+ -+ sscanf(cmd + 17, "%i", &bat); -+ fprintf(CurrentClient, "Battery %i capacity\t0\t100\t%%\n", bat); -+} -+ -+void printBatRemaining(const char *cmd) { -+ int bat; -+ -+ sscanf(cmd + 17, "%i", &bat); -+ fprintf(CurrentClient, "%i\n", bat_battinfo[bat - 1].battinfo.min); -+} -+ -+void printBatRemainingInfo(const char *cmd) { -+ int bat; -+ -+ sscanf(cmd + 17, "%i", &bat); -+ fprintf(CurrentClient, "Battery %i remaining time\t0\t0\tmin\n", bat); -+} -+ -+void printBatVoltage(const char *cmd) { -+ int bat; -+ -+ sscanf(cmd + 17, "%i", &bat); -+ fprintf(CurrentClient, "%i\n", bat_bst[bat - 1].bst.volt); -+} -+ -+void printBatVoltageInfo(const char *cmd) { -+ int bat; -+ -+ sscanf(cmd + 17, "%i", &bat); -+ fprintf(CurrentClient, "Battery %i voltage\t0\t%i\tmV\n", bat, bat_bif[bat - 1].bif.dvol); -+} -+ -+void printBatRate(const char *cmd) { -+ int bat; -+ -+ sscanf(cmd + 17, "%i", &bat); -+ fprintf(CurrentClient, "%i\n", bat_bst[bat - 1].bst.rate); -+} -+ -+void printBatRateInfo(const char *cmd) { -+ int bat; -+ -+ sscanf(cmd + 17, "%i", &bat); -+ fprintf(CurrentClient, "Battery %i discharge rate\t0\t0\t%s\n", bat, BAT_UNIT(bat - 1)); -+} diff --git a/sysutils/ksysguardd/files/patch-FreeBSD__acpi.h b/sysutils/ksysguardd/files/patch-FreeBSD__acpi.h deleted file mode 100644 index e68693581753..000000000000 --- a/sysutils/ksysguardd/files/patch-FreeBSD__acpi.h +++ /dev/null @@ -1,48 +0,0 @@ ---- FreeBSD/acpi.h 1970-01-01 02:00:00.000000000 +0200 -+++ FreeBSD/acpi.h 2011-01-27 20:56:50.000000000 +0200 -@@ -0,0 +1,45 @@ -+/* -+ KSysGuard, the KDE System Guard -+ -+ Copyright (c) 2011 David Naylor <naylor.b.david@gmail.com> -+ -+ This program is free software; you can redistribute it and/or -+ modify it under the terms of version 2 of the GNU General Public -+ License as published by the Free Software Foundation. -+ -+ 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -+ -+*/ -+ -+#ifndef _acpi_h_ -+#define _acpi_h_ -+ -+struct SensorModul; -+ -+void initACPI(struct SensorModul*); -+void exitACPI(void); -+ -+int updateACPI(void); -+ -+void printBatCharge(const char*); -+void printBatChargeInfo(const char*); -+void printBatCapacity(const char*); -+void printBatCapacityInfo(const char*); -+void printBatRemaining(const char*); -+void printBatRemainingInfo(const char*); -+void printBatVoltage(const char*); -+void printBatVoltageInfo(const char*); -+void printBatRate(const char*); -+void printBatRateInfo(const char*); -+ -+void printThermal(const char *); -+void printThermalInfo(const char *); -+ -+#endif /* _acpi_h_ */ diff --git a/sysutils/ksysguardd/files/patch-FreeBSD__cpuinfo.c b/sysutils/ksysguardd/files/patch-FreeBSD__cpuinfo.c deleted file mode 100644 index f75f00e31267..000000000000 --- a/sysutils/ksysguardd/files/patch-FreeBSD__cpuinfo.c +++ /dev/null @@ -1,658 +0,0 @@ ---- FreeBSD/cpuinfo.c 1970-01-01 02:00:00.000000000 +0200 -+++ FreeBSD/cpuinfo.c 2011-02-19 10:12:35.000000000 +0200 -@@ -0,0 +1,655 @@ -+/* -+ KSysGuard, the KDE System Guard -+ -+ Copyright (c) 1999 Chris Schlaeger <cs@kde.org> -+ Copyright (c) 2010 David Naylor <naylor.b.david@gmail.com> -+ -+ 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -+ -+*/ -+ -+#include <sys/types.h> -+ -+#include <sys/resource.h> -+#include <sys/sysctl.h> -+ -+#include <devstat.h> -+#include <fcntl.h> -+#include <nlist.h> -+#include <stdio.h> -+#include <stdlib.h> -+#include <string.h> -+ -+#include "cpuinfo.h" -+#include "Command.h" -+#include "ksysguardd.h" -+ -+#define FREQ_LEVEL_BUFFER 256 -+#define SYSCTL_ID_LEN 35 -+ -+static void get_mmfreq(int, int*, int*); -+ -+static long percentages(int cnt, long *out, long *new, long *old, long *diffs); -+ -+static long (*cp_time)[CPUSTATES] = NULL; -+static long (*cp_old)[CPUSTATES] = NULL; -+static long (*cp_diff)[CPUSTATES] = NULL; -+ -+static int maxcpus = 1; -+static int cpus = 1; -+static int cores = 1; -+static int (*freq)[3] = NULL; -+static int *temp = NULL; -+ -+static long (*cpu_states)[CPUSTATES] = NULL; -+ -+void -+initCpuInfo(struct SensorModul* sm) -+{ -+ size_t len; -+ int id; -+ char name[SYSCTL_ID_LEN]; -+ int minfreq, maxfreq; -+ -+ len = sizeof(cpus); -+ // XXX: this is a guess -+ sysctlbyname("kern.smp.active", &cpus, &len, NULL, 0); -+ // NOTE: cpus may be 0, which implies 1 -+ cpus = cpus ? cpus : 1; -+ -+ len = sizeof(cores); -+ sysctlbyname("kern.smp.cpus", &cores, &len, NULL, 0); -+ -+ len = sizeof(maxcpus); -+ sysctlbyname("kern.smp.maxcpus", &maxcpus, &len, NULL, 0); -+ -+ /* Core/process count */ -+ registerMonitor("system/processors", "integer", printNumCpus, printNumCpusInfo, sm); -+ registerMonitor("system/cores", "integer", printNumCores, printNumCoresInfo, sm); -+ -+ /* -+ * CPU Loads -+ */ -+ if ((cp_time = malloc(sizeof(long) * CPUSTATES * (cores * 4 + 1))) == NULL) { -+ log_error("out of memory for cp_time"); -+ return; -+ } -+ cp_old = &cp_time[cores]; -+ cp_diff = &cp_old[cores]; -+ cpu_states = &cp_diff[cores]; -+ -+ /* Total CPU load */ -+ registerMonitor("cpu/system/user", "float", printCPUUser, printCPUUserInfo, sm); -+ registerMonitor("cpu/system/nice", "float", printCPUNice, printCPUNiceInfo, sm); -+ registerMonitor("cpu/system/sys", "float", printCPUSys, printCPUSysInfo, sm); -+ registerMonitor("cpu/system/TotalLoad", "float", printCPUTotalLoad, printCPUTotalLoadInfo, sm); -+ registerMonitor("cpu/system/intr", "float", printCPUIntr, printCPUIntrInfo, sm); -+ registerMonitor("cpu/system/idle", "float", printCPUIdle, printCPUIdleInfo, sm); -+ -+ /* Monitor names changed from kde3 => kde4. Remain compatible with legacy requests when possible. */ -+ registerLegacyMonitor("cpu/user", "float", printCPUUser, printCPUUserInfo, sm); -+ registerLegacyMonitor("cpu/nice", "float", printCPUNice, printCPUNiceInfo, sm); -+ registerLegacyMonitor("cpu/sys", "float", printCPUSys, printCPUSysInfo, sm); -+ registerLegacyMonitor("cpu/idle", "float", printCPUIdle, printCPUIdleInfo, sm); -+ -+ for (id = 0; id < cores; ++id) { -+ snprintf(name, SYSCTL_ID_LEN, "cpu/cpu%d/user", id); -+ registerMonitor(name, "float", printCPUxUser, printCPUxUserInfo, sm); -+ snprintf(name, SYSCTL_ID_LEN, "cpu/cpu%d/nice", id); -+ registerMonitor(name, "float", printCPUxNice, printCPUxNiceInfo, sm); -+ snprintf(name, SYSCTL_ID_LEN, "cpu/cpu%d/sys", id); -+ registerMonitor(name, "float", printCPUxSys, printCPUxSysInfo, sm); -+ snprintf(name, SYSCTL_ID_LEN, "cpu/cpu%d/TotalLoad", id); -+ registerMonitor(name, "float", printCPUxTotalLoad, printCPUxTotalLoadInfo, sm); -+ snprintf(name, SYSCTL_ID_LEN, "cpu/cpu%d/intr", id); -+ registerMonitor(name, "float", printCPUxIntr, printCPUxIntrInfo, sm); -+ snprintf(name, SYSCTL_ID_LEN, "cpu/cpu%d/idle", id); -+ registerMonitor(name, "float", printCPUxIdle, printCPUxIdleInfo, sm); -+ } -+ -+ /* -+ * CPU frequencies -+ */ -+ if ((freq = malloc(sizeof(int) * 3 * (cores + 1))) == NULL) { -+ log_error("out of memory for freq"); -+ return; -+ } -+ -+ registerMonitor("cpu/system/AverageClock", "float", printCPUClock, printCPUClockInfo, sm); -+ for (id = 0; id < cores; ++id) { -+ len = sizeof(int); -+ snprintf(name, SYSCTL_ID_LEN, "dev.cpu.%d.freq", id); -+ if (!sysctlbyname(name, &freq[id][0], &len, NULL, 0)) { -+ get_mmfreq(id, &freq[id][1], &freq[id][2]); -+ snprintf(name, SYSCTL_ID_LEN, "cpu/cpu%d/clock", id); -+ registerMonitor(name, "integer", printCPUxClock, printCPUxClockInfo, sm); -+ } else { -+ freq[id][0] = -1; -+ freq[id][1] = 0; -+ freq[id][2] = 0; -+ } -+ } -+ -+ minfreq = freq[0][1]; -+ maxfreq = freq[0][2]; -+ for (id = 1; id < cores; ++id) -+ if (freq[id][0] != -1) { -+ minfreq = minfreq > freq[id][1] ? freq[id][1] : minfreq; -+ maxfreq = maxfreq < freq[id][2] ? freq[id][2] : maxfreq; -+ } -+ freq[cores][1] = minfreq; -+ freq[cores][2] = maxfreq; -+ -+ /* -+ * CPU temperature -+ */ -+ if ((temp = malloc(sizeof(int) * (cores + 1))) == NULL) { -+ log_error("out of memory for temp"); -+ return; -+ } -+ registerMonitor("cpu/system/AverageTemperature", "float", printCPUTemperature, printCPUTemperatureInfo, sm); -+ for (id = 0; id < cores; ++id) { -+ len = sizeof(int); -+ snprintf(name, SYSCTL_ID_LEN, "dev.cpu.%d.temperature", id); -+ if (!sysctlbyname(name, &temp[id], &len, NULL, 0)) { -+ snprintf(name, SYSCTL_ID_LEN, "cpu/cpu%d/temperature", id); -+ registerMonitor(name, "float", printCPUxTemperature, printCPUxTemperatureInfo, sm); -+ } else -+ temp[id] = -1; -+ } -+ -+ updateCpuInfo(); -+} -+ -+void -+exitCpuInfo(void) -+{ -+ int id; -+ char name[SYSCTL_ID_LEN]; -+ -+ removeMonitor("system/processors"); -+ removeMonitor("system/cores"); -+ -+ if (cp_time != NULL) { -+ removeMonitor("cpu/system/user"); -+ removeMonitor("cpu/system/nice"); -+ removeMonitor("cpu/system/sys"); -+ removeMonitor("cpu/system/TotalLoad"); -+ removeMonitor("cpu/system/intr"); -+ removeMonitor("cpu/system/idle"); -+ -+ /* These were registered as legacy monitors */ -+ removeMonitor("cpu/user"); -+ removeMonitor("cpu/nice"); -+ removeMonitor("cpu/sys"); -+ removeMonitor("cpu/idle"); -+ -+ for (id = 0; id < cores; ++id) { -+ snprintf(name, SYSCTL_ID_LEN, "cpu/cpu%d/user", id); -+ removeMonitor(name); -+ snprintf(name, SYSCTL_ID_LEN, "cpu/cpu%d/nice", id); -+ removeMonitor(name); -+ snprintf(name, SYSCTL_ID_LEN, "cpu/cpu%d/sys", id); -+ removeMonitor(name); -+ snprintf(name, SYSCTL_ID_LEN, "cpu/cpu%d/TotalLoad", id); -+ removeMonitor(name); -+ snprintf(name, SYSCTL_ID_LEN, "cpu/cpu%d/intr", id); -+ removeMonitor(name); -+ snprintf(name, SYSCTL_ID_LEN, "cpu/cpu%d/idle", id); -+ removeMonitor(name); -+ -+ if (freq != NULL && freq[id][0] != -1) { -+ snprintf(name, SYSCTL_ID_LEN, "cpu/cpu%d/clock", id); -+ removeMonitor(name); -+ } -+ if (temp != NULL && temp[id] != -1) { -+ snprintf(name, SYSCTL_ID_LEN, "cpu/cpu%d/temperature", id); -+ removeMonitor(name); -+ } -+ } -+ -+ free(cp_time); -+ cp_time = NULL; -+ } -+ -+ if (freq != NULL) { -+ removeMonitor("cpu/system/AverageClock"); -+ for (id = 0; id < cores; ++id) -+ if (freq[id][0] != -1) { -+ snprintf(name, SYSCTL_ID_LEN, "cpu/cpu%d/clock", id); -+ removeMonitor(name); -+ } -+ free(freq); -+ freq = NULL; -+ } -+ -+ if (temp != NULL) { -+ removeMonitor("cpu/system/AverageTemperature"); -+ for (id = 0; id < cores; ++id) -+ if (temp[id] != -1) { -+ snprintf(name, SYSCTL_ID_LEN, "cpu/cpu%d/temperature", id); -+ removeMonitor(name); -+ } -+ free(temp); -+ temp = NULL; -+ } -+ -+} -+ -+int -+updateCpuInfo(void) -+{ -+ int sid, id, tot_freq = 0, tot_temp = 0, freq_count = 0, temp_count = 0; -+ char name[SYSCTL_ID_LEN]; -+ -+ if (cp_time == NULL || freq == NULL || temp == NULL) -+ return (0); -+ -+ size_t len = sizeof(long) * CPUSTATES * cores; -+ sysctlbyname("kern.cp_times", cp_time, &len, NULL, 0); -+ for (sid = 0; sid < CPUSTATES; ++sid) -+ cpu_states[cores][sid] = 0; -+ for (id = 0; id < cores; ++id) { -+ percentages(CPUSTATES, cpu_states[id], cp_time[id], cp_old[id], cp_diff[id]); -+ for (sid = 0; sid < CPUSTATES; ++sid) -+ cpu_states[cores][sid] += cpu_states[id][sid]; -+ } -+ for (id = 0; id < cores; ++id) { -+ if (freq[id][0] != -1) { -+ len = sizeof(int); -+ snprintf(name, SYSCTL_ID_LEN, "dev.cpu.%d.freq", id); -+ freq[id][0] = 0; -+ if (!sysctlbyname(name, &freq[id][0], &len, NULL, 0)) { -+ freq_count += 1; -+ tot_freq += freq[id][0]; -+ } -+ } -+ if (temp[id] != -1) { -+ len = sizeof(int); -+ snprintf(name, SYSCTL_ID_LEN, "dev.cpu.%d.temperature", id); -+ temp[id] = 0.0; -+ if (!sysctlbyname(name, &temp[id], &len, NULL, 0)) { -+ temp_count += 1; -+ tot_temp += temp[id]; -+ } -+ } -+ } -+ freq[cores][0] = freq_count == 0 ? 0 : tot_freq * 100 / freq_count; -+ temp[cores] = temp_count == 0 ? 0.0 : tot_temp * 100 / temp_count; -+ -+ return (0); -+} -+ -+void -+printCPUUser(const char* cmd) -+{ -+ fprintf(CurrentClient, "%f\n", cpu_states[cores][CP_USER] / 10.0 / cores); -+} -+ -+void -+printCPUUserInfo(const char* cmd) -+{ -+ fprintf(CurrentClient, "CPU User Load\t0\t100\t%%\n"); -+} -+ -+void -+printCPUNice(const char* cmd) -+{ -+ fprintf(CurrentClient, "%f\n", cpu_states[cores][CP_NICE] / 10.0 / cores); -+} -+ -+void -+printCPUNiceInfo(const char* cmd) -+{ -+ fprintf(CurrentClient, "CPU Nice Load\t0\t100\t%%\n"); -+} -+ -+void -+printCPUSys(const char* cmd) -+{ -+ fprintf(CurrentClient, "%f\n", cpu_states[cores][CP_SYS] / 10.0 / cores); -+} -+ -+void -+printCPUSysInfo(const char* cmd) -+{ -+ fprintf(CurrentClient, "CPU System Load\t0\t100\t%%\n"); -+} -+ -+void -+printCPUTotalLoad(const char* cmd) -+{ -+ fprintf(CurrentClient, "%f\n", (cpu_states[cores][CP_SYS] + cpu_states[cores][CP_USER] + -+ cpu_states[cores][CP_NICE] + cpu_states[cores][CP_INTR]) / 10.0 / cores); -+} -+ -+void -+printCPUTotalLoadInfo(const char* cmd) -+{ -+ fprintf(CurrentClient, "CPU Total Load\t0\t100\t%%\n"); -+} -+ -+void -+printCPUIntr(const char* cmd) -+{ -+ fprintf(CurrentClient, "%f\n", cpu_states[cores][CP_INTR] / 10.0 / cores); -+} -+ -+void -+printCPUIntrInfo(const char* cmd) -+{ -+ fprintf(CurrentClient, "CPU Interrupt Load\t0\t100\t%%\n"); -+} -+ -+void -+printCPUIdle(const char* cmd) -+{ -+ fprintf(CurrentClient, "%f\n", cpu_states[cores][CP_IDLE] / 10.0 / cores); -+} -+ -+void -+printCPUIdleInfo(const char* cmd) -+{ -+ fprintf(CurrentClient, "CPU Idle Load\t0\t100\t%%\n"); -+} -+ -+void -+printCPUxUser(const char* cmd) -+{ -+ int id; -+ -+ sscanf(cmd + 7, "%d", &id); -+ fprintf(CurrentClient, "%0.1f\n", cpu_states[id][CP_USER] / 10.0); -+} -+ -+void -+printCPUxUserInfo(const char* cmd) -+{ -+ int id; -+ -+ sscanf(cmd + 7, "%d", &id); -+ fprintf(CurrentClient, "CPU%d User Load\t0\t100\t%%\n", id + 1); -+} -+ -+void -+printCPUxNice(const char* cmd) -+{ -+ int id; -+ -+ sscanf(cmd + 7, "%d", &id); -+ fprintf(CurrentClient, "%0.1f\n", cpu_states[id][CP_NICE] / 10.0); -+} -+ -+void -+printCPUxNiceInfo(const char* cmd) -+{ -+ int id; -+ -+ sscanf(cmd + 7, "%d", &id); -+ fprintf(CurrentClient, "CPU%d Nice Load\t0\t100\t%%\n", id + 1); -+} -+ -+void -+printCPUxSys(const char* cmd) -+{ -+ int id; -+ -+ sscanf(cmd + 7, "%d", &id); -+ fprintf(CurrentClient, "%0.1f\n", cpu_states[id][CP_SYS] / 10.0); -+} -+ -+void -+printCPUxSysInfo(const char* cmd) -+{ -+ int id; -+ -+ sscanf(cmd + 7, "%d", &id); -+ fprintf(CurrentClient, "CPU%d System Load\t0\t100\t%%\n", id + 1); -+} -+ -+void -+printCPUxTotalLoad(const char* cmd) -+{ -+ int id; -+ -+ sscanf(cmd + 7, "%d", &id); -+ fprintf(CurrentClient, "%f\n", (cpu_states[id][CP_SYS] + cpu_states[id][CP_USER] + -+ cpu_states[id][CP_NICE] + cpu_states[id][CP_INTR]) / 10.0); -+} -+ -+void -+printCPUxTotalLoadInfo(const char* cmd) -+{ -+ int id; -+ -+ sscanf(cmd + 7, "%d", &id); -+ fprintf(CurrentClient, "CPU%d Total Load\t0\t100\t%%\n", id + 1); -+} -+ -+void -+printCPUxIntr(const char* cmd) -+{ -+ int id; -+ -+ sscanf(cmd + 7, "%d", &id); -+ fprintf(CurrentClient, "%0.1f\n", cpu_states[id][CP_INTR] / 10.0); -+} -+ -+void -+printCPUxIntrInfo(const char* cmd) -+{ -+ int id; -+ -+ sscanf(cmd + 7, "%d", &id); -+ fprintf(CurrentClient, "CPU%d Interrupt Load\t0\t100\t%%\n", id + 1); -+} -+ -+void -+printCPUxIdle(const char* cmd) -+{ -+ int id; -+ -+ sscanf(cmd + 7, "%d", &id); -+ fprintf(CurrentClient, "%0.1f\n", cpu_states[id][CP_IDLE] / 10.0); -+} -+ -+void -+printCPUxIdleInfo(const char* cmd) -+{ -+ int id; -+ -+ sscanf(cmd + 7, "%d", &id); -+ fprintf(CurrentClient, "CPU%d Idle Load\t0\t100\t%%\n", id + 1); -+} -+ -+void printCPUxClock(const char* cmd) -+{ -+ int id; -+ -+ sscanf(cmd + 7, "%d", &id); -+ fprintf(CurrentClient, "%d\n", freq[id][0]); -+} -+ -+void printCPUxClockInfo(const char* cmd) -+{ -+ int id; -+ -+ sscanf(cmd + 7, "%d", &id); -+ fprintf(CurrentClient, "CPU%d Clock Frequency\t%d\t%d\tMHz\n", id + 1, -+ freq[id][1], freq[id][2]); -+} -+ -+void printCPUClock(const char* cmd) -+{ -+ fprintf(CurrentClient, "%f\n", freq[cores][0] / 100.0); -+} -+ -+void printCPUClockInfo(const char* cmd) -+{ -+ fprintf(CurrentClient, "CPU Clock Frequency\t%d\t%d\tMHz\n", freq[cores][1], freq[cores][2]); -+} -+ -+void printCPUxTemperature(const char* cmd) -+{ -+ int id; -+ -+ sscanf(cmd + 7, "%d", &id); -+ fprintf(CurrentClient, "%0.1f\n", (temp[id] - 2732) / 10.0); -+} -+ -+void printCPUxTemperatureInfo(const char* cmd) -+{ -+ int id; -+ -+ sscanf(cmd + 7, "%d", &id); -+ fprintf(CurrentClient, "CPU%d Temperature\t0\t0\tC\n", id + 1); -+} -+ -+void printCPUTemperature(const char* cmd) -+{ -+ fprintf(CurrentClient, "%0.3f\n", (temp[cores] - 273200) / 1000.0); -+} -+ -+void printCPUTemperatureInfo(const char* cmd) -+{ -+ fprintf(CurrentClient, "CPU Temperature\t0\t0\tC\n"); -+} -+ -+void printNumCpus(const char* cmd) -+{ -+ fprintf(CurrentClient, "%d\n", cpus); -+} -+ -+void printNumCpusInfo(const char* cmd) -+{ -+ fprintf(CurrentClient, "Number of physical CPUs\t0\t%d\t\n", maxcpus); -+} -+ -+void printNumCores(const char* cmd) -+{ -+ fprintf(CurrentClient, "%d\n", cores); -+} -+ -+void printNumCoresInfo(const char* cmd) -+{ -+ fprintf(CurrentClient, "Total number of processor cores\t0\t%d\t\n", maxcpus); -+} -+ -+void get_mmfreq(int id, int* minfreq, int* maxfreq) -+{ -+ char buf[FREQ_LEVEL_BUFFER]; -+ char mid[SYSCTL_ID_LEN]; -+ size_t len = FREQ_LEVEL_BUFFER; -+ -+ *minfreq = 0; -+ *maxfreq = 0; -+ -+ snprintf(mid, sizeof(mid), "dev.cpu.%d.freq_levels", id); -+ if (!sysctlbyname(mid, buf, &len, NULL, 0)) -+ { -+ char *start = buf; -+ char *end; -+ -+ /* -+ * The string is ([[freq]]/[[num]] )*([[freq]]/[[num]] ), so -+ * for each frequency we get we must also skip over another -+ * set of numbers -+ */ -+ while (1) -+ { -+ // Get the first number -+ int number = strtol(start, &end, 10); -+ if (start == end) -+ break; -+ if (!*maxfreq) -+ *maxfreq = number; -+ else -+ *minfreq = number; -+ if (!*end) -+ break; -+ start = end + 1; -+ -+ // Skip over the next number -+ strtol(start, &end, 10); -+ if (start == end || !*end) -+ break; -+ start = end + 1; -+ } -+ } -+} -+ -+/* The part ripped from top... */ -+/* -+ * Top users/processes display for Unix -+ * Version 3 -+ * -+ * This program may be freely redistributed, -+ * but this entire comment MUST remain intact. -+ * -+ * Copyright (c) 1984, 1989, William LeFebvre, Rice University -+ * Copyright (c) 1989, 1990, 1992, William LeFebvre, Northwestern University -+ */ -+ -+/* -+ * percentages(cnt, out, new, old, diffs) - calculate percentage change -+ * between array "old" and "new", putting the percentages i "out". -+ * "cnt" is size of each array and "diffs" is used for scratch space. -+ * The array "old" is updated on each call. -+ * The routine assumes modulo arithmetic. This function is especially -+ * useful on BSD mchines for calculating cpu state percentages. -+ */ -+long percentages(int cnt, long *out, long *new, long *old, long *diffs) -+{ -+ int i; -+ long change; -+ long total_change; -+ long *dp; -+ long half_total; -+ -+ /* initialization */ -+ total_change = 0; -+ dp = diffs; -+ -+ /* calculate changes for each state and the overall change */ -+ for (i = 0; i < cnt; i++) -+ { -+ if ((change = *new - *old) < 0) -+ { -+ /* this only happens when the counter wraps */ -+ change = (int) -+ ((unsigned long)*new-(unsigned long)*old); -+ } -+ total_change += (*dp++ = change); -+ *old++ = *new++; -+ } -+ -+ /* avoid divide by zero potential */ -+ if (total_change == 0) -+ { -+ total_change = 1; -+ } -+ -+ /* calculate percentages based on overall change, rounding up */ -+ half_total = total_change / 2l; -+ -+ /* Do not divide by 0. Causes Floating point exception */ -+ for (i = 0; i < cnt; i++) -+ { -+ *out++ = (int)((*diffs++ * 1000 + half_total) / total_change); -+ } -+ -+ /* return the total in case the caller wants to use it */ -+ return(total_change); -+} diff --git a/sysutils/ksysguardd/files/patch-FreeBSD__cpuinfo.h b/sysutils/ksysguardd/files/patch-FreeBSD__cpuinfo.h deleted file mode 100644 index c560d454da71..000000000000 --- a/sysutils/ksysguardd/files/patch-FreeBSD__cpuinfo.h +++ /dev/null @@ -1,77 +0,0 @@ ---- FreeBSD/cpuinfo.h 1970-01-01 02:00:00.000000000 +0200 -+++ FreeBSD/cpuinfo.h 2011-01-03 22:13:03.000000000 +0200 -@@ -0,0 +1,74 @@ -+/* -+ KSysGuard, the KDE System Guard -+ -+ Copyright (c) 1999 Chris Schlaeger <cs@kde.org> -+ Copyright (c) 2010 David Naylor <naylor.b.david@gmail.com> -+ -+ 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -+ -+*/ -+ -+#ifndef _cpuinfo_h_ -+#define _cpuinfo_h_ -+ -+struct SensorModul; -+ -+void initCpuInfo(struct SensorModul*); -+void exitCpuInfo(void); -+ -+int updateCpuInfo(void); -+ -+void printCPUUser(const char* cmd); -+void printCPUUserInfo(const char* cmd); -+void printCPUNice(const char* cmd); -+void printCPUNiceInfo(const char* cmd); -+void printCPUSys(const char* cmd); -+void printCPUSysInfo(const char* cmd); -+void printCPUTotalLoad(const char* cmd); -+void printCPUTotalLoadInfo(const char* cmd); -+void printCPUIntr(const char* cmd); -+void printCPUIntrInfo(const char* cmd); -+void printCPUIdle(const char* cmd); -+void printCPUIdleInfo(const char* cmd); -+void printCPUxUser(const char* cmd); -+void printCPUxUserInfo(const char* cmd); -+void printCPUxNice(const char* cmd); -+void printCPUxNiceInfo(const char* cmd); -+void printCPUxSys(const char* cmd); -+void printCPUxSysInfo(const char* cmd); -+void printCPUxTotalLoad(const char* cmd); -+void printCPUxTotalLoadInfo(const char* cmd); -+void printCPUxIntr(const char* cmd); -+void printCPUxIntrInfo(const char* cmd); -+void printCPUxIdle(const char* cmd); -+void printCPUxIdleInfo(const char* cmd); -+ -+void printCPUxClock(const char* cmd); -+void printCPUxClockInfo(const char* cmd); -+void printCPUClock(const char* cmd); -+void printCPUClockInfo(const char* cmd); -+ -+void printCPUxTemperature(const char* cmd); -+void printCPUxTemperatureInfo(const char* cmd); -+void printCPUTemperature(const char* cmd); -+void printCPUTemperatureInfo(const char* cmd); -+ -+void printNumCpus(const char* cmd); -+void printNumCpusInfo(const char* cmd); -+ -+void printNumCores(const char* cmd); -+void printNumCoresInfo(const char* cmd); -+ -+#endif /* _cpuinfo_h_ */ diff --git a/sysutils/ksysguardd/files/patch-FreeBSD__diskstat.c b/sysutils/ksysguardd/files/patch-FreeBSD__diskstat.c deleted file mode 100644 index 7f904b4ec4f3..000000000000 --- a/sysutils/ksysguardd/files/patch-FreeBSD__diskstat.c +++ /dev/null @@ -1,297 +0,0 @@ ---- FreeBSD/diskstat.c 2011-03-17 20:50:04.000000000 +0200 -+++ FreeBSD/diskstat.c 2011-02-19 23:24:28.000000000 +0200 -@@ -19,8 +19,6 @@ - - */ - --#include <config-workspace.h> -- - #include <stdio.h> - #include <stdlib.h> - #include <string.h> -@@ -43,8 +41,19 @@ - long bfree; - long bused; - int bused_percent; -+ long bsize; -+ long files; -+ long ffree; -+ long fused; -+ int fused_percent; - } DiskInfo; - -+#define BLK2KB(disk_info, prop) \ -+ (disk_info->prop * (disk_info->bsize / 1024)) -+ -+#define MNTPNT_NAME(disk_info) \ -+ (strcmp(disk_info->mntpnt, "/root") ? disk_info->mntpnt : "/") -+ - static CONTAINER DiskStatList = 0; - static struct SensorModul* DiskStatSM; - -@@ -96,6 +105,12 @@ - registerMonitor(monitor, "integer", printDiskStatFree, printDiskStatFreeInfo, DiskStatSM); - snprintf(monitor, sizeof(monitor), "partitions%s/filllevel", disk_info->mntpnt); - registerMonitor(monitor, "integer", printDiskStatPercent, printDiskStatPercentInfo, DiskStatSM); -+ snprintf(monitor, sizeof(monitor), "partitions%s/usedinode", disk_info->mntpnt); -+ registerMonitor(monitor, "integer", printDiskStatIUsed, printDiskStatIUsedInfo, DiskStatSM); -+ snprintf(monitor, sizeof(monitor), "partitions%s/freeinode", disk_info->mntpnt); -+ registerMonitor(monitor, "integer", printDiskStatIFree, printDiskStatIFreeInfo, DiskStatSM); -+ snprintf(monitor, sizeof(monitor), "partitions%s/inodelevel", disk_info->mntpnt); -+ registerMonitor(monitor, "integer", printDiskStatIPercent, printDiskStatIPercentInfo, DiskStatSM); - } - } - -@@ -123,6 +138,12 @@ - removeMonitor(monitor); - snprintf(monitor, sizeof(monitor), "partitions%s/filllevel", disk_info->mntpnt); - removeMonitor(monitor); -+ snprintf(monitor, sizeof(monitor), "partitions%s/usedinode", disk_info->mntpnt); -+ removeMonitor(monitor); -+ snprintf(monitor, sizeof(monitor), "partitions%s/freeinode", disk_info->mntpnt); -+ removeMonitor(monitor); -+ snprintf(monitor, sizeof(monitor), "partitions%s/inodelevel", disk_info->mntpnt); -+ removeMonitor(monitor); - } - - destr_ctnr(DiskStatList, free); -@@ -132,7 +153,7 @@ - { - struct statfs *fs_info; - struct statfs fs; -- float percent; -+ float percent, fpercent; - int i, mntcount; - DiskInfo *disk_info; - -@@ -144,29 +165,33 @@ - - for (i = 0; i < mntcount; i++) { - fs = fs_info[i]; -- if (strcmp(fs.f_fstypename, "procfs") && strcmp(fs.f_fstypename, "devfs") && strcmp(fs.f_fstypename, "devfs")) { -+ if (strcmp(fs.f_fstypename, "procfs") && strcmp(fs.f_fstypename, "devfs") && strcmp(fs.f_fstypename, "linprocfs")) { - if ( fs.f_blocks != 0 ) -- { -- percent = (((float)fs.f_blocks - (float)fs.f_bfree)*100.0/(float)fs.f_blocks); -- } -+ percent = (((float)fs.f_blocks - (float)fs.f_bfree)*100.0/(float)fs.f_blocks); - else -- percent = 0; -- if ((disk_info = (DiskInfo *)malloc(sizeof(DiskInfo))) == NULL) { -+ percent = 0; -+ if (fs.f_files != 0) -+ fpercent = (((float)fs.f_files - (float)fs.f_ffree)*100.0/(float)fs.f_files); -+ else -+ fpercent = 0; -+ if ((disk_info = (DiskInfo *)malloc(sizeof(DiskInfo))) == NULL) - continue; -- } - memset(disk_info, 0, sizeof(DiskInfo)); - strlcpy(disk_info->device, fs.f_mntfromname, sizeof(disk_info->device)); -- if (!strcmp(fs.f_mntonname, "/")) { -+ if (!strcmp(fs.f_mntonname, "/")) - strncpy(disk_info->mntpnt, "/root", 6); -- } else { -+ else - strlcpy(disk_info->mntpnt, fs.f_mntonname, sizeof(disk_info->mntpnt)); -- } - disk_info->blocks = fs.f_blocks; - disk_info->bfree = fs.f_bfree; - disk_info->bused = (fs.f_blocks - fs.f_bfree); - disk_info->bused_percent = (int)percent; -- -+ disk_info->bsize = fs.f_bsize; - push_ctnr(DiskStatList, disk_info); -+ disk_info->files = fs.f_files; -+ disk_info->ffree = fs.f_ffree; -+ disk_info->fused = fs.f_files - fs.f_ffree; -+ disk_info->fused_percent = (int)fpercent; - } - } - -@@ -178,13 +203,17 @@ - DiskInfo* disk_info; - - for (disk_info = first_ctnr(DiskStatList); disk_info; disk_info = next_ctnr(DiskStatList)) { -- fprintf(CurrentClient, "%s\t%ld\t%ld\t%ld\t%d\t%s\n", -+ fprintf(CurrentClient, "%s\t%ld\t%ld\t%ld\t%d\t%ld\t%ld\t%ld\t%d\t%s\n", - disk_info->device, -- disk_info->blocks, -- disk_info->bused, -- disk_info->bfree, -+ BLK2KB(disk_info, blocks), -+ BLK2KB(disk_info, bused), -+ BLK2KB(disk_info, bfree), - disk_info->bused_percent, -- disk_info->mntpnt); -+ disk_info->files, -+ disk_info->fused, -+ disk_info->ffree, -+ disk_info->fused_percent, -+ MNTPNT_NAME(disk_info)); - } - - fprintf(CurrentClient, "\n"); -@@ -192,7 +221,7 @@ - - void printDiskStatInfo(const char* cmd) - { -- fprintf(CurrentClient, "Device\tBlocks\tUsed\tAvailable\tUsed %%\tMountPoint\nM\tD\tD\tD\td\ts\n"); -+ fprintf(CurrentClient, "Device\tCapacity\tUsed\tAvailable\tUsed %%\tInodes\tUsed Inodes\tFree Inodes\tInodes %%\tMountPoint\nM\tKB\tKB\tKB\td\td\td\td\td\ts\n"); - } - - void printDiskStatUsed(const char* cmd) -@@ -202,7 +231,8 @@ - - for (disk_info = first_ctnr(DiskStatList); disk_info; disk_info = next_ctnr(DiskStatList)) { - if (!strcmp(mntpnt, disk_info->mntpnt)) { -- fprintf(CurrentClient, "%ld\n", disk_info->bused); -+ fprintf(CurrentClient, "%ld\n", BLK2KB(disk_info, bused)); -+ return; - } - } - -@@ -211,7 +241,16 @@ - - void printDiskStatUsedInfo(const char* cmd) - { -- fprintf(CurrentClient, "Used Blocks\t0\t-\tBlocks\n"); -+ DiskInfo* disk_info; -+ char *mntpnt = (char *)getMntPnt(cmd); -+ -+ for (disk_info = first_ctnr(DiskStatList); disk_info; disk_info = next_ctnr(DiskStatList)) { -+ if (!strcmp(mntpnt, disk_info->mntpnt)) { -+ fprintf(CurrentClient, "Used Space (%s)\t0\t%ld\tKB\n", MNTPNT_NAME(disk_info), BLK2KB(disk_info, blocks)); -+ return; -+ } -+ } -+ fprintf(CurrentClient, "Used Space (%s)\t0\t-\tKB\n", mntpnt); - } - - void printDiskStatFree(const char* cmd) -@@ -221,7 +260,8 @@ - - for (disk_info = first_ctnr(DiskStatList); disk_info; disk_info = next_ctnr(DiskStatList)) { - if (!strcmp(mntpnt, disk_info->mntpnt)) { -- fprintf(CurrentClient, "%ld\n", disk_info->bfree); -+ fprintf(CurrentClient, "%ld\n", BLK2KB(disk_info, bfree)); -+ return; - } - } - -@@ -230,7 +270,16 @@ - - void printDiskStatFreeInfo(const char* cmd) - { -- fprintf(CurrentClient, "Free Blocks\t0\t-\tBlocks\n"); -+ DiskInfo* disk_info; -+ char *mntpnt = (char *)getMntPnt(cmd); -+ -+ for (disk_info = first_ctnr(DiskStatList); disk_info; disk_info = next_ctnr(DiskStatList)) { -+ if (!strcmp(mntpnt, disk_info->mntpnt)) { -+ fprintf(CurrentClient, "Free Space (%s)\t0\t%ld\tKB\n", MNTPNT_NAME(disk_info), BLK2KB(disk_info, blocks)); -+ return; -+ } -+ } -+ fprintf(CurrentClient, "Free Space (%s)\t0\t-\tKB\n", mntpnt); - } - - void printDiskStatPercent(const char* cmd) -@@ -241,6 +290,7 @@ - for (disk_info = first_ctnr(DiskStatList); disk_info; disk_info = next_ctnr(DiskStatList)) { - if (!strcmp(mntpnt, disk_info->mntpnt)) { - fprintf(CurrentClient, "%d\n", disk_info->bused_percent); -+ return; - } - } - -@@ -249,5 +299,88 @@ - - void printDiskStatPercentInfo(const char* cmd) - { -- fprintf(CurrentClient, "Used Blocks\t0\t100\t%%\n"); -+ char *mntpnt = (char *)getMntPnt(cmd); -+ -+ fprintf(CurrentClient, "Used Space (%s)\t0\t100\t%%\n", mntpnt); -+} -+ -+void printDiskStatIUsed(const char* cmd) -+{ -+ DiskInfo* disk_info; -+ char *mntpnt = (char *)getMntPnt(cmd); -+ -+ for (disk_info = first_ctnr(DiskStatList); disk_info; disk_info = next_ctnr(DiskStatList)) { -+ if (!strcmp(mntpnt, disk_info->mntpnt)) { -+ fprintf(CurrentClient, "%ld\n", disk_info->fused); -+ return; -+ } -+ } -+ -+ fprintf(CurrentClient, "\n"); - } -+ -+void printDiskStatIUsedInfo(const char* cmd) -+{ -+ DiskInfo* disk_info; -+ char *mntpnt = (char *)getMntPnt(cmd); -+ -+ for (disk_info = first_ctnr(DiskStatList); disk_info; disk_info = next_ctnr(DiskStatList)) { -+ if (!strcmp(mntpnt, disk_info->mntpnt)) { -+ fprintf(CurrentClient, "Used Inodes (%s)\t0\t%ld\tKB\n", MNTPNT_NAME(disk_info), disk_info->files); -+ return; -+ } -+ } -+ fprintf(CurrentClient, "Used Inodes(%s)\t0\t-\tKB\n", mntpnt); -+} -+ -+void printDiskStatIFree(const char* cmd) -+{ -+ DiskInfo* disk_info; -+ char *mntpnt = (char *)getMntPnt(cmd); -+ -+ for (disk_info = first_ctnr(DiskStatList); disk_info; disk_info = next_ctnr(DiskStatList)) { -+ if (!strcmp(mntpnt, disk_info->mntpnt)) { -+ fprintf(CurrentClient, "%ld\n", disk_info->ffree); -+ return; -+ } -+ } -+ -+ fprintf(CurrentClient, "\n"); -+} -+ -+void printDiskStatIFreeInfo(const char* cmd) -+{ -+ DiskInfo* disk_info; -+ char *mntpnt = (char *)getMntPnt(cmd); -+ -+ for (disk_info = first_ctnr(DiskStatList); disk_info; disk_info = next_ctnr(DiskStatList)) { -+ if (!strcmp(mntpnt, disk_info->mntpnt)) { -+ fprintf(CurrentClient, "Free Inodes (%s)\t0\t%ld\tKB\n", MNTPNT_NAME(disk_info), disk_info->files); -+ return; -+ } -+ } -+ fprintf(CurrentClient, "Free Inodes (%s)\t0\t-\tKB\n", mntpnt); -+} -+ -+void printDiskStatIPercent(const char* cmd) -+{ -+ DiskInfo* disk_info; -+ char *mntpnt = (char *)getMntPnt(cmd); -+ -+ for (disk_info = first_ctnr(DiskStatList); disk_info; disk_info = next_ctnr(DiskStatList)) { -+ if (!strcmp(mntpnt, disk_info->mntpnt)) { -+ fprintf(CurrentClient, "%d\n", disk_info->fused_percent); -+ return; -+ } -+ } -+ -+ fprintf(CurrentClient, "\n"); -+} -+ -+void printDiskStatIPercentInfo(const char* cmd) -+{ -+ char *mntpnt = (char *)getMntPnt(cmd); -+ -+ fprintf(CurrentClient, "Used Inodes (%s)\t0\t100\t%%\n", mntpnt); -+} -+ diff --git a/sysutils/ksysguardd/files/patch-FreeBSD__diskstat.h b/sysutils/ksysguardd/files/patch-FreeBSD__diskstat.h deleted file mode 100644 index e805deca0bfc..000000000000 --- a/sysutils/ksysguardd/files/patch-FreeBSD__diskstat.h +++ /dev/null @@ -1,14 +0,0 @@ ---- FreeBSD/diskstat.h 2011-03-17 20:50:04.000000000 +0200 -+++ FreeBSD/diskstat.h 2011-02-19 23:17:29.000000000 +0200 -@@ -38,4 +38,11 @@ - void printDiskStatPercent(const char* cmd); - void printDiskStatPercentInfo(const char* cmd); - -+void printDiskStatIUsed(const char* cmd); -+void printDiskStatIUsedInfo(const char* cmd); -+void printDiskStatIFree(const char* cmd); -+void printDiskStatIFreeInfo(const char* cmd); -+void printDiskStatIPercent(const char* cmd); -+void printDiskStatIPercentInfo(const char* cmd); -+ - #endif diff --git a/sysutils/ksysguardd/files/patch-FreeBSD__logfile.c b/sysutils/ksysguardd/files/patch-FreeBSD__logfile.c deleted file mode 100644 index a2a172a3ba65..000000000000 --- a/sysutils/ksysguardd/files/patch-FreeBSD__logfile.c +++ /dev/null @@ -1,11 +0,0 @@ ---- FreeBSD/logfile.c 2011-03-17 20:50:04.000000000 +0200 -+++ FreeBSD/logfile.c 2011-01-30 10:24:23.000000000 +0200 -@@ -79,8 +79,6 @@ - { - char line[1024]; - unsigned long id; -- int i; -- char ch; - LogFileEntry *entry; - - sscanf(cmd, "%*s %lu", &id); diff --git a/sysutils/ksysguardd/files/patch-FreeBSD__netdev.c b/sysutils/ksysguardd/files/patch-FreeBSD__netdev.c deleted file mode 100644 index 2ad65b25475e..000000000000 --- a/sysutils/ksysguardd/files/patch-FreeBSD__netdev.c +++ /dev/null @@ -1,11 +0,0 @@ ---- FreeBSD/netdev.c 2011-03-17 20:50:04.000000000 +0200 -+++ FreeBSD/netdev.c 2010-11-08 17:54:42.000000000 +0200 -@@ -18,8 +18,6 @@ - - */ - --#include <config-workspace.h> -- - #include <sys/types.h> - #include <sys/socket.h> - #include <sys/sysctl.h> diff --git a/sysutils/ksysguardd/files/patch-FreeBSD__stat.c b/sysutils/ksysguardd/files/patch-FreeBSD__stat.c deleted file mode 100644 index 7f8d6dc63898..000000000000 --- a/sysutils/ksysguardd/files/patch-FreeBSD__stat.c +++ /dev/null @@ -1,382 +0,0 @@ ---- FreeBSD/stat.c 1970-01-01 02:00:00.000000000 +0200 -+++ FreeBSD/stat.c 2011-02-10 15:37:53.000000000 +0200 -@@ -0,0 +1,379 @@ -+/* -+ KSysGuard, the KDE System Guard -+ -+ Copyright (c) 2011 David Naylor <naylor.b.david@gmail.com> -+ -+ This program is free software; you can redistribute it and/or -+ modify it under the terms of version 2 of the GNU General Public -+ License as published by the Free Software Foundation. -+ -+ 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -+*/ -+ -+/* -+ * TODO -+ * - stray irq -+ * - cpu*:timer -+ */ -+ -+#include "stat.h" -+ -+#include <errno.h> -+#include <sys/types.h> -+#include <sys/sysctl.h> -+#include <stdio.h> -+#include <stdlib.h> -+#include <string.h> -+ -+#include "Command.h" -+ -+#define IRQ_NAME 32 -+ -+char *sysctl_dynread(const char *); -+ -+static u_int context, context_last = 0; -+static u_int trap, trap_last = 0; -+static u_int syscall, syscall_last = 0; -+static u_int hardint, hardint_last = 0; -+static u_int softint, softint_last = 0; -+ -+static u_int intrcnt, nintr = 0, msi_offset = 0; -+static char **intrname = NULL, *intrnamebuf; -+static long *intr = NULL, *intr_last, *intr_current; -+static int *intr_map = NULL; -+ -+void initStat(struct SensorModul *sm) { -+ int irq, irq_len = 0, msi_len = 0; -+ size_t len = 0; -+ char name[IRQ_NAME], *cp; -+ -+ sysctlbyname("hw.intrcnt", NULL, &len, NULL, 0); -+ intrcnt = len / sizeof(unsigned long); -+ -+ if ((intr = malloc(intrcnt * 3 * sizeof (long))) == NULL) { -+ log_error("out of memory for intr"); -+ return; -+ } -+ intr_last = &intr[intrcnt]; -+ intr_current = &intr_last[intrcnt]; -+ -+ if ((intrname = malloc(intrcnt * sizeof(char *))) == NULL) { -+ log_error("out of memory for intrname"); -+ return; -+ } -+ -+ if ((intrnamebuf = sysctl_dynread("hw.intrnames")) == NULL) { -+ log_error("out of memory for intrnamebuf"); -+ return; -+ } -+ for (cp = intrnamebuf, irq = 0; irq < intrcnt; ++irq) { -+ char *nextcp; -+ for (nextcp = cp; *nextcp != '\0'; ++nextcp); -+ if (strncmp(cp, "irq", 3) == 0) { -+ long irq2; -+ sscanf(cp + 3, "%ld", &irq2); -+ if (irq2 > 255) -+ ++msi_len; -+ else -+ if (irq_len < irq2) -+ irq_len = irq2; -+ } else if (nextcp == cp) -+ intrcnt = irq; -+ cp = nextcp + 1; -+ } -+ if (msi_len) -+ msi_offset = 255 - irq_len; -+ nintr = irq_len + msi_len + 1; -+ if ((intr_map = malloc(nintr * sizeof(int))) == NULL) { -+ log_error("out of memory for intr_map"); -+ return; -+ } -+ -+ for (irq = 0; irq < nintr; ++irq) -+ intr_map[irq] = -1; -+ for (cp = intrnamebuf, irq = 0; irq < intrcnt; ++irq) { -+ char *nextcp; -+ for (nextcp = cp; *nextcp != '\0'; ++nextcp) -+ if (*nextcp == ' ' && (*(nextcp + 1) == ' ' || *(nextcp + 1) == '\0')) -+ *nextcp = '\0'; -+ intrname[irq] = cp; -+ if (strncmp(cp, "irq", 3) == 0) { -+ long irq2; -+ sscanf(cp + 3, "%ld", &irq2); -+ if (irq2 < 256) -+ intr_map[irq2] = irq; -+ else -+ intr_map[irq2 - msi_offset] = irq; -+ strncpy(cp, "IRQ", 3); -+ for(cp = cp + 4; *cp != ':'; ++cp); -+ for(; ; ++cp) -+ if (*cp == '\0') -+ break; -+ else if (*cp == ':') -+ if (*(cp + 1) == '\0') -+ *cp = '\0'; -+ else -+ *cp = '('; -+ else if (*(cp + 1) == '\0') -+ *cp = ')'; -+ else -+ *cp = *(cp + 1); -+ } else if (nextcp == cp) -+ intrcnt = irq; -+ cp = nextcp + 1; -+ } -+ -+ registerMonitor("cpu/interrupts/hardint", "integer", printHardInt, printHardIntInfo, sm); -+ registerMonitor("cpu/interrupts/softint", "integer", printSoftInt, printSoftIntInfo, sm); -+ registerLegacyMonitor("cpu/interrupts/int00", "integer", printHardInt, printHardIntInfo, sm); -+ -+ for (irq = 0; irq < nintr; ++irq) { -+ if (intr_map[irq] == -1) -+ continue; -+ if (irq > 255 - msi_offset) -+ snprintf(name, IRQ_NAME, "cpu/interrupts/int%03d", irq + msi_offset); -+ else -+ snprintf(name, IRQ_NAME, "cpu/interrupts/int%02d", irq + 1); -+ registerMonitor(name, "integer", printInterruptx, printInterruptxInfo, sm); -+ } -+ -+ registerMonitor("cpu/context", "integer", printContext, printContextInfo, sm); -+ registerMonitor("cpu/trap", "integer", printTrap, printTrapInfo, sm); -+ registerMonitor("cpu/syscall", "integer", printSyscall, printSyscallInfo, sm); -+ -+ updateStat(); -+} -+ -+void exitStat(void) { -+ int irq; -+ char name[IRQ_NAME]; -+ -+ if (intr != NULL) { -+ free(intr); -+ intr = NULL; -+ intr_current = NULL; -+ intr_last = NULL; -+ } -+ -+ if (intrname != NULL) { -+ free(intrname); -+ intrname = NULL; -+ } -+ -+ if (intrnamebuf != NULL) { -+ if (intr_map != NULL) { -+ removeMonitor("cpu/interrupts/hardint"); -+ removeMonitor("cpu/interrupts/softint"); -+ removeMonitor("cpu/interrupts/int00"); -+ -+ for (irq = 0; irq < nintr; ++irq) { -+ if (intr_map[irq] == -1) -+ continue; -+ if (irq > 255 - msi_offset) -+ snprintf(name, IRQ_NAME, "cpu/interrupts/int%03d", irq + msi_offset); -+ else -+ snprintf(name, IRQ_NAME, "cpu/interrupts/int%02d", irq + 1); -+ removeMonitor(name); -+ } -+ -+ removeMonitor("cpu/context"); -+ removeMonitor("cpu/trap"); -+ removeMonitor("cpu/syscall"); -+ -+ free(intr_map); -+ intr_map = NULL; -+ } -+ -+ free(intrnamebuf); -+ intrnamebuf = NULL; -+ } -+} -+ -+int updateStat(void) { -+ int irq; -+ size_t len; -+ unsigned int current; -+ long *swap; -+ -+#define GETSYSCTL(mib, var) \ -+ len = sizeof(var); \ -+ sysctlbyname(mib, &var, &len, NULL, 0); -+#define GETDIFFSYSCTL(mib, var) \ -+ GETSYSCTL(mib, current); \ -+ var = current - var##_last; \ -+ var##_last = current; -+ -+ GETDIFFSYSCTL("vm.stats.sys.v_swtch", context); -+ GETDIFFSYSCTL("vm.stats.sys.v_trap", trap); -+ GETDIFFSYSCTL("vm.stats.sys.v_syscall", syscall); -+ GETDIFFSYSCTL("vm.stats.sys.v_intr", hardint); -+ GETDIFFSYSCTL("vm.stats.sys.v_soft", softint); -+ -+ len = sizeof(long) * intrcnt; -+ sysctlbyname("hw.intrcnt", intr_current, &len, NULL, 0); -+ for (irq = 0; irq < nintr; ++irq) -+ if (intr_map[irq] != -1) -+ intr[intr_map[irq]] = intr_current[intr_map[irq]] - intr_last[intr_map[irq]]; -+ swap = intr_current; -+ intr_current = intr_last; -+ intr_last = swap; -+ -+ return (0); -+ -+#undef GETDIFFSYSCTL -+#undef GETSYSCTL -+} -+ -+void printHardInt(const char *cmd) { -+ fprintf(CurrentClient, "%d\n", hardint); -+} -+ -+void printHardIntInfo(const char *cmd) { -+ fprintf(CurrentClient, "Hardware Interrupts\t0\t0\t1/s\n"); -+} -+ -+void printSoftInt(const char *cmd) { -+ fprintf(CurrentClient, "%d\n", softint); -+} -+ -+void printSoftIntInfo(const char *cmd) { -+ fprintf(CurrentClient, "Software Interrupts\t0\t0\t1/s\n"); -+} -+ -+void printInterruptx(const char *cmd) { -+ int irq; -+ -+ sscanf(cmd + 18, "%d", &irq); -+ if (irq > 255 - msi_offset) -+ irq -= msi_offset - 1; -+ fprintf(CurrentClient, "%ld\n", intr[intr_map[irq - 1]]); -+} -+ -+void printInterruptxInfo(const char *cmd) { -+ int irq; -+ -+ sscanf(cmd + 18, "%d", &irq); -+ if (irq > 255 - msi_offset) -+ irq -= msi_offset - 1; -+ fprintf(CurrentClient, "%s\t0\t0\t1/s\n", intrname[intr_map[irq - 1]]); -+} -+ -+void printContext(const char *cmd) { -+ fprintf(CurrentClient, "%u\n", context); -+} -+ -+void printContextInfo(const char *cmd) { -+ fprintf(CurrentClient, "Context switches\t0\t0\t1/s\n"); -+} -+ -+void printTrap(const char *cmd) { -+ fprintf(CurrentClient, "%u\n", trap); -+} -+ -+void printTrapInfo(const char *cmd) { -+ fprintf(CurrentClient, "Traps\t0\t0\t1/s\n"); -+} -+ -+void printSyscall(const char *cmd) { -+ fprintf(CurrentClient, "%u\n", syscall); -+} -+ -+void printSyscallInfo(const char *cmd) { -+ fprintf(CurrentClient, "System Calls\t0\t0\t1/s\n"); -+} -+ -+/* -+ * Taken from http://cvsweb.freebsd.org/src/usr.bin/systat/fetch.c -+ */ -+/*- -+ * Copyright (c) 1983, 1989, 1992, 1993 -+ * The Regents of the University of California. All rights reserved. -+ * -+ * Redistribution and use in source and binary forms, with or without -+ * modification, are permitted provided that the following conditions -+ * are met: -+ * 1. Redistributions of source code must retain the above copyright -+ * notice, this list of conditions and the following disclaimer. -+ * 2. Redistributions in binary form must reproduce the above copyright -+ * notice, this list of conditions and the following disclaimer in the -+ * documentation and/or other materials provided with the distribution. -+ * 4. Neither the name of the University nor the names of its contributors -+ * may be used to endorse or promote products derived from this software -+ * without specific prior written permission. -+ * -+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND -+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -+ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE -+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -+ * SUCH DAMAGE. -+ */ -+/* -+ * Read sysctl data with variable size. Try some times (with increasing -+ * buffers), fail if still too small. -+ * This is needed sysctls with possibly raplidly increasing data sizes, -+ * but imposes little overhead in the case of constant sizes. -+ * Returns NULL on error, or a pointer to freshly malloc()'ed memory that holds -+ * the requested data. -+ * If szp is not NULL, the size of the returned data will be written into *szp. -+ */ -+ -+/* Some defines: Number of tries. */ -+#define SD_NTRIES 10 -+/* Percent of over-allocation (initial) */ -+#define SD_MARGIN 10 -+/* -+ * Factor for over-allocation in percent (the margin is increased by this on -+ * any failed try). -+ */ -+#define SD_FACTOR 50 -+/* Maximum supported MIB depth */ -+#define SD_MAXMIB 16 -+char * -+sysctl_dynread(const char *n) -+{ -+ char *rv = NULL; -+ int mib[SD_MAXMIB]; -+ size_t mibsz = SD_MAXMIB; -+ size_t mrg = SD_MARGIN; -+ size_t sz; -+ int i; -+ -+ /* cache the MIB */ -+ if (sysctlnametomib(n, mib, &mibsz) == -1) { -+ return NULL; -+ } -+ for (i = 0; i < SD_NTRIES; i++) { -+ /* get needed buffer size */ -+ if (sysctl(mib, mibsz, NULL, &sz, NULL, 0) == -1) -+ break; -+ sz += sz * mrg / 100; -+ if ((rv = (char *)malloc(sz)) == NULL) -+ return NULL; -+ if (sysctl(mib, mibsz, rv, &sz, NULL, 0) == -1) { -+ free(rv); -+ rv = NULL; -+ if (errno == ENOMEM) { -+ mrg += mrg * SD_FACTOR / 100; -+ } else -+ break; -+ } else { -+ /* success */ -+ break; -+ } -+ } -+ -+ return rv; -+} diff --git a/sysutils/ksysguardd/files/patch-FreeBSD__stat.h b/sysutils/ksysguardd/files/patch-FreeBSD__stat.h deleted file mode 100644 index def01e07c6f0..000000000000 --- a/sysutils/ksysguardd/files/patch-FreeBSD__stat.h +++ /dev/null @@ -1,52 +0,0 @@ ---- FreeBSD/stat.h 1970-01-01 02:00:00.000000000 +0200 -+++ FreeBSD/stat.h 2011-01-04 13:29:11.000000000 +0200 -@@ -0,0 +1,49 @@ -+/* -+ KSysGuard, the KDE System Guard -+ -+ Copyright (c) 2011 David Naylor <naylor.b.david@gmail.com> -+ -+ This program is free software; you can redistribute it and/or -+ modify it under the terms of version 2 of the GNU General Public -+ License as published by the Free Software Foundation. -+ -+ 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -+ -+*/ -+ -+#ifndef _stat_h_ -+#define _stat_h_ -+ -+struct SensorModul; -+ -+void initStat(struct SensorModul*); -+void exitStat(void); -+ -+int updateStat(void); -+ -+void printHardInt(const char *); -+void printHardIntInfo(const char *); -+ -+void printSoftInt(const char *); -+void printSoftIntInfo(const char *); -+ -+void printInterruptx(const char*); -+void printInterruptxInfo(const char*); -+ -+void printContext(const char*); -+void printContextInfo(const char*); -+ -+void printTrap(const char*); -+void printTrapInfo(const char*); -+ -+void printSyscall(const char*); -+void printSyscallInfo(const char*); -+ -+#endif /* _stat_h_ */ diff --git a/sysutils/ksysguardd/files/patch-FreeBSD__uptime.c b/sysutils/ksysguardd/files/patch-FreeBSD__uptime.c deleted file mode 100644 index 4c23f9d17ba3..000000000000 --- a/sysutils/ksysguardd/files/patch-FreeBSD__uptime.c +++ /dev/null @@ -1,51 +0,0 @@ ---- FreeBSD/uptime.c 1970-01-01 02:00:00.000000000 +0200 -+++ FreeBSD/uptime.c 2010-11-08 19:07:02.000000000 +0200 -@@ -0,0 +1,48 @@ -+/* -+ KSysGuard, the KDE System Guard -+ -+ Copyright (c) 2010 David Naylor <naylor.b.david@gmail.com> -+ -+ This program is free software; you can redistribute it and/or -+ modify it under the terms of version 2 or later of the GNU General Public -+ License as published by the Free Software Foundation. -+ -+ 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -+ -+*/ -+ -+#include <stdio.h> -+#include <time.h> -+ -+#include "Command.h" -+#include "ksysguardd.h" -+ -+#include "uptime.h" -+ -+void initUptime( struct SensorModul* sm ) { -+ registerMonitor( "system/uptime", "float", printUptime, printUptimeInfo, sm ); -+} -+ -+void exitUptime( void ) { -+ removeMonitor("system/uptime"); -+} -+ -+void printUptime( const char* cmd ) { -+ struct timespec tp; -+ float uptime = 0.; -+ -+ if (clock_gettime(CLOCK_UPTIME, &tp) != -1) -+ uptime = tp.tv_nsec / 1000000000.0 + tp.tv_sec; -+ fprintf( CurrentClient, "%f\n", uptime); -+} -+ -+void printUptimeInfo( const char* cmd ) { -+ fprintf( CurrentClient, "System uptime\t0\t0\ts\n" ); -+} diff --git a/sysutils/ksysguardd/files/patch-FreeBSD__uptime.h b/sysutils/ksysguardd/files/patch-FreeBSD__uptime.h deleted file mode 100644 index be4eecc1409f..000000000000 --- a/sysutils/ksysguardd/files/patch-FreeBSD__uptime.h +++ /dev/null @@ -1,36 +0,0 @@ ---- FreeBSD/uptime.h 1970-01-01 02:00:00.000000000 +0200 -+++ FreeBSD/uptime.h 2010-11-04 14:09:30.000000000 +0200 -@@ -0,0 +1,33 @@ -+/* -+ KSysGuard, the KDE System Guard -+ -+ Copyright (c) 2006 Greg Martyn <greg.martyn@gmail.com> -+ Copyright (c) 2010 David Naylor <naylor.b.david@gmail.com> -+ -+ This program is free software; you can redistribute it and/or -+ modify it under the terms of version 2 or later of the GNU General Public -+ License as published by the Free Software Foundation. -+ -+ 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -+ -+*/ -+ -+#ifndef _uptime_h_ -+#define _uptime_h_ -+ -+struct SensorModul; -+ -+void initUptime( struct SensorModul* ); -+void exitUptime( void ); -+ -+void printUptime( const char* cmd ); -+void printUptimeInfo( const char* cmd ); -+ -+#endif diff --git a/sysutils/ksysguardd/files/patch-ksysguardd.c b/sysutils/ksysguardd/files/patch-ksysguardd.c deleted file mode 100644 index f9e1f2be7ac7..000000000000 --- a/sysutils/ksysguardd/files/patch-ksysguardd.c +++ /dev/null @@ -1,18 +0,0 @@ ---- ksysguardd.c 2011-03-17 20:50:04.000000000 +0200 -+++ ksysguardd.c 2011-01-30 10:30:11.000000000 +0200 -@@ -392,6 +392,7 @@ - return highestFD; - } - -+#ifdef HAVE_SYS_INOTIFY_H - static void checkModules() - { - struct SensorModul *entry; -@@ -400,6 +401,7 @@ - if ( entry->checkCommand != NULL && entry->available ) - entry->checkCommand(); - } -+#endif - - static void handleSocketTraffic( int socketNo, const fd_set* fds ) - { diff --git a/sysutils/ksysguardd/files/patch-modules.h b/sysutils/ksysguardd/files/patch-modules.h deleted file mode 100644 index 840c5fb4a937..000000000000 --- a/sysutils/ksysguardd/files/patch-modules.h +++ /dev/null @@ -1,48 +0,0 @@ ---- modules.h 2011-03-17 20:50:04.000000000 +0200 -+++ modules.h 2011-01-28 10:05:57.000000000 +0200 -@@ -23,7 +23,6 @@ - #ifndef KSG_MODULES_H - #define KSG_MODULES_H - --#include <config-ksysguardd.h> - #include "Command.h" - #include "conf.h" - #include "ksysguardd.h" -@@ -49,16 +48,19 @@ - - #if defined(OSTYPE_FreeBSD) || defined(OSTYPE_DragonFly) - #include <grp.h> -+#include "acpi.h" - #ifdef __i386__ - #include "apm.h" - #endif --#include "CPU.h" -+#include "cpuinfo.h" - #include "diskstat.h" - #include "loadavg.h" - #include "logfile.h" - #include "Memory.h" - #include "netdev.h" - #include "ProcessList.h" -+#include "stat.h" -+#include "uptime.h" - #endif /* OSTYPE_FreeBSD */ - - #ifdef OSTYPE_Irix -@@ -134,6 +136,7 @@ - #endif /* OSTYPE_Linux */ - - #if defined OSTYPE_FreeBSD || defined OSTYPE_DragonFly -+ { "Acpi", initACPI, exitACPI, updateACPI, NULLVVFUNC, 0, NULLTIME }, - #ifdef __i386__ - { "Apm", initApm, exitApm, updateApm, NULLVVFUNC, 0, NULLTIME }, - #endif -@@ -144,6 +147,8 @@ - { "Memory", initMemory, exitMemory, updateMemory, NULLVVFUNC, 0, NULLTIME }, - { "NetDev", initNetDev, exitNetDev, updateNetDev, checkNetDev, 0, NULLTIME }, - { "ProcessList", initProcessList, exitProcessList, updateProcessList, NULLVVFUNC, 0, NULLTIME }, -+ { "Stat", initStat, exitStat, updateStat, NULLVVFUNC, 0, NULLTIME }, -+ { "Uptime", initUptime, exitUptime, NULLIVFUNC, NULLVVFUNC, 0, NULLTIME }, - #endif /* OSTYPE_FreeBSD */ - - #ifdef OSTYPE_Irix |