STRUCT MPI3MR_TGT_DEV(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸŽ€ struct mpi3mr_tgt_dev β€” target device data structure πŸŽ€

okay bestie, so this is struct mpi3mr_tgt_dev(9) from the Kernel API Manual and it is literally the glow-up blueprint for a target device in the mpi3mr driver. think of it as the main character's profile card β€” every trait, every ID, every little vibe flag lives in here. let's get into it πŸ’…


✨ SYNOPSIS ✨

no cap, here's the whole struct, verbatim, every single field, don't skip a crumb:

struct mpi3mr_tgt_dev {
    struct list_head list;
    struct scsi_target *starget;
    u16 dev_handle;
    u16 parent_handle;
    u16 slot;
    u16 encl_handle;
    u16 perst_id;
    u16 devpg0_flag;
    u8 dev_type;
    u8 is_hidden;
    u8 host_exposed;
    u8 io_unit_port;
    u8 non_stl;
    u8 io_throttle_enabled;
    u16 wslen;
    u16 q_depth;
    u64 wwid;
    u64 enclosure_logical_id;
    union _form_spec_inf dev_spec;
    struct kref ref_count;
    enum mpi3mr_dev_state state;
 };

🌸 Members 🌸

vibe check on every single field, one by one, in order, exactly like the original:

  • list β€” list pointer, the little link in the chain πŸ¦‹
  • starget β€” a Scsi_target pointer, iykyk
  • dev_handle β€” FW device handle
  • parent_handle β€” FW parent device handle
  • slot β€” slot number
  • encl_handle β€” FW enclosure handle
  • perst_id β€” FW assigned Persistent ID
  • devpg0_flag β€” Device Page0 flag
  • dev_type β€” SAS/SATA/PCIE device type
  • is_hidden β€” should it be exposed to upper layers or not πŸ‘€
  • host_exposed β€” already exposed to host or not
  • io_unit_port β€” IO Unit port ID
  • non_stl β€” is this device not to be attached with SAS TL
  • io_throttle_enabled β€” I/O throttling needed or not
  • wslen β€” Write same max length
  • q_depth β€” Device specific Queue Depth
  • wwid β€” World wide ID ⭐
  • enclosure_logical_id β€” Enclosure logical identifier
  • dev_spec β€” Device type specific information
  • ref_count β€” reference count
  • state β€” device state

πŸ’– SEE ALSO πŸ’–

the whole friend group πŸ’… β€” kernel file ./drivers/scsi/mpi3mr/mpi3mr.h plus:

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), mpi3mr_tgtdev_get(9), mpi3mr_free_tgtdev(9), mpi3mr_tgtdev_put(9), struct mpi3mr_stgt_priv_data(9), struct mpi3mr_drv_cmd(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)


okay that's the whole page, you ate that 🫢 this was served up fresh from ./drivers/scsi/mpi3mr, dated October 2026 β€” so cute, so iconic, periodt. πŸ’œβœ¨πŸ‘‘

πŸ“¦ where this page comes from