Index: arch/amd64/include/mm/as.h
===================================================================
--- arch/amd64/include/mm/as.h	(revision 20d50a15ee7f195ac1e5a2da974bef0722bb9d60)
+++ arch/amd64/include/mm/as.h	(revision 20d50a15ee7f195ac1e5a2da974bef0722bb9d60)
@@ -0,0 +1,45 @@
+/*
+ * Copyright (C) 2005 Ondrej Palkovsky
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * - Redistributions of source code must retain the above copyright
+ *   notice, this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in the
+ *   documentation and/or other materials provided with the distribution.
+ * - The name of the author may not be used to endorse or promote products
+ *   derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef __amd64_AS_H__
+#define __amd64_AS_H__
+
+#include <arch/types.h>
+
+#define KERNEL_ADDRESS_SPACE_START_ARCH		(__address) 0xffffffff80000000
+#define KERNEL_ADDRESS_SPACE_END_ARCH		(__address) 0xffffffffffffffff
+#define USER_ADDRESS_SPACE_START_ARCH		(__address) 0x0000000000000000
+#define USER_ADDRESS_SPACE_END_ARCH		(__address) 0x00008fffffffffff
+
+#define UTEXT_ADDRESS_ARCH	0x00001000
+#define USTACK_ADDRESS_ARCH	(USER_ADDRESS_SPACE_END_ARCH-(PAGE_SIZE-1))
+#define UDATA_ADDRESS_ARCH	0x21000000
+
+#define as_install_arch(as)
+
+#endif
Index: arch/amd64/include/mm/vm.h
===================================================================
--- arch/amd64/include/mm/vm.h	(revision 036991116da84e89f7cdc04f421f69aa3640c138)
+++ 	(revision )
@@ -1,45 +1,0 @@
-/*
- * Copyright (C) 2005 Ondrej Palkovsky
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * - Redistributions of source code must retain the above copyright
- *   notice, this list of conditions and the following disclaimer.
- * - Redistributions in binary form must reproduce the above copyright
- *   notice, this list of conditions and the following disclaimer in the
- *   documentation and/or other materials provided with the distribution.
- * - The name of the author may not be used to endorse or promote products
- *   derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef __amd64_VM_H__
-#define __amd64_VM_H__
-
-#include <arch/types.h>
-
-#define KERNEL_ADDRESS_SPACE_START_ARCH		(__address) 0xffffffff80000000
-#define KERNEL_ADDRESS_SPACE_END_ARCH		(__address) 0xffffffffffffffff
-#define USER_ADDRESS_SPACE_START_ARCH		(__address) 0x0000000000000000
-#define USER_ADDRESS_SPACE_END_ARCH		(__address) 0x00008fffffffffff
-
-#define UTEXT_ADDRESS_ARCH	0x00001000
-#define USTACK_ADDRESS_ARCH	(USER_ADDRESS_SPACE_END_ARCH-(PAGE_SIZE-1))
-#define UDATA_ADDRESS_ARCH	0x21000000
-
-#define vm_install_arch(vm)
-
-#endif
Index: arch/amd64/src/interrupt.c
===================================================================
--- arch/amd64/src/interrupt.c	(revision 036991116da84e89f7cdc04f421f69aa3640c138)
+++ arch/amd64/src/interrupt.c	(revision 20d50a15ee7f195ac1e5a2da974bef0722bb9d60)
@@ -36,4 +36,5 @@
 #include <arch/asm.h>
 #include <mm/tlb.h>
+#include <mm/as.h>
 #include <arch.h>
 #include <symtab.h>
@@ -125,11 +126,14 @@
 }
 
-
-
 void page_fault(int n, void *stack)
 {
-	print_info_errcode(n,stack);
-	printf("Page fault address: %Q\n", read_cr2());
-	panic("page fault\n");
+	__address page;
+	
+	page = read_cr2();
+	if (!as_page_fault(page)) {
+		print_info_errcode(n,stack);
+		printf("Page fault address: %Q\n", page);
+		panic("page fault\n");
+	}
 }
 
Index: arch/amd64/src/userspace.c
===================================================================
--- arch/amd64/src/userspace.c	(revision 036991116da84e89f7cdc04f421f69aa3640c138)
+++ arch/amd64/src/userspace.c	(revision 20d50a15ee7f195ac1e5a2da974bef0722bb9d60)
@@ -32,5 +32,5 @@
 #include <arch.h>
 #include <proc/thread.h>
-#include <mm/vm.h>
+#include <mm/as.h>
 
 
Index: arch/ia32/include/mm/as.h
===================================================================
--- arch/ia32/include/mm/as.h	(revision 20d50a15ee7f195ac1e5a2da974bef0722bb9d60)
+++ arch/ia32/include/mm/as.h	(revision 20d50a15ee7f195ac1e5a2da974bef0722bb9d60)
@@ -0,0 +1,45 @@
+/*
+ * Copyright (C) 2005 Jakub Jermar
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * - Redistributions of source code must retain the above copyright
+ *   notice, this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in the
+ *   documentation and/or other materials provided with the distribution.
+ * - The name of the author may not be used to endorse or promote products
+ *   derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef __ia32_AS_H__
+#define __ia32_AS_H__
+
+#include <arch/types.h>
+
+#define KERNEL_ADDRESS_SPACE_START_ARCH		((__address) 0x80000000)
+#define KERNEL_ADDRESS_SPACE_END_ARCH		((__address) 0xffffffff)
+#define USER_ADDRESS_SPACE_START_ARCH		((__address) 0x00000000)
+#define USER_ADDRESS_SPACE_END_ARCH		((__address) 0x7fffffff)
+
+#define UTEXT_ADDRESS_ARCH	0x00001000
+#define USTACK_ADDRESS_ARCH	(USER_ADDRESS_SPACE_END_ARCH-(PAGE_SIZE-1))
+#define UDATA_ADDRESS_ARCH	0x21000000
+
+#define as_install_arch(as)
+
+#endif
Index: arch/ia32/include/mm/vm.h
===================================================================
--- arch/ia32/include/mm/vm.h	(revision 036991116da84e89f7cdc04f421f69aa3640c138)
+++ 	(revision )
@@ -1,45 +1,0 @@
-/*
- * Copyright (C) 2005 Jakub Jermar
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * - Redistributions of source code must retain the above copyright
- *   notice, this list of conditions and the following disclaimer.
- * - Redistributions in binary form must reproduce the above copyright
- *   notice, this list of conditions and the following disclaimer in the
- *   documentation and/or other materials provided with the distribution.
- * - The name of the author may not be used to endorse or promote products
- *   derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef __ia32_VM_H__
-#define __ia32_VM_H__
-
-#include <arch/types.h>
-
-#define KERNEL_ADDRESS_SPACE_START_ARCH		((__address) 0x80000000)
-#define KERNEL_ADDRESS_SPACE_END_ARCH		((__address) 0xffffffff)
-#define USER_ADDRESS_SPACE_START_ARCH		((__address) 0x00000000)
-#define USER_ADDRESS_SPACE_END_ARCH		((__address) 0x7fffffff)
-
-#define UTEXT_ADDRESS_ARCH	0x00001000
-#define USTACK_ADDRESS_ARCH	(USER_ADDRESS_SPACE_END_ARCH-(PAGE_SIZE-1))
-#define UDATA_ADDRESS_ARCH	0x21000000
-
-#define vm_install_arch(vm)
-
-#endif
Index: arch/ia32/src/interrupt.c
===================================================================
--- arch/ia32/src/interrupt.c	(revision 036991116da84e89f7cdc04f421f69aa3640c138)
+++ arch/ia32/src/interrupt.c	(revision 20d50a15ee7f195ac1e5a2da974bef0722bb9d60)
@@ -36,4 +36,5 @@
 #include <arch/asm.h>
 #include <mm/tlb.h>
+#include <mm/as.h>
 #include <arch.h>
 #include <symtab.h>
@@ -100,7 +101,12 @@
 void page_fault(int n, void *stack)
 {
-	PRINT_INFO_ERRCODE(stack);
-	printf("page fault address: %X\n", read_cr2());
-	panic("page fault\n");
+	__address page;
+
+	page = read_cr2();
+	if (!as_page_fault(page)) {
+		PRINT_INFO_ERRCODE(stack);
+		printf("page fault address: %X\n", page);
+		panic("page fault\n");
+	}
 }
 
Index: arch/ia32/src/mm/frame.c
===================================================================
--- arch/ia32/src/mm/frame.c	(revision 036991116da84e89f7cdc04f421f69aa3640c138)
+++ arch/ia32/src/mm/frame.c	(revision 20d50a15ee7f195ac1e5a2da974bef0722bb9d60)
@@ -29,5 +29,5 @@
 #include <mm/frame.h>
 #include <arch/mm/frame.h>
-#include <mm/vm.h>
+#include <mm/as.h>
 #include <config.h>
 #include <arch/boot/boot.h>
Index: arch/ia32/src/userspace.c
===================================================================
--- arch/ia32/src/userspace.c	(revision 036991116da84e89f7cdc04f421f69aa3640c138)
+++ arch/ia32/src/userspace.c	(revision 20d50a15ee7f195ac1e5a2da974bef0722bb9d60)
@@ -32,5 +32,5 @@
 #include <arch.h>
 #include <proc/thread.h>
-#include <mm/vm.h>
+#include <mm/as.h>
 
 
@@ -48,9 +48,9 @@
 	__asm__ volatile (
 		/* CLNT */
