include vdmad.inc DMA_Descriptor_Struc STRUC DDS_size dd ? ; see below DDS_linear dd ? ; see below DDS_seg dw ? ; see below DDS_bufferID dw ? ; see below DDS_physical dd ? ; see below DMA_Descriptor_Struc ENDS
Describes the DMA region.
DDS_size
Size in bytes of the of the DMA region.
DDS_linear
Linear address of the DMA region.
DDS_seg
Segment or selector of the DMA region.
DDS_bufferID
This field is filled in by the Request DMA Buffer service and possibly the Lock DMA Region service.
DDS_physical
This field is filled in by the Lock DMA Region and Request DMA Buffer services.
DDS_linear and DDS_seg specify a 48-bit segment:offset pointer for virtual 8086 mode, or a selector:offset pointer for protected mode programs. Note that if the linear address has already been determined then you may set the DDS_seg to 0 and place the linear address in the linear offset field. It is possible to specify 32-bit offsets, even with real mode segment values; this makes it much easier for device drivers to split up DMA transfers, by simply modifying the offset without having to modify the segment/selector.