[t:/]$ 지식_

EXPORT_SYMBOL vs EXPORT_SYMBOL_GPL

2011/09/26

커널 모듈의 자작 함수, 변수 등을 다른 커널 요소에서 자유롭게 쓰려면 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를 디벼보자.









[t:/] is not "technology - root". dawnsea, rss