libnvme(9)

πŸ“¦ version 3.2, in arch rolling

πŸ¦‹ libnvme β€” enum nvme_constants πŸ¦‹

okay bestie, welcome to <libnvme(9)>, the API Manual page for section 9, and honestly? this one is just a big lil treasure chest of numbers. it's the enum nvme_constants β€” "A place to stash various constant nvme values" (the manpage said it, not me, but like… accurate πŸ’…).


✨ NAME ✨

enum nvme_constants β€” a place to stash various constant nvme values. yes literally, that's the whole vibe: it's the junk drawer but make it iconic πŸŽ€


🌸 SYNOPSIS 🌸

enum nvme_constants {
    NVME_NSID_ALL ,
    NVME_NSID_NONE ,
    NVME_UUID_NONE ,
    NVME_CNTLID_NONE ,
    NVME_CNSSPECID_NONE ,
    NVME_LOG_LSP_NONE ,
    NVME_LOG_LSI_NONE ,
    NVME_LOG_LPO_NONE ,
    NVME_IDENTIFY_DATA_SIZE ,
    NVME_LOG_SUPPORTED_LOG_PAGES_MAX ,
    NVME_ID_NVMSET_LIST_MAX ,
    NVME_ID_UUID_LIST_MAX ,
    NVME_ID_CTRL_LIST_MAX ,
    NVME_ID_NS_LIST_MAX ,
    NVME_ID_SECONDARY_CTRL_MAX ,
    NVME_ID_DOMAIN_LIST_MAX ,
    NVME_ID_ENDURANCE_GROUP_LIST_MAX ,
    NVME_ID_ND_DESCRIPTOR_MAX ,
    NVME_FEAT_LBA_RANGE_MAX ,
    NVME_LOG_ST_MAX_RESULTS ,
    NVME_LOG_TELEM_BLOCK_SIZE ,
    NVME_LOG_FID_SUPPORTED_EFFECTS_MAX ,
    NVME_LOG_MI_CMD_SUPPORTED_EFFECTS_MAX ,
    NVME_LOG_MI_CMD_SUPPORTED_EFFECTS_RESERVED ,
    NVME_DSM_MAX_RANGES ,
    NVME_NQN_LENGTH ,
    NVMF_TRADDR_SIZE ,
    NVMF_TSAS_SIZE ,
    NVME_ZNS_CHANGED_ZONES_MAX ,
    NVME_STREAM_ID_MAX ,
    NVME_UNDERLYING_NS_LIST_MAX

};

look at her. thirty-ish constants, all chilling in one enum. no cap, this is the whole roster 🫢


πŸ’– CONSTANTS πŸ’–

okay so this is the part where we go one by one, and yes i'm gonna gas up every single one of them, they ALL matter ✨

  • NVME_NSID_ALL β€” a broadcast value, used to specify all namespaces. it's giving "everyone's invited to the party" 🌈
  • NVME_NSID_NONE β€” the invalid namespace id, for when the nsid parameter just isn't used in a command. she's not ghosting you, she's not applicable πŸ™ˆ
  • NVME_UUID_NONE β€” use this to omit a uuid command parameter πŸ¦‹
  • NVME_CNTLID_NONE β€” use this to omit a cntlid command parameter πŸ¦‹
  • NVME_CNSSPECID_NONE β€” use this to omit a cns_specific_id command parameter πŸ¦‹
  • NVME_LOG_LSP_NONE β€” use this to omit a log lsp command parameter πŸ¦‹
  • NVME_LOG_LSI_NONE β€” use this to omit a log lsi command parameter πŸ¦‹
  • NVME_LOG_LPO_NONE β€” use this to omit a log lpo command parameter πŸ¦‹
  • NVME_IDENTIFY_DATA_SIZE β€” the transfer size for nvme identify commands πŸ“¦
  • NVME_LOG_SUPPORTED_LOG_PAGES_MAX β€” the largest possible index in the supported log pages log πŸ”₯
  • NVME_ID_NVMSET_LIST_MAX β€” the largest possible nvmset index in identify nvmeset πŸ‘‘
  • NVME_ID_UUID_LIST_MAX β€” the largest possible uuid index in identify uuid list πŸ‘‘
  • NVME_ID_CTRL_LIST_MAX β€” the largest possible controller index in identify controller list πŸ‘‘
  • NVME_ID_NS_LIST_MAX β€” the largest possible namespace index in identify namespace list πŸ‘‘
  • NVME_ID_SECONDARY_CTRL_MAX β€” the largest possible secondary controller index in identify secondary controller πŸ‘‘
  • NVME_ID_DOMAIN_LIST_MAX β€” the largest possible domain index in the in domain list πŸ‘‘
  • NVME_ID_ENDURANCE_GROUP_LIST_MAX β€” the largest possible endurance group index in the endurance group list πŸ‘‘
  • NVME_ID_ND_DESCRIPTOR_MAX β€” the largest possible namespace granularity index in the namespace granularity descriptor list (i.e. with the LBA Format Extension Enable field set to 1h in the Host Behavior Support feature). yes that's a mouthful, drink some water first πŸ“
  • NVME_FEAT_LBA_RANGE_MAX β€” the largest possible LBA range index in feature lba range type πŸ’œ
  • NVME_LOG_ST_MAX_RESULTS β€” the largest possible self test result index in the device self test log πŸ’œ
  • NVME_LOG_TELEM_BLOCK_SIZE β€” specification defined size of Telemetry Data Blocks. spec said it, we just repeat it, periodt πŸ“
  • NVME_LOG_FID_SUPPORTED_EFFECTS_MAX β€” the largest possible FID index in the feature identifiers effects log ✨
  • NVME_LOG_MI_CMD_SUPPORTED_EFFECTS_MAX β€” the largest possible MI Command index in the MI Command effects log ✨
  • NVME_LOG_MI_CMD_SUPPORTED_EFFECTS_RESERVED β€” the reserved space in the MI Command effects log. reserved = don't touch, bestie πŸ’€
  • NVME_DSM_MAX_RANGES β€” the largest possible range index in a data-set management command πŸŽ€
  • NVME_NQN_LENGTH β€” max length for NVMe Qualified Name πŸŽ€
  • NVMF_TRADDR_SIZE β€” max Transport Address size πŸŽ€
  • NVMF_TSAS_SIZE β€” max Transport Specific Address Subtype size πŸŽ€
  • NVME_ZNS_CHANGED_ZONES_MAX β€” max number of zones in the changed zones log page 🌸
  • NVME_STREAM_ID_MAX β€” max number of stream IDs 🌸
  • NVME_UNDERLYING_NS_LIST_MAX β€” the maximum number of Underlying Namespace Entry data structures reportable in the Get Underlying Namespace List Identify data structure πŸ‘‘

ngl the vibes here are immaculate: tiny enum, huge main character energy, and every single one of these constants ate πŸ’…βœ¨

and that's the page!! source/version is API Manual, page libnvme(9), dated October 2026 β€” so like, if you're reading this in October 2026, we're literally synced up 🫢 byeee, go forth and reference your constants responsibly πŸ¦‹πŸ’–πŸ”₯

πŸ“¦ where this page comes from