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.mayd...@linaro.org>
Reviewed-by: Eduardo Habkost <ehabk...@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 > -- Eduardo