XXX: this most likely subverts the security of your system. DO NOT APPLY. * include/mach/task_info.h (struct task_basic_info): Add parent_task. * kern/task.c (task_info): Include a port to parent_task. --- include/mach/task_info.h | 2 ++ kern/task.c | 3 +++ 2 files changed, 5 insertions(+)
diff --git a/include/mach/task_info.h b/include/mach/task_info.h index 5607178..dc520a9 100644 --- a/include/mach/task_info.h +++ b/include/mach/task_info.h @@ -37,6 +37,7 @@ #include <mach/machine/vm_types.h> #include <mach/time_value.h> +#include <mach/port.h> /* * Generic information structure to allow for expansion. @@ -61,6 +62,7 @@ struct task_basic_info { time_value_t system_time; /* total system run time for terminated threads */ time_value_t creation_time; /* creation time stamp */ + mach_port_t parent_task; /* parent of the task */ }; typedef struct task_basic_info task_basic_info_data_t; diff --git a/kern/task.c b/kern/task.c index 0c0be99..4d98132 100644 --- a/kern/task.c +++ b/kern/task.c @@ -750,6 +750,9 @@ kern_return_t task_info( basic_info->system_time.microseconds = task->total_system_time.microseconds; basic_info->creation_time = task->creation_time; + task_reference(task->parent_task); + basic_info->parent_task + = convert_task_to_port(task->parent_task); task_unlock(task); if (*task_info_count > TASK_BASIC_INFO_COUNT) -- 1.7.10.4