Index: kernel/genarch/include/mm/as_ht.h
===================================================================
--- kernel/genarch/include/mm/as_ht.h	(revision 1004b37bdb66a590cdd0d1374967646565e61622)
+++ kernel/genarch/include/mm/as_ht.h	(revision 8ecb3067403118be4ab8be6d777ffa06ca2299bf)
@@ -37,41 +37,15 @@
 
 #include <mm/mm.h>
-#include <arch/mm/asid.h>
 #include <adt/list.h>
-#include <adt/btree.h>
-#include <synch/mutex.h>
-
-/** Address space structure.
- *
- * as_t contains the list of as_areas of userspace accessible
- * pages for one or more tasks. Ranges of kernel memory pages are not
- * supposed to figure in the list as they are shared by all tasks and
- * set up during system initialization.
- */
-typedef struct {
-	/** Protected by asidlock. */
-	link_t inactive_as_with_asid_link;
-
-	mutex_t lock;
-
-	/** Number of references (i.e tasks that reference this as). */
-	count_t refcount;
-
-	/** Number of processors on wich is this address space active. */
-	count_t cpu_refcount;
-
-	/** B+tree of address space areas. */
-	btree_t as_area_btree;
-
-	/** Address space identifier. Constant on architectures that do not support ASIDs.*/
-	asid_t asid;
-	
-	/** Architecture specific content. */
-	as_arch_t arch;
-} as_t;
+#include <arch/types.h>
 
 typedef struct {
+} as_genarch_t;
+
+struct as;
+
+typedef struct pte {
 	link_t link;		/**< Page hash table link. */
-	as_t *as;		/**< Address space. */
+	struct as *as;		/**< Address space. */
 	uintptr_t page;		/**< Virtual memory page. */
 	uintptr_t frame;	/**< Physical memory frame. */
Index: kernel/genarch/include/mm/as_pt.h
===================================================================
--- kernel/genarch/include/mm/as_pt.h	(revision 1004b37bdb66a590cdd0d1374967646565e61622)
+++ kernel/genarch/include/mm/as_pt.h	(revision 8ecb3067403118be4ab8be6d777ffa06ca2299bf)
@@ -37,42 +37,12 @@
 
 #include <mm/mm.h>
-#include <arch/mm/asid.h>
-#include <adt/list.h>
-#include <adt/btree.h>
-#include <synch/mutex.h>
+#include <arch/types.h>
 
 #define AS_PAGE_TABLE
 
-/** Address space structure.
- *
- * as_t contains the list of as_areas of userspace accessible
- * pages for one or more tasks. Ranges of kernel memory pages are not
- * supposed to figure in the list as they are shared by all tasks and
- * set up during system initialization.
- */
 typedef struct {
-	/** Protected by asidlock. */
-	link_t inactive_as_with_asid_link;
-
-	mutex_t lock;
-
-	/** Number of references (i.e tasks that reference this as). */
-	count_t refcount;
-
-	/** Number of processors on wich is this address space active. */
-	count_t cpu_refcount;
-
-	/** B+tree of address space areas. */
-	btree_t as_area_btree;
-	
 	/** Page table pointer. */
 	pte_t *page_table;
-
-	/** Address space identifier. Constant on architectures that do not support ASIDs.*/
-	asid_t asid;
-	
-	/** Architecture specific content. */
-	as_arch_t arch;
-} as_t;
+} as_genarch_t;
 
 #endif
Index: kernel/genarch/include/mm/page_ht.h
===================================================================
--- kernel/genarch/include/mm/page_ht.h	(revision 1004b37bdb66a590cdd0d1374967646565e61622)
+++ kernel/genarch/include/mm/page_ht.h	(revision 8ecb3067403118be4ab8be6d777ffa06ca2299bf)
@@ -60,6 +60,4 @@
 #define PTE_EXECUTABLE(pte)	((pte)->x != 0)
 
-#define SET_PTL0_ADDRESS(x)
-
 extern as_operations_t as_ht_operations;
 extern page_mapping_operations_t ht_mapping_operations;
Index: kernel/genarch/src/mm/as_pt.c
===================================================================
--- kernel/genarch/src/mm/as_pt.c	(revision 1004b37bdb66a590cdd0d1374967646565e61622)
+++ kernel/genarch/src/mm/as_pt.c	(revision 8ecb3067403118be4ab8be6d777ffa06ca2299bf)
@@ -86,5 +86,5 @@
 		ipl = interrupts_disable();
 		mutex_lock(&AS_KERNEL->lock);		
-		src_ptl0 = (pte_t *) PA2KA((uintptr_t) AS_KERNEL->page_table);
+		src_ptl0 = (pte_t *) PA2KA((uintptr_t) AS_KERNEL->genarch.page_table);
 
 		src = (uintptr_t) &src_ptl0[PTL0_INDEX(KERNEL_ADDRESS_SPACE_START)];
Index: kernel/genarch/src/mm/page_pt.c
===================================================================
--- kernel/genarch/src/mm/page_pt.c	(revision 1004b37bdb66a590cdd0d1374967646565e61622)
+++ kernel/genarch/src/mm/page_pt.c	(revision 8ecb3067403118be4ab8be6d777ffa06ca2299bf)
@@ -73,5 +73,5 @@
 	pte_t *newpt;
 
-	ptl0 = (pte_t *) PA2KA((uintptr_t) as->page_table);
+	ptl0 = (pte_t *) PA2KA((uintptr_t) as->genarch.page_table);
 
 	if (GET_PTL1_FLAGS(ptl0, PTL0_INDEX(page)) & PAGE_NOT_PRESENT) {
@@ -129,5 +129,5 @@
 	 */
 
-	ptl0 = (pte_t *) PA2KA((uintptr_t) as->page_table);
+	ptl0 = (pte_t *) PA2KA((uintptr_t) as->genarch.page_table);
 
 	if (GET_PTL1_FLAGS(ptl0, PTL0_INDEX(page)) & PAGE_NOT_PRESENT)
@@ -245,5 +245,5 @@
 	pte_t *ptl0, *ptl1, *ptl2, *ptl3;
 
-	ptl0 = (pte_t *) PA2KA((uintptr_t) as->page_table);
+	ptl0 = (pte_t *) PA2KA((uintptr_t) as->genarch.page_table);
 
 	if (GET_PTL1_FLAGS(ptl0, PTL0_INDEX(page)) & PAGE_NOT_PRESENT)
