diff options
-rw-r--r-- | hw/qdev.c | 12 | ||||
-rw-r--r-- | hw/qdev.h | 3 |
2 files changed, 15 insertions, 0 deletions
@@ -50,6 +50,7 @@ static DeviceInfo *qdev_find_info(BusInfo *bus_info, const char *name) { DeviceInfo *info; + /* first check device names */ for (info = device_info_list; info != NULL; info = info->next) { if (bus_info && info->bus_info != bus_info) continue; @@ -57,6 +58,17 @@ static DeviceInfo *qdev_find_info(BusInfo *bus_info, const char *name) continue; return info; } + + /* failing that check the aliases */ + for (info = device_info_list; info != NULL; info = info->next) { + if (bus_info && info->bus_info != bus_info) + continue; + if (!info->alias) + continue; + if (strcmp(info->alias, name) != 0) + continue; + return info; + } return NULL; } @@ -95,8 +95,11 @@ typedef void (*SCSIAttachFn)(DeviceState *host, BlockDriverState *bdrv, struct DeviceInfo { const char *name; + const char *alias; + const char *desc; size_t size; Property *props; + int no_user; /* Private to qdev / bus. */ qdev_initfn init; |