0

有没有办法复制/映射返回page_address到用户空间缓冲区传递文件的read函数

我读的是

 page_address() 

返回页面的虚拟地址。并获取指向内核数据类型的页面的指针

例如我有一个包含这个的函数

void *rx_buf= page_address(arr_pages[i])
char buf[4094];
memcpy(buf,rx_bu,sizeof(page))

我可以使用 memcpy 或 copy_to_user 吗

memcpy(buf,rx_buf,sizeof(page));

或者

copy_to_user(buf,rx_buf,sizeof(struct page));

我读copy_to_user的内容不允许这样做,因为如果buf是用户空间缓冲区块,那么它会检查缓冲区是否在内存的用户部分中。这也阻止了用户空间应用程序要求内核读/写内核地址;

所以我想知道有没有办法将返回复制 page_address到用户空间缓冲区

4

0 回答 0