This is series 2/4 of the QOM refactoring. These series are divided up based on the major scripted code conversions.
This series makes qdev a proper Object and converts qdev's type inheritance to QOM inheritance. The first half of the series are manual cleanups/refactorings. The second half is mostly scripted conversion, separated out into reviewable and bisectable chunks. There are a number of patches prefixed with 'not-for-upstream'. As is not surprising with a refactoring like this, it turned up some interesting corner cases. Part of the purpose of this RFC is to get some feedback on how to best handle these cases. I've tested this series extensively for the pc target including bisectability. I've tested this series extensively for the pc target including bisectability. I have not tested any other targets yet so your mileage may vary. This is also available at: https://github.com/aliguori/qemu/tree/qom-upstream.5 For full context, the whole tree is located at: https://github.com/aliguori/qemu/commits/qom-rebase.6 I'll reply to this note with a code of the patch monkey script I used for much of this series.