Hypervisor and Memory Management
Core Functions
init()
Initializes the hypervisor for all processor cores.
Returns: vmxroot_error_t
Example:
initPTB()
Initializes the Page Table Base.
Returns: bool
Example:
my_dtb()
Retrieves the current Directory Table Base.
Returns: guest_phys_t
Example:
Memory Operations
translate(guest_virt_t virt_addr)
Translates a guest virtual address to a guest physical address.
Parameters:
virt_addr
: Guest virtual address
Returns: guest_phys_t
Example:
read_phys(guest_phys_t phys_addr, guest_virt_t buffer, u64 size)
Reads from physical memory.
Parameters:
phys_addr
: Physical address to read frombuffer
: Buffer to store read datasize
: Number of bytes to read
Returns: vmxroot_error_t
Example:
write_phys(guest_phys_t phys_addr, guest_virt_t buffer, u64 size)
Writes to physical memory.
Parameters:
phys_addr
: Physical address to write tobuffer
: Buffer containing data to writesize
: Number of bytes to write
Returns: vmxroot_error_t
Example:
read_km(void* dst, void* src, size_t size)
Reads from kernel memory.
Parameters:
dst
: Destination buffersrc
: Source address in kernel memorysize
: Number of bytes to read
Example:
write_km(void* dst, void* src, size_t size)
Writes to kernel memory.
Parameters:
dst
: Destination address in kernel memorysrc
: Source buffersize
: Number of bytes to write
Example:
copy_virt(guest_phys_t dirbase_src, guest_virt_t virt_src, guest_phys_t dirbase_dest, guest_virt_t virt_dest, u64 size)
Copies memory between virtual addresses.
Parameters:
dirbase_src
: Source directory basevirt_src
: Source virtual addressdirbase_dest
: Destination directory basevirt_dest
: Destination virtual addresssize
: Number of bytes to copy
Returns: vmxroot_error_t
Example:
Last updated