qdev: add a qdev_get_type() function and expose as a 'type' property

Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
This commit is contained in:
Anthony Liguori 2011-12-12 14:29:43 -06:00
parent 6a146eba33
commit cd34d667d4
2 changed files with 21 additions and 0 deletions

View File

@ -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++;

View File

@ -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