Keyboard/char input buffering and irq handling
[akaros.git] / kern / include / ros / mman.h
index 4bc9130..26dd516 100644 (file)
@@ -3,32 +3,44 @@
  * Barret Rhoden <brho@cs.berkeley.edu>
  * See LICENSE for details.
  *
- * Memory management flags, currently used in mmap()
+ * Memory management flags, currently used in mmap().
+ * Try to keep these in sync with /usr/include/bits/mman.h so we have less
+ * issues with userspace.
  */
 
 #ifndef ROS_INCLUDE_MMAN_H
 #define ROS_INCLUDE_MMAN_H
 
 /* Memory protection states (what you're allowed to do */
-#define PROT_NONE              0x1
-#define PROT_EXEC              0x2
-#define PROT_READ              0x4
-#define PROT_WRITE             0x8
+#define PROT_READ              0x1
+#define PROT_WRITE             0x2
+#define PROT_EXEC              0x4
+#define PROT_NONE              0x0
+#define PROT_GROWSDOWN 0x01000000
+#define PROT_GROWSUP   0x02000000
+// TODO NOT A REAL STATE
+#define PROT_UNMAP             0x100
 
 /* mmap flags, only anonymous is supported now, feel free to pass others */
-#define MAP_SHARED             0x001
-#define MAP_PRIVATE            0x002
-#define MAP_ANONYMOUS  0x004
-#define MAP_FIXED              0x008
-#define MAP_GROWSDOWN  0x010
-#define MAP_STACK              0x020
-#define MAP_POPULATE   0x040
-#define MAP_NONBLOCK   0x080
-#define MAP_NORESERVE  0x100
+#define MAP_SHARED             0x01
+#define MAP_PRIVATE            0x02
+#define MAP_FIXED              0x10
+#define MAP_ANONYMOUS  0x20
+#define MAP_ANON MAP_ANONYMOUS
+
+#define MAP_GROWSDOWN  0x00100
+#define MAP_DENYWRITE  0x00800
+#define MAP_EXECUTABLE 0x01000
+#define MAP_LOCKED             0x02000
+#define MAP_NORESERVE  0x04000
+#define MAP_POPULATE   0x08000
+#define MAP_NONBLOCK   0x10000
+#define MAP_STACK              0x20000
+
+#define MAP_FAILED             ((void*)-1)
 
 /* Other mmap flags, which we probably won't support
 #define MAP_32BIT
-#define MAP_LOCKED
 */
 
 #endif /* !ROS_INCLUDE_MMAN_H */