Index: kernel/arch/amd64/src/amd64.c
===================================================================
--- kernel/arch/amd64/src/amd64.c	(revision 3eebe571041662ab78564d10118fa22413a60a5e)
+++ kernel/arch/amd64/src/amd64.c	(revision 6d351e674a67b6ecee3c205c0f09e29e92b462be)
@@ -34,4 +34,5 @@
 
 #include <arch.h>
+#include <arch/arch.h>
 #include <typedefs.h>
 #include <errno.h>
@@ -64,4 +65,20 @@
 #endif
 
+static void amd64_pre_mm_init(void);
+static void amd64_post_mm_init(void);
+static void amd64_post_cpu_init(void);
+static void amd64_pre_smp_init(void);
+static void amd64_post_smp_init(void);
+
+arch_ops_t amd64_ops = {
+	.pre_mm_init = amd64_pre_mm_init,
+	.post_mm_init = amd64_post_mm_init,
+	.post_cpu_init = amd64_post_cpu_init,
+	.pre_smp_init = amd64_pre_smp_init,
+	.post_smp_init = amd64_post_smp_init
+};
+
+arch_ops_t *arch_ops = &amd64_ops;
+
 /** Perform amd64-specific initialization before main_bsp() is called.
  *
@@ -70,5 +87,5 @@
  *
  */
-void arch_pre_main(uint32_t signature, void *info)
+void amd64_pre_main(uint32_t signature, void *info)
 {
 	/* Parse multiboot information obtained from the bootloader. */
@@ -83,5 +100,5 @@
 }
 
-void arch_pre_mm_init(void)
+void amd64_pre_mm_init(void)
 {
 	/* Enable no-execute pages */
@@ -107,6 +124,5 @@
 }
 
-
-void arch_post_mm_init(void)
+void amd64_post_mm_init(void)
 {
 	vreg_init();
@@ -144,5 +160,5 @@
 }
 
-void arch_post_cpu_init(void)
+void amd64_post_cpu_init(void)
 {
 #ifdef CONFIG_SMP
@@ -154,5 +170,5 @@
 }
 
-void arch_pre_smp_init(void)
+void amd64_pre_smp_init(void)
 {
 	if (config.cpu_active == 1) {
@@ -163,5 +179,5 @@
 }
 
-void arch_post_smp_init(void)
+void amd64_post_smp_init(void)
 {
 	/* Currently the only supported platform for amd64 is 'pc'. */
Index: kernel/arch/amd64/src/boot/multiboot.S
===================================================================
--- kernel/arch/amd64/src/boot/multiboot.S	(revision 3eebe571041662ab78564d10118fa22413a60a5e)
+++ kernel/arch/amd64/src/boot/multiboot.S	(revision 6d351e674a67b6ecee3c205c0f09e29e92b462be)
@@ -427,8 +427,8 @@
 	long_status $status_long
 	
-	/* Call arch_pre_main(multiboot_eax, multiboot_ebx) */
+	/* Call amd64_pre_main(multiboot_eax, multiboot_ebx) */
 	movl multiboot_eax, %edi
 	movl multiboot_ebx, %esi
-	callq arch_pre_main
+	callq amd64_pre_main
 
 	long_status $status_main
Index: kernel/arch/amd64/src/boot/multiboot2.S
===================================================================
--- kernel/arch/amd64/src/boot/multiboot2.S	(revision 3eebe571041662ab78564d10118fa22413a60a5e)
+++ kernel/arch/amd64/src/boot/multiboot2.S	(revision 6d351e674a67b6ecee3c205c0f09e29e92b462be)
@@ -250,8 +250,8 @@
 	movq %rsp, %rbp
 	
-	/* Call arch_pre_main(multiboot_eax, multiboot_ebx) */
+	/* Call amd64_pre_main(multiboot_eax, multiboot_ebx) */
 	movl multiboot_eax, %edi
 	movl multiboot_ebx, %esi
-	callq arch_pre_main 
+	callq amd64_pre_main 
 	
 	/* Call main_bsp() */
