1. 16 2月, 2015 6 次提交
    • J
      qtest/ahci: Bookmark FB and CLB pointers · f3dd2da4
      John Snow 提交于
      Instead of re-querying the AHCI device for the FB and CLB buffers, save
      the pointer we gave to the device during initialization and reference
      these values instead.
      
      [Peter Maydell <peter.maydell@linaro.org> reported the following clang
      compiler warnings:
      
        tests/libqos/ahci.c:256:40: warning: format specifies type 'unsigned
            long' but the argument has type 'uint64_t'
            (aka 'unsigned long long') [-Wformat]
              g_test_message("CLB: 0x%08lx", ahci->port[i].clb);
        tests/libqos/ahci.c:264:39: warning: format specifies type 'unsigned
            long' but the argument has type 'uint64_t'
            (aka 'unsigned long long') [-Wformat]
              g_test_message("FB: 0x%08lx", ahci->port[i].fb);
      
      The commit moved from uint32_t to uint64_t, so PRIx64 should be used for
      the format specifier.
      --Stefan]
      Signed-off-by: NJohn Snow <jsnow@redhat.com>
      Reviewed-by: NPaolo Bonzini <pbonzini@redhat.com>
      Message-id: 1421698563-6977-15-git-send-email-jsnow@redhat.com
      Signed-off-by: NStefan Hajnoczi <stefanha@redhat.com>
      f3dd2da4
    • J
      libqos/ahci: Functional register helpers · 4882f359
      John Snow 提交于
      Introduce a set of "static inline" register helpers that are intended to
      replace the current set of macros with more functional versions that are
      better suited to inclusion in libqos than porcelain macros.
      
      As a stopgap measure before eliminating the porcelain macros, define them
      to use the new functions defined in the ahci.h header.
      Signed-off-by: NJohn Snow <jsnow@redhat.com>
      Reviewed-by: NPaolo Bonzini <pbonzini@redhat.com>
      Message-id: 1421698563-6977-13-git-send-email-jsnow@redhat.com
      Signed-off-by: NStefan Hajnoczi <stefanha@redhat.com>
      4882f359
    • J
      qtest/ahci: finalize AHCIQState consolidation · 8d5eeced
      John Snow 提交于
      Move barsize, ahci_fingerprint and capabilities registers into
      the AHCIQState object, removing global ahci-related state
      from the ahci-test.c file.
      
      More churn, less globals.
      Signed-off-by: NJohn Snow <jsnow@redhat.com>
      Reviewed-by: NPaolo Bonzini <pbonzini@redhat.com>
      Message-id: 1421698563-6977-10-git-send-email-jsnow@redhat.com
      Signed-off-by: NStefan Hajnoczi <stefanha@redhat.com>
      8d5eeced
    • J
      qtest/ahci: Store hba_base in AHCIQState · 6100ddb0
      John Snow 提交于
      Store the HBA memory base address in the new state object, to simplify
      function prototypes and encourage a more functional testing style.
      
      This causes a lot of churn, but this patch is as "simplified" as I could
      get it to be. This patch is therefore fairly mechanical and straightforward:
      Any case where we pass "hba_base" has been consolidated into the AHCIQState
      object and we pass the one unified parameter.
      
      Any case where we reference "ahci" and "hba_state" have been modified to use
      "ahci->dev" for the PCIDevice and "ahci->hba_state" to get at the base memory
      address, accordingly.
      
      Notes:
      
       - A needless return is removed from start_ahci_device.
      
       - For ease of reviewing, this patch can be reproduced (mostly) by:
         # Replace (ahci, hba_base) prototypes with unified parameter
         's/(QPCIDevice \*ahci, void \*\?\*hba_base/(AHCIQState *ahci/'
      
         # Replace (ahci->dev, hba_base) calls with unified parameter
         's/(ahci->dev, &\?hba_base)/(ahci)/'
      
         # Replace calls to PCI config space using "ahci" with "ahci->dev"
         's/qpci_config_\(read\|write\)\(.\)(ahci,/qpci_config_\1\2(ahci->dev,/'
      
         After these, the remaining differences are easy to review by hand.
      Signed-off-by: NJohn Snow <jsnow@redhat.com>
      Reviewed-by: NPaolo Bonzini <pbonzini@redhat.com>
      Message-id: 1421698563-6977-9-git-send-email-jsnow@redhat.com
      Signed-off-by: NStefan Hajnoczi <stefanha@redhat.com>
      6100ddb0
    • J
      libqos: create libqos.c · dd0029c0
      John Snow 提交于
      The intent of this file is to serve as a misc. utilities file to be
      shared amongst tests that are utilizing libqos facilities.
      
      In a later patch, migration test helpers will be added to libqos.c that
      will allow simplified testing of migration cases where libqos is
      "Just Enough OS" for migrations testing.
      
      The addition of the AHCIQState structure will also allow us to eliminate
      global variables inside of qtests to manage allocators and test instances
      in a better, more functional way.
      
      libqos.c:
              - Add qtest_boot
              - Add qtest_shutdown
      
      libqos.h:
              - Create QOSState structure for allocator and QTestState.
      
      ahci-test.c:
              - Move qtest_boot and qtest_shutdown to libqos.c/h
              - Create AHCIQState to interface with new qtest_boot/shutdown prototypes
              - Modify tests slightly to use new types.
      
      For now, the new object file is only linked to ahci-test, because it still
      relies on pc architecture specific code in libqos. The next two patches will
      reorganize the code to be more general.
      Signed-off-by: NJohn Snow <jsnow@redhat.com>
      Reviewed-by: NPaolo Bonzini <pbonzini@redhat.com>
      Message-id: 1421698563-6977-4-git-send-email-jsnow@redhat.com
      Signed-off-by: NStefan Hajnoczi <stefanha@redhat.com>
      dd0029c0
    • J
      qtest/ahci: Create ahci.h · 90fc5e09
      John Snow 提交于
      Extract defines and other information to ahci.h, to be shared with other
      tests if they so please.
      
      At the very least, reduce clutter in the test file itself.
      Signed-off-by: NJohn Snow <jsnow@redhat.com>
      Reviewed-by: NPaolo Bonzini <pbonzini@redhat.com>
      Message-id: 1421698563-6977-3-git-send-email-jsnow@redhat.com
      Signed-off-by: NStefan Hajnoczi <stefanha@redhat.com>
      90fc5e09