qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH 12/16] IPMI: Add a PC ISA type structure


From: Paolo Bonzini
Subject: Re: [Qemu-devel] [PATCH 12/16] IPMI: Add a PC ISA type structure
Date: Mon, 16 Jul 2012 09:16:39 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:13.0) Gecko/20120615 Thunderbird/13.0.1

Il 15/07/2012 22:25, address@hidden ha scritto:
> +    /* Clear the property from this device so we can put it elsewhere */
> +    chr = isa->chr;
> +    qdev_prop_set_chr(&dev->qdev, "chardev", NULL);
> +
> +    if (chr) {
> +     bdev = qdev_create(NULL, "ipmi-bmc-extern");
> +     qdev_prop_set_chr(bdev, "chardev", chr);
> +    } else {
> +     bdev = qdev_create(NULL, "ipmi-bmc-sim");
> +    }
> +    snprintf(typename, sizeof(typename), "ipmi-interface-%s", 
> isa->interface);
> +    idev = qdev_create(&isa_bus->qbus, typename);
> +    qdev_prop_set_ptr(bdev, "ipmiif", idev);
> +    qdev_prop_set_uint64(idev, "iobase", isa->iobase);
> +    qdev_prop_set_ptr(idev, "bmc", bdev);
> +    qdev_prop_set_uint8(idev, "slave-addr", isa->slave_addr);
> +    rc = qdev_init(idev);

I think this is adding a bit of extra complication.  You do not need to
add explicit devices for this.

If you want to make ipmi-bmc-* and ipmi-interface-* objects, you can
create them with object_new, set the properties manually with the
returned pointer and add the object to the parent with
object_property_add_child.

Otherwise, it should also be fine if you just add them as function pointers.

Either way also lets you keep the ownership of the chardev in the ISA
IPMI device, and avoids that "info qtree" looks strange and does not
show the chardev you assigned.

Paolo



reply via email to

[Prev in Thread] Current Thread [Next in Thread]