STRUCT ACRN_PCI_REQUEST(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct acrn_pci_request(9) β€” a Kernel API Manual moment ✨

okay so bestie, welcome to the struct acrn_pci_request page, straight out of the Kernel API Manual. this is the lowkey iconic little struct that holds Info of a PCI I/O request β€” that's literally the NAME, we're not making it up, it's giving "cover of the group chat" energy πŸŽ€


✨ SYNOPSIS ✨

okay so here's the whole vibe, copied exactly because we do not touch the source code, ever, periodt:

struct acrn_pci_request {
    __u32 direction;
    __u32 reserved[3];
    __u64 size;
    __u32 value;
    __u32 bus;
    __u32 dev;
    __u32 func;
    __u32 reg;
 };

look at her. so neat. so structured. main character struct energy fr fr πŸ‘‘


🫢 Members 🫢

okay so every single field, no skipping, we eat the whole thing:

  • direction β€” the access direction of this request (that's the ACRN_IOREQ_DIR_* crew, iykyk) πŸ’…
  • reserved β€” reserved for alignment, and it should be 0, no cap, that's the whole job
  • size β€” the access size of this PCI I/O request
  • value β€” the read/write value of this PIO I/O request ✨
  • bus β€” the PCI bus value of this PCI I/O request
  • dev β€” the PCI device value of this PCI I/O request
  • func β€” the PCI function value of this PCI I/O request
  • reg β€” the PCI config space offset of this PCI I/O request

that's eight fields bestie, count 'em, all accounted for πŸ’–


πŸ¦‹ Description πŸ¦‹

okay so the entire plot twist here is tiny but crucial: you need keep same header layout with struct acrn_pio_request. that's it. that's the whole description. alignment baddie behaviour 🧚


πŸ’œ SEE ALSO πŸ’œ

like, go read these too, they're all part of the same friend group:

  • the Kernel file ./include/uapi/linux/acrn.h
  • struct acrn_mmio_request(9)
  • struct acrn_pio_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)

the way that's a whole friend group of structs 😭 go say hi, they don't bite πŸ“


🌸 quick vibe check bestie: the layout detail is not decorative β€” that's the actual documented requirement, so don't go rearranging fields and acting surprised. πŸ’€

and that's the page!! sign-off time 🫢 this one's sourced from ./include/uapi/linux, dated October 2026, and yes the footer's still repping struct acrn_pci_request(9) because consistency slays. mwah, go read your man pages πŸ’‹πŸŒˆ

πŸ“¦ where this page comes from