gpt4 book ai didi

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

转载 作者:IT王子 更新时间:2023-10-29 00:55:43 31 4
gpt4 key购买 nike

在一些困惑中,我需要调用一个不应该从内核空间调用的内核函数,因为在参数中它需要从分配的用户空间中获取缓冲区。

const char __user *buf

但我需要调用它,这样我才能分配用户空间缓冲区并使用该函数参数传递它。

如果可能的话,我需要在没有任何用户空间交互的情况下进行。真的可能吗?

我的目标是从接受参数的内核驱动程序调用内核例程 const char __user *buf

最佳答案

可能还有另一种方法,具体取决于您实际尝试调用的系统调用。

这是一个 article这解释了一些关于系统调用机制的内容。有一节解释了如何从内核空间调用系统调用,使用内核内存并避免验证。

  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 */

关于c - 如何在内核驱动程序中分配用户空间缓冲区?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16330592/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com