[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 1/2] target-i386: Fold -cpu ?cpuid, ?model outpu
From: |
Eduardo Habkost |
Subject: |
Re: [Qemu-devel] [PATCH 1/2] target-i386: Fold -cpu ?cpuid, ?model output into -cpu help, drop ?dump |
Date: |
Fri, 10 Aug 2012 11:40:16 -0300 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
On Fri, Aug 10, 2012 at 03:35:17PM +0100, Peter Maydell wrote:
> 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>
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 880cfea..d3a2b47 100644
> --- a/target-i386/cpu.c
> +++ b/target-i386/cpu.c
> @@ -1059,70 +1059,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);
> }
>
> int cpu_x86_register(X86CPU *cpu, const char *cpu_model)
> --
> 1.7.9.5
>
--
Eduardo