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

来源:互联网 发布:cdma类的网络 编辑:程序博客网 时间:2024/06/06 16:32
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

原创粉丝点击