STRUCT ACRN_MMIO_REQUEST(9)
π struct acrn_mmio_request(9) β like, the whole vibe
okay so bestie, welcome to the Kernel API Manual β¨ this one's all about struct acrn_mmio_request, and honestly? it's giving "small struct, big responsibilities" π it holds the info for a single MMIO I/O request, and we're gonna walk through it field by field, no cap π
πΈ NAME πΈ
struct acrn_mmio_request β Info of a MMIO I/O request π¦
like literally, that's the whole elevator pitch. this struct is the little envelope that says "hey, someone's touching memory-mapped I/O, here's the deets" π
β¨ SYNOPSIS β¨
here's the shape of it, bestie β copy it exactly, don't freestyle:
struct acrn_mmio_request {
__u32 direction;
__u32 reserved;
__u64 address;
__u64 size;
__u64 value;
};
look at that alignment. the __u32s up top, the __u64s chillin' below. it's giving organized. it's giving "I know my types" π
π«Ά Members π«Ά
okay this is the part where we actually read the fields, and there are exactly five, so no skipping π
directionβ the access direction of this request (it's one of theACRN_IOREQ_DIR_*values). read? write? that's what this lil guy tells you πreservedβ reserved for alignment and should be0. periodt. don't put stuff in it, it's not for you, it's for the alignment gods πaddressβ the access address of this MMIO I/O request. where in memory-mapped land we're poking around πsizeβ the access size of this MMIO I/O request. how many bytes we're touching, lowkey important πΈvalueβ the read/write value of this MMIO I/O request. the actual payload β what got read, or what you're writing in there π
real talk:reserved=0, always. it's not a suggestion, it's the whole point of the field π
π¦ SEE ALSO π¦
you want the whole friend group? say less, i got you π«Ά the kernel file ./include/uapi/linux/acrn.h is where all of these live, and here's every single one of them, in order, bestie:
struct acrn_pio_request(9)struct acrn_pci_request(9)struct acrn_io_request(9)struct acrn_ioreq_notify(9)struct acrn_vm_creation(9)struct acrn_gp_regs(9)struct acrn_descriptor_ptr(9)struct acrn_regs(9)struct acrn_vcpu_regs(9)struct acrn_vm_memmap(9)struct acrn_ptdev_irq(9)struct acrn_pcidev(9)struct acrn_mmio_dev_res(9)struct acrn_mmiodev(9)struct acrn_vdev(9)struct acrn_msi_entry(9)struct acrn_cstate_data(9)struct acrn_pstate_data(9)struct acrn_ioeventfd(9)struct acrn_irqfd(9)
that's twenty, count 'em, all present and accounted for π
okay that's the page!! this one came from ./include/uapi/linux and it's dated October 2026 β so like, future-coded of it π go forth, set reserved to 0, and 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