【问题标题】:In kernel module can I call static inline function defined in another header file of the kernel source?在内核模块中,我可以调用内核源代码的另一个头文件中定义的静态内联函数吗?
【发布时间】:2014-07-05 05:00:20
【问题描述】:

我会尽量把问题说清楚。我正在开发一个可加载的内核模块,只是想知道是否可以调用在 Linux 内核源代码的另一个头文件中定义的静态内联函数。 我知道 static 关键字使函数限制在编译单元的范围内(即 C 文件)。但是如果我包含定义静态内联函数的头文件,我可以在我的模块中使用它吗?

【问题讨论】:

  • 除了调用一个函数(静态内联或非静态内联),您还能做什么?你试过了吗?

标签: c linux-kernel


【解决方案1】:

是否可以调用Linux内核源码的另一个头文件中定义的静态内联函数??

是的。可能的。 kmalloc() 就是一个例子。此函数在 include/linux/slab.h 中定义为 static inline 函数。建议阅读this 帖子,其中解释了为什么在头文件中使用静态内联。

参考资料
http://lxr.free-electrons.com/source/include/linux/slab.h#L452
What's the difference between "static" and "static inline" function?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-10-19
    • 2016-01-22
    • 2016-05-31
    • 1970-01-01
    • 2021-07-16
    • 1970-01-01
    • 2013-06-02
    相关资源
    最近更新 更多