Flags for the guest address space API
#include <qvm/types.h>
enum gasp_region_flags { GRF_NONE = 0x00000000, GRF_VIRT_RD = 0x00000001, GRF_VIRT_WR = 0x00000002, GRF_VIRT_EX = 0x00000004, GRF_VIRT_ANY = (GRF_VIRT_RD|GRF_VIRT_WR|GRF_VIRT_EX), GRF_PASS_RD = 0x00000008, GRF_PASS_WR = 0x00000010, GRF_PASS_EX = 0x00000020, GRF_PASS_ANY = (GRF_PASS_RD|GRF_PASS_WR|GRF_PASS_EX), GRF_NOCACHE = 0x00000040, GRF_ACTIVE = 0x00000080, GRF_MEMORY = 0x00000100, GRF_PASSTHRU = 0x00000200, GRF_DMA_USES = 0x00000400, GRF_DMA_NO_USE = 0x00000800, GRF_DMA_SOURCE = 0x00001000, GRF_DMA_TARGET = 0x00002000, GRF_PRECIOUS = 0x00004000, GRF_NOPERMS = 0x00008000, GRF_BACKUP_MASK = 0xf0000000, GRF_BACKUP_SHIFT = (28-3), GRF_STICKY = (GRF_MEMORY|GRF_DMA_SOURCE|GRF_DMA_TARGET|GRF_PASSTHRU) };
No flags specified.
A read access causes the guest to exit and invokes the vread callback.
A write access causes the guestto exit and invokes the vwrite callback.
An execute access causes the guest to exit and triggers an action specified by the VM unsupported configuration option.
A convenient alias for the first three bits.
A read access is allowed through with no guest exit.
A write access is allowed through with no guest exit.
An execute access is allowed through with no guest exit.
A convenient alias for the second three bits.
Pass-through mappings should be marked as uncachable.
Indicate that the region is installed.
The region is available as normal system RAM.
The item was specified with a pass option in the VM configuration; for internal use only.
The item uses DMA; for internal use only.
The item doesn't use DMA; for internal use only.
The item can be a DMA source; for internal use only.
The item can be a DMA target; for internal use only.
The region can't overlap another region; for internal use only.
The region is reserved, but the pages have no permissions.
Mask for saved bits.
Shift for saved bits (saved bits are PASS_* and NOCACHE).
Flags that should be preserved.
These flags are used in the gasp_region structure.