dynamic memory manager (malloc & free)
[lunaix-os.git] / lunaix-os / includes / arch / x86 / interrupts.h
index fb4eb79a96b004ea92abae1c3d8187b36248edb8..6265720f0fd5dced88f0d9109045639024af69ee 100644 (file)
@@ -1,19 +1,46 @@
 #ifndef __LUNAIX_INTERRUPTS_H
 #define __LUNAIX_INTERRUPTS_H
 
+#define FAULT_DIVISION_ERROR            0x0
+#define FAULT_TRAP_DEBUG_EXCEPTION      0x1
+#define INT_NMI                         0x2
+#define TRAP_BREAKPOINT                 0x3
+#define TRAP_OVERFLOW                   0x4
+#define FAULT_BOUND_EXCEED              0x5
+#define FAULT_INVALID_OPCODE            0x6
+#define FAULT_NO_MATH_PROCESSOR         0x7
+#define ABORT_DOUBLE_FAULT              0x8
+#define FAULT_RESERVED_0                0x9
+#define FAULT_INVALID_TSS               0xa
+#define FAULT_SEG_NOT_PRESENT           0xb
+#define FAULT_STACK_SEG_FAULT           0xc
+#define FAULT_GENERAL_PROTECTION        0xd
+#define FAULT_PAGE_FAULT                0xe
+#define FAULT_RESERVED_1                0xf
+#define FAULT_X87_FAULT                 0x10
+#define FAULT_ALIGNMENT_CHECK           0x11
+#define ABORT_MACHINE_CHECK             0x12
+#define FAULT_SIMD_FP_EXCEPTION         0x13
+#define FAULT_VIRTUALIZATION_EXCEPTION  0x14
+#define FAULT_CONTROL_PROTECTION        0x15
+
 typedef struct {
     unsigned int vector;
     unsigned int err_code;
     unsigned int eip;
     unsigned int cs;
     unsigned int eflags;
+    unsigned int esp;
+    unsigned int ss;
 } __attribute__((packed)) isr_param;
 
 void
 _asm_isr0();
 
 void
-interrupt_handler(isr_param* param);
+_asm_isr13();
 
+void
+interrupt_handler(isr_param* param);
 
 #endif /* __LUNAIX_INTERRUPTS_H */