These functions are divided into two classes. The first class contains two basic functions: one for initializing the DMA controller chip, one for allocating a suitably aligned buffer. The second class is a set of wrapper functions for the Virtual DMA specification (VDS) API.
A set of programs demonstrating the various functions supplied in the library is available for downloading.
Allocate a suitably aligned DMA buffer:
dma_alloc()
Initialize and enable a DMA channel:
dma_init()
Note that while these functions work well under 16-bit DOS, VDS services which automatically transfer data between the user's buffer and the VDS services' buffer always fail to successfully transfer the data under 32-bit DOS.
Get information about the VDS system:
vds_info()
Allocate a VDS DMA buffer:
vds_alloc()
Free a VDS DMA buffer:
vds_free()
Lock a DMA buffer:
vds_lock()
Unlock a DMA buffer:
vds_unlock()
Scatter / Gather lock: vds_sglock()
Scatter / Gather unlock: vds_sgunlock()
Copy data between the user's buffer and the VDS DMA buffer:
vds_copy()
Enable or disable address translation:
vds_translate()
Copyright © 2000 by L.W. Haynes, all rights reserved
Last Updated: 2001-01-24T21:40:23-07:00