Am 27.04.2012 22:21, schrieb Michael Roth: > These patches apply on top of qemu.git master, and can also be obtained from: > git://github.com/mdroth/qemu.git visitor-fixed-width-v5 > > Some of these were being carried as part of Paolo's realize series due to some > conflicts, but that looks to be targetted for 1.2 now, and there's a QMP > visitor bug and a small issue with String visitor that were caught by the test > infrastructure introduced here and fixed as part of this series, so I'd like > to > get this in for 1.1
Thanks, I've applied v6 to qom-next (as usual massaging the commit messages a bit, in particular extending the last one): http://repo.or.cz/w/qemu/afaerber.git/shortlog/refs/heads/qom-next Reasoning: This series has been around since end of February. v3 fixed a breakage reported by Anthony (use of signed rather than unsigned visitors); since then changes were mostly rebasing, and v5/v6 pass make check and my smoke tests. While this is not strictly a QOM series, I am picking it as a prerequisite since Paolo had picked up patches 1, 6, 7 for his Object properties movement and because patch 1 is handy for newly added properties such as of the x86 CPU. Further, Paolo agreed to rebase onto this series. However, it is my understanding that patches 2 and 4 are independent bugfixes and as such should go into 1.1. Luiz, should I send Anthony a PULL for 1.1-rc2 including those two? Can you ack then? Or do you want to cherry-pick them from qom-next yourself? Andreas > CHANGES SINCE v4: > - Rebased on master (a8b69b8e2431edfcb6c4cfb069787e9071d6235b) and re-tested > - Re-ordered patches so visitor bugs are applied before the test cases that > that trigger them. > > CHANGES SINCE V3: > - Rebased on master and re-tested > > CHANGES SINCE V2: > - Fix qemu-test errors due to now-strict bounds-checking we doing assignment > between signed/unsigned types. > - uint* property getters/setters no longer use int* getters/setters. > - valid devfn range is now explicitly enforced. > > CHANGES SINCE V1: > - unit tests: covert QmpOutputVisitor qobject to json before passing it to > QmpInputVisitor*. I.e., actually do the serialization :) > - QmpInputVisitor, add handling for when a serialized QFloat gets read back > as a QInt > - unit tests: add coverage for String visitor > - StringOutputVisitor: use %f for float representation > > These patches add fixed-width visitor interfaces and switches all qdev users > over to using them. > > We also add a test suite which covers these interfaces, and also does some > sanity checking on Visitors (Qmp/String currently, with a pluggable interface > for future implementations) to ensure Visitor input/output handling remain > self-consistent, which is not covered by the current visitor tests which > mostly > test input/output seperately. Maintaining this invariant is necessary to > ensure > that visitors can be used for serialization/deserialization in the future. > > hw/mc146818rtc.c | 7 - > hw/pci.c | 2 +- > hw/pci.h | 2 +- > hw/qdev-addr.c | 4 +- > hw/qdev-properties.c | 161 +++++--- > hw/qdev.h | 2 +- > qapi/qapi-visit-core.c | 139 +++++++ > qapi/qapi-visit-core.h | 16 + > qapi/qmp-input-visitor.c | 9 +- > qapi/string-output-visitor.c | 2 +- > tests/Makefile | 4 +- > tests/test-string-output-visitor.c | 2 +- > tests/test-visitor-serialization.c | 784 > ++++++++++++++++++++++++++++++++++++ > 13 files changed, 1049 insertions(+), 85 deletions(-) -- SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg