version 1.90, 2019/01/20 03:53:03 |
version 1.91, 2019/06/28 13:35:04 |
|
|
mib[0] = CTL_HW; |
mib[0] = CTL_HW; |
mib[1] = HW_NCPU; |
mib[1] = HW_NCPU; |
size = sizeof(ncpu); |
size = sizeof(ncpu); |
if (sysctl(mib, 2, &ncpu, &size, NULL, 0) < 0) |
if (sysctl(mib, 2, &ncpu, &size, NULL, 0) == -1) |
return (-1); |
return (-1); |
|
|
mib[0] = CTL_KERN; |
mib[0] = CTL_KERN; |
mib[1] = KERN_INTRCNT; |
mib[1] = KERN_INTRCNT; |
mib[2] = KERN_INTRCNT_NUM; |
mib[2] = KERN_INTRCNT_NUM; |
size = sizeof(nintr); |
size = sizeof(nintr); |
if (sysctl(mib, 3, &nintr, &size, NULL, 0) < 0) |
if (sysctl(mib, 3, &nintr, &size, NULL, 0) == -1) |
return (-1); |
return (-1); |
|
|
intrloc = calloc(nintr, sizeof(long)); |
intrloc = calloc(nintr, sizeof(long)); |
|
|
mib[2] = KERN_INTRCNT_NAME; |
mib[2] = KERN_INTRCNT_NAME; |
mib[3] = i; |
mib[3] = i; |
size = sizeof(name); |
size = sizeof(name); |
if (sysctl(mib, 4, name, &size, NULL, 0) < 0) |
if (sysctl(mib, 4, name, &size, NULL, 0) == -1) |
return (-1); |
return (-1); |
|
|
intrname[i] = strdup(name); |
intrname[i] = strdup(name); |
|
|
mib[2] = KERN_INTRCNT_CNT; |
mib[2] = KERN_INTRCNT_CNT; |
mib[3] = i; |
mib[3] = i; |
size = sizeof(si->intrcnt[i]); |
size = sizeof(si->intrcnt[i]); |
if (sysctl(mib, 4, &si->intrcnt[i], &size, NULL, 0) < 0) { |
if (sysctl(mib, 4, &si->intrcnt[i], &size, NULL, 0) == -1) { |
si->intrcnt[i] = 0; |
si->intrcnt[i] = 0; |
} |
} |
} |
} |
|
|
for (i = 0; i < ncpu; i++) { |
for (i = 0; i < ncpu; i++) { |
cpustats_mib[2] = i; |
cpustats_mib[2] = i; |
size = sizeof(cs); |
size = sizeof(cs); |
if (sysctl(cpustats_mib, 3, &cs, &size, NULL, 0) < 0) { |
if (sysctl(cpustats_mib, 3, &cs, &size, NULL, 0) == -1) { |
error("Can't get KERN_CPUSTATS: %s\n", strerror(errno)); |
error("Can't get KERN_CPUSTATS: %s\n", strerror(errno)); |
memset(&si->cpustats, 0, sizeof(si->cpustats)); |
memset(&si->cpustats, 0, sizeof(si->cpustats)); |
} |
} |
|
|
} |
} |
|
|
size = sizeof(si->nchstats); |
size = sizeof(si->nchstats); |
if (sysctl(nchstats_mib, 2, &si->nchstats, &size, NULL, 0) < 0) { |
if (sysctl(nchstats_mib, 2, &si->nchstats, &size, NULL, 0) == -1) { |
error("Can't get KERN_NCHSTATS: %s\n", strerror(errno)); |
error("Can't get KERN_NCHSTATS: %s\n", strerror(errno)); |
memset(&si->nchstats, 0, sizeof(si->nchstats)); |
memset(&si->nchstats, 0, sizeof(si->nchstats)); |
} |
} |
|
|
size = sizeof(si->uvmexp); |
size = sizeof(si->uvmexp); |
if (sysctl(uvmexp_mib, 2, &si->uvmexp, &size, NULL, 0) < 0) { |
if (sysctl(uvmexp_mib, 2, &si->uvmexp, &size, NULL, 0) == -1) { |
error("Can't get VM_UVMEXP: %s\n", strerror(errno)); |
error("Can't get VM_UVMEXP: %s\n", strerror(errno)); |
memset(&si->uvmexp, 0, sizeof(si->uvmexp)); |
memset(&si->uvmexp, 0, sizeof(si->uvmexp)); |
} |
} |
|
|
size = sizeof(si->Total); |
size = sizeof(si->Total); |
if (sysctl(vmtotal_mib, 2, &si->Total, &size, NULL, 0) < 0) { |
if (sysctl(vmtotal_mib, 2, &si->Total, &size, NULL, 0) == -1) { |
error("Can't get VM_METER: %s\n", strerror(errno)); |
error("Can't get VM_METER: %s\n", strerror(errno)); |
memset(&si->Total, 0, sizeof(si->Total)); |
memset(&si->Total, 0, sizeof(si->Total)); |
} |
} |