git://scm.lunaixsky.com
/
lunaix-os.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
refactor: elf parsing utility and exec related
[lunaix-os.git]
/
lunaix-os
/
kernel
/
asm
/
x86
/
interrupt.S
diff --git
a/lunaix-os/kernel/asm/x86/interrupt.S
b/lunaix-os/kernel/asm/x86/interrupt.S
index c869db0ede48fda280d41beb6c59c2cfba7f4216..a6c0496f651b90a0574364f619dfffb22ca23d7f 100644
(file)
--- a/
lunaix-os/kernel/asm/x86/interrupt.S
+++ b/
lunaix-os/kernel/asm/x86/interrupt.S
@@
-1,6
+1,6
@@
#define __ASM__
#include <arch/x86/interrupts.h>
#define __ASM__
#include <arch/x86/interrupts.h>
-#include <
lunaix/common
.h>
+#include <
arch/x86/i386_asm
.h>
#include <lunaix/syscall.h>
#define __ASM_INTR_DIAGNOSIS
#include <lunaix/syscall.h>
#define __ASM_INTR_DIAGNOSIS
@@
-19,6
+19,16
@@
.skip 128
tmp_stack:
.skip 128
tmp_stack:
+/*
+ This perhaps the ugliest part in the project.
+ It contains code to handle arbitrary depth of
+ nested interrupt and all those corner cases and
+ nasty gotchas.
+
+ Be aware the twists, offsets and hidden dependencies!
+
+*/
+
.section .text
.global interrupt_wrapper
interrupt_wrapper:
.section .text
.global interrupt_wrapper
interrupt_wrapper: