STRUCT I3C_IBI_SLOT(9)
π 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β theworkassociated 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:
struct i3c_i2c_dev_desc(9)struct i2c_dev_boardinfo(9)struct i2c_dev_desc(9)struct i3c_device_ibi_info(9)struct i3c_dev_boardinfo(9)struct i3c_dev_desc(9)struct i3c_device(9)enum i3c_bus_mode(9)enum i3c_open_drain_speed(9)enum i3c_addr_slot_status(9)struct i3c_bus(9)struct i3c_master_controller_ops(9)struct i3c_master_controller(9)i3c_bus_for_each_i2cdev(9)i3c_bus_for_each_i3cdev(9)struct i3c_dma(9)i3c_dev_get_master_data(9)i3c_dev_set_master_data(9)i2c_dev_get_master_data(9)i2c_dev_set_master_data(9)i3c_dev_get_master(9)i2c_dev_get_master(9)i3c_master_get_bus(9)
mwah π β source/version: ./include/linux/i3c; date: October 2026; page: struct i3c_ibi_slot(9). bye bestie π«Ά
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms