STRUCT I3C_IBI_SLOT(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– NAME πŸ’–

okay bestie, welcome to struct i3c_ibi_slot(9) from the Kernel API Manual β€” it's the I3C IBI (In-Band Interrupt) slot, and it's lowkey iconic πŸ’….

✨ SYNOPSIS ✨

here's the struct in all its glory, no cap:

       struct i3c_ibi_slot {
           struct work_struct work;
           struct i3c_dev_desc *dev;
           unsigned int len;
           void *data;
        };

🫢 Members 🫢

  • work β€” the work associated with this slot; the IBI handler will be called from there.
  • dev β€” the I3C device that has generated this IBI.
  • len β€” length of the payload associated with this IBI.
  • data β€” payload buffer.

πŸ’œ Description πŸ’œ

An IBI slot is an object that's pre-allocated by the controller and used when an IBI comes in. Every time an IBI comes in, the I3C master driver should find a free IBI slot in its IBI slot pool, retrieve the IBI payload, and queue the IBI using i3c_master_queue_ibi. literally the whole routine ✨.

How IBI slots are allocated is left to the I3C master driver, though for simple kmalloc-based allocation, the generic IBI slot pool can be used. iykyk 🧚.

🌈 SEE ALSO 🌈

Kernel file ./include/linux/i3c/master.h β€” and the whole squad:

mwah πŸ’‹ β€” source/version: ./include/linux/i3c; date: October 2026; page: struct i3c_ibi_slot(9). bye bestie 🫢

πŸ“¦ where this page comes from