STRUCT ACRN_PIO_REQUEST(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct acrn_pio_request(9) β€” from the Kernel API Manual, bestie

okay so picture this: it's giving "one tiny struct that tells the kernel literally everything about a PIO I/O request" and honestly? iconic. ✨


🌸 NAME 🌸

struct acrn_pio_request β€” all the info about one PIO I/O request, no cap πŸŽ€


✨ SYNOPSIS ✨

struct acrn_pio_request {
    __u32 direction;
    __u32 reserved;
    __u64 address;
    __u64 size;
    __u32 value;
 };

that's it. that's the whole vibe. five fields, zero drama. πŸ¦‹


πŸ‘‘ MEMBERS πŸ‘‘

bestie, let's go field by field, because every single one of these matters:

  • direction β€” the access direction for this request (the ACRN_IOREQ_DIR_* family πŸ‘€). is it a read? is it a write? this field knows.
  • reserved β€” reserved for alignment, and it should be 0. not me telling you to leave it alone… but leave it alone. πŸ™ˆ
  • address β€” the access address of this PIO I/O request. literally where the action happens.
  • size β€” the access size of this PIO I/O request. how many bytes we're talking about.
  • value β€” the read/write value of this PIO I/O request. the actual payload, the main character of the whole struct ngl πŸ’–
friendly reminder from your girl: reserved should be 0. that's a "should be", not a "maybe", so just set it to 0 and we move on 🫢

πŸ¦‹ SEE ALSO πŸ¦‹

so many siblings, and we stan a big family 🌈. these all live in the kernel file ./include/uapi/linux/acrn.h:

  • struct acrn_mmio_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)

iykyk β€” go read them all, they're all connected πŸ’…


and that's the whole page, bestie πŸŽ€ this one comes from ./include/uapi/linux, dated October 2026, and it's filed under the Kernel API Manual. mwah πŸ’œβœ¨

πŸ“¦ where this page comes from