|
From: | Anthony Liguori |
Subject: | Re: [Qemu-devel] [PATCH 08/23] qdev: register all types natively through QEMU Object Model |
Date: | Mon, 30 Jan 2012 16:43:59 -0600 |
User-agent: | Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.23) Gecko/20110922 Lightning/1.0b2 Thunderbird/3.1.15 |
On 01/30/2012 04:29 PM, Peter Maydell wrote:
On 30 January 2012 21:08, Anthony Liguori<address@hidden> wrote:This was done in a mostly automated fashion. I did it in three steps and then rebased it into a single step which avoids repeatedly touching every file in the tree. The first step was a sed-based addition of the parent type to the subclass registration functions. The second step was another sed-based removal of subclass registration functions while also adding virtual functions from the base class into a class_init function as appropriate. Finally, a python script was used to convert the DeviceInfo structures and qdev_register_subclass functions to TypeInfo structures, class_init functions, and type_register_static calls.Can you document this process in enough detail so that those of us with trees/branches not yet upstream can use it to ease the process of rebasing after this lands, please?
Replace DeviceInfo with TypeInfo, mapping: TypeInfo::name = DeviceInfo::name TypeInfo::parent = subclass argument to qdev_register_subclass TypeInfo::instance_size = DeviceInfo::size TypeInfo::class_init = DeviceInfo::class_initAny remaining DeviceInfo members being initialized should be moved to the class_init function as assignment to DeviceClass. Use DEVICE_CLASS() to case the ObjectClass in the argument to DeviceClass *dc and then assign the members.
Replace qdev_register_subclass calls with type_register_static. Regards, Anthony Liguori
Thanks -- PMM
[Prev in Thread] | Current Thread | [Next in Thread] |