1 /* 2 * Copyright 2007, Haiku Inc. All rights reserved. 3 * Distributed under the terms of the MIT License. 4 * 5 * Authors: 6 * François Revol <revol@free.fr> 7 */ 8 9 #include <arch/cpu.h> 10 11 #include <arch_040_mmu.h> 12 13 #define ARCH_M68K_MMU_TYPE 68040 14 15 #include "arch_vm_translation_map_impl.cpp" 16 17 static void 18 set_pgdir(void *rt) 19 { 20 uint32 rp; 21 rp = (uint32)rt & ~((1 << 9) - 1); 22 23 asm volatile( \ 24 "movec %0,%%srp\n" \ 25 "movec %0,%%urp\n" \ 26 : : "d"(rp)); 27 28 } 29 30 31 struct m68k_vm_ops m68040_vm_ops = { 32 _m68k_translation_map_get_pgdir, 33 m68k_vm_translation_map_init_map, 34 m68k_vm_translation_map_init_kernel_map_post_sem, 35 m68k_vm_translation_map_init, 36 m68k_vm_translation_map_init_post_area, 37 m68k_vm_translation_map_init_post_sem, 38 m68k_vm_translation_map_early_map, 39 /*m68k_vm_translation_map_*/early_query, 40 set_pgdir, 41 #if 0 42 m68k_map_address_range, 43 m68k_unmap_address_range, 44 m68k_remap_address_range 45 #endif 46 m68k_vm_translation_map_is_kernel_page_accessible 47 }; 48