1. 18 1月, 2019 3 次提交
  2. 15 1月, 2019 1 次提交
    • I
      tests: acpi: use AcpiSdtTable::aml in consistent way · 81eb530d
      Igor Mammedov 提交于
      Currently in the 1st case we store table body fetched from QEMU in
      AcpiSdtTable::aml minus it's header but in the 2nd case when we
      load reference aml from disk, it holds whole blob including header.
      More over in the 1st case, we read header in separate AcpiSdtTable::header
      structure and then jump over hoops to fixup tables and combine both.
      
      Treat AcpiSdtTable::aml as whole table blob approach in both cases
      and when fetching tables from QEMU, first get table length and then
      fetch whole table into AcpiSdtTable::aml instead if doing it field
      by field.
      
      As result
       * AcpiSdtTable::aml is used in consistent manner
       * FADT fixups use offsets from spec instead of being shifted by
         header length
       * calculating checksums and dumping blobs becomes simpler
      Signed-off-by: NIgor Mammedov <imammedo@redhat.com>
      Acked-by: NThomas Huth <thuth@redhat.com>
      Reviewed-by: NMichael S. Tsirkin <mst@redhat.com>
      Signed-off-by: NMichael S. Tsirkin <mst@redhat.com>
      81eb530d
  3. 21 12月, 2018 1 次提交
  4. 17 12月, 2018 2 次提交
  5. 16 1月, 2018 1 次提交
    • E
      maint: Fix macros with broken 'do/while(0); ' usage · 2562755e
      Eric Blake 提交于
      The point of writing a macro embedded in a 'do { ... } while (0)'
      loop (particularly if the macro has multiple statements or would
      otherwise end with an 'if' statement) is so that the macro can be
      used as a drop-in statement with the caller supplying the
      trailing ';'.  Although our coding style frowns on brace-less 'if':
        if (cond)
          statement;
        else
          something else;
      that is the classic case where failure to use do/while(0) wrapping
      would cause the 'else' to pair with any embedded 'if' in the macro
      rather than the intended outer 'if'.  But conversely, if the macro
      includes an embedded ';', then the same brace-less coding style
      would now have two statements, making the 'else' a syntax error
      rather than pairing with the outer 'if'.  Thus, even though our
      coding style with required braces is not impacted, ending a macro
      with ';' makes our code harder to port to projects that use
      brace-less styles.
      
      The change should have no semantic impact.  I was not able to
      fully compile-test all of the changes (as some of them are
      examples of the ugly bit-rotting debug print statements that are
      completely elided by default, and I didn't want to recompile
      with the necessary -D witnesses - cleaning those up is left as a
      bite-sized task for another day); I did, however, audit that for
      all files touched, all callers of the changed macros DID supply
      a trailing ';' at the callsite, and did not appear to be used
      as part of a brace-less conditional.
      
      Found mechanically via: $ git grep -B1 'while (0);' | grep -A1 \\\\
      Signed-off-by: NEric Blake <eblake@redhat.com>
      Acked-by: NCornelia Huck <cohuck@redhat.com>
      Reviewed-by: NMichael S. Tsirkin <mst@redhat.com>
      Acked-by: NDr. David Alan Gilbert <dgilbert@redhat.com>
      Message-Id: <20171201232433.25193-7-eblake@redhat.com>
      Reviewed-by: NJuan Quintela <quintela@redhat.com>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      2562755e
  6. 17 11月, 2017 1 次提交
  7. 03 5月, 2017 1 次提交
    • P
      hw/i386: Use Rev3 FADT (ACPI 2.0) instead of Rev1 to improve guest OS support. · 77af8a2b
      Phil Dennis-Jordan 提交于
      This updates the FADT generated for x86/64 machine types from Revision 1 to 3. (Based on ACPI standard 2.0 instead of 1.0) The intention is to expose the reset register information to guest operating systems which require it, specifically OS X/macOS. Revision 1 FADTs do not contain the fields relating to the reset register.
      
      The new layout and contents remains backwards-compatible with operating systems which only support ACPI 1.0, as the existing fields are not modified by this change, as the 64-bit and 32-bit variants are allowed to co-exist according to the ACPI 2.0 standard. No regressions became apparent in tests with a range of Windows (XP-10) and Linux versions.
      
      The BIOS tables test suite's FADT checksum test has also been updated to reflect the new FADT layout and content.
      Signed-off-by: NPhil Dennis-Jordan <phil@philjordan.eu>
      Message-Id: <1489558827-28971-2-git-send-email-phil@philjordan.eu>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      77af8a2b
  8. 31 3月, 2017 1 次提交
  9. 02 3月, 2017 1 次提交