【发布时间】:2014-06-14 00:51:57
【问题描述】:
从用户空间,我试图从我正在编程的内核模块中获取一个导出函数,以便我可以访问一个结构数组,以便我可以遍历该数组以找出有多少结构在数组中。
kernel_mod.c
controller_struct_t ctrl_list[MAX_CNTRS];
struct controller_struct_t * get_ctrl_list(void)
{
return &ctrl_list;
}
EXPORT_SYMBOL_GPL(get_ctrl_list);
user_space.h
controller_struct_t * get_ctrl_list(void);
user_space.c
//MODULE_LICENSE("GPL");
controller_struct_t *ctrl_list = NULL;
ctrl_list = get_ctrl_list();
我尝试将 MODULE_LICENSE("GPL"); 放在 user_space.c 文件中,然后得到 error: expected constructor, destructor, or type conversion before ‘(’ token。我可以构建内核模块,并且我已经验证了该函数已导出。正如我之前提到的,我想获得一个指向ctrl_list 的指针,这样我就可以找出该数组中有多少个结构。我得到的错误如下。
undefined reference to `get_ctrl_list()'
非常感谢任何帮助!谢谢。
【问题讨论】: