아래와 같이 구현하면 어떻게 될까요?
Makefile
MODULE=multi_init all: $(MAKE) -C $(KERNEL_DIR) M=$(PWD) modules clean: rm -rf *.o *.ko *mod.c .*cmd .*versions Module.symvers modules.order
|
check_money.c
#include <linux/init.h> int check_money_init(void) { printk(KERN_ALERT "%s() : called\n", __FUNCTION__); return 0; } void check_money_exit(void) { printk(KERN_ALERT "%s() : bye\n", __FUNCTION__); } module_init(check_money_init); module_exit(check_money_exit); MODULE_LICENSE("Dual BSD/GPL"); |
get_money.c
#include <linux/init.h> int get_money_init(void) { printk(KERN_ALERT "%s() : called\n", __FUNCTION__); return 0; } void get_money_exit(void) { printk(KERN_ALERT "%s() : bye\n", __FUNCTION__); } module_init(get_money_init); module_exit(get_money_exit); MODULE_LICENSE("Dual BSD/GPL"); |
put_money.c
#include <linux/init.h> int put_money_init(void) { printk(KERN_ALERT "%s() : called\n", __FUNCTION__); return 0; } void put_money_exit(void) { printk(KERN_ALERT "%s() : bye\n", __FUNCTION__); } module_init(put_money_init); module_exit(put_money_exit); MODULE_LICENSE("Dual BSD/GPL"); |
컴파일 하면 에러 납니다.
module_init(), module_exit() 는 한 모듈당 하나씩만 사용 가능합니다.
가끔씩 이거 물어 보시는 분들이 있어서 정리해 놓았습니다.
'development' 카테고리의 다른 글
[kernel] Thread 와 Kill (0) | 2011.11.26 |
---|---|
[GCC] -S 옵션? (0) | 2011.11.18 |
[kernel] obj-y ? obj-m ? obj-$(CONFIG_TEST) ? (1) | 2011.11.08 |
[kernel] 개발한 함수를 외부에 공개하는 법 (1) | 2011.11.08 |
[kernel] 커널에 새로운 작업 디렉토리를 추가하고 싶다면 (0) | 2011.11.07 |