mirror of
https://github.com/projectacrn/acrn-hypervisor.git
synced 2025-09-23 09:47:44 +00:00
hv: treewide: fix 'Array has no bounds specified'
- explicitly declare the array size to fix the violation 'Array has no bounds specified' - minor changes for comments style v1 -> v2: * add the definition for exit reasons from 0x39 to 0x40 based on "SDM APPENDIX C VMX BASIC EXIT REASONS" Signed-off-by: Shiqing Gao <shiqing.gao@intel.com> Acked-by: Anthony Xu <anthony.xu@intel.com>
This commit is contained in:
@@ -15,7 +15,7 @@
|
||||
#define EXCEPTION_CLASS_CONT 2
|
||||
#define EXCEPTION_CLASS_PF 3
|
||||
|
||||
static const uint16_t exception_type[] = {
|
||||
static const uint16_t exception_type[32] = {
|
||||
[0] = VMX_INT_TYPE_HW_EXP,
|
||||
[1] = VMX_INT_TYPE_HW_EXP,
|
||||
[2] = VMX_INT_TYPE_HW_EXP,
|
||||
|
@@ -6,10 +6,17 @@
|
||||
|
||||
#include <hypervisor.h>
|
||||
|
||||
/*
|
||||
* According to "SDM APPENDIX C VMX BASIC EXIT REASONS",
|
||||
* there are 65 Basic Exit Reasons.
|
||||
*/
|
||||
#define NR_VMX_EXIT_REASONS 65U
|
||||
|
||||
static int unhandled_vmexit_handler(struct vcpu *vcpu);
|
||||
static int xsetbv_vmexit_handler(struct vcpu *vcpu);
|
||||
|
||||
/* VM Dispatch table for Exit condition handling */
|
||||
static const struct vm_exit_dispatch dispatch_table[] = {
|
||||
static const struct vm_exit_dispatch dispatch_table[NR_VMX_EXIT_REASONS] = {
|
||||
[VMX_EXIT_REASON_EXCEPTION_OR_NMI] = {
|
||||
.handler = exception_vmexit_handler},
|
||||
[VMX_EXIT_REASON_EXTERNAL_INTERRUPT] = {
|
||||
@@ -125,7 +132,23 @@ static const struct vm_exit_dispatch dispatch_table[] = {
|
||||
.handler = xsetbv_vmexit_handler},
|
||||
[VMX_EXIT_REASON_APIC_WRITE] = {
|
||||
.handler = apic_write_vmexit_handler,
|
||||
.need_exit_qualification = 1}
|
||||
.need_exit_qualification = 1},
|
||||
[VMX_EXIT_REASON_RDRAND] = {
|
||||
.handler = unhandled_vmexit_handler},
|
||||
[VMX_EXIT_REASON_INVPCID] = {
|
||||
.handler = unhandled_vmexit_handler},
|
||||
[VMX_EXIT_REASON_VMFUNC] = {
|
||||
.handler = unhandled_vmexit_handler},
|
||||
[VMX_EXIT_REASON_ENCLS] = {
|
||||
.handler = unhandled_vmexit_handler},
|
||||
[VMX_EXIT_REASON_RDSEED] = {
|
||||
.handler = unhandled_vmexit_handler},
|
||||
[VMX_EXIT_REASON_PAGE_MODIFICATION_LOG_FULL] = {
|
||||
.handler = unhandled_vmexit_handler},
|
||||
[VMX_EXIT_REASON_XSAVES] = {
|
||||
.handler = unhandled_vmexit_handler},
|
||||
[VMX_EXIT_REASON_XRSTORS] = {
|
||||
.handler = unhandled_vmexit_handler}
|
||||
};
|
||||
|
||||
int vmexit_handler(struct vcpu *vcpu)
|
||||
@@ -242,7 +265,7 @@ int cr_access_vmexit_handler(struct vcpu *vcpu)
|
||||
uint64_t *regptr;
|
||||
struct run_context *cur_context =
|
||||
&vcpu->arch_vcpu.contexts[vcpu->arch_vcpu.cur_context];
|
||||
static const int reg_trans_tab[] = {
|
||||
static const int reg_trans_tab[16] = {
|
||||
[0] = CPU_CONTEXT_INDEX_RAX,
|
||||
[1] = CPU_CONTEXT_INDEX_RCX,
|
||||
[2] = CPU_CONTEXT_INDEX_RDX,
|
||||
|
Reference in New Issue
Block a user