Index: kernel/arch/ia32/src/boot/multiboot.S
===================================================================
--- kernel/arch/ia32/src/boot/multiboot.S	(revision 7ba16eb2305f77c05ab9260d09fae55d5c25fa4f)
+++ kernel/arch/ia32/src/boot/multiboot.S	(revision b454a22aed9ec21aa9bc6621c9d0609ba5003def)
@@ -142,8 +142,8 @@
 	pm2_status $status_prot3
 	
-	/* Call arch_pre_main(multiboot_eax, multiboot_ebx) */
+	/* Call ia32_pre_main(multiboot_eax, multiboot_ebx) */
 	pushl multiboot_ebx
 	pushl multiboot_eax
-	call arch_pre_main
+	call ia32_pre_main
 	
 	pm2_status $status_main
Index: kernel/arch/ia32/src/boot/multiboot2.S
===================================================================
--- kernel/arch/ia32/src/boot/multiboot2.S	(revision 7ba16eb2305f77c05ab9260d09fae55d5c25fa4f)
+++ kernel/arch/ia32/src/boot/multiboot2.S	(revision b454a22aed9ec21aa9bc6621c9d0609ba5003def)
@@ -178,8 +178,8 @@
 	movl %esp, %ebp
 	
-	/* Call arch_pre_main(multiboot_eax, multiboot_ebx) */
+	/* Call ia32_pre_main(multiboot_eax, multiboot_ebx) */
 	pushl multiboot_ebx
 	pushl multiboot_eax
-	call arch_pre_main
+	call ia32_pre_main
 	
 	/* Call main_bsp() */
Index: kernel/arch/ia32/src/ia32.c
===================================================================
--- kernel/arch/ia32/src/ia32.c	(revision 7ba16eb2305f77c05ab9260d09fae55d5c25fa4f)
+++ kernel/arch/ia32/src/ia32.c	(revision b454a22aed9ec21aa9bc6621c9d0609ba5003def)
@@ -36,4 +36,5 @@
 
 #include <arch.h>
+#include <arch/arch.h>
 #include <typedefs.h>
 #include <errno.h>
@@ -64,4 +65,20 @@
 #endif
 
+static void ia32_pre_mm_init(void);
+static void ia32_post_mm_init(void);
+static void ia32_post_cpu_init(void);
+static void ia32_pre_smp_init(void);
+static void ia32_post_smp_init(void);
+
+arch_ops_t ia32_ops = {
+	.pre_mm_init = ia32_pre_mm_init,
+	.post_mm_init = ia32_post_mm_init,
+	.post_cpu_init = ia32_post_cpu_init,
+	.pre_smp_init = ia32_pre_smp_init,
+	.post_smp_init = ia32_post_smp_init,
+};
+
+arch_ops_t *arch_ops = &ia32_ops;
+
 /** Perform ia32-specific initialization before main_bsp() is called.
  *
@@ -70,5 +87,5 @@
  *
  */
-void arch_pre_main(uint32_t signature, void *info)
+void ia32_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 ia32_pre_mm_init(void)
 {
 	pm_init();
@@ -96,5 +113,5 @@
 }
 
-void arch_post_mm_init(void)
+void ia32_post_mm_init(void)
 {
 	vreg_init();
@@ -129,5 +146,5 @@
 }
 
-void arch_post_cpu_init(void)
+void ia32_post_cpu_init(void)
 {
 #ifdef CONFIG_SMP
@@ -139,5 +156,5 @@
 }
 
-void arch_pre_smp_init(void)
+void ia32_pre_smp_init(void)
 {
 	if (config.cpu_active == 1) {
@@ -148,5 +165,5 @@
 }
 
-void arch_post_smp_init(void)
+void ia32_post_smp_init(void)
 {
 	/* Currently the only supported platform for ia32 is 'pc'. */
