STRUCT ACRN_MMIO_REQUEST(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… 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 the ACRN_IOREQ_DIR_* values). read? write? that's what this lil guy tells you πŸ‘€
  • reserved β€” reserved for alignment and should be 0. 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