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