mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2024-12-29 07:40:50 +01:00
6ec5d28eda
DSPTool: build fix. git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@2995 8ced0084-cf51-0410-be5f-012b33b47a6e
98 lines
2.9 KiB
C
98 lines
2.9 KiB
C
#ifndef __IRQ_H__
|
|
#define __IRQ_H__
|
|
|
|
#include <gctypes.h>
|
|
#include "context.h"
|
|
|
|
#define IM_NONE (0x00000000)
|
|
#define IRQ_MEM0 0
|
|
#define IRQ_MEM1 1
|
|
#define IRQ_MEM2 2
|
|
#define IRQ_MEM3 3
|
|
#define IRQ_MEMADDRESS 4
|
|
#define IRQ_DSP_AI 5
|
|
#define IRQ_DSP_ARAM 6
|
|
#define IRQ_DSP_DSP 7
|
|
#define IRQ_AI_AI 8
|
|
#define IRQ_EXI0_EXI 9
|
|
#define IRQ_EXI0_TC 10
|
|
#define IRQ_EXI0_EXT 11
|
|
#define IRQ_EXI1_EXI 12
|
|
#define IRQ_EXI1_TC 13
|
|
#define IRQ_EXI1_EXT 14
|
|
#define IRQ_EXI2_EXI 15
|
|
#define IRQ_EXI2_TC 16
|
|
#define IRQ_PI_CP 17
|
|
#define IRQ_PI_PETOKEN 18
|
|
#define IRQ_PI_PEFINISH 19
|
|
#define IRQ_PI_SI 20
|
|
#define IRQ_PI_DI 21
|
|
#define IRQ_PI_RSW 22
|
|
#define IRQ_PI_ERROR 23
|
|
#define IRQ_PI_VI 24
|
|
#define IRQ_PI_DEBUG 25
|
|
#define IRQ_PI_HSP 26
|
|
#define IRQ_MAX 32
|
|
|
|
#define IRQMASK(irq) (0x80000000u>>irq)
|
|
|
|
#define IM_MEM0 IRQMASK(IRQ_MEM0)
|
|
#define IM_MEM1 IRQMASK(IRQ_MEM1)
|
|
#define IM_MEM2 IRQMASK(IRQ_MEM2)
|
|
#define IM_MEM3 IRQMASK(IRQ_MEM3)
|
|
#define IM_MEMADDRESS IRQMASK(IRQ_MEMADDRESS)
|
|
#define IM_MEM (IM_MEM0|IM_MEM1|IM_MEM2|IM_MEM3|IM_MEMADDRESS)
|
|
|
|
#define IM_DSP_AI IRQMASK(IRQ_DSP_AI)
|
|
#define IM_DSP_ARAM IRQMASK(IRQ_DSP_ARAM)
|
|
#define IM_DSP_DSP IRQMASK(IRQ_DSP_DSP)
|
|
#define IM_DSP (IM_DSP_AI|IM_DSP_ARAM|IM_DSP_DSP)
|
|
|
|
#define IM_AI_AI IRQMASK(IRQ_AI_AI)
|
|
#define IM_AI (IRQ_AI_AI)
|
|
|
|
#define IM_EXI0_EXI IRQMASK(IRQ_EXI0_EXI)
|
|
#define IM_EXI0_TC IRQMASK(IRQ_EXI0_TC)
|
|
#define IM_EXI0_EXT IRQMASK(IRQ_EXI0_EXT)
|
|
#define IM_EXI0 (IM_EXI0_EXI|IM_EXI0_TC|IM_EXI0_EXT)
|
|
|
|
#define IM_EXI1_EXI IRQMASK(IRQ_EXI1_EXI)
|
|
#define IM_EXI1_TC IRQMASK(IRQ_EXI1_TC)
|
|
#define IM_EXI1_EXT IRQMASK(IRQ_EXI1_EXT)
|
|
#define IM_EXI1 (IM_EXI1_EXI|IM_EXI1_TC|IM_EXI1_EXT)
|
|
|
|
#define IM_EXI2_EXI IRQMASK(IRQ_EXI2_EXI)
|
|
#define IM_EXI2_TC IRQMASK(IRQ_EXI2_TC)
|
|
#define IM_EXI2 (IM_EXI2_EXI|IM_EXI2_TC)
|
|
#define IM_EXI (IM_EXI0|IM_EXI1|IM_EXI2)
|
|
|
|
#define IM_PI_CP IRQMASK(IRQ_PI_CP)
|
|
#define IM_PI_PETOKEN IRQMASK(IRQ_PI_PETOKEN)
|
|
#define IM_PI_PEFINISH IRQMASK(IRQ_PI_PEFINISH)
|
|
#define IM_PI_SI IRQMASK(IRQ_PI_SI)
|
|
#define IM_PI_DI IRQMASK(IRQ_PI_DI)
|
|
#define IM_PI_RSW IRQMASK(IRQ_PI_RSW)
|
|
#define IM_PI_ERROR IRQMASK(IRQ_PI_ERROR)
|
|
#define IM_PI_VI IRQMASK(IRQ_PI_VI)
|
|
#define IM_PI_DEBUG IRQMASK(IRQ_PI_DEBUG)
|
|
#define IM_PI_HSP IRQMASK(IRQ_PI_HSP)
|
|
#define IM_PI (IM_PI_CP|IM_PI_PETOKEN|IM_PI_PEFINISH|IM_PI_SI|IM_PI_DI|IM_PI_RSW|IM_PI_ERROR|IM_PI_VI|IM_PI_DEBUG|IM_PI_HSP)
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif /* __cplusplus */
|
|
|
|
typedef void (raw_irq_handler_t)(u32,void *);
|
|
|
|
raw_irq_handler_t* IRQ_Request(u32 nIrq,raw_irq_handler_t *pHndl,void *pCtx);
|
|
raw_irq_handler_t* IRQ_Free(u32 nIrq);
|
|
raw_irq_handler_t* IRQ_GetHandler(u32 nIrq);
|
|
u32 IRQ_Disable();
|
|
void IRQ_Restore(u32 level);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif /* __cplusplus */
|
|
|
|
#endif
|