我在Linux 2.6.32 x86-32上挂钩系统调用。
但是,我发现在system call table中,__NR_execve
指的是ptregs_execve
而不是sys_execve
。而且,我无法在任何地方找到ptregs_execve
的函数定义。
有人可以帮我澄清ptregs_execve
和sys_execve之间的区别或关系吗?我知道对于um架构,ptregs_execve
定义为sys_execve
。其他架构怎么样?
答案 0 :(得分:2)
可能更有帮助:
请注意,宏PTREGSCALL3在entry_32.S中定义。这定义了一个调用sys _ ## name的填充函数。使用execve作为参数调用此宏。所以,ptregs_execve只是一个使用适当参数调用sys_execve的垫片。