Index: arch/mips32/src/ddi/ddi.c
===================================================================
--- arch/mips32/src/ddi/ddi.c	(revision 280a27e37f59414f14a49f3d48620945ee8580e0)
+++ arch/mips32/src/ddi/ddi.c	(revision e692a27a94144915c2caeadca44e573b14cf107b)
@@ -31,4 +31,7 @@
 #include <arch/types.h>
 #include <typedefs.h>
+#include <security/cap.h>
+#include <arch.h>
+#include <arch/cp0.h>
 
 /** Enable I/O space range for task.
@@ -46,2 +49,16 @@
 	return 0;
 }
+
+/** Enable/disable interrupts form syscall
+ *
+ * @param enable If non-zero, interrupts are enabled, otherwise disabled
+ * @param flags CP0 flags register
+ */
+__native ddi_int_control_arch(__native enable, __native *flags)
+{
+	if (enable)
+		*flags |= cp0_status_ie_enabled_bit;
+	else
+		*flags &= ~cp0_status_ie_enabled_bit;
+	return 0;
+}
Index: arch/mips32/src/start.S
===================================================================
--- arch/mips32/src/start.S	(revision 280a27e37f59414f14a49f3d48620945ee8580e0)
+++ arch/mips32/src/start.S	(revision e692a27a94144915c2caeadca44e573b14cf107b)
@@ -252,8 +252,13 @@
 	mtc0 $t0, $status
 
+	li $t4, 2                   # SYS_INT_CONTROL
+	beq $t4, $v0, sysc_int_control
+	nop
+	
 	# CALL Syscall handler
 	jal syscall_handler
 	sw $v0, SS_ARG4($sp)        # save v0 - arg4 to stack
 
+sysc_exit:	
 	# restore status
 	mfc0 $t0, $status
@@ -276,4 +281,11 @@
 	eret
 	
+sysc_int_control:
+	jal ddi_int_control
+	addi $a1, $sp, SS_STATUS
+	
+	j sysc_exit
+	nop
+	
 tlb_refill_handler:
 	KERNEL_STACK_TO_K0
