use crate::api::Access;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub enum InterceptType {
Cr(CrType),
Msr(u32),
Breakpoint,
Pagefault,
}
#[repr(C)]
#[derive(Debug)]
pub enum EventType {
Cr {
cr_type: CrType,
new: u64,
old: u64,
},
Msr {
msr_type: u32,
value: u64,
},
Breakpoint {
gpa: u64,
insn_len: u8,
},
Pagefault {
gva: u64,
gpa: u64,
access: Access,
},
}
#[repr(C)]
#[derive(Debug, Copy, Clone, PartialEq)]
pub enum CrType {
Cr0,
Cr3,
Cr4,
}
#[repr(C)]
pub struct Event {
pub vcpu: u16,
pub kind: EventType,
}
#[repr(C)]
#[derive(Debug)]
pub enum EventReplyType {
Continue,
}