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: Corey Minyard
Subject: Re: [Qemu-devel] [PATCH 12/16] IPMI: Add a PC ISA type structure
Date: Mon, 16 Jul 2012 19:16:46 -0500
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:13.0) Gecko/20120615 Thunderbird/13.0.1

On 07/16/2012 02:16 AM, Paolo Bonzini wrote:
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.

Yeah, but the qdevs did a lot of nice things for me :).  But I understand.


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.

The main reason I went with qdevs originally was because all the properties are defined for qdevs. I'd have to do all my own properties otherwise.

However, I think all the properties are represented by what is already there in isa-ipmi, so just having pointers to the interface and bmc objects is ok, I think.


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.

Yeah, I see that now.  Makes sense.

BTW, where do you want me to document this? I didn't see an obvious place in qemu-options.hx.

I'm working on tests, too. I didn't find much there already, but I'll see what I can add.

Thanks,

-corey



reply via email to

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