只知道export symbol是把内核函数的符号导出,也就是把函数的入口地址导出,但是不知道 export symbol怎么用?请指教。还有MODULE_LICENSE。
by sanshially - 内核/嵌入技术 - 2006-05-16 19:30:06 阅读(1089) 回复(3)
只知道export symbol是把内核函数的符号导出,也就是把函数的入口地址导出,但是不知道 export symbol怎么用?请指教。还有MODULE_LICENSE。
C 程序员都知道,要使用某个外部的函数,应当#include某个头文件,这个头文件包含了那个函数的原型(prototype)。内核的头文件在 include/下,其中include/asm是个符号链接,指向你所用内核的具体的体系结构目录,比方说我的系统是i386的,那么include /asm就指向include/asm-i386 。 内核编程中我们不能链接libc库,不能使用libc库中的函数,所以很有些麻烦。一些 重要的函数,象strcpy/strcmp/snprintf等,kernel也为我们实现...
[color="#000000"]原文:http://blog.chinaunix.net/u2/69737/showart_1070123.html export_symbol标签内定义的函数或者符号对全部内核代码公开,不用修改内核代码就可以在您的内核模块中直接调用,即使用[color="#000000"]export_symbol可以将一个函数以符号的方式导出给其他模块使用[color="#000000"]。您还可以手工修改内核源代码来导出另外的函数,用于重新编译并加载新内核后的测试。 Linux symbol export method: [1] I...
linux2.6的“/prob/kallsyms”文件对应着内核符号表,记录了符号以及符号所在的内存地址。 模块可以使用如下宏导出符号到内核符号表: view plaincopy to clipboardprint? export_symbol(符号名); export_symbol_GPL(符号名) export_symbol(符号名); export_symbol_GPL(符号名) 导出的符号可以被其他模块使用,不过使用之前一定要声明一下。export_symbol_GPL()只适用于包含GPL许可权的模块。 代码演示: view plaincopy to ...
1.export_symbol export_symbol( my_pub_func); 在预编译阶段会解析为: extern void *__crc_my_pub_func __attribute__((weak)); static const unsigned long __kcrctab_my_pub_func __attribute__((__used__)) __attribute__((section("__kcrctab" ""), unused)) = (unsigned long) &__crc_my_pub_func; static const char __kstrtab_my_pub_func[] __attribute__((section("__ksymtab_strings"))) = "" "my_pub_func"; static...
导出符号给module用 A module runs in the so-called kernel space. 因为模块运行在内核空间,不能直接调用应用程序库,只能调用内核函数。 export_symbol宏的作用就是把内核函数的符号导出。符号的意思就是函数的 入口地址。 本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u3/94690/showart_1924852.html
一个模块mod1中定义一个函数func1;在另外一个模块mod2中定义一个函数func2,func2调用func1。 在模块mod1中,export_symbol(func1); 在模块mod2中,extern int func1(); 就可以在mod2中调用func1了。 参考: http://topic.csdn.net/u/20070910/09/ee2cff13-9179-41e3-9292-4fd73261f709.html http://www.dev-archive.com/msdn-archive/524/kernel-driver-5244619.shtm mod1.c #include #include #include static int func1(voi...
请问export_symbol的作用是什么呢?为什么在一个模块中定义一个函数指针,并且用export_symbol申明了,可在另一个模块中使用的时候,提示这个函数指针未申明. 什么原因呢?