宏EXPORT_SYMBOL在内核中的作用

Module运行在kernel space,不能直接调用应用程序库,只能调用内核函数。

EXPORT_SYMBOL的作用是把内核函数的符号导出,也就是将函数的入口地址导出。

Module在运行的时候会根据Kernel中的符号表(EXPORTSYMBOL的名字表)去找Symbol(根据内核函数loadmodule()中的_findsymbol),如果该Module无法找到symbol,函数无法执行,该Module也就无法加载。

如果非要执行module入口函数,可以用写上绝对地址的函数指针来调用未被EXPORT_SYMBOL的函数。

猜你喜欢

转载自allenshao.iteye.com/blog/1149333