hv: Make is_x2apic_enabled API visible across source code

Remove static and inline attributes to the API is_x2apic_enabled
and declare a prototype in vlapic.h. Also fix the check performed on guest
APICBASE_MSR value to query vLAPIC mode.

Tracked-On: #3253
Signed-off-by: Sainath Grandhi <sainath.grandhi@intel.com>
Acked-by: Eddie Dong <eddie.dong@intel.com>
This commit is contained in:
Sainath Grandhi 2019-06-10 15:33:35 -07:00 committed by wenlingz
parent 1026f1754c
commit 7cb71a317e
2 changed files with 6 additions and 8 deletions

View File

@ -106,8 +106,6 @@ static void vlapic_set_error(struct acrn_vlapic *vlapic, uint32_t mask);
static void vlapic_timer_expired(void *data); static void vlapic_timer_expired(void *data);
static inline bool is_x2apic_enabled(const struct acrn_vlapic *vlapic);
static inline bool vlapic_enabled(const struct acrn_vlapic *vlapic) static inline bool vlapic_enabled(const struct acrn_vlapic *vlapic)
{ {
const struct lapic_regs *lapic = &(vlapic->apic_page); const struct lapic_regs *lapic = &(vlapic->apic_page);
@ -1989,12 +1987,11 @@ static void vlapic_timer_expired(void *data)
/* /*
* @pre vm != NULL * @pre vm != NULL
*/ */
static inline bool is_x2apic_enabled(const struct acrn_vlapic *vlapic) bool is_x2apic_enabled(const struct acrn_vlapic *vlapic)
{ {
bool ret; bool ret = false;
if ((vlapic_get_apicbase(vlapic) & APICBASE_X2APIC) == 0UL) {
ret = false; if ((vlapic_get_apicbase(vlapic) & APICBASE_LAPIC_MODE) == (APICBASE_X2APIC | APICBASE_XAPIC)) {
} else {
ret = true; ret = true;
} }

View File

@ -211,6 +211,7 @@ void vlapic_calc_dest(struct acrn_vm *vm, uint64_t *dmask, bool is_broadcast,
void vlapic_calc_dest_lapic_pt(struct acrn_vm *vm, uint64_t *dmask, bool is_broadcast, void vlapic_calc_dest_lapic_pt(struct acrn_vm *vm, uint64_t *dmask, bool is_broadcast,
uint32_t dest, bool phys); uint32_t dest, bool phys);
bool is_lapic_pt_enabled(struct acrn_vm *vm); bool is_lapic_pt_enabled(struct acrn_vm *vm);
bool is_x2apic_enabled(const struct acrn_vlapic *vlapic);
/** /**
* @} * @}
*/ */