STRUCT CCW_DRIVER(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

🌸 struct ccw_driver(9) 🌸

okay so bestie, we're in the Kernel API Manual today and the star of the show is struct ccw_driver β€” literally the device driver for channel attached devices. yes, s390 content, yes it's iconic, stay with me πŸ’…


✨ NAME ✨

struct ccw_driver β€” device driver for channel attached devices πŸŽ€


πŸ¦‹ SYNOPSIS πŸ¦‹

struct ccw_driver {
    struct ccw_device_id *ids;
    int (*probe) (struct ccw_device *);
    void (*remove) (struct ccw_device *);
    int (*set_online) (struct ccw_device *);
    int (*set_offline) (struct ccw_device *);
    int (*notify) (struct ccw_device *, int);
    void (*path_event) (struct ccw_device *, int *);
    void (*shutdown) (struct ccw_device *);
    enum uc_todo (*uc_handler) (struct ccw_device *, struct irb *);
    struct device_driver driver;
    enum interruption_class int_class;
 };

like, that's the whole struct, no notes, we love a clean layout 🫢


πŸ’– Members πŸ’–

get comfy, we're doing a lil tour of every single field and honestly? obsessed.

  • ids β€” the ids supported by this driver. it's giving guest list at the club πŸ‘‘
  • probe β€” function called on probe. first contact, bestie 😭
  • remove β€” function called on remove. the goodbye arc, we hate to see it but it's necessary πŸ’€
  • set_online β€” called when setting device online. waking that device up ✨
  • set_offline β€” called when setting device offline. nap time fr fr 🌸
  • notify β€” notify driver of device state changes. it's literally the group chat ping πŸ¦‹
  • path_event β€” notify driver of channel path events. main character energy for the paths πŸŽ€
  • shutdown β€” called at device shutdown. sad but iconic πŸ™ˆ
  • uc_handler β€” callback for unit check handler. the plot twist handler πŸ”₯
  • driver β€” embedded device driver structure. yes it's nested, no we don't make the rules πŸ’…
  • int_class β€” interruption class to use for accounting interrupts. keeping the books balanced, ngl ⭐

🌈 SEE ALSO 🌈

  • Kernel file ./arch/s390/include/asm/ccwdev.h struct ccw_device(9) β€” go read the sibling struct too, iykyk πŸ’œ

real talk: every field above is a pointer/hook the kernel will call into, so keep the exact names and signatures β€” no renaming, no vibes-based edits 🫢

and that's the page, bestie! brought to you by the <rainbow>./arch/s390/include/asm` manual, October 2026 edition β€” ty for reading, mwah πŸ’–πŸŽ€βœ¨

πŸ“¦ where this page comes from