STRUCT UTP_TRANSFER_CMD_DESC(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ NAME ✨

struct utp_transfer_cmd_desc β€” the UTP Command Descriptor (aka UCD, bestie, learn the acronym it's everywhere) πŸ’…

(oh also hiii this is a page from the Kernel API Manual, welcome to the kernel, please wipe your feet 🫢)


🌸 SYNOPSIS 🌸

struct utp_transfer_cmd_desc {
    u8 command_upiu[ALIGNED_UPIU_SIZE];
    u8 response_upiu[ALIGNED_UPIU_SIZE];
    u8 prd_table[];
};

okay so it's giving very "three fields and a vibe" and honestly? iconic. no cap. ✨


πŸŽ€ Members πŸŽ€

  • command_upiu β€” bestie this is the Command UPIU Frame address, like the actual address, not a metaphor, it's command_upiu, it holds the Command UPIU Frame address πŸ’–
  • response_upiu β€” the Response UPIU Frame address. yes it's the sibling of the one above, they're matching, it's adorable, the way that commands and responses are literally in the same struct together πŸ¦‹
  • prd_table β€” the Physical Region Descriptor 🌈: an array of SG_ALL struct ufshcd_sg_entry's. and listen β€” variant-specific fields may be present after each one, so don't go assuming the layout is uniform, that's the trap, iykyk 😭
lowkey important: prd_table[] is a flexible array member, so it lives at the end of the struct and it does not have a size baked in. highkey iconic of it. πŸ‘‘

🧚 SEE ALSO 🧚

  • Kernel file ./include/ufs/ufshci.h
  • struct ufshcd_sg_entry(9)
  • struct request_desc_header(9)
  • struct utp_transfer_req_desc(9)

go read them, they're literally all connected, it's a whole friend group 🫢


okay that's the whole page, no notes πŸ’œ

✨ sign-off time ✨ this iconic little page lives in ./include/ufs, dated October 2026, and it's filed under struct utp_transfer_cmd_desc(9) β€” mwah, slay, periodt πŸ’…πŸ”₯
πŸ“¦ where this page comes from