35 #include <sys/resource.h>
36 #include <sys/types.h>
37 #include <sys/sysctl.h>
38 #include <uvm/uvm_extern.h>
55 size_t size =
sizeof(info);
56 int which[] = {CTL_VM, VM_LOADAVG};
60 avg[0] = (double) info.ldavg[0] / info.fscale;
61 avg[1] = (
double) info.ldavg[1] / info.fscale;
62 avg[2] = (double) info.ldavg[2] / info.fscale;
71 char int_buf[PATH_MAX];
79 mib[1] = KERN_PROC_ARGS;
81 mib[3] = KERN_PROC_PATHNAME;
84 if (sysctl(mib, 4, int_buf, &int_size, NULL, 0))
102 size_t size =
sizeof(info);
103 int which[] = {CTL_VM, VM_UVMEXP};
108 return (
uint64_t) info.free * sysconf(_SC_PAGESIZE);
113 #if defined(HW_PHYSMEM64)
115 int which[] = {CTL_HW, HW_PHYSMEM64};
118 int which[] = {CTL_HW, HW_PHYSMEM};
120 size_t size =
sizeof(info);
136 struct kinfo_proc2 *kinfo = NULL;
139 int max_size =
sizeof(
struct kinfo_proc2);
142 page_size = getpagesize();
145 kd = kvm_open(NULL, NULL, NULL, KVM_NO_FILES,
"kvm_open");
147 if (kd == NULL)
goto error;
149 kinfo = kvm_getproc2(kd, KERN_PROC_PID, pid, max_size, &nprocs);
150 if (kinfo == NULL)
goto error;
152 *rss = kinfo->p_vm_rssize * page_size;
159 if (kd) kvm_close(kd);
167 size_t size =
sizeof(info);
168 static int which[] = {CTL_KERN, KERN_BOOTTIME};
181 unsigned int ticks = (
unsigned int)sysconf(_SC_CLK_TCK);
183 unsigned int cur = 0;
192 size =
sizeof(model);
193 if (sysctlbyname(
"machdep.cpu_brand", &model, &
size, NULL, 0) &&
194 sysctlbyname(
"hw.model", &model, &
size, NULL, 0)) {
198 size =
sizeof(numcpus);
199 if (sysctlbyname(
"hw.ncpu", &numcpus, &
size, NULL, 0))
204 size =
sizeof(cpuspeed);
205 if (sysctlbyname(
"machdep.tsc_freq", &cpuspeed, &
size, NULL, 0))
210 if (cp_times == NULL)
213 if (sysctlbyname(
"kern.cp_time", cp_times, &
size, NULL, 0))
216 *cpu_infos =
uv__malloc(numcpus *
sizeof(**cpu_infos));
223 for (
i = 0;
i < numcpus;
i++) {
224 cpu_info = &(*cpu_infos)[
i];
239 static int name[] = {CTL_KERN, KERN_ARND};