我正在尝试让一个用户级程序通过 /proc 与内核进行通信。
我按照tldp上的说明,成功地创建了一个自定义 proc 文件,使用insmod动态加载它并从用户空间读取(cat)和写入(echo)到 proc 文件。
现在我的问题是如何从内核的另一部分访问 /proc 变量(它是一个字节缓冲区),比如系统调用基础设施?由于自定义 proc 文件是动态加载和链接的,如何从静态编译的内核代码中引用它?
系统规格:在 MacBook Pro 13" (2009) 上运行 VMWare Fusion 的 Ubuntu 10.10。
编辑:相关代码(根据要求) -
过程文件.c
//This function is called when the module is loaded
int init_module()
{
/* create the /proc file */
EXPORT_SYMBOL(procfs_buffer);
EXPORT_SYMBOL(procfs_buffer_size);
...
...
}
get_procvariable.c(在内核的另一部分)
//The buffer used to store character for this module
extern char * procfs_buffer;
//The size of the buffer
extern unsigned long procfs_buffer_size;
int get_procvariable(void)
{
.. do something
return procfs_buffer; // LD Error: Undefined reference
}
如果您需要更多详细信息,请在评论中告诉我。提前致谢。