STRUCT RIO_DRIVER(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– struct rio_driver(9) β€” RIO driver info πŸ’–

okay so bestie, welcome to the struct rio_driver(9) page from the Kernel API Manual β€” yes that's the manual name, keep it in your notes πŸ““ β€” this is the whole vibe of what a RIO driver looks like to the kernel. no cap, it's the little bundle of info that tells everyone what your driver is and what it can do πŸŽ€


✨ NAME ✨

struct rio_driver β€” RIO driver info πŸ¦‹


🌸 SYNOPSIS 🌸

here's the whole struct, literally copy it exactly, do not freelance:

struct rio_driver {
    struct list_head node;
    char *name;
    const struct rio_device_id *id_table;
    int (*probe) (struct rio_dev * dev, const struct rio_device_id *id);
    void (*remove) (struct rio_dev * dev);
    void (*shutdown)(struct rio_dev *dev);
    int (*suspend) (struct rio_dev * dev, u32 state);
    int (*resume) (struct rio_dev * dev);
    int (*enable_wake) (struct rio_dev * dev, u32 state, int enable);
    struct device_driver driver;
 };

πŸ‘‘ Members πŸ‘‘

bestie these are the fields, one by one, no skipping, we don't do that here πŸ’…

  • node β€” the node in the list of drivers, it's how you get linked up πŸ”—
  • name β€” the RIO driver name, your driver's whole identity ✨
  • id_table β€” the RIO device ids that get associated with this driver, like your driver's type 🫢
  • probe β€” fires when a RIO device is inserted πŸ‘€
  • remove β€” fires when a RIO device is removed 😭
  • shutdown β€” the shutdown notification callback πŸ’€
  • suspend β€” RIO device suspended, it's napping 😴
  • resume β€” RIO device awakened, she's up again 🌞
  • enable_wake β€” RIO device enable wake event ⏰
  • driver β€” the LDM driver struct, the underlying main character 🌈

🧚 Description 🧚

so what does this actually do? it provides info on a RIO device driver for insertion/removal and power management purposes. that's the whole gig β€” it's giving "organized and functional" and honestly? obsessed πŸ’œ


πŸ”₯ SEE ALSO πŸ”₯

Kernel file ./include/linux/rio.h β€” go read it, iykyk πŸ“–

and the whole friend group:

  • struct rio_switch(9)
  • struct rio_switch_ops(9)
  • struct rio_dev(9)
  • struct rio_msg(9)
  • struct rio_dbell(9)
  • struct rio_mport(9)
  • struct rio_net(9)
  • struct rio_mport_attr(9)
  • struct rio_ops(9)
  • struct rio_scan(9)
  • struct rio_scan_node(9)

✨ cute little sign-off: this page lives in ./include/linux, it's dated October 2026, and it's filed under struct rio_driver(9). slay, go write a driver bestie πŸ’…πŸŽ€
πŸ“¦ where this page comes from