From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:58996) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YDIk9-0000uy-NW for qemu-devel@nongnu.org; Mon, 19 Jan 2015 15:16:15 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YDIk6-0006ii-C9 for qemu-devel@nongnu.org; Mon, 19 Jan 2015 15:16:13 -0500 Received: from mx1.redhat.com ([209.132.183.28]:41145) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YDIk6-0006iV-4J for qemu-devel@nongnu.org; Mon, 19 Jan 2015 15:16:10 -0500 From: John Snow Date: Mon, 19 Jan 2015 15:15:48 -0500 Message-Id: <1421698563-6977-1-git-send-email-jsnow@redhat.com> Subject: [Qemu-devel] [PATCH v2 00/15] ahci-test preliminary refactoring List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: kwolf@redhat.com, marc.mari.barcelo@gmail.com, armbru@redhat.com, mreitz@redhat.com, stefanha@redhat.com, pbonzini@redhat.com, jsnow@redhat.com 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