From 3320e56e54021acab2d6eeb4797ddac30c2411ef Mon Sep 17 00:00:00 2001 From: Gerd Hoffmann Date: Wed, 15 Jul 2009 13:43:33 +0200 Subject: [PATCH] qdev: add no_user, alias and desc no_user: prevent users from adding certain devices. desc: description of the device. alias: to allow user friendly shortcuts on the command line, i.e. -device usbmouse instead of -device "QEMU USB Mouse" or -device lsi instead of -device lsi53c895a Signed-off-by: Gerd Hoffmann Signed-off-by: Anthony Liguori --- hw/qdev.c | 12 ++++++++++++ hw/qdev.h | 3 +++ 2 files changed, 15 insertions(+) diff --git a/hw/qdev.c b/hw/qdev.c index cca242f8ee..b76ba5bb3e 100644 --- a/hw/qdev.c +++ b/hw/qdev.c @@ -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; } diff --git a/hw/qdev.h b/hw/qdev.h index a8a4bcb2e7..73d19fa699 100644 --- a/hw/qdev.h +++ b/hw/qdev.h @@ -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; -- 2.11.4.GIT