STRUCT LEAPRAID_FW_EVT_WORK(9)
π NAME π
struct leapraid_fw_evt_work β the firmware event work structure, aka the little packet of vibes that carries a firmware event around the kernelβs workqueue πΈ
(also hi bestie, this one lives in the Kernel API Manual, iykyk π)
β¨ SYNOPSIS β¨
struct leapraid_fw_evt_work {
struct list_head list;
struct leapraid_adapter *adapter;
struct work_struct work;
struct kref refcnt;
void *evt_data;
u16 dev_handle;
u16 evt_type;
u8 ignore;
};
yes bestie, that trailing space before the closing brace is exactly how itβs written in the original and we do not touch it. character for character, periodt π
π Members π
okay so hereβs the whole cast, and every single one of them is a main character in their own way:
listβ the linked list node, literally just so this work can be queued up with all its little friends π¦adapterβ pointer to the associated LeapRAID adapter, the home base this whole event belongs to πworkβ the work structure that the kernel workqueue actually uses, thatβs the whole point of this thing β¨refcntβ the reference counter, keeping track of the lifetime of this work so nothing gets freed while someoneβs still holding it (rude) πevt_dataβ pointer to the firmware event data β the actual payload, the tea, the content πdev_handleβ the device handle associated with the event, au16of pure identifying energy π₯evt_typeβ the type of firmware event, also au16, so the kernel knows what kind of situation weβre in πignoreβ flag telling you whether the event should be ignored, au8, and honestly same sometimes π
π SEE ALSO π
okay so this is the part where I introduce you to the entire friend group, no cap. First up, the kernel file weβre all living in:
./drivers/scsi/leapraid/leapraid_func.h
and then the whole extended family, every single one of them, not skipping a single cousin π«Ά:
struct leapraid_adapter_features(9), struct leapraid_adapter_attr(9), struct leapraid_io_req_tracker(9), struct leapraid_task_tracker(9), struct leapraid_rep_desc_maint(9), struct leapraid_rep_desc_seg_maint(9), struct leapraid_mem_desc(9), enum LEAPRAID_CB_INDEX(9), struct leapraid_default_reply(9), struct leapraid_sense_buffer(9), struct leapraid_driver_cmd(9), struct leapraid_driver_cmds(9), struct leapraid_dynamic_task_desc(9), struct leapraid_fw_evt_struct(9), struct leapraid_rq(9), struct leapraid_int_rq(9), struct leapraid_blk_mq_poll_rq(9), struct leapraid_notification_desc(9), struct leapraid_overheat_desc(9), struct leapraid_reset_desc(9), struct leapraid_scan_dev_desc(9), struct leapraid_access_ctrl(9), struct leapraid_fw_log_desc(9), struct leapraid_card_port(9), struct leapraid_card_phy(9), struct leapraid_topo_node(9), struct leapraid_dev_topo(9), struct leapraid_boot_dev(9), struct leapraid_boot_devs(9), struct leapraid_adapter(9), struct leapraid_enc_node(9), struct leapraid_raid_volume(9), struct leapraid_starget_priv(9), struct leapraid_sdev_priv(9), struct leapraid_sas_dev(9), struct leapraid_sas_port(9), struct leapraid_vphy(9), struct leapraid_tgt_rst_list(9), struct sense_info(9), struct leapraid_fw_log_info(9), enum reset_type(9), struct leapraid_card_port_feature(9)
like. thatβs a lot of structs. go read them, theyβre iconic, I promise π
and thatβs the whole page bestie!! this beauty comes to you from the source path ./drivers/scsi/leapraid, dated October 2026 β so itβs giving futuristic but also somehow already documenting your driver. slay. mwah πππ
π¦ 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