diff options
| author | Anthony Liguori <aliguori@us.ibm.com> | 2011-12-12 14:29:43 -0600 |
|---|---|---|
| committer | Anthony Liguori <aliguori@us.ibm.com> | 2011-12-15 09:20:49 -0600 |
| commit | cd34d667d448bec91c81f4e46f9e7eb4e4857f6f (patch) | |
| tree | 2c09ce02e084d5555942d8d21ca59de386dd1847 | |
| parent | 6a146eba33159cb97d28457d409d81066cbefb09 (diff) | |
| download | focaccia-qemu-cd34d667d448bec91c81f4e46f9e7eb4e4857f6f.tar.gz focaccia-qemu-cd34d667d448bec91c81f4e46f9e7eb4e4857f6f.zip | |
qdev: add a qdev_get_type() function and expose as a 'type' property
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
| -rw-r--r-- | hw/qdev.c | 7 | ||||
| -rw-r--r-- | hw/qdev.h | 14 |
2 files changed, 21 insertions, 0 deletions
diff --git a/hw/qdev.c b/hw/qdev.c index 0fc20fc6a8..83913c72f2 100644 --- a/hw/qdev.c +++ b/hw/qdev.c @@ -110,6 +110,8 @@ static DeviceState *qdev_create_from_info(BusState *bus, DeviceInfo *info) qdev_property_add_legacy(dev, prop, NULL); } + qdev_property_add_str(dev, "type", qdev_get_type, NULL, NULL); + return dev; } @@ -1031,6 +1033,11 @@ char* qdev_get_fw_dev_path(DeviceState *dev) return strdup(path); } +char *qdev_get_type(DeviceState *dev, Error **errp) +{ + return g_strdup(dev->info->name); +} + void qdev_ref(DeviceState *dev) { dev->ref++; diff --git a/hw/qdev.h b/hw/qdev.h index 9faf2ee18b..6e184278f4 100644 --- a/hw/qdev.h +++ b/hw/qdev.h @@ -596,4 +596,18 @@ void qdev_property_add_str(DeviceState *dev, const char *name, void (*set)(DeviceState *, const char *, Error **), Error **errp); +/** + * @qdev_get_type + * + * Returns the string representation of the type of this object. + * + * @dev - the device + * + * @errp - if an error occurs, a pointer to an area to store the error + * + * Returns: a string representing the type. This must be freed by the caller + * with g_free(). + */ +char *qdev_get_type(DeviceState *dev, Error **errp); + #endif |