add proc_mem.page_faults

This commit is contained in:
Doug MacEachern 2005-11-28 17:40:51 +00:00
parent 591f07422d
commit b83898fb21
1 changed files with 13 additions and 3 deletions

View File

@ -692,6 +692,7 @@ int sigar_proc_mem_get(sigar_t *sigar, sigar_pid_t pid,
mach_port_t task, self = mach_task_self(); mach_port_t task, self = mach_task_self();
kern_return_t status; kern_return_t status;
task_basic_info_data_t info; task_basic_info_data_t info;
task_events_info_data_t events;
mach_msg_type_number_t count; mach_msg_type_number_t count;
vm_size_t vsize, resident, private, vprivate, shared; vm_size_t vsize, resident, private, vprivate, shared;
shared_table table; shared_table table;
@ -713,6 +714,18 @@ int sigar_proc_mem_get(sigar_t *sigar, sigar_pid_t pid,
vsize = info.virtual_size; vsize = info.virtual_size;
resident = info.resident_size; resident = info.resident_size;
count = TASK_EVENTS_INFO_COUNT;
status = task_info(task, TASK_EVENTS_INFO, (task_info_t)&events, &count);
if (status == KERN_SUCCESS) {
procmem->page_faults = events.faults;
}
else {
procmem->page_faults = SIGAR_FIELD_NOTIMPL;
}
procmem->minor_faults = SIGAR_FIELD_NOTIMPL;
procmem->major_faults = SIGAR_FIELD_NOTIMPL;
private = vprivate = shared = 0; private = vprivate = shared = 0;
memset(table, 0, sizeof(table)); memset(table, 0, sizeof(table));
@ -807,9 +820,6 @@ int sigar_proc_mem_get(sigar_t *sigar, sigar_pid_t pid,
procmem->share = shared; procmem->share = shared;
procmem->vsize = vsize; procmem->vsize = vsize;
procmem->resident = resident; procmem->resident = resident;
procmem->page_faults = SIGAR_FIELD_NOTIMPL;
procmem->minor_faults = SIGAR_FIELD_NOTIMPL;
procmem->major_faults = SIGAR_FIELD_NOTIMPL;
return SIGAR_OK; return SIGAR_OK;
#else #else