xref: /haiku/headers/private/kernel/arch/vm.h (revision fc7456e9b1ec38c941134ed6d01c438cf289381e)
1 /*
2  * Copyright 2002-2007, Axel Dörfler, axeld@pinc-software.de.
3  * Distributed under the terms of the MIT License.
4  *
5  * Copyright 2001-2002, Travis Geiselbrecht. All rights reserved.
6  * Distributed under the terms of the NewOS License.
7  */
8 #ifndef KERNEL_ARCH_VM_H
9 #define KERNEL_ARCH_VM_H
10 
11 
12 #include <arch_vm.h>
13 
14 #include <SupportDefs.h>
15 
16 
17 struct kernel_args;
18 struct VMAddressSpace;
19 struct VMArea;
20 
21 
22 #ifdef __cplusplus
23 extern "C" {
24 #endif
25 
26 status_t arch_vm_init(struct kernel_args *args);
27 status_t arch_vm_init_post_area(struct kernel_args *args);
28 status_t arch_vm_init_end(struct kernel_args *args);
29 status_t arch_vm_init_post_modules(struct kernel_args *args);
30 void arch_vm_aspace_swap(struct VMAddressSpace *from,
31 	struct VMAddressSpace *to);
32 bool arch_vm_supports_protection(uint32 protection);
33 
34 status_t arch_vm_set_memory_type(struct VMArea *area, phys_addr_t physicalBase,
35 	uint32 type, uint32 *effectiveType);
36 void arch_vm_unset_memory_type(struct VMArea *area);
37 
38 #ifdef __cplusplus
39 }
40 #endif
41 
42 #endif	/* KERNEL_ARCH_VM_H */
43