V1 -> V2: - Rebased on qom-next queue. - Patch 1/4: - Since there are a lot of discussions on the correct way to do the fix, added a FIXME comment to find a better way. - Patch 2/4: - Addressed Michael Roth's comments: - Added output visitor test - Tweaked it as advised - Patch 4/4 - Addressed Andreas Farber's comments: - Renamed machine_state -> ms to conform with the other patches - Solved an issue discovered with make check: - Updated machine->kernel_cmdline to be an empty string if no string was supplied by the user. - All other comments were addressed in the mail thread (I hope...)
This series continues 'machine as QOM' targeting two related issues: - Patch 1/4 completly removes QEMUMachineInitArgs from the code with a big mechanical patch. It removes QEMUMachineInitArgs from MachineState and gets rid of duplicated fields. - I am perfectly aware that patches touching a lot of files are not desirable, but this one is a very simple replacement patch: QEMUMachineInitArgs -> MachineState args -> ms - This is the simplest way to get rid of QEMUMachineInitArgs fast. - Patch 4/4 aims to enable QemuOpts per machine by automatically filling in the machine opts into the current machine. Subclassing MachineClass and adding options mapped into properties is a better way than using global options. Patches 1/4 and 3/4 fix little bugs needed by 4/4. Marcel Apfelbaum (4): qapi: output visitor crashes qemu if it encounters a NULL value tests: check empty qmp output visitor vl.c: do not set 'type' property in obj_set_property hw/machine: qemu machine opts as properties to QemuMachineState hw/core/machine.c | 256 ++++++++++++++++++++++++++++++++++++++++ include/hw/boards.h | 6 +- qapi/qmp-output-visitor.c | 6 + tests/test-qmp-output-visitor.c | 11 ++ vl.c | 13 +- 5 files changed, 285 insertions(+), 7 deletions(-) -- 1.8.3.1