diff options
author | kib <kib@FreeBSD.org> | 2014-08-24 07:53:15 +0000 |
---|---|---|
committer | kib <kib@FreeBSD.org> | 2014-08-24 07:53:15 +0000 |
commit | 25782a7fab8e1a1c60517dab118fec0a98648dd6 (patch) | |
tree | 007faf87a4ebb0e25b4a426bc07ab2babbead757 /sys/vm/pmap.h | |
parent | bee605bad28d58f69b83b3197efb0bd49b38de99 (diff) | |
download | FreeBSD-src-25782a7fab8e1a1c60517dab118fec0a98648dd6.zip FreeBSD-src-25782a7fab8e1a1c60517dab118fec0a98648dd6.tar.gz |
Merge the changes to pmap_enter(9) for sleep-less operation (requested
by flag). The ia64 pmap.c changes are direct commit, since ia64 is
removed on head.
MFC r269368 (by alc):
Retire PVO_EXECUTABLE.
MFC r269728:
Change pmap_enter(9) interface to take flags parameter and superpage
mapping size (currently unused).
MFC r269759 (by alc):
Update the text of a KASSERT() to reflect the changes in r269728.
MFC r269822 (by alc):
Change {_,}pmap_allocpte() so that they look for the flag
PMAP_ENTER_NOSLEEP instead of M_NOWAIT/M_WAITOK when deciding whether
to sleep on page table page allocation.
MFC r270151 (by alc):
Replace KASSERT that no PV list locks are held with a conditional
unlock.
Reviewed by: alc
Approved by: re (gjb)
Sponsored by: The FreeBSD Foundation
Diffstat (limited to 'sys/vm/pmap.h')
-rw-r--r-- | sys/vm/pmap.h | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/sys/vm/pmap.h b/sys/vm/pmap.h index 0c45e33..2e7b19d 100644 --- a/sys/vm/pmap.h +++ b/sys/vm/pmap.h @@ -97,6 +97,13 @@ struct thread; */ extern vm_offset_t kernel_vm_end; +/* + * Flags for pmap_enter(). The bits in the low-order byte are reserved + * for the protection code (vm_prot_t) that describes the fault type. + */ +#define PMAP_ENTER_NOSLEEP 0x0100 +#define PMAP_ENTER_WIRED 0x0200 + void pmap_activate(struct thread *td); void pmap_advise(pmap_t pmap, vm_offset_t sva, vm_offset_t eva, int advice); @@ -108,8 +115,8 @@ void pmap_copy(pmap_t, pmap_t, vm_offset_t, vm_size_t, vm_offset_t); void pmap_copy_page(vm_page_t, vm_page_t); void pmap_copy_pages(vm_page_t ma[], vm_offset_t a_offset, vm_page_t mb[], vm_offset_t b_offset, int xfersize); -void pmap_enter(pmap_t, vm_offset_t, vm_prot_t, vm_page_t, - vm_prot_t, boolean_t); +int pmap_enter(pmap_t pmap, vm_offset_t va, vm_page_t m, + vm_prot_t prot, u_int flags, int8_t psind); void pmap_enter_object(pmap_t pmap, vm_offset_t start, vm_offset_t end, vm_page_t m_start, vm_prot_t prot); void pmap_enter_quick(pmap_t pmap, vm_offset_t va, vm_page_t m, |