VM_INSERT_PAGE(9) Memory Management in Linux VM_INSERT_PAGE(9)NAMEvm_insert_page - insert single page into user vma
SYNOPSIS
int vm_insert_page(struct vm_area_struct * vma, unsigned long addr,
struct page * page);
ARGUMENTS
vma
user vma to map to
addr
target user address of this page
page
source kernel page
DESCRIPTION
This allows drivers to insert individual pages they´ve allocated into a
user vma.
The page has to be a nice clean _individual_ kernel allocation. If you
allocate a compound page, you need to have marked it as such
(__GFP_COMP), or manually just split the page up yourself (see
split_page).
NOTE! Traditionally this was done with “remap_pfn_range” which took an
arbitrary page protection parameter. This doesn´t allow that. Your vma
protection will have to be set up correctly, which means that if you
want a shared writable mapping, you´d better ask for a shared writable
mapping!
The page does not need to be reserved.
COPYRIGHTKernel Hackers Manual 2.6. November 2013 VM_INSERT_PAGE(9)