STRUCT LEAPRAID_FW_LOG_DESC(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– struct leapraid_fw_log_desc(9) β€” Kernel API Manual πŸ’–

okay bestie, so this is a page straight out of the kernel API manual, and today's main character is struct leapraid_fw_log_desc β€” literally the firmware log descriptor for LeapRAID. yes, the whole vibe is "where does the firmware log live and who's holding onto it". it's giving very much ✨ housekeeping-baddie ✨ and we're gonna stan every single field, no skips. πŸŽ€


🌸 NAME 🌸

struct leapraid_fw_log_desc β€” the Firmware log descriptor for LeapRAID, periodt. πŸ’…


πŸ¦‹ SYNOPSIS πŸ¦‹

like, here's the whole glow-up, field by field, and yes you're gonna read all of it:

struct leapraid_fw_log_desc {
    u8 *fw_log_buffer;
    dma_addr_t fw_log_buffer_dma;
    char fw_log_wq_name[48];
    struct workqueue_struct *fw_log_wq;
    struct delayed_work fw_log_work;
    int open_pcie_trace;
    int fw_log_init_flag;
    atomic_t mmap_refcnt;
    wait_queue_head_t mmap_waitq;
 };

✨ Members ✨

okay so each of these little icons does something, and honestly they all ate:

  • fw_log_buffer β€” the actual buffer where the firmware log data chills. the whole reason this struct exists, lowkey iconic. 🧚
  • fw_log_buffer_dma β€” the DMA address of the firmware log buffer. yes it gets its own field, as it should. 🫢
  • fw_log_wq_name[48] β€” the name of the firmware log workqueue. it's a char array, so it's been given exactly 48 characters to work with, and it's making it work. πŸ’œ
  • fw_log_wq β€” the workqueue itself, the one doing the firmware log operations. main character energy fr fr. πŸ‘‘
  • fw_log_work β€” the delayed work structure for the firmware log. delayed but never late, bestie. ⭐
  • open_pcie_trace β€” a flag that tells you if PCIe tracing is open. flag says yes or no, no in-between. πŸ”₯
  • fw_log_init_flag β€” a flag that tells you if the firmware log is initialized. the "did we even set this up yet" field, iykyk. πŸ’€
  • mmap_refcnt β€” the number of active user VMAs on fw_log_buffer. it's an atomic_t, so yes, it's counting carefully. πŸ™ˆ
  • mmap_waitq β€” the waitqueue for fw_log_buffer VMA teardown. it just waits, politely, until the teardown happens. πŸ“

🌈 SEE ALSO 🌈

the kernel file for this one lives at ./drivers/scsi/leapraid/leapraid_func.h, and then there's the whole extended friend group β€” honestly this struct knows everyone:

  • 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_work(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_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 full roster and every single one of them is linked above, mwah. πŸ’‹


ngl bestie, if you're poking at the firmware log buffer while mmap_refcnt is doing its thing, be cute about it β€” the waitqueue mmap_waitq is literally there for the teardown. 🫢

so that's the page! πŸŽ€ it's sourced from ./drivers/scsi/leapraid, dated October 2026, and the whole thing is filed under struct leapraid_fw_log_desc(9). slay, go read the kernel, and hydrate while you're at it πŸ’–βœ¨πŸ¦‹

πŸ“¦ where this page comes from