代码拉取完成,页面将自动刷新
int get_user_pages ( struct task_struct * tsk, / the task_struct to use for page fault accounting, or NULL if faults are not to be recorded. 一般选择current
struct mm_struct * mm, 进程的内存占用结构,如current->mm,
unsigned long start, 要获取其页面的起始逻辑地址,它是用户空间使用的一个地址
int nr_pages, 要获取的页数
int write, 是否要被调用者写入
int force, 存放获取的 struct page的指针数组 (至少有 nr_pages 指定的长度)
struct page ** pages, 返回各个页对应的struct vm_area_struct,可以传入NULL表示不获取
描述:
获取用户区进程使用内存的某个页(struct page),然后可以在内核区通过kmap_atomic(), kmap()等函数映射到内核区线性地址,从而可以在内核区向其写入数据。
返回得到的pages数目。这有可能比需要的数目要少,如果nr_pages是0或者负数,返回0。如果没有得到pages 那么返回 -errno.
使用ioremap()函数把物理内存映射到逻辑内核空间。如果你的处理器内部有cache,那么你要改用ioremap_nocache(),要不然会耗费cache空间
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。