#[doc(alias = "SBI_EXT_COVH")]
pub const EID_COVH: usize = crate::eid_from_str("COVH") as _;
pub use fid::*;
mod fid {
#[doc(alias = "SBI_EXT_COVH_GET_TSM_INFO")]
pub const GET_TSM_INFO: usize = 0;
#[doc(alias = "SBI_EXT_COVH_CONVERT_PAGES")]
pub const CONVERT_PAGES: usize = 1;
#[doc(alias = "SBI_EXT_COVH_RECLAIM_PAGES")]
pub const RECLAIM_PAGES: usize = 2;
#[doc(alias = "SBI_EXT_COVH_GLOBAL_FENCE")]
pub const GLOBAL_FENCE: usize = 3;
#[doc(alias = "SBI_EXT_COVH_LOCAL_FENCE")]
pub const LOCAL_FENCE: usize = 4;
#[doc(alias = "SBI_EXT_COVH_CREATE_TVM")]
pub const CREATE_TVM: usize = 5;
#[doc(alias = "SBI_EXT_COVH_FINALIZE_TVM")]
pub const FINALIZE_TVM: usize = 6;
#[doc(alias = "SBI_EXT_COVH_PROMOTE_TO_TVM")]
pub const PROMOTE_TO_TVM: usize = 7;
#[doc(alias = "SBI_EXT_COVH_DESTROY_TVM")]
pub const DESTROY_TVM: usize = 8;
#[doc(alias = "SBI_EXT_COVH_ADD_TVM_MEMORY_REGION")]
pub const ADD_TVM_MEMORY_REGION: usize = 9;
#[doc(alias = "SBI_EXT_COVH_ADD_TVM_PAGE_TABLE_PAGES")]
pub const ADD_TVM_PAGE_TABLE_PAGES: usize = 10;
#[doc(alias = "SBI_EXT_COVH_ADD_TVM_MEASURED_PAGES")]
pub const ADD_TVM_MEASURED_PAGES: usize = 11;
#[doc(alias = "SBI_EXT_COVH_ADD_TVM_ZERO_PAGES")]
pub const ADD_TVM_ZERO_PAGES: usize = 12;
#[doc(alias = "SBI_EXT_COVH_ADD_TVM_SHARED_PAGES")]
pub const ADD_TVM_SHARED_PAGES: usize = 13;
#[doc(alias = "SBI_EXT_COVH_CREATE_TVM_VCPU")]
pub const CREATE_TVM_VCPU: usize = 14;
#[doc(alias = "SBI_EXT_COVH_RUN_TVM_VCPU")]
pub const RUN_TVM_VCPU: usize = 15;
#[doc(alias = "SBI_EXT_COVH_TVM_FENCE")]
pub const TVM_FENCE: usize = 16;
#[doc(alias = "SBI_EXT_COVH_TVM_INVALIDATE_PAGES")]
pub const TVM_INVALIDATE_PAGES: usize = 17;
#[doc(alias = "SBI_EXT_COVH_TVM_VALIDATE_PAGES")]
pub const TVM_VALIDATE_PAGES: usize = 18;
#[doc(alias = "SBI_EXT_COVH_TVM_REMOVE_PAGES")]
pub const TVM_REMOVE_PAGES: usize = 19;
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
#[repr(u32)]
pub enum TvmState {
Initializing = 0,
Runnable = 1,
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
#[repr(u32)]
pub enum TsmPageType {
Page4K = 0,
Page2M = 1,
Page1G = 2,
Page512G = 3,
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
#[repr(u32)]
pub enum TsmState {
NotLoaded = 0,
Loaded = 1,
Ready = 2,
}
#[derive(Clone, Debug, PartialEq, Eq, Hash)]
#[repr(C)]
pub struct TsmInfo {
pub tsm_state: u32,
pub tsm_impl_id: u32,
pub tsm_version: u32,
pub tsm_capabilities: usize,
pub tvm_state_pages: usize,
pub tvm_max_vcpus: usize,
pub tvm_vcpu_state_pages: usize,
}
#[derive(Clone, Debug, PartialEq, Eq, Hash)]
#[repr(C)]
pub struct TvmCreateParams {
pub tvm_page_directory_addr: usize,
pub tvm_state_addr: usize,
}