version 1.45, 2001/01/04 07:08:18 |
version 1.46, 2001/01/04 07:58:06 |
|
|
char *name; |
char *name; |
struct kmemstats kmemstats[M_LAST]; |
struct kmemstats kmemstats[M_LAST]; |
struct kmembuckets buckets[MINBUCKET + 16]; |
struct kmembuckets buckets[MINBUCKET + 16]; |
int mib[5]; |
int mib[4]; |
size_t siz; |
size_t siz; |
char buf[BUFSIZ], *bufp, *ap; |
char buf[BUFSIZ], *bufp, *ap; |
|
|
|
|
|
|
bufp = buf; |
bufp = buf; |
mib[2] = KERN_MALLOC_BUCKET; |
mib[2] = KERN_MALLOC_BUCKET; |
|
siz = sizeof(struct kmembuckets); |
i = 0; |
i = 0; |
while ((ap = strsep(&bufp, ",")) != NULL) { |
while ((ap = strsep(&bufp, ",")) != NULL) { |
mib[3] = atoi(ap); |
mib[3] = atoi(ap); |
siz = sizeof(u_int64_t); |
|
|
|
mib[4] = KERN_MALLOC_CALLS; |
if (sysctl(mib, 4, &buckets[MINBUCKET + i], &siz, |
if (sysctl(mib, 5, &buckets[MINBUCKET + i].kb_calls, &siz, |
|
NULL, 0) < 0) { |
NULL, 0) < 0) { |
printf("Failed to read statistics for bucket %d.\n", |
printf("Failed to read statistics for bucket %d.\n", |
mib[3]); |
mib[3]); |
return; |
return; |
} |
} |
|
|
mib[4] = KERN_MALLOC_ALLOC; |
|
if (sysctl(mib, 5, &buckets[MINBUCKET + i].kb_total, &siz, |
|
NULL, 0) < 0) { |
|
printf("Failed to read statistics for bucket %d.\n", |
|
mib[3]); |
|
return; |
|
} |
|
|
|
mib[4] = KERN_MALLOC_FREE; |
|
if (sysctl(mib, 5, &buckets[MINBUCKET + i].kb_totalfree, &siz, |
|
NULL, 0) < 0) { |
|
printf("Failed to read statistics for bucket %d.\n", |
|
mib[3]); |
|
return; |
|
} |
|
|
|
mib[4] = KERN_MALLOC_ELEMENTS; |
|
if (sysctl(mib, 5, &buckets[MINBUCKET + i].kb_elmpercl, &siz, |
|
NULL, 0) < 0) { |
|
printf("Failed to read statistics for bucket %d.\n", |
|
mib[3]); |
|
return; |
|
} |
|
|
|
mib[4] = KERN_MALLOC_HIWAT; |
|
if (sysctl(mib, 5, &buckets[MINBUCKET + i].kb_highwat, &siz, |
|
NULL, 0) < 0) { |
|
printf("Failed to read statistics for bucket %d.\n", |
|
mib[3]); |
|
return; |
|
} |
|
|
|
mib[4] = KERN_MALLOC_COULDFREE; |
|
if (sysctl(mib, 5, &buckets[MINBUCKET + i].kb_couldfree, &siz, |
|
NULL, 0) < 0) { |
|
printf("Failed to read statistics for bucket %d.\n", |
|
mib[3]); |
|
return; |
|
} |
|
|
|
i++; |
i++; |
} |
} |
|
|