static void isa_ipmi_bt_realize(DeviceState *dev, Error **errp) { ISADevice *isadev = ISA_DEVICE(dev); ISAIPMIBTDevice *iib = ISA_IPMI_BT(dev); IPMIInterface *ii = IPMI_INTERFACE(dev); IPMIInterfaceClass *iic = IPMI_INTERFACE_GET_CLASS(ii); if (!iib->bt.bmc) { error_setg(errp, "IPMI device requires a bmc attribute to be set"); return; } iib->uuid = ipmi_next_uuid(); iib->bt.bmc->intf = ii; iic->init(ii, errp); if (*errp) return; if (iib->isairq > 0) { isa_init_irq(isadev, &iib->bt.irq, iib->isairq); iib->bt.use_irq = 1; } qdev_set_legacy_instance_id(dev, iib->bt.io_base, iib->bt.io_length); isa_register_ioport(isadev, &iib->bt.io, iib->bt.io_base); }