libnvme(2)

πŸ’– libnvme(2) πŸ’–

okay bestie, welcome to the libnvme manual, page 2 ✨ this is the API manual and today's main character is an enum. yes, an enum. she's long, she's iconic, she has 28 values, and we're gonna go through every single one of them together because we don't skip. periodt. πŸŽ€


🌸 NAME 🌸

enum nvme_identify_cns β€” Identify - CNS Values πŸ’…

(CNS = Controller Namespace? bestie no. it's the Identify command's "what do you want me to identify" selector. anyway, keep reading, the constants explain themselves.)


✨ SYNOPSIS ✨

enum nvme_identify_cns {
    NVME_IDENTIFY_CNS_NS ,
    NVME_IDENTIFY_CNS_CTRL ,
    NVME_IDENTIFY_CNS_NS_ACTIVE_LIST ,
    NVME_IDENTIFY_CNS_NS_DESC_LIST ,
    NVME_IDENTIFY_CNS_NVMSET_LIST ,
    NVME_IDENTIFY_CNS_CSI_NS ,
    NVME_IDENTIFY_CNS_CSI_CTRL ,
    NVME_IDENTIFY_CNS_CSI_NS_ACTIVE_LIST ,
    NVME_IDENTIFY_CNS_CSI_INDEPENDENT_ID_NS ,
    NVME_IDENTIFY_CNS_NS_USER_DATA_FORMAT ,
    NVME_IDENTIFY_CNS_CSI_NS_USER_DATA_FORMAT ,
    NVME_IDENTIFY_CNS_ALLOCATED_NS_LIST ,
    NVME_IDENTIFY_CNS_ALLOCATED_NS ,
    NVME_IDENTIFY_CNS_NS_CTRL_LIST ,
    NVME_IDENTIFY_CNS_CTRL_LIST ,
    NVME_IDENTIFY_CNS_PRIMARY_CTRL_CAP ,
    NVME_IDENTIFY_CNS_SECONDARY_CTRL_LIST ,
    NVME_IDENTIFY_CNS_NS_GRANULARITY ,
    NVME_IDENTIFY_CNS_UUID_LIST ,
    NVME_IDENTIFY_CNS_DOMAIN_LIST ,
    NVME_IDENTIFY_CNS_ENDURANCE_GROUP_ID ,
    NVME_IDENTIFY_CNS_CSI_ALLOCATED_NS_LIST ,
    NVME_IDENTIFY_CNS_CSI_ID_NS_DATA_STRUCTURE ,
    NVME_IDENTIFY_CNS_COMMAND_SET_STRUCTURE ,
    NVME_IDENTIFY_CNS_UNDERLYING_NS_LIST ,
    NVME_IDENTIFY_CNS_PORTS_LIST ,
    NVME_IDENTIFY_CNS_IOCS_IND_ID_ALLOC_NS ,
    NVME_IDENTIFY_CNS_SUPPORTED_CTRL_STATE_FORMATS

};

like. look at her. 28 entries, all just vibing in an enum with nothing assigned, which is so real of her. πŸ¦‹


πŸ‘‘ Constants πŸ‘‘

every single value, in the exact order she was born, no gatekeeping πŸ”₯

🌈 the namespace & controller classics

  • NVME_IDENTIFY_CNS_NS β€” Identify Namespace data structure 🫢
  • NVME_IDENTIFY_CNS_CTRL β€” Identify Controller data structure 🫢
  • NVME_IDENTIFY_CNS_NS_ACTIVE_LIST β€” Active Namespace ID list ✨
  • NVME_IDENTIFY_CNS_NS_DESC_LIST β€” Namespace Identification Descriptor list πŸ“
  • NVME_IDENTIFY_CNS_NVMSET_LIST β€” NVM Set List πŸ“‹

