Add a simple DMA r/w test to ahci-test. Oh, and for the first 18 patches, refactor everything into helpers so that each ahci_test isn't a thousand lines long.
This patch depends upon the "ahci test preliminary refactoring" series upstream, which shuffled a lot of libqos and malloc facilities to support this series. This patchset is a necessary step in checking in AHCI/DMA migration tests that I will later use as proof as suitability of enabling the ICH9 and AHCI migration flags. V3: (04) Changed "px" to "port" and "cx" to "slot" In this and all other patches. Kept R-Bys in other patches as this is a non-functional change. (10) Modified aux to be an array of four bytes, and added a note explaining that they are for NCQ and not currently used in libqos. (12) Minor formatting and updating aux initialization. Kept R-B. V2: (03) Added cpu_to_le16 into intermediary code. (04) Fixed assignment to be or-equals. ahci_set_command_header no longer modifies its argument. (09) Fixed assignment to be or-equals in the helper refactor. (10) New patch. Writes an FIS to guest memory, handling endianness. (11) Remove the property table sentinel update find_command to use the array size instead. (12) Remove cpu_to_le16 from ahci_command_commit, leave endianness to ahci_write_fis. (14) Remove cpu_to_le16 from ahci_set_sizes, leave endianness to ahci_write_fis. (19) qmemset the buffer to zeroes between IO calls, just to make sure. (--) Removed the ahci_macro_boot function patch (...for now...) (--) Retested entire stack of patches on F20/PPC. ~John John Snow (19): libqos/ahci: Add ahci_port_select helper libqos/ahci: Add ahci_port_clear helper qtest/ahci: rename 'Command' to 'CommandHeader' libqos/ahci: Add command header helpers libqos/ahci: Add ahci_port_check_error helper libqos/ahci: Add ahci_port_check_interrupts helper libqos/ahci: Add port_check_nonbusy helper libqos/ahci: Add cmd response sanity check helpers qtest/ahci: Demagic ahci tests. qtest/ahci: add ahci_write_fis libqos/ahci: Add ide cmd properties libqos/ahci: add ahci command functions libqos/ahci: add ahci command verify libqos/ahci: add ahci command size setters libqos/ahci: Add ahci_guest_io libqos/ahci: add ahci_io libqos/ahci: Add ahci_clean_mem qtest/ahci: Assert sector size in identify test qtest/ahci: Adding simple dma read-write test tests/ahci-test.c | 230 ++++++++------------ tests/libqos/ahci.c | 569 ++++++++++++++++++++++++++++++++++++++++++++++++++ tests/libqos/ahci.h | 168 ++++++++++++--- tests/libqos/malloc.c | 5 + tests/libqos/malloc.h | 1 + 5 files changed, 804 insertions(+), 169 deletions(-) -- 1.9.3