matchbox-panel 0.9.2: update system monitor patch
authorKoen Kooi <koen@openembedded.org>
Wed, 21 Dec 2005 10:41:59 +0000 (10:41 +0000)
committerOpenEmbedded Project <openembedded-devel@lists.openembedded.org>
Wed, 21 Dec 2005 10:41:59 +0000 (10:41 +0000)
packages/matchbox-panel/matchbox-panel-0.9.2/kernel2.6.patch
packages/matchbox-panel/matchbox-panel_0.9.2.bb

index 0cea666..f849c8a 100644 (file)
@@ -1,15 +1,24 @@
 --- matchbox-panel-0.9.2/applets/mb-applet-system-monitor.c.old        2005-03-20 18:43:31.000000000 +0100
-+++ matchbox-panel-0.9.2/applets/mb-applet-system-monitor.c    2005-12-19 22:50:54.000000000 +0100
-@@ -112,70 +112,165 @@
++++ matchbox-panel-0.9.2/applets/mb-applet-system-monitor.c    2005-12-21 10:24:18.000000000 +0100
+@@ -37,6 +37,11 @@
+ # define _(text) (text)
+ #endif
++#include <linux/version.h>
++#ifndef KERNEL_VERSION
++#define KERNEL_VERSION(a,b,c) (((a) << 16) | ((b) << 8) | (c))
++#endif
++
+ #ifdef MB_HAVE_PNG
+ #define IMG_EXT "png"
+ #else
+@@ -112,71 +117,148 @@
  
  int system_memory(void)
  {
 -    u_int64_t my_mem_used, my_mem_max;
 -    u_int64_t my_swap_max;
-+    FILE * osrelease;
-+    char kernelversion[90] = "0", kernelcut[90] = "0";
-+    int kernellength = 3;
+-
 -    static int mem_delay = 0;
 -    FILE *mem;
 -    static u_int64_t total, used, mfree, shared, buffers, cached,
 -        fprintf(stderr, "mb-applet-system-monitor: failed to open /proc/meminfo. Exiting.\n");
 -        exit(1);
 -      }
-+    osrelease = fopen("/proc/sys/kernel/osrelease","r");
-+    fscanf (osrelease, "%s", kernelversion);
-+    strncpy(kernelcut, kernelversion, kernellength);
+-
+-
+-
 -      fgets(not_needed, 2048, mem);
 -      
 -      /* 
 -      }
 -    /* nothing new */
 -    return 0;
--}
-+    if ((strcmp (kernelcut, "2.4")) == 0)
-+    {
-+        static u_int64_t total, used, mfree, shared, buffers, cached,
-+            cache_total, cache_used;
-+
-+        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;
-+
-+            msd.mem_percent = (100 * msd.mem_used) / msd.mem_max;
-+            //msd.swap_percent = (100 * msd.swap_used) / msd.swap_max;
-+
-+            /* memory info changed - update things */
-+            return 1;
-+        }
-+        /* nothing new */
-+        return 0;
-+    }
-+    else if ((strcmp (kernelcut, "2.6")) == 0)
-+    {
++    #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)
 +        u_int64_t  total, mfree, buffers, cached, used, shared,
 +        cache_total, cache_free, cache_used;
 +
 +        u_int64_t my_mem_used, my_mem_max;
 +        u_int64_t my_swap_max;
++
 +        static int mem_delay = 0;
 +        FILE *mem;
 +
 +        }
 +        /* nothing new */
 +        return 0;
-+    }
-+    else
-+    {
-+        printf("unsupported kernel version\n");
-+        exit(1);
-+    }
-+}
++    #else
++        static u_int64_t total, used, mfree, shared, buffers, cached,
++            cache_total, cache_used;
++
++        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;
++
++            msd.mem_percent = (100 * msd.mem_used) / msd.mem_max;
++            //msd.swap_percent = (100 * msd.swap_used) / msd.swap_max;
++
++            /* memory info changed - update things */
++            return 1;
++        }
++        /* nothing new */
++        return 0;
++    #endif
+ }
  
+-
  void
  paint_callback (MBTrayApp *app, Drawable drw )
+ {
index 026907b..90797cf 100644 (file)
@@ -1,6 +1,6 @@
 include matchbox-panel.inc
 
-PR="r4"
+PR="r5"
 SRC_URI = "http://projects.o-hand.com/matchbox/sources/${PN}/0.9/${PN}-${PV}.tar.gz \
            file://add_hostap.patch;patch=1 \
            file://kernel2.6.patch;patch=1"