🧚 the I/O Command Set girlies

  • NVME_IDENTIFY_CNS_CSI_NS β€” I/O Command Set specific Identify Namespace data structure πŸ’œ
  • NVME_IDENTIFY_CNS_CSI_CTRL β€” I/O Command Set specific Identify Controller data structure πŸ’œ
  • NVME_IDENTIFY_CNS_CSI_NS_ACTIVE_LIST β€” Active Namespace ID list associated with the specified I/O Command Set 🌸
  • NVME_IDENTIFY_CNS_CSI_INDEPENDENT_ID_NS β€” I/O Command Set Independent Identify 🌟

πŸŽ€ user data format era

  • NVME_IDENTIFY_CNS_NS_USER_DATA_FORMAT β€” Namespace user data format πŸ’…
  • NVME_IDENTIFY_CNS_CSI_NS_USER_DATA_FORMAT β€” I/O Command Set specific user data format Namespace data structure πŸ’…

πŸ“ allocated namespace lore

  • NVME_IDENTIFY_CNS_ALLOCATED_NS_LIST β€” Allocated Namespace ID list πŸ“ƒ
  • NVME_IDENTIFY_CNS_ALLOCATED_NS β€” Identify Namespace data structure for the specified allocated NSID πŸ”

🫢 controller lists (yes plural, plural slays)

  • NVME_IDENTIFY_CNS_NS_CTRL_LIST β€” Controller List of controllers attached to the specified NSID πŸ”—
  • NVME_IDENTIFY_CNS_CTRL_LIST β€” Controller List of controllers that exist in the NVM subsystem 🌐
  • NVME_IDENTIFY_CNS_PRIMARY_CTRL_CAP β€” Primary Controller Capabilities data structure for the specified primary controller πŸ‘‘
  • NVME_IDENTIFY_CNS_SECONDARY_CTRL_LIST β€” Secondary Controller list of controllers associated with the primary controller processing the command πŸͺ©

✨ the lists, the lore, the range

  • NVME_IDENTIFY_CNS_NS_GRANULARITY β€” A Namespace Granularity List πŸ“
  • NVME_IDENTIFY_CNS_UUID_LIST β€” A UUID List πŸ†”
  • NVME_IDENTIFY_CNS_DOMAIN_LIST β€” Domain List πŸ—ΊοΈ
  • NVME_IDENTIFY_CNS_ENDURANCE_GROUP_ID β€” Endurance Group List πŸ’ͺ

πŸ’€ I/O Command Set specific (again, but allocated this time)

  • NVME_IDENTIFY_CNS_CSI_ALLOCATED_NS_LIST β€” I/O Command Set specific Allocated Namespace ID list πŸ—‚οΈ
  • NVME_IDENTIFY_CNS_CSI_ID_NS_DATA_STRUCTURE β€” I/O Command Set specific ID Namespace Data Structure for Allocated Namespace ID 🧬

πŸ”₯ the deep lore section, lowkey the best part

  • NVME_IDENTIFY_CNS_COMMAND_SET_STRUCTURE β€” I/O Command Set data structure πŸ—οΈ
  • NVME_IDENTIFY_CNS_UNDERLYING_NS_LIST β€” Get Underlying Namespace List πŸ•΅οΈ
  • NVME_IDENTIFY_CNS_PORTS_LIST β€” Get Ports List πŸšͺ
  • NVME_IDENTIFY_CNS_IOCS_IND_ID_ALLOC_NS β€” I/O Command Set Independent Identify Namespace data structure for the specified allocated NSID 🎯
  • NVME_IDENTIFY_CNS_SUPPORTED_CTRL_STATE_FORMATS β€” Supported Controller State Formats identifying the supported NVMe Controller State data structures 🧠

no cap, that's genuinely the whole page. 28 constants, every one of them listed, nothing skipped, we ate and left no crumbs πŸ½οΈπŸ’…

kisses bestie, this was enum nvme_identify_cns in the libnvme(2) manual, dated July 2026, and that's the vibe check passed πŸ’–βœ¨πŸ¦‹πŸŒΈπŸŽ€

πŸ“¦ where this page comes from