On Mon, Jan 19, 2015 at 03:15:48PM -0500, John Snow wrote: > This series aims to do two main things: > > (1) Eliminate global state out of the ahci-test file so that > the tests are more functional. This will allow me to write > migration tests more easily. These tests are already written > and will be submitted upstream after these refactor series. > > (2) With global state removed from ahci-test, factor out functions > that would be useful to manipulate ahci devices into libqos/ahci.o, > to allow other testwriters to capitalize on the functional > refactoring. > > So, as an overview, we do a few things: > > - Clean up the malloc interface to have a clear pc-specific interface > that uses an architecture independent core. > > - Add some new structures to help keep track of AHCI and libqos state. > > - Rewrite existing AHCI helpers and routines to use the new structures > and helper routines. > > - Excise any commonly valuable code to libqos/ahci.h and libqos/ahci.c. > > This series therefore introduces no new functionality itself, but I was > trying to keep the series small and reviewable. The real necessity here > in jumbling malloc and ahci functions around is to create a functional > interface that can be bundled into a single structure to help facilitate > migration testing inside of qtests, for which I intend to export to all > of qtests to be re-used for other tests. > > From this point forward, the churn to my AHCI refactor series should be > significantly reduced and more pleasant to read. > > Thanks, > John. > > V2: > - #6 Made QGuestAllocator object opaque, in a new patch. > - Created page_size setter method. > - #7 Renamed "QOSOperations" to "QOSOps" and added Paolo's R-b. > - #12 Dropped GCC attributes from static inline helpers (ahci.h) > - #15 Adjusted assertion to not compare void ptr to int 0 > - #15 Share ahci.o with libqos-obj-pc-y instead of only ahci-test > * ahci.o is pc-only for now. > > John Snow (15): > libqos: Split apart pc_alloc_init > qtest/ahci: Create ahci.h > libqos: create libqos.c > libqos: add qtest_vboot > libqos: add alloc_init_flags > libqos: Update QGuestAllocator to be opaque > libqos: add pc specific interface > qtest/ahci: Store hba_base in AHCIQState > qtest/ahci: finalize AHCIQState consolidation > qtest/ahci: remove pcibus global > qtest/ahci: remove guest_malloc global > libqos/ahci: Functional register helpers > qtest/ahci: remove getter/setter macros > qtest/ahci: Bookmark FB and CLB pointers > libqos/ahci: create libqos/ahci.c > > tests/Makefile | 5 +- > tests/ahci-test.c | 894 > ++++++++--------------------------------------- > tests/libqos/ahci.c | 269 ++++++++++++++ > tests/libqos/ahci.h | 435 +++++++++++++++++++++++ > tests/libqos/libqos-pc.c | 24 ++ > tests/libqos/libqos-pc.h | 9 + > tests/libqos/libqos.c | 63 ++++ > tests/libqos/libqos.h | 33 ++ > tests/libqos/malloc-pc.c | 20 +- > tests/libqos/malloc.c | 86 ++++- > tests/libqos/malloc.h | 25 +- > 11 files changed, 1068 insertions(+), 795 deletions(-) > create mode 100644 tests/libqos/ahci.c > create mode 100644 tests/libqos/ahci.h > create mode 100644 tests/libqos/libqos-pc.c > create mode 100644 tests/libqos/libqos-pc.h > create mode 100644 tests/libqos/libqos.c > create mode 100644 tests/libqos/libqos.h > > -- > 1.9.3 > >
Thanks, applied to my block tree: https://github.com/stefanha/qemu/commits/block Stefan
pgpQseH_vfWBJ.pgp
Description: PGP signature