STRUCT CHANNEL_PROGRAM(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct channel_program(9) β€” like, the whole kernel API manual, bestie

okay so this is a page from the Kernel API Manual and it's all about struct channel_program, which is literally the lil bookkeeping baddie that manages information for a channel program. s390 core, vfio_ccw vibes, we love to see it πŸŽ€


✨ NAME ✨

struct channel_program β€” manage information for channel program. that's it, that's the whole job, and she does it flawlessly πŸ‘‘


πŸ¦‹ SYNOPSIS πŸ¦‹

struct channel_program {
    struct list_head ccwchain_list;
    union orb orb;
    bool initialized;
    struct ccw1 *guest_cp;
    unsigned int ccwchain_count;
    u64 guest_iova;
 };

no cap, that's the exact struct, character for character, don't touch it πŸ™ˆ


🌸 Members 🌸

  • ccwchain_list β€” the list head of ccwchains. she's the head of the whole friend group fr fr πŸ’–
  • orb β€” the orb for the currently processed ssch request. yes, orb. iconic name, no notes 🫧
  • initialized β€” whether this instance is actually initialized. a bool, so like, is she real or is she just a vibe πŸ’€
  • guest_cp β€” a copy of the guest channel program. a whole struct ccw1 *, stored for safekeeping πŸŽ€
  • ccwchain_count β€” number of channel program segments (linked by TIC). an unsigned int, counting the segments, linked by TIC, iykyk ⭐
  • guest_iova β€” first data address of a guest channel program. a u64, the very first data address, main character energy πŸ‘‘

πŸ’œ Description πŸ’œ

okay so ccwchain_list is the head of a ccwchain list, and that list contents the translated result of the guest channel program β€” the one that's pointed out by the iova parameter when you call cp_init. like, that's the whole flow: you call cp_init, you hand over the iova, and the translated result ends up chilling in this list. obsessed with the pipeline honestly πŸ”₯


🌈 SEE ALSO 🌈

  • Kernel file ./drivers/s390/cio/vfio_ccw_cp.h β€” go read it, bestie, it's giving source of truth 🧚

lowkey a PSA: this whole page lives under ./drivers/s390/cio, the manual's dated October 2026, and the page's own name is struct channel_program(9). screenshot it, memorize it, slay πŸ’…

that's the page!! go forth and cp_init responsibly, ily, periodt πŸ“πŸ’–

πŸ“¦ where this page comes from