커널 모듈의 자작 함수, 변수 등을 다른 커널 요소에서 자유롭게 쓰려면 EXPORT_SYMBOL로 심볼을 선언해야 한다.
선언은 함수 등이 최초로 선언된 하부.. 관용적으로는 소스 코드 끝에서 한다.
EXPORT_SYMBOL_GPL 로 심볼을 내보내면 당연히 GPL 모듈에서만 사용할 수 있다.
GPL 모듈임은 어떻게 표시할까?
소스 뒤에 MODULE_LICENSE("GPL")을 적는다. 아무 드라이버 소스나 까서 보면 이렇다.
module_init(ghes_init);
module_exit(ghes_exit);
MODULE_AUTHOR("Huang Ying");
MODULE_DESCRIPTION("APEI Generic Hardware Error Source support");
MODULE_LICENSE("GPL");
MODULE_ALIAS("platform:GHES");
사용할 수 있는 라이선스 종류, 익스포트 종류는 구글을 디빈다.
심볼은 /proc/kallsyms를 디벼보자.