Index: kernel/arch/ia32/src/pm.c
===================================================================
--- kernel/arch/ia32/src/pm.c	(revision 7cb567cd74caf371a5b1b053095a12b9bd1704a6)
+++ kernel/arch/ia32/src/pm.c	(revision f74bbaf20e8d8be55495c56affc5b17ef6ea2bf0)
@@ -122,5 +122,5 @@
 {
 	idescriptor_t *d;
-	int i;
+	unsigned int i;
 
 	for (i = 0; i < IDT_ITEMS; i++) {
@@ -231,4 +231,26 @@
 }
 
+/* Reboot the machine by initiating
+ * a triple fault
+ */
+void arch_reboot(void)
+{
+	preemption_disable();
+	ipl_t ipl = interrupts_disable();
+	
+	memsetb((uintptr_t) idt, sizeof(idt), 0);
+	
+	ptr_16_32_t idtr;
+	idtr.limit = sizeof(idt);
+	idtr.base = (uintptr_t) idt;
+	idtr_load(&idtr);
+	
+	interrupts_restore(ipl);
+	asm volatile (
+		"int $0x03\n"
+		"hlt\n"
+	);
+}
+
 /** @}
  */
