summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/arm/nds/libnds/include/nds/ipc.h
diff options
context:
space:
mode:
Diffstat (limited to 'c/src/lib/libbsp/arm/nds/libnds/include/nds/ipc.h')
-rw-r--r--c/src/lib/libbsp/arm/nds/libnds/include/nds/ipc.h314
1 files changed, 157 insertions, 157 deletions
diff --git a/c/src/lib/libbsp/arm/nds/libnds/include/nds/ipc.h b/c/src/lib/libbsp/arm/nds/libnds/include/nds/ipc.h
index 85623396ef..6b74747a4a 100644
--- a/c/src/lib/libbsp/arm/nds/libnds/include/nds/ipc.h
+++ b/c/src/lib/libbsp/arm/nds/libnds/include/nds/ipc.h
@@ -1,157 +1,157 @@
-/*---------------------------------------------------------------------------------
- $Id$
-
- Inter Processor Communication
-
- Copyright (C) 2005
- Michael Noland (joat)
- Jason Rogers (dovoto)
- Dave Murphy (WinterMute)
-
- This software is provided 'as-is', without any express or implied
- warranty. In no event will the authors be held liable for any
- damages arising from the use of this software.
-
- Permission is granted to anyone to use this software for any
- purpose, including commercial applications, and to alter it and
- redistribute it freely, subject to the following restrictions:
-
- 1. The origin of this software must not be misrepresented; you
- must not claim that you wrote the original software. If you use
- this software in a product, an acknowledgment in the product
- documentation would be appreciated but is not required.
- 2. Altered source versions must be plainly marked as such, and
- must not be misrepresented as being the original software.
- 3. This notice may not be removed or altered from any source
- distribution.
-
----------------------------------------------------------------------------------*/
-
-#ifndef NDS_IPC_INCLUDE
-#define NDS_IPC_INCLUDE
-
-#include <nds/jtypes.h>
-
-//---------------------------------------------------------------------------------
-typedef struct sTransferSoundData {
-//---------------------------------------------------------------------------------
- const void *data;
- u32 len;
- u32 rate;
- u8 vol;
- u8 pan;
- u8 format;
- u8 PADDING;
-} TransferSoundData, * pTransferSoundData;
-
-
-//---------------------------------------------------------------------------------
-typedef struct sTransferSound {
-//---------------------------------------------------------------------------------
- TransferSoundData data[16];
- u8 count;
- u8 PADDING[3];
-} TransferSound, * pTransferSound;
-
-
-//---------------------------------------------------------------------------------
-typedef struct sTransferRegion {
-//---------------------------------------------------------------------------------
- vint16 touchX, touchY; // TSC X, Y
- vint16 touchXpx, touchYpx; // TSC X, Y pixel values
- vint16 touchZ1, touchZ2; // TSC x-panel measurements
- vuint16 tdiode1, tdiode2; // TSC temperature diodes
- vuint32 temperature; // TSC computed temperature
-
- uint16 buttons; // X, Y, /PENIRQ buttons
-
- union {
- vuint8 curtime[8]; // current time response from RTC
-
- struct {
- vu8 command;
- vu8 year; //add 2000 to get 4 digit year
- vu8 month; //1 to 12
- vu8 day; //1 to (days in month)
-
- vu8 weekday; // day of week
- vu8 hours; //0 to 11 for AM, 52 to 63 for PM
- vu8 minutes; //0 to 59
- vu8 seconds; //0 to 59
- } rtc;
- } time;
- vint32 unixTime;
-
- uint16 battery; // battery life ?? hopefully. :)
- uint16 aux; // i have no idea...
-
- // Don't rely on these below, will change or be removed in the future
- pTransferSound soundData;
-
- vuint32 mailAddr;
- vuint32 mailData;
- vuint8 mailRead;
- vuint8 mailBusy;
- vuint32 mailSize;
-} TransferRegion, * pTransferRegion;
-
-
-static inline
-TransferRegion volatile * getIPC(); // __attribute__ ((deprecated));
-
-static inline
-TransferRegion volatile * getIPC() {
- return (TransferRegion volatile *)(0x027FF000);
-}
-
-#define IPC getIPC()
-
-#define IPC_PEN_DOWN BIT(6)
-#define IPC_X BIT(0)
-#define IPC_Y BIT(1)
-#define IPC_LID_CLOSED BIT(7)
-
-//---------------------------------------------------------------------------------
-// Synchronization register
-//---------------------------------------------------------------------------------
-#define REG_IPC_SYNC (*(vuint16*)0x04000180)
-
-enum IPC_SYNC_BITS {
- IPC_SYNC_IRQ_ENABLE = BIT(14),
- IPC_SYNC_IRQ_REQUEST = BIT(13)
-};
-
-//---------------------------------------------------------------------------------
-static inline void IPC_SendSync(unsigned int sync) {
-//---------------------------------------------------------------------------------
- REG_IPC_SYNC = (REG_IPC_SYNC & 0xf0ff) | (((sync) & 0x0f) << 8) | IPC_SYNC_IRQ_REQUEST;
-}
-
-//---------------------------------------------------------------------------------
-static inline int IPC_GetSync() {
-//---------------------------------------------------------------------------------
- return REG_IPC_SYNC & 0x0f;
-}
-
-//---------------------------------------------------------------------------------
-// fifo
-//---------------------------------------------------------------------------------
-#define REG_IPC_FIFO_TX (*(vu32*)0x4000188)
-#define REG_IPC_FIFO_RX (*(vu32*)0x4100000)
-#define REG_IPC_FIFO_CR (*(vu16*)0x4000184)
-
-enum IPC_CONTROL_BITS {
- IPC_FIFO_SEND_EMPTY = (1<<0),
- IPC_FIFO_SEND_FULL = (1<<1),
- IPC_FIFO_SEND_IRQ = (1<<2),
- IPC_FIFO_SEND_CLEAR = (1<<3),
- IPC_FIFO_RECV_EMPTY = (1<<8),
- IPC_FIFO_RECV_FULL = (1<<9),
- IPC_FIFO_RECV_IRQ = (1<<10),
- IPC_FIFO_ERROR = (1<<14),
- IPC_FIFO_ENABLE = (1<<15)
-};
-
-#endif // NDS_IPC_INCLUDE
-
-
+/*---------------------------------------------------------------------------------
+ $Id$
+
+ Inter Processor Communication
+
+ Copyright (C) 2005
+ Michael Noland (joat)
+ Jason Rogers (dovoto)
+ Dave Murphy (WinterMute)
+
+ This software is provided 'as-is', without any express or implied
+ warranty. In no event will the authors be held liable for any
+ damages arising from the use of this software.
+
+ Permission is granted to anyone to use this software for any
+ purpose, including commercial applications, and to alter it and
+ redistribute it freely, subject to the following restrictions:
+
+ 1. The origin of this software must not be misrepresented; you
+ must not claim that you wrote the original software. If you use
+ this software in a product, an acknowledgment in the product
+ documentation would be appreciated but is not required.
+ 2. Altered source versions must be plainly marked as such, and
+ must not be misrepresented as being the original software.
+ 3. This notice may not be removed or altered from any source
+ distribution.
+
+---------------------------------------------------------------------------------*/
+
+#ifndef NDS_IPC_INCLUDE
+#define NDS_IPC_INCLUDE
+
+#include <nds/jtypes.h>
+
+//---------------------------------------------------------------------------------
+typedef struct sTransferSoundData {
+//---------------------------------------------------------------------------------
+ const void *data;
+ u32 len;
+ u32 rate;
+ u8 vol;
+ u8 pan;
+ u8 format;
+ u8 PADDING;
+} TransferSoundData, * pTransferSoundData;
+
+
+//---------------------------------------------------------------------------------
+typedef struct sTransferSound {
+//---------------------------------------------------------------------------------
+ TransferSoundData data[16];
+ u8 count;
+ u8 PADDING[3];
+} TransferSound, * pTransferSound;
+
+
+//---------------------------------------------------------------------------------
+typedef struct sTransferRegion {
+//---------------------------------------------------------------------------------
+ vint16 touchX, touchY; // TSC X, Y
+ vint16 touchXpx, touchYpx; // TSC X, Y pixel values
+ vint16 touchZ1, touchZ2; // TSC x-panel measurements
+ vuint16 tdiode1, tdiode2; // TSC temperature diodes
+ vuint32 temperature; // TSC computed temperature
+
+ uint16 buttons; // X, Y, /PENIRQ buttons
+
+ union {
+ vuint8 curtime[8]; // current time response from RTC
+
+ struct {
+ vu8 command;
+ vu8 year; //add 2000 to get 4 digit year
+ vu8 month; //1 to 12
+ vu8 day; //1 to (days in month)
+
+ vu8 weekday; // day of week
+ vu8 hours; //0 to 11 for AM, 52 to 63 for PM
+ vu8 minutes; //0 to 59
+ vu8 seconds; //0 to 59
+ } rtc;
+ } time;
+ vint32 unixTime;
+
+ uint16 battery; // battery life ?? hopefully. :)
+ uint16 aux; // i have no idea...
+
+ // Don't rely on these below, will change or be removed in the future
+ pTransferSound soundData;
+
+ vuint32 mailAddr;
+ vuint32 mailData;
+ vuint8 mailRead;
+ vuint8 mailBusy;
+ vuint32 mailSize;
+} TransferRegion, * pTransferRegion;
+
+
+static inline
+TransferRegion volatile * getIPC(void); // __attribute__ ((deprecated));
+
+static inline
+TransferRegion volatile * getIPC(void) {
+ return (TransferRegion volatile *)(0x027FF000);
+}
+
+#define IPC getIPC()
+
+#define IPC_PEN_DOWN BIT(6)
+#define IPC_X BIT(0)
+#define IPC_Y BIT(1)
+#define IPC_LID_CLOSED BIT(7)
+
+//---------------------------------------------------------------------------------
+// Synchronization register
+//---------------------------------------------------------------------------------
+#define REG_IPC_SYNC (*(vuint16*)0x04000180)
+
+enum IPC_SYNC_BITS {
+ IPC_SYNC_IRQ_ENABLE = BIT(14),
+ IPC_SYNC_IRQ_REQUEST = BIT(13)
+};
+
+//---------------------------------------------------------------------------------
+static inline void IPC_SendSync(unsigned int sync) {
+//---------------------------------------------------------------------------------
+ REG_IPC_SYNC = (REG_IPC_SYNC & 0xf0ff) | (((sync) & 0x0f) << 8) | IPC_SYNC_IRQ_REQUEST;
+}
+
+//---------------------------------------------------------------------------------
+static inline int IPC_GetSync(void) {
+//---------------------------------------------------------------------------------
+ return REG_IPC_SYNC & 0x0f;
+}
+
+//---------------------------------------------------------------------------------
+// fifo
+//---------------------------------------------------------------------------------
+#define REG_IPC_FIFO_TX (*(vu32*)0x4000188)
+#define REG_IPC_FIFO_RX (*(vu32*)0x4100000)
+#define REG_IPC_FIFO_CR (*(vu16*)0x4000184)
+
+enum IPC_CONTROL_BITS {
+ IPC_FIFO_SEND_EMPTY = (1<<0),
+ IPC_FIFO_SEND_FULL = (1<<1),
+ IPC_FIFO_SEND_IRQ = (1<<2),
+ IPC_FIFO_SEND_CLEAR = (1<<3),
+ IPC_FIFO_RECV_EMPTY = (1<<8),
+ IPC_FIFO_RECV_FULL = (1<<9),
+ IPC_FIFO_RECV_IRQ = (1<<10),
+ IPC_FIFO_ERROR = (1<<14),
+ IPC_FIFO_ENABLE = (1<<15)
+};
+
+#endif // NDS_IPC_INCLUDE
+
+