summaryrefslogtreecommitdiff
path: root/arch/i386/include/kernel/isr.h
diff options
context:
space:
mode:
authorDanny Holman <dholman@gymli.xyz>2021-10-09 15:26:32 -0500
committerDanny Holman <dholman@gymli.xyz>2021-10-09 15:39:59 -0500
commit376ec895110deb142a9162984e50ad6f0616758e (patch)
treeaada41ecfa65615e2aaf8264b51eda53c4f7c6aa /arch/i386/include/kernel/isr.h
parentc4845de1e4ba49ba066e5729814fdb5bcd7e46f8 (diff)
arch: i386: include more information in IDT
Include information about the current stack frame in the IDT handler(s). Signed-off-by: Danny Holman <dholman@gymli.xyz>
Diffstat (limited to 'arch/i386/include/kernel/isr.h')
-rw-r--r--arch/i386/include/kernel/isr.h27
1 files changed, 26 insertions, 1 deletions
diff --git a/arch/i386/include/kernel/isr.h b/arch/i386/include/kernel/isr.h
index a924cd6..61fe22f 100644
--- a/arch/i386/include/kernel/isr.h
+++ b/arch/i386/include/kernel/isr.h
@@ -1,6 +1,31 @@
#ifndef I386_ISR_H
#define I386_ISR_H
+#include <stdint.h>
+
+struct isr_frame {
+ uint32_t cr4;
+ uint32_t cr3;
+ uint32_t cr2;
+ uint32_t cr0;
+
+ uint32_t edi;
+ uint32_t esi;
+ uint32_t edx;
+ uint32_t ecx;
+ uint32_t ebx;
+ uint32_t eax;
+
+ uint32_t ebp;
+ uint32_t vector;
+ uint32_t errno;
+ uint32_t eip;
+ uint32_t cs;
+ uint32_t eflags;
+ uint32_t esp;
+ uint32_t dss;
+} __attribute__((packed));
+
extern void isr_stub_0(void);
extern void isr_stub_1(void);
extern void isr_stub_2(void);
@@ -34,4 +59,4 @@ extern void isr_stub_29(void);
extern void isr_stub_30(void);
extern void isr_stub_31(void);
-#endif \ No newline at end of file
+#endif