Changeset View
Changeset View
Standalone View
Standalone View
sys/i386/i386/pmap.c
Show First 20 Lines • Show All 1,697 Lines • ▼ Show 20 Lines | |||||
} | } | ||||
/*************************************************** | /*************************************************** | ||||
* Page table page management routines..... | * Page table page management routines..... | ||||
***************************************************/ | ***************************************************/ | ||||
static __inline void | static __inline void | ||||
pmap_free_zero_pages(struct spglist *free) | pmap_free_zero_pages(struct spglist *free) | ||||
{ | { | ||||
vm_page_t m; | |||||
int count; | int count; | ||||
for (count = 0; (m = SLIST_FIRST(free)) != NULL; count++) { | count = vm_page_free_spglist(free); | ||||
SLIST_REMOVE_HEAD(free, plinks.s.ss); | |||||
/* Preserve the page's PG_ZERO setting. */ | |||||
vm_page_free_toq(m); | |||||
} | |||||
atomic_subtract_int(&vm_cnt.v_wire_count, count); | atomic_subtract_int(&vm_cnt.v_wire_count, count); | ||||
} | } | ||||
/* | /* | ||||
* Schedule the specified unused page table page to be freed. Specifically, | * Schedule the specified unused page table page to be freed. Specifically, | ||||
* add the page to the specified list of pages that will be released to the | * add the page to the specified list of pages that will be released to the | ||||
* physical memory manager after the TLB has been updated. | * physical memory manager after the TLB has been updated. | ||||
*/ | */ | ||||
▲ Show 20 Lines • Show All 3,958 Lines • Show Last 20 Lines |