$NetBSD: patch-fh,v 1.1 2004/03/14 18:30:31 jdolecek Exp $

--- kcontrol/info/memory_netbsd.cpp.orig	2004-03-14 19:16:08.000000000 +0100
+++ kcontrol/info/memory_netbsd.cpp	2004-03-14 19:16:39.000000000 +0100
@@ -26,7 +26,7 @@
   struct  uvmexp uvmexp;
 #else
   struct swapent *swaplist;
-  int nswap, rnswap, totalswap, freeswap, usedswap;
+  int64_t nswap, rnswap, totalswap, freeswap, usedswap;
 #endif
   
   /* memory */
@@ -38,9 +38,6 @@
   else
     Memory_Info[TOTAL_MEM]    = memory;
 
-#warning "FIXME: Memory_Info[CACHED_MEM]"
-    Memory_Info[CACHED_MEM] = NO_MEMORY_INFO; // cached memory in ram
-    
 #ifdef UVM
   mib[0] = CTL_VM;
   mib[1] = VM_UVMEXP;
@@ -51,13 +48,19 @@
     Memory_Info[INACTIVE_MEM] = NO_MEMORY_INFO;
     Memory_Info[SWAP_MEM]     = NO_MEMORY_INFO;
     Memory_Info[FREESWAP_MEM] = NO_MEMORY_INFO;
+    Memory_Info[CACHED_MEM] = NO_MEMORY_INFO;
   } else {
-    Memory_Info[FREE_MEM] = MEMORY(uvmexp.free * uvmexp.pagesize);
-    Memory_Info[ACTIVE_MEM] = MEMORY(uvmexp.active * uvmexp.pagesize);
-    Memory_Info[INACTIVE_MEM] = MEMORY(uvmexp.inactive * uvmexp.pagesize);
-    Memory_Info[SWAP_MEM] = MEMORY(uvmexp.swpages * uvmexp.pagesize);
-    Memory_Info[FREESWAP_MEM] = MEMORY((uvmexp.swpages - uvmexp.swpginuse) *
-							uvmexp.pagesize);
+    t_memsize pgsz = uvmexp.pagesize;
+    Memory_Info[FREE_MEM] = MEMORY(pgsz * uvmexp.free);
+    Memory_Info[ACTIVE_MEM] = MEMORY(pgsz * uvmexp.active);
+    Memory_Info[INACTIVE_MEM] = MEMORY(pgsz * uvmexp.inactive);
+    Memory_Info[SWAP_MEM] = MEMORY(pgsz * uvmexp.swpages);
+    Memory_Info[FREESWAP_MEM] = MEMORY(pgsz * (uvmexp.swpages - uvmexp.swpginuse));
+#if __NetBSD_Version__ > 106000000
+    Memory_Info[CACHED_MEM] = MEMORY(pgsz * (uvmexp.filepages + uvmexp.execpages));
+#else
+    Memory_Info[CACHED_MEM] = NO_MEMORY_INFO;
+#endif
     }
 #else
   Memory_Info[FREE_MEM] = NO_MEMORY_INFO;
