libnvme(2)

πŸ’– NAME πŸ’–

enum nvme_crto β€” this field is literally the whole vibe of the controller ready timeouts, bestie. That's it, that's the enum.

So you already know it lives in the libnvme(2) API manual, right? Like, this is page two of the libnvme family, and it's a tiny lil' enum doing big things.


✨ SYNOPSIS ✨

enum nvme_crto {
    NVME_CRTO_CRWMT_SHIFT ,
    NVME_CRTO_CRIMT_SHIFT ,
    NVME_CRTO_CRWMT_MASK ,
    NVME_CRTO_CRIMT_MASK

};

okay so it's four members, no cap. Two shifts, two masks. That's the whole squad. 🫢


🌸 Constants 🌸

These are the four besties that make up enum nvme_crto. Each one is a little key that helps you pull a specific timeout value out of the controller-ready-timeouts field.

  • NVME_CRTO_CRWMT_SHIFT β€” the shift amount you use to get the controller ready with media timeout. (shift it, bestie ✨)
  • NVME_CRTO_CRIMT_SHIFT β€” the shift amount you use to get the controller ready independent of media timeout. (the independent one, she does her own thing πŸ‘‘)
  • NVME_CRTO_CRWMT_MASK β€” the mask that gets you the controller ready with media timeout. (mask on, never mask off πŸ’…)
  • NVME_CRTO_CRIMT_MASK β€” the mask that gets you the controller ready independent of media timeout. (masked and unbothered πŸŽ€)

ngl the naming is doing the most here β€” CRWMT = Controller Ready With Media Timeout, CRIMT = Controller Ready Independent of Media Timeout. Shift when you wanna slide it, mask when you wanna grab it. That's the pattern, iykyk. πŸ’€

okay that's the whole page babes, mwah πŸ’œ This was enum nvme_crto out of the libnvme(2) manual β€” the API Manual, July 2026 edition. Go forth and unmask those timeouts, main character. πŸŒˆβ­πŸ¦‹

πŸ“¦ where this page comes from