xref: /haiku/headers/private/kernel/arch/vm_translation_map.h (revision f2ced752a08ff5d2618826bcd3ae3976c9f3e92e)
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 initialization,
27 // 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 #ifdef __cplusplus
32 }
33 #endif
34 
35 #include <arch_vm_translation_map.h>
36 
37 #endif	/* KERNEL_ARCH_VM_TRANSLATION_MAP_H */
38 
39