1*23eafdafSFrançois Revol /* 2*23eafdafSFrançois Revol * Copyright 2007, François Revol, revol@free.fr. 3*23eafdafSFrançois Revol * Distributed under the terms of the MIT License. 4*23eafdafSFrançois Revol * 5*23eafdafSFrançois Revol * Copyright 2003-2005, Axel Dörfler, axeld@pinc-software.de. 6*23eafdafSFrançois Revol * Distributed under the terms of the MIT License. 7*23eafdafSFrançois Revol * 8*23eafdafSFrançois Revol * Copyright 2001, Travis Geiselbrecht. All rights reserved. 9*23eafdafSFrançois Revol * Distributed under the terms of the NewOS License. 10*23eafdafSFrançois Revol */ 11*23eafdafSFrançois Revol 12*23eafdafSFrançois Revol #include <KernelExport.h> 13*23eafdafSFrançois Revol 14*23eafdafSFrançois Revol #include <kernel.h> 15*23eafdafSFrançois Revol #include <boot/kernel_args.h> 16*23eafdafSFrançois Revol 17*23eafdafSFrançois Revol #include <vm.h> 18*23eafdafSFrançois Revol #include <vm_types.h> 19*23eafdafSFrançois Revol #include <arch/vm.h> 20*23eafdafSFrançois Revol //#include <arch_mmu.h> 21*23eafdafSFrançois Revol 22*23eafdafSFrançois Revol 23*23eafdafSFrançois Revol //#define TRACE_ARCH_VM 24*23eafdafSFrançois Revol #ifdef TRACE_ARCH_VM 25*23eafdafSFrançois Revol # define TRACE(x) dprintf x 26*23eafdafSFrançois Revol #else 27*23eafdafSFrançois Revol # define TRACE(x) ; 28*23eafdafSFrançois Revol #endif 29*23eafdafSFrançois Revol 30*23eafdafSFrançois Revol #warning M68K: WRITEME 31*23eafdafSFrançois Revol 32*23eafdafSFrançois Revol status_t 33*23eafdafSFrançois Revol arch_vm_init(kernel_args *args) 34*23eafdafSFrançois Revol { 35*23eafdafSFrançois Revol return B_OK; 36*23eafdafSFrançois Revol } 37*23eafdafSFrançois Revol 38*23eafdafSFrançois Revol 39*23eafdafSFrançois Revol status_t 40*23eafdafSFrançois Revol arch_vm_init2(kernel_args *args) 41*23eafdafSFrançois Revol { 42*23eafdafSFrançois Revol // int bats[8]; 43*23eafdafSFrançois Revol // int i; 44*23eafdafSFrançois Revol 45*23eafdafSFrançois Revol /**/ 46*23eafdafSFrançois Revol #warning M68K: disable TT0 and TT1, set up pmmu 47*23eafdafSFrançois Revol 48*23eafdafSFrançois Revol return B_OK; 49*23eafdafSFrançois Revol } 50*23eafdafSFrançois Revol 51*23eafdafSFrançois Revol 52*23eafdafSFrançois Revol status_t 53*23eafdafSFrançois Revol arch_vm_init_post_area(kernel_args *args) 54*23eafdafSFrançois Revol { 55*23eafdafSFrançois Revol return B_OK; 56*23eafdafSFrançois Revol } 57*23eafdafSFrançois Revol 58*23eafdafSFrançois Revol 59*23eafdafSFrançois Revol status_t 60*23eafdafSFrançois Revol arch_vm_init_end(kernel_args *args) 61*23eafdafSFrançois Revol { 62*23eafdafSFrançois Revol 63*23eafdafSFrançois Revol #warning M68K: unset TT0 now 64*23eafdafSFrançois Revol return B_OK; 65*23eafdafSFrançois Revol } 66*23eafdafSFrançois Revol 67*23eafdafSFrançois Revol 68*23eafdafSFrançois Revol status_t 69*23eafdafSFrançois Revol arch_vm_init_post_modules(kernel_args *args) 70*23eafdafSFrançois Revol { 71*23eafdafSFrançois Revol return B_OK; 72*23eafdafSFrançois Revol } 73*23eafdafSFrançois Revol 74*23eafdafSFrançois Revol 75*23eafdafSFrançois Revol void 76*23eafdafSFrançois Revol arch_vm_aspace_swap(struct vm_address_space *from, struct vm_address_space *to) 77*23eafdafSFrançois Revol { 78*23eafdafSFrançois Revol #warning ARM:WRITEME 79*23eafdafSFrançois Revol // m68k_set_pgdir(m68k_translation_map_get_pgdir(&to->translation_map)); 80*23eafdafSFrançois Revol } 81*23eafdafSFrançois Revol 82*23eafdafSFrançois Revol 83*23eafdafSFrançois Revol bool 84*23eafdafSFrançois Revol arch_vm_supports_protection(uint32 protection) 85*23eafdafSFrançois Revol { 86*23eafdafSFrançois Revol return true; 87*23eafdafSFrançois Revol } 88*23eafdafSFrançois Revol 89*23eafdafSFrançois Revol 90*23eafdafSFrançois Revol void 91*23eafdafSFrançois Revol arch_vm_unset_memory_type(vm_area *area) 92*23eafdafSFrançois Revol { 93*23eafdafSFrançois Revol } 94*23eafdafSFrançois Revol 95*23eafdafSFrançois Revol 96*23eafdafSFrançois Revol status_t 97*23eafdafSFrançois Revol arch_vm_set_memory_type(vm_area *area, addr_t physicalBase, uint32 type) 98*23eafdafSFrançois Revol { 99*23eafdafSFrançois Revol if (type == 0) 100*23eafdafSFrançois Revol return B_OK; 101*23eafdafSFrançois Revol 102*23eafdafSFrançois Revol return B_ERROR; 103*23eafdafSFrançois Revol } 104