STRUCT TB_SERVICE_DRIVER(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– struct tb_service_driver(9) πŸ’–

okay so bestie, welcome to the Kernel API Manual β€” this is the page for struct tb_service_driver(9), aka the Thunderbolt service driver πŸ¦‹


✨ NAME ✨

struct tb_service_driver β€” Thunderbolt service driver. that's it, that's the whole vibe. it's the struct you fill out when you want your driver to hang out with Thunderbolt services πŸ’…


🌸 SYNOPSIS 🌸

struct tb_service_driver {
    struct device_driver driver;
    int (*probe)(struct tb_service *svc);
    void (*remove)(struct tb_service *svc);
    void (*shutdown)(struct tb_service *svc);
    const struct tb_service_id *id_table;
 };

like, copy that shape exactly, no cap πŸŽ€


πŸ‘‘ Members πŸ‘‘

okay so here's who's who in this little friend group:

  • driver β€” the driver structure. yep, the plain ol' struct device_driver that lives inside, main character energy but make it infrastructure πŸ’€
  • probe β€” called when the driver is probed πŸ”₯ this is where your driver wakes up and goes "hiii i'm here"
  • remove β€” called when the driver is removed. it's optional, so you can totally skip it if you want πŸ™ˆ
  • shutdown β€” called at shutdown time to stop the service. also optional, bestie ⭐
  • id_table β€” table of service identifiers the driver supports πŸ‘‘ this is your driver's "these are MY people" list

πŸ¦‹ SEE ALSO πŸ¦‹

  • Kernel file ./include/linux/thunderbolt.h
  • enum tb_security_level(9)
  • struct tb(9)
  • struct tb_property_dir(9)
  • struct tb_property(9)
  • enum tb_link_width(9)
  • struct tb_xdomain(9)
  • struct tb_protocol_handler(9)
  • struct tb_service(9)
  • struct tb_nhi(9)
  • struct tb_ring(9)
  • enum ring_desc_flags(9)
  • struct ring_frame(9)
  • tb_ring_rx(9)
  • tb_ring_tx(9)
  • tb_ring_dma_device(9)

πŸ’œ fr fr go read those too, they're all friends of this page and they all live over in ./include/linux β€” you'll find them hanging out there.

and that's the whole page, bestie!! 🌈 mwah πŸ’‹ this one's from ./include/linux, dated October 2026, and it's literally still filed under struct tb_service_driver(9) in the Kernel API Manual β€” slay βœ¨πŸ«ΆπŸŽ€

πŸ“¦ where this page comes from