qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH 1/7] target-i386: Fold -cpu ?cpuid, ?model outpu


From: Igor Mammedov
Subject: Re: [Qemu-devel] [PATCH 1/7] target-i386: Fold -cpu ?cpuid, ?model output into -cpu help, drop ?dump
Date: Mon, 10 Sep 2012 11:40:16 +0200

On Wed,  5 Sep 2012 17:41:07 -0300
Eduardo Habkost <address@hidden> wrote:

> From: Peter Maydell <address@hidden>
> 
> Commit c8057f95 (accidentally) disabled the ability to pass
> option strings starting with '?' to the target-specific
> cpu_list function, so the target-i386 specific "-cpu ?dump",
> "-cpu ?cpuid" and "-cpu ?model" stopped working.
> 
> Since these options are undocumented and not used by libvirt,
> simply drop them completely rather than reinstating them
> with new style syntax. Instead, we fold the ?model and ?cpuid
> output into the output of the plain "-cpu help" output. The
> detailed output produced by ?dump is dropped.
> 
> Signed-off-by: Peter Maydell <address@hidden>
> Signed-off-by: Eduardo Habkost <address@hidden>
> Reviewed-by: Eduardo Habkost <address@hidden>
> ---
>  target-i386/cpu.c | 64
> ++++++++++--------------------------------------------- 1 file changed, 11
> insertions(+), 53 deletions(-)
> 
> diff --git a/target-i386/cpu.c b/target-i386/cpu.c
> index 423e009..5c98064 100644
> --- a/target-i386/cpu.c
> +++ b/target-i386/cpu.c
> @@ -1073,70 +1073,28 @@ static void listflags(char *buf, int bufsize,
> uint32_t fbits, }
>  }
>  
> -/* generate CPU information:
> - * -?        list model names
> - * -?model   list model names/IDs
> - * -?dump    output all model (x86_def_t) data
> - * -?cpuid   list all recognized cpuid flag names
> - */
> +/* generate CPU information */
>  void x86_cpu_list(FILE *f, fprintf_function cpu_fprintf, const char
> *optarg) {
> -    unsigned char model = !strcmp("?model", optarg);
> -    unsigned char dump = !strcmp("?dump", optarg);
> -    unsigned char cpuid = !strcmp("?cpuid", optarg);
>      x86_def_t *def;
>      char buf[256];
>  
> -    if (cpuid) {
> -        (*cpu_fprintf)(f, "Recognized CPUID flags:\n");
> -        listflags(buf, sizeof (buf), (uint32_t)~0, feature_name, 1);
> -        (*cpu_fprintf)(f, "  f_edx: %s\n", buf);
> -        listflags(buf, sizeof (buf), (uint32_t)~0, ext_feature_name, 1);
> -        (*cpu_fprintf)(f, "  f_ecx: %s\n", buf);
> -        listflags(buf, sizeof (buf), (uint32_t)~0, ext2_feature_name, 1);
> -        (*cpu_fprintf)(f, "  extf_edx: %s\n", buf);
> -        listflags(buf, sizeof (buf), (uint32_t)~0, ext3_feature_name, 1);
> -        (*cpu_fprintf)(f, "  extf_ecx: %s\n", buf);
> -        return;
> -    }
>      for (def = x86_defs; def; def = def->next) {
>          snprintf(buf, sizeof (buf), def->flags ? "[%s]": "%s", def->name);
> -        if (model || dump) {
> -            (*cpu_fprintf)(f, "x86 %16s  %-48s\n", buf, def->model_id);
> -        } else {
> -            (*cpu_fprintf)(f, "x86 %16s\n", buf);
> -        }
> -        if (dump) {
> -            memcpy(buf, &def->vendor1, sizeof (def->vendor1));
> -            memcpy(buf + 4, &def->vendor2, sizeof (def->vendor2));
> -            memcpy(buf + 8, &def->vendor3, sizeof (def->vendor3));
> -            buf[12] = '\0';
> -            (*cpu_fprintf)(f,
> -                "  family %d model %d stepping %d level %d xlevel 0x%x"
> -                " vendor \"%s\"\n",
> -                def->family, def->model, def->stepping, def->level,
> -                def->xlevel, buf);
> -            listflags(buf, sizeof (buf), def->features, feature_name, 0);
> -            (*cpu_fprintf)(f, "  feature_edx %08x (%s)\n", def->features,
> -                buf);
> -            listflags(buf, sizeof (buf), def->ext_features,
> ext_feature_name,
> -                0);
> -            (*cpu_fprintf)(f, "  feature_ecx %08x (%s)\n",
> def->ext_features,
> -                buf);
> -            listflags(buf, sizeof (buf), def->ext2_features,
> ext2_feature_name,
> -                0);
> -            (*cpu_fprintf)(f, "  extfeature_edx %08x (%s)\n",
> -                def->ext2_features, buf);
> -            listflags(buf, sizeof (buf), def->ext3_features,
> ext3_feature_name,
> -                0);
> -            (*cpu_fprintf)(f, "  extfeature_ecx %08x (%s)\n",
> -                def->ext3_features, buf);
> -            (*cpu_fprintf)(f, "\n");
> -        }
> +        (*cpu_fprintf)(f, "x86 %16s  %-48s\n", buf, def->model_id);
>      }
>      if (kvm_enabled()) {
>          (*cpu_fprintf)(f, "x86 %16s\n", "[host]");
>      }
> +    (*cpu_fprintf)(f, "\nRecognized CPUID flags:\n");
> +    listflags(buf, sizeof(buf), (uint32_t)~0, feature_name, 1);
> +    (*cpu_fprintf)(f, "  f_edx: %s\n", buf);
> +    listflags(buf, sizeof(buf), (uint32_t)~0, ext_feature_name, 1);
> +    (*cpu_fprintf)(f, "  f_ecx: %s\n", buf);
> +    listflags(buf, sizeof(buf), (uint32_t)~0, ext2_feature_name, 1);
> +    (*cpu_fprintf)(f, "  extf_edx: %s\n", buf);
> +    listflags(buf, sizeof(buf), (uint32_t)~0, ext3_feature_name, 1);
> +    (*cpu_fprintf)(f, "  extf_ecx: %s\n", buf);
>  }
>  
>  CpuDefinitionInfoList *arch_query_cpu_definitions(Error **errp)
Reviewed-by: Igor Mammedov <address@hidden>



reply via email to

[Prev in Thread] Current Thread [Next in Thread]