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)