您的位置:首页 > 其它

内核模块导出符号使用

2012-02-12 23:09 369 查看
/*

2 * 内核符号导出 给其他模块使用 使用前要申明一下

3 * 另外从 /proc/kallsyms 可以查看内核符号表的相关信息(eg.所在内存地址)

4 * eg. cat /proc/kallsyms | grep integar

5 */

6 #include<linux/init.h>

7 #include<linux/module.h>

8

9 MODULE_LICENSE("Dual BSD/GPL");

10

11 static int __init symbol_init(void)

12 {

13 printk("<0> symbol_init\n");

14 return 0;

15 }

16 int add_integar(int a, int b)

17 {

18 return (a + b);

19 }

20

21 int sub_integar(int a, int b)

22 {

23 return (a - b);

24 }

25

26 static void __exit symbol_exit(void)

27 {

28 printk("<0> symbol_exit\n");

29 }

30 EXPORT_SYMBOL(add_integar);

31 EXPORT_SYMBOL(sub_integar);

32 module_init(symbol_init);

33 module_exit(symbol_exit);

1 /*

2 *使用其他内核模块导出的符号

3 */

4 #include<linux/module.h>

5 #include<linux/init.h>

6 extern int add_integar(int, int);

7 extern int sub_integar(int, int);

8

9 MODULE_LICENSE("GPL");

10

11 static int __init use_symbol_init(void)

12 {

13 printk("<0> use_symbol_init");

14 printk("<0> 1+2 = %d\n",add_integar(1,2));

15 printk("<0> 3-2 = %d\n",sub_integar(3,2));

16 return 0;

17 }

18

19 static void __exit use_symbol_exit(void)

20 {

21 printk("<0> Module exit!\n");

22 }

23 module_init(use_symbol_init);

24 module_exit(use_symbol_exit);

25
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: