libdragon
Macros | Enumerations | Functions

Interrupt Controller. More...

Go to the source code of this file.

Macros

#define RESET_TIME_LENGTH   TICKS_FROM_MS(200)
 Guaranteed length of the reset time. More...
 

Enumerations

enum  interrupt_state_t { INTERRUPTS_UNINITIALIZED , INTERRUPTS_DISABLED , INTERRUPTS_ENABLED }
 State of interrupts on the system. More...
 

Functions

void register_AI_handler (void(*callback)())
 Register an AI callback. More...
 
void register_VI_handler (void(*callback)())
 Register a VI callback. More...
 
void register_PI_handler (void(*callback)())
 Register a PI callback. More...
 
void register_DP_handler (void(*callback)())
 Register a DP callback. More...
 
void register_SI_handler (void(*callback)())
 Register a SI callback. More...
 
void register_SP_handler (void(*callback)())
 Register a SP callback. More...
 
void register_TI_handler (void(*callback)())
 Register a timer callback. More...
 
void register_CART_handler (void(*callback)())
 Register a CART interrupt callback. More...
 
void register_RESET_handler (void(*callback)())
 Register a handler that will be called when the user presses the RESET button. More...
 
void unregister_AI_handler (void(*callback)())
 Unregister an AI callback. More...
 
void unregister_VI_handler (void(*callback)())
 Unregister a VI callback. More...
 
void unregister_PI_handler (void(*callback)())
 Unegister a PI callback. More...
 
void unregister_DP_handler (void(*callback)())
 Unregister a DP callback. More...
 
void unregister_SI_handler (void(*callback)())
 Unegister a SI callback. More...
 
void unregister_SP_handler (void(*callback)())
 Unegister a SP callback. More...
 
void unregister_TI_handler (void(*callback)())
 Unregister a timer callback. More...
 
void unregister_CART_handler (void(*callback)())
 Unregister a CART interrupt callback. More...
 
void unregister_RESET_handler (void(*callback)())
 Unregister a RESET interrupt callback. More...
 
void set_AI_interrupt (int active)
 Enable or disable the AI interrupt. More...
 
void set_VI_interrupt (int active, unsigned long line)
 Enable or disable the VI interrupt. More...
 
void set_PI_interrupt (int active)
 Enable or disable the PI interrupt. More...
 
void set_DP_interrupt (int active)
 Enable or disable the DP interrupt. More...
 
void set_SI_interrupt (int active)
 Enable or disable the SI interrupt. More...
 
void set_SP_interrupt (int active)
 Enable or disable the SP interrupt. More...
 
void set_TI_interrupt (int active)
 Enable or disable the timer interrupt. More...
 
void set_CART_interrupt (int active)
 Enable or disable the CART interrupt. More...
 
void set_RESET_interrupt (int active)
 Enable the RESET interrupt. More...
 
uint32_t exception_reset_time (void)
 Check whether the RESET button was pressed and how long we are into the reset process. More...
 
void enable_interrupts ()
 Enable interrupts systemwide. More...
 
void disable_interrupts ()
 Disable interrupts systemwide. More...
 
interrupt_state_t get_interrupts_state ()
 Return the current state of interrupts. More...
 

Detailed Description

Interrupt Controller.

Macro Definition Documentation

◆ RESET_TIME_LENGTH

#define RESET_TIME_LENGTH   TICKS_FROM_MS(200)

Guaranteed length of the reset time.

This is the guaranteed length of the reset time, that is the time that goes between the user pressing the reset button, and the CPU actually resetting. See exception_reset_time for more details.

Note
The general knowledge about this is that the reset time should be 500 ms. Testing on different consoles show that, while most seem to reset after 500 ms, a few EU models reset after 200ms. So we define the timer shorter for greater compatibility.