Merge branch 'master' of ssh://waterman@scm.millennium.berkeley.edu/project/cs/radlab...
[akaros.git] / kern / include / ros / mman.h
1 /*
2  * Copyright (c) 2009 The Regents of the University of California
3  * Barret Rhoden <brho@cs.berkeley.edu>
4  * See LICENSE for details.
5  *
6  * Memory management flags, currently used in mmap().
7  * Try to keep these in sync with /usr/include/bits/mman.h so we have less
8  * issues with userspace.
9  */
10
11 #ifndef ROS_INCLUDE_MMAN_H
12 #define ROS_INCLUDE_MMAN_H
13
14 /* Memory protection states (what you're allowed to do */
15 #define PROT_READ               0x1
16 #define PROT_WRITE              0x2
17 #define PROT_EXEC               0x4
18 #define PROT_NONE               0x0
19 #define PROT_GROWSDOWN  0x01000000
20 #define PROT_GROWSUP    0x02000000
21 // TODO NOT A REAL STATE
22 #define PROT_UNMAP              0x100
23
24 /* mmap flags, only anonymous is supported now, feel free to pass others */
25 #define MAP_SHARED              0x01
26 #define MAP_PRIVATE             0x02
27 #define MAP_FIXED               0x10
28 #define MAP_ANONYMOUS   0x20
29 #define MAP_ANON MAP_ANONYMOUS
30
31 #define MAP_GROWSDOWN   0x00100
32 #define MAP_DENYWRITE   0x00800
33 #define MAP_EXECUTABLE  0x01000
34 #define MAP_LOCKED              0x02000
35 #define MAP_NORESERVE   0x04000
36 #define MAP_POPULATE    0x08000
37 #define MAP_NONBLOCK    0x10000
38 #define MAP_STACK               0x20000
39
40 /* Other mmap flags, which we probably won't support
41 #define MAP_32BIT
42 */
43
44 #endif /* !ROS_INCLUDE_MMAN_H */