|VM_PROT_READ||A read access to the given virtual address triggered the call.|
|VM_PROT_WRITE||A write access to the given virtual address triggered the call.|
|VM_PROT_EXECUTE||An execute access to the given virtual address triggered the call.|
|PMAP_ENTER_WIRED||The mapping should be marked as wired.|
|This function may not sleep during creation of the mapping. If the mapping cannot be created without sleeping, an appropriate Mach VM error is returned.|
The psind parameter specifies the page size that should be used by the mapping. The supported page sizes are described by the global array pagesizes. The desired page size is specified by passing the index of the array element that equals the desired page size.
When the pmap_enter function destroys or updates a managed mapping, including an existing mapping at virtual address va, it updates the vm_page structure corresponding to the previously mapped physical page. If the physical page was accessed through the managed mapping, then the vm_page structures PGA_REFERENCED aflag is set. If the physical page was modified through the managed mapping, then the vm_page_dirty function is called on the vm_page structure.
The PGA_WRITEABLE aflag must be set for the page m if the new mapping is managed and writeable. It is advised to clear PGA_WRITEABLE for destroyed mappings if the implementation can ensure that no other writeable managed mappings for the previously mapped pages exist.
If the page m is managed, the page must be busied by the caller or the owning object must be locked. In the later case, the PMAP_ENTER_NOSLEEP must be specified by the caller.
The pmap_enter function must handle the multiprocessor TLB consistency for the given address.
On amd64, arm and i386 architectures the existing implementation of the pmap_enter function is incomplete, only value 0 for psind is supported. Other supported architectures have pagesizes array of size 1.
If successful, the pmap_enter function returns KERN_SUCCESS. If the PMAP_ENTER_NOSLEEP flag was specified and the resources required for the mapping cannot be acquired without sleeping, KERN_RESOURCE_SHORTAGE is returned.
This manual page was first written by
.An Bruce M Simpson Aq Mt email@example.com and then rewritten by
.An Alan Cox Aq Mt alc@FreeBSD.org and
.An Konstantin Belousov Aq Mt kib@FreeBSD.org .