Lines Matching refs:page

84 				vm_page *page;
92 page = vm_lookup_page(pgtbl_pn);
93 pgtbl = (page_table_entry *)page;
95 if (!page) {
96 panic("destroy_tmap: didn't find pgtable page\n");
99 DEBUG_PAGE_ACCESS_START(page);
100 vm_page_set_state(page, PAGE_STATE_FREE);
117 vm_page* page = vm_lookup_page(address / B_PAGE_SIZE);
118 if (!page)
119 panic("destroy_tmap: didn't find pgtable page\n");
120 DEBUG_PAGE_ACCESS_START(page);
121 vm_page_set_state(page, PAGE_STATE_FREE);
146 // allocate a physical page mapper
152 // allocate the page root
158 // look up the page directory's physical address
167 // get the physical page mapper
195 // how much for page directories
197 // and page tables themselves
232 // check to see if a page directory exists for this range
236 vm_page *page;
240 page = vm_page_allocate_page(reservation,
243 DEBUG_PAGE_ACCESS_END(page);
245 pgdir = (phys_addr_t)page->physical_page_number * B_PAGE_SIZE;
247 TRACE("::Map: asked for free page for pgdir. 0x%lx\n", pgdir);
249 // for each pgdir on the allocated page:
259 // update any other page roots, if it maps kernel space
280 // we want the table at rindex, not at rindex%(tbl/page)
283 // check to see if a page table exists for this range
287 vm_page *page;
291 page = vm_page_allocate_page(reservation,
294 DEBUG_PAGE_ACCESS_END(page);
296 pgtable = (phys_addr_t)page->physical_page_number * B_PAGE_SIZE;
298 TRACE("::Map: asked for free page for pgtable. 0x%lx\n", pgtable);
300 // for each pgtable on the allocated page:
310 // no need to update other page directories for kernel space;
324 // we want the table at rindex, not at rindex%(tbl/page)
364 // no pagedir here, move the start up to access the next page
375 // we want the table at rindex, not at rindex%(tbl/page)
381 // no pagedir here, move the start up to access the next page
389 // we want the table at rindex, not at rindex%(tbl/page)
397 // page mapping not valid
401 TRACE("::Unmap: removing page 0x%lx\n", start);
420 /*! Caller must have locked the cache of the page to be unmapped.
467 // page mapping not valid
480 // NOTE: Between clearing the page table entry and Flush() other
482 // same team) could still access the page in question via their cached
484 // effect that the page looks unmodified (and might thus be recycled),
527 // no page table here, move the start up to access the next page
541 // no page table here, move the start up to access the next page
576 // get the page
577 vm_page* page = vm_lookup_page(
579 ASSERT(page != NULL);
581 DEBUG_PAGE_ACCESS_START(page);
583 // transfer the accessed/dirty flags to the page
585 page->accessed = true;
587 page->modified = true;
590 // page
594 = page->mappings.GetIterator();
603 page->mappings.Remove(mapping);
606 page->DecrementWiredCount();
608 if (!page->IsMapped()) {
612 if (page->Cache()->temporary)
613 vm_page_set_state(page, PAGE_STATE_INACTIVE);
614 else if (page->modified)
615 vm_page_set_state(page, PAGE_STATE_MODIFIED);
617 vm_page_set_state(page, PAGE_STATE_CACHED);
621 DEBUG_PAGE_ACCESS_END(page);
629 // TODO: As in UnmapPage() we can lose page dirty flags here. ATM it's not
666 vm_page* page = mapping->page;
667 page->mappings.Remove(mapping);
669 VMCache* cache = page->Cache();
672 if (!page->IsMapped()) {
679 + ((page->cache_offset * B_PAGE_SIZE) - area->cache_offset);
684 panic("page %p has mapping for area %p (%#" B_PRIxADDR "), but "
685 "has no page root entry", page, area, address);
697 panic("page %p has mapping for area %p (%#" B_PRIxADDR "), but "
698 "has no page dir entry", page, area, address);
715 panic("page %p has mapping for area %p (%#" B_PRIxADDR "), but "
716 "has no page table entry", page, area, address);
720 // transfer the accessed/dirty flags to the page and invalidate
723 page->accessed = true;
730 page->modified = true;
733 DEBUG_PAGE_ACCESS_START(page);
736 vm_page_set_state(page, PAGE_STATE_INACTIVE);
737 else if (page->modified)
738 vm_page_set_state(page, PAGE_STATE_MODIFIED);
740 vm_page_set_state(page, PAGE_STATE_CACHED);
742 DEBUG_PAGE_ACCESS_END(page);
804 // read in the page state flags
839 // map page table entry
872 // read in the page state flags
915 // no page table here, move the start up to access the next page
931 // page mapping not valid
935 TRACE("protect_tmap: protect page 0x%lx\n", start);
1036 // page mapping not valid
1041 // page was accessed -- just clear the flags
1047 // page hasn't been accessed -- unmap it
1104 // M68K fits several page tables in a single page...