【发布时间】:2013-04-18 12:16:01
【问题描述】:
众所周知,在使用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
我的问题是:世界上是否有任何编译选项、hacking、宏或任何东西可以让你也包含函数的参数?
即
c041bc90 b packet_sklist (list of arguments...)
有两个原因:
你可以导出
do_something(int a)和导出do_something(int a,int b)。在内核模块中使用外部函数时不会出现错误 参数不匹配。
【问题讨论】:
-
这类似于运算符重载,纯 c 不支持。
标签: c linux gcc linux-kernel kernel-module