![]() |
L4Re Operating System Framework
Interface and Usage Documentation
|
Software VMCS field offset table. More...
#include <__vm-vmx.h>
Software VMCS field offset table.
This data structure represents the following memory layout:
0x00 - 0x02: 3 offsets for 16-bit fields.
0x03: Reserved.
0x04 - 0x06: 3 offsets for 64-bit fields.
0x07: Reserved.
0x08 - 0x0a: 3 offsets for 32-bit fields.
0x0b: Reserved.
0x0c - 0x0e: 3 offsets for natural-width fields.
0x0f: Reserved.
0x10 - 0x12: 3 limits for 16-bit fields.
0x13: Reserved.
0x14 - 0x16: 3 limits for 64-bit fields.
0x17: Reserved.
0x18 - 0x1a: 3 limits for 32-bit fields.
0x1b: Reserved.
0x1c - 0x1e: 3 limits for natural-width fields.
0x1f: Reserved.
0x20 - 0x23: 4 index shifts.
0x24: Offset of the first software VMCS field.
0x25: Size of the software VMCS fields.
0x26 - 0x27: Reserved.
The offsets/limits in each size category are in the following order:
Control fields.
Read-only fields.
Guest fields.
The index shifts are in the following order:
16-bit.
64-bit.
32-bit.
Natural-width.
All offsets/limits/sizes are represented in a 64-byte granule.
The offsets (after being multiplied by 64) are indexes in the values array in l4_vm_vmx_vcpu_vmcs_t and bit indexes in the dirty_bitmap array in l4_vm_vmx_vcpu_vmcs_t.
The limits (after being multiplied by 64) represent the range of the available indexes.
Definition at line 155 of file __vm-vmx.h.