Various APIC debugging and IOAPIC IRQ routing
[akaros.git] / kern / arch / x86 / setjmp.h
1 // Arch specific struct definitions for setjmp/longjmp.
2
3 #ifndef ROS_ARCH_SETJMP_H
4 #define ROS_ARCH_SETJMP_H
5
6 #include <common.h>
7
8 #ifdef __x86_64__
9 struct jmpbuf {
10         uintptr_t retaddr; // return address
11         uintreg_t rsp;     // post-return rsp
12         uintreg_t rbx;     // callee saved registers
13         uintreg_t rbp;
14         uintreg_t r12;
15         uintreg_t r13;
16         uintreg_t r14;
17         uintreg_t r15;
18 };
19 #else
20 struct jmpbuf {
21         uintptr_t retaddr; // return address
22         uintreg_t esp;     // post-return esp
23         uintreg_t ebx;     // callee saved registers
24         uintreg_t ebp;
25         uintreg_t esi;
26         uintreg_t edi;
27 };
28 #endif
29
30 #endif /* !ROS_ARCH_SETJMP_H */