__switch_to 함수 아규먼트 질문입니다.
글쓴이: choboja / 작성시간: 토, 2010/05/01 - 5:38오후
리눅스 커널 공부를 시작한 초보자입니다.
switch_to macro를 보던 중 질문이 생겨 글을 남기네요.
switch_to macro에서 _switch_to 함수를 호출하는데 jmp로 호출을 하는데
함수 아규먼트는 어떻게 전달이 되는건지 이해가 되지 않습니다.
즉, struct task_struct fastcall* __switch_to(struct task_sturct *prev_p, struct task_struct *next_p)
함수가 정의되어 있네요. 검색해보니 eax와 edx register를 통해 전달을 받는다는데,
그럼 prev_p = eax , next_p = edx 자동적으로 가르치게 되는건가요?
switch_to함수에서 eax와 edx에 prev와 next 로 mov하는 것을 못 찾겠네요.
"=a" (last) 이부분이 eax에 prev를 넣는부분인거 같기두 하구요.
답변 부탁드릴께요.
Forums:
@switch_to /*
@switch_to
/* regparm parameters for __switch_to(): */ \
[prev] "a" (prev), \
[next] "d" (next) \
댓글 달기