Gerd Hoffmann <kra...@redhat.com> writes: > Print a warning for deprecated and obsolete devices. > Also add support state to device listing. > > Signed-off-by: Gerd Hoffmann <kra...@redhat.com> > --- > hw/core/qdev.c | 8 +++++++- > qdev-monitor.c | 9 +++++++++ > 2 files changed, 16 insertions(+), 1 deletion(-) > > diff --git a/hw/core/qdev.c b/hw/core/qdev.c > index 6b3cc55b27..6205522c3e 100644 > --- a/hw/core/qdev.c > +++ b/hw/core/qdev.c > @@ -133,11 +133,17 @@ DeviceState *qdev_create(BusState *bus, const char > *name) > > DeviceState *qdev_try_create(BusState *bus, const char *type) > { > + ObjectClass *oc; > DeviceState *dev; > > - if (object_class_by_name(type) == NULL) { > + oc = object_class_by_name(type); > + if (oc == NULL) { > return NULL; > } > + if (qemu_is_deprecated(oc) || > + qemu_is_obsolete(oc)) { > + qemu_warn_support_state("device", type, oc);
Looks like this: $ qemu-system-x86_64 -nodefaults -S -display none -device cirrus-vga qemu-system-x86_64: -device cirrus-vga: warning: device cirrus-vga is obsolete (use "-vga std" instead, see https://www.kraxel.org/blog/2014/10/qemu-using-cirrus-considered-harmful/) I'd prefer: $ qemu-system-x86_64 -nodefaults -S -display none -device cirrus-vga qemu-system-x86_64: -device cirrus-vga: warning: device cirrus-vga is obsolete Use "-vga std" instead, see https://www.kraxel.org/blog/2014/10/qemu-using-cirrus-considered-harmful/ The obvious way to get it: void warn_support_state(const char *type, const char *name, ObjectClass *oc) { const char *help = oc->supported.help; warn_report("%s %s is %s", type, name, SupportState_str(oc->supported.state)); if (help) { error_printf("%s\n", help); } } with the ->help suitably capitalized and formatted. That should make qemu_warn_support_state() usable for the previous patch, too. Note I scratched the qemu_ prefix. Matter of taste, I guess. > + } > dev = DEVICE(object_new(type)); > if (!dev) { > return NULL; [...]