} t_dmaChannel;\r
\r
// === PROTOTYPES ===\r
- int DMA_Install();\r
+ int DMA_Install(char **Arguments);\r
void DMA_SetChannel(int Channel, int length, int read);\r
int DMA_ReadData(int channel, int count, void *buffer);\r
\r
\r
// === CODE ===\r
/**\r
- * \fn int DMA_Install()\r
* \brief Initialise DMA channels\r
+ * \param Arguments Arguments passed at boot time\r
*/\r
-int DMA_Install()\r
+int DMA_Install(char **Arguments)\r
{\r
Uint i;\r
for(i=8;i--;)\r
memcpy(buffer, dma_addresses[channel], count);\r
return 0;\r
}\r
+\r
+/**\r
+ * \fn void DMA_WriteData(int channel, int count, void *buffer)\r
+ * \brief Write data to a DMA buffer\r
+ */\r
+int DMA_WriteData(int channel, int count, void *buffer)\r
+{\r
+ if(channel < 0 || channel > 7)\r
+ return -1;\r
+ if(count < 0 || count > DMA_SIZE)\r
+ return -2;\r
+ \r
+ memcpy(dma_addresses[channel], buffer, count);\r
+ \r
+ return 0;\r
+}\r