diff options
author | Denys Dmytriyenko <denis@denix.org> | 2009-03-17 14:32:59 -0400 |
---|---|---|
committer | Denys Dmytriyenko <denis@denix.org> | 2009-03-17 14:32:59 -0400 |
commit | 709c4d66e0b107ca606941b988bad717c0b45d9b (patch) | |
tree | 37ee08b1eb308f3b2b6426d5793545c38396b838 /recipes/matchbox-panel/matchbox-panel-0.9.2/system-monitor-crash-fix.patch | |
parent | fa6cd5a3b993f16c27de4ff82b42684516d433ba (diff) |
rename packages/ to recipes/ per earlier agreement
See links below for more details:
http://thread.gmane.org/gmane.comp.handhelds.openembedded/21326
http://thread.gmane.org/gmane.comp.handhelds.openembedded/21816
Signed-off-by: Denys Dmytriyenko <denis@denix.org>
Acked-by: Mike Westerhof <mwester@dls.net>
Acked-by: Philip Balister <philip@balister.org>
Acked-by: Khem Raj <raj.khem@gmail.com>
Acked-by: Marcin Juszkiewicz <hrw@openembedded.org>
Acked-by: Koen Kooi <koen@openembedded.org>
Acked-by: Frans Meulenbroeks <fransmeulenbroeks@gmail.com>
Diffstat (limited to 'recipes/matchbox-panel/matchbox-panel-0.9.2/system-monitor-crash-fix.patch')
-rw-r--r-- | recipes/matchbox-panel/matchbox-panel-0.9.2/system-monitor-crash-fix.patch | 195 |
1 files changed, 195 insertions, 0 deletions
diff --git a/recipes/matchbox-panel/matchbox-panel-0.9.2/system-monitor-crash-fix.patch b/recipes/matchbox-panel/matchbox-panel-0.9.2/system-monitor-crash-fix.patch new file mode 100644 index 0000000000..51c141db03 --- /dev/null +++ b/recipes/matchbox-panel/matchbox-panel-0.9.2/system-monitor-crash-fix.patch @@ -0,0 +1,195 @@ +--- matchbox-panel-0.9.2/applets/mb-applet-system-monitor.c.orig 2006-02-07 20:08:09.000000000 +0200 ++++ matchbox-panel-0.9.2/applets/mb-applet-system-monitor.c 2006-02-07 20:53:20.000000000 +0200 +@@ -37,6 +37,7 @@ + # define _(text) (text) + #endif + ++ + #ifdef MB_HAVE_PNG + #define IMG_EXT "png" + #else +@@ -66,8 +67,30 @@ + MBPixbufImage *ImgIcon = NULL, *ImgIconScaled = NULL, *ImgGraph = NULL; + + int GraphHeight = 0, GraphWidth = 0; +- + char *ThemeName; ++static int kernelver = 0; ++ ++/* returns 1 if the kernel version is 2.6, 0 otherwise */ ++int kernel_version(void) ++{ ++ float v_nr=0; ++ FILE *version; ++ ++ if ((version = fopen("/proc/version", "r")) == NULL) ++ { ++ fprintf(stderr, "mb-applet-system-monitor: failed to open /proc/version. Exiting\n"); ++ exit(1); ++ } ++ fscanf(version, "%*s %*s %f", &v_nr); ++ fclose(version); ++ ++ if (v_nr > 2.5) ++ return 1; ++ else ++ return 0; ++} ++ ++ + + /* returns current CPU load in percent, 0 to 100 */ + int system_cpu(void) +@@ -112,71 +135,86 @@ + + int system_memory(void) + { +- u_int64_t my_mem_used, my_mem_max; +- u_int64_t my_swap_max; +- +- static int mem_delay = 0; +- FILE *mem; +- static u_int64_t total, used, mfree, shared, buffers, cached, +- cache_total, cache_used; +- +- /* put this in permanent storage instead of stack */ +- static char not_needed[2048]; +- +- if (mem_delay-- <= 0) { +- if ((mem = fopen("/proc/meminfo", "r")) == NULL) ++ u_int64_t total, mfree, buffers, cached, used, shared, ++ cache_total, cache_free, cache_used, uneeded = 0; ++ ++ u_int64_t my_mem_used, my_mem_max; ++ u_int64_t my_swap_max; ++ ++ static int mem_delay = 0; ++ FILE *mem; ++ ++ /* put this in permanent storage instead of stack */ ++ static char not_needed[2048]; ++ ++ if (mem_delay-- <= 0) ++ { ++ if ((mem = fopen("/proc/meminfo", "r")) == NULL) + { + fprintf(stderr, "mb-applet-system-monitor: failed to open /proc/meminfo. Exiting.\n"); + exit(1); +- } +- +- +- +- fgets(not_needed, 2048, mem); +- +- /* +- total: used: free: shared: buffers: cached: +- */ +- +- fscanf(mem, "%*s %Ld %Ld %Ld %Ld %Ld %Ld", &total, &used, &mfree, +- &shared, &buffers, &cached); +- +- fscanf(mem, "%*s %Ld %Ld", &cache_total, &cache_used); +- +- fclose(mem); +- mem_delay = 25; +- +- /* calculate it */ +- my_mem_max = total; +- my_swap_max = cache_total; +- +- my_mem_used = cache_used + used - cached - buffers; +- +- /* No swap on ipaq +- if (my_mem_used > my_mem_max) { +- my_swap_used = my_mem_used - my_mem_max; +- my_mem_used = my_mem_max; +- } else { +- my_swap_used = 0; + } +- */ +- +- msd.mem_used = my_mem_used; +- msd.mem_max = my_mem_max; +- //msd.swap_used = my_swap_used; +- //msd.swap_max = my_swap_max; ++ ++ fgets(not_needed, 2048, mem); + +- msd.mem_percent = (100 * msd.mem_used) / msd.mem_max; +- //msd.swap_percent = (100 * msd.swap_used) / msd.swap_max; ++/*if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)*/ + +- /* memory info changed - update things */ +- return 1; +- } +- /* nothing new */ +- return 0; ++ if(kernelver) ++ { ++ rewind (mem); ++ ++ fscanf (mem, "%*s %Ld %*s", &total); ++ fscanf (mem, "%*s %Ld %*s", &mfree); ++ fscanf (mem, "%*s %Ld %*s", &buffers); ++ fscanf (mem, "%*s %Ld %*s", &cached); ++ fscanf (mem, "%*s %Ld %*s", &shared); ++ fscanf (mem, "%*s %Ld %*s", &used); ++ fscanf (mem, "%*s %Ld %*s", &uneeded); ++ fscanf (mem, "%*s %Ld %*s", &uneeded); ++ fscanf (mem, "%*s %Ld %*s", &uneeded); ++ fscanf (mem, "%*s %Ld %*s", &uneeded); ++ fscanf (mem, "%*s %Ld %*s", &uneeded); ++ fscanf (mem, "%*s %Ld %*s", &cache_total); ++ fscanf (mem, "%*s %Ld %*s", &cache_free); ++ ++ total = total * 1024; ++ mfree = mfree * 1024; ++ buffers = buffers * 1024; ++ cached = cached * 1024; ++ used = used * 1024; ++ shared = shared * 1024; ++ cache_total = cache_total * 1024; ++ cache_used = cache_total - (cache_free * 1024); ++ } ++else ++ { ++ /* ++ total: used: free: shared: buffers: cached: ++ */ ++ fscanf(mem, "%*s %Ld %Ld %Ld %Ld %Ld %Ld", &total, &used, &mfree, ++ &shared, &buffers, &cached); ++ fscanf(mem, "%*s %Ld %Ld", &cache_total, &cache_used); ++ } ++ ++ fclose(mem); ++ ++ mem_delay = 25; ++ ++ /* calculate it */ ++ my_mem_max = total; ++ my_swap_max = cache_total; ++ my_mem_used = cache_used + used - cached - buffers; ++ msd.mem_used = my_mem_used; ++ msd.mem_max = my_mem_max; ++ msd.mem_percent = (100 * msd.mem_used) / msd.mem_max; ++ ++ /* memory info changed - update things */ ++ return 1; ++ } ++ /* nothing new */ ++ return 0; + } + +- + void + paint_callback (MBTrayApp *app, Drawable drw ) + { +@@ -340,6 +378,8 @@ + &argc, + &argv ); + ++ kernelver = kernel_version(); ++ + msd.samples = 16; + + if (msd.load) { |