diff --git a/darwin/DarwinMachine.c b/darwin/DarwinMachine.c index a826a407f..d1585acb5 100644 --- a/darwin/DarwinMachine.c +++ b/darwin/DarwinMachine.c @@ -14,6 +14,7 @@ in the source distribution for its full text. #include #include #include +#include #include #include diff --git a/darwin/DarwinProcess.c b/darwin/DarwinProcess.c index 8f62696c4..6e8f71ac5 100644 --- a/darwin/DarwinProcess.c +++ b/darwin/DarwinProcess.c @@ -7,10 +7,15 @@ in the source distribution for its full text. #include "darwin/DarwinProcess.h" +#include +#if MAC_OS_X_VERSION_MIN_REQUIRED >= 1050 #include +#endif + #include #include #include +#include #include #include @@ -105,6 +110,7 @@ static int DarwinProcess_compareByKey(const Process* v1, const Process* v2, Proc } static void DarwinProcess_updateExe(pid_t pid, Process* proc) { +#if MAC_OS_X_VERSION_MIN_REQUIRED >= 1050 char path[PROC_PIDPATHINFO_MAXSIZE]; int r = proc_pidpath(pid, path, sizeof(path)); @@ -112,9 +118,11 @@ static void DarwinProcess_updateExe(pid_t pid, Process* proc) { return; Process_updateExe(proc, path); +#endif } static void DarwinProcess_updateCwd(pid_t pid, Process* proc) { +#if MAC_OS_X_VERSION_MIN_REQUIRED >= 1050 struct proc_vnodepathinfo vpi; int r = proc_pidinfo(pid, PROC_PIDVNODEPATHINFO, 0, &vpi, sizeof(vpi)); @@ -131,6 +139,7 @@ static void DarwinProcess_updateCwd(pid_t pid, Process* proc) { } free_and_xStrdup(&proc->procCwd, vpi.pvi_cdir.vip_path); +#endif } static void DarwinProcess_updateCmdLine(const struct kinfo_proc* k, Process* proc) { @@ -360,6 +369,7 @@ void DarwinProcess_setFromKInfoProc(Process* proc, const struct kinfo_proc* ps, } void DarwinProcess_setFromLibprocPidinfo(DarwinProcess* proc, DarwinProcessTable* dpt, double timeIntervalNS) { +#if MAC_OS_X_VERSION_MIN_REQUIRED >= 1050 struct proc_taskinfo pti; if (PROC_PIDTASKINFO_SIZE != proc_pidinfo(Process_getPid(&proc->super), PROC_PIDTASKINFO, 0, &pti, PROC_PIDTASKINFO_SIZE)) { @@ -398,6 +408,9 @@ void DarwinProcess_setFromLibprocPidinfo(DarwinProcess* proc, DarwinProcessTable dpt->super.userlandThreads += pti.pti_threadnum; /*pti.pti_threads_user;*/ dpt->super.totalTasks += pti.pti_threadnum; dpt->super.runningTasks += pti.pti_numrunning; +#else + proc->taskAccess = false; +#endif } /* @@ -406,6 +419,7 @@ void DarwinProcess_setFromLibprocPidinfo(DarwinProcess* proc, DarwinProcessTable * and https://github.com/max-horvath/htop-osx/blob/e86692e869e30b0bc7264b3675d2a4014866ef46/ProcessList.c */ void DarwinProcess_scanThreads(DarwinProcess* dp, DarwinProcessTable* dpt) { +#if MAC_OS_X_VERSION_MIN_REQUIRED >= 1050 Process* proc = (Process*) dp; kern_return_t ret; @@ -510,6 +524,7 @@ void DarwinProcess_scanThreads(DarwinProcess* dp, DarwinProcessTable* dpt) { vm_deallocate(mach_task_self(), (vm_address_t) thread_list, sizeof(thread_port_array_t) * thread_count); mach_port_deallocate(mach_task_self(), task); +#endif } diff --git a/darwin/DarwinProcessTable.c b/darwin/DarwinProcessTable.c index 9a2f6d5d0..b032b160c 100644 --- a/darwin/DarwinProcessTable.c +++ b/darwin/DarwinProcessTable.c @@ -7,8 +7,12 @@ in the source distribution for its full text. #include "darwin/DarwinProcessTable.h" -#include +#include +#if MAC_OS_X_VERSION_MIN_REQUIRED >= 1050 #include +#endif + +#include #include #include #include diff --git a/darwin/Platform.c b/darwin/Platform.c index 84ebc3951..09864a232 100644 --- a/darwin/Platform.c +++ b/darwin/Platform.c @@ -18,6 +18,7 @@ in the source distribution for its full text. #include #include #include +#include #include #include