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
17struct kernel_args;
18struct VMAddressSpace;
19struct VMArea;
20
21
22#ifdef __cplusplus
23extern "C" {
24#endif
25
26status_t arch_vm_init(struct kernel_args *args);
27status_t arch_vm_init_post_area(struct kernel_args *args);
28status_t arch_vm_init_end(struct kernel_args *args);
29status_t arch_vm_init_post_modules(struct kernel_args *args);
30void arch_vm_aspace_swap(struct VMAddressSpace *from,
31	struct VMAddressSpace *to);
32bool arch_vm_supports_protection(uint32 protection);
33
34status_t arch_vm_set_memory_type(struct VMArea *area, phys_addr_t physicalBase,
35	uint32 type);
36void arch_vm_unset_memory_type(struct VMArea *area);
37
38#ifdef __cplusplus
39}
40#endif
41
42#endif	/* KERNEL_ARCH_VM_H */
43