Asmlinkage

Ahn9807 (토론 | 기여)님의 2023년 2월 11일 (토) 01:55 판 (새 문서: 분류: 리눅스 커널 <include/linux/linkage.h> == 개요 == asmlinkage는 어셈블리 코드에서 직접 호출할 수 있다는 의미를 가지고 있다. x86은 함수 호출시 인자를 스택혹은 레지스터를 통해서 전달 할 수 있는데, 이는 보통 컴파일러에 의해서 결정된다. 그러나 명시적으로 어셈블러코드에서 호출되는 함수는 어셈블러가 두가지중 어떤 형식을 사용할지 모른다는 문제가 있...)
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)


<include/linux/linkage.h>

개요

asmlinkage는 어셈블리 코드에서 직접 호출할 수 있다는 의미를 가지고 있다. x86은 함수 호출시 인자를 스택혹은 레지스터를 통해서 전달 할 수 있는데, 이는 보통 컴파일러에 의해서 결정된다. 그러나 명시적으로 어셈블러코드에서 호출되는 함수는 어셈블러가 두가지중 어떤 형식을 사용할지 모른다는 문제가 있다. 따라서 asmlinkage를 통해서 스택을 통해서만 인자를 전달할 수 있도록 하여 이러한 문제를 해결한다.

asmlinkage는 내부적으로 regparm 속성을 이용하여 전달할 인자의 수를 결정한다.