2012-11-01 8 views
1

Linux 2.6.32 x86-32에서 시스템 호출을 연결하고 있습니다.ptregs_execve와 sys_execve의 차이점/관계

그러나 system call table에서 __NR_execvesys_execve이 아닌 ptregs_execve을 가리키고 있습니다. 그리고, 나는 어디에서나 ptregs_execve의 함수 정의를 찾을 수 없다.

ptregs_execve과 sys_execve의 차이점이나 관계를 명확히 해 줄 수있는 사람이 있습니까? um 아키텍처의 경우 ptregs_execvesys_execve으로 정의됩니다. 다른 아키텍처는 어떻습니까?

+0

um은 '사용자 모드'를 의미합니다. 맞습니까? – kush

+0

예. /arch/um/sys-i386/sys_call_table.S에서 #define ptregs_execve sys_execve를 찾을 수 있습니다. – user1718039

답변

2

아마도 더 도움이 : 매크로 PTREGSCALL3가 entry_32.S에 정의되어 있는지

참고. 이것은 sys _ ## name을 호출하는 shim 함수를 정의합니다. 이 매크로는 execve를 인수로 호출합니다. 따라서 ptregs_execve는 sys_execve를 적절한 인수로 호출하는 단순한 shim입니다.