mirror of
https://github.com/xemu-project/xemu.git
synced 2025-02-20 04:11:28 +00:00
qdev: remove duplication between qbus_create and qbus_create_inplace
Move the common part to qbus_realize. Acked-by: Andreas Färber <afaerber@suse.de> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
This commit is contained in:
parent
d5286af5ef
commit
013e118247
18
hw/qdev.c
18
hw/qdev.c
@ -390,14 +390,16 @@ DeviceState *qdev_find_recursive(BusState *bus, const char *id)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static void qbus_realize(BusState *bus)
|
||||
static void qbus_realize(BusState *bus, DeviceState *parent, const char *name)
|
||||
{
|
||||
const char *typename = object_get_typename(OBJECT(bus));
|
||||
char *buf;
|
||||
int i,len;
|
||||
|
||||
if (bus->name) {
|
||||
/* use supplied name */
|
||||
bus->parent = parent;
|
||||
|
||||
if (name) {
|
||||
bus->name = g_strdup(name);
|
||||
} else if (bus->parent && bus->parent->id) {
|
||||
/* parent device has id -> use it for bus name */
|
||||
len = strlen(bus->parent->id) + 16;
|
||||
@ -430,10 +432,7 @@ void qbus_create_inplace(BusState *bus, const char *typename,
|
||||
DeviceState *parent, const char *name)
|
||||
{
|
||||
object_initialize(bus, typename);
|
||||
|
||||
bus->parent = parent;
|
||||
bus->name = name ? g_strdup(name) : NULL;
|
||||
qbus_realize(bus);
|
||||
qbus_realize(bus, parent, name);
|
||||
}
|
||||
|
||||
BusState *qbus_create(const char *typename, DeviceState *parent, const char *name)
|
||||
@ -441,10 +440,7 @@ BusState *qbus_create(const char *typename, DeviceState *parent, const char *nam
|
||||
BusState *bus;
|
||||
|
||||
bus = BUS(object_new(typename));
|
||||
|
||||
bus->parent = parent;
|
||||
bus->name = name ? g_strdup(name) : NULL;
|
||||
qbus_realize(bus);
|
||||
qbus_realize(bus, parent, name);
|
||||
|
||||
return bus;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user