Multiple fixes
[tpg/acess2.git] / Kernel / drv / dma.c
index 9116703..750b180 100644 (file)
@@ -3,6 +3,7 @@
  * DMA Driver\r
  */\r
 #include <acess.h>\r
+#include <modules.h>\r
 \r
 #define DMA_SIZE       (0x2400)\r
 #define DMA_ADDRESS(c) ((c)*DMA_SIZE+0x500)    //Save Space for IDT and BDA\r
 #define HIB(x) (((x)>>8)&0xFF)\r
 #define HIW(x) (((x)>>16)&0xFFFF)\r
 \r
-typedef struct {\r
-       int     mode;\r
+// === TYPES ===\r
+typedef struct\r
+{\r
+        int    mode;\r
        char    *address;\r
 } t_dmaChannel;\r
 \r
+// === PROTOTYPES ===\r
+ int   DMA_Install();\r
+void   DMA_SetChannel(int Channel, int length, int read);\r
+ int   DMA_ReadData(int channel, int count, void *buffer);\r
+\r
+// === CONSTANTS ===\r
 const Uint8 cMASKPORT [8] = { 0x0A, 0x0A, 0x0A, 0x0A, 0xD4, 0xD4, 0xD4, 0xD4 };\r
 const Uint8 cMODEPORT [8] = { 0x0B, 0x0B, 0x0B, 0x0B, 0xD6, 0xD6, 0xD6, 0xD6 };\r
 const Uint8 cCLEARPORT[8] = { 0x0C, 0x0C, 0x0C, 0x0C, 0xD8, 0xD8, 0xD8, 0xD8 };\r
@@ -23,14 +32,17 @@ const Uint8 cPAGEPORT [8] = { 0x87, 0x83, 0x81, 0x82, 0x8F, 0x8B, 0x89, 0x8A };
 const Uint8 cADDRPORT [8] = { 0x00, 0x02, 0x04, 0x06, 0xC0, 0xC4, 0xC8, 0xCC };\r
 const Uint8 cCOUNTPORT[8] = { 0x01, 0x03, 0x05, 0x07, 0xC2, 0xC6, 0xCA, 0xCE };\r
 \r
+// === GLOBALS ===\r
+MODULE_DEFINE(0, 0x0100, ISADMA, DMA_Install, NULL, NULL);\r
 char   *dma_addresses[8];\r
 t_dmaChannel   dma_channels[8];\r
 \r
+// === CODE ===\r
 /**\r
- * \fn void DMA_Install()\r
+ * \fn int DMA_Install()\r
  * \brief Initialise DMA channels\r
  */\r
-void DMA_Install()\r
+int DMA_Install()\r
 {\r
        Uint    i;\r
        for(i=8;i--;)\r
@@ -51,6 +63,7 @@ void DMA_Install()
                dma_addresses[i] = (char*)DMA_ADDRESS(i);\r
                dma_addresses[i] += KERNEL_BASE;\r
        }\r
+       return MODULE_ERR_OK;\r
 }\r
 \r
 /**\r

UCC git Repository :: git.ucc.asn.au