libnvme(9)
π libnvme(9) β the API Manual, but make it make sense
okay bestie, so this is a page straight out of the libnvme(9) API manual, and it's about one very specific little enum. yes, an enum. no, don't scroll away, it's actually kind of iconic once you get it. stay with me π«Ά
β¨ NAME β¨
enum nvme_lm_track_send_fields β the Track Send command fields, literally. that's the whole vibe. it's a pile of constants that tell the Track Send command how to behave. no cap.
πΈ SYNOPSIS πΈ
here's the whole enum laid out, exactly as it lives in the header. don't touch, don't rename, just vibe:
enum nvme_lm_track_send_fields {
NVME_LM_TRACK_SEND_MOS_SHIFT ,
NVME_LM_TRACK_SEND_MOS_MASK ,
NVME_LM_TRACK_SEND_SEL_SHIFT ,
NVME_LM_TRACK_SEND_SEL_MASK ,
NVME_LM_SEL_LOG_USER_DATA_CHANGES ,
NVME_LM_SEL_TRACK_MEMORY_CHANGES ,
NVME_LM_LACT_SHIFT ,
NVME_LM_LACT_MASK ,
NVME_LM_LACT_STOP_LOGGING ,
NVME_LM_LACT_START_LOGGING
};
π Constants π
okay so here's every single constant, and what it does. i'm not skipping a single one, because we don't do that here π
NVME_LM_TRACK_SEND_MOS_SHIFTβ the shift you use to set the Management Operation Specific (MOS) field. it's giving "move things into place" energy β¨NVME_LM_TRACK_SEND_MOS_MASKβ the mask for setting the MOS field. MOS but make it masked πΈNVME_LM_TRACK_SEND_SEL_SHIFTβ the shift for setting the Select (SEL) field. slide into position, bestie πNVME_LM_TRACK_SEND_SEL_MASKβ the mask for setting the SEL field. iconic, protected, unmessable π₯NVME_LM_SEL_LOG_USER_DATA_CHANGESβ the select option for Log User Data Changes. yup, that's the one πNVME_LM_SEL_TRACK_MEMORY_CHANGESβ the select option for Track Memory Changes. also a select option, also valid, also slaying πNVME_LM_LACT_SHIFTβ the shift for setting the Logging Action (LACT) β and it's relative to MOS, so remember where you started βNVME_LM_LACT_MASKβ the mask for setting LACT, also relative to MOS. same deal, different bit field πNVME_LM_LACT_STOP_LOGGINGβ and here's the actual behaviour, listen up: the controller shall stop logging user data changes to namespaces attached to the controller associated with the User Data Migration Queue specified in the CDQ ID. yeah. that's a whole sentence. but it matters πNVME_LM_LACT_START_LOGGINGβ and the opposite one: the controller shall start logging user data changes to namespaces attached to the controller associated with the User Data Migration Queue, into that User Data Migration Queue β where those user data changes are caused by the controller associated with that User Data Migration Queue processing commands. it's a lot of words but every single one is doing work, i promise π
real talk: these two LACT constants are the actual actions. everything above them is just shifts and masks getting the bits lined up so these two can do their thing. main character energy, honestly π
and that's the whole page, bestie π this was the enum nvme_lm_track_send_fields page, dated October 2026, living inside the libnvme(9) API Manual. go forth and shift those bits responsibly β¨π¦π
π¦ 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