2012-11-01 85 views
1

我在Linux 2.6.32 x86-32上挂钩了系统调用。ptregs_execve和sys_execve之间有什么区别/关系

但是,我发现在system call table,__NR_execve指向ptregs_execve而不是sys_execve。而且,我无法在任何地方找到ptregs_execve的功能定义。

任何人都可以帮助我澄清ptregs_execve和sys_execve之间的区别或关系吗?我知道um架构,ptregs_execve定义为sys_execve。其他架构如何?

+0

um表示'user mode',对吧? – kush

+0

是的。在/arch/um/sys-i386/sys_call_table.S中,我们可以找到#define ptregs_execve sys_execve。 – user1718039

回答

2

可能更有帮助:

注意,宏PTREGSCALL3在entry_32.S定义。这定义了一个调用sys _ ##名称的填充函数。这个宏以execve作为参数被调用。所以,ptregs_execve只是一个调用sys_execve和适当参数的shim。

相关问题