【发布时间】:2020-05-06 10:13:38
【问题描述】:
我是 XNU 内核的新手,有些困惑。
我看到我们在文件vm_unix.c中有一个函数:
kern_return_t task_for_pid(struct task_for_pid_args *args)
附上评论:
// This should be a BSD system call, not a Mach trap!!!
然后osfmk\mach中的2个声明:
/*
* Obsolete interfaces.
*/
extern kern_return_t task_for_pid(
mach_port_name_t target_tport,
int pid,
mach_port_name_t *t);
extern kern_return_t task_for_pid(
struct task_for_pid_args *args);
并在kern 中捕获减速
/* 45 */ MACH_TRAP(task_for_pid, 3, 3, munge_www),
如您所见,我发现了 2 个声明和只有 1 个实现。
3参数匹配陷阱的实现在哪里? 从 3 个参数到 1 个参数的转换是如何发生的?
【问题讨论】:
-
您好,请考虑接受@Technologeeks 提供的答案,因为它回答了您的问题。