STRUCT REQUEST_DESC_HEADER(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct request_desc_header(9)

okay so bestie, welcome to the Kernel API Manual β€” we're talking about struct request_desc_header, and honestly? She's that girl. This is the Descriptor Header common to both UTRD and UTMRD, and yes you need to know her bit by bit because the byte order literally flips her whole personality. πŸ¦‹


✨ SYNOPSIS ✨

struct request_desc_header {
    u8 cci;
    u8 ehs_length;
  #if defined(__BIG_ENDIAN);
    u8 enable_crypto:1;
    u8 reserved2:7;
    u8 command_type:4;
    u8 reserved1:1;
    u8 data_direction:2;
    u8 interrupt:1;
  #elif defined(__LITTLE_ENDIAN);
    u8 reserved2:7;
    u8 enable_crypto:1;
    u8 interrupt:1;
    u8 data_direction:2;
    u8 reserved1:1;
    u8 command_type:4;
  #else;
  #error;
  #endif;
    __le32 dunl;
    u8 ocs;
    u8 cds;
    __le16 ldbc;
    __le32 dunu;
 };

πŸŽ€ Members πŸŽ€

soooo… the original page lists a Members heading with nothing under it πŸ™ˆ no cap, that's the whole vibe β€” the fields are all sitting pretty right up there in the SYNOPSIS for you to read. Lowkey iconic of her.

bestie take the hint: if you're on neither __BIG_ENDIAN nor __LITTLE_ENDIAN, you hit that #error and it's giving πŸ’€. There is no third option. The struct said periodt.

🌈 SEE ALSO 🌈

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

okay that's the whole page, you ate that 🫢 β€” this little love letter lives in ./include/ufs, dated October 2026, and the manual is the struct request_desc_header(9) page in the Kernel API Manual. go forth and be byte-order-aware, my main character πŸ’–βœ¨πŸŽ€

πŸ“¦ where this page comes from