【问题标题】:Declaration and memory allocation to target parameter in copy_from_user callcopy_from_user 调用中目标参数的声明和内存分配
【发布时间】:2016-07-31 19:13:23
【问题描述】:

我有一个指向用户空间模式下的数据缓冲区的指针,现在我想使用“copy_from_user”函​​数将该数据的值复制到内核模式。

假设我的数据指针是“data.ptr.buffer”,它的大小是“data_size”。 “data.ptr.buffer”的声明是:const void *buffer;

现在,我如何在内核模式下声明和分配内存以在内核模式下获取数据缓冲区值?我的“copy_from_user”调用类似于:

copy_from_user(data_value, data.ptr.buffer, data_size)

换句话说,我想知道如何声明 data_value 参数并为其分配内存(例如 kzalloc,...)?

【问题讨论】:

  • 如果您只想要一些任意内存,您可能需要查看kmalloc(),这是正确的选择。

标签: c pointers linux-kernel malloc allocation


【解决方案1】:

如果你知道你的数据很小,比如 100 字节,你可以声明一个 char 数组。 usigned char kernel_cmd_buf[129];

【讨论】:

    猜你喜欢
    • 2014-08-27
    • 1970-01-01
    • 1970-01-01
    • 2011-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-09
    • 2014-05-22
    相关资源
    最近更新 更多