diff --git a/mshv-ioctls/src/ioctls/vm.rs b/mshv-ioctls/src/ioctls/vm.rs index 27c0fd50..d6e45ca4 100644 --- a/mshv-ioctls/src/ioctls/vm.rs +++ b/mshv-ioctls/src/ioctls/vm.rs @@ -36,9 +36,21 @@ pub enum IoEventAddress { #[derive(Eq, PartialEq, Hash, Clone, Debug, Copy)] pub enum VmType { /// Normal VM with no support for confidential computing - Normal, + Normal = 0, /// AMD's SEV-SNP - Snp, + Snp = 1, +} + +impl TryFrom for VmType { + type Error = (); + + fn try_from(v: u64) -> std::result::Result { + match v { + x if x == VmType::Normal as u64 => Ok(VmType::Normal), + x if x == VmType::Snp as u64 => Ok(VmType::Snp), + _ => Err(()), + } + } } /// Helper structure for disabling datamatch.