xref: /haiku/headers/private/kernel/arch/vm_translation_map.h (revision b671e9bbdbd10268a042b4f4cc4317ccd03d105e)
1 /*
2 ** Copyright 2002-2004, The Haiku Team. All rights reserved.
3 ** Distributed under the terms of the Haiku 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_TRANSLATION_MAP_H
9 #define KERNEL_ARCH_VM_TRANSLATION_MAP_H
10 
11 
12 #include <vm_translation_map.h>
13 
14 
15 #ifdef __cplusplus
16 extern "C" {
17 #endif
18 
19 status_t arch_vm_translation_map_init_map(vm_translation_map *map, bool kernel);
20 status_t arch_vm_translation_map_init_kernel_map_post_sem(vm_translation_map *map);
21 
22 status_t arch_vm_translation_map_init(struct kernel_args *args);
23 status_t arch_vm_translation_map_init_post_area(struct kernel_args *args);
24 status_t arch_vm_translation_map_init_post_sem(struct kernel_args *args);
25 
26 // Quick function to map a page in regardless of map context. Used in VM
27 // initialization before most vm data structures exist.
28 status_t arch_vm_translation_map_early_map(struct kernel_args *args, addr_t va, addr_t pa,
29 	uint8 attributes, addr_t (*get_free_page)(struct kernel_args *));
30 
31 bool arch_vm_translation_map_is_kernel_page_accessible(addr_t virtualAddress,
32 		uint32 protection);
33 
34 #ifdef __cplusplus
35 }
36 #endif
37 
38 #include <arch_vm_translation_map.h>
39 
40 #endif	/* KERNEL_ARCH_VM_TRANSLATION_MAP_H */
41 
42