#include <nitro/os.h>
OSIrqMask OS_SetIrqMask( OSIrqMask intr );
intr | The IRQ interrupt cause to be enabled (expressed as a bitmask) |
The setting of the IRQ interrupt cause before this function is called.
Sets the IRQ interrupt cause When the IRQ interrupt master enable is enabled with OS_EnableIrq
, only IRQ interrupts corresponding to those enabled with this function will occur.
The intr
argument is displayed as the logical OR of the following causes:
OS_IE_V_BLANK | V-blank interrupt |
OS_IE_H_BLANK | H-blank interrupt |
OS_IE_V_COUNT | V counter interrupt |
OS_IE_TIMER0 | Timer0 interrupt |
OS_IE_TIMER1 | Timer1 interrupt |
OS_IE_TIMER2 | Timer2 interrupt |
OS_IE_TIMER3 | Timer3 interrupt |
OS_IE_DMA0 | DMA0 interrupt |
OS_IE_DMA1 | DMA1 interrupt |
OS_IE_DMA2 | DMA2 interrupt |
OS_IE_DMA3 | DMA3 interrupt |
OS_IE_KEY | Key interrupt *1 |
OS_IE_CARTRIDGE | Game Pak IREQ/DREQ interrupt |
OS_IE_SUBP | ARM7 interrupt |
OS_IE_SPFIFO_SEND | ARM9-ARM7 send FIFO empty interrupt |
OS_IE_SPFIFO_RECV | ARM9-ARM7 receive FIFO not-empty interrupt |
OS_IE_CARD_DATA | Card data transfer end interrupt |
OS_IE_CARD_IREQ | Card IREQ interrupt |
OS_IE_GXFIFO | Geometry command FIFO interrupt |
*1 The hardware specification does not allow the use of the key interrupt. However, it can be used for waking from sleep.
Example:// Enable both V-Blank and DMA0 interrupts.
OS_SetIrqMask( OS_IE_V_BLANK | OS_IE_DMA0 );
// IRQ master enable
OS_EnableIrq();
Note: OS_SetIrqMask
is a function that overwrites and sets IRQ interrupt causes, and not a function to add specified causes. Since some interrupt causes are set by system, do not overwrite settings needlessly. For example, because tick and alarm use a timer interrupt, IRQ interrupt cause for the applicable timer must be enabled. Use OS_EnableIrqMask
when adding IRQ interrupts to the previous settings.
Operates on one of the IO registers, IE (Interrupt Enable).
OS_GetIrqMask
, OS_EnableIrqMask
, OS_DisableIrqMask
03/08/2005 Standardized the Japanese term for "interrupt"
12/08/2004 Added warning about OS_IE_KEY
11/24/2004 Deleted OS_IE_SIO
09/01/2004 Changed "subprocessor" to "ARM7" and "between subprocessors" to "between the ARM7 and ARM9"
03/12/2004 Emphasized differences from OS_EnableIrqMask()
12/01/2003 Initial version