커널에서 static inline 함수선언과 wrapping
·
Linux
static inline드라이버 분석중에특정 함수 호출을 추적해보니 다른 파일에서 static inline으로 선언되어있는걸 알았다. 예를 들어서,mem.c에서 register_chrdev를 호출,register_chrdev를 추적해보니 다른 include/linux/fs.파일에서 static inline으로 선언됨. inline키워드를 붙이면, 컴파일시에 코드 자체를 호출장소에 삽입.즉, register_chrdev가 호출된 장소에 register_chrdev코드 자체를 삽입.이 코드 삽입 자체가 compile time에 이뤄져야해서 .h에 선언됨. static 키워드를 붙이면, 다른 파일에서 사용이 불가능하지만, inline 키워드로 코드 자체를 삽입하기때문에문제 없다.왜?성능 최적화와 코드 안전성..