<include/linux/linkage.h>

개요

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

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