Query: vm_insert_page
OS: centos
Section: 9
Format: Original Unix Latex Style Formatted with HTML and a Horizontal Scroll Bar
VM_INSERT_PAGE(9) Memory Management in Linux VM_INSERT_PAGE(9)NAMEvm_insert_page - insert single page into user vmaSYNOPSISint vm_insert_page(struct vm_area_struct * vma, unsigned long addr, struct page * page);ARGUMENTSvma user vma to map to addr target user address of this page page source kernel pageDESCRIPTIONThis 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. Usually this function is called from f_op->mmap handler under mm->mmap_sem write-lock, so it can change vma->vm_flags. Caller must set VM_MIXEDMAP on vma if it wants to call this function from other places, for example from page-fault handler.COPYRIGHTKernel Hackers Manual 3.10 June 2014 VM_INSERT_PAGE(9)