} vmx_state_t;
struct tss_descriptor {
- uint16_t limit1;
- uint16_t base1;
- uint_t base2 : 8;
- /* In 32 bit type follows the form 10B1b, where B is the busy flag */
- uint_t type : 4;
- uint_t zero1 : 1;
- uint_t dpl : 2;
- uint_t present : 1;
- uint_t limit2 : 4;
- uint_t available : 1;
- uint_t zero2 : 1;
- uint_t zero3 : 1;
- uint_t granularity : 1;
- uint_t base3 : 8;
+ union {
+ ulong_t value;
+ struct {
+ uint16_t limit1;
+ uint16_t base1;
+ uint_t base2 : 8;
+ /* In IA32, type follows the form 10B1b, where B is the busy flag */
+ uint_t type : 4;
+ uint_t zero1 : 1;
+ uint_t dpl : 2;
+ uint_t present : 1;
+ uint_t limit2 : 4;
+ uint_t available : 1;
+ uint_t zero2 : 1;
+ uint_t zero3 : 1;
+ uint_t granularity : 1;
+ uint_t base3 : 8;
#ifdef __V3_64BIT__
- uint32_t base4;
- uint_t rsvd1 : 8;
- uint_t zero4 : 5;
- uint_t rsvd2 : 19;
+ uint32_t base4;
+ uint_t rsvd1 : 8;
+ uint_t zero4 : 5;
+ uint_t rsvd2 : 19;
#endif
+ } __attribute__((packed));
+ } __attribute__((packed));
}__attribute__((packed));
struct vmcs_host_state {