From b6b611446077537b542c20804d3c850daff27845 Mon Sep 17 00:00:00 2001 From: Gerd Hoffmann Date: Wed, 15 Jul 2009 13:48:21 +0200 Subject: qdev/compat: compat property infrastructure. This add support for switching devices into a compatibility mode using device properties. Machine types can have a list of properties for specific devices attached to allow the easy creation of machine types compatible to older qemu versions. Signed-off-by: Gerd Hoffmann Signed-off-by: Anthony Liguori --- hw/qdev-properties.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'hw/qdev-properties.c') diff --git a/hw/qdev-properties.c b/hw/qdev-properties.c index 8b0d0ffce7..06c25aff71 100644 --- a/hw/qdev-properties.c +++ b/hw/qdev-properties.c @@ -244,3 +244,26 @@ void qdev_prop_set_defaults(DeviceState *dev, Property *props) } } +static CompatProperty *compat_props; + +void qdev_prop_register_compat(CompatProperty *props) +{ + compat_props = props; +} + +void qdev_prop_set_compat(DeviceState *dev) +{ + CompatProperty *prop; + + if (!compat_props) { + return; + } + for (prop = compat_props; prop->driver != NULL; prop++) { + if (strcmp(dev->info->name, prop->driver) != 0) { + continue; + } + if (qdev_prop_parse(dev, prop->property, prop->value) != 0) { + abort(); + } + } +} -- cgit v1.2.3-55-g7522