Make UEFI boot-platform build again
[haiku.git] / headers / private / system / vm_defs.h
blobc5f405014bca854b14f5aa8f587017c03e9c96ed
1 /*
2 * Copyright 2002-2008, Axel Dörfler, axeld@pinc-software.de. All rights reserved.
3 * Distributed under the terms of the MIT License.
5 * Copyright 2001-2002, Travis Geiselbrecht. All rights reserved.
6 * Distributed under the terms of the NewOS License.
7 */
8 #ifndef _SYSTEM_VM_DEFS_H
9 #define _SYSTEM_VM_DEFS_H
11 #include <OS.h>
14 // additional protection flags
15 // Note: the VM probably won't support all combinations - it will try
16 // its best, but create_area() will fail if it has to.
17 // Of course, the exact behaviour will be documented somewhere...
19 #define B_KERNEL_EXECUTE_AREA 0x40
20 #define B_KERNEL_STACK_AREA 0x80
22 #define B_USER_PROTECTION \
23 (B_READ_AREA | B_WRITE_AREA | B_EXECUTE_AREA | B_STACK_AREA)
24 #define B_KERNEL_PROTECTION \
25 (B_KERNEL_READ_AREA | B_KERNEL_WRITE_AREA | B_KERNEL_EXECUTE_AREA \
26 | B_KERNEL_STACK_AREA)
28 // TODO: These aren't really a protection flags, but since the "protection"
29 // field is the only flag field, we currently use it for this.
30 // A cleaner approach would be appreciated - maybe just an official generic
31 // flags region in the protection field.
32 #define B_OVERCOMMITTING_AREA 0x1000
33 #define B_SHARED_AREA 0x2000
34 #define B_KERNEL_AREA 0x4000
35 // Usable from userland according to its protection flags, but the area
36 // itself is not deletable, resizable, etc from userland.
38 #define B_USER_AREA_FLAGS (B_USER_PROTECTION | B_OVERCOMMITTING_AREA)
39 #define B_KERNEL_AREA_FLAGS \
40 (B_KERNEL_PROTECTION | B_USER_CLONEABLE_AREA | B_SHARED_AREA)
42 // mapping argument for several internal VM functions
43 enum {
44 REGION_NO_PRIVATE_MAP = 0,
45 REGION_PRIVATE_MAP
48 enum {
49 // TODO: these are here only temporarily - it's a private
50 // addition to the BeOS create_area() lock flags
51 B_ALREADY_WIRED = 7,
54 #define MEMORY_TYPE_SHIFT 28
57 #endif /* _SYSTEM_VM_DEFS_H */