Index: generic/include/mm/as.h
===================================================================
--- generic/include/mm/as.h	(revision d1e414c63e2033f906d3c12947392b421a0998d6)
+++ generic/include/mm/as.h	(revision 2ba78108c2b47014f0f5835ad107f014e6f9e4d0)
@@ -49,7 +49,8 @@
 #define FLAG_AS_KERNEL	    (1 << 0)	/**< Kernel address space. */
 
-enum as_area_type {
-	AS_AREA_TEXT = 1, AS_AREA_DATA, AS_AREA_STACK 
-};
+/** Address space area flags. */
+#define AS_AREA_READ	1
+#define AS_AREA_WRITE	2
+#define AS_AREA_EXEC	4
 
 /** Address space area structure.
@@ -61,5 +62,5 @@
 	SPINLOCK_DECLARE(lock);
 	link_t link;
-	as_area_type_t type;
+	int flags;
 	size_t size;		/**< Size of this area in multiples of PAGE_SIZE. */
 	__address base;		/**< Base address of this area. */
@@ -104,5 +105,5 @@
 extern void as_init(void);
 extern as_t *as_create(int flags);
-extern as_area_t *as_area_create(as_t *as, as_area_type_t type, size_t size, __address base);
+extern as_area_t *as_area_create(as_t *as, int flags, size_t size, __address base);
 extern __address as_remap(as_t *as, __address address, size_t size, int flags);
 extern void as_set_mapping(as_t *as, __address page, __address frame);
