diff --git a/reactos/include/ddk/nt_vdd.h b/reactos/include/ddk/nt_vdd.h index e3fa8debb45..8e26ba15101 100644 --- a/reactos/include/ddk/nt_vdd.h +++ b/reactos/include/ddk/nt_vdd.h @@ -41,6 +41,27 @@ WINAPI 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 */ @@ -76,19 +97,69 @@ BOOL 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 );