Index: kernel/arch/ia64/src/ia64.c
===================================================================
--- kernel/arch/ia64/src/ia64.c	(revision af9dd1ed6f5d79cc098da33ff7131162b1c177a4)
+++ kernel/arch/ia64/src/ia64.c	(revision b454a22aed9ec21aa9bc6621c9d0609ba5003def)
@@ -34,4 +34,5 @@
 
 #include <arch.h>
+#include <arch/arch.h>
 #include <typedefs.h>
 #include <errno.h>
@@ -60,4 +61,16 @@
 #endif
 
+static void ia64_pre_mm_init(void);
+static void ia64_post_mm_init(void);
+static void ia64_post_smp_init(void);
+
+arch_ops_t ia64_ops = {
+	.pre_mm_init = ia64_pre_mm_init,
+	.post_mm_init = ia64_post_mm_init,
+	.post_smp_init = ia64_post_smp_init,
+};
+
+arch_ops_t *arch_ops = &ia64_ops;
+
 /* NS16550 as a COM 1 */
 #define NS16550_IRQ  (4 + LEGACY_INTERRUPT_BASE)
@@ -69,5 +82,5 @@
 
 /** Performs ia64-specific initialization before main_bsp() is called. */
-void arch_pre_main(void)
+void ia64_pre_main(void)
 {
 	init.cnt = min3(bootinfo->taskmap.cnt, TASKMAP_MAX_RECORDS,
@@ -84,5 +97,5 @@
 }
 
-void arch_pre_mm_init(void)
+void ia64_pre_mm_init(void)
 {
 	if (config.cpu_active == 1)
@@ -117,5 +130,5 @@
 }
 
-void arch_post_mm_init(void)
+void ia64_post_mm_init(void)
 {
 	if (config.cpu_active == 1) {
@@ -130,13 +143,5 @@
 }
 
-void arch_post_cpu_init(void)
-{
-}
-
-void arch_pre_smp_init(void)
-{
-}
-
-void arch_post_smp_init(void)
+void ia64_post_smp_init(void)
 {
 	static const char *platform;
Index: kernel/arch/ia64/src/start.S
===================================================================
--- kernel/arch/ia64/src/start.S	(revision af9dd1ed6f5d79cc098da33ff7131162b1c177a4)
+++ kernel/arch/ia64/src/start.S	(revision b454a22aed9ec21aa9bc6621c9d0609ba5003def)
@@ -158,5 +158,5 @@
 	srlz.d ;;
 	
-	br.call.sptk.many b0 = arch_pre_main
+	br.call.sptk.many b0 = ia64_pre_main
 0:
 	br.call.sptk.many b0 = main_bsp
