Changeset View
Changeset View
Standalone View
Standalone View
sys/vm/vm_page.c
Show First 20 Lines • Show All 1,477 Lines • ▼ Show 20 Lines | |||||
*/ | */ | ||||
void | void | ||||
vm_page_dirty_KBI(vm_page_t m) | vm_page_dirty_KBI(vm_page_t m) | ||||
{ | { | ||||
/* Refer to this operation by its public name. */ | /* Refer to this operation by its public name. */ | ||||
KASSERT(vm_page_all_valid(m), ("vm_page_dirty: page is invalid!")); | KASSERT(vm_page_all_valid(m), ("vm_page_dirty: page is invalid!")); | ||||
m->dirty = VM_PAGE_BITS_ALL; | m->dirty = VM_PAGE_BITS_ALL; | ||||
m->oflags |= VPO_VMM_DIRTY; | |||||
} | |||||
uint8_t | |||||
vm_page_test_vmm_dirty(vm_page_t m) | |||||
{ | |||||
uint64_t value; | |||||
vm_page_xbusy(m); | |||||
vm_page_test_dirty(m); | |||||
vm_page_xunbusy(m); | |||||
// VM_OBJECT_ASSERT_WLOCKED(m->object); | |||||
value = m->oflags & VPO_VMM_DIRTY; | |||||
if (value == 0 && pmap_is_modified(m)) | |||||
value = 1; | |||||
if (value == 0) | |||||
return (0); | |||||
else | |||||
return (1); | |||||
} | } | ||||
/* | /* | ||||
* vm_page_insert: [ internal use only ] | * vm_page_insert: [ internal use only ] | ||||
* | * | ||||
* Inserts the given mem entry into the object and object list. | * Inserts the given mem entry into the object and object list. | ||||
* | * | ||||
* The object must be locked. | * The object must be locked. | ||||
▲ Show 20 Lines • Show All 4,047 Lines • Show Last 20 Lines |