On 5/28/20 9:37 PM, Roman Bolshakov wrote:
> "sysemu/hvf.h" is intended for inclusion in generic code. However it
> also contains several hvf definitions and declarations, including
> HVFState that are used only inside "hvf.c". "hvf-i386.h" would be more
> appropriate place to define HVFState as it's only included by "hvf.c"
> and "x86_task.c".
> 
> Signed-off-by: Roman Bolshakov <r.bolsha...@yadro.com>
> ---
>  include/sysemu/hvf.h       | 37 -------------------------------------
>  target/i386/hvf/hvf-i386.h | 35 +++++++++++++++++++++++++++++++++++
>  2 files changed, 35 insertions(+), 37 deletions(-)
> 
> diff --git a/include/sysemu/hvf.h b/include/sysemu/hvf.h
> index d211e808e9..30a565ab73 100644
> --- a/include/sysemu/hvf.h
> +++ b/include/sysemu/hvf.h
> @@ -15,8 +15,6 @@
>  
>  #include "cpu.h"
>  #include "qemu/bitops.h"
> -#include "exec/memory.h"
> -#include "sysemu/accel.h"
>  
>  extern bool hvf_allowed;
>  #ifdef CONFIG_HVF
> @@ -32,41 +30,6 @@ uint32_t hvf_get_supported_cpuid(uint32_t func, uint32_t 
> idx,
>  #define hvf_get_supported_cpuid(func, idx, reg) 0
>  #endif
>  
> -/* hvf_slot flags */
> -#define HVF_SLOT_LOG (1 << 0)
> -
> -typedef struct hvf_slot {
> -    uint64_t start;
> -    uint64_t size;
> -    uint8_t *mem;
> -    int slot_id;
> -    uint32_t flags;
> -    MemoryRegion *region;
> -} hvf_slot;
> -
> -typedef struct hvf_vcpu_caps {
> -    uint64_t vmx_cap_pinbased;
> -    uint64_t vmx_cap_procbased;
> -    uint64_t vmx_cap_procbased2;
> -    uint64_t vmx_cap_entry;
> -    uint64_t vmx_cap_exit;
> -    uint64_t vmx_cap_preemption_timer;
> -} hvf_vcpu_caps;
> -
> -typedef struct HVFState {
> -    AccelState parent;
> -    hvf_slot slots[32];
> -    int num_slots;
> -
> -    hvf_vcpu_caps *hvf_caps;
> -} HVFState;
> -extern HVFState *hvf_state;
> -
> -void hvf_set_phys_mem(MemoryRegionSection *, bool);
> -void hvf_handle_io(CPUArchState *, uint16_t, void *,
> -                  int, int, int);
> -hvf_slot *hvf_find_overlap_slot(uint64_t, uint64_t);
> -
>  /* Disable HVF if |disable| is 1, otherwise, enable it iff it is supported by
>   * the host CPU. Use hvf_enabled() after this to get the result. */
>  void hvf_disable(int disable);
> diff --git a/target/i386/hvf/hvf-i386.h b/target/i386/hvf/hvf-i386.h
> index 15ee4835cf..7cdf256649 100644
> --- a/target/i386/hvf/hvf-i386.h
> +++ b/target/i386/hvf/hvf-i386.h
> @@ -16,6 +16,7 @@
>  #ifndef HVF_I386_H
>  #define HVF_I386_H
>  
> +#include "sysemu/accel.h"
>  #include "sysemu/hvf.h"
>  #include "cpu.h"
>  #include "x86.h"
> @@ -37,6 +38,40 @@ struct hvf_state {
>      uint64_t mem_quota;
>  };
>  
> +/* hvf_slot flags */
> +#define HVF_SLOT_LOG (1 << 0)
> +
> +typedef struct hvf_slot {
> +    uint64_t start;
> +    uint64_t size;
> +    uint8_t *mem;
> +    int slot_id;
> +    uint32_t flags;
> +    MemoryRegion *region;
> +} hvf_slot;
> +
> +typedef struct hvf_vcpu_caps {
> +    uint64_t vmx_cap_pinbased;
> +    uint64_t vmx_cap_procbased;
> +    uint64_t vmx_cap_procbased2;
> +    uint64_t vmx_cap_entry;
> +    uint64_t vmx_cap_exit;
> +    uint64_t vmx_cap_preemption_timer;
> +} hvf_vcpu_caps;
> +
> +typedef struct HVFState {
> +    AccelState parent;
> +    hvf_slot slots[32];
> +    int num_slots;
> +
> +    hvf_vcpu_caps *hvf_caps;
> +} HVFState;
> +extern HVFState *hvf_state;
> +
> +void hvf_set_phys_mem(MemoryRegionSection *, bool);
> +void hvf_handle_io(CPUArchState *, uint16_t, void *, int, int, int);
> +hvf_slot *hvf_find_overlap_slot(uint64_t, uint64_t);
> +
>  #ifdef NEED_CPU_H
>  /* Functions exported to host specific mode */
>  
> 

Reviewed-by: Claudio Fontana <cfont...@suse.de>

Reply via email to