HV: vlapic: minimize explicit casts by adjusting types

To minimize explicit casts, this patch adjusts the types of function parameters
and structure fields related to vlapic and update the types in the internal
implementation accordingly.

Signed-off-by: Junjie Mao <junjie.mao@intel.com>
Acked-by: Dong Eddie <eddie.dong@intel.com>
This commit is contained in:
Junjie Mao
2018-07-13 17:11:27 +08:00
committed by lijinxia
parent e08a58ebe6
commit e3452cf804
6 changed files with 103 additions and 85 deletions

View File

@@ -16,6 +16,8 @@
#ifndef ASSEMBLER
#include <mmu.h>
#define foreach_vcpu(idx, vm, vcpu) \
for (idx = 0U, vcpu = vm->hw.vcpu_array[idx]; \
(idx < vm->hw.num_vcpus) && (vcpu != NULL); \
@@ -110,6 +112,7 @@ int wrmsr_vmexit_handler(struct vcpu *vcpu);
void init_msr_emulation(struct vcpu *vcpu);
extern const char vm_exit[];
struct run_context;
int vmx_vmrun(struct run_context *context, int ops, int ibrs);
int load_guest(struct vm *vm, struct vcpu *vcpu);

View File

@@ -77,6 +77,8 @@
#ifndef ASSEMBLER
#include <guest.h>
enum vcpu_state {
VCPU_INIT,
VCPU_RUNNING,
@@ -217,7 +219,7 @@ struct vcpu_arch {
uint32_t inst_len;
/* Information related to secondary / AP VCPU start-up */
uint8_t cpu_mode;
enum vm_cpu_mode cpu_mode;
uint8_t nr_sipi;
uint32_t sipi_vector;

View File

@@ -63,9 +63,9 @@ int vlapic_rdmsr(struct vcpu *vcpu, uint32_t msr, uint64_t *rval);
int vlapic_wrmsr(struct vcpu *vcpu, uint32_t msr, uint64_t wval);
int vlapic_read_mmio_reg(struct vcpu *vcpu, uint64_t gpa,
uint64_t *rval, int size);
uint64_t *rval, uint8_t size);
int vlapic_write_mmio_reg(struct vcpu *vcpu, uint64_t gpa,
uint64_t wval, int size);
uint64_t wval, uint8_t size);
/*
* Signals to the LAPIC that an interrupt at 'vector' needs to be generated
@@ -96,7 +96,7 @@ int vlapic_set_local_intr(struct vm *vm, uint16_t vcpu_id, uint32_t vector);
int vlapic_intr_msi(struct vm *vm, uint64_t addr, uint64_t msg);
void vlapic_deliver_intr(struct vm *vm, bool level, uint32_t dest,
bool phys, int delmode, int vec);
bool phys, uint32_t delmode, uint32_t vec);
/* Reset the trigger-mode bits for all vectors to be edge-triggered */
void vlapic_reset_tmr(struct vlapic *vlapic);
@@ -106,7 +106,7 @@ void vlapic_reset_tmr(struct vlapic *vlapic);
* the (dest,phys,delmode) tuple resolves to an interrupt being delivered to
* this 'vlapic'.
*/
void vlapic_set_tmr_one_vec(struct vlapic *vlapic, int delmode,
void vlapic_set_tmr_one_vec(struct vlapic *vlapic, uint32_t delmode,
uint32_t vector, bool level);
void

View File

@@ -134,7 +134,7 @@ struct vm {
enum vm_state state; /* VM state */
void *vuart; /* Virtual UART */
struct vpic *vpic; /* Virtual PIC */
uint32_t vpic_wire_mode;
enum vpic_wire_mode vpic_wire_mode;
struct iommu_domain *iommu_domain; /* iommu domain of this VM */
struct list_head list; /* list of VM */
spinlock_t spinlock; /* Spin-lock used to protect VM modifications */

View File

@@ -432,7 +432,7 @@ int vmx_write_cr0(struct vcpu *vcpu, uint64_t cr0);
int vmx_write_cr3(struct vcpu *vcpu, uint64_t cr3);
int vmx_write_cr4(struct vcpu *vcpu, uint64_t cr4);
static inline uint8_t get_vcpu_mode(struct vcpu *vcpu)
static inline enum vm_cpu_mode get_vcpu_mode(struct vcpu *vcpu)
{
return vcpu->arch_vcpu.cpu_mode;
}