(새 문서: 분류: 리눅스 커널 <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 속성을 이용하여 전달할 인자의 수를 결정한다.