use libnvme_sys::{
nvme_cmd_format_mset, nvme_cmd_format_pi, nvme_cmd_format_pil, nvme_cmd_format_ses,
nvme_dst_stc, nvme_fw_commit_ca, nvme_get_features_sel, nvme_sanitize_sanact,
};
#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
#[repr(u8)]
pub enum SecureErase {
#[default]
None = 0,
UserData = 1,
Cryptographic = 2,
}
impl SecureErase {
pub(crate) fn as_raw(self) -> nvme_cmd_format_ses {
self as u8 as nvme_cmd_format_ses
}
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
#[repr(u8)]
pub enum ProtectionInfo {
#[default]
Disabled = 0,
Type1 = 1,
Type2 = 2,
Type3 = 3,
}
impl ProtectionInfo {
pub(crate) fn as_raw(self) -> nvme_cmd_format_pi {
self as u8 as nvme_cmd_format_pi
}
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
#[repr(u8)]
pub enum ProtectionLocation {
#[default]
Last = 0,
First = 1,
}
impl ProtectionLocation {
pub(crate) fn as_raw(self) -> nvme_cmd_format_pil {
self as u8 as nvme_cmd_format_pil
}
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
#[repr(u8)]
pub enum MetadataSettings {
#[default]
Separate = 0,
Extended = 1,
}
impl MetadataSettings {
pub(crate) fn as_raw(self) -> nvme_cmd_format_mset {
self as u8 as nvme_cmd_format_mset
}
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
#[repr(u8)]
pub enum FirmwareAction {
Replace = 0,
ReplaceAndActivate = 1,
SetActive = 2,
ReplaceAndActivateImmediate = 3,
ReplaceBootPartition = 6,
ActivateBootPartition = 7,
}
impl FirmwareAction {
pub(crate) fn as_raw(self) -> nvme_fw_commit_ca {
self as u8 as nvme_fw_commit_ca
}
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
#[repr(u8)]
pub enum FeatureSelect {
#[default]
Current = 0,
Default = 1,
Saved = 2,
Supported = 3,
}
impl FeatureSelect {
pub(crate) fn as_raw(self) -> nvme_get_features_sel {
self as u8 as nvme_get_features_sel
}
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
#[repr(u8)]
pub enum SanitizeAction {
ExitFailure = 1,
BlockErase = 2,
Overwrite = 3,
CryptoErase = 4,
ExitMediaVerification = 5,
}
impl SanitizeAction {
pub(crate) fn as_raw(self) -> nvme_sanitize_sanact {
self as u8 as nvme_sanitize_sanact
}
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
#[repr(u8)]
pub enum SelfTestAction {
Short = 1,
Extended = 2,
HostInitiated = 3,
VendorSpecific = 14,
Abort = 15,
}
impl SelfTestAction {
pub(crate) fn as_raw(self) -> nvme_dst_stc {
self as u8 as nvme_dst_stc
}
}