STRUCT IOATDMA_DEVICE(9)
π struct ioatdma_device(9) β from the Kernel API Manual β¨
okay so bestie, this is the page for struct ioatdma_device β the internal representation of a IOAT device π that's it, that's the whole vibe. it's the struct that holds the whole situation together, and we're gonna go through every single field together, no skipping, no cap π
β¨ SYNOPSIS β¨
struct ioatdma_device {
struct pci_dev *pdev;
void __iomem *reg_base;
struct dma_pool *completion_pool;
#define MAX_SED_POOLS 5;
struct dma_pool *sed_hw_pool[MAX_SED_POOLS];
struct dma_device dma_dev;
u8 version;
#define IOAT_MAX_CHANS 4;
struct msix_entry msix_entries[IOAT_MAX_CHANS];
struct ioatdma_chan *idx[IOAT_MAX_CHANS];
struct dca_provider *dca;
enum ioat_irq_mode irq_mode;
u32 cap;
int chancnt;
u64 msixtba0;
u64 msixdata0;
u32 msixpba;
};
like, look at her. main character struct energy fr fr π
also peep the little defines living inside the struct βMAX_SED_POOLSis5andIOAT_MAX_CHANSis4. iconic behavior, honestly πΈ
π¦ Members π¦
pdevβ the PCI-Express device. like, the actual hardware she's attached to π³reg_baseβ MMIO register space base address. where the registers live, address-wise πcompletion_poolβ DMA buffers for completion ops. the pool of buffers for finishing things off β¨sed_hw_poolβ DMA super descriptor pools. yes plural, it's an array, she's got layers πdma_devβ an embeddedstruct dma_device, tucked right in there π«Άversionβ version of the ioatdma device. classic, love a version field πmsix_entriesβ irq handlers πidxβ per channel data. one entry per channel, organized bestie ποΈdcaβ direct cache access context. fancy πirq_modeβ interrupt mode, and the modes areINTX,MSI,MSIXβ pick your fighter β‘capβ read DMA capabilities register. the receipts of what this thing can do π₯
ngl the struct also carrieschancnt,msixtba0,msixdata0andmsixpbaπ they're right there in the synopsis, so don't act surprised when you see them in the wild β the manpage doesn't spill any tea about those ones, so neither will I π
π SEE ALSO π
- Kernel file
./drivers/dma/ioat/dma.h struct ioat_sed_ent(9)struct ioat_ring_ent(9)
go read those next, iykyk π
that's the whole page bestie, you ate that π β this little gem comes from ./drivers/dma/ioat, dated October 2026, and the header up top literally just reads struct ioatdma_device(9). slay π
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms