linux kernel 3.8 에서 sys_socket 함수의 body 는 어디에 정의되어 있나요 ?
글쓴이: trymp / 작성시간: 화, 2014/10/21 - 6:06오후
커널 초보 입니다.
Linux 3.8.13 을 사용하고 있는데요.
sys_socket 함수에 대한 body 를 찾고 있는데, 이 함수의 body 부분이
소스상에서 보이질 않습니다. 아래와 같은 define 문 만 보이고요
__SYSCALL_COMMON(41, sys_socket, sys_socket)
예전 커널에서는 검색하면 함수 body 가 그대로 보였는데,
이 커널 버전에서는 sys_socket() 정의 부분이 어딘지 못 찾겠네요.
이 함수의 body 찾는 방법 좀 알려주세요
Forums:
socket() 시스템 콜은 argument 를 3개
socket() 시스템 콜은 argument 를 3개 받습니다.
커널 소스에서 "SYSCALL_DEFINE3 *( *socket *," 을 grep 으로 찾아보세요.
-g 옵션을 줘서 컴파일된 커널 elf 파일이 있다면, 좀 더 쉽게 찾을 수 있습니다.
?
검색하실 때는 윗 분 말씀처럼 시스템 콜의 인자로 검색하시면 됩니다.
저 같은 경우는 보통 아래와 같이 찾습니다.
[root@localhost linux-3.17.1]# grep -rn 'SYSCALL_DEFINE3(socket' .
./net/socket.c:1379:SYSCALL_DEFINE3(socket, int, family, int, type, int, protocol)
댓글 달기