Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* automatically generated by rust-bindgen */
- #[repr(C)]
- #[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]
- pub struct __BindgenBitfieldUnit<Storage, Align>
- where
- Storage: AsRef<[u8]> + AsMut<[u8]>,
- {
- storage: Storage,
- align: [Align; 0],
- }
- impl<Storage, Align> __BindgenBitfieldUnit<Storage, Align>
- where
- Storage: AsRef<[u8]> + AsMut<[u8]>,
- {
- #[inline]
- pub fn new(storage: Storage) -> Self {
- Self { storage, align: [] }
- }
- #[inline]
- pub fn get_bit(&self, index: usize) -> bool {
- debug_assert!(index / 8 < self.storage.as_ref().len());
- let byte_index = index / 8;
- let byte = self.storage.as_ref()[byte_index];
- let bit_index = if cfg!(target_endian = "big") {
- 7 - (index % 8)
- } else {
- index % 8
- };
- let mask = 1 << bit_index;
- byte & mask == mask
- }
- #[inline]
- pub fn set_bit(&mut self, index: usize, val: bool) {
- debug_assert!(index / 8 < self.storage.as_ref().len());
- let byte_index = index / 8;
- let byte = &mut self.storage.as_mut()[byte_index];
- let bit_index = if cfg!(target_endian = "big") {
- 7 - (index % 8)
- } else {
- index % 8
- };
- let mask = 1 << bit_index;
- if val {
- *byte |= mask;
- } else {
- *byte &= !mask;
- }
- }
- #[inline]
- pub fn get(&self, bit_offset: usize, bit_width: u8) -> u64 {
- debug_assert!(bit_width <= 64);
- debug_assert!(bit_offset / 8 < self.storage.as_ref().len());
- debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len());
- let mut val = 0;
- for i in 0..(bit_width as usize) {
- if self.get_bit(i + bit_offset) {
- let index = if cfg!(target_endian = "big") {
- bit_width as usize - 1 - i
- } else {
- i
- };
- val |= 1 << index;
- }
- }
- val
- }
- #[inline]
- pub fn set(&mut self, bit_offset: usize, bit_width: u8, val: u64) {
- debug_assert!(bit_width <= 64);
- debug_assert!(bit_offset / 8 < self.storage.as_ref().len());
- debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len());
- for i in 0..(bit_width as usize) {
- let mask = 1 << i;
- let val_bit_is_set = val & mask == mask;
- let index = if cfg!(target_endian = "big") {
- bit_width as usize - 1 - i
- } else {
- i
- };
- self.set_bit(index + bit_offset, val_bit_is_set);
- }
- }
- }
- pub type BYTE = ::std::os::raw::c_uchar;
- pub type UINT8 = ::std::os::raw::c_uchar;
- pub type UINT16 = ::std::os::raw::c_ushort;
- pub type UINT32 = ::std::os::raw::c_uint;
- pub type UINT64 = ::std::os::raw::c_ulonglong;
- pub type LONG = ::std::os::raw::c_long;
- pub type HRESULT = LONG;
- pub type BOOLEAN = BYTE;
- pub type WHV_GUEST_PHYSICAL_ADDRESS = UINT64;
- pub type WHV_GUEST_VIRTUAL_ADDRESS = UINT64;
- pub const WHV_TRANSLATE_GVA_FLAGS_WHvTranslateGvaFlagNone: WHV_TRANSLATE_GVA_FLAGS = 0;
- pub const WHV_TRANSLATE_GVA_FLAGS_WHvTranslateGvaFlagValidateRead: WHV_TRANSLATE_GVA_FLAGS = 1;
- pub const WHV_TRANSLATE_GVA_FLAGS_WHvTranslateGvaFlagValidateWrite: WHV_TRANSLATE_GVA_FLAGS = 2;
- pub const WHV_TRANSLATE_GVA_FLAGS_WHvTranslateGvaFlagValidateExecute: WHV_TRANSLATE_GVA_FLAGS = 4;
- pub const WHV_TRANSLATE_GVA_FLAGS_WHvTranslateGvaFlagPrivilegeExempt: WHV_TRANSLATE_GVA_FLAGS = 8;
- pub const WHV_TRANSLATE_GVA_FLAGS_WHvTranslateGvaFlagSetPageTableBits: WHV_TRANSLATE_GVA_FLAGS = 16;
- pub type WHV_TRANSLATE_GVA_FLAGS = u32;
- pub const WHV_TRANSLATE_GVA_RESULT_CODE_WHvTranslateGvaResultSuccess : WHV_TRANSLATE_GVA_RESULT_CODE = 0 ;
- pub const WHV_TRANSLATE_GVA_RESULT_CODE_WHvTranslateGvaResultPageNotPresent : WHV_TRANSLATE_GVA_RESULT_CODE = 1 ;
- pub const WHV_TRANSLATE_GVA_RESULT_CODE_WHvTranslateGvaResultPrivilegeViolation : WHV_TRANSLATE_GVA_RESULT_CODE = 2 ;
- pub const WHV_TRANSLATE_GVA_RESULT_CODE_WHvTranslateGvaResultInvalidPageTableFlags : WHV_TRANSLATE_GVA_RESULT_CODE = 3 ;
- pub const WHV_TRANSLATE_GVA_RESULT_CODE_WHvTranslateGvaResultGpaUnmapped : WHV_TRANSLATE_GVA_RESULT_CODE = 4 ;
- pub const WHV_TRANSLATE_GVA_RESULT_CODE_WHvTranslateGvaResultGpaNoReadAccess : WHV_TRANSLATE_GVA_RESULT_CODE = 5 ;
- pub const WHV_TRANSLATE_GVA_RESULT_CODE_WHvTranslateGvaResultGpaNoWriteAccess : WHV_TRANSLATE_GVA_RESULT_CODE = 6 ;
- pub const WHV_TRANSLATE_GVA_RESULT_CODE_WHvTranslateGvaResultGpaIllegalOverlayAccess : WHV_TRANSLATE_GVA_RESULT_CODE = 7 ;
- pub const WHV_TRANSLATE_GVA_RESULT_CODE_WHvTranslateGvaResultIntercept : WHV_TRANSLATE_GVA_RESULT_CODE = 8 ;
- pub type WHV_TRANSLATE_GVA_RESULT_CODE = u32;
- pub const WHV_REGISTER_NAME_WHvX64RegisterRax: WHV_REGISTER_NAME = 0;
- pub const WHV_REGISTER_NAME_WHvX64RegisterRcx: WHV_REGISTER_NAME = 1;
- pub const WHV_REGISTER_NAME_WHvX64RegisterRdx: WHV_REGISTER_NAME = 2;
- pub const WHV_REGISTER_NAME_WHvX64RegisterRbx: WHV_REGISTER_NAME = 3;
- pub const WHV_REGISTER_NAME_WHvX64RegisterRsp: WHV_REGISTER_NAME = 4;
- pub const WHV_REGISTER_NAME_WHvX64RegisterRbp: WHV_REGISTER_NAME = 5;
- pub const WHV_REGISTER_NAME_WHvX64RegisterRsi: WHV_REGISTER_NAME = 6;
- pub const WHV_REGISTER_NAME_WHvX64RegisterRdi: WHV_REGISTER_NAME = 7;
- pub const WHV_REGISTER_NAME_WHvX64RegisterR8: WHV_REGISTER_NAME = 8;
- pub const WHV_REGISTER_NAME_WHvX64RegisterR9: WHV_REGISTER_NAME = 9;
- pub const WHV_REGISTER_NAME_WHvX64RegisterR10: WHV_REGISTER_NAME = 10;
- pub const WHV_REGISTER_NAME_WHvX64RegisterR11: WHV_REGISTER_NAME = 11;
- pub const WHV_REGISTER_NAME_WHvX64RegisterR12: WHV_REGISTER_NAME = 12;
- pub const WHV_REGISTER_NAME_WHvX64RegisterR13: WHV_REGISTER_NAME = 13;
- pub const WHV_REGISTER_NAME_WHvX64RegisterR14: WHV_REGISTER_NAME = 14;
- pub const WHV_REGISTER_NAME_WHvX64RegisterR15: WHV_REGISTER_NAME = 15;
- pub const WHV_REGISTER_NAME_WHvX64RegisterRip: WHV_REGISTER_NAME = 16;
- pub const WHV_REGISTER_NAME_WHvX64RegisterRflags: WHV_REGISTER_NAME = 17;
- pub const WHV_REGISTER_NAME_WHvX64RegisterEs: WHV_REGISTER_NAME = 18;
- pub const WHV_REGISTER_NAME_WHvX64RegisterCs: WHV_REGISTER_NAME = 19;
- pub const WHV_REGISTER_NAME_WHvX64RegisterSs: WHV_REGISTER_NAME = 20;
- pub const WHV_REGISTER_NAME_WHvX64RegisterDs: WHV_REGISTER_NAME = 21;
- pub const WHV_REGISTER_NAME_WHvX64RegisterFs: WHV_REGISTER_NAME = 22;
- pub const WHV_REGISTER_NAME_WHvX64RegisterGs: WHV_REGISTER_NAME = 23;
- pub const WHV_REGISTER_NAME_WHvX64RegisterLdtr: WHV_REGISTER_NAME = 24;
- pub const WHV_REGISTER_NAME_WHvX64RegisterTr: WHV_REGISTER_NAME = 25;
- pub const WHV_REGISTER_NAME_WHvX64RegisterIdtr: WHV_REGISTER_NAME = 26;
- pub const WHV_REGISTER_NAME_WHvX64RegisterGdtr: WHV_REGISTER_NAME = 27;
- pub const WHV_REGISTER_NAME_WHvX64RegisterCr0: WHV_REGISTER_NAME = 28;
- pub const WHV_REGISTER_NAME_WHvX64RegisterCr2: WHV_REGISTER_NAME = 29;
- pub const WHV_REGISTER_NAME_WHvX64RegisterCr3: WHV_REGISTER_NAME = 30;
- pub const WHV_REGISTER_NAME_WHvX64RegisterCr4: WHV_REGISTER_NAME = 31;
- pub const WHV_REGISTER_NAME_WHvX64RegisterCr8: WHV_REGISTER_NAME = 32;
- pub const WHV_REGISTER_NAME_WHvX64RegisterDr0: WHV_REGISTER_NAME = 33;
- pub const WHV_REGISTER_NAME_WHvX64RegisterDr1: WHV_REGISTER_NAME = 34;
- pub const WHV_REGISTER_NAME_WHvX64RegisterDr2: WHV_REGISTER_NAME = 35;
- pub const WHV_REGISTER_NAME_WHvX64RegisterDr3: WHV_REGISTER_NAME = 36;
- pub const WHV_REGISTER_NAME_WHvX64RegisterDr6: WHV_REGISTER_NAME = 37;
- pub const WHV_REGISTER_NAME_WHvX64RegisterDr7: WHV_REGISTER_NAME = 38;
- pub const WHV_REGISTER_NAME_WHvX64RegisterXmm0: WHV_REGISTER_NAME = 4096;
- pub const WHV_REGISTER_NAME_WHvX64RegisterXmm1: WHV_REGISTER_NAME = 4097;
- pub const WHV_REGISTER_NAME_WHvX64RegisterXmm2: WHV_REGISTER_NAME = 4098;
- pub const WHV_REGISTER_NAME_WHvX64RegisterXmm3: WHV_REGISTER_NAME = 4099;
- pub const WHV_REGISTER_NAME_WHvX64RegisterXmm4: WHV_REGISTER_NAME = 4100;
- pub const WHV_REGISTER_NAME_WHvX64RegisterXmm5: WHV_REGISTER_NAME = 4101;
- pub const WHV_REGISTER_NAME_WHvX64RegisterXmm6: WHV_REGISTER_NAME = 4102;
- pub const WHV_REGISTER_NAME_WHvX64RegisterXmm7: WHV_REGISTER_NAME = 4103;
- pub const WHV_REGISTER_NAME_WHvX64RegisterXmm8: WHV_REGISTER_NAME = 4104;
- pub const WHV_REGISTER_NAME_WHvX64RegisterXmm9: WHV_REGISTER_NAME = 4105;
- pub const WHV_REGISTER_NAME_WHvX64RegisterXmm10: WHV_REGISTER_NAME = 4106;
- pub const WHV_REGISTER_NAME_WHvX64RegisterXmm11: WHV_REGISTER_NAME = 4107;
- pub const WHV_REGISTER_NAME_WHvX64RegisterXmm12: WHV_REGISTER_NAME = 4108;
- pub const WHV_REGISTER_NAME_WHvX64RegisterXmm13: WHV_REGISTER_NAME = 4109;
- pub const WHV_REGISTER_NAME_WHvX64RegisterXmm14: WHV_REGISTER_NAME = 4110;
- pub const WHV_REGISTER_NAME_WHvX64RegisterXmm15: WHV_REGISTER_NAME = 4111;
- pub const WHV_REGISTER_NAME_WHvX64RegisterFpMmx0: WHV_REGISTER_NAME = 4112;
- pub const WHV_REGISTER_NAME_WHvX64RegisterFpMmx1: WHV_REGISTER_NAME = 4113;
- pub const WHV_REGISTER_NAME_WHvX64RegisterFpMmx2: WHV_REGISTER_NAME = 4114;
- pub const WHV_REGISTER_NAME_WHvX64RegisterFpMmx3: WHV_REGISTER_NAME = 4115;
- pub const WHV_REGISTER_NAME_WHvX64RegisterFpMmx4: WHV_REGISTER_NAME = 4116;
- pub const WHV_REGISTER_NAME_WHvX64RegisterFpMmx5: WHV_REGISTER_NAME = 4117;
- pub const WHV_REGISTER_NAME_WHvX64RegisterFpMmx6: WHV_REGISTER_NAME = 4118;
- pub const WHV_REGISTER_NAME_WHvX64RegisterFpMmx7: WHV_REGISTER_NAME = 4119;
- pub const WHV_REGISTER_NAME_WHvX64RegisterFpControlStatus: WHV_REGISTER_NAME = 4120;
- pub const WHV_REGISTER_NAME_WHvX64RegisterXmmControlStatus: WHV_REGISTER_NAME = 4121;
- pub const WHV_REGISTER_NAME_WHvX64RegisterTsc: WHV_REGISTER_NAME = 8192;
- pub const WHV_REGISTER_NAME_WHvX64RegisterEfer: WHV_REGISTER_NAME = 8193;
- pub const WHV_REGISTER_NAME_WHvX64RegisterKernelGsBase: WHV_REGISTER_NAME = 8194;
- pub const WHV_REGISTER_NAME_WHvX64RegisterApicBase: WHV_REGISTER_NAME = 8195;
- pub const WHV_REGISTER_NAME_WHvX64RegisterPat: WHV_REGISTER_NAME = 8196;
- pub const WHV_REGISTER_NAME_WHvX64RegisterSysenterCs: WHV_REGISTER_NAME = 8197;
- pub const WHV_REGISTER_NAME_WHvX64RegisterSysenterEip: WHV_REGISTER_NAME = 8198;
- pub const WHV_REGISTER_NAME_WHvX64RegisterSysenterEsp: WHV_REGISTER_NAME = 8199;
- pub const WHV_REGISTER_NAME_WHvX64RegisterStar: WHV_REGISTER_NAME = 8200;
- pub const WHV_REGISTER_NAME_WHvX64RegisterLstar: WHV_REGISTER_NAME = 8201;
- pub const WHV_REGISTER_NAME_WHvX64RegisterCstar: WHV_REGISTER_NAME = 8202;
- pub const WHV_REGISTER_NAME_WHvX64RegisterSfmask: WHV_REGISTER_NAME = 8203;
- pub const WHV_REGISTER_NAME_WHvX64RegisterMsrMtrrCap: WHV_REGISTER_NAME = 8205;
- pub const WHV_REGISTER_NAME_WHvX64RegisterMsrMtrrDefType: WHV_REGISTER_NAME = 8206;
- pub const WHV_REGISTER_NAME_WHvX64RegisterMsrMtrrPhysBase0: WHV_REGISTER_NAME = 8208;
- pub const WHV_REGISTER_NAME_WHvX64RegisterMsrMtrrPhysBase1: WHV_REGISTER_NAME = 8209;
- pub const WHV_REGISTER_NAME_WHvX64RegisterMsrMtrrPhysBase2: WHV_REGISTER_NAME = 8210;
- pub const WHV_REGISTER_NAME_WHvX64RegisterMsrMtrrPhysBase3: WHV_REGISTER_NAME = 8211;
- pub const WHV_REGISTER_NAME_WHvX64RegisterMsrMtrrPhysBase4: WHV_REGISTER_NAME = 8212;
- pub const WHV_REGISTER_NAME_WHvX64RegisterMsrMtrrPhysBase5: WHV_REGISTER_NAME = 8213;
- pub const WHV_REGISTER_NAME_WHvX64RegisterMsrMtrrPhysBase6: WHV_REGISTER_NAME = 8214;
- pub const WHV_REGISTER_NAME_WHvX64RegisterMsrMtrrPhysBase7: WHV_REGISTER_NAME = 8215;
- pub const WHV_REGISTER_NAME_WHvX64RegisterMsrMtrrPhysBase8: WHV_REGISTER_NAME = 8216;
- pub const WHV_REGISTER_NAME_WHvX64RegisterMsrMtrrPhysBase9: WHV_REGISTER_NAME = 8217;
- pub const WHV_REGISTER_NAME_WHvX64RegisterMsrMtrrPhysBaseA: WHV_REGISTER_NAME = 8218;
- pub const WHV_REGISTER_NAME_WHvX64RegisterMsrMtrrPhysBaseB: WHV_REGISTER_NAME = 8219;
- pub const WHV_REGISTER_NAME_WHvX64RegisterMsrMtrrPhysBaseC: WHV_REGISTER_NAME = 8220;
- pub const WHV_REGISTER_NAME_WHvX64RegisterMsrMtrrPhysBaseD: WHV_REGISTER_NAME = 8221;
- pub const WHV_REGISTER_NAME_WHvX64RegisterMsrMtrrPhysBaseE: WHV_REGISTER_NAME = 8222;
- pub const WHV_REGISTER_NAME_WHvX64RegisterMsrMtrrPhysBaseF: WHV_REGISTER_NAME = 8223;
- pub const WHV_REGISTER_NAME_WHvX64RegisterMsrMtrrPhysMask0: WHV_REGISTER_NAME = 8256;
- pub const WHV_REGISTER_NAME_WHvX64RegisterMsrMtrrPhysMask1: WHV_REGISTER_NAME = 8257;
- pub const WHV_REGISTER_NAME_WHvX64RegisterMsrMtrrPhysMask2: WHV_REGISTER_NAME = 8258;
- pub const WHV_REGISTER_NAME_WHvX64RegisterMsrMtrrPhysMask3: WHV_REGISTER_NAME = 8259;
- pub const WHV_REGISTER_NAME_WHvX64RegisterMsrMtrrPhysMask4: WHV_REGISTER_NAME = 8260;
- pub const WHV_REGISTER_NAME_WHvX64RegisterMsrMtrrPhysMask5: WHV_REGISTER_NAME = 8261;
- pub const WHV_REGISTER_NAME_WHvX64RegisterMsrMtrrPhysMask6: WHV_REGISTER_NAME = 8262;
- pub const WHV_REGISTER_NAME_WHvX64RegisterMsrMtrrPhysMask7: WHV_REGISTER_NAME = 8263;
- pub const WHV_REGISTER_NAME_WHvX64RegisterMsrMtrrPhysMask8: WHV_REGISTER_NAME = 8264;
- pub const WHV_REGISTER_NAME_WHvX64RegisterMsrMtrrPhysMask9: WHV_REGISTER_NAME = 8265;
- pub const WHV_REGISTER_NAME_WHvX64RegisterMsrMtrrPhysMaskA: WHV_REGISTER_NAME = 8266;
- pub const WHV_REGISTER_NAME_WHvX64RegisterMsrMtrrPhysMaskB: WHV_REGISTER_NAME = 8267;
- pub const WHV_REGISTER_NAME_WHvX64RegisterMsrMtrrPhysMaskC: WHV_REGISTER_NAME = 8268;
- pub const WHV_REGISTER_NAME_WHvX64RegisterMsrMtrrPhysMaskD: WHV_REGISTER_NAME = 8269;
- pub const WHV_REGISTER_NAME_WHvX64RegisterMsrMtrrPhysMaskE: WHV_REGISTER_NAME = 8270;
- pub const WHV_REGISTER_NAME_WHvX64RegisterMsrMtrrPhysMaskF: WHV_REGISTER_NAME = 8271;
- pub const WHV_REGISTER_NAME_WHvX64RegisterMsrMtrrFix64k00000: WHV_REGISTER_NAME = 8304;
- pub const WHV_REGISTER_NAME_WHvX64RegisterMsrMtrrFix16k80000: WHV_REGISTER_NAME = 8305;
- pub const WHV_REGISTER_NAME_WHvX64RegisterMsrMtrrFix16kA0000: WHV_REGISTER_NAME = 8306;
- pub const WHV_REGISTER_NAME_WHvX64RegisterMsrMtrrFix4kC0000: WHV_REGISTER_NAME = 8307;
- pub const WHV_REGISTER_NAME_WHvX64RegisterMsrMtrrFix4kC8000: WHV_REGISTER_NAME = 8308;
- pub const WHV_REGISTER_NAME_WHvX64RegisterMsrMtrrFix4kD0000: WHV_REGISTER_NAME = 8309;
- pub const WHV_REGISTER_NAME_WHvX64RegisterMsrMtrrFix4kD8000: WHV_REGISTER_NAME = 8310;
- pub const WHV_REGISTER_NAME_WHvX64RegisterMsrMtrrFix4kE0000: WHV_REGISTER_NAME = 8311;
- pub const WHV_REGISTER_NAME_WHvX64RegisterMsrMtrrFix4kE8000: WHV_REGISTER_NAME = 8312;
- pub const WHV_REGISTER_NAME_WHvX64RegisterMsrMtrrFix4kF0000: WHV_REGISTER_NAME = 8313;
- pub const WHV_REGISTER_NAME_WHvX64RegisterMsrMtrrFix4kF8000: WHV_REGISTER_NAME = 8314;
- pub const WHV_REGISTER_NAME_WHvX64RegisterTscAux: WHV_REGISTER_NAME = 8315;
- pub const WHV_REGISTER_NAME_WHvRegisterPendingInterruption: WHV_REGISTER_NAME = 2147483648;
- pub const WHV_REGISTER_NAME_WHvRegisterInterruptState: WHV_REGISTER_NAME = 2147483649;
- pub const WHV_REGISTER_NAME_WHvRegisterPendingEvent0: WHV_REGISTER_NAME = 2147483650;
- pub const WHV_REGISTER_NAME_WHvRegisterPendingEvent1: WHV_REGISTER_NAME = 2147483651;
- pub const WHV_REGISTER_NAME_WHvX64RegisterDeliverabilityNotifications: WHV_REGISTER_NAME =
- 2147483652;
- pub type WHV_REGISTER_NAME = u32;
- #[repr(C)]
- #[derive(Copy, Clone)]; 16usize ] , }#[repr(C)]
- #[derive(Debug, Copy, Clone)]
- pub struct WHV_UINT128__bindgen_ty_1 {
- pub Low64: UINT64,
- pub High64: UINT64,
- }
- #[repr(C)]
- #[derive(Copy, Clone)]; 16usize ] , }#[repr(C)]
- #[derive(Debug, Copy, Clone)]
- pub struct WHV_X64_FP_REGISTER__bindgen_ty_1 {
- pub Mantissa: UINT64,
- pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize], u64>,
- }
- impl WHV_X64_FP_REGISTER__bindgen_ty_1 {
- #[inline]
- pub fn BiasedExponent(&self) -> UINT64 {
- unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 15u8) as u64) }
- }
- #[inline]
- pub fn set_BiasedExponent(&mut self, val: UINT64) {
- unsafe {
- let val: u64 = ::std::mem::transmute(val);
- self._bitfield_1.set(0usize, 15u8, val as u64)
- }
- }
- #[inline]
- pub fn Sign(&self) -> UINT64 {
- unsafe { ::std::mem::transmute(self._bitfield_1.get(15usize, 1u8) as u64) }
- }
- #[inline]
- pub fn set_Sign(&mut self, val: UINT64) {
- unsafe {
- let val: u64 = ::std::mem::transmute(val);
- self._bitfield_1.set(15usize, 1u8, val as u64)
- }
- }
- #[inline]
- pub fn Reserved(&self) -> UINT64 {
- unsafe { ::std::mem::transmute(self._bitfield_1.get(16usize, 48u8) as u64) }
- }
- #[inline]
- pub fn set_Reserved(&mut self, val: UINT64) {
- unsafe {
- let val: u64 = ::std::mem::transmute(val);
- self._bitfield_1.set(16usize, 48u8, val as u64)
- }
- }
- #[inline]
- pub fn new_bitfield_1(
- BiasedExponent: UINT64,
- Sign: UINT64,
- Reserved: UINT64,
- ) -> __BindgenBitfieldUnit<[u8; 8usize], u64> {
- let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize], u64> =
- Default::default();
- __bindgen_bitfield_unit.set(0usize, 15u8, {
- let BiasedExponent: u64 = unsafe { ::std::mem::transmute(BiasedExponent) };
- BiasedExponent as u64
- });
- __bindgen_bitfield_unit.set(15usize, 1u8, {
- let Sign: u64 = unsafe { ::std::mem::transmute(Sign) };
- Sign as u64
- });
- __bindgen_bitfield_unit.set(16usize, 48u8, {
- let Reserved: u64 = unsafe { ::std::mem::transmute(Reserved) };
- Reserved as u64
- });
- __bindgen_bitfield_unit
- }
- }
- #[repr(C)]
- #[derive(Copy, Clone)]; 16usize ] , }#[repr(C)]
- #[derive(Copy, Clone)]
- pub struct WHV_X64_FP_CONTROL_STATUS_REGISTER__bindgen_ty_1 {
- pub FpControl: UINT16,
- pub FpStatus: UINT16,
- pub FpTag: UINT8,
- pub Reserved: UINT8,
- pub LastFpOp: UINT16,
- pub __bindgen_anon_1: WHV_X64_FP_CONTROL_STATUS_REGISTER__bindgen_ty_1__bindgen_ty_1,
- }
- #[repr(C)]
- #[derive(Copy, Clone)]pub union WHV_X64_FP_CONTROL_STATUS_REGISTER__bindgen_ty_1__bindgen_ty_1 { pub LastFpRip : UINT64 , pub __bindgen_anon_1 : WHV_X64_FP_CONTROL_STATUS_REGISTER__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 , _bindgen_union_align : u64 , }#[repr(C)]
- #[derive(Debug, Copy, Clone)]
- pub struct WHV_X64_FP_CONTROL_STATUS_REGISTER__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 {
- pub LastFpEip: UINT32,
- pub LastFpCs: UINT16,
- pub Reserved2: UINT16,
- }
- #[repr(C)]
- #[derive(Copy, Clone)]; 16usize ] , }#[repr(C)]
- #[derive(Copy, Clone)]
- pub struct WHV_X64_XMM_CONTROL_STATUS_REGISTER__bindgen_ty_1 {
- pub __bindgen_anon_1: WHV_X64_XMM_CONTROL_STATUS_REGISTER__bindgen_ty_1__bindgen_ty_1,
- pub XmmStatusControl: UINT32,
- pub XmmStatusControlMask: UINT32,
- }
- #[repr(C)]
- #[derive(Copy, Clone)]pub union WHV_X64_XMM_CONTROL_STATUS_REGISTER__bindgen_ty_1__bindgen_ty_1 { pub LastFpRdp : UINT64 , pub __bindgen_anon_1 : WHV_X64_XMM_CONTROL_STATUS_REGISTER__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 , _bindgen_union_align : u64 , }#[repr(C)]
- #[derive(Debug, Copy, Clone)]
- pub struct WHV_X64_XMM_CONTROL_STATUS_REGISTER__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 {
- pub LastFpDp: UINT32,
- pub LastFpDs: UINT16,
- pub Reserved: UINT16,
- }
- #[repr(C)]
- #[derive(Copy, Clone)]
- pub struct WHV_X64_SEGMENT_REGISTER {
- pub Base: UINT64,
- pub Limit: UINT32,
- pub Selector: UINT16,
- pub __bindgen_anon_1: WHV_X64_SEGMENT_REGISTER__bindgen_ty_1,
- }
- #[repr(C)]
- #[derive(Copy, Clone)]pub union WHV_X64_SEGMENT_REGISTER__bindgen_ty_1 { pub __bindgen_anon_1 : WHV_X64_SEGMENT_REGISTER__bindgen_ty_1__bindgen_ty_1 , pub Attributes : UINT16 , _bindgen_union_align : u16 , }#[repr(C)]
- #[derive(Debug, Copy, Clone)]
- pub struct WHV_X64_SEGMENT_REGISTER__bindgen_ty_1__bindgen_ty_1 {
- pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize], u8>,
- pub __bindgen_align: [u16; 0usize],
- }
- impl WHV_X64_SEGMENT_REGISTER__bindgen_ty_1__bindgen_ty_1 {
- #[inline]
- pub fn SegmentType(&self) -> UINT16 {
- unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u16) }
- }
- #[inline]
- pub fn set_SegmentType(&mut self, val: UINT16) {
- unsafe {
- let val: u16 = ::std::mem::transmute(val);
- self._bitfield_1.set(0usize, 4u8, val as u64)
- }
- }
- #[inline]
- pub fn NonSystemSegment(&self) -> UINT16 {
- unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u16) }
- }
- #[inline]
- pub fn set_NonSystemSegment(&mut self, val: UINT16) {
- unsafe {
- let val: u16 = ::std::mem::transmute(val);
- self._bitfield_1.set(4usize, 1u8, val as u64)
- }
- }
- #[inline]
- pub fn DescriptorPrivilegeLevel(&self) -> UINT16 {
- unsafe { ::std::mem::transmute(self._bitfield_1.get(5usize, 2u8) as u16) }
- }
- #[inline]
- pub fn set_DescriptorPrivilegeLevel(&mut self, val: UINT16) {
- unsafe {
- let val: u16 = ::std::mem::transmute(val);
- self._bitfield_1.set(5usize, 2u8, val as u64)
- }
- }
- #[inline]
- pub fn Present(&self) -> UINT16 {
- unsafe { ::std::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u16) }
- }
- #[inline]
- pub fn set_Present(&mut self, val: UINT16) {
- unsafe {
- let val: u16 = ::std::mem::transmute(val);
- self._bitfield_1.set(7usize, 1u8, val as u64)
- }
- }
- #[inline]
- pub fn Reserved(&self) -> UINT16 {
- unsafe { ::std::mem::transmute(self._bitfield_1.get(8usize, 4u8) as u16) }
- }
- #[inline]
- pub fn set_Reserved(&mut self, val: UINT16) {
- unsafe {
- let val: u16 = ::std::mem::transmute(val);
- self._bitfield_1.set(8usize, 4u8, val as u64)
- }
- }
- #[inline]
- pub fn Available(&self) -> UINT16 {
- unsafe { ::std::mem::transmute(self._bitfield_1.get(12usize, 1u8) as u16) }
- }
- #[inline]
- pub fn set_Available(&mut self, val: UINT16) {
- unsafe {
- let val: u16 = ::std::mem::transmute(val);
- self._bitfield_1.set(12usize, 1u8, val as u64)
- }
- }
- #[inline]
- pub fn Long(&self) -> UINT16 {
- unsafe { ::std::mem::transmute(self._bitfield_1.get(13usize, 1u8) as u16) }
- }
- #[inline]
- pub fn set_Long(&mut self, val: UINT16) {
- unsafe {
- let val: u16 = ::std::mem::transmute(val);
- self._bitfield_1.set(13usize, 1u8, val as u64)
- }
- }
- #[inline]
- pub fn Default(&self) -> UINT16 {
- unsafe { ::std::mem::transmute(self._bitfield_1.get(14usize, 1u8) as u16) }
- }
- #[inline]
- pub fn set_Default(&mut self, val: UINT16) {
- unsafe {
- let val: u16 = ::std::mem::transmute(val);
- self._bitfield_1.set(14usize, 1u8, val as u64)
- }
- }
- #[inline]
- pub fn Granularity(&self) -> UINT16 {
- unsafe { ::std::mem::transmute(self._bitfield_1.get(15usize, 1u8) as u16) }
- }
- #[inline]
- pub fn set_Granularity(&mut self, val: UINT16) {
- unsafe {
- let val: u16 = ::std::mem::transmute(val);
- self._bitfield_1.set(15usize, 1u8, val as u64)
- }
- }
- #[inline]
- pub fn new_bitfield_1(
- SegmentType: UINT16,
- NonSystemSegment: UINT16,
- DescriptorPrivilegeLevel: UINT16,
- Present: UINT16,
- Reserved: UINT16,
- Available: UINT16,
- Long: UINT16,
- Default: UINT16,
- Granularity: UINT16,
- ) -> __BindgenBitfieldUnit<[u8; 2usize], u8> {
- let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize], u8> =
- Default::default();
- __bindgen_bitfield_unit.set(0usize, 4u8, {
- let SegmentType: u16 = unsafe { ::std::mem::transmute(SegmentType) };
- SegmentType as u64
- });
- __bindgen_bitfield_unit.set(4usize, 1u8, {
- let NonSystemSegment: u16 = unsafe { ::std::mem::transmute(NonSystemSegment) };
- NonSystemSegment as u64
- });
- __bindgen_bitfield_unit.set(5usize, 2u8, {
- let DescriptorPrivilegeLevel: u16 =
- unsafe { ::std::mem::transmute(DescriptorPrivilegeLevel) };
- DescriptorPrivilegeLevel as u64
- });
- __bindgen_bitfield_unit.set(7usize, 1u8, {
- let Present: u16 = unsafe { ::std::mem::transmute(Present) };
- Present as u64
- });
- __bindgen_bitfield_unit.set(8usize, 4u8, {
- let Reserved: u16 = unsafe { ::std::mem::transmute(Reserved) };
- Reserved as u64
- });
- __bindgen_bitfield_unit.set(12usize, 1u8, {
- let Available: u16 = unsafe { ::std::mem::transmute(Available) };
- Available as u64
- });
- __bindgen_bitfield_unit.set(13usize, 1u8, {
- let Long: u16 = unsafe { ::std::mem::transmute(Long) };
- Long as u64
- });
- __bindgen_bitfield_unit.set(14usize, 1u8, {
- let Default: u16 = unsafe { ::std::mem::transmute(Default) };
- Default as u64
- });
- __bindgen_bitfield_unit.set(15usize, 1u8, {
- let Granularity: u16 = unsafe { ::std::mem::transmute(Granularity) };
- Granularity as u64
- });
- __bindgen_bitfield_unit
- }
- }
- #[repr(C)]
- #[derive(Debug, Copy, Clone)]
- pub struct WHV_X64_TABLE_REGISTER {
- pub Pad: [UINT16; 3usize],
- pub Limit: UINT16,
- pub Base: UINT64,
- }
- #[repr(C)]
- #[derive(Copy, Clone)]pub union WHV_X64_INTERRUPT_STATE_REGISTER { pub __bindgen_anon_1 : WHV_X64_INTERRUPT_STATE_REGISTER__bindgen_ty_1 , pub AsUINT64 : UINT64 , _bindgen_union_align : u64 , }#[repr(C)]
- #[derive(Debug, Copy, Clone)]
- pub struct WHV_X64_INTERRUPT_STATE_REGISTER__bindgen_ty_1 {
- pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize], u64>,
- pub __bindgen_align: [u64; 0usize],
- }
- impl WHV_X64_INTERRUPT_STATE_REGISTER__bindgen_ty_1 {
- #[inline]
- pub fn InterruptShadow(&self) -> UINT64 {
- unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u64) }
- }
- #[inline]
- pub fn set_InterruptShadow(&mut self, val: UINT64) {
- unsafe {
- let val: u64 = ::std::mem::transmute(val);
- self._bitfield_1.set(0usize, 1u8, val as u64)
- }
- }
- #[inline]
- pub fn NmiMasked(&self) -> UINT64 {
- unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u64) }
- }
- #[inline]
- pub fn set_NmiMasked(&mut self, val: UINT64) {
- unsafe {
- let val: u64 = ::std::mem::transmute(val);
- self._bitfield_1.set(1usize, 1u8, val as u64)
- }
- }
- #[inline]
- pub fn Reserved(&self) -> UINT64 {
- unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 62u8) as u64) }
- }
- #[inline]
- pub fn set_Reserved(&mut self, val: UINT64) {
- unsafe {
- let val: u64 = ::std::mem::transmute(val);
- self._bitfield_1.set(2usize, 62u8, val as u64)
- }
- }
- #[inline]
- pub fn new_bitfield_1(
- InterruptShadow: UINT64,
- NmiMasked: UINT64,
- Reserved: UINT64,
- ) -> __BindgenBitfieldUnit<[u8; 8usize], u64> {
- let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize], u64> =
- Default::default();
- __bindgen_bitfield_unit.set(0usize, 1u8, {
- let InterruptShadow: u64 = unsafe { ::std::mem::transmute(InterruptShadow) };
- InterruptShadow as u64
- });
- __bindgen_bitfield_unit.set(1usize, 1u8, {
- let NmiMasked: u64 = unsafe { ::std::mem::transmute(NmiMasked) };
- NmiMasked as u64
- });
- __bindgen_bitfield_unit.set(2usize, 62u8, {
- let Reserved: u64 = unsafe { ::std::mem::transmute(Reserved) };
- Reserved as u64
- });
- __bindgen_bitfield_unit
- }
- }
- #[repr(C)]
- #[derive(Copy, Clone)]pub union WHV_X64_PENDING_INTERRUPTION_REGISTER { pub __bindgen_anon_1 : WHV_X64_PENDING_INTERRUPTION_REGISTER__bindgen_ty_1 , pub AsUINT64 : UINT64 , _bindgen_union_align : u64 , }#[repr(C)]
- #[derive(Debug, Copy, Clone)]
- pub struct WHV_X64_PENDING_INTERRUPTION_REGISTER__bindgen_ty_1 {
- pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize], u16>,
- pub ErrorCode: UINT32,
- }
- impl WHV_X64_PENDING_INTERRUPTION_REGISTER__bindgen_ty_1 {
- #[inline]
- pub fn InterruptionPending(&self) -> UINT32 {
- unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
- }
- #[inline]
- pub fn set_InterruptionPending(&mut self, val: UINT32) {
- unsafe {
- let val: u32 = ::std::mem::transmute(val);
- self._bitfield_1.set(0usize, 1u8, val as u64)
- }
- }
- #[inline]
- pub fn InterruptionType(&self) -> UINT32 {
- unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 3u8) as u32) }
- }
- #[inline]
- pub fn set_InterruptionType(&mut self, val: UINT32) {
- unsafe {
- let val: u32 = ::std::mem::transmute(val);
- self._bitfield_1.set(1usize, 3u8, val as u64)
- }
- }
- #[inline]
- pub fn DeliverErrorCode(&self) -> UINT32 {
- unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) }
- }
- #[inline]
- pub fn set_DeliverErrorCode(&mut self, val: UINT32) {
- unsafe {
- let val: u32 = ::std::mem::transmute(val);
- self._bitfield_1.set(4usize, 1u8, val as u64)
- }
- }
- #[inline]
- pub fn InstructionLength(&self) -> UINT32 {
- unsafe { ::std::mem::transmute(self._bitfield_1.get(5usize, 4u8) as u32) }
- }
- #[inline]
- pub fn set_InstructionLength(&mut self, val: UINT32) {
- unsafe {
- let val: u32 = ::std::mem::transmute(val);
- self._bitfield_1.set(5usize, 4u8, val as u64)
- }
- }
- #[inline]
- pub fn NestedEvent(&self) -> UINT32 {
- unsafe { ::std::mem::transmute(self._bitfield_1.get(9usize, 1u8) as u32) }
- }
- #[inline]
- pub fn set_NestedEvent(&mut self, val: UINT32) {
- unsafe {
- let val: u32 = ::std::mem::transmute(val);
- self._bitfield_1.set(9usize, 1u8, val as u64)
- }
- }
- #[inline]
- pub fn Reserved(&self) -> UINT32 {
- unsafe { ::std::mem::transmute(self._bitfield_1.get(10usize, 6u8) as u32) }
- }
- #[inline]
- pub fn set_Reserved(&mut self, val: UINT32) {
- unsafe {
- let val: u32 = ::std::mem::transmute(val);
- self._bitfield_1.set(10usize, 6u8, val as u64)
- }
- }
- #[inline]
- pub fn InterruptionVector(&self) -> UINT32 {
- unsafe { ::std::mem::transmute(self._bitfield_1.get(16usize, 16u8) as u32) }
- }
- #[inline]
- pub fn set_InterruptionVector(&mut self, val: UINT32) {
- unsafe {
- let val: u32 = ::std::mem::transmute(val);
- self._bitfield_1.set(16usize, 16u8, val as u64)
- }
- }
- #[inline]
- pub fn new_bitfield_1(
- InterruptionPending: UINT32,
- InterruptionType: UINT32,
- DeliverErrorCode: UINT32,
- InstructionLength: UINT32,
- NestedEvent: UINT32,
- Reserved: UINT32,
- InterruptionVector: UINT32,
- ) -> __BindgenBitfieldUnit<[u8; 4usize], u16> {
- let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize], u16> =
- Default::default();
- __bindgen_bitfield_unit.set(0usize, 1u8, {
- let InterruptionPending: u32 = unsafe { ::std::mem::transmute(InterruptionPending) };
- InterruptionPending as u64
- });
- __bindgen_bitfield_unit.set(1usize, 3u8, {
- let InterruptionType: u32 = unsafe { ::std::mem::transmute(InterruptionType) };
- InterruptionType as u64
- });
- __bindgen_bitfield_unit.set(4usize, 1u8, {
- let DeliverErrorCode: u32 = unsafe { ::std::mem::transmute(DeliverErrorCode) };
- DeliverErrorCode as u64
- });
- __bindgen_bitfield_unit.set(5usize, 4u8, {
- let InstructionLength: u32 = unsafe { ::std::mem::transmute(InstructionLength) };
- InstructionLength as u64
- });
- __bindgen_bitfield_unit.set(9usize, 1u8, {
- let NestedEvent: u32 = unsafe { ::std::mem::transmute(NestedEvent) };
- NestedEvent as u64
- });
- __bindgen_bitfield_unit.set(10usize, 6u8, {
- let Reserved: u32 = unsafe { ::std::mem::transmute(Reserved) };
- Reserved as u64
- });
- __bindgen_bitfield_unit.set(16usize, 16u8, {
- let InterruptionVector: u32 = unsafe { ::std::mem::transmute(InterruptionVector) };
- InterruptionVector as u64
- });
- __bindgen_bitfield_unit
- }
- }
- #[repr(C)]
- #[derive(Copy, Clone)]pub union WHV_X64_DELIVERABILITY_NOTIFICATIONS_REGISTER { pub __bindgen_anon_1 : WHV_X64_DELIVERABILITY_NOTIFICATIONS_REGISTER__bindgen_ty_1 , pub AsUINT64 : UINT64 , _bindgen_union_align : u64 , }#[repr(C)]
- #[derive(Debug, Copy, Clone)]
- pub struct WHV_X64_DELIVERABILITY_NOTIFICATIONS_REGISTER__bindgen_ty_1 {
- pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize], u64>,
- pub __bindgen_align: [u64; 0usize],
- }
- impl WHV_X64_DELIVERABILITY_NOTIFICATIONS_REGISTER__bindgen_ty_1 {
- #[inline]
- pub fn NmiNotification(&self) -> UINT64 {
- unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u64) }
- }
- #[inline]
- pub fn set_NmiNotification(&mut self, val: UINT64) {
- unsafe {
- let val: u64 = ::std::mem::transmute(val);
- self._bitfield_1.set(0usize, 1u8, val as u64)
- }
- }
- #[inline]
- pub fn InterruptNotification(&self) -> UINT64 {
- unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u64) }
- }
- #[inline]
- pub fn set_InterruptNotification(&mut self, val: UINT64) {
- unsafe {
- let val: u64 = ::std::mem::transmute(val);
- self._bitfield_1.set(1usize, 1u8, val as u64)
- }
- }
- #[inline]
- pub fn InterruptPriority(&self) -> UINT64 {
- unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 4u8) as u64) }
- }
- #[inline]
- pub fn set_InterruptPriority(&mut self, val: UINT64) {
- unsafe {
- let val: u64 = ::std::mem::transmute(val);
- self._bitfield_1.set(2usize, 4u8, val as u64)
- }
- }
- #[inline]
- pub fn Reserved(&self) -> UINT64 {
- unsafe { ::std::mem::transmute(self._bitfield_1.get(6usize, 58u8) as u64) }
- }
- #[inline]
- pub fn set_Reserved(&mut self, val: UINT64) {
- unsafe {
- let val: u64 = ::std::mem::transmute(val);
- self._bitfield_1.set(6usize, 58u8, val as u64)
- }
- }
- #[inline]
- pub fn new_bitfield_1(
- NmiNotification: UINT64,
- InterruptNotification: UINT64,
- InterruptPriority: UINT64,
- Reserved: UINT64,
- ) -> __BindgenBitfieldUnit<[u8; 8usize], u64> {
- let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize], u64> =
- Default::default();
- __bindgen_bitfield_unit.set(0usize, 1u8, {
- let NmiNotification: u64 = unsafe { ::std::mem::transmute(NmiNotification) };
- NmiNotification as u64
- });
- __bindgen_bitfield_unit.set(1usize, 1u8, {
- let InterruptNotification: u64 =
- unsafe { ::std::mem::transmute(InterruptNotification) };
- InterruptNotification as u64
- });
- __bindgen_bitfield_unit.set(2usize, 4u8, {
- let InterruptPriority: u64 = unsafe { ::std::mem::transmute(InterruptPriority) };
- InterruptPriority as u64
- });
- __bindgen_bitfield_unit.set(6usize, 58u8, {
- let Reserved: u64 = unsafe { ::std::mem::transmute(Reserved) };
- Reserved as u64
- });
- __bindgen_bitfield_unit
- }
- }
- #[repr(C)]
- #[derive(Copy, Clone)]; 16usize ] , }#[repr(C)]
- #[derive(Copy, Clone)]pub union WHV_X64_VP_EXECUTION_STATE { pub __bindgen_anon_1 : WHV_X64_VP_EXECUTION_STATE__bindgen_ty_1 , pub AsUINT16 : UINT16 , _bindgen_union_align : u16 , }#[repr(C)]
- #[derive(Debug, Copy, Clone)]
- pub struct WHV_X64_VP_EXECUTION_STATE__bindgen_ty_1 {
- pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize], u8>,
- pub __bindgen_align: [u16; 0usize],
- }
- impl WHV_X64_VP_EXECUTION_STATE__bindgen_ty_1 {
- #[inline]
- pub fn Cpl(&self) -> UINT16 {
- unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 2u8) as u16) }
- }
- #[inline]
- pub fn set_Cpl(&mut self, val: UINT16) {
- unsafe {
- let val: u16 = ::std::mem::transmute(val);
- self._bitfield_1.set(0usize, 2u8, val as u64)
- }
- }
- #[inline]
- pub fn Cr0Pe(&self) -> UINT16 {
- unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u16) }
- }
- #[inline]
- pub fn set_Cr0Pe(&mut self, val: UINT16) {
- unsafe {
- let val: u16 = ::std::mem::transmute(val);
- self._bitfield_1.set(2usize, 1u8, val as u64)
- }
- }
- #[inline]
- pub fn Cr0Am(&self) -> UINT16 {
- unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u16) }
- }
- #[inline]
- pub fn set_Cr0Am(&mut self, val: UINT16) {
- unsafe {
- let val: u16 = ::std::mem::transmute(val);
- self._bitfield_1.set(3usize, 1u8, val as u64)
- }
- }
- #[inline]
- pub fn EferLma(&self) -> UINT16 {
- unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u16) }
- }
- #[inline]
- pub fn set_EferLma(&mut self, val: UINT16) {
- unsafe {
- let val: u16 = ::std::mem::transmute(val);
- self._bitfield_1.set(4usize, 1u8, val as u64)
- }
- }
- #[inline]
- pub fn DebugActive(&self) -> UINT16 {
- unsafe { ::std::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u16) }
- }
- #[inline]
- pub fn set_DebugActive(&mut self, val: UINT16) {
- unsafe {
- let val: u16 = ::std::mem::transmute(val);
- self._bitfield_1.set(5usize, 1u8, val as u64)
- }
- }
- #[inline]
- pub fn InterruptionPending(&self) -> UINT16 {
- unsafe { ::std::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u16) }
- }
- #[inline]
- pub fn set_InterruptionPending(&mut self, val: UINT16) {
- unsafe {
- let val: u16 = ::std::mem::transmute(val);
- self._bitfield_1.set(6usize, 1u8, val as u64)
- }
- }
- #[inline]
- pub fn Reserved0(&self) -> UINT16 {
- unsafe { ::std::mem::transmute(self._bitfield_1.get(7usize, 5u8) as u16) }
- }
- #[inline]
- pub fn set_Reserved0(&mut self, val: UINT16) {
- unsafe {
- let val: u16 = ::std::mem::transmute(val);
- self._bitfield_1.set(7usize, 5u8, val as u64)
- }
- }
- #[inline]
- pub fn InterruptShadow(&self) -> UINT16 {
- unsafe { ::std::mem::transmute(self._bitfield_1.get(12usize, 1u8) as u16) }
- }
- #[inline]
- pub fn set_InterruptShadow(&mut self, val: UINT16) {
- unsafe {
- let val: u16 = ::std::mem::transmute(val);
- self._bitfield_1.set(12usize, 1u8, val as u64)
- }
- }
- #[inline]
- pub fn Reserved1(&self) -> UINT16 {
- unsafe { ::std::mem::transmute(self._bitfield_1.get(13usize, 3u8) as u16) }
- }
- #[inline]
- pub fn set_Reserved1(&mut self, val: UINT16) {
- unsafe {
- let val: u16 = ::std::mem::transmute(val);
- self._bitfield_1.set(13usize, 3u8, val as u64)
- }
- }
- #[inline]
- pub fn new_bitfield_1(
- Cpl: UINT16,
- Cr0Pe: UINT16,
- Cr0Am: UINT16,
- EferLma: UINT16,
- DebugActive: UINT16,
- InterruptionPending: UINT16,
- Reserved0: UINT16,
- InterruptShadow: UINT16,
- Reserved1: UINT16,
- ) -> __BindgenBitfieldUnit<[u8; 2usize], u8> {
- let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize], u8> =
- Default::default();
- __bindgen_bitfield_unit.set(0usize, 2u8, {
- let Cpl: u16 = unsafe { ::std::mem::transmute(Cpl) };
- Cpl as u64
- });
- __bindgen_bitfield_unit.set(2usize, 1u8, {
- let Cr0Pe: u16 = unsafe { ::std::mem::transmute(Cr0Pe) };
- Cr0Pe as u64
- });
- __bindgen_bitfield_unit.set(3usize, 1u8, {
- let Cr0Am: u16 = unsafe { ::std::mem::transmute(Cr0Am) };
- Cr0Am as u64
- });
- __bindgen_bitfield_unit.set(4usize, 1u8, {
- let EferLma: u16 = unsafe { ::std::mem::transmute(EferLma) };
- EferLma as u64
- });
- __bindgen_bitfield_unit.set(5usize, 1u8, {
- let DebugActive: u16 = unsafe { ::std::mem::transmute(DebugActive) };
- DebugActive as u64
- });
- __bindgen_bitfield_unit.set(6usize, 1u8, {
- let InterruptionPending: u16 = unsafe { ::std::mem::transmute(InterruptionPending) };
- InterruptionPending as u64
- });
- __bindgen_bitfield_unit.set(7usize, 5u8, {
- let Reserved0: u16 = unsafe { ::std::mem::transmute(Reserved0) };
- Reserved0 as u64
- });
- __bindgen_bitfield_unit.set(12usize, 1u8, {
- let InterruptShadow: u16 = unsafe { ::std::mem::transmute(InterruptShadow) };
- InterruptShadow as u64
- });
- __bindgen_bitfield_unit.set(13usize, 3u8, {
- let Reserved1: u16 = unsafe { ::std::mem::transmute(Reserved1) };
- Reserved1 as u64
- });
- __bindgen_bitfield_unit
- }
- }
- #[repr(C)]
- #[derive(Copy, Clone)]
- pub struct WHV_VP_EXIT_CONTEXT {
- pub ExecutionState: WHV_X64_VP_EXECUTION_STATE,
- pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize], u8>,
- pub Reserved: UINT8,
- pub Reserved2: UINT32,
- pub Cs: WHV_X64_SEGMENT_REGISTER,
- pub Rip: UINT64,
- pub Rflags: UINT64,
- }
- impl WHV_VP_EXIT_CONTEXT {
- #[inline]
- pub fn InstructionLength(&self) -> UINT8 {
- unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
- }
- #[inline]
- pub fn set_InstructionLength(&mut self, val: UINT8) {
- unsafe {
- let val: u8 = ::std::mem::transmute(val);
- self._bitfield_1.set(0usize, 4u8, val as u64)
- }
- }
- #[inline]
- pub fn Cr8(&self) -> UINT8 {
- unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) }
- }
- #[inline]
- pub fn set_Cr8(&mut self, val: UINT8) {
- unsafe {
- let val: u8 = ::std::mem::transmute(val);
- self._bitfield_1.set(4usize, 4u8, val as u64)
- }
- }
- #[inline]
- pub fn new_bitfield_1(
- InstructionLength: UINT8,
- Cr8: UINT8,
- ) -> __BindgenBitfieldUnit<[u8; 1usize], u8> {
- let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize], u8> =
- Default::default();
- __bindgen_bitfield_unit.set(0usize, 4u8, {
- let InstructionLength: u8 = unsafe { ::std::mem::transmute(InstructionLength) };
- InstructionLength as u64
- });
- __bindgen_bitfield_unit.set(4usize, 4u8, {
- let Cr8: u8 = unsafe { ::std::mem::transmute(Cr8) };
- Cr8 as u64
- });
- __bindgen_bitfield_unit
- }
- }
- #[repr(C)]
- #[derive(Copy, Clone)]pub union WHV_MEMORY_ACCESS_INFO { pub __bindgen_anon_1 : WHV_MEMORY_ACCESS_INFO__bindgen_ty_1 , pub AsUINT32 : UINT32 , _bindgen_union_align : u32 , }#[repr(C)]
- #[derive(Debug, Copy, Clone)]
- pub struct WHV_MEMORY_ACCESS_INFO__bindgen_ty_1 {
- pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize], u32>,
- pub __bindgen_align: [u32; 0usize],
- }
- impl WHV_MEMORY_ACCESS_INFO__bindgen_ty_1 {
- #[inline]
- pub fn AccessType(&self) -> UINT32 {
- unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 2u8) as u32) }
- }
- #[inline]
- pub fn set_AccessType(&mut self, val: UINT32) {
- unsafe {
- let val: u32 = ::std::mem::transmute(val);
- self._bitfield_1.set(0usize, 2u8, val as u64)
- }
- }
- #[inline]
- pub fn GpaUnmapped(&self) -> UINT32 {
- unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) }
- }
- #[inline]
- pub fn set_GpaUnmapped(&mut self, val: UINT32) {
- unsafe {
- let val: u32 = ::std::mem::transmute(val);
- self._bitfield_1.set(2usize, 1u8, val as u64)
- }
- }
- #[inline]
- pub fn GvaValid(&self) -> UINT32 {
- unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) }
- }
- #[inline]
- pub fn set_GvaValid(&mut self, val: UINT32) {
- unsafe {
- let val: u32 = ::std::mem::transmute(val);
- self._bitfield_1.set(3usize, 1u8, val as u64)
- }
- }
- #[inline]
- pub fn Reserved(&self) -> UINT32 {
- unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 28u8) as u32) }
- }
- #[inline]
- pub fn set_Reserved(&mut self, val: UINT32) {
- unsafe {
- let val: u32 = ::std::mem::transmute(val);
- self._bitfield_1.set(4usize, 28u8, val as u64)
- }
- }
- #[inline]
- pub fn new_bitfield_1(
- AccessType: UINT32,
- GpaUnmapped: UINT32,
- GvaValid: UINT32,
- Reserved: UINT32,
- ) -> __BindgenBitfieldUnit<[u8; 4usize], u32> {
- let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize], u32> =
- Default::default();
- __bindgen_bitfield_unit.set(0usize, 2u8, {
- let AccessType: u32 = unsafe { ::std::mem::transmute(AccessType) };
- AccessType as u64
- });
- __bindgen_bitfield_unit.set(2usize, 1u8, {
- let GpaUnmapped: u32 = unsafe { ::std::mem::transmute(GpaUnmapped) };
- GpaUnmapped as u64
- });
- __bindgen_bitfield_unit.set(3usize, 1u8, {
- let GvaValid: u32 = unsafe { ::std::mem::transmute(GvaValid) };
- GvaValid as u64
- });
- __bindgen_bitfield_unit.set(4usize, 28u8, {
- let Reserved: u32 = unsafe { ::std::mem::transmute(Reserved) };
- Reserved as u64
- });
- __bindgen_bitfield_unit
- }
- }
- #[repr(C)]
- #[derive(Copy, Clone)]
- pub struct WHV_MEMORY_ACCESS_CONTEXT {
- pub InstructionByteCount: UINT8,
- pub Reserved: [UINT8; 3usize],
- pub InstructionBytes: [UINT8; 16usize],
- pub AccessInfo: WHV_MEMORY_ACCESS_INFO,
- pub Gpa: WHV_GUEST_PHYSICAL_ADDRESS,
- pub Gva: WHV_GUEST_VIRTUAL_ADDRESS,
- }
- #[repr(C)]
- #[derive(Copy, Clone)]pub union WHV_X64_IO_PORT_ACCESS_INFO { pub __bindgen_anon_1 : WHV_X64_IO_PORT_ACCESS_INFO__bindgen_ty_1 , pub AsUINT32 : UINT32 , _bindgen_union_align : u32 , }#[repr(C)]
- #[derive(Debug, Copy, Clone)]
- pub struct WHV_X64_IO_PORT_ACCESS_INFO__bindgen_ty_1 {
- pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize], u32>,
- pub __bindgen_align: [u32; 0usize],
- }
- impl WHV_X64_IO_PORT_ACCESS_INFO__bindgen_ty_1 {
- #[inline]
- pub fn IsWrite(&self) -> UINT32 {
- unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
- }
- #[inline]
- pub fn set_IsWrite(&mut self, val: UINT32) {
- unsafe {
- let val: u32 = ::std::mem::transmute(val);
- self._bitfield_1.set(0usize, 1u8, val as u64)
- }
- }
- #[inline]
- pub fn AccessSize(&self) -> UINT32 {
- unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 3u8) as u32) }
- }
- #[inline]
- pub fn set_AccessSize(&mut self, val: UINT32) {
- unsafe {
- let val: u32 = ::std::mem::transmute(val);
- self._bitfield_1.set(1usize, 3u8, val as u64)
- }
- }
- #[inline]
- pub fn StringOp(&self) -> UINT32 {
- unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) }
- }
- #[inline]
- pub fn set_StringOp(&mut self, val: UINT32) {
- unsafe {
- let val: u32 = ::std::mem::transmute(val);
- self._bitfield_1.set(4usize, 1u8, val as u64)
- }
- }
- #[inline]
- pub fn RepPrefix(&self) -> UINT32 {
- unsafe { ::std::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u32) }
- }
- #[inline]
- pub fn set_RepPrefix(&mut self, val: UINT32) {
- unsafe {
- let val: u32 = ::std::mem::transmute(val);
- self._bitfield_1.set(5usize, 1u8, val as u64)
- }
- }
- #[inline]
- pub fn Reserved(&self) -> UINT32 {
- unsafe { ::std::mem::transmute(self._bitfield_1.get(6usize, 26u8) as u32) }
- }
- #[inline]
- pub fn set_Reserved(&mut self, val: UINT32) {
- unsafe {
- let val: u32 = ::std::mem::transmute(val);
- self._bitfield_1.set(6usize, 26u8, val as u64)
- }
- }
- #[inline]
- pub fn new_bitfield_1(
- IsWrite: UINT32,
- AccessSize: UINT32,
- StringOp: UINT32,
- RepPrefix: UINT32,
- Reserved: UINT32,
- ) -> __BindgenBitfieldUnit<[u8; 4usize], u32> {
- let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize], u32> =
- Default::default();
- __bindgen_bitfield_unit.set(0usize, 1u8, {
- let IsWrite: u32 = unsafe { ::std::mem::transmute(IsWrite) };
- IsWrite as u64
- });
- __bindgen_bitfield_unit.set(1usize, 3u8, {
- let AccessSize: u32 = unsafe { ::std::mem::transmute(AccessSize) };
- AccessSize as u64
- });
- __bindgen_bitfield_unit.set(4usize, 1u8, {
- let StringOp: u32 = unsafe { ::std::mem::transmute(StringOp) };
- StringOp as u64
- });
- __bindgen_bitfield_unit.set(5usize, 1u8, {
- let RepPrefix: u32 = unsafe { ::std::mem::transmute(RepPrefix) };
- RepPrefix as u64
- });
- __bindgen_bitfield_unit.set(6usize, 26u8, {
- let Reserved: u32 = unsafe { ::std::mem::transmute(Reserved) };
- Reserved as u64
- });
- __bindgen_bitfield_unit
- }
- }
- #[repr(C)]
- #[derive(Copy, Clone)]
- pub struct WHV_X64_IO_PORT_ACCESS_CONTEXT {
- pub InstructionByteCount: UINT8,
- pub Reserved: [UINT8; 3usize],
- pub InstructionBytes: [UINT8; 16usize],
- pub AccessInfo: WHV_X64_IO_PORT_ACCESS_INFO,
- pub PortNumber: UINT16,
- pub Reserved2: [UINT16; 3usize],
- pub Rax: UINT64,
- pub Rcx: UINT64,
- pub Rsi: UINT64,
- pub Rdi: UINT64,
- pub Ds: WHV_X64_SEGMENT_REGISTER,
- pub Es: WHV_X64_SEGMENT_REGISTER,
- }
- #[repr(C)]
- #[derive(Copy, Clone)]pub union WHV_EMULATOR_STATUS { pub __bindgen_anon_1 : WHV_EMULATOR_STATUS__bindgen_ty_1 , pub AsUINT32 : UINT32 , _bindgen_union_align : u32 , }#[repr(C)]
- #[derive(Debug, Copy, Clone)]
- pub struct WHV_EMULATOR_STATUS__bindgen_ty_1 {
- pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize], u32>,
- pub __bindgen_align: [u32; 0usize],
- }
- impl WHV_EMULATOR_STATUS__bindgen_ty_1 {
- #[inline]
- pub fn EmulationSuccessful(&self) -> UINT32 {
- unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
- }
- #[inline]
- pub fn set_EmulationSuccessful(&mut self, val: UINT32) {
- unsafe {
- let val: u32 = ::std::mem::transmute(val);
- self._bitfield_1.set(0usize, 1u8, val as u64)
- }
- }
- #[inline]
- pub fn InternalEmulationFailure(&self) -> UINT32 {
- unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
- }
- #[inline]
- pub fn set_InternalEmulationFailure(&mut self, val: UINT32) {
- unsafe {
- let val: u32 = ::std::mem::transmute(val);
- self._bitfield_1.set(1usize, 1u8, val as u64)
- }
- }
- #[inline]
- pub fn IoPortCallbackFailed(&self) -> UINT32 {
- unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) }
- }
- #[inline]
- pub fn set_IoPortCallbackFailed(&mut self, val: UINT32) {
- unsafe {
- let val: u32 = ::std::mem::transmute(val);
- self._bitfield_1.set(2usize, 1u8, val as u64)
- }
- }
- #[inline]
- pub fn MemoryCallbackFailed(&self) -> UINT32 {
- unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) }
- }
- #[inline]
- pub fn set_MemoryCallbackFailed(&mut self, val: UINT32) {
- unsafe {
- let val: u32 = ::std::mem::transmute(val);
- self._bitfield_1.set(3usize, 1u8, val as u64)
- }
- }
- #[inline]
- pub fn TranslateGvaPageCallbackFailed(&self) -> UINT32 {
- unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) }
- }
- #[inline]
- pub fn set_TranslateGvaPageCallbackFailed(&mut self, val: UINT32) {
- unsafe {
- let val: u32 = ::std::mem::transmute(val);
- self._bitfield_1.set(4usize, 1u8, val as u64)
- }
- }
- #[inline]
- pub fn TranslateGvaPageCallbackGpaIsNotAligned(&self) -> UINT32 {
- unsafe { ::std::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u32) }
- }
- #[inline]
- pub fn set_TranslateGvaPageCallbackGpaIsNotAligned(&mut self, val: UINT32) {
- unsafe {
- let val: u32 = ::std::mem::transmute(val);
- self._bitfield_1.set(5usize, 1u8, val as u64)
- }
- }
- #[inline]
- pub fn GetVirtualProcessorRegistersCallbackFailed(&self) -> UINT32 {
- unsafe { ::std::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u32) }
- }
- #[inline]
- pub fn set_GetVirtualProcessorRegistersCallbackFailed(&mut self, val: UINT32) {
- unsafe {
- let val: u32 = ::std::mem::transmute(val);
- self._bitfield_1.set(6usize, 1u8, val as u64)
- }
- }
- #[inline]
- pub fn SetVirtualProcessorRegistersCallbackFailed(&self) -> UINT32 {
- unsafe { ::std::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u32) }
- }
- #[inline]
- pub fn set_SetVirtualProcessorRegistersCallbackFailed(&mut self, val: UINT32) {
- unsafe {
- let val: u32 = ::std::mem::transmute(val);
- self._bitfield_1.set(7usize, 1u8, val as u64)
- }
- }
- #[inline]
- pub fn InterruptCausedIntercept(&self) -> UINT32 {
- unsafe { ::std::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u32) }
- }
- #[inline]
- pub fn set_InterruptCausedIntercept(&mut self, val: UINT32) {
- unsafe {
- let val: u32 = ::std::mem::transmute(val);
- self._bitfield_1.set(8usize, 1u8, val as u64)
- }
- }
- #[inline]
- pub fn GuestCannotBeFaulted(&self) -> UINT32 {
- unsafe { ::std::mem::transmute(self._bitfield_1.get(9usize, 1u8) as u32) }
- }
- #[inline]
- pub fn set_GuestCannotBeFaulted(&mut self, val: UINT32) {
- unsafe {
- let val: u32 = ::std::mem::transmute(val);
- self._bitfield_1.set(9usize, 1u8, val as u64)
- }
- }
- #[inline]
- pub fn Reserved(&self) -> UINT32 {
- unsafe { ::std::mem::transmute(self._bitfield_1.get(10usize, 22u8) as u32) }
- }
- #[inline]
- pub fn set_Reserved(&mut self, val: UINT32) {
- unsafe {
- let val: u32 = ::std::mem::transmute(val);
- self._bitfield_1.set(10usize, 22u8, val as u64)
- }
- }
- #[inline]
- pub fn new_bitfield_1(
- EmulationSuccessful: UINT32,
- InternalEmulationFailure: UINT32,
- IoPortCallbackFailed: UINT32,
- MemoryCallbackFailed: UINT32,
- TranslateGvaPageCallbackFailed: UINT32,
- TranslateGvaPageCallbackGpaIsNotAligned: UINT32,
- GetVirtualProcessorRegistersCallbackFailed: UINT32,
- SetVirtualProcessorRegistersCallbackFailed: UINT32,
- InterruptCausedIntercept: UINT32,
- GuestCannotBeFaulted: UINT32,
- Reserved: UINT32,
- ) -> __BindgenBitfieldUnit<[u8; 4usize], u32> {
- let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize], u32> =
- Default::default();
- __bindgen_bitfield_unit.set(0usize, 1u8, {
- let EmulationSuccessful: u32 = unsafe { ::std::mem::transmute(EmulationSuccessful) };
- EmulationSuccessful as u64
- });
- __bindgen_bitfield_unit.set(1usize, 1u8, {
- let InternalEmulationFailure: u32 =
- unsafe { ::std::mem::transmute(InternalEmulationFailure) };
- InternalEmulationFailure as u64
- });
- __bindgen_bitfield_unit.set(2usize, 1u8, {
- let IoPortCallbackFailed: u32 = unsafe { ::std::mem::transmute(IoPortCallbackFailed) };
- IoPortCallbackFailed as u64
- });
- __bindgen_bitfield_unit.set(3usize, 1u8, {
- let MemoryCallbackFailed: u32 = unsafe { ::std::mem::transmute(MemoryCallbackFailed) };
- MemoryCallbackFailed as u64
- });
- __bindgen_bitfield_unit.set(4usize, 1u8, {
- let TranslateGvaPageCallbackFailed: u32 =
- unsafe { ::std::mem::transmute(TranslateGvaPageCallbackFailed) };
- TranslateGvaPageCallbackFailed as u64
- });
- __bindgen_bitfield_unit.set(5usize, 1u8, {
- let TranslateGvaPageCallbackGpaIsNotAligned: u32 =
- unsafe { ::std::mem::transmute(TranslateGvaPageCallbackGpaIsNotAligned) };
- TranslateGvaPageCallbackGpaIsNotAligned as u64
- });
- __bindgen_bitfield_unit.set(6usize, 1u8, {
- let GetVirtualProcessorRegistersCallbackFailed: u32 =
- unsafe { ::std::mem::transmute(GetVirtualProcessorRegistersCallbackFailed) };
- GetVirtualProcessorRegistersCallbackFailed as u64
- });
- __bindgen_bitfield_unit.set(7usize, 1u8, {
- let SetVirtualProcessorRegistersCallbackFailed: u32 =
- unsafe { ::std::mem::transmute(SetVirtualProcessorRegistersCallbackFailed) };
- SetVirtualProcessorRegistersCallbackFailed as u64
- });
- __bindgen_bitfield_unit.set(8usize, 1u8, {
- let InterruptCausedIntercept: u32 =
- unsafe { ::std::mem::transmute(InterruptCausedIntercept) };
- InterruptCausedIntercept as u64
- });
- __bindgen_bitfield_unit.set(9usize, 1u8, {
- let GuestCannotBeFaulted: u32 = unsafe { ::std::mem::transmute(GuestCannotBeFaulted) };
- GuestCannotBeFaulted as u64
- });
- __bindgen_bitfield_unit.set(10usize, 22u8, {
- let Reserved: u32 = unsafe { ::std::mem::transmute(Reserved) };
- Reserved as u64
- });
- __bindgen_bitfield_unit
- }
- }
- #[repr(C)]
- #[derive(Debug, Copy, Clone)]
- pub struct WHV_EMULATOR_MEMORY_ACCESS_INFO {
- pub GpaAddress: WHV_GUEST_PHYSICAL_ADDRESS,
- pub Direction: UINT8,
- pub AccessSize: UINT8,
- pub Data: [UINT8; 8usize],
- }
- #[repr(C)]
- #[derive(Debug, Copy, Clone)]
- pub struct WHV_EMULATOR_IO_ACCESS_INFO {
- pub Direction: UINT8,
- pub Port: UINT16,
- pub AccessSize: UINT16,
- pub Data: UINT32,
- }
- pub type WHV_EMULATOR_IO_PORT_CALLBACK =
- ::std::option::Option<
- unsafe extern "C" fn(Context: *mut ::std::os::raw::c_void,
- IoAccess: *mut WHV_EMULATOR_IO_ACCESS_INFO)
- -> HRESULT,
- >;
- pub type WHV_EMULATOR_MEMORY_CALLBACK =
- ::std::option::Option<
- unsafe extern "C" fn(Context: *mut ::std::os::raw::c_void,
- MemoryAccess: *mut WHV_EMULATOR_MEMORY_ACCESS_INFO)
- -> HRESULT,
- >;
- pub type WHV_EMULATOR_GET_VIRTUAL_PROCESSOR_REGISTERS_CALLBACK =
- ::std::option::Option<
- unsafe extern "C" fn(Context: *mut ::std::os::raw::c_void,
- RegisterNames: *const WHV_REGISTER_NAME,
- RegisterCount: UINT32,
- RegisterValues: *mut WHV_REGISTER_VALUE)
- -> HRESULT,
- >;
- pub type WHV_EMULATOR_SET_VIRTUAL_PROCESSOR_REGISTERS_CALLBACK =
- ::std::option::Option<
- unsafe extern "C" fn(Context: *mut ::std::os::raw::c_void,
- RegisterNames: *const WHV_REGISTER_NAME,
- RegisterCount: UINT32,
- RegisterValues: *const WHV_REGISTER_VALUE)
- -> HRESULT,
- >;
- pub type WHV_EMULATOR_TRANSLATE_GVA_PAGE_CALLBACK = :: std :: option :: Option < unsafe extern "C" fn ( Context : * mut :: std :: os :: raw :: c_void , Gva : WHV_GUEST_VIRTUAL_ADDRESS , TranslateFlags : WHV_TRANSLATE_GVA_FLAGS , TranslationResult : * mut WHV_TRANSLATE_GVA_RESULT_CODE , Gpa : * mut WHV_GUEST_PHYSICAL_ADDRESS ) -> HRESULT > ;
- #[repr(C)]
- #[derive(Debug, Copy, Clone)]
- pub struct WHV_EMULATOR_CALLBACKS {
- pub Size: UINT32,
- pub Reserved: UINT32,
- pub WHvEmulatorIoPortCallback: WHV_EMULATOR_IO_PORT_CALLBACK,
- pub WHvEmulatorMemoryCallback: WHV_EMULATOR_MEMORY_CALLBACK,
- pub WHvEmulatorGetVirtualProcessorRegisters:
- WHV_EMULATOR_GET_VIRTUAL_PROCESSOR_REGISTERS_CALLBACK,
- pub WHvEmulatorSetVirtualProcessorRegisters:
- WHV_EMULATOR_SET_VIRTUAL_PROCESSOR_REGISTERS_CALLBACK,
- pub WHvEmulatorTranslateGvaPage: WHV_EMULATOR_TRANSLATE_GVA_PAGE_CALLBACK,
- }
- pub type WHV_EMULATOR_HANDLE = *mut ::std::os::raw::c_void;
- extern "C" {
- pub fn WHvEmulatorCreateEmulator(
- Callbacks: *const WHV_EMULATOR_CALLBACKS,
- Emulator: *mut WHV_EMULATOR_HANDLE,
- ) -> HRESULT;
- }
- extern "C" {
- pub fn WHvEmulatorDestroyEmulator(Emulator: WHV_EMULATOR_HANDLE) -> HRESULT;
- }
- extern "C" {
- pub fn WHvEmulatorTryIoEmulation(
- Emulator: WHV_EMULATOR_HANDLE,
- Context: *mut ::std::os::raw::c_void,
- VpContext: *const WHV_VP_EXIT_CONTEXT,
- IoInstructionContext: *const WHV_X64_IO_PORT_ACCESS_CONTEXT,
- EmulatorReturnStatus: *mut WHV_EMULATOR_STATUS,
- ) -> HRESULT;
- }
- extern "C" {
- pub fn WHvEmulatorTryMmioEmulation(
- Emulator: WHV_EMULATOR_HANDLE,
- Context: *mut ::std::os::raw::c_void,
- VpContext: *const WHV_VP_EXIT_CONTEXT,
- MmioInstructionContext: *const WHV_MEMORY_ACCESS_CONTEXT,
- EmulatorReturnStatus: *mut WHV_EMULATOR_STATUS,
- ) -> HRESULT;
- }
- extern "C" {
- pub fn IsWHvEmulatorCreateEmulatorPresent() -> BOOLEAN;
- }
- extern "C" {
- pub fn IsWHvEmulatorDestroyEmulatorPresent() -> BOOLEAN;
- }
- extern "C" {
- pub fn IsWHvEmulatorTryIoEmulationPresent() -> BOOLEAN;
- }
- extern "C" {
- pub fn IsWHvEmulatorTryMmioEmulationPresent() -> BOOLEAN;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement