rem: "page_table", (void **)&sPageTable, REGION_ADDR_EXACT_ADDRESS, sPageTableSize, REGION_WIRING_WIRED_ALREADY, LOCK_KERNEL | LOCK_RW);
add: "page_table", (void **)&sPageTable, B_EXACT_ADDRESS, sPageTableSize, B_ALREADY_WIRED, B_KERNEL_READ_AREA | B_KERNEL_WRITE_AREA);
context: vm_translation_map_module_init2(kernel_args *ka){	// create a region to cover the page table	sPageTableRegion = vm_create_anonymous_region(vm_get_kernel_aspace_id(), 		"page_table", (void **)&sPageTable, REGION_ADDR_EXACT_ADDRESS, 		sPageTableSize, REGION_WIRING_WIRED_ALREADY, LOCK_KERNEL | LOCK_RW);	// ToDo: for now just map 0 - 512MB of physical memory to the iospace region	block_address_translation bat;	bat.Clear();	bat.SetVirtualAddress((void *)IOSPACE_BASE);	bat.page_index = IOSPACE_BASE;	bat.length = BAT_LENGTH_256MB;	bat.kernel_valid = true;	bat.SetPhysicalAddress(NULL);	bat.memory_coherent = true;	bat.protection = BAT_READ_WRITE;	set_ibat2(&bat);	set_dbat2(&bat);	isync();	bat.SetVirtualAddress((void *)(IOSPACE_BASE + 256 * 1024 * 1024));	bat.SetPhysicalAddress((void *)(256 * 1024 * 1024));	set_ibat3(&bat);	set_dbat3(&bat);	isync();/*		int ibats[8], dbats[8];		getibats(ibats);		getdbats(dbats);		// use bat 2 & 3 to do this		ibats[4] = dbats[4] = IOSPACE_BASE | BATU_LEN_256M | BATU_VS;		ibats[5] = dbats[5] = 0x0 | BATL_MC | BATL_PP_RW;		ibats[6] = dbats[6] = (IOSPACE_BASE + 256*1024*1024) | BATU_LEN_256M | BATU_VS;		ibats[7] = dbats[7] = (256*1024*1024) | BATL_MC | BATL_PP_RW;		setibats(ibats);		setdbats(dbats);*/	// create a region to cover the iospace	void *temp = (void *)IOSPACE_BASE;	vm_create_null_region(vm_get_kernel_aspace_id(), "iospace", &temp,		REGION_ADDR_EXACT_ADDRESS, IOSPACE_SIZE);	return 0;}