Currently, registers for the KVMDriver, HypervLinuxDriver and HypervWindowsDriver are handled in a similar manner.
It would be helpful to unify these registers in as type-safe a way as possible.
Some features of this unified API:
- Support for just the registers we need (e.g. RSP, RIP, pagetable-related registers, etc...)
- Use of
GuestPtr for register values as appropriate (e.g. RSP which defines a stack pointer, which can only be a guest address)
- Prevents callers from setting any unsupported register values
- Ensures all required registers are set before a hypervisor can use them
- No support for optional registers. The registers are either all set or none are set