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.19 by tdb, Mon Jan 19 16:49:21 2004 UTC vs.
Revision 1.20 by tdb, Thu Feb 12 23:04:52 2004 UTC

# Line 40 | Line 40
40   #include <sys/sysctl.h>
41   #include <unistd.h>
42   #endif
43 + #ifdef OPENBSD
44 + #include <stdlib.h>
45 + #include <sys/param.h>
46 + #include <sys/sysctl.h>
47 + #include <uvm/uvm.h>
48 + #endif
49  
50   mem_stat_t *get_memory_stats(){
51  
# Line 66 | Line 72 | mem_stat_t *get_memory_stats(){
72          u_int inactive_count;
73          int pagesize;
74   #endif
75 < #ifdef NETBSD
75 > #if defined(NETBSD) || defined(OPENBSD)
76          struct uvmexp *uvm;
77   #endif
78 + #ifdef OPENBSD
79 +        int mib[2];
80 +        size_t size;
81 + #endif
82  
83   #ifdef SOLARIS
84          if((pagesize=sysconf(_SC_PAGESIZE)) == -1){
# Line 169 | Line 179 | mem_stat_t *get_memory_stats(){
179          if ((uvm = get_uvmexp()) == NULL) {
180                  return NULL;
181          }
182 + #endif
183 + #ifdef OPENBSD
184 +        mib[0] = CTL_VM;
185 +        mib[1] = VM_UVMEXP;
186 +
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)
201          mem_stat.total = uvm->pagesize * uvm->npages;
202 + #ifdef NETBSD
203          mem_stat.cache = uvm->pagesize * (uvm->filepages + uvm->execpages);
204 + #else
205 +        mem_stat.cache = 0;
206 + #endif
207          mem_stat.free = uvm->pagesize * (uvm->free + uvm->inactive);
208          mem_stat.used = mem_stat.total - mem_stat.free;
209 + #endif
210 +
211 + #ifdef OPENBSD
212 +        free(uvm);
213   #endif
214  
215          return &mem_stat;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines