(새 문서: 분류: 리눅스 커널 <include/linux/linkage.h> == 개요 == asmlinkage는 어셈블리 코드에서 직접 호출할 수 있다는 의미를 가지고 있다. x86은 함수 호출시 인자를 스택혹은 레지스터를 통해서 전달 할 수 있는데, 이는 보통 컴파일러에 의해서 결정된다. 그러나 명시적으로 어셈블러코드에서 호출되는 함수는 어셈블러가 두가지중 어떤 형식을 사용할지 모른다는 문제가 있...) |
편집 요약 없음 |
||
1번째 줄: | 1번째 줄: | ||
[[분류: 리눅스 커널]] | [[분류: 리눅스 커널 API]] | ||
<include/linux/linkage.h> | <include/linux/linkage.h> |
2023년 2월 11일 (토) 01:56 기준 최신판
<include/linux/linkage.h>
개요
asmlinkage는 어셈블리 코드에서 직접 호출할 수 있다는 의미를 가지고 있다. x86은 함수 호출시 인자를 스택혹은 레지스터를 통해서 전달 할 수 있는데, 이는 보통 컴파일러에 의해서 결정된다. 그러나 명시적으로 어셈블러코드에서 호출되는 함수는 어셈블러가 두가지중 어떤 형식을 사용할지 모른다는 문제가 있다. 따라서 asmlinkage를 통해서 스택을 통해서만 인자를 전달할 수 있도록 하여 이러한 문제를 해결한다.
asmlinkage는 내부적으로 regparm 속성을 이용하여 전달할 인자의 수를 결정한다.