summaryrefslogtreecommitdiff
path: root/arm9/lib/NitroSDK/include/PXI_fifo.h
diff options
context:
space:
mode:
Diffstat (limited to 'arm9/lib/NitroSDK/include/PXI_fifo.h')
-rw-r--r--arm9/lib/NitroSDK/include/PXI_fifo.h36
1 files changed, 36 insertions, 0 deletions
diff --git a/arm9/lib/NitroSDK/include/PXI_fifo.h b/arm9/lib/NitroSDK/include/PXI_fifo.h
new file mode 100644
index 00000000..b1ca33f3
--- /dev/null
+++ b/arm9/lib/NitroSDK/include/PXI_fifo.h
@@ -0,0 +1,36 @@
+#ifndef POKEDIAMOND_ARM9_PXI_FIFO_H
+#define POKEDIAMOND_ARM9_PXI_FIFO_H
+
+#include "nitro/PXI_fifo_shared.h"
+#include "nitro/types.h"
+
+typedef enum
+{
+ PXI_FIFO_SUCCESS = 0,
+ PXI_FIFO_FAIL_SEND_ERR = -1,
+ PXI_FIFO_FAIL_SEND_FULL = -2,
+ PXI_FIFO_FAIL_RECV_ERR = -3,
+ PXI_FIFO_FAIL_RECV_EMPTY = -4,
+ 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