如何使用函数的参数唯一EXPORT_SYMBOL?

时间:2013-04-24 19:28:41

标签: c linux gcc linux-kernel kernel-module

众所周知,在使用EXPORT_SYMBOL("function name")时,我们进入System.map中的符号列表,将函数名称作为符号。

c041bc90 b packet_sklist
c041bc94 b packet_sklist_lock
c041bc94 b packet_socks_nr
c041bc98 A __bss_stop
c041bc98 A _end
c041c000 A pg0
ffffe400 A __kernel_vsyscall

我的问题是:是否有任何编译选项,黑客,宏或世界上的任何东西都允许你包含函数的参数?

c041bc90 b packet_sklist (list of arguments...)

这两个原因:

  1. 您可以导出do_something(int a)并导出do_something(int a,int b)

  2. 在内核模块中使用extern函数时不会有bug 在论证中存在不匹配。

1 个答案:

答案 0 :(得分:0)

您显示的第一个原因,即使EXPORT_SYMBOL支持参数,它也不支持变量参数,因为Linux使用C。