-		"pushfl;"
-		"pop %%eax;"
-		"and $0xFFFFBFFF,%%eax;"
-		"push %%eax;"
-		"popfl;"
+		"pushfl\n"
+		"pop %%eax\n"
+		"and $0xffffbfff,%%eax\n"
+		"push %%eax\n"
+		"popfl\n"
 
 		"pushl %0\n"
@@ -65,4 +65,5 @@
 	
 	/* Unreachable */
-	for(;;);
+	for(;;)
+		;
 }
Index: arch/ia64/include/mm/as.h
===================================================================
--- arch/ia64/include/mm/as.h	(revision 20d50a15ee7f195ac1e5a2da974bef0722bb9d60)
+++ arch/ia64/include/mm/as.h	(revision 20d50a15ee7f195ac1e5a2da974bef0722bb9d60)
@@ -0,0 +1,45 @@
+/*
+ * Copyright (C) 2005 Jakub Jermar
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * - Redistributions of source code must retain the above copyright
+ *   notice, this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in the
+ *   documentation and/or other materials provided with the distribution.
+ * - The name of the author may not be used to endorse or promote products
+ *   derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef __ia64_AS_H__
+#define __ia64_AS_H__
+
+#include <arch/types.h>
+
+#define KERNEL_ADDRESS_SPACE_START_ARCH		(__address) 0x8000000000000000
+#define KERNEL_ADDRESS_SPACE_END_ARCH		(__address) 0xffffffffffffffff
+#define USER_ADDRESS_SPACE_START_ARCH		(__address) 0x0000000000000000
+#define USER_ADDRESS_SPACE_END_ARCH		(__address) 0x7fffffffffffffff
+
+#define UTEXT_ADDRESS_ARCH	0x0000000000001000
+#define USTACK_ADDRESS_ARCH	(0x7fffffffffffffff-(PAGE_SIZE-1))
+#define UDATA_ADDRESS_ARCH	0x0000000001001000
+
+#define as_install_arch(as)
+
+#endif
Index: arch/ia64/include/mm/vm.h
===================================================================
--- arch/ia64/include/mm/vm.h	(revision 036991116da84e89f7cdc04f421f69aa3640c138)
+++ 	(revision )
@@ -1,45 +1,0 @@
-/*
- * Copyright (C) 2005 Jakub Jermar
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * - Redistributions of source code must retain the above copyright
- *   notice, this list of conditions and the following disclaimer.
- * - Redistributions in binary form must reproduce the above copyright
- *   notice, this list of conditions and the following disclaimer in the
- *   documentation and/or other materials provided with the distribution.
- * - The name of the author may not be used to endorse or promote products
- *   derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef __ia64_VM_H__
-#define __ia64_VM_H__
-
-#include <arch/types.h>
-
-#define KERNEL_ADDRESS_SPACE_START_ARCH		(__address) 0x8000000000000000
-#define KERNEL_ADDRESS_SPACE_END_ARCH		(__address) 0xffffffffffffffff
-#define USER_ADDRESS_SPACE_START_ARCH		(__address) 0x0000000000000000
-#define USER_ADDRESS_SPACE_END_ARCH		(__address) 0x7fffffffffffffff
-
-#define UTEXT_ADDRESS_ARCH	0x0000000000001000
-#define USTACK_ADDRESS_ARCH	(0x7fffffffffffffff-(PAGE_SIZE-1))
-#define UDATA_ADDRESS_ARCH	0x0000000001001000
-
-#define vm_install_arch(vm)
-
-#endif
Index: arch/mips32/Makefile.inc
===================================================================
--- arch/mips32/Makefile.inc	(revision 036991116da84e89f7cdc04f421f69aa3640c138)
+++ arch/mips32/Makefile.inc	(revision 20d50a15ee7f195ac1e5a2da974bef0722bb9d60)
@@ -113,5 +113,5 @@
 	arch/$(ARCH)/src/mm/page.c \
 	arch/$(ARCH)/src/mm/tlb.c \
-	arch/$(ARCH)/src/mm/vm.c \
+	arch/$(ARCH)/src/mm/as.c \
 	arch/$(ARCH)/src/fpu_context.c \
 	arch/$(ARCH)/src/drivers/arc.c \
Index: arch/mips32/include/mm/as.h
===================================================================
--- arch/mips32/include/mm/as.h	(revision 20d50a15ee7f195ac1e5a2da974bef0722bb9d60)
+++ arch/mips32/include/mm/as.h	(revision 20d50a15ee7f195ac1e5a2da974bef0722bb9d60)
@@ -0,0 +1,44 @@
+/*
+ * Copyright (C) 2005 Jakub Jermar
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * - Redistributions of source code must retain the above copyright
+ *   notice, this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in the
+ *   documentation and/or other materials provided with the distribution.
+ * - The name of the author may not be used to endorse or promote products
+ *   derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef __mips32_AS_H__
+#define __mips32_AS_H__
+
+#include <arch/types.h>
+#include <typedefs.h>
+
+#define KERNEL_ADDRESS_SPACE_START_ARCH		(__address) 0x80000000
+#define KERNEL_ADDRESS_SPACE_END_ARCH		(__address) 0xffffffff
+#define USER_ADDRESS_SPACE_START_ARCH		(__address) 0x00000000
+#define USER_ADDRESS_SPACE_END_ARCH		(__address) 0x7fffffff	
+
+#define UTEXT_ADDRESS_ARCH	0x00004000
+#define USTACK_ADDRESS_ARCH	(0x80000000-PAGE_SIZE)
+#define UDATA_ADDRESS_ARCH	0x01001000
+
+#endif
Index: arch/mips32/include/mm/vm.h
===================================================================
--- arch/mips32/include/mm/vm.h	(revision 036991116da84e89f7cdc04f421f69aa3640c138)
+++ 	(revision )
@@ -1,46 +1,0 @@
-/*
- * Copyright (C) 2005 Jakub Jermar
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * - Redistributions of source code must retain the above copyright
- *   notice, this list of conditions and the following disclaimer.
- * - Redistributions in binary form must reproduce the above copyright
- *   notice, this list of conditions and the following disclaimer in the
- *   documentation and/or other materials provided with the distribution.
- * - The name of the author may not be used to endorse or promote products
- *   derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef __mips32_VM_H__
-#define __mips32_VM_H__
-
-#include <arch/types.h>
-#include <typedefs.h>
-
-#define KERNEL_ADDRESS_SPACE_START_ARCH		(__address) 0x80000000
-#define KERNEL_ADDRESS_SPACE_END_ARCH		(__address) 0xffffffff
-#define USER_ADDRESS_SPACE_START_ARCH		(__address) 0x00000000
-#define USER_ADDRESS_SPACE_END_ARCH		(__address) 0x7fffffff	
-
-#define UTEXT_ADDRESS_ARCH	0x00004000
-#define USTACK_ADDRESS_ARCH	(0x80000000-PAGE_SIZE)
-#define UDATA_ADDRESS_ARCH	0x01001000
-
-extern void vm_install_arch(vm_t *vm);
-
-#endif
Index: arch/mips32/src/mips32.c
===================================================================
--- arch/mips32/src/mips32.c	(revision 036991116da84e89f7cdc04f421f69aa3640c138)
+++ arch/mips32/src/mips32.c	(revision 20d50a15ee7f195ac1e5a2da974bef0722bb9d60)
@@ -32,5 +32,5 @@
 #include <arch/exception.h>
 #include <arch/asm.h>
-#include <mm/vm.h>
+#include <mm/as.h>
 
 #include <userspace.h>
Index: arch/mips32/src/mm/as.c
===================================================================
--- arch/mips32/src/mm/as.c	(revision 20d50a15ee7f195ac1e5a2da974bef0722bb9d60)
+++ arch/mips32/src/mm/as.c	(revision 20d50a15ee7f195ac1e5a2da974bef0722bb9d60)
@@ -0,0 +1,63 @@
+/*
+ * Copyright (C) 2005 Jakub Jermar
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * - Redistributions of source code must retain the above copyright
+ *   notice, this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in the
+ *   documentation and/or other materials provided with the distribution.
+ * - The name of the author may not be used to endorse or promote products
+ *   derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <arch/mm/as.h>
+#include <arch/mm/tlb.h>
+#include <mm/tlb.h>
+#include <mm/as.h>
+#include <arch/cp0.h>
+#include <arch.h>
+
+/** Install address space.
+ *
+ * Install ASID and if necessary, purge TLB.
+ *
+ * @param as Address space structure.
+ */
+void as_install_arch(as_t *as)
+{
+	entry_hi_t hi;
+	ipl_t ipl;
+
+	/*
+	 * If necessary, purge TLB.
+	 */
+	tlb_invalidate_asid(as->asid);	/* TODO: do it only if necessary */
+
+	/*
+	 * Install ASID.
+	 */	
+	hi.value = cp0_entry_hi_read();
+
+	ipl = interrupts_disable();
+	spinlock_lock(&as->lock);
+	hi.asid = as->asid;
+	cp0_entry_hi_write(hi.value);	
+	spinlock_unlock(&as->lock);
+	interrupts_restore(ipl);
+}
Index: arch/mips32/src/mm/tlb.c
===================================================================
--- arch/mips32/src/mm/tlb.c	(revision 036991116da84e89f7cdc04f421f69aa3640c138)
+++ arch/mips32/src/mm/tlb.c	(revision 20d50a15ee7f195ac1e5a2da974bef0722bb9d60)
@@ -31,5 +31,5 @@
 #include <mm/tlb.h>
 #include <mm/page.h>
