libnvme(9)

πŸ“¦ version 3.2, in arch rolling

🧚 libnvme(9) β€” struct nvme_sanitize_log_page πŸ’…

okay bestie, sit down, grab your iced matcha πŸ“ β€” this is the Sanitize Status log page, aka Log Identifier 81h, and it's literally the receipt your NVMe drive hands you after you nuke it. part of the libnvme API Manual, iykyk. no cap, it's giving ✨clean slate energy✨.


🌸 NAME 🌸

struct nvme_sanitize_log_page β€” the Sanitize Status struct, and yes it maps to Log Identifier 81h, periodt πŸ’….


πŸŽ€ SYNOPSIS πŸŽ€

struct nvme_sanitize_log_page {
    __le16 sprog;
    __le16 sstat;
    __le32 scdw10;
    __le32 eto;
    __le32 etbe;
    __le32 etce;
    __le32 etond;
    __le32 etbend;
    __le32 etcend;
    __le32 etpvds;
    __u8 ssi;
    __u8 rsvd37[475];
 };

like, copy it exactly, don't be quirky with the field names πŸ™ˆ β€” that's the whole vibe check right there.


πŸ¦‹ Members πŸ¦‹

one bullet per field, bestie, we're not skipping a single one πŸ‘‘

  • sprog β€” Sanitize Progress (SPROG). tells you the fraction complete of the sanitize operation πŸ”₯. the value is a numerator of that fraction, and the denominator is 65,536 (10000h) β€” math girlies rise. this value shall be set to FFFFh if the sstat field is not set to NVME_SANITIZE_SSTAT_STATUS_IN_PROGRESS. no in-progress, no number, simple as πŸ’€.
  • sstat β€” Sanitize Status (SSTAT). the status tied to the most recent sanitize operation 🌈. see enum nvme_sanitize_sstat for the deets.
  • scdw10 β€” Sanitize Command Dword 10 Information (SCDW10). it holds the value of the Command Dword 10 field of the Sanitize command that kicked off the whole sanitize operation 🫢. like a screenshot of the command that started it all.
  • eto β€” Estimated Time For Overwrite. the number of seconds it takes to complete an Overwrite sanitize operation with 16 passes in the background when the No-Deallocate Modifies Media After Sanitize field is not set to 10b ⏳.
    • a value of 0h means the sanitize operation is expected to complete in the background when the Sanitize command that started it completes 🌸.
    • a value of FFFFFFFFh means no time period is reported πŸ™ˆ.
  • etbe β€” Estimated Time For Block Erase. seconds to complete a Block Erase sanitize operation in the background when the No-Deallocate Modifies Media After Sanitize field is not set to 10b ⏳.
    • 0h = expected to finish in the background when the Sanitize command that started it completes 🌸.
    • FFFFFFFFh = no time period is reported πŸ™ˆ.
  • etce β€” Estimated Time For Crypto Erase. seconds to complete a Crypto Erase sanitize operation in the background when the No-Deallocate Modifies Media After Sanitize field is not set to 10b ⏳.
    • 0h = expected to finish in the background when the Sanitize command that started it completes 🌸.
    • FFFFFFFFh = no time period is reported πŸ™ˆ.
  • etond β€” Estimated Time For Overwrite With No-Deallocate Media Modification. seconds to complete an Overwrite sanitize operation and the associated additional media modification after the Overwrite sanitize operation in the background, when the No-Deallocate After Sanitize bit was set to 1 in the Sanitize command that requested the Overwrite sanitize operation, and the No-Deallocate Modifies Media After Sanitize field is set to 10b πŸŽ€.
    • 0h = expected to finish in the background when the Sanitize command that started it completes 🌸.
    • FFFFFFFFh = no time period is reported πŸ™ˆ.
  • etbend β€” Estimated Time For Block Erase With No-Deallocate Media Modification. seconds to complete a Block Erase sanitize operation and the associated additional media modification after the Block Erase sanitize operation in the background, when the No-Deallocate After Sanitize bit was set to 1 in the Sanitize command that requested the Overwrite sanitize operation, and the No-Deallocate Modifies Media After Sanitize field is set to 10b πŸŽ€. (yes it says Overwrite in this one too β€” that's literally what the page says, i don't make the rules πŸ’€)
    • 0h = expected to finish in the background when the Sanitize command that started it completes 🌸.
    • FFFFFFFFh = no time period is reported πŸ™ˆ.
  • etcend β€” Estimated Time For Crypto Erase With No-Deallocate Media Modification. seconds to complete a Crypto Erase sanitize operation and the associated additional media modification after the Crypto Erase sanitize operation in the background, when the No-Deallocate After Sanitize bit was set to 1 in the Sanitize command that requested the Overwrite sanitize operation, and the No-Deallocate Modifies Media After Sanitize field is set to 10b πŸŽ€. (same little copy-paste quirk here, keeping it 100% faithful 🫢)
    • 0h = expected to finish in the background when the Sanitize command that started it completes 🌸.
    • FFFFFFFFh = no time period is reported πŸ™ˆ.
  • etpvds β€” Estimated Time For Post-Verification Deallocation State. seconds required to deallocate all media allocated for user data after exiting the Media Verification state β€” like, it's the time difference between entering and exiting the Post-Verification Deallocation state πŸ¦‹ β€” but only if that state is entered as part of the sanitize operation.
    • a value of FFFFFFFFh means no time period is reported πŸ™ˆ. (no 0h rule here, bestie, don't invent one πŸ’…)
  • ssi β€” Sanitize State Information. indicates the state of the Sanitize Operation State Machine βš™οΈβœ¨.
  • rsvd37 β€” Reserved. literally nothing to see here, mind your business πŸ™ˆπŸ’œ.

πŸ’€ reminder bestie: those FFFFFFFFh values aren't a time, they're the "idk, no time period is reported" vibe. don't put them in your math homework.

and that's the whole page, slayed βœ¨πŸ‘‘ β€” this was the libnvme API Manual, page libnvme(9), for struct nvme_sanitize_log_page, dated October 2026 πŸŽ€πŸ’– catch you in the next manpage, mwah 🫢

πŸ“¦ where this page comes from