libnvme(9)
π libnvme(9) β Namespace Management Host Software Specified Fields π
okay bestie, welcome to libnvme(9), the API manual page you didn't know you needed but now literally can't live without. today's main character is a struct, and it's giving very structured energy. let's get into it π«Ά
β¨ NAME β¨
struct nvme_ns_mgmt_host_sw_specified β Namespace management Host Software Specified Fields.
like, the host software gets to specify stuff. that's the whole vibe. π
π¦ SYNOPSIS π¦
struct nvme_ns_mgmt_host_sw_specified {
__le64 nsze;
__le64 ncap;
__u8 rsvd16[10];
__u8 flbas;
__u8 rsvd27[2];
__u8 dps;
__u8 nmic;
__u8 rsvd31[61];
__le32 anagrpid;
__u8 rsvd96[4];
__le16 nvmsetid;
__le16 endgid;
__u8 rsvd104[280];
__le64 lbstm;
__le16 nphndls;
__u8 rsvd394[105];
union {
__u8 rsvd499[13];
struct {
__u8 znsco;
__le32 rar;
__le32 ror;
__le32 rnumzrwa;
} zns;
};
__le16 phndl[128];
__u8 rsvd768[3328];
};
no cap, those rsvd arrays are thicc and yes, that last one is literally 3328. reserved fields ate and left no crumbs π
πΈ Members πΈ
here's the whole cast, in order, no skips, no cuts β¨
nszeβ Namespace Size. it tells you the total size of the namespace in logical blocks, and the number of logical blocks is based on the formatted LBA size. simple, iconic.ncapβ Namespace Capacity. the max number of logical blocks that may be allocated in the namespace at any point in time, bestie. and yes, the logical block count is based on the formatted LBA size. πrsvd16β Reserved. it's reserved. moving on πflbasβ Formatted LBA Size, seeenum nvme_id_ns_flbas. go check out the enum, it's got lore.rsvd27β Reserved πdpsβ End-to-end Data Protection Type Settings, seeenum nvme_id_ns_dps. protection information, but make it settings β¨nmicβ Namespace Multi-path I/O and Namespace Sharing Capabilities, seeenum nvme_id_ns_nmic. multi-path AND sharing? multitasking queen πrsvd31β Reserved πanagrpidβ ANA Group Identifier. it indicates the ANA Group Identifier of the ANA group of which the namespace is a member. yes the description says ANA Group Identifier for the ANA group, and honestly? it understood the assignment. π₯rsvd96β Reserved βnvmsetidβ NVM Set Identifier. indicates the NVM Set with which this namespace is associated. we love a namespace that knows its set π§endgidβ Endurance Group Identifier. indicates the Endurance Group with which this namespace is associated. endurance? she perseveres πrsvd104β Reserved πΈlbstmβ Logical Block Storage Tag Mask. Identifies the mask for the Storage Tag field for the protection information. it's the mask for the tag, slay πnphndlsβ Number of Placement Handles. specifies the number of Placement Handles included in the Placement Handle List. count them, bestie. all of them. π¦rsvd394β Reserved π{unnamed_union}β anonymous. that's it, that's the whole description. the mystery, the intrigue, the unnamed union π€«rsvd499β Reserved for I/O Command Sets that extend this specification. reserved WITH a reason, we stan documentation πznsβrsvd499( Zoned Namespace Command Set specific field ). the zoned namespace glow-up of that reserved space β¨phndlβ Placement Handle Associated RUH. this field specifies the Reclaim Unit Handle Identifier to be associated with the Placement Handle value. and heads up: if the Flexible Data Placement capability is not supported or not enabled in the specified Endurance Group, then the controller shall ignore this field. so like, the controller is gonna pretend it didn't see it π«₯ (but keep the field in your struct anyway bestie)rsvd768β Reserved. final boss of the reserved fields π
ok quick vibe check: theznsstruct membersznsco,rar,ror, andrnumzrwashow up in the SYNOPSIS up there β they're part of the struct definition, so keep them exactly as written, no renaming, no "fixing" π
that's the whole page, no sections skipped, no fields left behind, every rsvd accounted for π
kisses, and happy struct-ing bestie π
β π¦ sign-off time: this was the struct nvme_ns_mgmt_host_sw_specified page from the API Manual, and it's dated October 2026 β the whole thing lives under libnvme(9), so iykyk πΈ
π¦ where this page comes from
- arch rolling: nvme-cli 3.2-1 Β· GPL-2.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms