我创建了一个内核模块。我在模块中定义了一些函数,如function1(int n)
和function2()
。
编译和插入模块时没有错误。我不明白的是如何从用户空间计划中调用function1(n)
和function2()
。
答案 0 :(得分:1)
我认为没有直接的方法可以做到这一点,你可以像使用库一样将用户空间代码与内核联系起来。首先,您必须将您的函数注册为syscall,然后使用syscall()函数调用syscall。
请参阅here
也可以使用套接字通信查看内核和用户空间之间的某些接口 这link
并在页面右侧找到与此主题相关的完整链接。
您可以让驱动程序对写入/ dev / file文件或/ proc / file文件做出反应。
修改强>
表单名称文件我的观点是设备是内核中的文件,您可以通过ioctl()
访问
很好的解释是http://tldp.org/LDP/lkmpg/2.6/html/lkmpg.html#AEN885
请参阅Link