summaryrefslogtreecommitdiff
path: root/src/include/isv.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/include/isv.h')
-rw-r--r--src/include/isv.h25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/include/isv.h b/src/include/isv.h
new file mode 100644
index 0000000..d9dfa1b
--- /dev/null
+++ b/src/include/isv.h
@@ -0,0 +1,25 @@
+#ifndef isv_defined
+#define isv_defined
+
+//TODO move to int.h
+
+struct int_frame {
+ void *rip;
+ uint64_t segment_selector;
+ uint64_t rflags;
+ void *rsp;
+ uint64_t stack_segment;
+} __attribute__((packed));
+
+struct exception_frame {
+ uint64_t err;
+ struct int_frame frame;
+} __attribute__((packed));
+
+__attribute__((interrupt)) void spurrious_int(void *unused);
+__attribute__((interrupt)) void kernel_block(void *unused);
+__attribute__((interrupt)) void fatal_hwexception(struct int_frame *frame);
+__attribute__((interrupt)) void fatal_hwexception_errcode(struct exception_frame *frame);
+__attribute__((interrupt)) void lapic_timer_racefixer(void *unused);
+
+#endif