VDDTerminateVDM(VOID);
+/*
+ * IRQ services
+ */
+
+WORD
+WINAPI
+VDDReserveIrqLine
+(
+ IN HANDLE hVdd,
+ IN WORD IrqLine
+);
+
+BOOL
+WINAPI
+VDDReleaseIrqLine
+(
+ IN HANDLE hVdd,
+ IN WORD IrqLine
+);
+
+
/*
* I/O Port services
*/
WINAPI
VDDInstallIOHook
(
- HANDLE hVdd,
- WORD cPortRange,
- PVDD_IO_PORTRANGE pPortRange,
- PVDD_IO_HANDLERS IOhandler
+ IN HANDLE hVdd,
+ IN WORD cPortRange,
+ IN PVDD_IO_PORTRANGE pPortRange,
+ IN PVDD_IO_HANDLERS IOhandler
);
VOID
WINAPI
VDDDeInstallIOHook
(
- HANDLE hVdd,
- WORD cPortRange,
- PVDD_IO_PORTRANGE pPortRange
+ IN HANDLE hVdd,
+ IN WORD cPortRange,
+ IN PVDD_IO_PORTRANGE pPortRange
+);
+
+
+/*
+ * DMA services
+ */
+
+typedef struct _VDD_DMA_INFO
+{
+ WORD addr;
+ WORD count;
+ WORD page;
+ BYTE status;
+ BYTE mode;
+ BYTE mask;
+} VDD_DMA_INFO, *PVDD_DMA_INFO;
+
+#define VDD_DMA_ADDR 0x01
+#define VDD_DMA_COUNT 0x02
+#define VDD_DMA_PAGE 0x04
+#define VDD_DMA_STATUS 0x08
+#define VDD_DMA_ALL (VDD_DMA_ADDR | VDD_DMA_COUNT | VDD_DMA_PAGE | VDD_DMA_STATUS)
+
+DWORD
+WINAPI
+VDDRequestDMA
+(
+ IN HANDLE hVdd,
+ IN WORD iChannel,
+ IN OUT PVOID Buffer,
+ IN DWORD length
+);
+
+BOOL
+WINAPI
+VDDQueryDMA
+(
+ IN HANDLE hVdd,
+ IN WORD iChannel,
+ IN PVDD_DMA_INFO pDmaInfo
+);
+
+BOOL
+WINAPI
+VDDSetDMA
+(
+ IN HANDLE hVdd,
+ IN WORD iChannel,
+ IN WORD fDMA,
+ IN PVDD_DMA_INFO pDmaInfo
);