Index: kernel/arch/amd64/include/mm/as.h
===================================================================
--- kernel/arch/amd64/include/mm/as.h	(revision df4ed852a2d1b242f9bdce0a873009a2cb77cec7)
+++ kernel/arch/amd64/include/mm/as.h	(revision 7d07bf31f74e2ee585ca017e2dccbd51c38cad08)
@@ -45,7 +45,4 @@
 #define USTACK_ADDRESS_ARCH	(USER_ADDRESS_SPACE_END_ARCH-(PAGE_SIZE-1))
 
-typedef struct {
-} as_arch_t;
-
 #define as_constructor_arch(as, flags)		(as != as)
 #define as_destructor_arch(as)			(as != as)
@@ -55,4 +52,9 @@
 #define as_invalidate_translation_cache(as, page, cnt)
 
+typedef struct {
+} as_arch_t;
+
+#include <genarch/mm/as_pt.h>
+
 extern void as_arch_init(void);
 
Index: kernel/arch/amd64/include/mm/page.h
===================================================================
--- kernel/arch/amd64/include/mm/page.h	(revision df4ed852a2d1b242f9bdce0a873009a2cb77cec7)
+++ kernel/arch/amd64/include/mm/page.h	(revision 7d07bf31f74e2ee585ca017e2dccbd51c38cad08)
@@ -58,9 +58,8 @@
 
 #ifndef __ASM__
-#  include <mm/page.h>
-#  include <arch/types.h>
-#endif
+#	include <mm/mm.h>
+#	include <arch/types.h>
+#	include <arch/interrupt.h>
 
-#ifndef __ASM__
 static inline uintptr_t ka2pa(uintptr_t x)
 {
@@ -70,10 +69,11 @@
 		return x - 0xffff800000000000;
 }
-# define KA2PA(x)      ka2pa((uintptr_t)x)
-# define PA2KA_CODE(x)      (((uintptr_t) (x)) + 0xffffffff80000000)
-# define PA2KA(x)      (((uintptr_t) (x)) + 0xffff800000000000)
+
+#	define KA2PA(x)      ka2pa((uintptr_t)x)
+#	define PA2KA_CODE(x)      (((uintptr_t) (x)) + 0xffffffff80000000)
+#	define PA2KA(x)      (((uintptr_t) (x)) + 0xffff800000000000)
 #else
-# define KA2PA(x)      ((x) - 0xffffffff80000000)
-# define PA2KA(x)      ((x) + 0xffffffff80000000)
+#	define KA2PA(x)      ((x) - 0xffffffff80000000)
+#	define PA2KA(x)      ((x) + 0xffffffff80000000)
 #endif
 
@@ -134,22 +134,4 @@
 #define PFERR_CODE_ID		(1<<4)
 
-/** Page Table Entry. */
-struct page_specifier {
-	unsigned present : 1;
-	unsigned writeable : 1;
-	unsigned uaccessible : 1;
-	unsigned page_write_through : 1;
-	unsigned page_cache_disable : 1;
-	unsigned accessed : 1;
-	unsigned dirty : 1;
-	unsigned unused: 1;
-	unsigned global : 1;
-	unsigned soft_valid : 1;		/**< Valid content even if present bit is cleared. */
-	unsigned avl : 2;
-	unsigned addr_12_31 : 30;
-	unsigned addr_32_51 : 21;
-	unsigned no_execute : 1;
-} __attribute__ ((packed));
-
 static inline int get_pt_flags(pte_t *pt, index_t i)
 {
