Updated: October 28, 2024 |
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 guest to 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.
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.