From 97b4e332fd0376edb63bae4ce6c98389bab3d1cb Mon Sep 17 00:00:00 2001 From: Victor Sun Date: Wed, 18 Apr 2018 16:00:04 +0800 Subject: [PATCH] DM Cx: code cleanup for getting cpu state cnt Then we could use a common interface to get cx count. Signed-off-by: Victor Sun Acked-by: Kevin Tian --- hw/acpi/acpi_pm.c | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/hw/acpi/acpi_pm.c b/hw/acpi/acpi_pm.c index c2a2a2329..a4fc1273e 100644 --- a/hw/acpi/acpi_pm.c +++ b/hw/acpi/acpi_pm.c @@ -38,20 +38,25 @@ #include "dm.h" #include "acpi.h" -static uint8_t get_vcpu_px_cnt(struct vmctx *ctx, int vcpu_id) +static inline int get_vcpu_pm_info(struct vmctx *ctx, int vcpu_id, + uint64_t pm_type, uint64_t *pm_info) { - uint64_t pm_ioctl_buf = 0; - enum pm_cmd_type cmd_type = PMCMD_GET_PX_CNT; - - pm_ioctl_buf = ((ctx->vmid << PMCMD_VMID_SHIFT) & PMCMD_VMID_MASK) + *pm_info = ((ctx->vmid << PMCMD_VMID_SHIFT) & PMCMD_VMID_MASK) | ((vcpu_id << PMCMD_VCPUID_SHIFT) & PMCMD_VCPUID_MASK) - | cmd_type; + | (pm_type & PMCMD_TYPE_MASK); - if (vm_get_cpu_state(ctx, &pm_ioctl_buf)) { + return vm_get_cpu_state(ctx, pm_info); +} + +static inline uint8_t get_vcpu_px_cnt(struct vmctx *ctx, int vcpu_id) +{ + uint64_t px_cnt; + + if (get_vcpu_pm_info(ctx, vcpu_id, PMCMD_GET_PX_CNT, &px_cnt)) { return 0; } - return (uint8_t)pm_ioctl_buf; + return (uint8_t)px_cnt; } static int get_vcpu_px_data(struct vmctx *ctx, int vcpu_id,