如何在用户态调用内核态的函数?
在一个module中,已经编写一组函数,并且EXPORT_SYMBOL之。但是想被一个用户态的应用程序,目的是为了让用户态把某个参数传进来。直接调用或syscall都未能作用。本人刚开始KERNEL开发,请指教。
应用程序在编译连接过程中,总会有UNDEFINED REFERENCE.
------解决方案--------------------ioctl
------解决方案--------------------用户态调用内核态的函数,通常需要在内核模块中虚拟出一个设备,通过访问/dev下的虚拟设备节点,open,read调用内核态函数。
不过,如果你只是为了得到用户态的某个参数,可以通过
unsigned long copy_to_user(void __user *to,const void *from,unsigned long count);
unsigned long copy_from_user(void *to,const void __user *from,unsigned long count);
这两个函数可以实现用户态和内核态数据之间的转变。
具体参看LDD3 3.7节
------解决方案--------------------添加一个系统调用....应该是一个不错的选择...
------解决方案--------------------syscall