-#include <mm/vm.h>
+#include <mm/as.h>
 #include <arch/cp0.h>
 #include <panic.h>
@@ -93,5 +93,5 @@
 	badvaddr = cp0_badvaddr_read();
 
-	spinlock_lock(&VM->lock);		
+	spinlock_lock(&AS->lock);		
 
 	pte = find_mapping_and_check(badvaddr);
@@ -104,5 +104,5 @@
 	pte->a = 1;
 
-	prepare_entry_hi(&hi, VM->asid, badvaddr);
+	prepare_entry_hi(&hi, AS->asid, badvaddr);
 	prepare_entry_lo(&lo, pte->lo.g, pte->lo.v, pte->lo.d, pte->lo.c, pte->lo.pfn);
 
@@ -122,9 +122,9 @@
 	tlbwr();
 
-	spinlock_unlock(&VM->lock);
+	spinlock_unlock(&AS->lock);
 	return;
 	
 fail:
-	spinlock_unlock(&VM->lock);
+	spinlock_unlock(&AS->lock);
 	tlb_refill_fail(pstate);
 }
@@ -155,5 +155,5 @@
 	index.value = cp0_index_read();
 	
-	spinlock_lock(&VM->lock);	
+	spinlock_lock(&AS->lock);	
 	
 	/*
@@ -191,9 +191,9 @@
 	tlbwi();
 
-	spinlock_unlock(&VM->lock);	
+	spinlock_unlock(&AS->lock);	
 	return;
 	
 fail:
-	spinlock_unlock(&VM->lock);
+	spinlock_unlock(&AS->lock);
 	tlb_invalid_fail(pstate);
 }
@@ -224,5 +224,5 @@
 	index.value = cp0_index_read();
 	
-	spinlock_lock(&VM->lock);	
+	spinlock_lock(&AS->lock);	
 	
 	/*
@@ -267,9 +267,9 @@
 	tlbwi();
 
-	spinlock_unlock(&VM->lock);	
+	spinlock_unlock(&AS->lock);	
 	return;
 	
 fail:
-	spinlock_unlock(&VM->lock);
+	spinlock_unlock(&AS->lock);
 	tlb_modified_fail(pstate);
 }
@@ -313,5 +313,5 @@
  *
  * Try to find PTE for faulting address.
- * The VM->lock must be held on entry to this function.
+ * The AS->lock must be held on entry to this function.
  *
  * @param badvaddr Faulting virtual address.
@@ -329,13 +329,38 @@
 	 * Handler cannot succeed if the ASIDs don't match.
 	 */
