微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在内核驱动程序中分配用户空间缓冲区?

在一些混乱中,我需要调用一个内核函数,而不是从内核空间调用,因为在参数中它从用户空间分配缓冲区。

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,但我相当怀疑。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