STRUCT I3C_DEV_DESC(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct i3c_dev_desc(9) πŸ’…

okay bestie, buckle up β€” we're reading a Kernel API Manual page together, and honestly? it's giving main character energy for the I3C core. this one's struct i3c_dev_desc, the I3C device descriptor, and yes it's as iconic as it sounds πŸŽ€


✨ NAME ✨

struct i3c_dev_desc β€” the I3C device descriptor, periodt πŸ’–


🌸 SYNOPSIS 🌸

struct i3c_dev_desc {
    struct i3c_i2c_dev_desc common;
    struct i3c_device_info info;
    struct mutex ibi_lock;
    struct i3c_device_ibi_info *ibi;
    struct i3c_device *dev;
    const struct i3c_dev_boardinfo *boardinfo;
 };

like, look at her. six fields. flawless. no cap πŸ’…


πŸ¦‹ Members πŸ¦‹

  • common β€” the shared/common part of the I3C device descriptor. the group-chat crossover, iykyk 🫢
  • info β€” I3C device information. lowkey the best part: it gets automatically filled in for you when you create your device with i3c_master_add_i3c_dev_locked ✨
  • ibi_lock β€” the lock used to protect the struct_i3c_device->ibi. somebody has to guard the door 😭
  • ibi β€” the IBI info attached to a device. should be NULL until i3c_device_request_ibi is called β€” so don't come for her before she's ready πŸ™ˆ
  • dev β€” pointer to the I3C device object exposed to I3C device drivers. major vibe check here: this should never be accessed from I3C master controller drivers. only core code should manipulate it when updating the dev <-> desc link, or when propagating IBI events to the driver. respect the boundary bestie πŸ’€
  • boardinfo β€” pointer to the boardinfo attached to this I3C device πŸŽ€

πŸ‘‘ Description πŸ‘‘

so what is she? this is the internal representation of an I3C device πŸ”₯ this object is only used by the core, and it gets passed to I3C master controller drivers when they're requested to do some operations on the device.

the core is the one maintaining the link between the internal I3C dev descriptor and the object exposed to the I3C device drivers (struct_i3c_device). that's the whole job. she's the glue, literally 🧚


🌈 SEE ALSO 🌈

kernel file ./include/linux/i3c/master.h, plus the whole squad:


and that's the whole page, bestie, we ate that πŸ“ this lil beauty lives in ./include/linux/i3c, dated October 2026 β€” slay, see you in the next man page πŸ’œβœ¨

πŸ“¦ where this page comes from