OS_SetIrqMask

構文

#include <iris/os.h>

OSIrqMask OS_SetIrqMask( OSIrqMask intr );

引数

intr 設定するIRQ割込み要因

返り値

この関数を呼ぶ前の、IRQ割込み要因設定。

説明

IRQ割込みの要因を設定します。
OS_EnableIrq() などでIRQ割り込みのマスターイネーブルを許可にセットすると、この関数でイネーブルにしたIRQ割込み要因に対応するIRQ割込みだけが発生します。

引数intr は、以下の要因の論理和で表されます。

OS_IE_V_BLANK Vブランク割込み
OS_IE_H_BLANK Hブランク割込み
OS_IE_V_COUNT Vカウンター割込み
OS_IE_TIMER0 タイマー0割込み
OS_IE_TIMER1 タイマー1割込み
OS_IE_TIMER2 タイマー2割込み
OS_IE_TIMER3 タイマー3割込み
OS_IE_SIO シリアル通信割込み(使用できません)
OS_IE_DMA0 DMA0割込み
OS_IE_DMA1 DMA1割込み
OS_IE_DMA2 DMA2割込み
OS_IE_DMA3 DMA3割込み
OS_IE_KEY キー割込み
OS_IE_CARTRIDGE カートリッジIREQ/DREQ割込み
OS_IE_SUBP サブプロセッサ割込み
OS_IE_SPFIFO_SEND サブプロセッサ間送信FIFOエンプティ割込み
OS_IE_SPFIFO_RECV サブプロセッサ間受信FIFOノットエンプティ割込み
OS_IE_CARD_DATA カードデータ転送終了割込み
OS_IE_CARD_IREQ カードIREQ割込み
OS_IE_GXFIFO ジオメトリコマンドFIFO割込み

(例)
// Vブランク割込みと、DMA0割込みを許可する
OS_SetIrqMask( OS_IE_V_BLANK | OS_IE_DMA0 );

// IRQ マスターイネーブル
OS_EnableIrq();

内部動作

IOレジスタの一つ、IE (Interrupt Enable) レジスタを操作しています。

参照

OS_GetIrqMask, OS_EnableIrqMask, OS_DisableIrqMask

履歴

2003/12/01 初版