L4Re Operating System Framework
Interface and Usage Documentation
Loading...
Searching...
No Matches
l4_vmx_offset_table_t Struct Reference

Software VMCS field offset table. More...

#include <__vm-vmx.h>

+ Collaboration diagram for l4_vmx_offset_table_t:

Detailed Description

Software VMCS field offset table.

The memory layout is as follows:

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_ext_vcpu_state_vmx_t and bit indexes in the dirty_bitmap array in l4_ext_vcpu_state_vmx_t.

The limits (after being multiplied by 64) represent the range of the available indexes.

Definition at line 186 of file __vm-vmx.h.


The documentation for this struct was generated from the following file: