STRUCT TGT_DEV_PCIE(9)
π struct tgt_dev_pcie(9) π
okay so bestie, welcome to the struct tgt_dev_pcie(9) page from the Kernel API Manual β and before you ask, yes, this is the whole thing, and yes, it's absolutely iconic that a struct this small has a whole manual page about it. Periodt. β¨
This one's all about a PCIe device's very own little info stash β the device-specific information cached from firmware given data. It's giving "firmware told me stuff, I wrote it down so I wouldn't forget." π
πΈ SYNOPSIS πΈ
like, here's the whole shape of her, exactly as she is, no edits:
struct tgt_dev_pcie {
u32 mdts;
u16 capb;
u8 pgsz;
u8 abort_to;
u8 reset_to;
u16 dev_info;
};
look at that indentation on the closing brace β I didn't touch it, that's just her vibe. π
β¨ Members β¨
okay so this is the fun part, let's meet the squad one by one π«Ά
mdtsβ Maximum data transfer size. hugeu32energy, literally the biggest field in here, main character energy for sure πcapbβ Device capabilities. au16of pure "here's what I can do" β¨pgszβ Device page size.u8, tiny but she knows her page size, iykyk π¦abort_toβ Timeout for abort TM. β° don't sleep on this one, it's the abort TM timeout, lowkey importantreset_toβ Timeout for Target/LUN reset TM. π₯ also a timeout, but for Target/LUN reset TM, different thing, keep 'em straight bestiedev_infoβ Device information bits.u16of bits! bits! which bits? device information bits, that's the whole tea π
heads up: every single one of these descriptions is exactly as much as the manpage gives you. no cap, I'm not gonna invent extra meaning for you, because that would be a vibe crime. π
π SEE ALSO π
okay so this is the part where the manpage name-drops literally everyone in the friend group. brace yourself, they're all in the kernel file ./drivers/scsi/mpi3mr/mpi3mr.h, and here's the full roll call, no one left behind:
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_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)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)
likeβ¦ that's a whole group chat right there, and every one of them is in ./drivers/scsi/mpi3mr. slay π
π§ cute sign-off π§
and that's the page bestie!! this little angel lives in the kernel source tree at ./drivers/scsi/mpi3mr, the doc's dated October 2026, and the footer credits it right back to struct tgt_dev_pcie(9). go forth and cache your firmware data responsibly, ily, bye ππβ
π¦ 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