在内核模块中我可以调用内核源代码的另一个头文件中定义的静态内联函数吗?

时间:2014-07-05 05:00:21

标签: c linux-kernel

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

1 个答案:

答案 0 :(得分:2)

我是否可以调用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?