Public Types | |
using | binary_data = file::binary_data |
using | drr_type = debug_ring_resources_t |
using | drr_pointer = drr_type * |
using | cpuid_type = uint64_t |
using | vcpuid_type = uint64_t |
using | status_type = int64_t |
using | status_pointer = status_type * |
using | registers_type = struct vmcall_registers_t |
using | registers_pointer = registers_type * |
Public Member Functions | |
ioctl () | |
virtual | ~ioctl ()=default |
virtual void | open () |
virtual void | call_ioctl_add_module (const binary_data &module_data) |
virtual void | call_ioctl_load_vmm () |
virtual void | call_ioctl_unload_vmm () |
virtual void | call_ioctl_start_vmm () |
virtual void | call_ioctl_stop_vmm () |
virtual void | call_ioctl_dump_vmm (gsl::not_null< drr_pointer > drr, vcpuid_type vcpuid) |
virtual void | call_ioctl_vmm_status (gsl::not_null< status_pointer > status) |
virtual void | call_ioctl_vmcall (gsl::not_null< registers_pointer > regs, cpuid_type cpuid) |
IOCTL
Calls into the bareflank driver entry to perform a desired action. Note that for this class to function, the driver entry must be loaded, and bfm must be executed with the proper permissions.
using ioctl::binary_data = file::binary_data |
using ioctl::drr_pointer = drr_type * |
using ioctl::cpuid_type = uint64_t |
using ioctl::vcpuid_type = uint64_t |
using ioctl::status_type = int64_t |
using ioctl::status_pointer = status_type * |
using ioctl::registers_type = struct vmcall_registers_t |
using ioctl::registers_pointer = registers_type * |
|
noexcept |
|
virtualdefault |
Destructor
|
virtual |
|
virtual |
|
virtual |
|
virtual |
|
virtual |
|
virtual |
|
virtual |
Dump VMM
Dumps the contents of the VMM's debug ring
drr | pointer a debug_ring_resources_t |
vcpuid | indicates which drr to get (every vcpu has its own drr) |
|
virtual |
|
virtual |