libnvme(2)
β¨ libnvme(2) β API Manual β¨
okay bestie, welcome to libnvme's corner of the manual page universe π
this is the API manual, and today we're hyperfixating on one lil enum. yes it's just constants. no it's not boring, it's giving infrastructure. let's get into it π«Ά
π NAME π
enum nvme_lm_track_send_fields β Track Send command fields
like. the actual name. the whole vibe of this page in one line. π
πΈ SYNOPSIS πΈ
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
};
ten members, zero drama, all of them exactly as written. don't you dare reorder them, the bit math will simply Not π«
π Constants π
oke so here's the tea on every single one of these. no skips, no skimming, we read them all like the good little systems gremlins we are π§
NVME_LM_TRACK_SEND_MOS_SHIFTβ the shift you use to set the Management Operation Specific (MOS) field β¨NVME_LM_TRACK_SEND_MOS_MASKβ the mask you use to set the MOS field πNVME_LM_TRACK_SEND_SEL_SHIFTβ the shift you use to set the Select (SEL) field π«NVME_LM_TRACK_SEND_SEL_MASKβ the mask you use to set the SEL field πNVME_LM_SEL_LOG_USER_DATA_CHANGESβ the Log User Data Changes select option πNVME_LM_SEL_TRACK_MEMORY_CHANGESβ the Track Memory Changes select option π¦NVME_LM_LACT_SHIFTβ the shift you use to set Logging Action (LACT) relative to MOS βNVME_LM_LACT_MASKβ the mask you use to set LACT relative to MOS πNVME_LM_LACT_STOP_LOGGINGβ okay so 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. like, stop stop. logging off. bye πNVME_LM_LACT_START_LOGGINGβ and this 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 β specifically where those user data changes are caused by the controller associated with that User Data Migration Queue processing commands. yes that's a lot of words, yes it's one sentence, no I will not be shortening it, the spec said what it said ππ₯
fr fr: shall is doing a LOT of heavy lifting in those last two. that's not a suggestion, that's the controller's whole job now.
and that's the page bestie π that was enum nvme_lm_track_send_fields, straight outta the libnvme(2) API Manual, dated July 2026. go forth and shift your bits responsibly. periodt πβ¨
π¦ where this page comes from
- ubuntu stonking: libnvme-dev 1.16.2-1build1 Β· LGPL-2.1-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms