From b24a8a0f591435c36a850b2229c247e8fbe1385d Mon Sep 17 00:00:00 2001 From: Mingqiang Chi Date: Sun, 3 Feb 2019 15:07:13 +0800 Subject: [PATCH] hv:cleanup header file for guest folder cleanup arch/x86/guest, only include some necessary header files, doesn't include hypervisor.h Tracked-On: #1842 Signed-off-by: Mingqiang Chi Reviewed-by: Jason Chen CJ modified: arch/x86/guest/assign.c modified: arch/x86/guest/ept.c modified: arch/x86/guest/guest_memory.c modified: arch/x86/guest/instr_emul.c modified: arch/x86/guest/io_emul.c modified: arch/x86/guest/pm.c modified: arch/x86/guest/trusty.c modified: arch/x86/guest/ucode.c modified: arch/x86/guest/vcpu.c modified: arch/x86/guest/vcpuid.c modified: arch/x86/guest/virq.c modified: arch/x86/guest/virtual_cr.c modified: arch/x86/guest/vlapic.c modified: arch/x86/guest/vm.c modified: arch/x86/guest/vmcall.c modified: arch/x86/guest/vmcs.c modified: arch/x86/guest/vmexit.c modified: arch/x86/guest/vmsr.c modified: arch/x86/guest/vmtrr.c modified: arch/x86/pm.c modified: include/arch/x86/guest/assign.h modified: include/arch/x86/guest/ept.h modified: include/arch/x86/guest/guest_memory.h modified: include/arch/x86/guest/instr_emul.h modified: include/arch/x86/guest/io_emul.h modified: include/arch/x86/guest/trusty.h modified: include/arch/x86/guest/vcpu.h modified: include/arch/x86/guest/vmcs.h modified: include/arch/x86/io_req.h modified: include/arch/x86/irq.h modified: include/arch/x86/lapic.h modified: include/arch/x86/mmu.h modified: include/arch/x86/pgtable.h modified: include/common/ptdev.h modified: include/debug/console.h --- hypervisor/arch/x86/guest/assign.c | 38 ++++++++++--------- hypervisor/arch/x86/guest/ept.c | 13 +++++-- hypervisor/arch/x86/guest/guest_memory.c | 13 +++++-- hypervisor/arch/x86/guest/instr_emul.c | 8 +++- hypervisor/arch/x86/guest/io_emul.c | 13 ++++++- hypervisor/arch/x86/guest/pm.c | 6 ++- hypervisor/arch/x86/guest/trusty.c | 11 +++++- hypervisor/arch/x86/guest/ucode.c | 10 ++++- hypervisor/arch/x86/guest/vcpu.c | 1 + hypervisor/arch/x86/guest/vcpuid.c | 10 ++++- hypervisor/arch/x86/guest/virq.c | 12 +++++- hypervisor/arch/x86/guest/virtual_cr.c | 15 ++++++-- hypervisor/arch/x86/guest/vlapic.c | 20 +++++++--- hypervisor/arch/x86/guest/vm.c | 2 + hypervisor/arch/x86/guest/vmcall.c | 9 ++++- hypervisor/arch/x86/guest/vmcs.c | 16 ++++++-- hypervisor/arch/x86/guest/vmexit.c | 14 ++++++- hypervisor/arch/x86/guest/vmsr.c | 12 +++++- hypervisor/arch/x86/guest/vmtrr.c | 9 ++++- hypervisor/arch/x86/pm.c | 19 ++++++++-- hypervisor/include/arch/x86/guest/assign.h | 1 + hypervisor/include/arch/x86/guest/ept.h | 1 + .../include/arch/x86/guest/guest_memory.h | 4 +- .../include/arch/x86/guest/instr_emul.h | 2 + hypervisor/include/arch/x86/guest/io_emul.h | 1 + hypervisor/include/arch/x86/guest/trusty.h | 3 ++ hypervisor/include/arch/x86/guest/vcpu.h | 1 + hypervisor/include/arch/x86/guest/vmcs.h | 2 + hypervisor/include/arch/x86/io_req.h | 1 + hypervisor/include/arch/x86/irq.h | 3 ++ hypervisor/include/arch/x86/lapic.h | 3 ++ hypervisor/include/arch/x86/mmu.h | 1 + hypervisor/include/arch/x86/pgtable.h | 2 + hypervisor/include/common/ptdev.h | 4 ++ hypervisor/include/debug/console.h | 2 + 35 files changed, 229 insertions(+), 53 deletions(-) diff --git a/hypervisor/arch/x86/guest/assign.c b/hypervisor/arch/x86/guest/assign.c index fe75550b7..03c49f24f 100644 --- a/hypervisor/arch/x86/guest/assign.c +++ b/hypervisor/arch/x86/guest/assign.c @@ -4,9 +4,13 @@ * SPDX-License-Identifier: BSD-3-Clause */ -#include -#include +#include +#include +#include +#include #include +#include +#include /* * lookup a ptdev entry by sid @@ -789,6 +793,21 @@ void ptirq_remove_intx_remapping(struct acrn_vm *vm, uint32_t virt_pin, bool pic spinlock_release(&ptdev_lock); } +/* + * @pre vm != NULL + */ +void ptirq_remove_msix_remapping(const struct acrn_vm *vm, uint16_t virt_bdf, + uint32_t vector_count) +{ + uint32_t i; + + for (i = 0U; i < vector_count; i++) { + spinlock_obtain(&ptdev_lock); + remove_msix_remapping(vm, virt_bdf, i); + spinlock_release(&ptdev_lock); + } +} + /* except sos_vm, Device Model should call this function to pre-hold ptdev msi * entries: * - the entry is identified by phys_bdf:msi_idx: @@ -817,18 +836,3 @@ int32_t ptirq_add_msix_remapping(struct acrn_vm *vm, uint16_t virt_bdf, return (vector_added == vector_count) ? 0 : -ENODEV; } - -/* - * @pre vm != NULL - */ -void ptirq_remove_msix_remapping(const struct acrn_vm *vm, uint16_t virt_bdf, - uint32_t vector_count) -{ - uint32_t i; - - for (i = 0U; i < vector_count; i++) { - spinlock_obtain(&ptdev_lock); - remove_msix_remapping(vm, virt_bdf, i); - spinlock_release(&ptdev_lock); - } -} diff --git a/hypervisor/arch/x86/guest/ept.c b/hypervisor/arch/x86/guest/ept.c index 30d4b4316..c89ec3dbe 100644 --- a/hypervisor/arch/x86/guest/ept.c +++ b/hypervisor/arch/x86/guest/ept.c @@ -4,10 +4,17 @@ * SPDX-License-Identifier: BSD-3-Clause */ -#include - -#include +#include +#include +#include +#include +#include +#include +#include +#include #include +#include +#include #define ACRN_DBG_EPT 6U diff --git a/hypervisor/arch/x86/guest/guest_memory.c b/hypervisor/arch/x86/guest/guest_memory.c index fe1363213..6c3c85db4 100644 --- a/hypervisor/arch/x86/guest/guest_memory.c +++ b/hypervisor/arch/x86/guest/guest_memory.c @@ -4,10 +4,15 @@ * SPDX-License-Identifier: BSD-3-Clause */ -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #define ACRN_DBG_GUEST 6U diff --git a/hypervisor/arch/x86/guest/instr_emul.c b/hypervisor/arch/x86/guest/instr_emul.c index f4a7e5846..1a43cae75 100644 --- a/hypervisor/arch/x86/guest/instr_emul.c +++ b/hypervisor/arch/x86/guest/instr_emul.c @@ -28,8 +28,14 @@ * $FreeBSD$ */ -#include +#include +#include #include +#include +#include +#include +#include +#include #define CPU_REG_FIRST CPU_REG_RAX #define CPU_REG_LAST CPU_REG_GDTR diff --git a/hypervisor/arch/x86/guest/io_emul.c b/hypervisor/arch/x86/guest/io_emul.c index 34da2a594..0c9e1583d 100644 --- a/hypervisor/arch/x86/guest/io_emul.c +++ b/hypervisor/arch/x86/guest/io_emul.c @@ -4,9 +4,18 @@ * SPDX-License-Identifier: BSD-3-Clause */ -#include - +#include +#include +#include +#include +#include +#include #include +#include +#include +#include +#include +#include /** * @brief General complete-work for port I/O emulation diff --git a/hypervisor/arch/x86/guest/pm.c b/hypervisor/arch/x86/guest/pm.c index 2360baba6..d3f4367db 100644 --- a/hypervisor/arch/x86/guest/pm.c +++ b/hypervisor/arch/x86/guest/pm.c @@ -4,7 +4,11 @@ * SPDX-License-Identifier: BSD-3-Clause */ -#include +#include +#include +#include +#include +#include int32_t validate_pstate(const struct acrn_vm *vm, uint64_t perf_ctl) { diff --git a/hypervisor/arch/x86/guest/trusty.c b/hypervisor/arch/x86/guest/trusty.c index fba14754e..54326009e 100644 --- a/hypervisor/arch/x86/guest/trusty.c +++ b/hypervisor/arch/x86/guest/trusty.c @@ -4,9 +4,18 @@ * SPDX-License-Identifier: BSD-3-Clause */ -#include +#include +#include #include +#include +#include +#include +#include +#include +#include +#include #include +#include #define TRUSTY_VERSION 1U #define TRUSTY_VERSION_2 2U diff --git a/hypervisor/arch/x86/guest/ucode.c b/hypervisor/arch/x86/guest/ucode.c index 3683d22be..8dd676560 100644 --- a/hypervisor/arch/x86/guest/ucode.c +++ b/hypervisor/arch/x86/guest/ucode.c @@ -4,8 +4,16 @@ * SPDX-License-Identifier: BSD-3-Clause */ -#include +#include +#include +#include +#include +#include +#include #include +#include +#include +#include #define MICRO_CODE_SIZE_MAX 0x40000U static uint8_t micro_code[MICRO_CODE_SIZE_MAX]; diff --git a/hypervisor/arch/x86/guest/vcpu.c b/hypervisor/arch/x86/guest/vcpu.c index 12c3335b3..11d6fc379 100644 --- a/hypervisor/arch/x86/guest/vcpu.c +++ b/hypervisor/arch/x86/guest/vcpu.c @@ -16,6 +16,7 @@ #include #include #include +#include #include inline uint64_t vcpu_get_gpreg(const struct acrn_vcpu *vcpu, uint32_t reg) diff --git a/hypervisor/arch/x86/guest/vcpuid.c b/hypervisor/arch/x86/guest/vcpuid.c index db38242b4..08b7a9dac 100644 --- a/hypervisor/arch/x86/guest/vcpuid.c +++ b/hypervisor/arch/x86/guest/vcpuid.c @@ -4,7 +4,15 @@ * SPDX-License-Identifier: BSD-3-Clause */ -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include static inline const struct vcpuid_entry *local_find_vcpuid_entry(const struct acrn_vcpu *vcpu, uint32_t leaf, uint32_t subleaf) diff --git a/hypervisor/arch/x86/guest/virq.c b/hypervisor/arch/x86/guest/virq.c index 3e4a916c8..1658ba3f0 100644 --- a/hypervisor/arch/x86/guest/virq.c +++ b/hypervisor/arch/x86/guest/virq.c @@ -4,7 +4,17 @@ * SPDX-License-Identifier: BSD-3-Clause */ -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #define EXCEPTION_ERROR_CODE_VALID 8U diff --git a/hypervisor/arch/x86/guest/virtual_cr.c b/hypervisor/arch/x86/guest/virtual_cr.c index 1301a7191..64ba58f4c 100644 --- a/hypervisor/arch/x86/guest/virtual_cr.c +++ b/hypervisor/arch/x86/guest/virtual_cr.c @@ -6,10 +6,19 @@ * this file contains vmcs operations which is vcpu related */ -#include -#include -#include +#include +#include +#include +#include +#include +#include +#include +#include #include +#include +#include +#include +#include /* CR0 bits hv want to trap to track status change */ #define CR0_TRAP_MASK (CR0_PE | CR0_PG | CR0_WP | CR0_CD | CR0_NW) diff --git a/hypervisor/arch/x86/guest/vlapic.c b/hypervisor/arch/x86/guest/vlapic.c index b491e0c8c..eab9a538c 100644 --- a/hypervisor/arch/x86/guest/vlapic.c +++ b/hypervisor/arch/x86/guest/vlapic.c @@ -29,12 +29,22 @@ #define pr_prefix "vlapic: " -#include - -#include - +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include "vlapic_priv.h" -#include "vlapic.h" #define VLAPIC_VERBOS 0 diff --git a/hypervisor/arch/x86/guest/vm.c b/hypervisor/arch/x86/guest/vm.c index 6abe99883..84d814c58 100644 --- a/hypervisor/arch/x86/guest/vm.c +++ b/hypervisor/arch/x86/guest/vm.c @@ -18,6 +18,8 @@ #include #include #include +#include +#include #include vm_sw_loader_t vm_sw_loader; diff --git a/hypervisor/arch/x86/guest/vmcall.c b/hypervisor/arch/x86/guest/vmcall.c index 8ab2c6e43..f00c528f6 100644 --- a/hypervisor/arch/x86/guest/vmcall.c +++ b/hypervisor/arch/x86/guest/vmcall.c @@ -4,8 +4,15 @@ * SPDX-License-Identifier: BSD-3-Clause */ -#include +#include +#include +#include +#include +#include +#include #include +#include +#include static spinlock_t vmm_hypercall_lock = { .head = 0U, diff --git a/hypervisor/arch/x86/guest/vmcs.c b/hypervisor/arch/x86/guest/vmcs.c index 8c5775e22..42cd952b5 100644 --- a/hypervisor/arch/x86/guest/vmcs.c +++ b/hypervisor/arch/x86/guest/vmcs.c @@ -6,9 +6,19 @@ * this file contains vmcs operations which is vcpu related */ -#include -#include -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include uint64_t vmx_rdmsr_pat(const struct acrn_vcpu *vcpu) { diff --git a/hypervisor/arch/x86/guest/vmexit.c b/hypervisor/arch/x86/guest/vmexit.c index cc39eec3c..4bbcb99c5 100644 --- a/hypervisor/arch/x86/guest/vmexit.c +++ b/hypervisor/arch/x86/guest/vmexit.c @@ -4,9 +4,19 @@ * SPDX-License-Identifier: BSD-3-Clause */ -#include -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include +#include +#include /* * According to "SDM APPENDIX C VMX BASIC EXIT REASONS", diff --git a/hypervisor/arch/x86/guest/vmsr.c b/hypervisor/arch/x86/guest/vmsr.c index 873c36bcc..809ff1f78 100644 --- a/hypervisor/arch/x86/guest/vmsr.c +++ b/hypervisor/arch/x86/guest/vmsr.c @@ -4,8 +4,18 @@ * SPDX-License-Identifier: BSD-3-Clause */ -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include +#include +#include #define INTERCEPT_DISABLE (0U) #define INTERCEPT_READ (1U << 0U) diff --git a/hypervisor/arch/x86/guest/vmtrr.c b/hypervisor/arch/x86/guest/vmtrr.c index 79713fdf3..f879d0df1 100644 --- a/hypervisor/arch/x86/guest/vmtrr.c +++ b/hypervisor/arch/x86/guest/vmtrr.c @@ -3,7 +3,14 @@ * SPDX-License-Identifier: BSD-3-Clause */ -#include +#include +#include +#include +#include +#include +#include +#include +#include #ifdef CONFIG_MTRR_ENABLED diff --git a/hypervisor/arch/x86/pm.c b/hypervisor/arch/x86/pm.c index 4b0ddf05f..0703b2d34 100644 --- a/hypervisor/arch/x86/pm.c +++ b/hypervisor/arch/x86/pm.c @@ -2,10 +2,21 @@ * Copyright (C) <2018> Intel Corporation * SPDX-License-Identifier: BSD-3-Clause */ -#include -#include -#include -#include + + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include struct cpu_context cpu_ctx; diff --git a/hypervisor/include/arch/x86/guest/assign.h b/hypervisor/include/arch/x86/guest/assign.h index 5b0332984..52a84af1d 100644 --- a/hypervisor/include/arch/x86/guest/assign.h +++ b/hypervisor/include/arch/x86/guest/assign.h @@ -7,6 +7,7 @@ #ifndef ASSIGN_H #define ASSIGN_H +#include #include /** diff --git a/hypervisor/include/arch/x86/guest/ept.h b/hypervisor/include/arch/x86/guest/ept.h index 152bf9bef..b8f71b315 100644 --- a/hypervisor/include/arch/x86/guest/ept.h +++ b/hypervisor/include/arch/x86/guest/ept.h @@ -6,6 +6,7 @@ #ifndef EPT_H #define EPT_H +#include /** * Invalid HPA is defined for error checking, diff --git a/hypervisor/include/arch/x86/guest/guest_memory.h b/hypervisor/include/arch/x86/guest/guest_memory.h index bea62eb81..899235745 100644 --- a/hypervisor/include/arch/x86/guest/guest_memory.h +++ b/hypervisor/include/arch/x86/guest/guest_memory.h @@ -13,8 +13,10 @@ #ifndef ASSEMBLER -#include +#include +struct acrn_vcpu; +struct acrn_vm; /* Use # of paging level to identify paging mode */ enum vm_paging_mode { PAGING_MODE_0_LEVEL = 0U, /* Flat */ diff --git a/hypervisor/include/arch/x86/guest/instr_emul.h b/hypervisor/include/arch/x86/guest/instr_emul.h index ce81312e9..82b36bd14 100644 --- a/hypervisor/include/arch/x86/guest/instr_emul.h +++ b/hypervisor/include/arch/x86/guest/instr_emul.h @@ -30,6 +30,8 @@ #ifndef INSTR_EMUL_H #define INSTR_EMUL_H +#include +#include #include struct instr_emul_vie_op { diff --git a/hypervisor/include/arch/x86/guest/io_emul.h b/hypervisor/include/arch/x86/guest/io_emul.h index 178d3d5ba..7d3d28b1f 100644 --- a/hypervisor/include/arch/x86/guest/io_emul.h +++ b/hypervisor/include/arch/x86/guest/io_emul.h @@ -7,6 +7,7 @@ #ifndef IO_EMUL_H #define IO_EMUL_H +#include /* Define emulated port IO index */ #define PIC_MASTER_PIO_IDX 0U diff --git a/hypervisor/include/arch/x86/guest/trusty.h b/hypervisor/include/arch/x86/guest/trusty.h index 72f8b7406..c8568e478 100644 --- a/hypervisor/include/arch/x86/guest/trusty.h +++ b/hypervisor/include/arch/x86/guest/trusty.h @@ -20,6 +20,9 @@ #define NON_TRUSTY_PDPT_ENTRIES 511U +struct acrn_vcpu; +struct acrn_vm; + /* Structure of seed info */ struct seed_info { uint8_t cse_svn; diff --git a/hypervisor/include/arch/x86/guest/vcpu.h b/hypervisor/include/arch/x86/guest/vcpu.h index a42507717..ba503b2c4 100644 --- a/hypervisor/include/arch/x86/guest/vcpu.h +++ b/hypervisor/include/arch/x86/guest/vcpu.h @@ -59,6 +59,7 @@ #include #include #include +#include /** * @brief vcpu diff --git a/hypervisor/include/arch/x86/guest/vmcs.h b/hypervisor/include/arch/x86/guest/vmcs.h index 71c3922ec..fcc9b0e75 100644 --- a/hypervisor/include/arch/x86/guest/vmcs.h +++ b/hypervisor/include/arch/x86/guest/vmcs.h @@ -11,7 +11,9 @@ #define VM_FAIL -1 #ifndef ASSEMBLER +#include #include +#include #define VMX_VMENTRY_FAIL 0x80000000U diff --git a/hypervisor/include/arch/x86/io_req.h b/hypervisor/include/arch/x86/io_req.h index 32aad97c5..986c729ae 100644 --- a/hypervisor/include/arch/x86/io_req.h +++ b/hypervisor/include/arch/x86/io_req.h @@ -9,6 +9,7 @@ #include #include +#include /** * @brief I/O Emulation diff --git a/hypervisor/include/arch/x86/irq.h b/hypervisor/include/arch/x86/irq.h index 9eb323de0..d7d6b401a 100644 --- a/hypervisor/include/arch/x86/irq.h +++ b/hypervisor/include/arch/x86/irq.h @@ -9,6 +9,7 @@ #include #include +#include /** * @file arch/x86/irq.h @@ -63,6 +64,8 @@ #define IRQF_LEVEL (1U << 1U) /* 1: level trigger; 0: edge trigger */ #define IRQF_PT (1U << 2U) /* 1: for passthrough dev */ +struct acrn_vcpu; + /* * Definition of the stack frame layout */ diff --git a/hypervisor/include/arch/x86/lapic.h b/hypervisor/include/arch/x86/lapic.h index 77be03ce5..8bf8669db 100644 --- a/hypervisor/include/arch/x86/lapic.h +++ b/hypervisor/include/arch/x86/lapic.h @@ -7,6 +7,9 @@ #ifndef INTR_LAPIC_H #define INTR_LAPIC_H +#include +#include + /* intr_lapic_icr_delivery_mode */ #define INTR_LAPIC_ICR_FIXED 0x0U #define INTR_LAPIC_ICR_LP 0x1U diff --git a/hypervisor/include/arch/x86/mmu.h b/hypervisor/include/arch/x86/mmu.h index b117b8200..2df20f526 100644 --- a/hypervisor/include/arch/x86/mmu.h +++ b/hypervisor/include/arch/x86/mmu.h @@ -46,6 +46,7 @@ #include #include #include +#include /* Define cache line size (in bytes) */ #define CACHE_LINE_SIZE 64U diff --git a/hypervisor/include/arch/x86/pgtable.h b/hypervisor/include/arch/x86/pgtable.h index c7b7c70a0..d16e524ae 100644 --- a/hypervisor/include/arch/x86/pgtable.h +++ b/hypervisor/include/arch/x86/pgtable.h @@ -11,6 +11,8 @@ #ifndef PGTABLE_H #define PGTABLE_H +#include + #define PAGE_PRESENT (1UL << 0U) #define PAGE_RW (1UL << 1U) #define PAGE_USER (1UL << 2U) diff --git a/hypervisor/include/common/ptdev.h b/hypervisor/include/common/ptdev.h index 86778c560..6d635d072 100644 --- a/hypervisor/include/common/ptdev.h +++ b/hypervisor/include/common/ptdev.h @@ -6,6 +6,10 @@ #ifndef PTDEV_H #define PTDEV_H +#include +#include +#include +#include #define ACTIVE_FLAG 0x1U /* any non zero should be okay */ diff --git a/hypervisor/include/debug/console.h b/hypervisor/include/debug/console.h index 6a0705d77..bf79ec444 100644 --- a/hypervisor/include/debug/console.h +++ b/hypervisor/include/debug/console.h @@ -7,6 +7,8 @@ #ifndef CONSOLE_H #define CONSOLE_H +#include + /* Switching key combinations for shell and uart console */ #define GUEST_CONSOLE_TO_HV_SWITCH_KEY 0 /* CTRL + SPACE */