Author: hbelusca
Date: Fri Nov 21 00:13:51 2014
New Revision: 65436
URL:
http://svn.reactos.org/svn/reactos?rev=65436&view=rev
Log:
[DDK]
Add few VDD API prototypes:
- VDDReserve/ReleaseIrqLine to get a "lock" on an IRQ line (so that VDDs can
check whether some IRQs are free or not).
- Add DMA services.
Modified:
trunk/reactos/include/ddk/nt_vdd.h
Modified: trunk/reactos/include/ddk/nt_vdd.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/ddk/nt_vdd.h?rev=6…
==============================================================================
--- trunk/reactos/include/ddk/nt_vdd.h [iso-8859-1] (original)
+++ trunk/reactos/include/ddk/nt_vdd.h [iso-8859-1] Fri Nov 21 00:13:51 2014
@@ -39,6 +39,27 @@
VOID
WINAPI
VDDTerminateVDM(VOID);
+
+
+/*
+ * IRQ services
+ */
+
+WORD
+WINAPI
+VDDReserveIrqLine
+(
+ IN HANDLE hVdd,
+ IN WORD IrqLine
+);
+
+BOOL
+WINAPI
+VDDReleaseIrqLine
+(
+ IN HANDLE hVdd,
+ IN WORD IrqLine
+);
/*
@@ -76,19 +97,69 @@
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
);