mirror of
https://github.com/xemu-project/xemu.git
synced 2024-11-23 19:49:43 +00:00
qdev: add creation function that may fail
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
This commit is contained in:
parent
5c81e4ca9e
commit
0bcdeda7e4
14
hw/qdev.c
14
hw/qdev.c
@ -105,6 +105,18 @@ static DeviceState *qdev_create_from_info(BusState *bus, DeviceInfo *info)
|
||||
and allows properties to be set. qdev_init should be called to
|
||||
initialize the actual device emulation. */
|
||||
DeviceState *qdev_create(BusState *bus, const char *name)
|
||||
{
|
||||
DeviceState *dev;
|
||||
|
||||
dev = qdev_try_create(bus, name);
|
||||
if (!dev) {
|
||||
hw_error("Unknown device '%s' for bus '%s'\n", name, bus->info->name);
|
||||
}
|
||||
|
||||
return dev;
|
||||
}
|
||||
|
||||
DeviceState *qdev_try_create(BusState *bus, const char *name)
|
||||
{
|
||||
DeviceInfo *info;
|
||||
|
||||
@ -114,7 +126,7 @@ DeviceState *qdev_create(BusState *bus, const char *name)
|
||||
|
||||
info = qdev_find_info(bus->info, name);
|
||||
if (!info) {
|
||||
hw_error("Unknown device '%s' for bus '%s'\n", name, bus->info->name);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
return qdev_create_from_info(bus, info);
|
||||
|
@ -122,6 +122,7 @@ typedef struct GlobalProperty {
|
||||
/*** Board API. This should go away once we have a machine config file. ***/
|
||||
|
||||
DeviceState *qdev_create(BusState *bus, const char *name);
|
||||
DeviceState *qdev_try_create(BusState *bus, const char *name);
|
||||
int qdev_device_help(QemuOpts *opts);
|
||||
DeviceState *qdev_device_add(QemuOpts *opts);
|
||||
int qdev_init(DeviceState *dev) QEMU_WARN_UNUSED_RESULT;
|
||||
|
Loading…
Reference in New Issue
Block a user