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