mirror of
https://github.com/xzeldon/htop.git
synced 2025-07-12 12:14:36 +03:00
Merge pull request #274 from mmcco/master
Cleanup and initial OpenBSD support
This commit is contained in:
@ -40,16 +40,14 @@ void ProcessList_getHostInfo(host_basic_info_data_t *p) {
|
||||
mach_msg_type_number_t info_size = HOST_BASIC_INFO_COUNT;
|
||||
|
||||
if(0 != host_info(mach_host_self(), HOST_BASIC_INFO, (host_info_t)p, &info_size)) {
|
||||
fprintf(stderr, "Unable to retrieve host info\n");
|
||||
exit(2);
|
||||
err(2, "Unable to retrieve host info\n");
|
||||
}
|
||||
}
|
||||
|
||||
void ProcessList_freeCPULoadInfo(processor_cpu_load_info_t *p) {
|
||||
if(NULL != p && NULL != *p) {
|
||||
if(0 != munmap(*p, vm_page_size)) {
|
||||
fprintf(stderr, "Unable to free old CPU load information\n");
|
||||
exit(8);
|
||||
err(8, "Unable to free old CPU load information\n");
|
||||
}
|
||||
}
|
||||
|
||||
@ -62,8 +60,7 @@ unsigned ProcessList_allocateCPULoadInfo(processor_cpu_load_info_t *p) {
|
||||
|
||||
// TODO Improving the accuracy of the load counts woule help a lot.
|
||||
if(0 != host_processor_info(mach_host_self(), PROCESSOR_CPU_LOAD_INFO, &cpu_count, (processor_info_array_t *)p, &info_size)) {
|
||||
fprintf(stderr, "Unable to retrieve CPU info\n");
|
||||
exit(4);
|
||||
err(4, "Unable to retrieve CPU info\n");
|
||||
}
|
||||
|
||||
return cpu_count;
|
||||
@ -72,10 +69,8 @@ unsigned ProcessList_allocateCPULoadInfo(processor_cpu_load_info_t *p) {
|
||||
void ProcessList_getVMStats(vm_statistics64_t p) {
|
||||
mach_msg_type_number_t info_size = HOST_VM_INFO64_COUNT;
|
||||
|
||||
if(0 != host_statistics64(mach_host_self(), HOST_VM_INFO64, (host_info_t)p, &info_size)) {
|
||||
fprintf(stderr, "Unable to retrieve VM statistics\n");
|
||||
exit(9);
|
||||
}
|
||||
if (host_statistics64(mach_host_self(), HOST_VM_INFO64, (host_info_t)p, &info_size) != 0)
|
||||
err(9, "Unable to retrieve VM statistics\n");
|
||||
}
|
||||
|
||||
struct kinfo_proc *ProcessList_getKInfoProcs(size_t *count) {
|
||||
@ -87,21 +82,15 @@ struct kinfo_proc *ProcessList_getKInfoProcs(size_t *count) {
|
||||
* process entry or two.
|
||||
*/
|
||||
*count = 0;
|
||||
if(0 > sysctl(mib, 4, NULL, count, NULL, 0)) {
|
||||
fprintf(stderr, "Unable to get size of kproc_infos");
|
||||
exit(5);
|
||||
}
|
||||
if (sysctl(mib, 4, NULL, count, NULL, 0) < 0)
|
||||
err(5, "Unable to get size of kproc_infos");
|
||||
|
||||
processes = (struct kinfo_proc *)malloc(*count);
|
||||
if(NULL == processes) {
|
||||
fprintf(stderr, "Out of memory for kproc_infos\n");
|
||||
exit(6);
|
||||
}
|
||||
processes = malloc(*count);
|
||||
if (processes == NULL)
|
||||
errx(6, "Out of memory for kproc_infos");
|
||||
|
||||
if(0 > sysctl(mib, 4, processes, count, NULL, 0)) {
|
||||
fprintf(stderr, "Unable to get kinfo_procs\n");
|
||||
exit(7);
|
||||
}
|
||||
if (sysctl(mib, 4, processes, count, NULL, 0) < 0)
|
||||
err(7, "Unable to get kinfo_procs");
|
||||
|
||||
*count = *count / sizeof(struct kinfo_proc);
|
||||
|
||||
|
Reference in New Issue
Block a user