acrn-hypervisor/hypervisor/include/arch/x86/guest
Yan, Like a073ebeeca hv: extend lapic pass-through for DM launched VM
This commit extend lapic pass-through for DM launched VM, generally for hard RT scenarios.
Similar to the partition mode, the vlapic is working under the xapic mode at first, only
when x2apic mode is enabled, lapic is passed through, because the physical LAPICs are
under x2apic mode.

Main changes includes:
- add is_lapic_pt() to check if a vm is created with lapic pt or not, to combine
  codes of partition mode and DM launched vm with lapic passthrough, including:
  - reuse the irq delievery function and rename it to dispatch_interrupt_lapic_pt();
  - reuse switch_apicv_mode_x2apic();
  - reuse ICR handling codes to avoid malicious IPI;
- intercept ICR/APICID/LDR msr access when lapic_pt;
- for vm with lapic passthrough, irq is always disabled under root mode.

Tracked-On: #2351
Signed-off-by: Yan, Like <like.yan@intel.com>
Acked-by: Anthony Xu <anthony.xu@intel.com>
Acked-by: Eddie Dong <eddie.dong@intel.com>
2019-01-28 19:47:33 +08:00
..
guest_pm.h hv: use int32_t replace int 2018-12-12 13:08:10 +08:00
guest.h HV: rename the term of vm0 to sos vm 2019-01-21 18:03:31 +08:00
instr_emul.h HV: modularization cleanup instr_emul header file 2019-01-22 10:50:30 +08:00
ucode.h HV:treewide:rename vcpu data structure 2018-11-05 15:35:49 +08:00
vcpu.h hv: remove unused fields in 'struct acrn_vcpu' 2019-01-25 11:26:33 +08:00
vcpuid.h modulization: move virtual cpuid stuff into guest dir 2018-12-13 09:08:02 +08:00
vioapic.h hv: remove ACRN_REQUEST_TMR_UPDATE and unnecessary codes 2019-01-17 08:48:22 +08:00
vlapic.h hv: vlapic: remove calcvdest 2019-01-23 13:43:09 +08:00
vm0_boot.h HV: modularization to refine boot/bsp related code. 2019-01-08 08:46:15 +08:00
vm.h hv: extend lapic pass-through for DM launched VM 2019-01-28 19:47:33 +08:00
vmtrr.h modularization: clean up namings in vMTRR module 2018-12-14 09:43:06 +08:00
vpic.h hv: fix MISRA-C violations in vpic.c and vioapic.c 2019-01-11 23:04:54 +08:00