Lines Matching refs:bus

58 static void bus_remove_child(BusState *bus, DeviceState *child)  in bus_remove_child()  argument
62 QTAILQ_FOREACH(kid, &bus->children, sibling) { in bus_remove_child()
67 QTAILQ_REMOVE_RCU(&bus->children, kid, sibling); in bus_remove_child()
69 bus->num_children--; in bus_remove_child()
72 object_property_del(OBJECT(bus), name); in bus_remove_child()
81 static void bus_add_child(BusState *bus, DeviceState *child) in bus_add_child() argument
86 bus->num_children++; in bus_add_child()
87 kid->index = bus->max_index++; in bus_add_child()
91 QTAILQ_INSERT_HEAD_RCU(&bus->children, kid, sibling); in bus_add_child()
95 object_property_add_link(OBJECT(bus), name, in bus_add_child()
102 static bool bus_check_address(BusState *bus, DeviceState *child, Error **errp) in bus_check_address() argument
104 BusClass *bc = BUS_GET_CLASS(bus); in bus_check_address()
105 return !bc->check_address || bc->check_address(bus, child, errp); in bus_check_address()
108 bool qdev_set_parent_bus(DeviceState *dev, BusState *bus, Error **errp) in qdev_set_parent_bus() argument
113 assert(dc->bus_type && object_dynamic_cast(OBJECT(bus), dc->bus_type)); in qdev_set_parent_bus()
115 if (!bus_check_address(bus, dev, errp)) { in qdev_set_parent_bus()
122 OBJECT(bus), object_get_typename(OBJECT(bus))); in qdev_set_parent_bus()
133 dev->parent_bus = bus; in qdev_set_parent_bus()
134 object_ref(OBJECT(bus)); in qdev_set_parent_bus()
135 bus_add_child(bus, dev); in qdev_set_parent_bus()
137 resettable_change_parent(OBJECT(dev), OBJECT(bus), in qdev_set_parent_bus()
257 BusState *bus; in device_reset_child_foreach() local
259 QLIST_FOREACH(bus, &dev->child_bus, sibling) { in device_reset_child_foreach()
260 cb(OBJECT(bus), opaque, type); in device_reset_child_foreach()
264 bool qdev_realize(DeviceState *dev, BusState *bus, Error **errp) in qdev_realize() argument
268 if (bus) { in qdev_realize()
269 if (!qdev_set_parent_bus(dev, bus, errp)) { in qdev_realize()
279 bool qdev_realize_and_unref(DeviceState *dev, BusState *bus, Error **errp) in qdev_realize_and_unref() argument
283 ret = qdev_realize(dev, bus, errp); in qdev_realize_and_unref()
324 BusState *bus; in qdev_get_child_bus() local
327 bus = (BusState *)object_dynamic_cast(child, TYPE_BUS); in qdev_get_child_bus()
328 if (bus) { in qdev_get_child_bus()
329 return bus; in qdev_get_child_bus()
332 QLIST_FOREACH(bus, &dev->child_bus, sibling) { in qdev_get_child_bus()
333 if (strcmp(name, bus->name) == 0) { in qdev_get_child_bus()
334 return bus; in qdev_get_child_bus()
345 BusState *bus; in qdev_walk_children() local
355 QLIST_FOREACH(bus, &dev->child_bus, sibling) { in qdev_walk_children()
356 err = qbus_walk_children(bus, pre_devfn, pre_busfn, in qdev_walk_children()
373 DeviceState *qdev_find_recursive(BusState *bus, const char *id) in qdev_find_recursive() argument
380 QTAILQ_FOREACH_RCU(kid, &bus->children, sibling) { in qdev_find_recursive()
459 BusState *bus; in device_set_realized() local
533 QLIST_FOREACH(bus, &dev->child_bus, sibling) { in device_set_realized()
534 if (!qbus_realize(bus, errp)) { in device_set_realized()
576 QLIST_FOREACH(bus, &dev->child_bus, sibling) { in device_set_realized()
577 qbus_unrealize(bus); in device_set_realized()
593 QLIST_FOREACH(bus, &dev->child_bus, sibling) { in device_set_realized()
594 qbus_unrealize(bus); in device_set_realized()
710 BusState *bus; in device_unparent() local
716 bus = QLIST_FIRST(&dev->child_bus); in device_unparent()
717 object_unparent(OBJECT(bus)); in device_unparent()