-	if (hi.asid != VM->asid) {
-		printf("EntryHi.asid=%d, VM->asid=%d\n", hi.asid, VM->asid);
+	if (hi.asid != AS->asid) {
+		printf("EntryHi.asid=%d, AS->asid=%d\n", hi.asid, AS->asid);
 		return NULL;
 	}
-	
+
+	/*
+	 * Check if the mapping exists in page tables.
+	 */	
+	pte = page_mapping_find(badvaddr, AS->asid, 0);
+	if (pte && pte->lo.v) {
+		/*
+		 * Mapping found in page tables.
+		 * Immediately succeed.
+		 */
+		return pte;
+	} else {
+		/*
+		 * Mapping not found in page tables.
+		 * Resort to higher-level page fault handler.
+		 */
+		if (as_page_fault(badvaddr)) {
+			/*
+			 * The higher-level page fault handler succeeded,
+			 * The mapping ought to be in place.
+			 */
+			pte = page_mapping_find(badvaddr, AS->asid, 0);
+			ASSERT(pte && pte->lo.v);
+			return pte;
+		}
+	}
+
 	/*
 	 * Handler cannot succeed if badvaddr has no mapping.
 	 */
-	pte = page_mapping_find(badvaddr, VM->asid, 0);
 	if (!pte) {
 		printf("No such mapping.\n");
Index: arch/mips32/src/mm/vm.c
===================================================================
--- arch/mips32/src/mm/vm.c	(revision 036991116da84e89f7cdc04f421f69aa3640c138)
+++ 	(revision )
@@ -1,54 +1,0 @@
-/*
- * Copyright (C) 2005 Jakub Jermar
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * - Redistributions of source code must retain the above copyright
- *   notice, this list of conditions and the following disclaimer.
- * - Redistributions in binary form must reproduce the above copyright
- *   notice, this list of conditions and the following disclaimer in the
- *   documentation and/or other materials provided with the distribution.
- * - The name of the author may not be used to endorse or promote products
- *   derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include <arch/mm/vm.h>
-#include <arch/mm/tlb.h>
-#include <mm/vm.h>
-#include <arch/cp0.h>
-#include <arch.h>
-
-/** Install ASID of the current VM
- *
- * Install ASID of the current VM.
- *
- * @param vm VM structure.
- */
-void vm_install_arch(vm_t *vm)
-{
-	entry_hi_t hi;
-	ipl_t ipl;
-	
-	hi.value = cp0_entry_hi_read();
-
-	ipl = interrupts_disable();
-	spinlock_lock(&vm->lock);
-	hi.asid = vm->asid;
-	cp0_entry_hi_write(hi.value);	
-	spinlock_unlock(&vm->lock);
-	interrupts_restore(ipl);
-}
Index: arch/ppc32/include/mm/as.h
===================================================================
--- arch/ppc32/include/mm/as.h	(revision 20d50a15ee7f195ac1e5a2da974bef0722bb9d60)
+++ arch/ppc32/include/mm/as.h	(revision 20d50a15ee7f195ac1e5a2da974bef0722bb9d60)
@@ -0,0 +1,45 @@
+/*
+ * Copyright (C) 2005 Martin Decky
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * - Redistributions of source code must retain the above copyright
+ *   notice, this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in the
+ *   documentation and/or other materials provided with the distribution.
+ * - The name of the author may not be used to endorse or promote products
+ *   derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef __ppc32_AS_H__
+#define __ppc32_AS_H__
+
+#include <arch/types.h>
+
+#define KERNEL_ADDRESS_SPACE_START_ARCH		(__address) 0x80000000
+#define KERNEL_ADDRESS_SPACE_END_ARCH		(__address) 0xffffffff	
+#define USER_ADDRESS_SPACE_START_ARCH		(__address) 0x00000000
+#define USER_ADDRESS_SPACE_END_ARCH		(__address) 0x7fffffff
+
+#define UTEXT_ADDRESS_ARCH	0x00001000
+#define USTACK_ADDRESS_ARCH	(0x7fffffff-(PAGE_SIZE-1))
+#define UDATA_ADDRESS_ARCH	0x21000000
+
+#define as_install_arch(as)
+
+#endif
Index: arch/ppc32/include/mm/vm.h
===================================================================
--- arch/ppc32/include/mm/vm.h	(revision 036991116da84e89f7cdc04f421f69aa3640c138)
+++ 	(revision )
@@ -1,45 +1,0 @@
-/*
- * Copyright (C) 2005 Martin Decky
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * - Redistributions of source code must retain the above copyright
- *   notice, this list of conditions and the following disclaimer.
- * - Redistributions in binary form must reproduce the above copyright
- *   notice, this list of conditions and the following disclaimer in the
- *   documentation and/or other materials provided with the distribution.
- * - The name of the author may not be used to endorse or promote products
- *   derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef __ppc32_VM_H__
-#define __ppc32_VM_H__
-
-#include <arch/types.h>
-
-#define KERNEL_ADDRESS_SPACE_START_ARCH		(__address) 0x80000000
-#define KERNEL_ADDRESS_SPACE_END_ARCH		(__address) 0xffffffff	
-#define USER_ADDRESS_SPACE_START_ARCH		(__address) 0x00000000
-#define USER_ADDRESS_SPACE_END_ARCH		(__address) 0x7fffffff
-
-#define UTEXT_ADDRESS_ARCH	0x00001000
-#define USTACK_ADDRESS_ARCH	(0x7fffffff-(PAGE_SIZE-1))
-#define UDATA_ADDRESS_ARCH	0x21000000
-
-#define vm_install_arch(vm)
-
-#endif
Index: arch/sparc64/include/mm/as.h
===================================================================
--- arch/sparc64/include/mm/as.h	(revision 20d50a15ee7f195ac1e5a2da974bef0722bb9d60)
+++ arch/sparc64/include/mm/as.h	(revision 20d50a15ee7f195ac1e5a2da974bef0722bb9d60)
@@ -0,0 +1,45 @@
+/*
+ * Copyright (C) 2005 Jakub Jermar
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * - Redistributions of source code must retain the above copyright
+ *   notice, this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in the
+ *   documentation and/or other materials provided with the distribution.
+ * - The name of the author may not be used to endorse or promote products
+ *   derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef __sparc64_AS_H__
+#define __sparc64_AS_H__
+
+#include <arch/types.h>
+
+#define KERNEL_ADDRESS_SPACE_START_ARCH		(__address) 0x0000000000000000
+#define KERNEL_ADDRESS_SPACE_END_ARCH		(__address) 0xffffffffffffffff
+#define USER_ADDRESS_SPACE_START_ARCH		(__address) 0x0000000000000000
+#define USER_ADDRESS_SPACE_END_ARCH		(__address) 0xffffffffffffffff
+
+#define UTEXT_ADDRESS_ARCH	(0x0000000000000000+PAGE_SIZE)
+#define USTACK_ADDRESS_ARCH	(0x7fffffffffffffff-(PAGE_SIZE-1))
+#define UDATA_ADDRESS_ARCH	0x8000000000000000
+
+#define as_install_arch(as)
+
+#endif
Index: arch/sparc64/include/mm/vm.h
===================================================================
--- arch/sparc64/include/mm/vm.h	(revision 036991116da84e89f7cdc04f421f69aa3640c138)
+++ 	(revision )
@@ -1,45 +1,0 @@
-/*
- * Copyright (C) 2005 Jakub Jermar
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * - Redistributions of source code must retain the above copyright
- *   notice, this list of conditions and the following disclaimer.
- * - Redistributions in binary form must reproduce the above copyright
- *   notice, this list of conditions and the following disclaimer in the
- *   documentation and/or other materials provided with the distribution.
- * - The name of the author may not be used to endorse or promote products
- *   derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef __sparc64_VM_H__
-#define __sparc64_VM_H__
-
-#include <arch/types.h>
-
-#define KERNEL_ADDRESS_SPACE_START_ARCH		(__address) 0x0000000000000000
-#define KERNEL_ADDRESS_SPACE_END_ARCH		(__address) 0xffffffffffffffff
-#define USER_ADDRESS_SPACE_START_ARCH		(__address) 0x0000000000000000
-#define USER_ADDRESS_SPACE_END_ARCH		(__address) 0xffffffffffffffff
-
-#define UTEXT_ADDRESS_ARCH	(0x0000000000000000+PAGE_SIZE)
-#define USTACK_ADDRESS_ARCH	(0x7fffffffffffffff-(PAGE_SIZE-1))
-#define UDATA_ADDRESS_ARCH	0x8000000000000000
-
-#define vm_install_arch(vm)
-
-#endif
