Index: kernel/arch/sparc32/src/debug/stacktrace.c
===================================================================
--- kernel/arch/sparc32/src/debug/stacktrace.c	(revision af9dd1ed6f5d79cc098da33ff7131162b1c177a4)
+++ kernel/arch/sparc32/src/debug/stacktrace.c	(revision 8f9c8087039b1242df4ef45ebfc16815cedfcfba)
@@ -37,5 +37,5 @@
 #include <syscall/copy.h>
 #include <typedefs.h>
-#include <arch.h>
+#include <arch/arch.h>
 #include <arch/stack.h>
 #include <proc/thread.h>
Index: kernel/arch/sparc32/src/machine_func.c
===================================================================
--- kernel/arch/sparc32/src/machine_func.c	(revision af9dd1ed6f5d79cc098da33ff7131162b1c177a4)
+++ kernel/arch/sparc32/src/machine_func.c	(revision 8f9c8087039b1242df4ef45ebfc16815cedfcfba)
@@ -40,4 +40,5 @@
 #include <arch/machine_func.h>
 #include <arch/machine/leon3/leon3.h>
+#include <arch/arch.h>
 
 /** Pointer to machine_ops structure being used. */
Index: kernel/arch/sparc32/src/mm/page.c
===================================================================
--- kernel/arch/sparc32/src/mm/page.c	(revision af9dd1ed6f5d79cc098da33ff7131162b1c177a4)
+++ kernel/arch/sparc32/src/mm/page.c	(revision 8f9c8087039b1242df4ef45ebfc16815cedfcfba)
@@ -46,4 +46,5 @@
 #include <func.h>
 #include <arch/interrupt.h>
+#include <arch/arch.h>
 #include <arch/asm.h>
 #include <debug.h>
Index: kernel/arch/sparc32/src/sparc32.c
===================================================================
--- kernel/arch/sparc32/src/sparc32.c	(revision af9dd1ed6f5d79cc098da33ff7131162b1c177a4)
+++ kernel/arch/sparc32/src/sparc32.c	(revision 8f9c8087039b1242df4ef45ebfc16815cedfcfba)
@@ -34,4 +34,5 @@
 
 #include <arch.h>
+#include <arch/arch.h>
 #include <typedefs.h>
 #include <arch/interrupt.h>
@@ -54,4 +55,14 @@
 #include <str.h>
 
+static void sparc32_post_mm_init(void);
+static void sparc32_post_smp_init(void);
+
+arch_ops_t sparc32_ops = {
+	.post_mm_init = sparc32_post_mm_init,
+	.post_smp_init = sparc32_post_smp_init,
+};
+
+arch_ops_t *arch_ops = &sparc32_ops;
+
 char memcpy_from_uspace_failover_address;
 char memcpy_to_uspace_failover_address;
@@ -59,5 +70,5 @@
 static bootinfo_t machine_bootinfo;
 
-void arch_pre_main(void *unused, bootinfo_t *bootinfo)
+void sparc32_pre_main(void *unused, bootinfo_t *bootinfo)
 {
 	init.cnt = min3(bootinfo->cnt, TASKMAP_MAX_RECORDS, CONFIG_INIT_TASKS);
@@ -74,11 +85,5 @@
 }
 
-void arch_pre_mm_init(void)
-{
-}
-
-extern void func1(void);
-
-void arch_post_mm_init(void)
+void sparc32_post_mm_init(void)
 {
 	machine_init(&machine_bootinfo);
@@ -95,14 +100,5 @@
 }
 
-
-void arch_post_cpu_init(void)
-{
-}
-
-void arch_pre_smp_init(void)
-{
-}
-
-void arch_post_smp_init(void)
+void sparc32_post_smp_init(void)
 {
 	machine_input_init();
Index: kernel/arch/sparc32/src/start.S
===================================================================
--- kernel/arch/sparc32/src/start.S	(revision af9dd1ed6f5d79cc098da33ff7131162b1c177a4)
+++ kernel/arch/sparc32/src/start.S	(revision 8f9c8087039b1242df4ef45ebfc16815cedfcfba)
@@ -59,5 +59,5 @@
 	
 	mov %l1, %o1
-	call arch_pre_main
+	call sparc32_pre_main
 	nop
 	
Index: kernel/arch/sparc32/src/userspace.c
===================================================================
--- kernel/arch/sparc32/src/userspace.c	(revision af9dd1ed6f5d79cc098da33ff7131162b1c177a4)
+++ kernel/arch/sparc32/src/userspace.c	(revision 8f9c8087039b1242df4ef45ebfc16815cedfcfba)
@@ -35,5 +35,5 @@
 #include <userspace.h>
 #include <typedefs.h>
-#include <arch.h>
+#include <arch/arch.h>
 #include <arch/asm.h>
 #include <abi/proc/uarg.h>
