Index: arch/mips32/include/arg.h
===================================================================
--- arch/mips32/include/arg.h	(revision 31e8ddd3646b281263eac10f5b0878e1700ccd12)
+++ arch/mips32/include/arg.h	(revision bffa0b06adea1b03489a7f0c461606f20a0da9b2)
@@ -45,4 +45,6 @@
 	(((type *)((ap) = (va_list)( (sizeof(type) <= 4) ? ((__address)((ap) + 2*4 - 1) & (~3)) : ((__address)((ap) + 2*8 -1) & (~7)) )))[-1])
 
+#define va_copy(dst,src) ((dst)=(src))
+
 #define va_end(ap)
 
Index: arch/mips32/include/exception.h
===================================================================
--- arch/mips32/include/exception.h	(revision 31e8ddd3646b281263eac10f5b0878e1700ccd12)
+++ arch/mips32/include/exception.h	(revision bffa0b06adea1b03489a7f0c461606f20a0da9b2)
@@ -35,4 +35,5 @@
 
 #include <typedefs.h>
+#include <arch/cp0.h>
 
 #define EXC_Int		0
@@ -99,4 +100,14 @@
 }
 
+/** Return true if exception happened while in userspace */
+static inline int istate_from_uspace(istate_t *istate)
+{
+	return istate->status & cp0_status_um_bit;
+}
+static inline __native istate_get_pc(istate_t *istate)
+{
+	return istate->epc;
+}
+
 extern void exception(istate_t *istate);
 extern void tlb_refill_entry(void);
