Add a new parameter to pmap_extract_and_hold() that is needed to eliminate
Giant from vmapbuf(). Idea from: tegge
This commit is contained in:
parent
60909145e3
commit
76fcb264a0
@ -815,10 +815,11 @@ pmap_extract(pmap, va)
|
||||
* Routine: pmap_extract_and_hold
|
||||
* Function:
|
||||
* Atomically extract and hold the physical page
|
||||
* with the given pmap and virtual address.
|
||||
* with the given pmap and virtual address pair
|
||||
* if that mapping permits the given protection.
|
||||
*/
|
||||
vm_page_t
|
||||
pmap_extract_and_hold(pmap_t pmap, vm_offset_t va)
|
||||
pmap_extract_and_hold(pmap_t pmap, vm_offset_t va, vm_prot_t prot)
|
||||
{
|
||||
vm_paddr_t pa;
|
||||
vm_page_t m;
|
||||
|
@ -753,10 +753,11 @@ pmap_extract(pmap, va)
|
||||
* Routine: pmap_extract_and_hold
|
||||
* Function:
|
||||
* Atomically extract and hold the physical page
|
||||
* with the given pmap and virtual address.
|
||||
* with the given pmap and virtual address pair
|
||||
* if that mapping permits the given protection.
|
||||
*/
|
||||
vm_page_t
|
||||
pmap_extract_and_hold(pmap_t pmap, vm_offset_t va)
|
||||
pmap_extract_and_hold(pmap_t pmap, vm_offset_t va, vm_prot_t prot)
|
||||
{
|
||||
vm_paddr_t pa;
|
||||
vm_page_t m;
|
||||
|
@ -865,10 +865,11 @@ pmap_extract(pmap, va)
|
||||
* Routine: pmap_extract_and_hold
|
||||
* Function:
|
||||
* Atomically extract and hold the physical page
|
||||
* with the given pmap and virtual address.
|
||||
* with the given pmap and virtual address pair
|
||||
* if that mapping permits the given protection.
|
||||
*/
|
||||
vm_page_t
|
||||
pmap_extract_and_hold(pmap_t pmap, vm_offset_t va)
|
||||
pmap_extract_and_hold(pmap_t pmap, vm_offset_t va, vm_prot_t prot)
|
||||
{
|
||||
vm_paddr_t pa;
|
||||
vm_page_t m;
|
||||
|
@ -1106,10 +1106,11 @@ pmap_extract(pmap, va)
|
||||
* Routine: pmap_extract_and_hold
|
||||
* Function:
|
||||
* Atomically extract and hold the physical page
|
||||
* with the given pmap and virtual address.
|
||||
* with the given pmap and virtual address pair
|
||||
* if that mapping permits the given protection.
|
||||
*/
|
||||
vm_page_t
|
||||
pmap_extract_and_hold(pmap_t pmap, vm_offset_t va)
|
||||
pmap_extract_and_hold(pmap_t pmap, vm_offset_t va, vm_prot_t prot)
|
||||
{
|
||||
vm_paddr_t pa;
|
||||
vm_page_t m;
|
||||
|
@ -622,10 +622,11 @@ pmap_extract(pmap_t pm, vm_offset_t va)
|
||||
|
||||
/*
|
||||
* Atomically extract and hold the physical page with the given
|
||||
* pmap and virtual address pair.
|
||||
* pmap and virtual address pair if that mapping permits the given
|
||||
* protection.
|
||||
*/
|
||||
vm_page_t
|
||||
pmap_extract_and_hold(pmap_t pmap, vm_offset_t va)
|
||||
pmap_extract_and_hold(pmap_t pmap, vm_offset_t va, vm_prot_t prot)
|
||||
{
|
||||
vm_paddr_t pa;
|
||||
vm_page_t m;
|
||||
|
@ -106,7 +106,8 @@ void pmap_enter(pmap_t, vm_offset_t, vm_page_t, vm_prot_t,
|
||||
vm_page_t pmap_enter_quick(pmap_t pmap, vm_offset_t va, vm_page_t m,
|
||||
vm_page_t mpte);
|
||||
vm_paddr_t pmap_extract(pmap_t pmap, vm_offset_t va);
|
||||
vm_page_t pmap_extract_and_hold(pmap_t pmap, vm_offset_t va);
|
||||
vm_page_t pmap_extract_and_hold(pmap_t pmap, vm_offset_t va,
|
||||
vm_prot_t prot);
|
||||
void pmap_growkernel(vm_offset_t);
|
||||
void pmap_init(vm_paddr_t, vm_paddr_t);
|
||||
boolean_t pmap_is_modified(vm_page_t m);
|
||||
|
Loading…
x
Reference in New Issue
Block a user