use core::ffi::c_void;
pub type hv_vcpu_config_t = *mut c_void;
pub type hv_gic_config_t = *mut c_void;
pub type hv_gic_redistributor_reg_t = u32;
pub type hv_vm_config_t = *mut c_void;
pub type hv_vcpu_t = u64;
pub type hv_exit_reason_t = u32;
pub type hv_exception_syndrome_t = u64;
pub type hv_exception_address_t = u64;
pub type hv_ipa_t = u64;
pub type hv_reg_t = u32;
pub type hv_simd_fp_reg_t = u32;
pub type hv_sys_reg_t = u16;
pub type hv_interrupt_type_t = u32;
pub type hv_cache_type_t = u32;
pub type hv_memory_flags_t = u64;
pub type hv_return_t = u32;
pub type hv_feature_reg_t = u32;
#[repr(C)]
#[derive(Copy, Clone, Debug)]
pub struct hv_vcpu_exit_exception_t {
pub syndrome: hv_exception_syndrome_t,
pub virtual_address: hv_exception_address_t,
pub physical_address: hv_ipa_t,
}
#[repr(C)]
#[derive(Copy, Clone, Debug)]
pub struct hv_vcpu_exit_t {
pub reason: hv_exit_reason_t,
pub exception: hv_vcpu_exit_exception_t,
}
pub const HV_EXIT_REASON_CANCELED: hv_exit_reason_t = 0;
pub const HV_EXIT_REASON_EXCEPTION: hv_exit_reason_t = 1;
pub const HV_EXIT_REASON_VTIMER_ACTIVATED: hv_exit_reason_t = 2;
pub const HV_EXIT_REASON_UNKNOWN: hv_exit_reason_t = 3;
pub const HV_REG_X0: hv_reg_t = 0;
pub const HV_REG_X1: hv_reg_t = 1;
pub const HV_REG_X2: hv_reg_t = 2;
pub const HV_REG_X3: hv_reg_t = 3;
pub const HV_REG_X4: hv_reg_t = 4;
pub const HV_REG_X5: hv_reg_t = 5;
pub const HV_REG_X6: hv_reg_t = 6;
pub const HV_REG_X7: hv_reg_t = 7;
pub const HV_REG_X8: hv_reg_t = 8;
pub const HV_REG_X9: hv_reg_t = 9;
pub const HV_REG_X10: hv_reg_t = 10;
pub const HV_REG_X11: hv_reg_t = 11;
pub const HV_REG_X12: hv_reg_t = 12;
pub const HV_REG_X13: hv_reg_t = 13;
pub const HV_REG_X14: hv_reg_t = 14;
pub const HV_REG_X15: hv_reg_t = 15;
pub const HV_REG_X16: hv_reg_t = 16;
pub const HV_REG_X17: hv_reg_t = 17;
pub const HV_REG_X18: hv_reg_t = 18;
pub const HV_REG_X19: hv_reg_t = 19;
pub const HV_REG_X20: hv_reg_t = 20;
pub const HV_REG_X21: hv_reg_t = 21;
pub const HV_REG_X22: hv_reg_t = 22;
pub const HV_REG_X23: hv_reg_t = 23;
pub const HV_REG_X24: hv_reg_t = 24;
pub const HV_REG_X25: hv_reg_t = 25;
pub const HV_REG_X26: hv_reg_t = 26;
pub const HV_REG_X27: hv_reg_t = 27;
pub const HV_REG_X28: hv_reg_t = 28;
pub const HV_REG_X29: hv_reg_t = 29;
pub const HV_REG_FP: hv_reg_t = HV_REG_X29;
pub const HV_REG_X30: hv_reg_t = 30;
pub const HV_REG_LR: hv_reg_t = HV_REG_X30;
pub const HV_REG_PC: hv_reg_t = 31;
pub const HV_REG_FPCR: hv_reg_t = 32;
pub const HV_REG_FPSR: hv_reg_t = 33;
pub const HV_REG_CPSR: hv_reg_t = 34;
pub const HV_SIMD_FP_REG_Q0: hv_simd_fp_reg_t = 0;
pub const HV_SIMD_FP_REG_Q1: hv_simd_fp_reg_t = 1;
pub const HV_SIMD_FP_REG_Q2: hv_simd_fp_reg_t = 2;
pub const HV_SIMD_FP_REG_Q3: hv_simd_fp_reg_t = 3;
pub const HV_SIMD_FP_REG_Q4: hv_simd_fp_reg_t = 4;
pub const HV_SIMD_FP_REG_Q5: hv_simd_fp_reg_t = 5;
pub const HV_SIMD_FP_REG_Q6: hv_simd_fp_reg_t = 6;
pub const HV_SIMD_FP_REG_Q7: hv_simd_fp_reg_t = 7;
pub const HV_SIMD_FP_REG_Q8: hv_simd_fp_reg_t = 8;
pub const HV_SIMD_FP_REG_Q9: hv_simd_fp_reg_t = 9;
pub const HV_SIMD_FP_REG_Q10: hv_simd_fp_reg_t = 10;
pub const HV_SIMD_FP_REG_Q11: hv_simd_fp_reg_t = 11;
pub const HV_SIMD_FP_REG_Q12: hv_simd_fp_reg_t = 12;
pub const HV_SIMD_FP_REG_Q13: hv_simd_fp_reg_t = 13;
pub const HV_SIMD_FP_REG_Q14: hv_simd_fp_reg_t = 14;
pub const HV_SIMD_FP_REG_Q15: hv_simd_fp_reg_t = 15;
pub const HV_SIMD_FP_REG_Q16: hv_simd_fp_reg_t = 16;
pub const HV_SIMD_FP_REG_Q17: hv_simd_fp_reg_t = 17;
pub const HV_SIMD_FP_REG_Q18: hv_simd_fp_reg_t = 18;
pub const HV_SIMD_FP_REG_Q19: hv_simd_fp_reg_t = 19;
pub const HV_SIMD_FP_REG_Q20: hv_simd_fp_reg_t = 20;
pub const HV_SIMD_FP_REG_Q21: hv_simd_fp_reg_t = 21;
pub const HV_SIMD_FP_REG_Q22: hv_simd_fp_reg_t = 22;
pub const HV_SIMD_FP_REG_Q23: hv_simd_fp_reg_t = 23;
pub const HV_SIMD_FP_REG_Q24: hv_simd_fp_reg_t = 24;
pub const HV_SIMD_FP_REG_Q25: hv_simd_fp_reg_t = 25;
pub const HV_SIMD_FP_REG_Q26: hv_simd_fp_reg_t = 26;
pub const HV_SIMD_FP_REG_Q27: hv_simd_fp_reg_t = 27;
pub const HV_SIMD_FP_REG_Q28: hv_simd_fp_reg_t = 28;
pub const HV_SIMD_FP_REG_Q29: hv_simd_fp_reg_t = 29;
pub const HV_SIMD_FP_REG_Q30: hv_simd_fp_reg_t = 30;
pub const HV_SIMD_FP_REG_Q31: hv_simd_fp_reg_t = 31;
pub const HV_SYS_REG_DBGBVR0_EL1: hv_sys_reg_t = 0x8004;
pub const HV_SYS_REG_DBGBCR0_EL1: hv_sys_reg_t = 0x8005;
pub const HV_SYS_REG_DBGWVR0_EL1: hv_sys_reg_t = 0x8006;
pub const HV_SYS_REG_DBGWCR0_EL1: hv_sys_reg_t = 0x8007;
pub const HV_SYS_REG_DBGBVR1_EL1: hv_sys_reg_t = 0x800c;
pub const HV_SYS_REG_DBGBCR1_EL1: hv_sys_reg_t = 0x800d;
pub const HV_SYS_REG_DBGWVR1_EL1: hv_sys_reg_t = 0x800e;
pub const HV_SYS_REG_DBGWCR1_EL1: hv_sys_reg_t = 0x800f;
pub const HV_SYS_REG_MDCCINT_EL1: hv_sys_reg_t = 0x8010;
pub const HV_SYS_REG_MDSCR_EL1: hv_sys_reg_t = 0x8012;
pub const HV_SYS_REG_DBGBVR2_EL1: hv_sys_reg_t = 0x8014;
pub const HV_SYS_REG_DBGBCR2_EL1: hv_sys_reg_t = 0x8015;
pub const HV_SYS_REG_DBGWVR2_EL1: hv_sys_reg_t = 0x8016;
pub const HV_SYS_REG_DBGWCR2_EL1: hv_sys_reg_t = 0x8017;
pub const HV_SYS_REG_DBGBVR3_EL1: hv_sys_reg_t = 0x801c;
pub const HV_SYS_REG_DBGBCR3_EL1: hv_sys_reg_t = 0x801d;
pub const HV_SYS_REG_DBGWVR3_EL1: hv_sys_reg_t = 0x801e;
pub const HV_SYS_REG_DBGWCR3_EL1: hv_sys_reg_t = 0x801f;
pub const HV_SYS_REG_DBGBVR4_EL1: hv_sys_reg_t = 0x8024;
pub const HV_SYS_REG_DBGBCR4_EL1: hv_sys_reg_t = 0x8025;
pub const HV_SYS_REG_DBGWVR4_EL1: hv_sys_reg_t = 0x8026;
pub const HV_SYS_REG_DBGWCR4_EL1: hv_sys_reg_t = 0x8027;
pub const HV_SYS_REG_DBGBVR5_EL1: hv_sys_reg_t = 0x802c;
pub const HV_SYS_REG_DBGBCR5_EL1: hv_sys_reg_t = 0x802d;
pub const HV_SYS_REG_DBGWVR5_EL1: hv_sys_reg_t = 0x802e;
pub const HV_SYS_REG_DBGWCR5_EL1: hv_sys_reg_t = 0x802f;
pub const HV_SYS_REG_DBGBVR6_EL1: hv_sys_reg_t = 0x8034;
pub const HV_SYS_REG_DBGBCR6_EL1: hv_sys_reg_t = 0x8035;
pub const HV_SYS_REG_DBGWVR6_EL1: hv_sys_reg_t = 0x8036;
pub const HV_SYS_REG_DBGWCR6_EL1: hv_sys_reg_t = 0x8037;
pub const HV_SYS_REG_DBGBVR7_EL1: hv_sys_reg_t = 0x803c;
pub const HV_SYS_REG_DBGBCR7_EL1: hv_sys_reg_t = 0x803d;
pub const HV_SYS_REG_DBGWVR7_EL1: hv_sys_reg_t = 0x803e;
pub const HV_SYS_REG_DBGWCR7_EL1: hv_sys_reg_t = 0x803f;
pub const HV_SYS_REG_DBGBVR8_EL1: hv_sys_reg_t = 0x8044;
pub const HV_SYS_REG_DBGBCR8_EL1: hv_sys_reg_t = 0x8045;
pub const HV_SYS_REG_DBGWVR8_EL1: hv_sys_reg_t = 0x8046;
pub const HV_SYS_REG_DBGWCR8_EL1: hv_sys_reg_t = 0x8047;
pub const HV_SYS_REG_DBGBVR9_EL1: hv_sys_reg_t = 0x804c;
pub const HV_SYS_REG_DBGBCR9_EL1: hv_sys_reg_t = 0x804d;
pub const HV_SYS_REG_DBGWVR9_EL1: hv_sys_reg_t = 0x804e;
pub const HV_SYS_REG_DBGWCR9_EL1: hv_sys_reg_t = 0x804f;
pub const HV_SYS_REG_DBGBVR10_EL1: hv_sys_reg_t = 0x8054;
pub const HV_SYS_REG_DBGBCR10_EL1: hv_sys_reg_t = 0x8055;
pub const HV_SYS_REG_DBGWVR10_EL1: hv_sys_reg_t = 0x8056;
pub const HV_SYS_REG_DBGWCR10_EL1: hv_sys_reg_t = 0x8057;
pub const HV_SYS_REG_DBGBVR11_EL1: hv_sys_reg_t = 0x805c;
pub const HV_SYS_REG_DBGBCR11_EL1: hv_sys_reg_t = 0x805d;
pub const HV_SYS_REG_DBGWVR11_EL1: hv_sys_reg_t = 0x805e;
pub const HV_SYS_REG_DBGWCR11_EL1: hv_sys_reg_t = 0x805f;
pub const HV_SYS_REG_DBGBVR12_EL1: hv_sys_reg_t = 0x8064;
pub const HV_SYS_REG_DBGBCR12_EL1: hv_sys_reg_t = 0x8065;
pub const HV_SYS_REG_DBGWVR12_EL1: hv_sys_reg_t = 0x8066;
pub const HV_SYS_REG_DBGWCR12_EL1: hv_sys_reg_t = 0x8067;
pub const HV_SYS_REG_DBGBVR13_EL1: hv_sys_reg_t = 0x806c;
pub const HV_SYS_REG_DBGBCR13_EL1: hv_sys_reg_t = 0x806d;
pub const HV_SYS_REG_DBGWVR13_EL1: hv_sys_reg_t = 0x806e;
pub const HV_SYS_REG_DBGWCR13_EL1: hv_sys_reg_t = 0x806f;
pub const HV_SYS_REG_DBGBVR14_EL1: hv_sys_reg_t = 0x8074;
pub const HV_SYS_REG_DBGBCR14_EL1: hv_sys_reg_t = 0x8075;
pub const HV_SYS_REG_DBGWVR14_EL1: hv_sys_reg_t = 0x8076;
pub const HV_SYS_REG_DBGWCR14_EL1: hv_sys_reg_t = 0x8077;
pub const HV_SYS_REG_DBGBVR15_EL1: hv_sys_reg_t = 0x807c;
pub const HV_SYS_REG_DBGBCR15_EL1: hv_sys_reg_t = 0x807d;
pub const HV_SYS_REG_DBGWVR15_EL1: hv_sys_reg_t = 0x807e;
pub const HV_SYS_REG_DBGWCR15_EL1: hv_sys_reg_t = 0x807f;
pub const HV_SYS_REG_MIDR_EL1: hv_sys_reg_t = 0xc000;
pub const HV_SYS_REG_MPIDR_EL1: hv_sys_reg_t = 0xc005;
pub const HV_SYS_REG_ID_AA64PFR0_EL1: hv_sys_reg_t = 0xc020;
pub const HV_SYS_REG_ID_AA64PFR1_EL1: hv_sys_reg_t = 0xc021;
pub const HV_SYS_REG_ID_AA64DFR0_EL1: hv_sys_reg_t = 0xc028;
pub const HV_SYS_REG_ID_AA64DFR1_EL1: hv_sys_reg_t = 0xc029;
pub const HV_SYS_REG_ID_AA64ISAR0_EL1: hv_sys_reg_t = 0xc030;
pub const HV_SYS_REG_ID_AA64ISAR1_EL1: hv_sys_reg_t = 0xc031;
pub const HV_SYS_REG_ID_AA64MMFR0_EL1: hv_sys_reg_t = 0xc038;
pub const HV_SYS_REG_ID_AA64MMFR1_EL1: hv_sys_reg_t = 0xc039;
pub const HV_SYS_REG_ID_AA64MMFR2_EL1: hv_sys_reg_t = 0xc03a;
pub const HV_SYS_REG_SCTLR_EL1: hv_sys_reg_t = 0xc080;
pub const HV_SYS_REG_CPACR_EL1: hv_sys_reg_t = 0xc082;
pub const HV_SYS_REG_TTBR0_EL1: hv_sys_reg_t = 0xc100;
pub const HV_SYS_REG_TTBR1_EL1: hv_sys_reg_t = 0xc101;
pub const HV_SYS_REG_TCR_EL1: hv_sys_reg_t = 0xc102;
pub const HV_SYS_REG_APIAKEYLO_EL1: hv_sys_reg_t = 0xc108;
pub const HV_SYS_REG_APIAKEYHI_EL1: hv_sys_reg_t = 0xc109;
pub const HV_SYS_REG_APIBKEYLO_EL1: hv_sys_reg_t = 0xc10a;
pub const HV_SYS_REG_APIBKEYHI_EL1: hv_sys_reg_t = 0xc10b;
pub const HV_SYS_REG_APDAKEYLO_EL1: hv_sys_reg_t = 0xc110;
pub const HV_SYS_REG_APDAKEYHI_EL1: hv_sys_reg_t = 0xc111;
pub const HV_SYS_REG_APDBKEYLO_EL1: hv_sys_reg_t = 0xc112;
pub const HV_SYS_REG_APDBKEYHI_EL1: hv_sys_reg_t = 0xc113;
pub const HV_SYS_REG_APGAKEYLO_EL1: hv_sys_reg_t = 0xc118;
pub const HV_SYS_REG_APGAKEYHI_EL1: hv_sys_reg_t = 0xc119;
pub const HV_SYS_REG_SPSR_EL1: hv_sys_reg_t = 0xc200;
pub const HV_SYS_REG_ELR_EL1: hv_sys_reg_t = 0xc201;
pub const HV_SYS_REG_SP_EL0: hv_sys_reg_t = 0xc208;
pub const HV_SYS_REG_AFSR0_EL1: hv_sys_reg_t = 0xc288;
pub const HV_SYS_REG_AFSR1_EL1: hv_sys_reg_t = 0xc289;
pub const HV_SYS_REG_ESR_EL1: hv_sys_reg_t = 0xc290;
pub const HV_SYS_REG_FAR_EL1: hv_sys_reg_t = 0xc300;
pub const HV_SYS_REG_PAR_EL1: hv_sys_reg_t = 0xc3a0;
pub const HV_SYS_REG_MAIR_EL1: hv_sys_reg_t = 0xc510;
pub const HV_SYS_REG_AMAIR_EL1: hv_sys_reg_t = 0xc518;
pub const HV_SYS_REG_VBAR_EL1: hv_sys_reg_t = 0xc600;
pub const HV_SYS_REG_CONTEXTIDR_EL1: hv_sys_reg_t = 0xc681;
pub const HV_SYS_REG_TPIDR_EL1: hv_sys_reg_t = 0xc684;
pub const HV_SYS_REG_CNTKCTL_EL1: hv_sys_reg_t = 0xc708;
pub const HV_SYS_REG_CSSELR_EL1: hv_sys_reg_t = 0xd000;
pub const HV_SYS_REG_TPIDR_EL0: hv_sys_reg_t = 0xde82;
pub const HV_SYS_REG_TPIDRRO_EL0: hv_sys_reg_t = 0xde83;
pub const HV_SYS_REG_CNTV_CTL_EL0: hv_sys_reg_t = 0xdf19;
pub const HV_SYS_REG_CNTV_CVAL_EL0: hv_sys_reg_t = 0xdf1a;
pub const HV_SYS_REG_SP_EL1: hv_sys_reg_t = 0xe208;
pub const HV_INTERRUPT_TYPE_IRQ: hv_interrupt_type_t = 0;
pub const HV_INTERRUPT_TYPE_FIQ: hv_interrupt_type_t = 1;
pub const HV_CACHE_TYPE_DATA: hv_cache_type_t = 0;
pub const HV_CACHE_TYPE_INSTRUCTION: hv_cache_type_t = 1;
pub const HV_SUCCESS: hv_return_t = 0;
pub const HV_ERROR: hv_return_t = 0xfae94001;
pub const HV_BUSY: hv_return_t = 0xfae94002;
pub const HV_BAD_ARGUMENT: hv_return_t = 0xfae94003;
pub const HV_ILLEGAL_GUEST_STATE: hv_return_t = 0xfae94004;
pub const HV_NO_RESOURCES: hv_return_t = 0xfae94005;
pub const HV_NO_DEVICE: hv_return_t = 0xfae94006;
pub const HV_DENIED: hv_return_t = 0xfae94007;
pub const HV_UNSUPPORTED: hv_return_t = 0xfae9400f;
pub const HV_MEMORY_READ: hv_memory_flags_t = 1u64 << 0;
pub const HV_MEMORY_WRITE: hv_memory_flags_t = 1u64 << 1;
pub const HV_MEMORY_EXEC: hv_memory_flags_t = 1u64 << 2;
pub const HV_FEATURE_REG_ID_AA64DFR0_EL1: hv_feature_reg_t = 0;
pub const HV_FEATURE_REG_ID_AA64DFR1_EL1: hv_feature_reg_t = 1;
pub const HV_FEATURE_REG_ID_AA64ISAR0_EL1: hv_feature_reg_t = 2;
pub const HV_FEATURE_REG_ID_AA64ISAR1_EL1: hv_feature_reg_t = 3;
pub const HV_FEATURE_REG_ID_AA64MMFR0_EL1: hv_feature_reg_t = 4;
pub const HV_FEATURE_REG_ID_AA64MMFR1_EL1: hv_feature_reg_t = 5;
pub const HV_FEATURE_REG_ID_AA64MMFR2_EL1: hv_feature_reg_t = 6;
pub const HV_FEATURE_REG_ID_AA64PFR0_EL1: hv_feature_reg_t = 7;
pub const HV_FEATURE_REG_ID_AA64PFR1_EL1: hv_feature_reg_t = 8;
pub const HV_FEATURE_REG_CTR_EL0: hv_feature_reg_t = 9;
pub const HV_FEATURE_REG_CLIDR_EL1: hv_feature_reg_t = 10;
pub const HV_FEATURE_REG_DCZID_EL0: hv_feature_reg_t = 11;
extern "C" {
pub fn os_release(obj: *const c_void);
pub fn hv_vm_create(config: hv_vm_config_t) -> hv_return_t;
pub fn hv_vm_destroy() -> hv_return_t;
#[cfg(feature = "macos_15_0_0")]
pub fn hv_gic_create(gic_config: hv_gic_config_t) -> hv_return_t;
#[cfg(feature = "macos_15_0_0")]
pub fn hv_gic_config_create() -> hv_gic_config_t;
#[cfg(feature = "macos_15_0_0")]
pub fn hv_gic_reset() -> hv_return_t;
#[cfg(feature = "macos_15_0_0")]
pub fn hv_gic_config_set_distributor_base(
config: hv_gic_config_t,
ipa: hv_ipa_t,
) -> hv_return_t;
#[cfg(feature = "macos_15_0_0")]
pub fn hv_gic_config_set_redistributor_base(
config: hv_gic_config_t,
ipa: hv_ipa_t,
) -> hv_return_t;
#[cfg(feature = "macos_15_0_0")]
pub fn hv_gic_config_set_msi_region_base(
config: hv_gic_config_t,
msi_region_base_address: hv_ipa_t,
) -> hv_return_t;
#[cfg(feature = "macos_15_0_0")]
pub fn hv_gic_config_set_msi_interrupt_range(
config: hv_gic_config_t,
msi_intid_base: u32,
msi_intid_count: u32,
) -> hv_return_t;
#[cfg(feature = "macos_15_0_0")]
pub fn hv_gic_get_redistributor_base(cpu: hv_vcpu_t, ipa: hv_ipa_t) -> hv_return_t;
#[cfg(feature = "macos_15_0_0")]
pub fn hv_gic_get_spi_interrupt_range(
spi_intid_base: *mut u32,
spi_intid_count: *mut u32,
) -> hv_return_t;
#[cfg(feature = "macos_15_0_0")]
pub fn hv_gic_get_redistributor_reg(
vcpu: hv_vcpu_t,
reg: hv_gic_redistributor_reg_t,
value: *mut u64,
) -> hv_return_t;
pub fn hv_vm_map(
address: *mut c_void,
ipa: hv_ipa_t,
size: usize,
flags: hv_memory_flags_t,
) -> hv_return_t;
pub fn hv_vm_unmap(ipa: hv_ipa_t, size: usize) -> hv_return_t;
pub fn hv_vm_protect(ipa: hv_ipa_t, size: usize, flags: hv_memory_flags_t) -> hv_return_t;
pub fn hv_vcpu_config_create() -> hv_vcpu_config_t;
pub fn hv_vcpu_config_get_feature_reg(
config: hv_vcpu_config_t,
feature_register: hv_feature_reg_t,
value: *mut u64,
) -> hv_return_t;
pub fn hv_vcpu_config_get_ccsidr_el1_sys_reg_values(
config: hv_vcpu_config_t,
cache_type: hv_cache_type_t,
values: *mut u64,
) -> hv_return_t;
pub fn hv_vcpu_create(
vcpu: *mut hv_vcpu_t,
exit: *mut *const hv_vcpu_exit_t,
config: *const hv_vcpu_config_t,
) -> hv_return_t;
pub fn hv_vcpu_destroy(vcpu: hv_vcpu_t) -> hv_return_t;
pub fn hv_vcpu_get_reg(vcpu: hv_vcpu_t, reg: hv_reg_t, value: *mut u64) -> hv_return_t;
pub fn hv_vcpu_set_reg(vcpu: hv_vcpu_t, reg: hv_reg_t, value: u64) -> hv_return_t;
pub fn hv_vcpu_get_sys_reg(vcpu: hv_vcpu_t, reg: hv_sys_reg_t, value: *mut u64) -> hv_return_t;
pub fn hv_vcpu_set_sys_reg(vcpu: hv_vcpu_t, reg: hv_sys_reg_t, value: u64) -> hv_return_t;
pub fn hv_vcpu_get_pending_interrupt(
vcpu: hv_vcpu_t,
interrupt: hv_interrupt_type_t,
pending: *mut bool,
) -> hv_return_t;
pub fn hv_vcpu_set_pending_interrupt(
vcpu: hv_vcpu_t,
interrupt: hv_interrupt_type_t,
pending: bool,
) -> hv_return_t;
pub fn hv_vcpu_get_trap_debug_exceptions(vcpu: hv_vcpu_t, value: *mut bool) -> hv_return_t;
pub fn hv_vcpu_set_trap_debug_exceptions(vcpu: hv_vcpu_t, value: bool) -> hv_return_t;
pub fn hv_vcpu_get_trap_debug_reg_accesses(vcpu: hv_vcpu_t, value: *mut bool) -> hv_return_t;
pub fn hv_vcpu_set_trap_debug_reg_accesses(vcpu: hv_vcpu_t, value: bool) -> hv_return_t;
pub fn hv_vcpu_run(vcpu: hv_vcpu_t) -> hv_return_t;
pub fn hv_vcpus_exit(vcpus: *const hv_vcpu_t, vcpu_count: u32) -> hv_return_t;
pub fn hv_vcpu_get_exec_time(vcpu: hv_vcpu_t, time: *mut u64) -> hv_return_t;
pub fn hv_vcpu_get_vtimer_mask(vcpu: hv_vcpu_t, vtimer_is_masked: *mut bool) -> hv_return_t;
pub fn hv_vcpu_set_vtimer_mask(vcpu: hv_vcpu_t, vtimer_is_masked: bool) -> hv_return_t;
pub fn hv_vcpu_get_vtimer_offset(vcpu: hv_vcpu_t, vtimer_offset: *mut u64) -> hv_return_t;
pub fn hv_vcpu_set_vtimer_offset(vcpu: hv_vcpu_t, vtimer_offset: u64) -> hv_return_t;
}