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.