STRUCT TB_PROPERTY(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ struct tb_property(9) ✨

okay so bestie, welcome to the struct tb_property glow-up πŸ’… this is a page from the Kernel API Manual, and it's all about the XDomain property β€” yes that's the NAME, and yes it's the whole vibe πŸ¦‹


🌸 SYNOPSIS 🌸

Here's the whole struct, character for character, no cap β€” copy it exactly:

struct tb_property {
    struct list_head list;
    char key[TB_PROPERTY_KEY_SIZE + 1];
    enum tb_property_type type;
    size_t length;
    union {
      struct tb_property_dir *dir;
      u8 *data;
      char *text;
      u32 immediate;
    } value;
 };

πŸŽ€ Members πŸŽ€

  • list β€” used to link properties together in a directory πŸ”— it's giving "let's all hold hands" energy.
  • key β€” the key for the property, and it's always terminated (the struct literally reserves TB_PROPERTY_KEY_SIZE + 1 so it can be) ✨
  • type β€” the type of the property. this is the main character for figuring out what's in value πŸ‘‘
  • length β€” length of the property data, measured in dwords (not bytes, bestie, dwords πŸ’€)
  • value β€” the property value itself, and it's a union of several possible shapes 🫢

πŸ’– Description πŸ’–

here's the whole tea β˜•: users check type to figure out which field inside value is the one that's actually filled. that's it, that's the system. vibe check passed βœ…


🌈 SEE ALSO 🌈

Kernel file ./include/linux/thunderbolt.h, plus this whole friend group:

  • enum tb_security_level(9)
  • struct tb(9)
  • struct tb_property_dir(9)
  • enum tb_link_width(9)
  • struct tb_xdomain(9)
  • struct tb_protocol_handler(9)
  • struct tb_service(9)
  • struct tb_service_driver(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)

okay that's the page!! 🧚 sign-off time: this one lives in ./include/linux and it's dated October 2026 β€” iconic, obsessed, periodt πŸ’œπŸ“

πŸ“¦ where this page comes from