get_user_pages — 获取用户区进程使用内存的某个页

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.

原文链接:

http://www.kernel.org/doc/htmldocs/kernel-api/API-get-user-pages.html


澄清一个get_user_pages的事实

http://blog.csdn.net/dog250/article/details/5303268

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值