Index: kernel/arch/ppc32/include/arch/arch.h
===================================================================
--- kernel/arch/ppc32/include/arch/arch.h	(revision 9a08e6bddeb3cffb3e0438813da2a3084dcd33c5)
+++ kernel/arch/ppc32/include/arch/arch.h	(revision 401840b5d61883eddc5a5ed7e17b2802d2210175)
@@ -38,5 +38,5 @@
 #include <arch/boot/boot.h>
 
-extern void arch_pre_main(bootinfo_t *);
+extern void ppc32_pre_main(bootinfo_t *);
 
 #endif
Index: kernel/arch/ppc32/src/boot/boot.S
===================================================================
--- kernel/arch/ppc32/src/boot/boot.S	(revision 9a08e6bddeb3cffb3e0438813da2a3084dcd33c5)
+++ kernel/arch/ppc32/src/boot/boot.S	(revision 401840b5d61883eddc5a5ed7e17b2802d2210175)
@@ -48,5 +48,5 @@
 	
 	addis r3, r3, 0x8000
-	bl arch_pre_main
+	bl ppc32_pre_main
 	b main_bsp
 
Index: kernel/arch/ppc32/src/ppc32.c
===================================================================
--- kernel/arch/ppc32/src/ppc32.c	(revision 9a08e6bddeb3cffb3e0438813da2a3084dcd33c5)
+++ kernel/arch/ppc32/src/ppc32.c	(revision 401840b5d61883eddc5a5ed7e17b2802d2210175)
@@ -33,6 +33,7 @@
  */
 
+#include <arch.h>
+#include <arch/arch.h>
 #include <config.h>
-#include <arch.h>
 #include <arch/boot/boot.h>
 #include <genarch/drivers/via-cuda/cuda.h>
@@ -61,4 +62,16 @@
 #define IRQ_CUDA   10
 
+static void ppc32_pre_mm_init(void);
+static void ppc32_post_mm_init(void);
+static void ppc32_post_smp_init(void);
+
+arch_ops_t ppc32_ops = {
+	.pre_mm_init = ppc32_pre_mm_init,
+	.post_mm_init = ppc32_post_mm_init,
+	.post_smp_init = ppc32_post_smp_init,
+};
+
+arch_ops_t *arch_ops = &ppc32_ops;
+
 bootinfo_t bootinfo;
 
@@ -67,5 +80,5 @@
 
 /** Performs ppc32-specific initialization before main_bsp() is called. */
-void arch_pre_main(bootinfo_t *bootinfo)
+void ppc32_pre_main(bootinfo_t *bootinfo)
 {
 	/* Copy tasks map. */
@@ -95,5 +108,5 @@
 }
 
-void arch_pre_mm_init(void)
+void ppc32_pre_mm_init(void)
 {
 	/* Initialize dispatch table */
@@ -192,5 +205,5 @@
 #endif
 
-void arch_post_mm_init(void)
+void ppc32_post_mm_init(void)
 {
 	if (config.cpu_active == 1) {
@@ -207,12 +220,4 @@
 		zone_merge_all();
 	}
-}
-
-void arch_post_cpu_init(void)
-{
-}
-
-void arch_pre_smp_init(void)
-{
 }
 
@@ -273,5 +278,5 @@
 }
 
-void arch_post_smp_init(void)
+void ppc32_post_smp_init(void)
 {
 	/* Currently the only supported platform for ppc32 is 'mac'. */
