ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/i-scream/projects/libstatgrab/src/libstatgrab/memory_stats.c
(Generate patch)

Comparing projects/libstatgrab/src/libstatgrab/memory_stats.c (file contents):
Revision 1.20 by tdb, Thu Feb 12 23:04:52 2004 UTC vs.
Revision 1.23 by tdb, Mon Feb 16 14:55:32 2004 UTC

# Line 35 | Line 35
35   #include <stdio.h>
36   #include <string.h>
37   #endif
38 < #ifdef FREEBSD
38 > #if defined(FREEBSD) || defined(DFBSD)
39   #include <sys/types.h>
40   #include <sys/sysctl.h>
41   #include <unistd.h>
42   #endif
43 < #ifdef OPENBSD
44 < #include <stdlib.h>
43 > #if defined(NETBSD) || defined(OPENBSD)
44   #include <sys/param.h>
45 < #include <sys/sysctl.h>
45 > #include <sys/time.h>
46   #include <uvm/uvm.h>
47   #endif
48  
# Line 63 | Line 62 | mem_stat_t *get_memory_stats(){
62          unsigned long long value;
63          FILE *f;
64   #endif
65 < #ifdef FREEBSD
65 > #if defined(FREEBSD) || defined(DFBSD)
66          int mib[2];
67          u_long physmem;
68          size_t size;
# Line 75 | Line 74 | mem_stat_t *get_memory_stats(){
74   #if defined(NETBSD) || defined(OPENBSD)
75          struct uvmexp *uvm;
76   #endif
78 #ifdef OPENBSD
79        int mib[2];
80        size_t size;
81 #endif
77  
78   #ifdef SOLARIS
79          if((pagesize=sysconf(_SC_PAGESIZE)) == -1){
# Line 132 | Line 127 | mem_stat_t *get_memory_stats(){
127          mem_stat.used = mem_stat.total - mem_stat.free;
128   #endif
129  
130 < #ifdef FREEBSD
130 > #if defined(FREEBSD) || defined(DFBSD)
131          /* Returns bytes */
132          mib[0] = CTL_HW;
133          mib[1] = HW_PHYSMEM;
# Line 175 | Line 170 | mem_stat_t *get_memory_stats(){
170          mem_stat.used=physmem-mem_stat.free;
171   #endif
172  
173 < #ifdef NETBSD
173 > #if defined(NETBSD) || defined(OPENBSD)
174          if ((uvm = get_uvmexp()) == NULL) {
175                  return NULL;
176          }
182 #endif
183 #ifdef OPENBSD
184        mib[0] = CTL_VM;
185        mib[1] = VM_UVMEXP;
177  
187        if (sysctl(mib, 2, NULL, &size, NULL, 0) < 0) {
188                return NULL;
189        }
190
191        uvm = malloc(size);
192        if (uvm == NULL) {
193                return NULL;
194        }
195
196        if (sysctl(mib, 2, uvm, &size, NULL, 0) < 0) {
197                return NULL;
198        }
199 #endif
200 #if defined(NETBSD) || defined(OPENBSD)
178          mem_stat.total = uvm->pagesize * uvm->npages;
179   #ifdef NETBSD
180          mem_stat.cache = uvm->pagesize * (uvm->filepages + uvm->execpages);
181   #else
182 +        /* Can't find cache memory on OpenBSD */
183          mem_stat.cache = 0;
184   #endif
185          mem_stat.free = uvm->pagesize * (uvm->free + uvm->inactive);
186          mem_stat.used = mem_stat.total - mem_stat.free;
209 #endif
210
211 #ifdef OPENBSD
212        free(uvm);
187   #endif
188  
189          return &mem_stat;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines