STRUCT MPI3MR_TGT_DEV(9)
π 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β aScsi_targetpointer, iykykdev_handleβ FW device handleparent_handleβ FW parent device handleslotβ slot numberencl_handleβ FW enclosure handleperst_idβ FW assigned Persistent IDdevpg0_flagβ Device Page0 flagdev_typeβ SAS/SATA/PCIE device typeis_hiddenβ should it be exposed to upper layers or not πhost_exposedβ already exposed to host or notio_unit_portβ IO Unit port IDnon_stlβ is this device not to be attached with SAS TLio_throttle_enabledβ I/O throttling needed or notwslenβ Write same max lengthq_depthβ Device specific Queue Depthwwidβ World wide ID βenclosure_logical_idβ Enclosure logical identifierdev_specβ Device type specific informationref_countβ reference countstateβ 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
- 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