STRUCT _SAS_PHY(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ 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