STRUCT VFIO_CCW_PRIVATE(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ struct vfio_ccw_private(9) ✨

okay so this is a page from the Kernel API Manual bestie, and it's literally just the whole private struct for vfio_ccw laid out for you πŸ’…


🌸 NAME 🌸

struct vfio_ccw_private β€”

no cap, the original NAME line has no description after the dash, so we're not inventing one. the vibes are mysterious. the struct is not. 🫢


πŸŽ€ SYNOPSIS πŸŽ€

here's the whole thing, character for character, don't @ me:

struct vfio_ccw_private {
    struct vfio_device vdev;
    int state;
    struct completion       *completion;
    struct ccw_io_region    *io_region;
    struct mutex            io_mutex;
    struct vfio_ccw_region *region;
    struct ccw_cmd_region   *cmd_region;
    struct ccw_schib_region *schib_region;
    struct ccw_crw_region   *crw_region;
    int num_regions;
    struct channel_program  cp;
    struct irb              irb;
    union scsw              scsw;
    spinlock_t crw_lock;
    struct list_head        crw;
    struct eventfd_ctx      *io_trigger;
    struct eventfd_ctx      *crw_trigger;
    struct eventfd_ctx      *req_trigger;
    struct work_struct      io_work;
    struct work_struct      crw_work;
    struct work_struct      notoper_work;
 };

πŸ¦‹ Members πŸ¦‹

okay this is the main character section, every single field, no skips, let's go πŸ”₯

  • vdev β€” the embedded VFIO device, it's living inside the struct rent-free 🏠
  • state β€” the internal state of the device
  • completion β€” the synchronization helper for I/O completion, it's giving "let me know when you're done" energy
  • io_region β€” the MMIO region where input/output I/O arguments and results go
  • io_mutex β€” protects against concurrent update of I/O resources and the cp lifecycle, so nobody's editing at the same time πŸ™ˆ
  • region β€” additional regions for the other subchannel operations
  • cmd_region β€” MMIO region for asynchronous I/O commands other than START
  • schib_region β€” MMIO region for SCHIB information
  • crw_region β€” MMIO region for getting channel report words
  • num_regions β€” the number of additional regions
  • cp β€” the channel program for the current I/O operation
  • irb β€” irb info received from interrupt
  • scsw β€” scsw info
  • crw_lock β€” serialization of CRW list information, one at a time pls βœ‹
  • crw β€” the list of Channel Report Word elements
  • io_trigger β€” eventfd ctx for signaling userspace I/O results
  • crw_trigger β€” eventfd ctx for signaling userspace CRW information
  • req_trigger β€” eventfd ctx for signaling userspace to return device
  • io_work β€” work for the deferral process of I/O handling
  • crw_work β€” work for the deferral process of CRW handling
  • notoper_work β€” work for deferred processing in not-operational state

🌈 SEE ALSO 🌈

  • Kernel file ./drivers/s390/cio/vfio_ccw_private.h struct vfio_ccw_parent(9)

lowkey important: the SEE ALSO above is exactly what the page says, go read vfio_ccw_parent(9) too bestie, iykyk ⭐

and that's the whole page, periodt πŸ’– this lil piece of the Kernel API Manual came from ./drivers/s390/cio, dated October 2026, and yes the version tag is literally just struct vfio_ccw_private(9) again because the manpage said so 😭 slay πŸŽ€

πŸ“¦ where this page comes from