xref: /haiku/src/system/kernel/arch/arm/arch_vm.cpp (revision 23eafdaf313f2e756170f6a543205311a4d9bc96)
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