libdragon
|
00001 00006 #ifndef __LIBDRAGON_INTERRUPT_H 00007 #define __LIBDRAGON_INTERRUPT_H 00008 00009 #ifdef __cplusplus 00010 extern "C" { 00011 #endif 00012 00021 typedef enum 00022 { 00024 INTERRUPTS_UNINITIALIZED, 00026 INTERRUPTS_DISABLED, 00028 INTERRUPTS_ENABLED 00029 } interrupt_state_t; 00030 00033 void register_AI_handler( void (*callback)() ); 00034 void register_VI_handler( void (*callback)() ); 00035 void register_PI_handler( void (*callback)() ); 00036 void register_DP_handler( void (*callback)() ); 00037 void register_TI_handler( void (*callback)() ); 00038 void register_SI_handler( void (*callback)() ); 00039 void register_SP_handler( void (*callback)() ); 00040 00041 void unregister_AI_handler( void (*callback)() ); 00042 void unregister_VI_handler( void (*callback)() ); 00043 void unregister_PI_handler( void (*callback)() ); 00044 void unregister_DP_handler( void (*callback)() ); 00045 void unregister_TI_handler( void (*callback)() ); 00046 void unregister_SI_handler( void (*callback)() ); 00047 void unregister_SP_handler( void (*callback)() ); 00048 00049 void set_AI_interrupt( int active ); 00050 void set_VI_interrupt( int active, unsigned long line ); 00051 void set_PI_interrupt( int active ); 00052 void set_DP_interrupt( int active ); 00053 void set_SI_interrupt( int active ); 00054 void set_SP_interrupt( int active ); 00055 00056 void init_interrupts(); 00057 00058 void enable_interrupts(); 00059 void disable_interrupts(); 00060 00061 interrupt_state_t get_interrupts_state(); 00062 00063 #ifdef __cplusplus 00064 } 00065 #endif 00066 00067 #endif