STRUCT MPI3MR_DRV_CMD(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– struct mpi3mr_drv_cmd(9) πŸ’–

okay so bestie, welcome to the Kernel API Manual β€” this is the page for struct mpi3mr_drv_cmd, and it's literally the internal command tracker for the mpi3mr driver. no cap, it's giving main character energy in the SCSI subsystem. let's get into it 🫢


✨ NAME ✨

struct mpi3mr_drv_cmd β€” Internal command tracker

like, it tracks commands internally. that's the vibe. periodt πŸ’…


πŸ¦‹ SYNOPSIS πŸ¦‹

struct mpi3mr_drv_cmd {
    struct mutex mutex;
    struct completion done;
    void *reply;
    u8 *sensebuf;
    u8 iou_rc;
    u16 state;
    u16 dev_handle;
    u16 ioc_status;
    u32 ioc_loginfo;
    u8 is_waiting;
    u8 is_sense;
    u8 retry_count;
    u16 host_tag;
    void (*callback)(struct mpi3mr_ioc *mrioc, struct mpi3mr_drv_cmd
*drv_cmd);
 };

look at that struct, she's iconic πŸ‘‘


πŸ’… Members πŸ’…

okay so every field has a job and they all ate:

  • mutex β€” Command mutex. it's the lock that keeps things from getting messy, y'know? like a group chat admin πŸ”’
  • done β€” Completeor for wakeup. yes it says "Completeor" in the original, we don't fix typos here, we respect the lore. it's the completion thingy that wakes stuff up 😴➑️😳
  • reply β€” Firmware reply for internal commands. the firmware slides into your DMs with this πŸ“©
  • sensebuf β€” Sensebuf for SCSI IO commands. it's the buffer where the sense data lives, very demure, very mindful πŸŽ€
  • iou_rc β€” IO Unit control reason code. iykyk πŸ”₯
  • state β€” Command State. literally the state of the command, no cap πŸ’€
  • dev_handle β€” Firmware handle for device specific commands. it's giving device-specific realness πŸ¦‹
  • ioc_status β€” IOC status from the firmware. the firmware's honest opinion, fr fr πŸ’œ
  • ioc_loginfo β€” IOC log info from the firmware. extra lore from the firmware, we love context 🌸
  • is_waiting β€” Is the command issued in block mode. block mode bestie, it's a whole vibe ⏳
  • is_sense β€” Is Sense data present. yes/no, is the sense data in the room with us rn? 🧐
  • retry_count β€” Retry count for retriable commands. for when you gotta try again, and again, and again πŸ”πŸ˜­
  • host_tag β€” Host tag used by the command. every command needs a name tag, slay 🏷️✨
  • callback β€” Callback for non blocking commands. for the non-blocking girlies who don't wait around πŸ’«

πŸ”— SEE ALSO πŸ”—

bestie you are NOT ready for this list, it's long and it's all connected, like a cinematic universe 🌈

Kernel file ./drivers/scsi/mpi3mr/mpi3mr.h and then:

struct mpi3mr_nvme_pt_sge(9), struct mpi3mr_buf_map(9), struct mpi3mr_compimg_ver(9), struct segments(9), struct op_req_qinfo(9), struct op_reply_qinfo(9), struct mpi3mr_intr_info(9), struct mpi3mr_throttle_group_info(9), struct mpi3mr_hba_port(9), struct mpi3mr_sas_port(9), struct mpi3mr_sas_phy(9), struct mpi3mr_sas_node(9), struct mpi3mr_enclosure_node(9), struct tgt_dev_sas_sata(9), struct tgt_dev_pcie(9), struct tgt_dev_vd(9), union _form_spec_inf(9), struct mpi3mr_tgt_dev(9), mpi3mr_tgtdev_get(9), mpi3mr_free_tgtdev(9), mpi3mr_tgtdev_put(9), struct mpi3mr_stgt_priv_data(9), union mpi3mr_trigger_data(9), struct trigger_event_data(9), struct diag_buffer_desc(9), struct dma_memory_desc(9), struct chain_element(9), struct scmd_priv(9), struct mpi3mr_ioc(9), struct mpi3mr_fwevt(9), struct delayed_dev_rmhs_node(9), struct delayed_evt_ack_node(9)

like I said. cinematic universe. go read them, they're all doing amazing sweetie πŸ’–


lowkey reminder: this is kernel API stuff, so pls don't go changing these fields casually unless you know what you're doing. the driver will simply not slay if you mess it up 😭

okay that's the whole page bestie, every field, every reference, all the lore. this was authored by ./drivers/scsi/mpi3mr with the date October 2026 β€” so mark your calendars, it's giving future energy ⭐ and that's the cute little sign-off, mwah πŸ’‹βœ¨

πŸ“¦ where this page comes from