Merge branch 'master' into iso-9660
[lunaix-os.git] / lunaix-os / includes / arch / x86 / interrupts.h
1 #ifndef __LUNAIX_INTERRUPTS_H
2 #define __LUNAIX_INTERRUPTS_H
3
4 #include "vectors.h"
5
6 #ifndef __ASM__
7 #include <hal/cpu.h>
8 typedef struct
9 {
10     struct
11     {
12         reg32 eax;
13         reg32 ebx;
14         reg32 ecx;
15         reg32 edx;
16         reg32 edi;
17         reg32 ebp;
18         reg32 esi;
19         reg32 ds;
20         reg32 es;
21         reg32 fs;
22         reg32 gs;
23         reg32 esp;
24     } __attribute__((packed)) registers;
25
26     unsigned int vector;
27     unsigned int err_code;
28     unsigned int eip;
29     unsigned int cs;
30     unsigned int eflags;
31     unsigned int esp;
32     unsigned int ss;
33 } __attribute__((packed)) isr_param;
34
35 void
36 intr_handler(isr_param* param);
37
38 void
39 intr_routine_init();
40
41 #endif
42
43 #endif /* __LUNAIX_INTERRUPTS_H */