STRUCT TGT_DEV_PCIE(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– 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. huge u32 energy, literally the biggest field in here, main character energy for sure πŸ‘‘
  • capb β€” Device capabilities. a u16 of 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 important
  • reset_to β€” Timeout for Target/LUN reset TM. πŸ”₯ also a timeout, but for Target/LUN reset TM, different thing, keep 'em straight bestie
  • dev_info β€” Device information bits. u16 of 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