rem: err = vm_get_physical_page(ADDR_REVERSE_SHIFT(pd[index].addr), (addr *)&pt, PHYSICAL_PAGE_NO_WAIT);
add: err = get_physical_page_tmap(ADDR_REVERSE_SHIFT(pd[index].addr), (addr_t *)&pt, PHYSICAL_PAGE_NO_WAIT);
context: query_tmap(vm_translation_map *map, addr va, addr *out_physical, unsigned int *out_flags){	ptentry *pt;	pdentry *pd = map->arch_data->pgdir_virt;	int index;	int err;	// default the flags to not present	*out_flags = 0;	*out_physical = 0;	index = VADDR_TO_PDENT(va);	if (pd[index].present == 0) {		// no pagetable here		return B_NO_ERROR;	}	do {		err = vm_get_physical_page(ADDR_REVERSE_SHIFT(pd[index].addr), (addr *)&pt, PHYSICAL_PAGE_NO_WAIT);	} while (err < 0);	index = VADDR_TO_PTENT(va);	*out_physical = ADDR_REVERSE_SHIFT(pt[index].addr);	// read in the page state flags, clearing the modified and accessed flags in the process	*out_flags = 0;	*out_flags |= pt[index].rw ? LOCK_RW : LOCK_RO;	*out_flags |= pt[index].user ? 0 : LOCK_KERNEL;	*out_flags |= pt[index].dirty ? PAGE_MODIFIED : 0;	*out_flags |= pt[index].accessed ? PAGE_ACCESSED : 0;	*out_flags |= pt[index].present ? PAGE_PRESENT : 0;	vm_put_physical_page((addr)pt);	TRACE(("query_tmap: returning pa 0x%x for va 0x%x\n", *out_physical, va));	return 0;}