Содержание
DmaInfo
Структура, описывающая DMA-буфер, объявлена в файле io/io_dma.h
.
typedef struct {
/** DMA-флаги (атрибуты). */
DmaAttr flags;
/** Минимальный порядок DMA-блоков в буфере. */
rtl_size_t orderMin;
/** Размер DMA-буфера. */
rtl_size_t size;
/** Число DMA-блоков (меньше или равно DMA_FRAMES_COUNT_MAX).
* Может быть равно 0, если DMA-буфер недоступен для устройства. */
rtl_size_t count;
/** Массив описателей DMA-блоков. */
union DmaFrameDescriptor {
struct {
/** Порядок (order) DMA-блока. Число страниц в блоке равно двум
* в степени order. */
DmaAddr order: DMA_FRAME_ORDER_BITS;
/** Физический или IOMMU-адрес DMA-блока. */
DmaAddr frame: DMA_FRAME_BASE_BITS;
};
/** Описатель DMA-блока */
DmaAddr raw;
} descriptors[1];
} DmaInfo;