Index: generic/src/main/kinit.c
===================================================================
--- generic/src/main/kinit.c	(revision 6d7ffa6500ff049f534738d13b952fc159242a8d)
+++ generic/src/main/kinit.c	(revision 204674ee3e573dfb433faf3ebf3f3faf43f34ed7)
@@ -40,5 +40,5 @@
 #include <mm/page.h>
 #include <arch/mm/page.h>
-#include <mm/vm.h>
+#include <mm/as.h>
 #include <mm/frame.h>
 #include <print.h>
@@ -71,6 +71,8 @@
 	thread_t *t;
 #ifdef CONFIG_USERSPACE
-	vm_t *m;
-	vm_area_t *a;
+	as_t *as;
+	as_area_t *a;
+	__address frame;
+	index_t pfn[1];
 	task_t *u;
 #endif
@@ -142,8 +144,8 @@
 	 * Create the first user task.
 	 */
-	m = vm_create(NULL);
-	if (!m)
-		panic("vm_create\n");
-	u = task_create(m);
+	as = as_create(NULL);
+	if (!as)
+		panic("as_create\n");
+	u = task_create(as);
 	if (!u)
 		panic("task_create\n");
@@ -153,22 +155,26 @@
 
 	/*
-	 * Create the text vm_area and copy the userspace code there.
+	 * Create the text as_area and copy the userspace code there.
 	 */	
-	a = vm_area_create(m, VMA_TEXT, 1, UTEXT_ADDRESS);
+	a = as_area_create(as, AS_AREA_TEXT, 1, UTEXT_ADDRESS);
 	if (!a)
-		panic("vm_area_create: vm_text\n");
-	vm_area_map(a, m);
+		panic("as_area_create: text\n");
+
+	frame = frame_alloc(0, ONE_FRAME, NULL);
+
 	if (config.init_size > 0)
-		memcpy((void *) PA2KA(a->mapping[0]), (void *) config.init_addr, config.init_size < PAGE_SIZE ? config.init_size : PAGE_SIZE);
+		memcpy((void *) PA2KA(frame), (void *) config.init_addr, config.init_size < PAGE_SIZE ? config.init_size : PAGE_SIZE);
 	else
-		memcpy((void *) PA2KA(a->mapping[0]), (void *) utext, utext_size < PAGE_SIZE ? utext_size : PAGE_SIZE);
+		memcpy((void *) PA2KA(frame), (void *) utext, utext_size < PAGE_SIZE ? utext_size : PAGE_SIZE);
+	
+	pfn[0] = frame / FRAME_SIZE;
+	as_area_load_mapping(a, pfn);
 
 	/*
-	 * Create the data vm_area.
+	 * Create the data as_area.
 	 */
-	a = vm_area_create(m, VMA_STACK, 1, USTACK_ADDRESS);
+	a = as_area_create(as, AS_AREA_STACK, 1, USTACK_ADDRESS);
 	if (!a)
-		panic("vm_area_create: vm_stack\n");
-	vm_area_map(a, m);
+		panic("as_area_create: stack\n");
 	
 	thread_ready(t);
Index: generic/src/main/main.c
===================================================================
--- generic/src/main/main.c	(revision 6d7ffa6500ff049f534738d13b952fc159242a8d)
+++ generic/src/main/main.c	(revision 204674ee3e573dfb433faf3ebf3f3faf43f34ed7)
@@ -49,5 +49,5 @@
 #include <genarch/mm/page_pt.h>
 #include <mm/tlb.h>
-#include <mm/vm.h>
+#include <mm/as.h>
 #include <synch/waitq.h>
 #include <arch/arch.h>
@@ -136,5 +136,5 @@
 void main_bsp_separated_stack(void) 
 {
-	vm_t *m;
+	as_t *as;
 	task_t *k;
 	thread_t *t;
@@ -184,14 +184,14 @@
 
 	/*
-	 * Create kernel vm mapping.
-	 */
-	m = vm_create(GET_PTL0_ADDRESS());
-	if (!m)
-		panic("can't create kernel vm address space\n");
+	 * Create kernel address space.
+	 */
+	as = as_create(GET_PTL0_ADDRESS());
+	if (!as)
+		panic("can't create kernel address space\n");
 
 	/*
 	 * Create kernel task.
 	 */
-	k = task_create(m);
+	k = task_create(as);
 	if (!k)
 		panic("can't create kernel task\n");
