Machine-readable media, methods, and apparatus are described for
transferring data. In some embodiments, an operating system may allocate
pages to a buffer and may build a memory descriptor list that references
the pages allocated to the buffer. A direct memory access (DMA)
controller may process the memory descriptor list and transfer data
between a buffer defined by the memory descriptor list and another
location per the memory descriptor list. The DMA controller may further
support data transfers that involve buffers defined by scatter gather
lists and/or chained DMA descriptors built by a device driver.