Message ID | 1344609318-24983-2-git-send-email-peter.maydell@linaro.org |
---|---|
State | Accepted |
Commit | 6cdf8854203e51a222c9ce94a8c8c568da834cf6 |
Headers | show |
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 <peter.maydell@linaro.org> Reviewed-by: Eduardo Habkost <ehabkost@redhat.com> > --- > 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 >
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)
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 <peter.maydell@linaro.org> --- target-i386/cpu.c | 64 +++++++++-------------------------------------------- 1 file changed, 11 insertions(+), 53 deletions(-)