1

众所周知,使用时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

我的问题是:世界上是否有任何编译选项、黑客攻击、宏或任何东西可以让你也包含函数的参数?

IE

c041bc90 b packet_sklist (list of arguments...)

有两个原因:

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

  2. 在参数不匹配的内核模块中使用外部函数时,您不会遇到错误。

4

1 回答 1

0

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

于 2013-04-26T18:05:22.530 回答