summaryrefslogtreecommitdiff
path: root/sysutils/xfce4-systemload-plugin/patches/patch-aa
blob: fd834abba32fb7ab1ccc32c9183213cc37a32d12 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
$NetBSD: patch-aa,v 1.3 2007/01/19 16:28:15 joerg Exp $

--- panel-plugin/memswap.c.orig	2003-11-06 00:39:52.000000000 +0000
+++ panel-plugin/memswap.c
@@ -113,7 +113,7 @@ gint read_memswap(gulong *mem, gulong *s
     return 0;
 }
 
-#elif defined(__FreeBSD__)
+#elif defined(__FreeBSD__) || defined(__DragonFly__)
 /*
  * This is inspired by /usr/src/usr.bin/top/machine.c 
  *
@@ -284,7 +284,24 @@ gint read_memswap(gulong *mem, gulong *s
 
 #define ARRLEN(X) (sizeof(X)/sizeof(X[0]))
     {
-        static int mib[]={ CTL_HW, HW_PHYSMEM };
+        static int mib[2];
+
+#ifdef HW_PHYSMEM64
+        /* 64-bit datatype */
+        if (sizeof(size_t) == 8) {
+                mib[0] = CTL_HW;
+                mib[1] = HW_PHYSMEM64;
+        }
+        /* assume 32-bit datatype */
+        else {
+                mib[0] = CTL_HW;
+                mib[1] = HW_PHYSMEM;
+        }
+#else
+        mib[0] = CTL_HW;
+        mib[1] = HW_PHYSMEM;
+#endif
+
         len = sizeof(MTotal);
         sysctl(mib, ARRLEN(mib), &MTotal, &len, NULL, 0);
         MTotal >>= 10;
@@ -395,7 +412,24 @@ gint read_memswap(gulong *mem, gulong *s
 
 #define ARRLEN(X) (sizeof(X)/sizeof(X[0]))
     {
-        static int mib[]={ CTL_HW, HW_PHYSMEM };
+        static int mib[2];
+
+#ifdef HW_PHYSMEM64
+        /* 64-bit datatype */
+        if (sizeof(size_t) == 8) {
+                mib[0] = CTL_HW;
+                mib[1] = HW_PHYSMEM64;
+        }
+        /* assume 32-bit datatype */
+        else {
+                mib[0] = CTL_HW;
+                mib[1] = HW_PHYSMEM;
+        }
+#else
+        mib[0] = CTL_HW;
+        mib[1] = HW_PHYSMEM;
+#endif
+
         len = sizeof(MTotal);
         sysctl(mib, ARRLEN(mib), &MTotal, &len, NULL, 0);
         MTotal >>= 10;