Go to the documentation of this file.
18 #ifndef __POK_INTERRUPT_H__
19 #define __POK_INTERRUPT_H__
53 #define INTERRUPT_HANDLER(name) \
55 void name##_handler(interrupt_frame* frame); \
57 ".global "#name " \n" \
58 "\t.type "#name",@function \n" \
69 "call " #name"_handler \n" \
70 "call update_tss \n" \
79 void name##_handler(interrupt_frame* frame)
81 #define INTERRUPT_HANDLER_errorcode(name) \
83 void name##_handler(interrupt_frame* frame); \
85 ".global "#name " \n" \
86 "\t.type "#name",@function \n" \
96 "call " #name"_handler \n" \
97 "call update_tss \n" \
106 void name##_handler(interrupt_frame* frame)
108 #define INTERRUPT_HANDLER_syscall(name) \
110 void name##_handler(interrupt_frame* frame); \
112 ".global "#name " \n" \
113 "\t.type "#name",@function \n" \
121 "mov $0x10, %ax \n" \
124 "call " #name"_handler \n" \
125 "movl %eax, 40(%esp) \n" \
126 "call update_tss \n" \
135 void name##_handler(interrupt_frame* frame)