acrn-hypervisor/hypervisor/include/arch/x86
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
..
boot hv:Move severl variable declaration for boot code 2019-01-25 21:32:21 +08:00
guest hv: extend lapic pass-through for DM launched VM 2019-01-28 19:47:33 +08:00
abl_seed_parse.h HV:treewide:rename vm data structure 2018-11-05 15:35:49 +08:00
apicreg.h hv: Bit Representation for IOAPIC RTE 2019-01-26 23:25:34 +08:00
assign.h HV: rename the term of vm0 to sos vm 2019-01-21 18:03:31 +08:00
cpu_caps.h hv: security: remove superfluous prototype 2019-01-14 15:33:05 +08:00
cpu.h hv:Move severl variable declaration for boot code 2019-01-25 21:32:21 +08:00
cpufeatures.h hv: add fast string enhanced rep movsb/stosb check on initial 2018-12-18 16:30:27 +08:00
cpuid.h hv: disable more features from guest CPUID 2019-01-09 23:04:41 +08:00
e820.h HV: rename the term of vm0 to sos vm 2019-01-21 18:03:31 +08:00
gdt.h hv: coding style: remove no real declaration for external variable 2018-12-20 20:20:08 +08:00
host_pm.h hv:Move pm state structure to pm.h 2019-01-07 11:23:22 +08:00
hv_arch.h hv:modulization for IO Emulation 2019-01-21 13:49:54 +08:00
idt.h hv: idt: separate the MACRO definition 2019-01-23 08:23:48 +08:00
init.h hv: init: minor fix related to header file 2019-01-11 21:53:09 +08:00
io_emul.h io_emul: reshuffle io emulation path 2019-01-23 16:21:17 +08:00
io_req.h io_emul: reshuffle io emulation path 2019-01-23 16:21:17 +08:00
io.h hv:modulization for IO Emulation 2019-01-21 13:49:54 +08:00
ioapic.h hv: ioapic: Change interrupt pin to uint32_t 2019-01-10 23:52:25 +08:00
irq.h hv: Bit Representation for IOAPIC RTE 2019-01-26 23:25:34 +08:00
lapic.h doc: hv: add comments to irq APIs for documentation 2018-11-02 15:34:36 -07:00
mmu.h hv:Move severl variable declaration for boot code 2019-01-25 21:32:21 +08:00
msr.h hv: add more MSR definitions 2019-01-17 12:53:09 +08:00
multiboot.h hv: use int32_t replace int 2018-12-12 13:08:10 +08:00
page.h hv: coding style: refine page related 2018-12-20 15:44:08 +08:00
per_cpu.h schedule: use per_cpu idle object 2019-01-23 16:21:17 +08:00
pgtable.h doc: replace return with retval 2018-11-30 14:55:17 +08:00
sbl_seed_parse.h HV:treewide:rename vm data structure 2018-11-05 15:35:49 +08:00
security.h Make ibrs_type as internal variable 2018-12-19 09:07:14 +08:00
timer.h HV: check to avoid interrupt delay timer add twice 2019-01-21 11:18:08 +08:00
trampoline.h hv:Move severl variable declaration for boot code 2019-01-25 21:32:21 +08:00
trusty.h hv: coding style: refine initialize_trusty to one exit 2018-12-20 21:53:51 +08:00
virtual_cr.h HV: modularization to separate CR related code 2019-01-18 10:50:18 +08:00
vmcs.h HV: modularization to separate CR related code 2019-01-18 10:50:18 +08:00
vmexit.h HV: modularization to separate CR related code 2019-01-18 10:50:18 +08:00
vmx.h modulization: vmx on/off should not use vcpu param 2018-12-18 10:00:56 +08:00
vtd.h HV: rename the term of vm0 to sos vm 2019-01-21 18:03:31 +08:00
zeropage.h hv: minimize the case of "identifier reuse" 2018-12-07 15:21:39 +08:00