STRUCT _SAS_PHY(9)
β¨ struct _sas_phy(9) β¨
okay so bestie, welcome to the Kernel API Manual β yes, the kernel kernel, we're in the big leagues now π
this page is all about struct _sas_phy, which is literally just the "phy information" glow-up container. think of it as the little ID card a phy carries around so everybody knows who it is and who it's attached to π«Ά
πΈ NAME πΈ
struct _sas_phy β phy information. that's it, that's the vibe. it's a struct that holds phy info, and honestly it ate π
π¦ SYNOPSIS π¦
struct _sas_phy {
struct list_head port_siblings;
struct sas_identify identify;
struct sas_identify remote_identify;
struct sas_phy *phy;
u8 phy_id;
u16 handle;
u16 attached_handle;
u8 phy_belongs_to_port;
u8 hba_vphy;
struct hba_port *port;
};
like, look at her. ten fields, zero notes. iconic behavior π
π Members π
okay so now the important part β every member, explained, no skipping, i promised π«Ά
port_siblingsβ the list of phys that belong to a port. it's giving group chat member list, but for hardware π¬identifyβ the phy identification. this is the phy's own lil "hey it's me" card πͺͺremote_identifyβ the identification of the attached device. not the phy itself, the thing on the other end πphyβ the sas transport phy object. yes, a struct that contains a pointer to a phy, we love a recursive moment πphy_idβ the unique phy id. unique! one of a kind! main character energy fr fr βhandleβ the device handle for this phy πattached_handleβ the device handle for the attached device. the plus-one's handle π«±phy_belongs_to_portβ tells you a port has been created for this phy. like a little boolean badge that says "yes i have a port now" βportβ the hba port entry containing port number info. that's where the port number lives π’
ngl bestie, hba_vphy shows up in the struct up top but this page doesn't give it its own little write-up. so it's in the code, it's just out here living its truth undocumented π΅οΈπ we don't invent lore for it, we just acknowledge her existence.
π SEE ALSO π
lowkey the friend group is huge, so let's get through the whole roster π«Ά the kernel file is ./drivers/scsi/mpt3sas/mpt3sas_base.h, and here's everyone linked up:
struct MPT3SAS_TARGET(9)struct MPT3SAS_DEVICE(9)struct _internal_cmd(9)struct _sas_device(9)pcie_device_get(9)pcie_device_free(9)pcie_device_put(9)struct _boot_device(9)struct _sas_port(9)struct _sas_node(9)struct _enclosure_node(9)enum reset_type(9)struct pcie_sg_list(9)struct chain_tracker(9)struct scsiio_tracker(9)struct request_tracker(9)struct _tr_list(9)struct _sc_list(9)struct _event_ack_list(9)struct adapter_reply_queue(9)struct io_uring_poll_queue(9)struct virtual_phy(9)struct hba_port(9)struct htb_rel_query(9)struct MPT3SAS_ADAPTER(9)
like i said. huge roster. go read them, iykyk πβ¨
and that's the page, bestie π
this lil masterpiece comes from ./drivers/scsi/mpt3sas, dated October 2026, and it's filed under struct _sas_phy(9) β go forth and slay your kernel debugging, ily π«Άπβ¨
π¦ 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