vm_insert_pfn_prot — insert single pfn into user vma with specified pgprot


int vm_insert_pfn_prot (struct vm_area_struct * vma,
 unsigned long addr,
 unsigned long pfn,
 pgprot_t pgprot);


struct vm_area_struct * vma

user vma to map to

unsigned long addr

target user address of this page

unsigned long pfn

source kernel pfn

pgprot_t pgprot

pgprot flags for the inserted page


This is exactly like vm_insert_pfn, except that it allows drivers to to override pgprot on a per-page basis.

This only makes sense for IO mappings, and it makes no sense for cow mappings. In general, using multiple vmas is preferable; vm_insert_pfn_prot should only be used if using multiple VMAs is impractical.