mirror of
https://github.com/projectacrn/acrn-hypervisor.git
synced 2025-06-26 07:21:37 +00:00
hv: reduce cyclomatic complexity of create_vm()
This commit extract pm io handler registration code to register_pm_io_handler() to reduce the cyclomatic complexity of create_vm() in order to be complied with MISRA-C rules. Tracked-On: #3227 Signed-off-by: Yan, Like <like.yan@intel.com>
This commit is contained in:
parent
771f15cd6b
commit
32239cf55f
@ -393,6 +393,21 @@ static void prepare_epc_vm_memmap(struct acrn_vm *vm)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void register_pm_io_handler(struct acrn_vm *vm)
|
||||||
|
{
|
||||||
|
if (is_sos_vm(vm)) {
|
||||||
|
/* Load pm S state data */
|
||||||
|
if (vm_load_pm_s_state(vm) == 0) {
|
||||||
|
register_pm1ab_handler(vm);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Intercept the virtual pm port for RTVM */
|
||||||
|
if (is_rt_vm(vm)) {
|
||||||
|
register_rt_vm_pm1a_ctl_handler(vm);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @pre vm_id < CONFIG_MAX_VM_NUM && vm_config != NULL && rtn_vm != NULL
|
* @pre vm_id < CONFIG_MAX_VM_NUM && vm_config != NULL && rtn_vm != NULL
|
||||||
* @pre vm->state == VM_POWERED_OFF
|
* @pre vm->state == VM_POWERED_OFF
|
||||||
@ -471,12 +486,8 @@ int32_t create_vm(uint16_t vm_id, struct acrn_vm_config *vm_config, struct acrn_
|
|||||||
|
|
||||||
vm_setup_cpu_state(vm);
|
vm_setup_cpu_state(vm);
|
||||||
|
|
||||||
if (is_sos_vm(vm)) {
|
register_pm_io_handler(vm);
|
||||||
/* Load pm S state data */
|
|
||||||
if (vm_load_pm_s_state(vm) == 0) {
|
|
||||||
register_pm1ab_handler(vm);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (!is_lapic_pt_configured(vm)) {
|
if (!is_lapic_pt_configured(vm)) {
|
||||||
vpic_init(vm);
|
vpic_init(vm);
|
||||||
}
|
}
|
||||||
@ -501,11 +512,6 @@ int32_t create_vm(uint16_t vm_id, struct acrn_vm_config *vm_config, struct acrn_
|
|||||||
vioapic_init(vm);
|
vioapic_init(vm);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Intercept the virtual pm port for RTVM */
|
|
||||||
if (is_rt_vm(vm)) {
|
|
||||||
register_rt_vm_pm1a_ctl_handler(vm);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Populate return VM handle */
|
/* Populate return VM handle */
|
||||||
*rtn_vm = vm;
|
*rtn_vm = vm;
|
||||||
vm->sw.io_shared_page = NULL;
|
vm->sw.io_shared_page = NULL;
|
||||||
|
Loading…
Reference in New Issue
Block a user