Lines Matching refs:page

38 WriteVmPage(vm_page* page)
41 (addr_t)(page->physical_page_number * B_PAGE_SIZE));
42 switch (page->State()) {
69 if (page->busy)
74 if (page->busy_writing)
79 if (page->accessed)
84 if (page->modified)
89 if (page->unused)
94 dprintf(" usage:%3u", page->usage_count);
95 dprintf(" wired:%5u", page->WiredCount());
98 vm_page_mappings::Iterator iterator = page->mappings.GetIterator();
129 vm_page* page = vm_lookup_page(ppn);
130 DEBUG_PAGE_ACCESS_START(page);
131 vm_page_set_state(page, PAGE_STATE_FREE);
170 vm_page* page = vm_page_allocate_page(reservation,
172 fPageTable = page->physical_page_number * B_PAGE_SIZE;
175 DEBUG_PAGE_ACCESS_END(page);
198 vm_page* page = vm_page_allocate_page(reservation,
200 page_num_t ppn = page->physical_page_number;
203 DEBUG_PAGE_ACCESS_END(page);
256 // Can't delete currently used page table
326 panic("can't allocate page table");
374 for (addr_t page = start; page < end; page += B_PAGE_SIZE) {
375 std::atomic<Pte>* pte = LookupPte(page, false, NULL);
380 InvalidatePage(page);
472 // get the page
473 vm_page* page = vm_lookup_page(oldPte.ppn);
474 ASSERT(page != NULL);
476 WriteVmPage(page); dprintf("\n");
479 DEBUG_PAGE_ACCESS_START(page);
481 // transfer the accessed/dirty flags to the page
482 page->accessed = oldPte.isAccessed;
483 page->modified = oldPte.isDirty;
486 // page
490 = page->mappings.GetIterator();
499 page->mappings.Remove(mapping);
502 page->DecrementWiredCount();
504 if (!page->IsMapped()) {
508 if (page->Cache()->temporary)
509 vm_page_set_state(page, PAGE_STATE_INACTIVE);
510 else if (page->modified)
511 vm_page_set_state(page, PAGE_STATE_MODIFIED);
513 vm_page_set_state(page, PAGE_STATE_CACHED);
517 DEBUG_PAGE_ACCESS_END(page);
524 // TODO: As in UnmapPage() we can lose page dirty flags here. ATM it's not
566 vm_page* page = mapping->page;
567 page->mappings.Remove(mapping);
569 VMCache* cache = page->Cache();
572 if (!page->IsMapped()) {
579 + ((page->cache_offset * B_PAGE_SIZE)
584 panic("page %p has mapping for area %p "
586 "page table", page, area, address);
592 // transfer the accessed/dirty flags to the page and
595 page->accessed = true;
602 page->modified = true;
605 DEBUG_PAGE_ACCESS_START(page);
608 vm_page_set_state(page,
610 } else if (page->modified) {
611 vm_page_set_state(page,
614 vm_page_set_state(page,
618 DEBUG_PAGE_ACCESS_END(page);
700 for (addr_t page = base; page < top; page += B_PAGE_SIZE) {
702 std::atomic<Pte>* pte = LookupPte(page, false, NULL);
704 TRACE("attempt to protect not mapped page: 0x%"
705 B_PRIxADDR "\n", page);
734 InvalidatePage(page);
1005 ", calling page fault handler\n", va0);
1046 ", calling page fault handler\n", va0);