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

Comparing projects/libstatgrab/src/libstatgrab/tools.c (file contents):
Revision 1.43 by tdb, Tue Apr 6 14:52:58 2004 UTC vs.
Revision 1.44 by ats, Tue Apr 6 17:42:16 2004 UTC

# Line 461 | Line 461 | kvm_t *sg_get_kvm2() {
461   #if defined(NETBSD) || defined(OPENBSD)
462   struct uvmexp *sg_get_uvmexp() {
463          int mib[2];
464 <        size_t size;
465 <        static struct uvmexp *uvm = NULL;
464 >        size_t size = sizeof(struct uvmexp);
465 >        static struct uvmexp uvm;
466          struct uvmexp *new;
467  
468          mib[0] = CTL_VM;
469          mib[1] = VM_UVMEXP;
470  
471 <        if (sysctl(mib, 2, NULL, &size, NULL, 0) < 0) {
471 >        if (sysctl(mib, 2, &uvm, &size, NULL, 0) < 0) {
472                  return NULL;
473          }
474  
475 <        new = realloc(uvm, size);
476 <        if (new == NULL) {
477 <                return NULL;
478 <        }
479 <        uvm = new;
480 <
481 <        if (sysctl(mib, 2, uvm, &size, NULL, 0) < 0) {
482 <                return NULL;
483 <        }
484 <
485 <        return uvm;
475 >        return &uvm;
476   }
477   #endif
478  
# Line 494 | Line 484 | int sg_init(){
484          if (sg_get_kvm2() == NULL) {
485                  return 1;
486          }
497 #endif
498 #if defined(NETBSD) || defined(OPENBSD)
499        /* This should always succeed, but it seems that on some
500         * versions of NetBSD the first call to get_uvmexp will return
501         * a non-filled-in structure; this is a workaround for that.
502         */
503        if (sg_get_uvmexp() == NULL) return 1;
487   #endif
488   #ifdef SOLARIS
489          /* On solaris 7, this will fail if you are not root. But, everything

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines