1 Star 0 Fork 0

dttolch/tools

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
get_user_pages.txt 1.54 KB
一键复制 编辑 原始数据 按行查看 历史
dttolch 提交于 2022-05-27 05:43 . update get_user_pages.txt.
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空间
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/dttolch/tools.git
git@gitee.com:dttolch/tools.git
dttolch
tools
tools
master

搜索帮助