STRUCT LEAPRAID_FW_EVT_WORK(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– 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, a u16 of pure identifying energy πŸ”₯
  • evt_type β€” the type of firmware event, also a u16, so the kernel knows what kind of situation we’re in πŸ’€
  • ignore β€” flag telling you whether the event should be ignored, a u8, 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