【问题标题】:How to EXPORT_SYMBOL uniquely with the function's arguments?如何使用函数的参数唯一地 EXPORT_SYMBOL?
【发布时间】: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...)

有两个原因:

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

  2. 在内核模块中使用外部函数时不会出现错误 参数不匹配。

【问题讨论】:

  • 这类似于运算符重载,纯 c 不支持。

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


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-09
    • 2012-04-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-21
    相关资源
    最近更新 更多