diff options
Diffstat (limited to 'arm9/lib/include')
-rw-r--r-- | arm9/lib/include/CARD_common.h | 2 | ||||
-rw-r--r-- | arm9/lib/include/OS_interrupt.h | 1 | ||||
-rw-r--r-- | arm9/lib/include/PXI_fifo.h | 20 | ||||
-rw-r--r-- | arm9/lib/include/consts.h | 9 | ||||
-rw-r--r-- | arm9/lib/include/registers.h | 1 |
5 files changed, 29 insertions, 4 deletions
diff --git a/arm9/lib/include/CARD_common.h b/arm9/lib/include/CARD_common.h index c8a247ee..1ae31b7a 100644 --- a/arm9/lib/include/CARD_common.h +++ b/arm9/lib/include/CARD_common.h @@ -224,8 +224,6 @@ void CARD_UnlockBackup(u16 lock_id); #define CARD_RETRY_COUNT_MAX 10 -extern BOOL PXI_SendWordByFifo(u32 param1, u32 data, u32 param2); - static inline void CARDi_SendPxi(u32 data) { while (PXI_SendWordByFifo(PXI_FIFO_TAG_FS, data, TRUE) < 0) diff --git a/arm9/lib/include/OS_interrupt.h b/arm9/lib/include/OS_interrupt.h index 3d139079..c3812128 100644 --- a/arm9/lib/include/OS_interrupt.h +++ b/arm9/lib/include/OS_interrupt.h @@ -12,6 +12,7 @@ #define OS_IE_V_COUNT (1UL << REG_OS_IE_VE_SHIFT) #define OS_IE_TIMER0 (1UL << REG_OS_IE_T0_SHIFT) #define OS_IE_TIMER1 (1UL << REG_OS_IE_T1_SHIFT) +#define OS_IE_SPFIFO_RECV (1UL << REG_OS_IE_IFN_SHIFT) #define OS_IE_CARD_DATA (1UL << REG_OS_IE_MC_SHIFT) extern OSIrqFunction OS_IRQTable[]; diff --git a/arm9/lib/include/PXI_fifo.h b/arm9/lib/include/PXI_fifo.h index becba32e..b1ca33f3 100644 --- a/arm9/lib/include/PXI_fifo.h +++ b/arm9/lib/include/PXI_fifo.h @@ -2,6 +2,7 @@ #define POKEDIAMOND_ARM9_PXI_FIFO_H #include "nitro/PXI_fifo_shared.h" +#include "nitro/types.h" typedef enum { @@ -13,4 +14,23 @@ typedef enum PXI_FIFO_NO_CALLBACK_ENTRY = -5 } PXIFifoStatus; +typedef void (*PXIFifoCallback) (PXIFifoTag tag, u32 data, BOOL err); + +typedef union +{ + struct + { + u32 tag:5; + u32 err:1; + u32 data:26; + } e; + u32 raw; +} PXIFifoMessage; + +void PXI_InitFifo(void); +void PXI_SetFifoRecvCallback(s32 fifotag, PXIFifoCallback callback); +BOOL PXI_IsCallbackReady(s32 fifotag, PXIProc proc); +s32 PXI_SendWordByFifo(s32 fifotag, u32 data, BOOL err); +void PXIi_HandlerRecvFifoNotEmpty(void); + #endif //POKEDIAMOND_ARM9_PXI_FIFO_H diff --git a/arm9/lib/include/consts.h b/arm9/lib/include/consts.h index 7c56a9a3..095a15df 100644 --- a/arm9/lib/include/consts.h +++ b/arm9/lib/include/consts.h @@ -35,8 +35,6 @@ #define HW_CACHE_LINE_SIZE 32 -#define PXI_PROC_ARM7 0x01 - #define OSi_CONSOLE_NOT_DETECT 0xffffffff #define OS_CONSOLE_NITRO 0x80000000 @@ -50,4 +48,11 @@ #define HW_CPU_CLOCK_ARM9 67027964 +#define REG_PXI_SUBP_FIFO_CNT_E_MASK 0x8000 +#define REG_PXI_SUBP_FIFO_CNT_ERR_MASK 0x4000 +#define REG_PXI_SUBP_FIFO_CNT_RECV_RI_MASK 0x0400 +#define REG_PXI_SUBP_FIFO_CNT_RECV_EMP_MASK 0x0100 +#define REG_PXI_SUBP_FIFO_CNT_SEND_CL_MASK 0x0008 +#define REG_PXI_SUBP_FIFO_CNT_SEND_FULL_MASK 0x0002 + #endif //POKEDIAMOND_ARM9_CONSTS_H diff --git a/arm9/lib/include/registers.h b/arm9/lib/include/registers.h index 44a21bf0..d55347d5 100644 --- a/arm9/lib/include/registers.h +++ b/arm9/lib/include/registers.h @@ -350,6 +350,7 @@ #define REG_OS_IE_VE_SHIFT 2 #define REG_OS_IE_T0_SHIFT 3 #define REG_OS_IE_T1_SHIFT 4 +#define REG_OS_IE_IFN_SHIFT 18 #define REG_OS_IE_MC_SHIFT 19 #define REG_OS_TM0CNT_H_I_MASK 0x0040 |