Possible types for an object describing a data element
#include <qvm/types.h>
enum qvm_state_types { QST_MEMORY, QST_VIRTUAL, QST_CPUREGS, QST_FPUREGS, QST_HOST, QST_PCI, QST_PCI_IO, QST_IMMEDIATE, QST_ARCH_SPECIFIC = 0x8000, QST_X86_IO = QST_ARCH_SPECIFIC, QST_X86_SEGREGS, QST_X86_CTRLREGS, QST_X86_DBGREGS, QST_X86_MSR, QST_ARM_SR = QST_ARCH_SPECIFIC, QST_NO_TYPE = 0xffff };
The location member of qvm_state_block is a guest physical address.
The location member of qvm_state_block is a guest virtual address.
The location member of qvm_state_block is an offset in the CPU_REGISTERS structure.
The location member of qvm_state_block is an offset in the FPU_REGISTERS structure.
The location member of qvm_state_block is a host virtual address.
The location member of qvm_state_block identifies a device through its bus, device and function numbers, optionally including an offset into its configuration space, as encoded by QSL_PCI_MAKE_LOC (see Definitions in types.h).
The location member of qvm_state_block is the same as QST_MEMORY, used for PCI IO-space BAR references on non-X86 architectures. Treat this block type the same way you treat the QST_MEMORY block type.
The location member of qvm_state_block is an integer value.
Numbers higher than this value are architecture-specific.
The location member of qvm_state_block is an I/O port number.
The location member of qvm_state_block is an offset in the X86_64_SEGREGS structure.
The location member of qvm_state_block is an offset in the X86_64_CTRLREGS structure.
The location member of qvm_state_block is an offset in the X86_64_DBGREGS structure.
The location member of qvm_state_block is a model-specific register number.
The location member of qvm_state_block is a system register number built with ARM_MAKE_SR_NUM.
No type is specified.
Depending on where and how a qvm_state_block object is used, different subsets of these types are valid.