在一些混乱中,我需要调用一个内核函数,而不是从内核空间调用,因为在参数中它从用户空间分配缓冲区。
const char __user *buf
但我需要调用,所以我怎么可以分配用户空间缓冲区,并传递给它的函数参数。
如果可能的话,我需要做,而不需要任何用户空间的交互。 真的有可能吗?
我的目标是调用内核驱动程序的内核例程,它的参数是const char __user *buf
如何在同一个Ad-Hoc模式下获得附近手机的RSSI和Mac地址?
如何在Linux中使用C语言来发音?
cx_Oracle无法识别在Linux上安装Oracle软件安装的位置
C + UNIX,siglongjmp和sigsetjmp
跨平台的访问configuration方式
无法将UTF-16设置为区域设置
如何判断两个NFS挂载是否在同一个远程文件系统上?
Python产生一个子subprocess,分离并退出
android如何安排设备从睡眠状态中唤醒?
Java调用bash脚本:权限被拒绝的错误
有可能是另一种方式,这取决于你实际上试图调用什么系统调用。
这里有一篇关于系统调用机制的文章。 有一节介绍如何从内核空间调用系统调用,使用内核内存并避免验证。
mm_segment_t fs; fs = get_fs(); /* save previous value */ set_fs (get_ds()); /* use kernel limit */ /* system calls can be invoked */ set_fs(fs); /* restore before returning to user space */
AFAIK,通常这样做的方法是打破两个内核例程 – 一个处理系统调用机制的外部例程,处理copyin()/ coyout()等,然后调用内部例程,工作。
当然,如果你需要将你的代码自包含在一个模块中,并且不控制内核的其余部分,那么这将不起作用。
而在回答你的具体问题 – 我不知道是否有任何这样的API,但我相当怀疑。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。