hvf: Fix segment selector format

The Requested Privilege Level field is 2 bits, the Table Indicator field
is 1 bit and the Index field is the remaining 15 bits, with TI=0 meaning
GDT and TI=1 meaning LDT.

Signed-off-by: Jessica Clarke <jrtc27@jrtc27.com>
Message-Id: <20201116200414.28286-1-jrtc27@jrtc27.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
Jessica Clarke 2020-11-16 20:04:14 +00:00 committed by Paolo Bonzini
parent 65baabca22
commit c6a89b45bd

View file

@ -214,16 +214,16 @@ static inline uint32_t x86_call_gate_offset(x86_call_gate *gate)
return (uint32_t)((gate->offset1 << 16) | gate->offset0);
}
#define LDT_SEL 0
#define GDT_SEL 1
#define GDT_SEL 0
#define LDT_SEL 1
typedef struct x68_segment_selector {
union {
uint16_t sel;
struct {
uint16_t rpl:3;
uint16_t rpl:2;
uint16_t ti:1;
uint16_t index:12;
uint16_t index:13;
};
};
} __attribute__ ((__packed__)) x68_segment_selector;