Changeset View
Changeset View
Standalone View
Standalone View
head/sys/i386/i386/pmap.c
Show First 20 Lines • Show All 1,712 Lines • ▼ Show 20 Lines | pmap_free_zero_pages(struct spglist *free) | ||||
vm_page_t m; | vm_page_t m; | ||||
int count; | int count; | ||||
for (count = 0; (m = SLIST_FIRST(free)) != NULL; count++) { | for (count = 0; (m = SLIST_FIRST(free)) != NULL; count++) { | ||||
SLIST_REMOVE_HEAD(free, plinks.s.ss); | SLIST_REMOVE_HEAD(free, plinks.s.ss); | ||||
/* Preserve the page's PG_ZERO setting. */ | /* Preserve the page's PG_ZERO setting. */ | ||||
vm_page_free_toq(m); | vm_page_free_toq(m); | ||||
} | } | ||||
atomic_subtract_int(&vm_cnt.v_wire_count, count); | vm_wire_sub(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. | ||||
*/ | */ | ||||
static __inline void | static __inline void | ||||
▲ Show 20 Lines • Show All 3,956 Lines • Show Last 20 Lines |