irq.h (462B)
1 #pragma once 2 3 #include <stdio.h> 4 #include "types.h" 5 6 typedef struct irq { 7 u32 status; 8 u32 mask; 9 } irq; 10 11 enum { 12 IRQ_VBLANK = 0, 13 IRQ_GPU = 1, 14 IRQ_CD = 2, 15 IRQ_DMA = 3, 16 IRQ_TIMER_0 = 4, 17 IRQ_TIMER_1 = 5, 18 IRQ_TIMER_2 = 6, 19 IRQ_SIO = 7, 20 IRQ_SPU = 9, 21 IRQ_PIO = 10 22 }; 23 24 enum 25 { 26 IRQ_STATUS_REG = 0, 27 IRQ_MASK_REG = 1 28 }; 29 30 void irq_write(irq*, u32, u32); 31 u32 irq_load(irq*, u32); 32 void irq_set_reg(irq*, u32, u32); 33 u32 irq_get_reg(irq*, u32); 34 irq irq_new(void);