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 ); | 
vmauser vma to map to
addrtarget user address of this page
pfnsource kernel pfn
pgprotpgprot 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.