All of lore.kernel.org
 help / color / mirror / Atom feed
* [PULL v4 00/48] virtio,pc,acpi: fixes, tests
@ 2020-09-29  7:20 Michael S. Tsirkin
  2020-09-29  7:20   ` Michael S. Tsirkin
                   ` (51 more replies)
  0 siblings, 52 replies; 63+ messages in thread
From: Michael S. Tsirkin @ 2020-09-29  7:20 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell

Changes from v3:
- dropped reconnect tests
- added more fixes, an smbios feature

The following changes since commit 74504514b154ebebdff577d88e4bf5c13074e9ed:

  Merge remote-tracking branch 'remotes/alistair/tags/pull-register-20200927' into staging (2020-09-28 16:49:10 +0100)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/virt/kvm/mst/qemu.git tags/for_upstream

for you to fetch changes up to 8138405528c29af2a850cd672a8f8a0b33b7ab40:

  libvhost-user: return on error in vu_log_queue_fill() (2020-09-29 03:06:12 -0400)

----------------------------------------------------------------
virtio,pc,acpi: fixes, tests

Fixes and tests all over the place.
Batch iommu updates for vdpa.
Removal of deprecated cpu hotplug commands.
SMBIOS OEM string support.

Signed-off-by: Michael S. Tsirkin <mst@redhat.com>

----------------------------------------------------------------
Ani Sinha (11):
      tests/acpi: mark addition of table DSDT.roothp for unit testing root pci hotplug
      tests/acpi: add new unit test to test hotplug off/on feature on the root pci bus
      tests/acpi: add a new ACPI table in order to test root pci hotplug on/off
      Fix a gap where acpi_pcihp_find_hotplug_bus() returns a non-hotpluggable bus
      i440fx/acpi: do not add hotplug related amls for cold plugged bridges
      tests/acpi: list added acpi table binary file for pci bridge hotplug test
      tests/acpi: unit test for 'acpi-pci-hotplug-with-bridge-support' bridge flag
      tests/acpi: add newly added acpi DSDT table blob for pci bridge hotplug flag
      Add ACPI DSDT tables for q35 that are being updated by the next patch
      piix4: don't reserve hw resources when hotplug is off globally
      tests/acpi: update golden master DSDT binary table blobs for q35

Daniel P. Berrangé (3):
      hw/smbios: support loading OEM strings values from a file
      hw/smbios: report error if table size is too large
      qemu-options: document SMBIOS type 11 settings

David Hildenbrand (1):
      pc: fix auto_enable_numa_with_memhp/auto_enable_numa_with_memdev for the 5.0 machine

Dima Stepanov (3):
      vhost: recheck dev state in the vhost_migration_log routine
      vhost: check queue state in the vhost_dev_set_log routine
      tests/qtest/vhost-user-test: prepare the tests for adding new dev class

Eric Auger (2):
      virtio-iommu: Check gtrees are non null before destroying them
      virtio-iommu-pci: force virtio version 1

Igor Mammedov (11):
      cphp: remove deprecated cpu-add command(s)
      x86: lpc9: let firmware negotiate 'CPU hotplug with SMI' features
      x86: cpuhp: prevent guest crash on CPU hotplug when broadcast SMI is in use
      x86: cpuhp: refuse cpu hot-unplug request earlier if not supported
      acpi: add aml_land() and aml_break() primitives
      tests: acpi: mark to be changed tables in bios-tables-test-allowed-diff
      x86: ich9: expose "smi_negotiated_features" as a QOM property
      x86: acpi: introduce AcpiPmInfo::smi_on_cpuhp
      x86: acpi: introduce the PCI0.SMI0 ACPI device
      x68: acpi: trigger SMI before sending hotplug Notify event to OSPM
      tests: acpi: update acpi blobs with new AML

Jason Wang (3):
      linux headers: sync to 5.9-rc4
      vhost: switch to use IOTLB v2 format
      vhost-vdpa: batch updating IOTLB mappings

Laurent Vivier (3):
      util/hexdump: introduce qemu_hexdump_line()
      vhost-vdpa: add trace-events
      configure: Fix build dependencies with vhost-vdpa.

Li Qiang (3):
      virtio-mem: detach the element from the virtqueue when error occurs
      virtio: update MemoryRegionCaches when guest set bad features
      hw: virtio-pmem: detach the element fromt the virtqueue when error occurs

Pankaj Gupta (1):
      virtio-pmem-pci: force virtio version 1

Stefan Hajnoczi (2):
      libvhost-user: return early on virtqueue errors
      libvhost-user: return on error in vu_log_queue_fill()

Stefano Garzarella (4):
      virtio: skip legacy support check on machine types less than 5.1
      vhost-vsock-pci: force virtio version 1
      vhost-user-vsock-pci: force virtio version 1
      vhost-vsock-ccw: force virtio version 1

haibinzhang(张海斌) (1):
      vhost-user: save features of multiqueues if chardev is closed

 configure                                          |    3 +-
 qapi/machine.json                                  |   24 -
 include/hw/acpi/aml-build.h                        |    2 +
 include/hw/acpi/cpu.h                              |    1 +
 include/hw/boards.h                                |    1 -
 include/hw/i386/ich9.h                             |    4 +
 include/hw/i386/pc.h                               |    1 -
 include/hw/virtio/vhost-backend.h                  |    2 +
 include/hw/virtio/vhost-user-blk.h                 |   10 +
 include/hw/virtio/vhost-vdpa.h                     |    1 +
 include/hw/virtio/vhost.h                          |    1 +
 include/hw/virtio/virtio.h                         |    2 +
 include/monitor/hmp.h                              |    1 -
 include/qemu-common.h                              |    8 +
 include/standard-headers/drm/drm_fourcc.h          |  140 +
 include/standard-headers/linux/ethtool.h           |   87 +
 include/standard-headers/linux/input-event-codes.h |    3 +-
 include/standard-headers/linux/vhost_types.h       |   11 +
 include/standard-headers/linux/virtio_9p.h         |    4 +-
 include/standard-headers/linux/virtio_blk.h        |   26 +-
 include/standard-headers/linux/virtio_config.h     |    8 +-
 include/standard-headers/linux/virtio_console.h    |    8 +-
 include/standard-headers/linux/virtio_net.h        |    6 +-
 include/standard-headers/linux/virtio_scsi.h       |   20 +-
 linux-headers/asm-generic/unistd.h                 |    6 +-
 linux-headers/asm-mips/unistd_n32.h                |    1 +
 linux-headers/asm-mips/unistd_n64.h                |    1 +
 linux-headers/asm-mips/unistd_o32.h                |    1 +
 linux-headers/asm-powerpc/kvm.h                    |    5 +
 linux-headers/asm-powerpc/unistd_32.h              |    1 +
 linux-headers/asm-powerpc/unistd_64.h              |    1 +
 linux-headers/asm-s390/kvm.h                       |    7 +-
 linux-headers/asm-s390/unistd_32.h                 |    1 +
 linux-headers/asm-s390/unistd_64.h                 |    1 +
 linux-headers/asm-x86/unistd_32.h                  |    1 +
 linux-headers/asm-x86/unistd_64.h                  |    1 +
 linux-headers/asm-x86/unistd_x32.h                 |    1 +
 linux-headers/linux/kvm.h                          |    4 +
 linux-headers/linux/vfio.h                         |    2 +-
 linux-headers/linux/vhost.h                        |    2 +
 contrib/libvhost-user/libvhost-user.c              |   26 +-
 hw/acpi/aml-build.c                                |   16 +
 hw/acpi/cpu.c                                      |  165 +-
 hw/acpi/ich9.c                                     |   24 +-
 hw/acpi/pcihp.c                                    |   15 +
 hw/acpi/piix4.c                                    |    6 +-
 hw/block/vhost-user-blk.c                          |   19 +-
 hw/core/machine-hmp-cmds.c                         |   12 -
 hw/core/machine-qmp-cmds.c                         |   12 -
 hw/core/machine.c                                  |    1 +
 hw/i386/acpi-build.c                               |   72 +-
 hw/i386/pc.c                                       |   31 +-
 hw/i386/pc_piix.c                                  |    1 -
 hw/i386/pc_q35.c                                   |    2 +-
 hw/i386/x86.c                                      |   11 +
 hw/isa/lpc_ich9.c                                  |   16 +
 hw/s390x/s390-virtio-ccw.c                         |   12 -
 hw/s390x/vhost-vsock-ccw.c                         |   12 +
 hw/s390x/virtio-ccw.c                              |   15 +-
 hw/smbios/smbios.c                                 |   85 +-
 hw/virtio/vhost-backend.c                          |   88 +-
 hw/virtio/vhost-user-vsock-pci.c                   |    4 +-
 hw/virtio/vhost-vdpa.c                             |  158 +-
 hw/virtio/vhost-vsock-pci.c                        |   10 +-
 hw/virtio/vhost.c                                  |   49 +-
 hw/virtio/virtio-iommu-pci.c                       |    2 +-
 hw/virtio/virtio-iommu.c                           |    8 +-
 hw/virtio/virtio-mem.c                             |    3 +
 hw/virtio/virtio-pci.c                             |   14 +-
 hw/virtio/virtio-pmem-pci.c                        |    1 +
 hw/virtio/virtio-pmem.c                            |    1 +
 hw/virtio/virtio.c                                 |   24 +-
 net/vhost-user.c                                   |   10 +-
 tests/qtest/bios-tables-test.c                     |   32 +
 tests/qtest/cpu-plug-test.c                        |  100 +-
 tests/qtest/test-hmp.c                             |    1 -
 tests/qtest/vhost-user-test.c                      |  105 +-
 tests/test-qapi-event.c                            |  198 ++
 tests/test-qmp-introspect.c                        |   58 +
 tests/test-qmp-marshal.c                           |  383 +++
 util/hexdump.c                                     |   54 +-
 Kconfig.host                                       |    4 +
 docs/system/deprecated.rst                         |   25 +-
 hmp-commands.hx                                    |   15 -
 hw/virtio/trace-events                             |   31 +
 meson.build                                        |    1 +
 qemu-options.hx                                    |   41 +
 tests/.vhost-user-test.c.swo                       |  Bin 0 -> 16384 bytes
 tests/Makefile.include.orig                        | 1012 ++++++
 tests/Makefile.orig                                |  569 ++++
 tests/bios-tables-test.c.orig                      |  925 +++++
 tests/data/acpi/diff-aml.sh                        |    0
 tests/data/acpi/disassemle-aml.py                  |   21 +
 tests/data/acpi/microvm/APIC.dsl                   |   56 +
 tests/data/acpi/microvm/DSDT.dsl                   |  121 +
 tests/data/acpi/microvm/FACP.dsl                   |  196 ++
 tests/data/acpi/pc/APIC.acpihmat.dsl               |  112 +
 tests/data/acpi/pc/APIC.bridge                     |  Bin 0 -> 120 bytes
 tests/data/acpi/pc/APIC.bridge.dsl                 |  104 +
 tests/data/acpi/pc/APIC.cphp.dsl                   |  146 +
 tests/data/acpi/pc/APIC.dimmpxm.dsl                |  129 +
 tests/data/acpi/pc/APIC.dsl                        |  104 +
 tests/data/acpi/pc/APIC.hpbridge                   |  Bin 0 -> 120 bytes
 tests/data/acpi/pc/APIC.ipmikcs                    |  Bin 0 -> 120 bytes
 tests/data/acpi/pc/APIC.ipmikcs.dsl                |  104 +
 tests/data/acpi/pc/APIC.memhp                      |  Bin 0 -> 120 bytes
 tests/data/acpi/pc/APIC.memhp.dsl                  |  104 +
 tests/data/acpi/pc/APIC.numamem                    |  Bin 0 -> 120 bytes
 tests/data/acpi/pc/APIC.numamem.dsl                |  104 +
 tests/data/acpi/pc/APIC.roothp                     |  Bin 0 -> 120 bytes
 tests/data/acpi/pc/DSDT                            |  Bin 4934 -> 5060 bytes
 tests/data/acpi/pc/DSDT.acpihmat                   |  Bin 6258 -> 6385 bytes
 tests/data/acpi/pc/DSDT.acpihmat.dsl               | 1619 +++++++++
 tests/data/acpi/pc/DSDT.bridge                     |  Bin 6793 -> 6919 bytes
 tests/data/acpi/pc/DSDT.bridge.dsl                 | 1800 ++++++++++
 tests/data/acpi/pc/DSDT.cphp                       |  Bin 5397 -> 5524 bytes
 tests/data/acpi/pc/DSDT.cphp.dsl                   | 1466 ++++++++
 tests/data/acpi/pc/DSDT.dimmpxm                    |  Bin 6587 -> 6714 bytes
 tests/data/acpi/pc/DSDT.dimmpxm.dsl                | 1719 ++++++++++
 tests/data/acpi/pc/DSDT.dsl                        | 1407 ++++++++
 tests/data/acpi/pc/DSDT.hpbridge                   |  Bin 0 -> 5021 bytes
 tests/data/acpi/pc/DSDT.ipmikcs                    |  Bin 5006 -> 5132 bytes
 tests/data/acpi/pc/DSDT.ipmikcs.dsl                | 1337 ++++++++
 tests/data/acpi/pc/DSDT.memhp                      |  Bin 6293 -> 6419 bytes
 tests/data/acpi/pc/DSDT.memhp.dsl                  | 1625 +++++++++
 tests/data/acpi/pc/DSDT.numamem                    |  Bin 4940 -> 5066 bytes
 tests/data/acpi/pc/DSDT.numamem.dsl                | 1321 ++++++++
 tests/data/acpi/pc/DSDT.roothp                     |  Bin 0 -> 5256 bytes
 tests/data/acpi/pc/FACP.acpihmat                   |  Bin 0 -> 116 bytes
 tests/data/acpi/pc/FACP.acpihmat.dsl               |   99 +
 tests/data/acpi/pc/FACP.bridge                     |  Bin 0 -> 116 bytes
 tests/data/acpi/pc/FACP.bridge.dsl                 |   99 +
 tests/data/acpi/pc/FACP.cphp                       |  Bin 0 -> 116 bytes
 tests/data/acpi/pc/FACP.cphp.dsl                   |   99 +
 tests/data/acpi/pc/FACP.dimmpxm                    |  Bin 0 -> 116 bytes
 tests/data/acpi/pc/FACP.dimmpxm.dsl                |   99 +
 tests/data/acpi/pc/FACP.dsl                        |   99 +
 tests/data/acpi/pc/FACP.hpbridge                   |  Bin 0 -> 116 bytes
 tests/data/acpi/pc/FACP.ipmikcs                    |  Bin 0 -> 116 bytes
 tests/data/acpi/pc/FACP.ipmikcs.dsl                |   99 +
 tests/data/acpi/pc/FACP.memhp                      |  Bin 0 -> 116 bytes
 tests/data/acpi/pc/FACP.memhp.dsl                  |   99 +
 tests/data/acpi/pc/FACP.numamem                    |  Bin 0 -> 116 bytes
 tests/data/acpi/pc/FACP.numamem.dsl                |   99 +
 tests/data/acpi/pc/FACP.roothp                     |  Bin 0 -> 116 bytes
 tests/data/acpi/pc/FACS.acpihmat                   |  Bin 0 -> 64 bytes
 tests/data/acpi/pc/FACS.acpihmat.dsl               |   32 +
 tests/data/acpi/pc/FACS.bridge                     |  Bin 0 -> 64 bytes
 tests/data/acpi/pc/FACS.bridge.dsl                 |   32 +
 tests/data/acpi/pc/FACS.cphp                       |  Bin 0 -> 64 bytes
 tests/data/acpi/pc/FACS.cphp.dsl                   |   32 +
 tests/data/acpi/pc/FACS.dimmpxm                    |  Bin 0 -> 64 bytes
 tests/data/acpi/pc/FACS.dimmpxm.dsl                |   32 +
 tests/data/acpi/pc/FACS.dsl                        |   32 +
 tests/data/acpi/pc/FACS.hpbridge                   |  Bin 0 -> 64 bytes
 tests/data/acpi/pc/FACS.ipmikcs                    |  Bin 0 -> 64 bytes
 tests/data/acpi/pc/FACS.ipmikcs.dsl                |   32 +
 tests/data/acpi/pc/FACS.memhp                      |  Bin 0 -> 64 bytes
 tests/data/acpi/pc/FACS.memhp.dsl                  |   32 +
 tests/data/acpi/pc/FACS.numamem                    |  Bin 0 -> 64 bytes
 tests/data/acpi/pc/FACS.numamem.dsl                |   32 +
 tests/data/acpi/pc/FACS.roothp                     |  Bin 0 -> 64 bytes
 tests/data/acpi/pc/HMAT.acpihmat.dsl               |  132 +
 tests/data/acpi/pc/HMAT.dsl                        |  132 +
 tests/data/acpi/pc/HPET.acpihmat                   |  Bin 0 -> 56 bytes
 tests/data/acpi/pc/HPET.acpihmat.dsl               |   43 +
 tests/data/acpi/pc/HPET.bridge                     |  Bin 0 -> 56 bytes
 tests/data/acpi/pc/HPET.bridge.dsl                 |   43 +
 tests/data/acpi/pc/HPET.cphp                       |  Bin 0 -> 56 bytes
 tests/data/acpi/pc/HPET.cphp.dsl                   |   43 +
 tests/data/acpi/pc/HPET.dimmpxm                    |  Bin 0 -> 56 bytes
 tests/data/acpi/pc/HPET.dimmpxm.dsl                |   43 +
 tests/data/acpi/pc/HPET.dsl                        |   43 +
 tests/data/acpi/pc/HPET.hpbridge                   |  Bin 0 -> 56 bytes
 tests/data/acpi/pc/HPET.ipmikcs                    |  Bin 0 -> 56 bytes
 tests/data/acpi/pc/HPET.ipmikcs.dsl                |   43 +
 tests/data/acpi/pc/HPET.memhp                      |  Bin 0 -> 56 bytes
 tests/data/acpi/pc/HPET.memhp.dsl                  |   43 +
 tests/data/acpi/pc/HPET.numamem                    |  Bin 0 -> 56 bytes
 tests/data/acpi/pc/HPET.numamem.dsl                |   43 +
 tests/data/acpi/pc/HPET.roothp                     |  Bin 0 -> 56 bytes
 tests/data/acpi/pc/NFIT.dimmpxm.dsl                |  115 +
 tests/data/acpi/pc/NFIT.dsl                        |  115 +
 tests/data/acpi/pc/SLIT.cphp.dsl                   |   31 +
 tests/data/acpi/pc/SLIT.dsl                        |   31 +
 tests/data/acpi/pc/SLIT.memhp.dsl                  |   31 +
 tests/data/acpi/pc/SRAT.acpihmat.dsl               |  137 +
 tests/data/acpi/pc/SRAT.cphp.dsl                   |  168 +
 tests/data/acpi/pc/SRAT.dimmpxm.dsl                |  194 ++
 tests/data/acpi/pc/SRAT.dsl                        |  108 +
 tests/data/acpi/pc/SRAT.memhp.dsl                  |  125 +
 tests/data/acpi/pc/SRAT.numamem.dsl                |  108 +
 tests/data/acpi/pc/SSDT.dsl                        |  205 ++
 tests/data/acpi/pc/WAET.acpihmat                   |  Bin 0 -> 40 bytes
 tests/data/acpi/pc/WAET.acpihmat.dsl               |   31 +
 tests/data/acpi/pc/WAET.bridge                     |  Bin 0 -> 40 bytes
 tests/data/acpi/pc/WAET.bridge.dsl                 |   31 +
 tests/data/acpi/pc/WAET.cphp                       |  Bin 0 -> 40 bytes
 tests/data/acpi/pc/WAET.cphp.dsl                   |   31 +
 tests/data/acpi/pc/WAET.dimmpxm                    |  Bin 0 -> 40 bytes
 tests/data/acpi/pc/WAET.dimmpxm.dsl                |   31 +
 tests/data/acpi/pc/WAET.dsl                        |   31 +
 tests/data/acpi/pc/WAET.hpbridge                   |  Bin 0 -> 40 bytes
 tests/data/acpi/pc/WAET.ipmikcs                    |  Bin 0 -> 40 bytes
 tests/data/acpi/pc/WAET.ipmikcs.dsl                |   31 +
 tests/data/acpi/pc/WAET.memhp                      |  Bin 0 -> 40 bytes
 tests/data/acpi/pc/WAET.memhp.dsl                  |   31 +
 tests/data/acpi/pc/WAET.numamem                    |  Bin 0 -> 40 bytes
 tests/data/acpi/pc/WAET.numamem.dsl                |   31 +
 tests/data/acpi/pc/WAET.roothp                     |  Bin 0 -> 40 bytes
 tests/data/acpi/q35/APIC.acpihmat.dsl              |  112 +
 tests/data/acpi/q35/APIC.bridge                    |  Bin 0 -> 120 bytes
 tests/data/acpi/q35/APIC.bridge.dsl                |  104 +
 tests/data/acpi/q35/APIC.cphp.dsl                  |  146 +
 tests/data/acpi/q35/APIC.dimmpxm.dsl               |  129 +
 tests/data/acpi/q35/APIC.dsl                       |  104 +
 tests/data/acpi/q35/APIC.ipmibt                    |  Bin 0 -> 120 bytes
 tests/data/acpi/q35/APIC.ipmibt.dsl                |  104 +
 tests/data/acpi/q35/APIC.memhp                     |  Bin 0 -> 120 bytes
 tests/data/acpi/q35/APIC.memhp.dsl                 |  104 +
 tests/data/acpi/q35/APIC.mmio64                    |  Bin 0 -> 120 bytes
 tests/data/acpi/q35/APIC.mmio64.dsl                |  104 +
 tests/data/acpi/q35/APIC.numamem                   |  Bin 0 -> 120 bytes
 tests/data/acpi/q35/APIC.numamem.dsl               |  104 +
 tests/data/acpi/q35/APIC.tis                       |  Bin 0 -> 120 bytes
 tests/data/acpi/q35/APIC.tis.dsl                   |  104 +
 tests/data/acpi/q35/DSDT                           |  Bin 7678 -> 7796 bytes
 tests/data/acpi/q35/DSDT.acpihmat                  |  Bin 9002 -> 9121 bytes
 tests/data/acpi/q35/DSDT.acpihmat.dsl              | 3436 +++++++++++++++++++
 tests/data/acpi/q35/DSDT.bridge                    |  Bin 7695 -> 7814 bytes
 tests/data/acpi/q35/DSDT.bridge.dsl                | 3141 +++++++++++++++++
 tests/data/acpi/q35/DSDT.cphp                      |  Bin 8141 -> 8260 bytes
 tests/data/acpi/q35/DSDT.cphp.dsl                  | 3283 ++++++++++++++++++
 tests/data/acpi/q35/DSDT.dimmpxm                   |  Bin 9331 -> 9450 bytes
 tests/data/acpi/q35/DSDT.dimmpxm.dsl               | 3535 ++++++++++++++++++++
 tests/data/acpi/q35/DSDT.dsl                       | 3351 +++++++++++++++++++
 tests/data/acpi/q35/DSDT.ipmibt                    |  Bin 7753 -> 7871 bytes
 tests/data/acpi/q35/DSDT.ipmibt.dsl                | 3156 +++++++++++++++++
 tests/data/acpi/q35/DSDT.memhp                     |  Bin 9037 -> 9155 bytes
 tests/data/acpi/q35/DSDT.memhp.dsl                 | 3442 +++++++++++++++++++
 tests/data/acpi/q35/DSDT.mmio64                    |  Bin 8808 -> 8927 bytes
 tests/data/acpi/q35/DSDT.mmio64.dsl                | 3377 +++++++++++++++++++
 tests/data/acpi/q35/DSDT.numamem                   |  Bin 7684 -> 7802 bytes
 tests/data/acpi/q35/DSDT.numamem.dsl               | 3138 +++++++++++++++++
 tests/data/acpi/q35/DSDT.tis                       |  Bin 8283 -> 8402 bytes
 tests/data/acpi/q35/DSDT.tis.dsl                   | 3321 ++++++++++++++++++
 tests/data/acpi/q35/FACP.acpihmat                  |  Bin 0 -> 244 bytes
 tests/data/acpi/q35/FACP.acpihmat.dsl              |  179 +
 tests/data/acpi/q35/FACP.bridge                    |  Bin 0 -> 244 bytes
 tests/data/acpi/q35/FACP.bridge.dsl                |  179 +
 tests/data/acpi/q35/FACP.cphp                      |  Bin 0 -> 244 bytes
 tests/data/acpi/q35/FACP.cphp.dsl                  |  179 +
 tests/data/acpi/q35/FACP.dimmpxm                   |  Bin 0 -> 244 bytes
 tests/data/acpi/q35/FACP.dimmpxm.dsl               |  179 +
 tests/data/acpi/q35/FACP.dsl                       |  179 +
 tests/data/acpi/q35/FACP.ipmibt                    |  Bin 0 -> 244 bytes
 tests/data/acpi/q35/FACP.ipmibt.dsl                |  179 +
 tests/data/acpi/q35/FACP.memhp                     |  Bin 0 -> 244 bytes
 tests/data/acpi/q35/FACP.memhp.dsl                 |  179 +
 tests/data/acpi/q35/FACP.mmio64                    |  Bin 0 -> 244 bytes
 tests/data/acpi/q35/FACP.mmio64.dsl                |  179 +
 tests/data/acpi/q35/FACP.numamem                   |  Bin 0 -> 244 bytes
 tests/data/acpi/q35/FACP.numamem.dsl               |  179 +
 tests/data/acpi/q35/FACP.tis                       |  Bin 0 -> 244 bytes
 tests/data/acpi/q35/FACP.tis.dsl                   |  179 +
 tests/data/acpi/q35/FACS.acpihmat                  |  Bin 0 -> 64 bytes
 tests/data/acpi/q35/FACS.acpihmat.dsl              |   32 +
 tests/data/acpi/q35/FACS.bridge                    |  Bin 0 -> 64 bytes
 tests/data/acpi/q35/FACS.bridge.dsl                |   32 +
 tests/data/acpi/q35/FACS.cphp                      |  Bin 0 -> 64 bytes
 tests/data/acpi/q35/FACS.cphp.dsl                  |   32 +
 tests/data/acpi/q35/FACS.dimmpxm                   |  Bin 0 -> 64 bytes
 tests/data/acpi/q35/FACS.dimmpxm.dsl               |   32 +
 tests/data/acpi/q35/FACS.dsl                       |   32 +
 tests/data/acpi/q35/FACS.ipmibt                    |  Bin 0 -> 64 bytes
 tests/data/acpi/q35/FACS.ipmibt.dsl                |   32 +
 tests/data/acpi/q35/FACS.memhp                     |  Bin 0 -> 64 bytes
 tests/data/acpi/q35/FACS.memhp.dsl                 |   32 +
 tests/data/acpi/q35/FACS.mmio64                    |  Bin 0 -> 64 bytes
 tests/data/acpi/q35/FACS.mmio64.dsl                |   32 +
 tests/data/acpi/q35/FACS.numamem                   |  Bin 0 -> 64 bytes
 tests/data/acpi/q35/FACS.numamem.dsl               |   32 +
 tests/data/acpi/q35/FACS.tis                       |  Bin 0 -> 64 bytes
 tests/data/acpi/q35/FACS.tis.dsl                   |   32 +
 tests/data/acpi/q35/HMAT.acpihmat.dsl              |  132 +
 tests/data/acpi/q35/HMAT.dsl                       |  132 +
 tests/data/acpi/q35/HPET.acpihmat                  |  Bin 0 -> 56 bytes
 tests/data/acpi/q35/HPET.acpihmat.dsl              |   43 +
 tests/data/acpi/q35/HPET.bridge                    |  Bin 0 -> 56 bytes
 tests/data/acpi/q35/HPET.bridge.dsl                |   43 +
 tests/data/acpi/q35/HPET.cphp                      |  Bin 0 -> 56 bytes
 tests/data/acpi/q35/HPET.cphp.dsl                  |   43 +
 tests/data/acpi/q35/HPET.dimmpxm                   |  Bin 0 -> 56 bytes
 tests/data/acpi/q35/HPET.dimmpxm.dsl               |   43 +
 tests/data/acpi/q35/HPET.dsl                       |   43 +
 tests/data/acpi/q35/HPET.ipmibt                    |  Bin 0 -> 56 bytes
 tests/data/acpi/q35/HPET.ipmibt.dsl                |   43 +
 tests/data/acpi/q35/HPET.memhp                     |  Bin 0 -> 56 bytes
 tests/data/acpi/q35/HPET.memhp.dsl                 |   43 +
 tests/data/acpi/q35/HPET.mmio64                    |  Bin 0 -> 56 bytes
 tests/data/acpi/q35/HPET.mmio64.dsl                |   43 +
 tests/data/acpi/q35/HPET.numamem                   |  Bin 0 -> 56 bytes
 tests/data/acpi/q35/HPET.numamem.dsl               |   43 +
 tests/data/acpi/q35/HPET.tis                       |  Bin 0 -> 56 bytes
 tests/data/acpi/q35/HPET.tis.dsl                   |   43 +
 tests/data/acpi/q35/MCFG.acpihmat                  |  Bin 0 -> 60 bytes
 tests/data/acpi/q35/MCFG.acpihmat.dsl              |   36 +
 tests/data/acpi/q35/MCFG.bridge                    |  Bin 0 -> 60 bytes
 tests/data/acpi/q35/MCFG.bridge.dsl                |   36 +
 tests/data/acpi/q35/MCFG.cphp                      |  Bin 0 -> 60 bytes
 tests/data/acpi/q35/MCFG.cphp.dsl                  |   36 +
 tests/data/acpi/q35/MCFG.dimmpxm                   |  Bin 0 -> 60 bytes
 tests/data/acpi/q35/MCFG.dimmpxm.dsl               |   36 +
 tests/data/acpi/q35/MCFG.dsl                       |   36 +
 tests/data/acpi/q35/MCFG.ipmibt                    |  Bin 0 -> 60 bytes
 tests/data/acpi/q35/MCFG.ipmibt.dsl                |   36 +
 tests/data/acpi/q35/MCFG.memhp                     |  Bin 0 -> 60 bytes
 tests/data/acpi/q35/MCFG.memhp.dsl                 |   36 +
 tests/data/acpi/q35/MCFG.mmio64                    |  Bin 0 -> 60 bytes
 tests/data/acpi/q35/MCFG.mmio64.dsl                |   36 +
 tests/data/acpi/q35/MCFG.numamem                   |  Bin 0 -> 60 bytes
 tests/data/acpi/q35/MCFG.numamem.dsl               |   36 +
 tests/data/acpi/q35/MCFG.tis                       |  Bin 0 -> 60 bytes
 tests/data/acpi/q35/MCFG.tis.dsl                   |   36 +
 tests/data/acpi/q35/NFIT.dimmpxm.dsl               |  115 +
 tests/data/acpi/q35/NFIT.dsl                       |  115 +
 tests/data/acpi/q35/SLIT.cphp.dsl                  |   31 +
 tests/data/acpi/q35/SLIT.dsl                       |   31 +
 tests/data/acpi/q35/SLIT.memhp.dsl                 |   31 +
 tests/data/acpi/q35/SRAT.acpihmat.dsl              |  137 +
 tests/data/acpi/q35/SRAT.cphp.dsl                  |  168 +
 tests/data/acpi/q35/SRAT.dimmpxm.dsl               |  194 ++
 tests/data/acpi/q35/SRAT.dsl                       |  108 +
 tests/data/acpi/q35/SRAT.memhp.dsl                 |  125 +
 tests/data/acpi/q35/SRAT.mmio64.dsl                |  108 +
 tests/data/acpi/q35/SRAT.numamem.dsl               |  108 +
 tests/data/acpi/q35/SSDT.dsl                       |  205 ++
 tests/data/acpi/q35/TPM2.dsl                       |   38 +
 tests/data/acpi/q35/TPM2.tis.dsl                   |   38 +
 tests/data/acpi/q35/WAET.acpihmat                  |  Bin 0 -> 40 bytes
 tests/data/acpi/q35/WAET.acpihmat.dsl              |   31 +
 tests/data/acpi/q35/WAET.bridge                    |  Bin 0 -> 40 bytes
 tests/data/acpi/q35/WAET.bridge.dsl                |   31 +
 tests/data/acpi/q35/WAET.cphp                      |  Bin 0 -> 40 bytes
 tests/data/acpi/q35/WAET.cphp.dsl                  |   31 +
 tests/data/acpi/q35/WAET.dimmpxm                   |  Bin 0 -> 40 bytes
 tests/data/acpi/q35/WAET.dimmpxm.dsl               |   31 +
 tests/data/acpi/q35/WAET.dsl                       |   31 +
 tests/data/acpi/q35/WAET.ipmibt                    |  Bin 0 -> 40 bytes
 tests/data/acpi/q35/WAET.ipmibt.dsl                |   31 +
 tests/data/acpi/q35/WAET.memhp                     |  Bin 0 -> 40 bytes
 tests/data/acpi/q35/WAET.memhp.dsl                 |   31 +
 tests/data/acpi/q35/WAET.mmio64                    |  Bin 0 -> 40 bytes
 tests/data/acpi/q35/WAET.mmio64.dsl                |   31 +
 tests/data/acpi/q35/WAET.numamem                   |  Bin 0 -> 40 bytes
 tests/data/acpi/q35/WAET.numamem.dsl               |   31 +
 tests/data/acpi/q35/WAET.tis                       |  Bin 0 -> 40 bytes
 tests/data/acpi/q35/WAET.tis.dsl                   |   31 +
 tests/data/acpi/virt/APIC.dsl                      |   78 +
 tests/data/acpi/virt/APIC.memhp.dsl                |   78 +
 tests/data/acpi/virt/APIC.numamem.dsl              |   78 +
 tests/data/acpi/virt/DSDT.dsl                      | 1906 +++++++++++
 tests/data/acpi/virt/DSDT.memhp.dsl                | 2215 ++++++++++++
 tests/data/acpi/virt/DSDT.numamem.dsl              | 1906 +++++++++++
 tests/data/acpi/virt/FACP.dsl                      |  196 ++
 tests/data/acpi/virt/FACP.memhp.dsl                |  196 ++
 tests/data/acpi/virt/FACP.numamem.dsl              |  196 ++
 tests/data/acpi/virt/GTDT.dsl                      |   61 +
 tests/data/acpi/virt/GTDT.memhp.dsl                |   61 +
 tests/data/acpi/virt/GTDT.numamem.dsl              |   61 +
 tests/data/acpi/virt/MCFG.dsl                      |   36 +
 tests/data/acpi/virt/MCFG.memhp.dsl                |   36 +
 tests/data/acpi/virt/MCFG.numamem.dsl              |   36 +
 tests/data/acpi/virt/NFIT.dsl                      |  103 +
 tests/data/acpi/virt/NFIT.memhp.dsl                |  103 +
 tests/data/acpi/virt/SLIT.dsl                      |   31 +
 tests/data/acpi/virt/SLIT.memhp.dsl                |   31 +
 tests/data/acpi/virt/SPCR.dsl                      |   57 +
 tests/data/acpi/virt/SPCR.memhp.dsl                |   57 +
 tests/data/acpi/virt/SPCR.numamem.dsl              |   57 +
 tests/data/acpi/virt/SRAT.dsl                      |   57 +
 tests/data/acpi/virt/SRAT.memhp.dsl                |  107 +
 tests/data/acpi/virt/SRAT.numamem.dsl              |   57 +
 tests/data/acpi/virt/SSDT.dsl                      |  205 ++
 .../bios-tables-test.x86_64.iso.raw                |  Bin 0 -> 425984 bytes
 tests/libqtest.c.orig                              | 1106 ++++++
 tests/qemu-iotests/core.12067                      |  Bin 0 -> 22716416 bytes
 tests/qtest/bios-tables-test-allowed-diff.h.orig   |   18 +
 tests/qtest/bios-tables-test-allowed-diff.h.rej    |    9 +
 tests/qtest/bios-tables-test.c.orig                | 1200 +++++++
 tests/qtest/bios-tables-test.c.rej                 |   22 +
 tests/vhost-user-bridge                            |  Bin 0 -> 83120 bytes
 tests/vhost-user-bridge.c.orig                     | 1432 ++++++++
 tests/vhost-user-test.c.orig                       |  364 ++
 394 files changed, 72814 insertions(+), 419 deletions(-)
 create mode 100644 tests/test-qapi-event.c
 create mode 100644 tests/test-qmp-introspect.c
 create mode 100644 tests/test-qmp-marshal.c
 create mode 100644 tests/.vhost-user-test.c.swo
 create mode 100644 tests/Makefile.include.orig
 create mode 100644 tests/Makefile.orig
 create mode 100644 tests/bios-tables-test.c.orig
 create mode 100644 tests/data/acpi/diff-aml.sh
 create mode 100644 tests/data/acpi/disassemle-aml.py
 create mode 100644 tests/data/acpi/microvm/APIC.dsl
 create mode 100644 tests/data/acpi/microvm/DSDT.dsl
 create mode 100644 tests/data/acpi/microvm/FACP.dsl
 create mode 100644 tests/data/acpi/pc/APIC.acpihmat.dsl
 create mode 100644 tests/data/acpi/pc/APIC.bridge
 create mode 100644 tests/data/acpi/pc/APIC.bridge.dsl
 create mode 100644 tests/data/acpi/pc/APIC.cphp.dsl
 create mode 100644 tests/data/acpi/pc/APIC.dimmpxm.dsl
 create mode 100644 tests/data/acpi/pc/APIC.dsl
 create mode 100644 tests/data/acpi/pc/APIC.hpbridge
 create mode 100644 tests/data/acpi/pc/APIC.ipmikcs
 create mode 100644 tests/data/acpi/pc/APIC.ipmikcs.dsl
 create mode 100644 tests/data/acpi/pc/APIC.memhp
 create mode 100644 tests/data/acpi/pc/APIC.memhp.dsl
 create mode 100644 tests/data/acpi/pc/APIC.numamem
 create mode 100644 tests/data/acpi/pc/APIC.numamem.dsl
 create mode 100644 tests/data/acpi/pc/APIC.roothp
 create mode 100644 tests/data/acpi/pc/DSDT.acpihmat.dsl
 create mode 100644 tests/data/acpi/pc/DSDT.bridge.dsl
 create mode 100644 tests/data/acpi/pc/DSDT.cphp.dsl
 create mode 100644 tests/data/acpi/pc/DSDT.dimmpxm.dsl
 create mode 100644 tests/data/acpi/pc/DSDT.dsl
 create mode 100644 tests/data/acpi/pc/DSDT.hpbridge
 create mode 100644 tests/data/acpi/pc/DSDT.ipmikcs.dsl
 create mode 100644 tests/data/acpi/pc/DSDT.memhp.dsl
 create mode 100644 tests/data/acpi/pc/DSDT.numamem.dsl
 create mode 100644 tests/data/acpi/pc/DSDT.roothp
 create mode 100644 tests/data/acpi/pc/FACP.acpihmat
 create mode 100644 tests/data/acpi/pc/FACP.acpihmat.dsl
 create mode 100644 tests/data/acpi/pc/FACP.bridge
 create mode 100644 tests/data/acpi/pc/FACP.bridge.dsl
 create mode 100644 tests/data/acpi/pc/FACP.cphp
 create mode 100644 tests/data/acpi/pc/FACP.cphp.dsl
 create mode 100644 tests/data/acpi/pc/FACP.dimmpxm
 create mode 100644 tests/data/acpi/pc/FACP.dimmpxm.dsl
 create mode 100644 tests/data/acpi/pc/FACP.dsl
 create mode 100644 tests/data/acpi/pc/FACP.hpbridge
 create mode 100644 tests/data/acpi/pc/FACP.ipmikcs
 create mode 100644 tests/data/acpi/pc/FACP.ipmikcs.dsl
 create mode 100644 tests/data/acpi/pc/FACP.memhp
 create mode 100644 tests/data/acpi/pc/FACP.memhp.dsl
 create mode 100644 tests/data/acpi/pc/FACP.numamem
 create mode 100644 tests/data/acpi/pc/FACP.numamem.dsl
 create mode 100644 tests/data/acpi/pc/FACP.roothp
 create mode 100644 tests/data/acpi/pc/FACS.acpihmat
 create mode 100644 tests/data/acpi/pc/FACS.acpihmat.dsl
 create mode 100644 tests/data/acpi/pc/FACS.bridge
 create mode 100644 tests/data/acpi/pc/FACS.bridge.dsl
 create mode 100644 tests/data/acpi/pc/FACS.cphp
 create mode 100644 tests/data/acpi/pc/FACS.cphp.dsl
 create mode 100644 tests/data/acpi/pc/FACS.dimmpxm
 create mode 100644 tests/data/acpi/pc/FACS.dimmpxm.dsl
 create mode 100644 tests/data/acpi/pc/FACS.dsl
 create mode 100644 tests/data/acpi/pc/FACS.hpbridge
 create mode 100644 tests/data/acpi/pc/FACS.ipmikcs
 create mode 100644 tests/data/acpi/pc/FACS.ipmikcs.dsl
 create mode 100644 tests/data/acpi/pc/FACS.memhp
 create mode 100644 tests/data/acpi/pc/FACS.memhp.dsl
 create mode 100644 tests/data/acpi/pc/FACS.numamem
 create mode 100644 tests/data/acpi/pc/FACS.numamem.dsl
 create mode 100644 tests/data/acpi/pc/FACS.roothp
 create mode 100644 tests/data/acpi/pc/HMAT.acpihmat.dsl
 create mode 100644 tests/data/acpi/pc/HMAT.dsl
 create mode 100644 tests/data/acpi/pc/HPET.acpihmat
 create mode 100644 tests/data/acpi/pc/HPET.acpihmat.dsl
 create mode 100644 tests/data/acpi/pc/HPET.bridge
 create mode 100644 tests/data/acpi/pc/HPET.bridge.dsl
 create mode 100644 tests/data/acpi/pc/HPET.cphp
 create mode 100644 tests/data/acpi/pc/HPET.cphp.dsl
 create mode 100644 tests/data/acpi/pc/HPET.dimmpxm
 create mode 100644 tests/data/acpi/pc/HPET.dimmpxm.dsl
 create mode 100644 tests/data/acpi/pc/HPET.dsl
 create mode 100644 tests/data/acpi/pc/HPET.hpbridge
 create mode 100644 tests/data/acpi/pc/HPET.ipmikcs
 create mode 100644 tests/data/acpi/pc/HPET.ipmikcs.dsl
 create mode 100644 tests/data/acpi/pc/HPET.memhp
 create mode 100644 tests/data/acpi/pc/HPET.memhp.dsl
 create mode 100644 tests/data/acpi/pc/HPET.numamem
 create mode 100644 tests/data/acpi/pc/HPET.numamem.dsl
 create mode 100644 tests/data/acpi/pc/HPET.roothp
 create mode 100644 tests/data/acpi/pc/NFIT.dimmpxm.dsl
 create mode 100644 tests/data/acpi/pc/NFIT.dsl
 create mode 100644 tests/data/acpi/pc/SLIT.cphp.dsl
 create mode 100644 tests/data/acpi/pc/SLIT.dsl
 create mode 100644 tests/data/acpi/pc/SLIT.memhp.dsl
 create mode 100644 tests/data/acpi/pc/SRAT.acpihmat.dsl
 create mode 100644 tests/data/acpi/pc/SRAT.cphp.dsl
 create mode 100644 tests/data/acpi/pc/SRAT.dimmpxm.dsl
 create mode 100644 tests/data/acpi/pc/SRAT.dsl
 create mode 100644 tests/data/acpi/pc/SRAT.memhp.dsl
 create mode 100644 tests/data/acpi/pc/SRAT.numamem.dsl
 create mode 100644 tests/data/acpi/pc/SSDT.dsl
 create mode 100644 tests/data/acpi/pc/WAET.acpihmat
 create mode 100644 tests/data/acpi/pc/WAET.acpihmat.dsl
 create mode 100644 tests/data/acpi/pc/WAET.bridge
 create mode 100644 tests/data/acpi/pc/WAET.bridge.dsl
 create mode 100644 tests/data/acpi/pc/WAET.cphp
 create mode 100644 tests/data/acpi/pc/WAET.cphp.dsl
 create mode 100644 tests/data/acpi/pc/WAET.dimmpxm
 create mode 100644 tests/data/acpi/pc/WAET.dimmpxm.dsl
 create mode 100644 tests/data/acpi/pc/WAET.dsl
 create mode 100644 tests/data/acpi/pc/WAET.hpbridge
 create mode 100644 tests/data/acpi/pc/WAET.ipmikcs
 create mode 100644 tests/data/acpi/pc/WAET.ipmikcs.dsl
 create mode 100644 tests/data/acpi/pc/WAET.memhp
 create mode 100644 tests/data/acpi/pc/WAET.memhp.dsl
 create mode 100644 tests/data/acpi/pc/WAET.numamem
 create mode 100644 tests/data/acpi/pc/WAET.numamem.dsl
 create mode 100644 tests/data/acpi/pc/WAET.roothp
 create mode 100644 tests/data/acpi/q35/APIC.acpihmat.dsl
 create mode 100644 tests/data/acpi/q35/APIC.bridge
 create mode 100644 tests/data/acpi/q35/APIC.bridge.dsl
 create mode 100644 tests/data/acpi/q35/APIC.cphp.dsl
 create mode 100644 tests/data/acpi/q35/APIC.dimmpxm.dsl
 create mode 100644 tests/data/acpi/q35/APIC.dsl
 create mode 100644 tests/data/acpi/q35/APIC.ipmibt
 create mode 100644 tests/data/acpi/q35/APIC.ipmibt.dsl
 create mode 100644 tests/data/acpi/q35/APIC.memhp
 create mode 100644 tests/data/acpi/q35/APIC.memhp.dsl
 create mode 100644 tests/data/acpi/q35/APIC.mmio64
 create mode 100644 tests/data/acpi/q35/APIC.mmio64.dsl
 create mode 100644 tests/data/acpi/q35/APIC.numamem
 create mode 100644 tests/data/acpi/q35/APIC.numamem.dsl
 create mode 100644 tests/data/acpi/q35/APIC.tis
 create mode 100644 tests/data/acpi/q35/APIC.tis.dsl
 create mode 100644 tests/data/acpi/q35/DSDT.acpihmat.dsl
 create mode 100644 tests/data/acpi/q35/DSDT.bridge.dsl
 create mode 100644 tests/data/acpi/q35/DSDT.cphp.dsl
 create mode 100644 tests/data/acpi/q35/DSDT.dimmpxm.dsl
 create mode 100644 tests/data/acpi/q35/DSDT.dsl
 create mode 100644 tests/data/acpi/q35/DSDT.ipmibt.dsl
 create mode 100644 tests/data/acpi/q35/DSDT.memhp.dsl
 create mode 100644 tests/data/acpi/q35/DSDT.mmio64.dsl
 create mode 100644 tests/data/acpi/q35/DSDT.numamem.dsl
 create mode 100644 tests/data/acpi/q35/DSDT.tis.dsl
 create mode 100644 tests/data/acpi/q35/FACP.acpihmat
 create mode 100644 tests/data/acpi/q35/FACP.acpihmat.dsl
 create mode 100644 tests/data/acpi/q35/FACP.bridge
 create mode 100644 tests/data/acpi/q35/FACP.bridge.dsl
 create mode 100644 tests/data/acpi/q35/FACP.cphp
 create mode 100644 tests/data/acpi/q35/FACP.cphp.dsl
 create mode 100644 tests/data/acpi/q35/FACP.dimmpxm
 create mode 100644 tests/data/acpi/q35/FACP.dimmpxm.dsl
 create mode 100644 tests/data/acpi/q35/FACP.dsl
 create mode 100644 tests/data/acpi/q35/FACP.ipmibt
 create mode 100644 tests/data/acpi/q35/FACP.ipmibt.dsl
 create mode 100644 tests/data/acpi/q35/FACP.memhp
 create mode 100644 tests/data/acpi/q35/FACP.memhp.dsl
 create mode 100644 tests/data/acpi/q35/FACP.mmio64
 create mode 100644 tests/data/acpi/q35/FACP.mmio64.dsl
 create mode 100644 tests/data/acpi/q35/FACP.numamem
 create mode 100644 tests/data/acpi/q35/FACP.numamem.dsl
 create mode 100644 tests/data/acpi/q35/FACP.tis
 create mode 100644 tests/data/acpi/q35/FACP.tis.dsl
 create mode 100644 tests/data/acpi/q35/FACS.acpihmat
 create mode 100644 tests/data/acpi/q35/FACS.acpihmat.dsl
 create mode 100644 tests/data/acpi/q35/FACS.bridge
 create mode 100644 tests/data/acpi/q35/FACS.bridge.dsl
 create mode 100644 tests/data/acpi/q35/FACS.cphp
 create mode 100644 tests/data/acpi/q35/FACS.cphp.dsl
 create mode 100644 tests/data/acpi/q35/FACS.dimmpxm
 create mode 100644 tests/data/acpi/q35/FACS.dimmpxm.dsl
 create mode 100644 tests/data/acpi/q35/FACS.dsl
 create mode 100644 tests/data/acpi/q35/FACS.ipmibt
 create mode 100644 tests/data/acpi/q35/FACS.ipmibt.dsl
 create mode 100644 tests/data/acpi/q35/FACS.memhp
 create mode 100644 tests/data/acpi/q35/FACS.memhp.dsl
 create mode 100644 tests/data/acpi/q35/FACS.mmio64
 create mode 100644 tests/data/acpi/q35/FACS.mmio64.dsl
 create mode 100644 tests/data/acpi/q35/FACS.numamem
 create mode 100644 tests/data/acpi/q35/FACS.numamem.dsl
 create mode 100644 tests/data/acpi/q35/FACS.tis
 create mode 100644 tests/data/acpi/q35/FACS.tis.dsl
 create mode 100644 tests/data/acpi/q35/HMAT.acpihmat.dsl
 create mode 100644 tests/data/acpi/q35/HMAT.dsl
 create mode 100644 tests/data/acpi/q35/HPET.acpihmat
 create mode 100644 tests/data/acpi/q35/HPET.acpihmat.dsl
 create mode 100644 tests/data/acpi/q35/HPET.bridge
 create mode 100644 tests/data/acpi/q35/HPET.bridge.dsl
 create mode 100644 tests/data/acpi/q35/HPET.cphp
 create mode 100644 tests/data/acpi/q35/HPET.cphp.dsl
 create mode 100644 tests/data/acpi/q35/HPET.dimmpxm
 create mode 100644 tests/data/acpi/q35/HPET.dimmpxm.dsl
 create mode 100644 tests/data/acpi/q35/HPET.dsl
 create mode 100644 tests/data/acpi/q35/HPET.ipmibt
 create mode 100644 tests/data/acpi/q35/HPET.ipmibt.dsl
 create mode 100644 tests/data/acpi/q35/HPET.memhp
 create mode 100644 tests/data/acpi/q35/HPET.memhp.dsl
 create mode 100644 tests/data/acpi/q35/HPET.mmio64
 create mode 100644 tests/data/acpi/q35/HPET.mmio64.dsl
 create mode 100644 tests/data/acpi/q35/HPET.numamem
 create mode 100644 tests/data/acpi/q35/HPET.numamem.dsl
 create mode 100644 tests/data/acpi/q35/HPET.tis
 create mode 100644 tests/data/acpi/q35/HPET.tis.dsl
 create mode 100644 tests/data/acpi/q35/MCFG.acpihmat
 create mode 100644 tests/data/acpi/q35/MCFG.acpihmat.dsl
 create mode 100644 tests/data/acpi/q35/MCFG.bridge
 create mode 100644 tests/data/acpi/q35/MCFG.bridge.dsl
 create mode 100644 tests/data/acpi/q35/MCFG.cphp
 create mode 100644 tests/data/acpi/q35/MCFG.cphp.dsl
 create mode 100644 tests/data/acpi/q35/MCFG.dimmpxm
 create mode 100644 tests/data/acpi/q35/MCFG.dimmpxm.dsl
 create mode 100644 tests/data/acpi/q35/MCFG.dsl
 create mode 100644 tests/data/acpi/q35/MCFG.ipmibt
 create mode 100644 tests/data/acpi/q35/MCFG.ipmibt.dsl
 create mode 100644 tests/data/acpi/q35/MCFG.memhp
 create mode 100644 tests/data/acpi/q35/MCFG.memhp.dsl
 create mode 100644 tests/data/acpi/q35/MCFG.mmio64
 create mode 100644 tests/data/acpi/q35/MCFG.mmio64.dsl
 create mode 100644 tests/data/acpi/q35/MCFG.numamem
 create mode 100644 tests/data/acpi/q35/MCFG.numamem.dsl
 create mode 100644 tests/data/acpi/q35/MCFG.tis
 create mode 100644 tests/data/acpi/q35/MCFG.tis.dsl
 create mode 100644 tests/data/acpi/q35/NFIT.dimmpxm.dsl
 create mode 100644 tests/data/acpi/q35/NFIT.dsl
 create mode 100644 tests/data/acpi/q35/SLIT.cphp.dsl
 create mode 100644 tests/data/acpi/q35/SLIT.dsl
 create mode 100644 tests/data/acpi/q35/SLIT.memhp.dsl
 create mode 100644 tests/data/acpi/q35/SRAT.acpihmat.dsl
 create mode 100644 tests/data/acpi/q35/SRAT.cphp.dsl
 create mode 100644 tests/data/acpi/q35/SRAT.dimmpxm.dsl
 create mode 100644 tests/data/acpi/q35/SRAT.dsl
 create mode 100644 tests/data/acpi/q35/SRAT.memhp.dsl
 create mode 100644 tests/data/acpi/q35/SRAT.mmio64.dsl
 create mode 100644 tests/data/acpi/q35/SRAT.numamem.dsl
 create mode 100644 tests/data/acpi/q35/SSDT.dsl
 create mode 100644 tests/data/acpi/q35/TPM2.dsl
 create mode 100644 tests/data/acpi/q35/TPM2.tis.dsl
 create mode 100644 tests/data/acpi/q35/WAET.acpihmat
 create mode 100644 tests/data/acpi/q35/WAET.acpihmat.dsl
 create mode 100644 tests/data/acpi/q35/WAET.bridge
 create mode 100644 tests/data/acpi/q35/WAET.bridge.dsl
 create mode 100644 tests/data/acpi/q35/WAET.cphp
 create mode 100644 tests/data/acpi/q35/WAET.cphp.dsl
 create mode 100644 tests/data/acpi/q35/WAET.dimmpxm
 create mode 100644 tests/data/acpi/q35/WAET.dimmpxm.dsl
 create mode 100644 tests/data/acpi/q35/WAET.dsl
 create mode 100644 tests/data/acpi/q35/WAET.ipmibt
 create mode 100644 tests/data/acpi/q35/WAET.ipmibt.dsl
 create mode 100644 tests/data/acpi/q35/WAET.memhp
 create mode 100644 tests/data/acpi/q35/WAET.memhp.dsl
 create mode 100644 tests/data/acpi/q35/WAET.mmio64
 create mode 100644 tests/data/acpi/q35/WAET.mmio64.dsl
 create mode 100644 tests/data/acpi/q35/WAET.numamem
 create mode 100644 tests/data/acpi/q35/WAET.numamem.dsl
 create mode 100644 tests/data/acpi/q35/WAET.tis
 create mode 100644 tests/data/acpi/q35/WAET.tis.dsl
 create mode 100644 tests/data/acpi/virt/APIC.dsl
 create mode 100644 tests/data/acpi/virt/APIC.memhp.dsl
 create mode 100644 tests/data/acpi/virt/APIC.numamem.dsl
 create mode 100644 tests/data/acpi/virt/DSDT.dsl
 create mode 100644 tests/data/acpi/virt/DSDT.memhp.dsl
 create mode 100644 tests/data/acpi/virt/DSDT.numamem.dsl
 create mode 100644 tests/data/acpi/virt/FACP.dsl
 create mode 100644 tests/data/acpi/virt/FACP.memhp.dsl
 create mode 100644 tests/data/acpi/virt/FACP.numamem.dsl
 create mode 100644 tests/data/acpi/virt/GTDT.dsl
 create mode 100644 tests/data/acpi/virt/GTDT.memhp.dsl
 create mode 100644 tests/data/acpi/virt/GTDT.numamem.dsl
 create mode 100644 tests/data/acpi/virt/MCFG.dsl
 create mode 100644 tests/data/acpi/virt/MCFG.memhp.dsl
 create mode 100644 tests/data/acpi/virt/MCFG.numamem.dsl
 create mode 100644 tests/data/acpi/virt/NFIT.dsl
 create mode 100644 tests/data/acpi/virt/NFIT.memhp.dsl
 create mode 100644 tests/data/acpi/virt/SLIT.dsl
 create mode 100644 tests/data/acpi/virt/SLIT.memhp.dsl
 create mode 100644 tests/data/acpi/virt/SPCR.dsl
 create mode 100644 tests/data/acpi/virt/SPCR.memhp.dsl
 create mode 100644 tests/data/acpi/virt/SPCR.numamem.dsl
 create mode 100644 tests/data/acpi/virt/SRAT.dsl
 create mode 100644 tests/data/acpi/virt/SRAT.memhp.dsl
 create mode 100644 tests/data/acpi/virt/SRAT.numamem.dsl
 create mode 100644 tests/data/acpi/virt/SSDT.dsl
 create mode 100644 tests/data/uefi-boot-images/bios-tables-test.x86_64.iso.raw
 create mode 100644 tests/libqtest.c.orig
 create mode 100644 tests/qemu-iotests/core.12067
 create mode 100644 tests/qtest/bios-tables-test-allowed-diff.h.orig
 create mode 100644 tests/qtest/bios-tables-test-allowed-diff.h.rej
 create mode 100644 tests/qtest/bios-tables-test.c.orig
 create mode 100644 tests/qtest/bios-tables-test.c.rej
 create mode 100755 tests/vhost-user-bridge
 create mode 100644 tests/vhost-user-bridge.c.orig
 create mode 100644 tests/vhost-user-test.c.orig



^ permalink raw reply	[flat|nested] 63+ messages in thread

* [PULL v4 01/48] linux headers: sync to 5.9-rc4
  2020-09-29  7:20 [PULL v4 00/48] virtio,pc,acpi: fixes, tests Michael S. Tsirkin
@ 2020-09-29  7:20   ` Michael S. Tsirkin
  2020-09-29  7:20 ` [PULL v4 03/48] vhost-vdpa: batch updating IOTLB mappings Michael S. Tsirkin
                     ` (50 subsequent siblings)
  51 siblings, 0 replies; 63+ messages in thread
From: Michael S. Tsirkin @ 2020-09-29  7:20 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell, Jason Wang, Cornelia Huck, Paolo Bonzini, kvm

From: Jason Wang <jasowang@redhat.com>

Update against Linux 5.9-rc4.

Cc: Cornelia Huck <cohuck@redhat.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Jason Wang <jasowang@redhat.com>
Message-Id: <20200907104903.31551-2-jasowang@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
 include/standard-headers/drm/drm_fourcc.h     | 140 ++++++++++++++++++
 include/standard-headers/linux/ethtool.h      |  87 +++++++++++
 .../linux/input-event-codes.h                 |   3 +-
 include/standard-headers/linux/vhost_types.h  |  11 ++
 include/standard-headers/linux/virtio_9p.h    |   4 +-
 include/standard-headers/linux/virtio_blk.h   |  26 ++--
 .../standard-headers/linux/virtio_config.h    |   8 +-
 .../standard-headers/linux/virtio_console.h   |   8 +-
 include/standard-headers/linux/virtio_net.h   |   6 +-
 include/standard-headers/linux/virtio_scsi.h  |  20 +--
 linux-headers/asm-generic/unistd.h            |   6 +-
 linux-headers/asm-mips/unistd_n32.h           |   1 +
 linux-headers/asm-mips/unistd_n64.h           |   1 +
 linux-headers/asm-mips/unistd_o32.h           |   1 +
 linux-headers/asm-powerpc/kvm.h               |   5 +
 linux-headers/asm-powerpc/unistd_32.h         |   1 +
 linux-headers/asm-powerpc/unistd_64.h         |   1 +
 linux-headers/asm-s390/kvm.h                  |   7 +-
 linux-headers/asm-s390/unistd_32.h            |   1 +
 linux-headers/asm-s390/unistd_64.h            |   1 +
 linux-headers/asm-x86/unistd_32.h             |   1 +
 linux-headers/asm-x86/unistd_64.h             |   1 +
 linux-headers/asm-x86/unistd_x32.h            |   1 +
 linux-headers/linux/kvm.h                     |   4 +
 linux-headers/linux/vfio.h                    |   2 +-
 linux-headers/linux/vhost.h                   |   2 +
 26 files changed, 308 insertions(+), 41 deletions(-)

diff --git a/include/standard-headers/drm/drm_fourcc.h b/include/standard-headers/drm/drm_fourcc.h
index 909a66753c..0de1a552ca 100644
--- a/include/standard-headers/drm/drm_fourcc.h
+++ b/include/standard-headers/drm/drm_fourcc.h
@@ -235,6 +235,12 @@ extern "C" {
 #define DRM_FORMAT_NV61		fourcc_code('N', 'V', '6', '1') /* 2x1 subsampled Cb:Cr plane */
 #define DRM_FORMAT_NV24		fourcc_code('N', 'V', '2', '4') /* non-subsampled Cr:Cb plane */
 #define DRM_FORMAT_NV42		fourcc_code('N', 'V', '4', '2') /* non-subsampled Cb:Cr plane */
+/*
+ * 2 plane YCbCr
+ * index 0 = Y plane, [39:0] Y3:Y2:Y1:Y0 little endian
+ * index 1 = Cr:Cb plane, [39:0] Cr1:Cb1:Cr0:Cb0 little endian
+ */
+#define DRM_FORMAT_NV15		fourcc_code('N', 'V', '1', '5') /* 2x2 subsampled Cr:Cb plane */
 
 /*
  * 2 plane YCbCr MSB aligned
@@ -264,6 +270,22 @@ extern "C" {
  */
 #define DRM_FORMAT_P016		fourcc_code('P', '0', '1', '6') /* 2x2 subsampled Cr:Cb plane 16 bits per channel */
 
+/* 3 plane non-subsampled (444) YCbCr
+ * 16 bits per component, but only 10 bits are used and 6 bits are padded
+ * index 0: Y plane, [15:0] Y:x [10:6] little endian
+ * index 1: Cb plane, [15:0] Cb:x [10:6] little endian
+ * index 2: Cr plane, [15:0] Cr:x [10:6] little endian
+ */
+#define DRM_FORMAT_Q410		fourcc_code('Q', '4', '1', '0')
+
+/* 3 plane non-subsampled (444) YCrCb
+ * 16 bits per component, but only 10 bits are used and 6 bits are padded
+ * index 0: Y plane, [15:0] Y:x [10:6] little endian
+ * index 1: Cr plane, [15:0] Cr:x [10:6] little endian
+ * index 2: Cb plane, [15:0] Cb:x [10:6] little endian
+ */
+#define DRM_FORMAT_Q401		fourcc_code('Q', '4', '0', '1')
+
 /*
  * 3 plane YCbCr
  * index 0: Y plane, [7:0] Y
@@ -308,6 +330,7 @@ extern "C" {
 #define DRM_FORMAT_MOD_VENDOR_BROADCOM 0x07
 #define DRM_FORMAT_MOD_VENDOR_ARM     0x08
 #define DRM_FORMAT_MOD_VENDOR_ALLWINNER 0x09
+#define DRM_FORMAT_MOD_VENDOR_AMLOGIC 0x0a
 
 /* add more to the end as needed */
 
@@ -322,8 +345,33 @@ extern "C" {
  * When adding a new token please document the layout with a code comment,
  * similar to the fourcc codes above. drm_fourcc.h is considered the
  * authoritative source for all of these.
+ *
+ * Generic modifier names:
+ *
+ * DRM_FORMAT_MOD_GENERIC_* definitions are used to provide vendor-neutral names
+ * for layouts which are common across multiple vendors. To preserve
+ * compatibility, in cases where a vendor-specific definition already exists and
+ * a generic name for it is desired, the common name is a purely symbolic alias
+ * and must use the same numerical value as the original definition.
+ *
+ * Note that generic names should only be used for modifiers which describe
+ * generic layouts (such as pixel re-ordering), which may have
+ * independently-developed support across multiple vendors.
+ *
+ * In future cases where a generic layout is identified before merging with a
+ * vendor-specific modifier, a new 'GENERIC' vendor or modifier using vendor
+ * 'NONE' could be considered. This should only be for obvious, exceptional
+ * cases to avoid polluting the 'GENERIC' namespace with modifiers which only
+ * apply to a single vendor.
+ *
+ * Generic names should not be used for cases where multiple hardware vendors
+ * have implementations of the same standardised compression scheme (such as
+ * AFBC). In those cases, all implementations should use the same format
+ * modifier(s), reflecting the vendor of the standard.
  */
 
+#define DRM_FORMAT_MOD_GENERIC_16_16_TILE DRM_FORMAT_MOD_SAMSUNG_16_16_TILE
+
 /*
  * Invalid Modifier
  *
@@ -891,6 +939,18 @@ drm_fourcc_canonicalize_nvidia_format_mod(uint64_t modifier)
  */
 #define AFBC_FORMAT_MOD_BCH     (1ULL << 11)
 
+/* AFBC uncompressed storage mode
+ *
+ * Indicates that the buffer is using AFBC uncompressed storage mode.
+ * In this mode all superblock payloads in the buffer use the uncompressed
+ * storage mode, which is usually only used for data which cannot be compressed.
+ * The buffer layout is the same as for AFBC buffers without USM set, this only
+ * affects the storage mode of the individual superblocks. Note that even a
+ * buffer without USM set may use uncompressed storage mode for some or all
+ * superblocks, USM just guarantees it for all.
+ */
+#define AFBC_FORMAT_MOD_USM	(1ULL << 12)
+
 /*
  * Arm 16x16 Block U-Interleaved modifier
  *
@@ -915,6 +975,86 @@ drm_fourcc_canonicalize_nvidia_format_mod(uint64_t modifier)
  */
 #define DRM_FORMAT_MOD_ALLWINNER_TILED fourcc_mod_code(ALLWINNER, 1)
 
+/*
+ * Amlogic Video Framebuffer Compression modifiers
+ *
+ * Amlogic uses a proprietary lossless image compression protocol and format
+ * for their hardware video codec accelerators, either video decoders or
+ * video input encoders.
+ *
+ * It considerably reduces memory bandwidth while writing and reading
+ * frames in memory.
+ *
+ * The underlying storage is considered to be 3 components, 8bit or 10-bit
+ * per component YCbCr 420, single plane :
+ * - DRM_FORMAT_YUV420_8BIT
+ * - DRM_FORMAT_YUV420_10BIT
+ *
+ * The first 8 bits of the mode defines the layout, then the following 8 bits
+ * defines the options changing the layout.
+ *
+ * Not all combinations are valid, and different SoCs may support different
+ * combinations of layout and options.
+ */
+#define __fourcc_mod_amlogic_layout_mask 0xf
+#define __fourcc_mod_amlogic_options_shift 8
+#define __fourcc_mod_amlogic_options_mask 0xf
+
+#define DRM_FORMAT_MOD_AMLOGIC_FBC(__layout, __options) \
+	fourcc_mod_code(AMLOGIC, \
+			((__layout) & __fourcc_mod_amlogic_layout_mask) | \
+			(((__options) & __fourcc_mod_amlogic_options_mask) \
+			 << __fourcc_mod_amlogic_options_shift))
+
+/* Amlogic FBC Layouts */
+
+/*
+ * Amlogic FBC Basic Layout
+ *
+ * The basic layout is composed of:
+ * - a body content organized in 64x32 superblocks with 4096 bytes per
+ *   superblock in default mode.
+ * - a 32 bytes per 128x64 header block
+ *
+ * This layout is transferrable between Amlogic SoCs supporting this modifier.
+ */
+#define AMLOGIC_FBC_LAYOUT_BASIC		(1ULL)
+
+/*
+ * Amlogic FBC Scatter Memory layout
+ *
+ * Indicates the header contains IOMMU references to the compressed
+ * frames content to optimize memory access and layout.
+ *
+ * In this mode, only the header memory address is needed, thus the
+ * content memory organization is tied to the current producer
+ * execution and cannot be saved/dumped neither transferrable between
+ * Amlogic SoCs supporting this modifier.
+ *
+ * Due to the nature of the layout, these buffers are not expected to
+ * be accessible by the user-space clients, but only accessible by the
+ * hardware producers and consumers.
+ *
+ * The user-space clients should expect a failure while trying to mmap
+ * the DMA-BUF handle returned by the producer.
+ */
+#define AMLOGIC_FBC_LAYOUT_SCATTER		(2ULL)
+
+/* Amlogic FBC Layout Options Bit Mask */
+
+/*
+ * Amlogic FBC Memory Saving mode
+ *
+ * Indicates the storage is packed when pixel size is multiple of word
+ * boudaries, i.e. 8bit should be stored in this mode to save allocation
+ * memory.
+ *
+ * This mode reduces body layout to 3072 bytes per 64x32 superblock with
+ * the basic layout and 3200 bytes per 64x32 superblock combined with
+ * the scatter layout.
+ */
+#define AMLOGIC_FBC_OPTION_MEM_SAVING		(1ULL << 0)
+
 #if defined(__cplusplus)
 }
 #endif
diff --git a/include/standard-headers/linux/ethtool.h b/include/standard-headers/linux/ethtool.h
index fd8d2cccfe..e13eff4488 100644
--- a/include/standard-headers/linux/ethtool.h
+++ b/include/standard-headers/linux/ethtool.h
@@ -579,6 +579,76 @@ struct ethtool_pauseparam {
 	uint32_t	tx_pause;
 };
 
+/**
+ * enum ethtool_link_ext_state - link extended state
+ */
+enum ethtool_link_ext_state {
+	ETHTOOL_LINK_EXT_STATE_AUTONEG,
+	ETHTOOL_LINK_EXT_STATE_LINK_TRAINING_FAILURE,
+	ETHTOOL_LINK_EXT_STATE_LINK_LOGICAL_MISMATCH,
+	ETHTOOL_LINK_EXT_STATE_BAD_SIGNAL_INTEGRITY,
+	ETHTOOL_LINK_EXT_STATE_NO_CABLE,
+	ETHTOOL_LINK_EXT_STATE_CABLE_ISSUE,
+	ETHTOOL_LINK_EXT_STATE_EEPROM_ISSUE,
+	ETHTOOL_LINK_EXT_STATE_CALIBRATION_FAILURE,
+	ETHTOOL_LINK_EXT_STATE_POWER_BUDGET_EXCEEDED,
+	ETHTOOL_LINK_EXT_STATE_OVERHEAT,
+};
+
+/**
+ * enum ethtool_link_ext_substate_autoneg - more information in addition to
+ * ETHTOOL_LINK_EXT_STATE_AUTONEG.
+ */
+enum ethtool_link_ext_substate_autoneg {
+	ETHTOOL_LINK_EXT_SUBSTATE_AN_NO_PARTNER_DETECTED = 1,
+	ETHTOOL_LINK_EXT_SUBSTATE_AN_ACK_NOT_RECEIVED,
+	ETHTOOL_LINK_EXT_SUBSTATE_AN_NEXT_PAGE_EXCHANGE_FAILED,
+	ETHTOOL_LINK_EXT_SUBSTATE_AN_NO_PARTNER_DETECTED_FORCE_MODE,
+	ETHTOOL_LINK_EXT_SUBSTATE_AN_FEC_MISMATCH_DURING_OVERRIDE,
+	ETHTOOL_LINK_EXT_SUBSTATE_AN_NO_HCD,
+};
+
+/**
+ * enum ethtool_link_ext_substate_link_training - more information in addition to
+ * ETHTOOL_LINK_EXT_STATE_LINK_TRAINING_FAILURE.
+ */
+enum ethtool_link_ext_substate_link_training {
+	ETHTOOL_LINK_EXT_SUBSTATE_LT_KR_FRAME_LOCK_NOT_ACQUIRED = 1,
+	ETHTOOL_LINK_EXT_SUBSTATE_LT_KR_LINK_INHIBIT_TIMEOUT,
+	ETHTOOL_LINK_EXT_SUBSTATE_LT_KR_LINK_PARTNER_DID_NOT_SET_RECEIVER_READY,
+	ETHTOOL_LINK_EXT_SUBSTATE_LT_REMOTE_FAULT,
+};
+
+/**
+ * enum ethtool_link_ext_substate_logical_mismatch - more information in addition
+ * to ETHTOOL_LINK_EXT_STATE_LINK_LOGICAL_MISMATCH.
+ */
+enum ethtool_link_ext_substate_link_logical_mismatch {
+	ETHTOOL_LINK_EXT_SUBSTATE_LLM_PCS_DID_NOT_ACQUIRE_BLOCK_LOCK = 1,
+	ETHTOOL_LINK_EXT_SUBSTATE_LLM_PCS_DID_NOT_ACQUIRE_AM_LOCK,
+	ETHTOOL_LINK_EXT_SUBSTATE_LLM_PCS_DID_NOT_GET_ALIGN_STATUS,
+	ETHTOOL_LINK_EXT_SUBSTATE_LLM_FC_FEC_IS_NOT_LOCKED,
+	ETHTOOL_LINK_EXT_SUBSTATE_LLM_RS_FEC_IS_NOT_LOCKED,
+};
+
+/**
+ * enum ethtool_link_ext_substate_bad_signal_integrity - more information in
+ * addition to ETHTOOL_LINK_EXT_STATE_BAD_SIGNAL_INTEGRITY.
+ */
+enum ethtool_link_ext_substate_bad_signal_integrity {
+	ETHTOOL_LINK_EXT_SUBSTATE_BSI_LARGE_NUMBER_OF_PHYSICAL_ERRORS = 1,
+	ETHTOOL_LINK_EXT_SUBSTATE_BSI_UNSUPPORTED_RATE,
+};
+
+/**
+ * enum ethtool_link_ext_substate_cable_issue - more information in
+ * addition to ETHTOOL_LINK_EXT_STATE_CABLE_ISSUE.
+ */
+enum ethtool_link_ext_substate_cable_issue {
+	ETHTOOL_LINK_EXT_SUBSTATE_CI_UNSUPPORTED_CABLE = 1,
+	ETHTOOL_LINK_EXT_SUBSTATE_CI_CABLE_TEST_FAILURE,
+};
+
 #define ETH_GSTRING_LEN		32
 
 /**
@@ -599,6 +669,7 @@ struct ethtool_pauseparam {
  * @ETH_SS_SOF_TIMESTAMPING: SOF_TIMESTAMPING_* flags
  * @ETH_SS_TS_TX_TYPES: timestamping Tx types
  * @ETH_SS_TS_RX_FILTERS: timestamping Rx filters
+ * @ETH_SS_UDP_TUNNEL_TYPES: UDP tunnel types
  */
 enum ethtool_stringset {
 	ETH_SS_TEST		= 0,
@@ -616,6 +687,7 @@ enum ethtool_stringset {
 	ETH_SS_SOF_TIMESTAMPING,
 	ETH_SS_TS_TX_TYPES,
 	ETH_SS_TS_RX_FILTERS,
+	ETH_SS_UDP_TUNNEL_TYPES,
 
 	/* add new constants above here */
 	ETH_SS_COUNT
@@ -1530,6 +1602,21 @@ enum ethtool_link_mode_bit_indices {
 	ETHTOOL_LINK_MODE_400000baseDR8_Full_BIT	 = 72,
 	ETHTOOL_LINK_MODE_400000baseCR8_Full_BIT	 = 73,
 	ETHTOOL_LINK_MODE_FEC_LLRS_BIT			 = 74,
+	ETHTOOL_LINK_MODE_100000baseKR_Full_BIT		 = 75,
+	ETHTOOL_LINK_MODE_100000baseSR_Full_BIT		 = 76,
+	ETHTOOL_LINK_MODE_100000baseLR_ER_FR_Full_BIT	 = 77,
+	ETHTOOL_LINK_MODE_100000baseCR_Full_BIT		 = 78,
+	ETHTOOL_LINK_MODE_100000baseDR_Full_BIT		 = 79,
+	ETHTOOL_LINK_MODE_200000baseKR2_Full_BIT	 = 80,
+	ETHTOOL_LINK_MODE_200000baseSR2_Full_BIT	 = 81,
+	ETHTOOL_LINK_MODE_200000baseLR2_ER2_FR2_Full_BIT = 82,
+	ETHTOOL_LINK_MODE_200000baseDR2_Full_BIT	 = 83,
+	ETHTOOL_LINK_MODE_200000baseCR2_Full_BIT	 = 84,
+	ETHTOOL_LINK_MODE_400000baseKR4_Full_BIT	 = 85,
+	ETHTOOL_LINK_MODE_400000baseSR4_Full_BIT	 = 86,
+	ETHTOOL_LINK_MODE_400000baseLR4_ER4_FR4_Full_BIT = 87,
+	ETHTOOL_LINK_MODE_400000baseDR4_Full_BIT	 = 88,
+	ETHTOOL_LINK_MODE_400000baseCR4_Full_BIT	 = 89,
 	/* must be last entry */
 	__ETHTOOL_LINK_MODE_MASK_NBITS
 };
diff --git a/include/standard-headers/linux/input-event-codes.h b/include/standard-headers/linux/input-event-codes.h
index ebf72c1031..e740ad9f2e 100644
--- a/include/standard-headers/linux/input-event-codes.h
+++ b/include/standard-headers/linux/input-event-codes.h
@@ -888,7 +888,8 @@
 #define SW_LINEIN_INSERT	0x0d  /* set = inserted */
 #define SW_MUTE_DEVICE		0x0e  /* set = device disabled */
 #define SW_PEN_INSERTED		0x0f  /* set = pen inserted */
-#define SW_MAX_			0x0f
+#define SW_MACHINE_COVER	0x10  /* set = cover closed */
+#define SW_MAX_			0x10
 #define SW_CNT			(SW_MAX_+1)
 
 /*
diff --git a/include/standard-headers/linux/vhost_types.h b/include/standard-headers/linux/vhost_types.h
index a678d8fbaa..486630b332 100644
--- a/include/standard-headers/linux/vhost_types.h
+++ b/include/standard-headers/linux/vhost_types.h
@@ -60,6 +60,17 @@ struct vhost_iotlb_msg {
 #define VHOST_IOTLB_UPDATE         2
 #define VHOST_IOTLB_INVALIDATE     3
 #define VHOST_IOTLB_ACCESS_FAIL    4
+/*
+ * VHOST_IOTLB_BATCH_BEGIN and VHOST_IOTLB_BATCH_END allow modifying
+ * multiple mappings in one go: beginning with
+ * VHOST_IOTLB_BATCH_BEGIN, followed by any number of
+ * VHOST_IOTLB_UPDATE messages, and ending with VHOST_IOTLB_BATCH_END.
+ * When one of these two values is used as the message type, the rest
+ * of the fields in the message are ignored. There's no guarantee that
+ * these changes take place automatically in the device.
+ */
+#define VHOST_IOTLB_BATCH_BEGIN    5
+#define VHOST_IOTLB_BATCH_END      6
 	uint8_t type;
 };
 
diff --git a/include/standard-headers/linux/virtio_9p.h b/include/standard-headers/linux/virtio_9p.h
index e68f71dbe6..f5604fc5fb 100644
--- a/include/standard-headers/linux/virtio_9p.h
+++ b/include/standard-headers/linux/virtio_9p.h
@@ -25,7 +25,7 @@
  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE. */
-#include "standard-headers/linux/types.h"
+#include "standard-headers/linux/virtio_types.h"
 #include "standard-headers/linux/virtio_ids.h"
 #include "standard-headers/linux/virtio_config.h"
 
@@ -36,7 +36,7 @@
 
 struct virtio_9p_config {
 	/* length of the tag name */
-	uint16_t tag_len;
+	__virtio16 tag_len;
 	/* non-NULL terminated tag name */
 	uint8_t tag[0];
 } QEMU_PACKED;
diff --git a/include/standard-headers/linux/virtio_blk.h b/include/standard-headers/linux/virtio_blk.h
index 0229b0fbe4..2dcc90826a 100644
--- a/include/standard-headers/linux/virtio_blk.h
+++ b/include/standard-headers/linux/virtio_blk.h
@@ -55,20 +55,20 @@
 
 struct virtio_blk_config {
 	/* The capacity (in 512-byte sectors). */
-	uint64_t capacity;
+	__virtio64 capacity;
 	/* The maximum segment size (if VIRTIO_BLK_F_SIZE_MAX) */
-	uint32_t size_max;
+	__virtio32 size_max;
 	/* The maximum number of segments (if VIRTIO_BLK_F_SEG_MAX) */
-	uint32_t seg_max;
+	__virtio32 seg_max;
 	/* geometry of the device (if VIRTIO_BLK_F_GEOMETRY) */
 	struct virtio_blk_geometry {
-		uint16_t cylinders;
+		__virtio16 cylinders;
 		uint8_t heads;
 		uint8_t sectors;
 	} geometry;
 
 	/* block size of device (if VIRTIO_BLK_F_BLK_SIZE) */
-	uint32_t blk_size;
+	__virtio32 blk_size;
 
 	/* the next 4 entries are guarded by VIRTIO_BLK_F_TOPOLOGY  */
 	/* exponent for physical block per logical block. */
@@ -76,42 +76,42 @@ struct virtio_blk_config {
 	/* alignment offset in logical blocks. */
 	uint8_t alignment_offset;
 	/* minimum I/O size without performance penalty in logical blocks. */
-	uint16_t min_io_size;
+	__virtio16 min_io_size;
 	/* optimal sustained I/O size in logical blocks. */
-	uint32_t opt_io_size;
+	__virtio32 opt_io_size;
 
 	/* writeback mode (if VIRTIO_BLK_F_CONFIG_WCE) */
 	uint8_t wce;
 	uint8_t unused;
 
 	/* number of vqs, only available when VIRTIO_BLK_F_MQ is set */
-	uint16_t num_queues;
+	__virtio16 num_queues;
 
 	/* the next 3 entries are guarded by VIRTIO_BLK_F_DISCARD */
 	/*
 	 * The maximum discard sectors (in 512-byte sectors) for
 	 * one segment.
 	 */
-	uint32_t max_discard_sectors;
+	__virtio32 max_discard_sectors;
 	/*
 	 * The maximum number of discard segments in a
 	 * discard command.
 	 */
-	uint32_t max_discard_seg;
+	__virtio32 max_discard_seg;
 	/* Discard commands must be aligned to this number of sectors. */
-	uint32_t discard_sector_alignment;
+	__virtio32 discard_sector_alignment;
 
 	/* the next 3 entries are guarded by VIRTIO_BLK_F_WRITE_ZEROES */
 	/*
 	 * The maximum number of write zeroes sectors (in 512-byte sectors) in
 	 * one segment.
 	 */
-	uint32_t max_write_zeroes_sectors;
+	__virtio32 max_write_zeroes_sectors;
 	/*
 	 * The maximum number of segments in a write zeroes
 	 * command.
 	 */
-	uint32_t max_write_zeroes_seg;
+	__virtio32 max_write_zeroes_seg;
 	/*
 	 * Set if a VIRTIO_BLK_T_WRITE_ZEROES request may result in the
 	 * deallocation of one or more of the sectors.
diff --git a/include/standard-headers/linux/virtio_config.h b/include/standard-headers/linux/virtio_config.h
index 9a69d9e242..22e3a85f67 100644
--- a/include/standard-headers/linux/virtio_config.h
+++ b/include/standard-headers/linux/virtio_config.h
@@ -67,13 +67,15 @@
 #define VIRTIO_F_VERSION_1		32
 
 /*
- * If clear - device has the IOMMU bypass quirk feature.
- * If set - use platform tools to detect the IOMMU.
+ * If clear - device has the platform DMA (e.g. IOMMU) bypass quirk feature.
+ * If set - use platform DMA tools to access the memory.
  *
  * Note the reverse polarity (compared to most other features),
  * this is for compatibility with legacy systems.
  */
-#define VIRTIO_F_IOMMU_PLATFORM		33
+#define VIRTIO_F_ACCESS_PLATFORM	33
+/* Legacy name for VIRTIO_F_ACCESS_PLATFORM (for compatibility with old userspace) */
+#define VIRTIO_F_IOMMU_PLATFORM		VIRTIO_F_ACCESS_PLATFORM
 
 /* This feature indicates support for the packed virtqueue layout. */
 #define VIRTIO_F_RING_PACKED		34
diff --git a/include/standard-headers/linux/virtio_console.h b/include/standard-headers/linux/virtio_console.h
index 0dedc9e6f5..71f5f648e3 100644
--- a/include/standard-headers/linux/virtio_console.h
+++ b/include/standard-headers/linux/virtio_console.h
@@ -45,13 +45,13 @@
 
 struct virtio_console_config {
 	/* colums of the screens */
-	uint16_t cols;
+	__virtio16 cols;
 	/* rows of the screens */
-	uint16_t rows;
+	__virtio16 rows;
 	/* max. number of ports this device can hold */
-	uint32_t max_nr_ports;
+	__virtio32 max_nr_ports;
 	/* emergency write register */
-	uint32_t emerg_wr;
+	__virtio32 emerg_wr;
 } QEMU_PACKED;
 
 /*
diff --git a/include/standard-headers/linux/virtio_net.h b/include/standard-headers/linux/virtio_net.h
index a90f79e1b1..e0a070518f 100644
--- a/include/standard-headers/linux/virtio_net.h
+++ b/include/standard-headers/linux/virtio_net.h
@@ -87,14 +87,14 @@ struct virtio_net_config {
 	/* The config defining mac address (if VIRTIO_NET_F_MAC) */
 	uint8_t mac[ETH_ALEN];
 	/* See VIRTIO_NET_F_STATUS and VIRTIO_NET_S_* above */
-	uint16_t status;
+	__virtio16 status;
 	/* Maximum number of each of transmit and receive queues;
 	 * see VIRTIO_NET_F_MQ and VIRTIO_NET_CTRL_MQ.
 	 * Legal values are between 1 and 0x8000
 	 */
-	uint16_t max_virtqueue_pairs;
+	__virtio16 max_virtqueue_pairs;
 	/* Default maximum transmit unit advice */
-	uint16_t mtu;
+	__virtio16 mtu;
 	/*
 	 * speed, in units of 1Mb. All values 0 to INT_MAX are legal.
 	 * Any other value stands for unknown.
diff --git a/include/standard-headers/linux/virtio_scsi.h b/include/standard-headers/linux/virtio_scsi.h
index ab66166b6a..663f36cbb7 100644
--- a/include/standard-headers/linux/virtio_scsi.h
+++ b/include/standard-headers/linux/virtio_scsi.h
@@ -103,16 +103,16 @@ struct virtio_scsi_event {
 } QEMU_PACKED;
 
 struct virtio_scsi_config {
-	uint32_t num_queues;
-	uint32_t seg_max;
-	uint32_t max_sectors;
-	uint32_t cmd_per_lun;
-	uint32_t event_info_size;
-	uint32_t sense_size;
-	uint32_t cdb_size;
-	uint16_t max_channel;
-	uint16_t max_target;
-	uint32_t max_lun;
+	__virtio32 num_queues;
+	__virtio32 seg_max;
+	__virtio32 max_sectors;
+	__virtio32 cmd_per_lun;
+	__virtio32 event_info_size;
+	__virtio32 sense_size;
+	__virtio32 cdb_size;
+	__virtio16 max_channel;
+	__virtio16 max_target;
+	__virtio32 max_lun;
 } QEMU_PACKED;
 
 /* Feature Bits */
diff --git a/linux-headers/asm-generic/unistd.h b/linux-headers/asm-generic/unistd.h
index f4a01305d9..995b36c2ea 100644
--- a/linux-headers/asm-generic/unistd.h
+++ b/linux-headers/asm-generic/unistd.h
@@ -606,9 +606,9 @@ __SYSCALL(__NR_sendto, sys_sendto)
 #define __NR_recvfrom 207
 __SC_COMP(__NR_recvfrom, sys_recvfrom, compat_sys_recvfrom)
 #define __NR_setsockopt 208
-__SC_COMP(__NR_setsockopt, sys_setsockopt, compat_sys_setsockopt)
+__SC_COMP(__NR_setsockopt, sys_setsockopt, sys_setsockopt)
 #define __NR_getsockopt 209
-__SC_COMP(__NR_getsockopt, sys_getsockopt, compat_sys_getsockopt)
+__SC_COMP(__NR_getsockopt, sys_getsockopt, sys_getsockopt)
 #define __NR_shutdown 210
 __SYSCALL(__NR_shutdown, sys_shutdown)
 #define __NR_sendmsg 211
@@ -850,6 +850,8 @@ __SYSCALL(__NR_pidfd_open, sys_pidfd_open)
 #define __NR_clone3 435
 __SYSCALL(__NR_clone3, sys_clone3)
 #endif
+#define __NR_close_range 436
+__SYSCALL(__NR_close_range, sys_close_range)
 
 #define __NR_openat2 437
 __SYSCALL(__NR_openat2, sys_openat2)
diff --git a/linux-headers/asm-mips/unistd_n32.h b/linux-headers/asm-mips/unistd_n32.h
index 3b9eda7e7d..246fbb6a78 100644
--- a/linux-headers/asm-mips/unistd_n32.h
+++ b/linux-headers/asm-mips/unistd_n32.h
@@ -365,6 +365,7 @@
 #define __NR_fspick	(__NR_Linux + 433)
 #define __NR_pidfd_open	(__NR_Linux + 434)
 #define __NR_clone3	(__NR_Linux + 435)
+#define __NR_close_range	(__NR_Linux + 436)
 #define __NR_openat2	(__NR_Linux + 437)
 #define __NR_pidfd_getfd	(__NR_Linux + 438)
 #define __NR_faccessat2	(__NR_Linux + 439)
diff --git a/linux-headers/asm-mips/unistd_n64.h b/linux-headers/asm-mips/unistd_n64.h
index 9cdf9b6c60..194d777dfd 100644
--- a/linux-headers/asm-mips/unistd_n64.h
+++ b/linux-headers/asm-mips/unistd_n64.h
@@ -341,6 +341,7 @@
 #define __NR_fspick	(__NR_Linux + 433)
 #define __NR_pidfd_open	(__NR_Linux + 434)
 #define __NR_clone3	(__NR_Linux + 435)
+#define __NR_close_range	(__NR_Linux + 436)
 #define __NR_openat2	(__NR_Linux + 437)
 #define __NR_pidfd_getfd	(__NR_Linux + 438)
 #define __NR_faccessat2	(__NR_Linux + 439)
diff --git a/linux-headers/asm-mips/unistd_o32.h b/linux-headers/asm-mips/unistd_o32.h
index e3e5e238f0..3e093dd913 100644
--- a/linux-headers/asm-mips/unistd_o32.h
+++ b/linux-headers/asm-mips/unistd_o32.h
@@ -411,6 +411,7 @@
 #define __NR_fspick	(__NR_Linux + 433)
 #define __NR_pidfd_open	(__NR_Linux + 434)
 #define __NR_clone3	(__NR_Linux + 435)
+#define __NR_close_range	(__NR_Linux + 436)
 #define __NR_openat2	(__NR_Linux + 437)
 #define __NR_pidfd_getfd	(__NR_Linux + 438)
 #define __NR_faccessat2	(__NR_Linux + 439)
diff --git a/linux-headers/asm-powerpc/kvm.h b/linux-headers/asm-powerpc/kvm.h
index 264e266a85..c3af3f324c 100644
--- a/linux-headers/asm-powerpc/kvm.h
+++ b/linux-headers/asm-powerpc/kvm.h
@@ -640,6 +640,11 @@ struct kvm_ppc_cpu_char {
 #define KVM_REG_PPC_ONLINE	(KVM_REG_PPC | KVM_REG_SIZE_U32 | 0xbf)
 #define KVM_REG_PPC_PTCR	(KVM_REG_PPC | KVM_REG_SIZE_U64 | 0xc0)
 
+/* POWER10 registers */
+#define KVM_REG_PPC_MMCR3	(KVM_REG_PPC | KVM_REG_SIZE_U64 | 0xc1)
+#define KVM_REG_PPC_SIER2	(KVM_REG_PPC | KVM_REG_SIZE_U64 | 0xc2)
+#define KVM_REG_PPC_SIER3	(KVM_REG_PPC | KVM_REG_SIZE_U64 | 0xc3)
+
 /* Transactional Memory checkpointed state:
  * This is all GPRs, all VSX regs and a subset of SPRs
  */
diff --git a/linux-headers/asm-powerpc/unistd_32.h b/linux-headers/asm-powerpc/unistd_32.h
index 862edb7448..0db9481d49 100644
--- a/linux-headers/asm-powerpc/unistd_32.h
+++ b/linux-headers/asm-powerpc/unistd_32.h
@@ -418,6 +418,7 @@
 #define __NR_fspick	433
 #define __NR_pidfd_open	434
 #define __NR_clone3	435
+#define __NR_close_range	436
 #define __NR_openat2	437
 #define __NR_pidfd_getfd	438
 #define __NR_faccessat2	439
diff --git a/linux-headers/asm-powerpc/unistd_64.h b/linux-headers/asm-powerpc/unistd_64.h
index f553224ce4..9f74310988 100644
--- a/linux-headers/asm-powerpc/unistd_64.h
+++ b/linux-headers/asm-powerpc/unistd_64.h
@@ -390,6 +390,7 @@
 #define __NR_fspick	433
 #define __NR_pidfd_open	434
 #define __NR_clone3	435
+#define __NR_close_range	436
 #define __NR_openat2	437
 #define __NR_pidfd_getfd	438
 #define __NR_faccessat2	439
diff --git a/linux-headers/asm-s390/kvm.h b/linux-headers/asm-s390/kvm.h
index 0138ccb0d8..f053b8304a 100644
--- a/linux-headers/asm-s390/kvm.h
+++ b/linux-headers/asm-s390/kvm.h
@@ -231,11 +231,13 @@ struct kvm_guest_debug_arch {
 #define KVM_SYNC_GSCB   (1UL << 9)
 #define KVM_SYNC_BPBC   (1UL << 10)
 #define KVM_SYNC_ETOKEN (1UL << 11)
+#define KVM_SYNC_DIAG318 (1UL << 12)
 
 #define KVM_SYNC_S390_VALID_FIELDS \
 	(KVM_SYNC_PREFIX | KVM_SYNC_GPRS | KVM_SYNC_ACRS | KVM_SYNC_CRS | \
 	 KVM_SYNC_ARCH0 | KVM_SYNC_PFAULT | KVM_SYNC_VRS | KVM_SYNC_RICCB | \
-	 KVM_SYNC_FPRS | KVM_SYNC_GSCB | KVM_SYNC_BPBC | KVM_SYNC_ETOKEN)
+	 KVM_SYNC_FPRS | KVM_SYNC_GSCB | KVM_SYNC_BPBC | KVM_SYNC_ETOKEN | \
+	 KVM_SYNC_DIAG318)
 
 /* length and alignment of the sdnx as a power of two */
 #define SDNXC 8
@@ -264,7 +266,8 @@ struct kvm_sync_regs {
 	__u8 reserved2 : 7;
 	__u8 padding1[51];	/* riccb needs to be 64byte aligned */
 	__u8 riccb[64];		/* runtime instrumentation controls block */
-	__u8 padding2[192];	/* sdnx needs to be 256byte aligned */
+	__u64 diag318;		/* diagnose 0x318 info */
+	__u8 padding2[184];	/* sdnx needs to be 256byte aligned */
 	union {
 		__u8 sdnx[SDNXL];  /* state description annex */
 		struct {
diff --git a/linux-headers/asm-s390/unistd_32.h b/linux-headers/asm-s390/unistd_32.h
index e08233c0c3..1803cd0c3b 100644
--- a/linux-headers/asm-s390/unistd_32.h
+++ b/linux-headers/asm-s390/unistd_32.h
@@ -408,6 +408,7 @@
 #define __NR_fspick 433
 #define __NR_pidfd_open 434
 #define __NR_clone3 435
+#define __NR_close_range 436
 #define __NR_openat2 437
 #define __NR_pidfd_getfd 438
 #define __NR_faccessat2 439
diff --git a/linux-headers/asm-s390/unistd_64.h b/linux-headers/asm-s390/unistd_64.h
index 560e19ae2b..228d5004e5 100644
--- a/linux-headers/asm-s390/unistd_64.h
+++ b/linux-headers/asm-s390/unistd_64.h
@@ -356,6 +356,7 @@
 #define __NR_fspick 433
 #define __NR_pidfd_open 434
 #define __NR_clone3 435
+#define __NR_close_range 436
 #define __NR_openat2 437
 #define __NR_pidfd_getfd 438
 #define __NR_faccessat2 439
diff --git a/linux-headers/asm-x86/unistd_32.h b/linux-headers/asm-x86/unistd_32.h
index c727981d4a..356c12c2db 100644
--- a/linux-headers/asm-x86/unistd_32.h
+++ b/linux-headers/asm-x86/unistd_32.h
@@ -426,6 +426,7 @@
 #define __NR_fspick 433
 #define __NR_pidfd_open 434
 #define __NR_clone3 435
+#define __NR_close_range 436
 #define __NR_openat2 437
 #define __NR_pidfd_getfd 438
 #define __NR_faccessat2 439
diff --git a/linux-headers/asm-x86/unistd_64.h b/linux-headers/asm-x86/unistd_64.h
index 843fa62745..ef70e1c7c9 100644
--- a/linux-headers/asm-x86/unistd_64.h
+++ b/linux-headers/asm-x86/unistd_64.h
@@ -348,6 +348,7 @@
 #define __NR_fspick 433
 #define __NR_pidfd_open 434
 #define __NR_clone3 435
+#define __NR_close_range 436
 #define __NR_openat2 437
 #define __NR_pidfd_getfd 438
 #define __NR_faccessat2 439
diff --git a/linux-headers/asm-x86/unistd_x32.h b/linux-headers/asm-x86/unistd_x32.h
index 7d63d703ca..84ae8e9f5f 100644
--- a/linux-headers/asm-x86/unistd_x32.h
+++ b/linux-headers/asm-x86/unistd_x32.h
@@ -301,6 +301,7 @@
 #define __NR_fspick (__X32_SYSCALL_BIT + 433)
 #define __NR_pidfd_open (__X32_SYSCALL_BIT + 434)
 #define __NR_clone3 (__X32_SYSCALL_BIT + 435)
+#define __NR_close_range (__X32_SYSCALL_BIT + 436)
 #define __NR_openat2 (__X32_SYSCALL_BIT + 437)
 #define __NR_pidfd_getfd (__X32_SYSCALL_BIT + 438)
 #define __NR_faccessat2 (__X32_SYSCALL_BIT + 439)
diff --git a/linux-headers/linux/kvm.h b/linux-headers/linux/kvm.h
index a28c366737..6683e2e1b0 100644
--- a/linux-headers/linux/kvm.h
+++ b/linux-headers/linux/kvm.h
@@ -289,6 +289,7 @@ struct kvm_run {
 		/* KVM_EXIT_FAIL_ENTRY */
 		struct {
 			__u64 hardware_entry_failure_reason;
+			__u32 cpu;
 		} fail_entry;
 		/* KVM_EXIT_EXCEPTION */
 		struct {
@@ -1031,6 +1032,9 @@ struct kvm_ppc_resize_hpt {
 #define KVM_CAP_PPC_SECURE_GUEST 181
 #define KVM_CAP_HALT_POLL 182
 #define KVM_CAP_ASYNC_PF_INT 183
+#define KVM_CAP_LAST_CPU 184
+#define KVM_CAP_SMALLER_MAXPHYADDR 185
+#define KVM_CAP_S390_DIAG318 186
 
 #ifdef KVM_CAP_IRQ_ROUTING
 
diff --git a/linux-headers/linux/vfio.h b/linux-headers/linux/vfio.h
index f09df262c4..a90672494d 100644
--- a/linux-headers/linux/vfio.h
+++ b/linux-headers/linux/vfio.h
@@ -1030,7 +1030,7 @@ struct vfio_iommu_type1_info_cap_iova_range {
  * size in bytes that can be used by user applications when getting the dirty
  * bitmap.
  */
-#define VFIO_IOMMU_TYPE1_INFO_CAP_MIGRATION  1
+#define VFIO_IOMMU_TYPE1_INFO_CAP_MIGRATION  2
 
 struct vfio_iommu_type1_info_cap_migration {
 	struct	vfio_info_cap_header header;
diff --git a/linux-headers/linux/vhost.h b/linux-headers/linux/vhost.h
index 0c2349612e..7523218532 100644
--- a/linux-headers/linux/vhost.h
+++ b/linux-headers/linux/vhost.h
@@ -91,6 +91,8 @@
 
 /* Use message type V2 */
 #define VHOST_BACKEND_F_IOTLB_MSG_V2 0x1
+/* IOTLB can accept batching hints */
+#define VHOST_BACKEND_F_IOTLB_BATCH  0x2
 
 #define VHOST_SET_BACKEND_FEATURES _IOW(VHOST_VIRTIO, 0x25, __u64)
 #define VHOST_GET_BACKEND_FEATURES _IOR(VHOST_VIRTIO, 0x26, __u64)
-- 
MST


^ permalink raw reply related	[flat|nested] 63+ messages in thread

* [PULL v4 01/48] linux headers: sync to 5.9-rc4
@ 2020-09-29  7:20   ` Michael S. Tsirkin
  0 siblings, 0 replies; 63+ messages in thread
From: Michael S. Tsirkin @ 2020-09-29  7:20 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell, Jason Wang, Cornelia Huck, kvm, Paolo Bonzini

From: Jason Wang <jasowang@redhat.com>

Update against Linux 5.9-rc4.

Cc: Cornelia Huck <cohuck@redhat.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Jason Wang <jasowang@redhat.com>
Message-Id: <20200907104903.31551-2-jasowang@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
 include/standard-headers/drm/drm_fourcc.h     | 140 ++++++++++++++++++
 include/standard-headers/linux/ethtool.h      |  87 +++++++++++
 .../linux/input-event-codes.h                 |   3 +-
 include/standard-headers/linux/vhost_types.h  |  11 ++
 include/standard-headers/linux/virtio_9p.h    |   4 +-
 include/standard-headers/linux/virtio_blk.h   |  26 ++--
 .../standard-headers/linux/virtio_config.h    |   8 +-
 .../standard-headers/linux/virtio_console.h   |   8 +-
 include/standard-headers/linux/virtio_net.h   |   6 +-
 include/standard-headers/linux/virtio_scsi.h  |  20 +--
 linux-headers/asm-generic/unistd.h            |   6 +-
 linux-headers/asm-mips/unistd_n32.h           |   1 +
 linux-headers/asm-mips/unistd_n64.h           |   1 +
 linux-headers/asm-mips/unistd_o32.h           |   1 +
 linux-headers/asm-powerpc/kvm.h               |   5 +
 linux-headers/asm-powerpc/unistd_32.h         |   1 +
 linux-headers/asm-powerpc/unistd_64.h         |   1 +
 linux-headers/asm-s390/kvm.h                  |   7 +-
 linux-headers/asm-s390/unistd_32.h            |   1 +
 linux-headers/asm-s390/unistd_64.h            |   1 +
 linux-headers/asm-x86/unistd_32.h             |   1 +
 linux-headers/asm-x86/unistd_64.h             |   1 +
 linux-headers/asm-x86/unistd_x32.h            |   1 +
 linux-headers/linux/kvm.h                     |   4 +
 linux-headers/linux/vfio.h                    |   2 +-
 linux-headers/linux/vhost.h                   |   2 +
 26 files changed, 308 insertions(+), 41 deletions(-)

diff --git a/include/standard-headers/drm/drm_fourcc.h b/include/standard-headers/drm/drm_fourcc.h
index 909a66753c..0de1a552ca 100644
--- a/include/standard-headers/drm/drm_fourcc.h
+++ b/include/standard-headers/drm/drm_fourcc.h
@@ -235,6 +235,12 @@ extern "C" {
 #define DRM_FORMAT_NV61		fourcc_code('N', 'V', '6', '1') /* 2x1 subsampled Cb:Cr plane */
 #define DRM_FORMAT_NV24		fourcc_code('N', 'V', '2', '4') /* non-subsampled Cr:Cb plane */
 #define DRM_FORMAT_NV42		fourcc_code('N', 'V', '4', '2') /* non-subsampled Cb:Cr plane */
+/*
+ * 2 plane YCbCr
+ * index 0 = Y plane, [39:0] Y3:Y2:Y1:Y0 little endian
+ * index 1 = Cr:Cb plane, [39:0] Cr1:Cb1:Cr0:Cb0 little endian
+ */
+#define DRM_FORMAT_NV15		fourcc_code('N', 'V', '1', '5') /* 2x2 subsampled Cr:Cb plane */
 
 /*
  * 2 plane YCbCr MSB aligned
@@ -264,6 +270,22 @@ extern "C" {
  */
 #define DRM_FORMAT_P016		fourcc_code('P', '0', '1', '6') /* 2x2 subsampled Cr:Cb plane 16 bits per channel */
 
+/* 3 plane non-subsampled (444) YCbCr
+ * 16 bits per component, but only 10 bits are used and 6 bits are padded
+ * index 0: Y plane, [15:0] Y:x [10:6] little endian
+ * index 1: Cb plane, [15:0] Cb:x [10:6] little endian
+ * index 2: Cr plane, [15:0] Cr:x [10:6] little endian
+ */
+#define DRM_FORMAT_Q410		fourcc_code('Q', '4', '1', '0')
+
+/* 3 plane non-subsampled (444) YCrCb
+ * 16 bits per component, but only 10 bits are used and 6 bits are padded
+ * index 0: Y plane, [15:0] Y:x [10:6] little endian
+ * index 1: Cr plane, [15:0] Cr:x [10:6] little endian
+ * index 2: Cb plane, [15:0] Cb:x [10:6] little endian
+ */
+#define DRM_FORMAT_Q401		fourcc_code('Q', '4', '0', '1')
+
 /*
  * 3 plane YCbCr
  * index 0: Y plane, [7:0] Y
@@ -308,6 +330,7 @@ extern "C" {
 #define DRM_FORMAT_MOD_VENDOR_BROADCOM 0x07
 #define DRM_FORMAT_MOD_VENDOR_ARM     0x08
 #define DRM_FORMAT_MOD_VENDOR_ALLWINNER 0x09
+#define DRM_FORMAT_MOD_VENDOR_AMLOGIC 0x0a
 
 /* add more to the end as needed */
 
@@ -322,8 +345,33 @@ extern "C" {
  * When adding a new token please document the layout with a code comment,
  * similar to the fourcc codes above. drm_fourcc.h is considered the
  * authoritative source for all of these.
+ *
+ * Generic modifier names:
+ *
+ * DRM_FORMAT_MOD_GENERIC_* definitions are used to provide vendor-neutral names
+ * for layouts which are common across multiple vendors. To preserve
+ * compatibility, in cases where a vendor-specific definition already exists and
+ * a generic name for it is desired, the common name is a purely symbolic alias
+ * and must use the same numerical value as the original definition.
+ *
+ * Note that generic names should only be used for modifiers which describe
+ * generic layouts (such as pixel re-ordering), which may have
+ * independently-developed support across multiple vendors.
+ *
+ * In future cases where a generic layout is identified before merging with a
+ * vendor-specific modifier, a new 'GENERIC' vendor or modifier using vendor
+ * 'NONE' could be considered. This should only be for obvious, exceptional
+ * cases to avoid polluting the 'GENERIC' namespace with modifiers which only
+ * apply to a single vendor.
+ *
+ * Generic names should not be used for cases where multiple hardware vendors
+ * have implementations of the same standardised compression scheme (such as
+ * AFBC). In those cases, all implementations should use the same format
+ * modifier(s), reflecting the vendor of the standard.
  */
 
+#define DRM_FORMAT_MOD_GENERIC_16_16_TILE DRM_FORMAT_MOD_SAMSUNG_16_16_TILE
+
 /*
  * Invalid Modifier
  *
@@ -891,6 +939,18 @@ drm_fourcc_canonicalize_nvidia_format_mod(uint64_t modifier)
  */
 #define AFBC_FORMAT_MOD_BCH     (1ULL << 11)
 
+/* AFBC uncompressed storage mode
+ *
+ * Indicates that the buffer is using AFBC uncompressed storage mode.
+ * In this mode all superblock payloads in the buffer use the uncompressed
+ * storage mode, which is usually only used for data which cannot be compressed.
+ * The buffer layout is the same as for AFBC buffers without USM set, this only
+ * affects the storage mode of the individual superblocks. Note that even a
+ * buffer without USM set may use uncompressed storage mode for some or all
+ * superblocks, USM just guarantees it for all.
+ */
+#define AFBC_FORMAT_MOD_USM	(1ULL << 12)
+
 /*
  * Arm 16x16 Block U-Interleaved modifier
  *
@@ -915,6 +975,86 @@ drm_fourcc_canonicalize_nvidia_format_mod(uint64_t modifier)
  */
 #define DRM_FORMAT_MOD_ALLWINNER_TILED fourcc_mod_code(ALLWINNER, 1)
 
+/*
+ * Amlogic Video Framebuffer Compression modifiers
+ *
+ * Amlogic uses a proprietary lossless image compression protocol and format
+ * for their hardware video codec accelerators, either video decoders or
+ * video input encoders.
+ *
+ * It considerably reduces memory bandwidth while writing and reading
+ * frames in memory.
+ *
+ * The underlying storage is considered to be 3 components, 8bit or 10-bit
+ * per component YCbCr 420, single plane :
+ * - DRM_FORMAT_YUV420_8BIT
+ * - DRM_FORMAT_YUV420_10BIT
+ *
+ * The first 8 bits of the mode defines the layout, then the following 8 bits
+ * defines the options changing the layout.
+ *
+ * Not all combinations are valid, and different SoCs may support different
+ * combinations of layout and options.
+ */
+#define __fourcc_mod_amlogic_layout_mask 0xf
+#define __fourcc_mod_amlogic_options_shift 8
+#define __fourcc_mod_amlogic_options_mask 0xf
+
+#define DRM_FORMAT_MOD_AMLOGIC_FBC(__layout, __options) \
+	fourcc_mod_code(AMLOGIC, \
+			((__layout) & __fourcc_mod_amlogic_layout_mask) | \
+			(((__options) & __fourcc_mod_amlogic_options_mask) \
+			 << __fourcc_mod_amlogic_options_shift))
+
+/* Amlogic FBC Layouts */
+
+/*
+ * Amlogic FBC Basic Layout
+ *
+ * The basic layout is composed of:
+ * - a body content organized in 64x32 superblocks with 4096 bytes per
+ *   superblock in default mode.
+ * - a 32 bytes per 128x64 header block
+ *
+ * This layout is transferrable between Amlogic SoCs supporting this modifier.
+ */
+#define AMLOGIC_FBC_LAYOUT_BASIC		(1ULL)
+
+/*
+ * Amlogic FBC Scatter Memory layout
+ *
+ * Indicates the header contains IOMMU references to the compressed
+ * frames content to optimize memory access and layout.
+ *
+ * In this mode, only the header memory address is needed, thus the
+ * content memory organization is tied to the current producer
+ * execution and cannot be saved/dumped neither transferrable between
+ * Amlogic SoCs supporting this modifier.
+ *
+ * Due to the nature of the layout, these buffers are not expected to
+ * be accessible by the user-space clients, but only accessible by the
+ * hardware producers and consumers.
+ *
+ * The user-space clients should expect a failure while trying to mmap
+ * the DMA-BUF handle returned by the producer.
+ */
+#define AMLOGIC_FBC_LAYOUT_SCATTER		(2ULL)
+
+/* Amlogic FBC Layout Options Bit Mask */
+
+/*
+ * Amlogic FBC Memory Saving mode
+ *
+ * Indicates the storage is packed when pixel size is multiple of word
+ * boudaries, i.e. 8bit should be stored in this mode to save allocation
+ * memory.
+ *
+ * This mode reduces body layout to 3072 bytes per 64x32 superblock with
+ * the basic layout and 3200 bytes per 64x32 superblock combined with
+ * the scatter layout.
+ */
+#define AMLOGIC_FBC_OPTION_MEM_SAVING		(1ULL << 0)
+
 #if defined(__cplusplus)
 }
 #endif
diff --git a/include/standard-headers/linux/ethtool.h b/include/standard-headers/linux/ethtool.h
index fd8d2cccfe..e13eff4488 100644
--- a/include/standard-headers/linux/ethtool.h
+++ b/include/standard-headers/linux/ethtool.h
@@ -579,6 +579,76 @@ struct ethtool_pauseparam {
 	uint32_t	tx_pause;
 };
 
+/**
+ * enum ethtool_link_ext_state - link extended state
+ */
+enum ethtool_link_ext_state {
+	ETHTOOL_LINK_EXT_STATE_AUTONEG,
+	ETHTOOL_LINK_EXT_STATE_LINK_TRAINING_FAILURE,
+	ETHTOOL_LINK_EXT_STATE_LINK_LOGICAL_MISMATCH,
+	ETHTOOL_LINK_EXT_STATE_BAD_SIGNAL_INTEGRITY,
+	ETHTOOL_LINK_EXT_STATE_NO_CABLE,
+	ETHTOOL_LINK_EXT_STATE_CABLE_ISSUE,
+	ETHTOOL_LINK_EXT_STATE_EEPROM_ISSUE,
+	ETHTOOL_LINK_EXT_STATE_CALIBRATION_FAILURE,
+	ETHTOOL_LINK_EXT_STATE_POWER_BUDGET_EXCEEDED,
+	ETHTOOL_LINK_EXT_STATE_OVERHEAT,
+};
+
+/**
+ * enum ethtool_link_ext_substate_autoneg - more information in addition to
+ * ETHTOOL_LINK_EXT_STATE_AUTONEG.
+ */
+enum ethtool_link_ext_substate_autoneg {
+	ETHTOOL_LINK_EXT_SUBSTATE_AN_NO_PARTNER_DETECTED = 1,
+	ETHTOOL_LINK_EXT_SUBSTATE_AN_ACK_NOT_RECEIVED,
+	ETHTOOL_LINK_EXT_SUBSTATE_AN_NEXT_PAGE_EXCHANGE_FAILED,
+	ETHTOOL_LINK_EXT_SUBSTATE_AN_NO_PARTNER_DETECTED_FORCE_MODE,
+	ETHTOOL_LINK_EXT_SUBSTATE_AN_FEC_MISMATCH_DURING_OVERRIDE,
+	ETHTOOL_LINK_EXT_SUBSTATE_AN_NO_HCD,
+};
+
+/**
+ * enum ethtool_link_ext_substate_link_training - more information in addition to
+ * ETHTOOL_LINK_EXT_STATE_LINK_TRAINING_FAILURE.
+ */
+enum ethtool_link_ext_substate_link_training {
+	ETHTOOL_LINK_EXT_SUBSTATE_LT_KR_FRAME_LOCK_NOT_ACQUIRED = 1,
+	ETHTOOL_LINK_EXT_SUBSTATE_LT_KR_LINK_INHIBIT_TIMEOUT,
+	ETHTOOL_LINK_EXT_SUBSTATE_LT_KR_LINK_PARTNER_DID_NOT_SET_RECEIVER_READY,
+	ETHTOOL_LINK_EXT_SUBSTATE_LT_REMOTE_FAULT,
+};
+
+/**
+ * enum ethtool_link_ext_substate_logical_mismatch - more information in addition
+ * to ETHTOOL_LINK_EXT_STATE_LINK_LOGICAL_MISMATCH.
+ */
+enum ethtool_link_ext_substate_link_logical_mismatch {
+	ETHTOOL_LINK_EXT_SUBSTATE_LLM_PCS_DID_NOT_ACQUIRE_BLOCK_LOCK = 1,
+	ETHTOOL_LINK_EXT_SUBSTATE_LLM_PCS_DID_NOT_ACQUIRE_AM_LOCK,
+	ETHTOOL_LINK_EXT_SUBSTATE_LLM_PCS_DID_NOT_GET_ALIGN_STATUS,
+	ETHTOOL_LINK_EXT_SUBSTATE_LLM_FC_FEC_IS_NOT_LOCKED,
+	ETHTOOL_LINK_EXT_SUBSTATE_LLM_RS_FEC_IS_NOT_LOCKED,
+};
+
+/**
+ * enum ethtool_link_ext_substate_bad_signal_integrity - more information in
+ * addition to ETHTOOL_LINK_EXT_STATE_BAD_SIGNAL_INTEGRITY.
+ */
+enum ethtool_link_ext_substate_bad_signal_integrity {
+	ETHTOOL_LINK_EXT_SUBSTATE_BSI_LARGE_NUMBER_OF_PHYSICAL_ERRORS = 1,
+	ETHTOOL_LINK_EXT_SUBSTATE_BSI_UNSUPPORTED_RATE,
+};
+
+/**
+ * enum ethtool_link_ext_substate_cable_issue - more information in
+ * addition to ETHTOOL_LINK_EXT_STATE_CABLE_ISSUE.
+ */
+enum ethtool_link_ext_substate_cable_issue {
+	ETHTOOL_LINK_EXT_SUBSTATE_CI_UNSUPPORTED_CABLE = 1,
+	ETHTOOL_LINK_EXT_SUBSTATE_CI_CABLE_TEST_FAILURE,
+};
+
 #define ETH_GSTRING_LEN		32
 
 /**
@@ -599,6 +669,7 @@ struct ethtool_pauseparam {
  * @ETH_SS_SOF_TIMESTAMPING: SOF_TIMESTAMPING_* flags
  * @ETH_SS_TS_TX_TYPES: timestamping Tx types
  * @ETH_SS_TS_RX_FILTERS: timestamping Rx filters
+ * @ETH_SS_UDP_TUNNEL_TYPES: UDP tunnel types
  */
 enum ethtool_stringset {
 	ETH_SS_TEST		= 0,
@@ -616,6 +687,7 @@ enum ethtool_stringset {
 	ETH_SS_SOF_TIMESTAMPING,
 	ETH_SS_TS_TX_TYPES,
 	ETH_SS_TS_RX_FILTERS,
+	ETH_SS_UDP_TUNNEL_TYPES,
 
 	/* add new constants above here */
 	ETH_SS_COUNT
@@ -1530,6 +1602,21 @@ enum ethtool_link_mode_bit_indices {
 	ETHTOOL_LINK_MODE_400000baseDR8_Full_BIT	 = 72,
 	ETHTOOL_LINK_MODE_400000baseCR8_Full_BIT	 = 73,
 	ETHTOOL_LINK_MODE_FEC_LLRS_BIT			 = 74,
+	ETHTOOL_LINK_MODE_100000baseKR_Full_BIT		 = 75,
+	ETHTOOL_LINK_MODE_100000baseSR_Full_BIT		 = 76,
+	ETHTOOL_LINK_MODE_100000baseLR_ER_FR_Full_BIT	 = 77,
+	ETHTOOL_LINK_MODE_100000baseCR_Full_BIT		 = 78,
+	ETHTOOL_LINK_MODE_100000baseDR_Full_BIT		 = 79,
+	ETHTOOL_LINK_MODE_200000baseKR2_Full_BIT	 = 80,
+	ETHTOOL_LINK_MODE_200000baseSR2_Full_BIT	 = 81,
+	ETHTOOL_LINK_MODE_200000baseLR2_ER2_FR2_Full_BIT = 82,
+	ETHTOOL_LINK_MODE_200000baseDR2_Full_BIT	 = 83,
+	ETHTOOL_LINK_MODE_200000baseCR2_Full_BIT	 = 84,
+	ETHTOOL_LINK_MODE_400000baseKR4_Full_BIT	 = 85,
+	ETHTOOL_LINK_MODE_400000baseSR4_Full_BIT	 = 86,
+	ETHTOOL_LINK_MODE_400000baseLR4_ER4_FR4_Full_BIT = 87,
+	ETHTOOL_LINK_MODE_400000baseDR4_Full_BIT	 = 88,
+	ETHTOOL_LINK_MODE_400000baseCR4_Full_BIT	 = 89,
 	/* must be last entry */
 	__ETHTOOL_LINK_MODE_MASK_NBITS
 };
diff --git a/include/standard-headers/linux/input-event-codes.h b/include/standard-headers/linux/input-event-codes.h
index ebf72c1031..e740ad9f2e 100644
--- a/include/standard-headers/linux/input-event-codes.h
+++ b/include/standard-headers/linux/input-event-codes.h
@@ -888,7 +888,8 @@
 #define SW_LINEIN_INSERT	0x0d  /* set = inserted */
 #define SW_MUTE_DEVICE		0x0e  /* set = device disabled */
 #define SW_PEN_INSERTED		0x0f  /* set = pen inserted */
-#define SW_MAX_			0x0f
+#define SW_MACHINE_COVER	0x10  /* set = cover closed */
+#define SW_MAX_			0x10
 #define SW_CNT			(SW_MAX_+1)
 
 /*
diff --git a/include/standard-headers/linux/vhost_types.h b/include/standard-headers/linux/vhost_types.h
index a678d8fbaa..486630b332 100644
--- a/include/standard-headers/linux/vhost_types.h
+++ b/include/standard-headers/linux/vhost_types.h
@@ -60,6 +60,17 @@ struct vhost_iotlb_msg {
 #define VHOST_IOTLB_UPDATE         2
 #define VHOST_IOTLB_INVALIDATE     3
 #define VHOST_IOTLB_ACCESS_FAIL    4
+/*
+ * VHOST_IOTLB_BATCH_BEGIN and VHOST_IOTLB_BATCH_END allow modifying
+ * multiple mappings in one go: beginning with
+ * VHOST_IOTLB_BATCH_BEGIN, followed by any number of
+ * VHOST_IOTLB_UPDATE messages, and ending with VHOST_IOTLB_BATCH_END.
+ * When one of these two values is used as the message type, the rest
+ * of the fields in the message are ignored. There's no guarantee that
+ * these changes take place automatically in the device.
+ */
+#define VHOST_IOTLB_BATCH_BEGIN    5
+#define VHOST_IOTLB_BATCH_END      6
 	uint8_t type;
 };
 
diff --git a/include/standard-headers/linux/virtio_9p.h b/include/standard-headers/linux/virtio_9p.h
index e68f71dbe6..f5604fc5fb 100644
--- a/include/standard-headers/linux/virtio_9p.h
+++ b/include/standard-headers/linux/virtio_9p.h
@@ -25,7 +25,7 @@
  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE. */
-#include "standard-headers/linux/types.h"
+#include "standard-headers/linux/virtio_types.h"
 #include "standard-headers/linux/virtio_ids.h"
 #include "standard-headers/linux/virtio_config.h"
 
@@ -36,7 +36,7 @@
 
 struct virtio_9p_config {
 	/* length of the tag name */
-	uint16_t tag_len;
+	__virtio16 tag_len;
 	/* non-NULL terminated tag name */
 	uint8_t tag[0];
 } QEMU_PACKED;
diff --git a/include/standard-headers/linux/virtio_blk.h b/include/standard-headers/linux/virtio_blk.h
index 0229b0fbe4..2dcc90826a 100644
--- a/include/standard-headers/linux/virtio_blk.h
+++ b/include/standard-headers/linux/virtio_blk.h
@@ -55,20 +55,20 @@
 
 struct virtio_blk_config {
 	/* The capacity (in 512-byte sectors). */
-	uint64_t capacity;
+	__virtio64 capacity;
 	/* The maximum segment size (if VIRTIO_BLK_F_SIZE_MAX) */
-	uint32_t size_max;
+	__virtio32 size_max;
 	/* The maximum number of segments (if VIRTIO_BLK_F_SEG_MAX) */
-	uint32_t seg_max;
+	__virtio32 seg_max;
 	/* geometry of the device (if VIRTIO_BLK_F_GEOMETRY) */
 	struct virtio_blk_geometry {
-		uint16_t cylinders;
+		__virtio16 cylinders;
 		uint8_t heads;
 		uint8_t sectors;
 	} geometry;
 
 	/* block size of device (if VIRTIO_BLK_F_BLK_SIZE) */
-	uint32_t blk_size;
+	__virtio32 blk_size;
 
 	/* the next 4 entries are guarded by VIRTIO_BLK_F_TOPOLOGY  */
 	/* exponent for physical block per logical block. */
@@ -76,42 +76,42 @@ struct virtio_blk_config {
 	/* alignment offset in logical blocks. */
 	uint8_t alignment_offset;
 	/* minimum I/O size without performance penalty in logical blocks. */
-	uint16_t min_io_size;
+	__virtio16 min_io_size;
 	/* optimal sustained I/O size in logical blocks. */
-	uint32_t opt_io_size;
+	__virtio32 opt_io_size;
 
 	/* writeback mode (if VIRTIO_BLK_F_CONFIG_WCE) */
 	uint8_t wce;
 	uint8_t unused;
 
 	/* number of vqs, only available when VIRTIO_BLK_F_MQ is set */
-	uint16_t num_queues;
+	__virtio16 num_queues;
 
 	/* the next 3 entries are guarded by VIRTIO_BLK_F_DISCARD */
 	/*
 	 * The maximum discard sectors (in 512-byte sectors) for
 	 * one segment.
 	 */
-	uint32_t max_discard_sectors;
+	__virtio32 max_discard_sectors;
 	/*
 	 * The maximum number of discard segments in a
 	 * discard command.
 	 */
-	uint32_t max_discard_seg;
+	__virtio32 max_discard_seg;
 	/* Discard commands must be aligned to this number of sectors. */
-	uint32_t discard_sector_alignment;
+	__virtio32 discard_sector_alignment;
 
 	/* the next 3 entries are guarded by VIRTIO_BLK_F_WRITE_ZEROES */
 	/*
 	 * The maximum number of write zeroes sectors (in 512-byte sectors) in
 	 * one segment.
 	 */
-	uint32_t max_write_zeroes_sectors;
+	__virtio32 max_write_zeroes_sectors;
 	/*
 	 * The maximum number of segments in a write zeroes
 	 * command.
 	 */
-	uint32_t max_write_zeroes_seg;
+	__virtio32 max_write_zeroes_seg;
 	/*
 	 * Set if a VIRTIO_BLK_T_WRITE_ZEROES request may result in the
 	 * deallocation of one or more of the sectors.
diff --git a/include/standard-headers/linux/virtio_config.h b/include/standard-headers/linux/virtio_config.h
index 9a69d9e242..22e3a85f67 100644
--- a/include/standard-headers/linux/virtio_config.h
+++ b/include/standard-headers/linux/virtio_config.h
@@ -67,13 +67,15 @@
 #define VIRTIO_F_VERSION_1		32
 
 /*
- * If clear - device has the IOMMU bypass quirk feature.
- * If set - use platform tools to detect the IOMMU.
+ * If clear - device has the platform DMA (e.g. IOMMU) bypass quirk feature.
+ * If set - use platform DMA tools to access the memory.
  *
  * Note the reverse polarity (compared to most other features),
  * this is for compatibility with legacy systems.
  */
-#define VIRTIO_F_IOMMU_PLATFORM		33
+#define VIRTIO_F_ACCESS_PLATFORM	33
+/* Legacy name for VIRTIO_F_ACCESS_PLATFORM (for compatibility with old userspace) */
+#define VIRTIO_F_IOMMU_PLATFORM		VIRTIO_F_ACCESS_PLATFORM
 
 /* This feature indicates support for the packed virtqueue layout. */
 #define VIRTIO_F_RING_PACKED		34
diff --git a/include/standard-headers/linux/virtio_console.h b/include/standard-headers/linux/virtio_console.h
index 0dedc9e6f5..71f5f648e3 100644
--- a/include/standard-headers/linux/virtio_console.h
+++ b/include/standard-headers/linux/virtio_console.h
@@ -45,13 +45,13 @@
 
 struct virtio_console_config {
 	/* colums of the screens */
-	uint16_t cols;
+	__virtio16 cols;
 	/* rows of the screens */
-	uint16_t rows;
+	__virtio16 rows;
 	/* max. number of ports this device can hold */
-	uint32_t max_nr_ports;
+	__virtio32 max_nr_ports;
 	/* emergency write register */
-	uint32_t emerg_wr;
+	__virtio32 emerg_wr;
 } QEMU_PACKED;
 
 /*
diff --git a/include/standard-headers/linux/virtio_net.h b/include/standard-headers/linux/virtio_net.h
index a90f79e1b1..e0a070518f 100644
--- a/include/standard-headers/linux/virtio_net.h
+++ b/include/standard-headers/linux/virtio_net.h
@@ -87,14 +87,14 @@ struct virtio_net_config {
 	/* The config defining mac address (if VIRTIO_NET_F_MAC) */
 	uint8_t mac[ETH_ALEN];
 	/* See VIRTIO_NET_F_STATUS and VIRTIO_NET_S_* above */
-	uint16_t status;
+	__virtio16 status;
 	/* Maximum number of each of transmit and receive queues;
 	 * see VIRTIO_NET_F_MQ and VIRTIO_NET_CTRL_MQ.
 	 * Legal values are between 1 and 0x8000
 	 */
-	uint16_t max_virtqueue_pairs;
+	__virtio16 max_virtqueue_pairs;
 	/* Default maximum transmit unit advice */
-	uint16_t mtu;
+	__virtio16 mtu;
 	/*
 	 * speed, in units of 1Mb. All values 0 to INT_MAX are legal.
 	 * Any other value stands for unknown.
diff --git a/include/standard-headers/linux/virtio_scsi.h b/include/standard-headers/linux/virtio_scsi.h
index ab66166b6a..663f36cbb7 100644
--- a/include/standard-headers/linux/virtio_scsi.h
+++ b/include/standard-headers/linux/virtio_scsi.h
@@ -103,16 +103,16 @@ struct virtio_scsi_event {
 } QEMU_PACKED;
 
 struct virtio_scsi_config {
-	uint32_t num_queues;
-	uint32_t seg_max;
-	uint32_t max_sectors;
-	uint32_t cmd_per_lun;
-	uint32_t event_info_size;
-	uint32_t sense_size;
-	uint32_t cdb_size;
-	uint16_t max_channel;
-	uint16_t max_target;
-	uint32_t max_lun;
+	__virtio32 num_queues;
+	__virtio32 seg_max;
+	__virtio32 max_sectors;
+	__virtio32 cmd_per_lun;
+	__virtio32 event_info_size;
+	__virtio32 sense_size;
+	__virtio32 cdb_size;
+	__virtio16 max_channel;
+	__virtio16 max_target;
+	__virtio32 max_lun;
 } QEMU_PACKED;
 
 /* Feature Bits */
diff --git a/linux-headers/asm-generic/unistd.h b/linux-headers/asm-generic/unistd.h
index f4a01305d9..995b36c2ea 100644
--- a/linux-headers/asm-generic/unistd.h
+++ b/linux-headers/asm-generic/unistd.h
@@ -606,9 +606,9 @@ __SYSCALL(__NR_sendto, sys_sendto)
 #define __NR_recvfrom 207
 __SC_COMP(__NR_recvfrom, sys_recvfrom, compat_sys_recvfrom)
 #define __NR_setsockopt 208
-__SC_COMP(__NR_setsockopt, sys_setsockopt, compat_sys_setsockopt)
+__SC_COMP(__NR_setsockopt, sys_setsockopt, sys_setsockopt)
 #define __NR_getsockopt 209
-__SC_COMP(__NR_getsockopt, sys_getsockopt, compat_sys_getsockopt)
+__SC_COMP(__NR_getsockopt, sys_getsockopt, sys_getsockopt)
 #define __NR_shutdown 210
 __SYSCALL(__NR_shutdown, sys_shutdown)
 #define __NR_sendmsg 211
@@ -850,6 +850,8 @@ __SYSCALL(__NR_pidfd_open, sys_pidfd_open)
 #define __NR_clone3 435
 __SYSCALL(__NR_clone3, sys_clone3)
 #endif
+#define __NR_close_range 436
+__SYSCALL(__NR_close_range, sys_close_range)
 
 #define __NR_openat2 437
 __SYSCALL(__NR_openat2, sys_openat2)
diff --git a/linux-headers/asm-mips/unistd_n32.h b/linux-headers/asm-mips/unistd_n32.h
index 3b9eda7e7d..246fbb6a78 100644
--- a/linux-headers/asm-mips/unistd_n32.h
+++ b/linux-headers/asm-mips/unistd_n32.h
@@ -365,6 +365,7 @@
 #define __NR_fspick	(__NR_Linux + 433)
 #define __NR_pidfd_open	(__NR_Linux + 434)
 #define __NR_clone3	(__NR_Linux + 435)
+#define __NR_close_range	(__NR_Linux + 436)
 #define __NR_openat2	(__NR_Linux + 437)
 #define __NR_pidfd_getfd	(__NR_Linux + 438)
 #define __NR_faccessat2	(__NR_Linux + 439)
diff --git a/linux-headers/asm-mips/unistd_n64.h b/linux-headers/asm-mips/unistd_n64.h
index 9cdf9b6c60..194d777dfd 100644
--- a/linux-headers/asm-mips/unistd_n64.h
+++ b/linux-headers/asm-mips/unistd_n64.h
@@ -341,6 +341,7 @@
 #define __NR_fspick	(__NR_Linux + 433)
 #define __NR_pidfd_open	(__NR_Linux + 434)
 #define __NR_clone3	(__NR_Linux + 435)
+#define __NR_close_range	(__NR_Linux + 436)
 #define __NR_openat2	(__NR_Linux + 437)
 #define __NR_pidfd_getfd	(__NR_Linux + 438)
 #define __NR_faccessat2	(__NR_Linux + 439)
diff --git a/linux-headers/asm-mips/unistd_o32.h b/linux-headers/asm-mips/unistd_o32.h
index e3e5e238f0..3e093dd913 100644
--- a/linux-headers/asm-mips/unistd_o32.h
+++ b/linux-headers/asm-mips/unistd_o32.h
@@ -411,6 +411,7 @@
 #define __NR_fspick	(__NR_Linux + 433)
 #define __NR_pidfd_open	(__NR_Linux + 434)
 #define __NR_clone3	(__NR_Linux + 435)
+#define __NR_close_range	(__NR_Linux + 436)
 #define __NR_openat2	(__NR_Linux + 437)
 #define __NR_pidfd_getfd	(__NR_Linux + 438)
 #define __NR_faccessat2	(__NR_Linux + 439)
diff --git a/linux-headers/asm-powerpc/kvm.h b/linux-headers/asm-powerpc/kvm.h
index 264e266a85..c3af3f324c 100644
--- a/linux-headers/asm-powerpc/kvm.h
+++ b/linux-headers/asm-powerpc/kvm.h
@@ -640,6 +640,11 @@ struct kvm_ppc_cpu_char {
 #define KVM_REG_PPC_ONLINE	(KVM_REG_PPC | KVM_REG_SIZE_U32 | 0xbf)
 #define KVM_REG_PPC_PTCR	(KVM_REG_PPC | KVM_REG_SIZE_U64 | 0xc0)
 
+/* POWER10 registers */
+#define KVM_REG_PPC_MMCR3	(KVM_REG_PPC | KVM_REG_SIZE_U64 | 0xc1)
+#define KVM_REG_PPC_SIER2	(KVM_REG_PPC | KVM_REG_SIZE_U64 | 0xc2)
+#define KVM_REG_PPC_SIER3	(KVM_REG_PPC | KVM_REG_SIZE_U64 | 0xc3)
+
 /* Transactional Memory checkpointed state:
  * This is all GPRs, all VSX regs and a subset of SPRs
  */
diff --git a/linux-headers/asm-powerpc/unistd_32.h b/linux-headers/asm-powerpc/unistd_32.h
index 862edb7448..0db9481d49 100644
--- a/linux-headers/asm-powerpc/unistd_32.h
+++ b/linux-headers/asm-powerpc/unistd_32.h
@@ -418,6 +418,7 @@
 #define __NR_fspick	433
 #define __NR_pidfd_open	434
 #define __NR_clone3	435
+#define __NR_close_range	436
 #define __NR_openat2	437
 #define __NR_pidfd_getfd	438
 #define __NR_faccessat2	439
diff --git a/linux-headers/asm-powerpc/unistd_64.h b/linux-headers/asm-powerpc/unistd_64.h
index f553224ce4..9f74310988 100644
--- a/linux-headers/asm-powerpc/unistd_64.h
+++ b/linux-headers/asm-powerpc/unistd_64.h
@@ -390,6 +390,7 @@
 #define __NR_fspick	433
 #define __NR_pidfd_open	434
 #define __NR_clone3	435
+#define __NR_close_range	436
 #define __NR_openat2	437
 #define __NR_pidfd_getfd	438
 #define __NR_faccessat2	439
diff --git a/linux-headers/asm-s390/kvm.h b/linux-headers/asm-s390/kvm.h
index 0138ccb0d8..f053b8304a 100644
--- a/linux-headers/asm-s390/kvm.h
+++ b/linux-headers/asm-s390/kvm.h
@@ -231,11 +231,13 @@ struct kvm_guest_debug_arch {
 #define KVM_SYNC_GSCB   (1UL << 9)
 #define KVM_SYNC_BPBC   (1UL << 10)
 #define KVM_SYNC_ETOKEN (1UL << 11)
+#define KVM_SYNC_DIAG318 (1UL << 12)
 
 #define KVM_SYNC_S390_VALID_FIELDS \
 	(KVM_SYNC_PREFIX | KVM_SYNC_GPRS | KVM_SYNC_ACRS | KVM_SYNC_CRS | \
 	 KVM_SYNC_ARCH0 | KVM_SYNC_PFAULT | KVM_SYNC_VRS | KVM_SYNC_RICCB | \
-	 KVM_SYNC_FPRS | KVM_SYNC_GSCB | KVM_SYNC_BPBC | KVM_SYNC_ETOKEN)
+	 KVM_SYNC_FPRS | KVM_SYNC_GSCB | KVM_SYNC_BPBC | KVM_SYNC_ETOKEN | \
+	 KVM_SYNC_DIAG318)
 
 /* length and alignment of the sdnx as a power of two */
 #define SDNXC 8
@@ -264,7 +266,8 @@ struct kvm_sync_regs {
 	__u8 reserved2 : 7;
 	__u8 padding1[51];	/* riccb needs to be 64byte aligned */
 	__u8 riccb[64];		/* runtime instrumentation controls block */
-	__u8 padding2[192];	/* sdnx needs to be 256byte aligned */
+	__u64 diag318;		/* diagnose 0x318 info */
+	__u8 padding2[184];	/* sdnx needs to be 256byte aligned */
 	union {
 		__u8 sdnx[SDNXL];  /* state description annex */
 		struct {
diff --git a/linux-headers/asm-s390/unistd_32.h b/linux-headers/asm-s390/unistd_32.h
index e08233c0c3..1803cd0c3b 100644
--- a/linux-headers/asm-s390/unistd_32.h
+++ b/linux-headers/asm-s390/unistd_32.h
@@ -408,6 +408,7 @@
 #define __NR_fspick 433
 #define __NR_pidfd_open 434
 #define __NR_clone3 435
+#define __NR_close_range 436
 #define __NR_openat2 437
 #define __NR_pidfd_getfd 438
 #define __NR_faccessat2 439
diff --git a/linux-headers/asm-s390/unistd_64.h b/linux-headers/asm-s390/unistd_64.h
index 560e19ae2b..228d5004e5 100644
--- a/linux-headers/asm-s390/unistd_64.h
+++ b/linux-headers/asm-s390/unistd_64.h
@@ -356,6 +356,7 @@
 #define __NR_fspick 433
 #define __NR_pidfd_open 434
 #define __NR_clone3 435
+#define __NR_close_range 436
 #define __NR_openat2 437
 #define __NR_pidfd_getfd 438
 #define __NR_faccessat2 439
diff --git a/linux-headers/asm-x86/unistd_32.h b/linux-headers/asm-x86/unistd_32.h
index c727981d4a..356c12c2db 100644
--- a/linux-headers/asm-x86/unistd_32.h
+++ b/linux-headers/asm-x86/unistd_32.h
@@ -426,6 +426,7 @@
 #define __NR_fspick 433
 #define __NR_pidfd_open 434
 #define __NR_clone3 435
+#define __NR_close_range 436
 #define __NR_openat2 437
 #define __NR_pidfd_getfd 438
 #define __NR_faccessat2 439
diff --git a/linux-headers/asm-x86/unistd_64.h b/linux-headers/asm-x86/unistd_64.h
index 843fa62745..ef70e1c7c9 100644
--- a/linux-headers/asm-x86/unistd_64.h
+++ b/linux-headers/asm-x86/unistd_64.h
@@ -348,6 +348,7 @@
 #define __NR_fspick 433
 #define __NR_pidfd_open 434
 #define __NR_clone3 435
+#define __NR_close_range 436
 #define __NR_openat2 437
 #define __NR_pidfd_getfd 438
 #define __NR_faccessat2 439
diff --git a/linux-headers/asm-x86/unistd_x32.h b/linux-headers/asm-x86/unistd_x32.h
index 7d63d703ca..84ae8e9f5f 100644
--- a/linux-headers/asm-x86/unistd_x32.h
+++ b/linux-headers/asm-x86/unistd_x32.h
@@ -301,6 +301,7 @@
 #define __NR_fspick (__X32_SYSCALL_BIT + 433)
 #define __NR_pidfd_open (__X32_SYSCALL_BIT + 434)
 #define __NR_clone3 (__X32_SYSCALL_BIT + 435)
+#define __NR_close_range (__X32_SYSCALL_BIT + 436)
 #define __NR_openat2 (__X32_SYSCALL_BIT + 437)
 #define __NR_pidfd_getfd (__X32_SYSCALL_BIT + 438)
 #define __NR_faccessat2 (__X32_SYSCALL_BIT + 439)
diff --git a/linux-headers/linux/kvm.h b/linux-headers/linux/kvm.h
index a28c366737..6683e2e1b0 100644
--- a/linux-headers/linux/kvm.h
+++ b/linux-headers/linux/kvm.h
@@ -289,6 +289,7 @@ struct kvm_run {
 		/* KVM_EXIT_FAIL_ENTRY */
 		struct {
 			__u64 hardware_entry_failure_reason;
+			__u32 cpu;
 		} fail_entry;
 		/* KVM_EXIT_EXCEPTION */
 		struct {
@@ -1031,6 +1032,9 @@ struct kvm_ppc_resize_hpt {
 #define KVM_CAP_PPC_SECURE_GUEST 181
 #define KVM_CAP_HALT_POLL 182
 #define KVM_CAP_ASYNC_PF_INT 183
+#define KVM_CAP_LAST_CPU 184
+#define KVM_CAP_SMALLER_MAXPHYADDR 185
+#define KVM_CAP_S390_DIAG318 186
 
 #ifdef KVM_CAP_IRQ_ROUTING
 
diff --git a/linux-headers/linux/vfio.h b/linux-headers/linux/vfio.h
index f09df262c4..a90672494d 100644
--- a/linux-headers/linux/vfio.h
+++ b/linux-headers/linux/vfio.h
@@ -1030,7 +1030,7 @@ struct vfio_iommu_type1_info_cap_iova_range {
  * size in bytes that can be used by user applications when getting the dirty
  * bitmap.
  */
-#define VFIO_IOMMU_TYPE1_INFO_CAP_MIGRATION  1
+#define VFIO_IOMMU_TYPE1_INFO_CAP_MIGRATION  2
 
 struct vfio_iommu_type1_info_cap_migration {
 	struct	vfio_info_cap_header header;
diff --git a/linux-headers/linux/vhost.h b/linux-headers/linux/vhost.h
index 0c2349612e..7523218532 100644
--- a/linux-headers/linux/vhost.h
+++ b/linux-headers/linux/vhost.h
@@ -91,6 +91,8 @@
 
 /* Use message type V2 */
 #define VHOST_BACKEND_F_IOTLB_MSG_V2 0x1
+/* IOTLB can accept batching hints */
+#define VHOST_BACKEND_F_IOTLB_BATCH  0x2
 
 #define VHOST_SET_BACKEND_FEATURES _IOW(VHOST_VIRTIO, 0x25, __u64)
 #define VHOST_GET_BACKEND_FEATURES _IOR(VHOST_VIRTIO, 0x26, __u64)
-- 
MST



^ permalink raw reply related	[flat|nested] 63+ messages in thread

* [PULL v4 03/48] vhost-vdpa: batch updating IOTLB mappings
  2020-09-29  7:20 [PULL v4 00/48] virtio,pc,acpi: fixes, tests Michael S. Tsirkin
  2020-09-29  7:20   ` Michael S. Tsirkin
@ 2020-09-29  7:20 ` Michael S. Tsirkin
  2020-09-29  7:21 ` [PULL v4 04/48] virtio-mem: detach the element from the virtqueue when error occurs Michael S. Tsirkin
                   ` (49 subsequent siblings)
  51 siblings, 0 replies; 63+ messages in thread
From: Michael S. Tsirkin @ 2020-09-29  7:20 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell, Jason Wang

From: Jason Wang <jasowang@redhat.com>

To speed up the memory mapping updating between vhost-vDPA and vDPA
device driver, this patch passes the IOTLB batching flags via IOTLB
API. Two new flags was introduced, VHOST_IOTLB_BATCH_BEGIN is a hint
that a bathced IOTLB updating may be initiated from the
userspace. VHOST_IOTLB_BATCH_END is a hint that userspace has finished
the updating:

VHOST_IOTLB_BATCH_BEGIN
VHOST_IOTLB_UPDATE/VHOST_IOTLB_INVALIDATE
...
VHOST_IOTLB_BATCH_END

Vhost-vDPA can then know that all mappings has been set and can do
optimization like passing all the mappings to the vDPA device driver.

Signed-off-by: Jason Wang <jasowang@redhat.com>
Message-Id: <20200907104903.31551-4-jasowang@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
 include/hw/virtio/vhost-vdpa.h |  1 +
 hw/virtio/vhost-vdpa.c         | 66 ++++++++++++++++++++++++++++++++++
 2 files changed, 67 insertions(+)

diff --git a/include/hw/virtio/vhost-vdpa.h b/include/hw/virtio/vhost-vdpa.h
index 6455663388..9b81a409da 100644
--- a/include/hw/virtio/vhost-vdpa.h
+++ b/include/hw/virtio/vhost-vdpa.h
@@ -18,6 +18,7 @@ typedef struct vhost_vdpa {
     int device_fd;
     uint32_t msg_type;
     MemoryListener listener;
+    struct vhost_dev *dev;
 } VhostVDPA;
 
 extern AddressSpace address_space_memory;
diff --git a/hw/virtio/vhost-vdpa.c b/hw/virtio/vhost-vdpa.c
index aedc52c4d7..dbf2643ff7 100644
--- a/hw/virtio/vhost-vdpa.c
+++ b/hw/virtio/vhost-vdpa.c
@@ -78,6 +78,46 @@ static int vhost_vdpa_dma_unmap(struct vhost_vdpa *v, hwaddr iova,
     return ret;
 }
 
+static void vhost_vdpa_listener_begin(MemoryListener *listener)
+{
+    struct vhost_vdpa *v = container_of(listener, struct vhost_vdpa, listener);
+    struct vhost_dev *dev = v->dev;
+    struct vhost_msg_v2 msg;
+    int fd = v->device_fd;
+
+    if (!(dev->backend_cap & (0x1ULL << VHOST_BACKEND_F_IOTLB_BATCH))) {
+        return;
+    }
+
+    msg.type = v->msg_type;
+    msg.iotlb.type = VHOST_IOTLB_BATCH_BEGIN;
+
+    if (write(fd, &msg, sizeof(msg)) != sizeof(msg)) {
+        error_report("failed to write, fd=%d, errno=%d (%s)",
+                     fd, errno, strerror(errno));
+    }
+}
+
+static void vhost_vdpa_listener_commit(MemoryListener *listener)
+{
+    struct vhost_vdpa *v = container_of(listener, struct vhost_vdpa, listener);
+    struct vhost_dev *dev = v->dev;
+    struct vhost_msg_v2 msg;
+    int fd = v->device_fd;
+
+    if (!(dev->backend_cap & (0x1ULL << VHOST_BACKEND_F_IOTLB_BATCH))) {
+        return;
+    }
+
+    msg.type = v->msg_type;
+    msg.iotlb.type = VHOST_IOTLB_BATCH_END;
+
+    if (write(fd, &msg, sizeof(msg)) != sizeof(msg)) {
+        error_report("failed to write, fd=%d, errno=%d (%s)",
+                     fd, errno, strerror(errno));
+    }
+}
+
 static void vhost_vdpa_listener_region_add(MemoryListener *listener,
                                            MemoryRegionSection *section)
 {
@@ -188,6 +228,8 @@ static void vhost_vdpa_listener_region_del(MemoryListener *listener,
  * depends on the addnop().
  */
 static const MemoryListener vhost_vdpa_memory_listener = {
+    .begin = vhost_vdpa_listener_begin,
+    .commit = vhost_vdpa_listener_commit,
     .region_add = vhost_vdpa_listener_region_add,
     .region_del = vhost_vdpa_listener_region_del,
 };
@@ -223,6 +265,7 @@ static int vhost_vdpa_init(struct vhost_dev *dev, void *opaque)
     assert(dev->vhost_ops->backend_type == VHOST_BACKEND_TYPE_VDPA);
 
     v = opaque;
+    v->dev = dev;
     dev->opaque =  opaque ;
     vhost_vdpa_call(dev, VHOST_GET_FEATURES, &features);
     dev->backend_features = features;
@@ -277,6 +320,28 @@ static int vhost_vdpa_set_features(struct vhost_dev *dev,
     return !(status & VIRTIO_CONFIG_S_FEATURES_OK);
 }
 
+static int vhost_vdpa_set_backend_cap(struct vhost_dev *dev)
+{
+    uint64_t features;
+    uint64_t f = 0x1ULL << VHOST_BACKEND_F_IOTLB_MSG_V2 |
+        0x1ULL << VHOST_BACKEND_F_IOTLB_BATCH;
+    int r;
+
+    if (vhost_vdpa_call(dev, VHOST_GET_BACKEND_FEATURES, &features)) {
+        return 0;
+    }
+
+    features &= f;
+    r = vhost_vdpa_call(dev, VHOST_SET_BACKEND_FEATURES, &features);
+    if (r) {
+        return 0;
+    }
+
+    dev->backend_cap = features;
+
+    return 0;
+}
+
 int vhost_vdpa_get_device_id(struct vhost_dev *dev,
                                    uint32_t *device_id)
 {
@@ -444,6 +509,7 @@ const VhostOps vdpa_ops = {
         .vhost_set_vring_kick = vhost_vdpa_set_vring_kick,
         .vhost_set_vring_call = vhost_vdpa_set_vring_call,
         .vhost_get_features = vhost_vdpa_get_features,
+        .vhost_set_backend_cap = vhost_vdpa_set_backend_cap,
         .vhost_set_owner = vhost_vdpa_set_owner,
         .vhost_set_vring_endian = NULL,
         .vhost_backend_memslots_limit = vhost_vdpa_memslots_limit,
-- 
MST



^ permalink raw reply related	[flat|nested] 63+ messages in thread

* [PULL v4 04/48] virtio-mem: detach the element from the virtqueue when error occurs
  2020-09-29  7:20 [PULL v4 00/48] virtio,pc,acpi: fixes, tests Michael S. Tsirkin
  2020-09-29  7:20   ` Michael S. Tsirkin
  2020-09-29  7:20 ` [PULL v4 03/48] vhost-vdpa: batch updating IOTLB mappings Michael S. Tsirkin
@ 2020-09-29  7:21 ` Michael S. Tsirkin
  2020-09-29  7:21 ` [PULL v4 05/48] pc: fix auto_enable_numa_with_memhp/auto_enable_numa_with_memdev for the 5.0 machine Michael S. Tsirkin
                   ` (48 subsequent siblings)
  51 siblings, 0 replies; 63+ messages in thread
From: Michael S. Tsirkin @ 2020-09-29  7:21 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell, Li Qiang, David Hildenbrand

From: Li Qiang <liq3ea@163.com>

If error occurs while processing the virtio request we should call
'virtqueue_detach_element' to detach the element from the virtqueue
before free the elem.

Signed-off-by: Li Qiang <liq3ea@163.com>
Message-Id: <20200816142245.17556-1-liq3ea@163.com>
Fixes: 910b25766b ("virtio-mem: Paravirtualized memory hot(un)plug")
Acked-by: David Hildenbrand <david@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
 hw/virtio/virtio-mem.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/hw/virtio/virtio-mem.c b/hw/virtio/virtio-mem.c
index 8fbec77ccc..7c8ca9f28b 100644
--- a/hw/virtio/virtio-mem.c
+++ b/hw/virtio/virtio-mem.c
@@ -318,6 +318,7 @@ static void virtio_mem_handle_request(VirtIODevice *vdev, VirtQueue *vq)
         if (iov_to_buf(elem->out_sg, elem->out_num, 0, &req, len) < len) {
             virtio_error(vdev, "virtio-mem protocol violation: invalid request"
                          " size: %d", len);
+            virtqueue_detach_element(vq, elem, 0);
             g_free(elem);
             return;
         }
@@ -327,6 +328,7 @@ static void virtio_mem_handle_request(VirtIODevice *vdev, VirtQueue *vq)
             virtio_error(vdev, "virtio-mem protocol violation: not enough space"
                          " for response: %zu",
                          iov_size(elem->in_sg, elem->in_num));
+            virtqueue_detach_element(vq, elem, 0);
             g_free(elem);
             return;
         }
@@ -348,6 +350,7 @@ static void virtio_mem_handle_request(VirtIODevice *vdev, VirtQueue *vq)
         default:
             virtio_error(vdev, "virtio-mem protocol violation: unknown request"
                          " type: %d", type);
+            virtqueue_detach_element(vq, elem, 0);
             g_free(elem);
             return;
         }
-- 
MST



^ permalink raw reply related	[flat|nested] 63+ messages in thread

* [PULL v4 05/48] pc: fix auto_enable_numa_with_memhp/auto_enable_numa_with_memdev for the 5.0 machine
  2020-09-29  7:20 [PULL v4 00/48] virtio,pc,acpi: fixes, tests Michael S. Tsirkin
                   ` (2 preceding siblings ...)
  2020-09-29  7:21 ` [PULL v4 04/48] virtio-mem: detach the element from the virtqueue when error occurs Michael S. Tsirkin
@ 2020-09-29  7:21 ` Michael S. Tsirkin
  2020-09-29  7:21 ` [PULL v4 06/48] vhost: recheck dev state in the vhost_migration_log routine Michael S. Tsirkin
                   ` (47 subsequent siblings)
  51 siblings, 0 replies; 63+ messages in thread
From: Michael S. Tsirkin @ 2020-09-29  7:21 UTC (permalink / raw)
  To: qemu-devel
  Cc: Peter Maydell, Eduardo Habkost, David Hildenbrand, qemu-stable,
	Dr . David Alan Gilbert, Igor Mammedov, Paolo Bonzini,
	Richard Henderson

From: David Hildenbrand <david@redhat.com>

Unfortunately, a typo sneeked in: we want to set
auto_enable_numa_with_memdev to false, not auto_enable_numa_with_memhp.

Cc: qemu-stable@nongnu.org # v5.1
Fixes: 195784a0cfad (numa: Auto-enable NUMA when any memory devices are possible)
Reported-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: Richard Henderson <rth@twiddle.net>
Cc: Eduardo Habkost <ehabkost@redhat.com>
Cc: "Michael S. Tsirkin" <mst@redhat.com>
Signed-off-by: David Hildenbrand <david@redhat.com>
Message-Id: <20200820094828.30348-1-david@redhat.com>
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Reviewed-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
 hw/i386/pc_q35.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/hw/i386/pc_q35.c b/hw/i386/pc_q35.c
index 622d039717..e1c415f57d 100644
--- a/hw/i386/pc_q35.c
+++ b/hw/i386/pc_q35.c
@@ -382,7 +382,7 @@ static void pc_q35_5_0_machine_options(MachineClass *m)
     m->numa_mem_supported = true;
     compat_props_add(m->compat_props, hw_compat_5_0, hw_compat_5_0_len);
     compat_props_add(m->compat_props, pc_compat_5_0, pc_compat_5_0_len);
-    m->auto_enable_numa_with_memhp = false;
+    m->auto_enable_numa_with_memdev = false;
 }
 
 DEFINE_Q35_MACHINE(v5_0, "pc-q35-5.0", NULL,
-- 
MST



^ permalink raw reply related	[flat|nested] 63+ messages in thread

* [PULL v4 06/48] vhost: recheck dev state in the vhost_migration_log routine
  2020-09-29  7:20 [PULL v4 00/48] virtio,pc,acpi: fixes, tests Michael S. Tsirkin
                   ` (3 preceding siblings ...)
  2020-09-29  7:21 ` [PULL v4 05/48] pc: fix auto_enable_numa_with_memhp/auto_enable_numa_with_memdev for the 5.0 machine Michael S. Tsirkin
@ 2020-09-29  7:21 ` Michael S. Tsirkin
  2020-09-29  7:21 ` [PULL v4 07/48] vhost: check queue state in the vhost_dev_set_log routine Michael S. Tsirkin
                   ` (46 subsequent siblings)
  51 siblings, 0 replies; 63+ messages in thread
From: Michael S. Tsirkin @ 2020-09-29  7:21 UTC (permalink / raw)
  To: qemu-devel
  Cc: Kevin Wolf, Peter Maydell, qemu-block, Max Reitz,
	Raphael Norwitz, Dima Stepanov

From: Dima Stepanov <dimastep@yandex-team.ru>

vhost-user devices can get a disconnect in the middle of the VHOST-USER
handshake on the migration start. If disconnect event happened right
before sending next VHOST-USER command, then the vhost_dev_set_log()
call in the vhost_migration_log() function will return error. This error
will lead to the assert() and close the QEMU migration source process.
For the vhost-user devices the disconnect event should not break the
migration process, because:
  - the device will be in the stopped state, so it will not be changed
    during migration
  - if reconnect will be made the migration log will be reinitialized as
    part of reconnect/init process:
    #0  vhost_log_global_start (listener=0x563989cf7be0)
    at hw/virtio/vhost.c:920
    #1  0x000056398603d8bc in listener_add_address_space (listener=0x563989cf7be0,
        as=0x563986ea4340 <address_space_memory>)
    at softmmu/memory.c:2664
    #2  0x000056398603dd30 in memory_listener_register (listener=0x563989cf7be0,
        as=0x563986ea4340 <address_space_memory>)
    at softmmu/memory.c:2740
    #3  0x0000563985fd6956 in vhost_dev_init (hdev=0x563989cf7bd8,
        opaque=0x563989cf7e30, backend_type=VHOST_BACKEND_TYPE_USER,
        busyloop_timeout=0)
    at hw/virtio/vhost.c:1385
    #4  0x0000563985f7d0b8 in vhost_user_blk_connect (dev=0x563989cf7990)
    at hw/block/vhost-user-blk.c:315
    #5  0x0000563985f7d3f6 in vhost_user_blk_event (opaque=0x563989cf7990,
        event=CHR_EVENT_OPENED)
    at hw/block/vhost-user-blk.c:379
Update the vhost-user-blk device with the internal started_vu field which
will be used for initialization (vhost_user_blk_start) and clean up
(vhost_user_blk_stop). This additional flag in the VhostUserBlk structure
will be used to track whether the device really needs to be stopped and
cleaned up on a vhost-user level.
The disconnect event will set the overall VHOST device (not vhost-user) to
the stopped state, so it can be used by the general vhost_migration_log
routine.
Such approach could be propogated to the other vhost-user devices, but
better idea is just to make the same connect/disconnect code for all the
vhost-user devices.

This migration issue was slightly discussed earlier:
  - https://lists.gnu.org/archive/html/qemu-devel/2020-05/msg01509.html
  - https://lists.gnu.org/archive/html/qemu-devel/2020-05/msg05241.html

Signed-off-by: Dima Stepanov <dimastep@yandex-team.ru>
Reviewed-by: Raphael Norwitz <raphael.norwitz@nutanix.com>
Message-Id: <9fbfba06791a87813fcee3e2315f0b904cc6789a.1599813294.git.dimastep@yandex-team.ru>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
 include/hw/virtio/vhost-user-blk.h | 10 ++++++++++
 hw/block/vhost-user-blk.c          | 19 ++++++++++++++++---
 hw/virtio/vhost.c                  | 27 ++++++++++++++++++++++++---
 3 files changed, 50 insertions(+), 6 deletions(-)

diff --git a/include/hw/virtio/vhost-user-blk.h b/include/hw/virtio/vhost-user-blk.h
index f536576d20..7c91f15040 100644
--- a/include/hw/virtio/vhost-user-blk.h
+++ b/include/hw/virtio/vhost-user-blk.h
@@ -40,7 +40,17 @@ struct VHostUserBlk {
     VhostUserState vhost_user;
     struct vhost_virtqueue *vhost_vqs;
     VirtQueue **virtqs;
+
+    /*
+     * There are at least two steps of initialization of the
+     * vhost-user device. The first is a "connect" step and
+     * second is a "start" step. Make a separation between
+     * those initialization phases by using two fields.
+     */
+    /* vhost_user_blk_connect/vhost_user_blk_disconnect */
     bool connected;
+    /* vhost_user_blk_start/vhost_user_blk_stop */
+    bool started_vu;
 };
 
 #endif
diff --git a/hw/block/vhost-user-blk.c b/hw/block/vhost-user-blk.c
index 39aec42dae..a076b1e54d 100644
--- a/hw/block/vhost-user-blk.c
+++ b/hw/block/vhost-user-blk.c
@@ -150,6 +150,7 @@ static int vhost_user_blk_start(VirtIODevice *vdev)
         error_report("Error starting vhost: %d", -ret);
         goto err_guest_notifiers;
     }
+    s->started_vu = true;
 
     /* guest_notifier_mask/pending not used yet, so just unmask
      * everything here. virtio-pci will do the right thing by
@@ -175,6 +176,11 @@ static void vhost_user_blk_stop(VirtIODevice *vdev)
     VirtioBusClass *k = VIRTIO_BUS_GET_CLASS(qbus);
     int ret;
 
+    if (!s->started_vu) {
+        return;
+    }
+    s->started_vu = false;
+
     if (!k->set_guest_notifiers) {
         return;
     }
@@ -341,9 +347,7 @@ static void vhost_user_blk_disconnect(DeviceState *dev)
     }
     s->connected = false;
 
-    if (s->dev.started) {
-        vhost_user_blk_stop(vdev);
-    }
+    vhost_user_blk_stop(vdev);
 
     vhost_dev_cleanup(&s->dev);
 }
@@ -399,6 +403,15 @@ static void vhost_user_blk_event(void *opaque, QEMUChrEvent event)
                     NULL, NULL, false);
             aio_bh_schedule_oneshot(ctx, vhost_user_blk_chr_closed_bh, opaque);
         }
+
+        /*
+         * Move vhost device to the stopped state. The vhost-user device
+         * will be clean up and disconnected in BH. This can be useful in
+         * the vhost migration code. If disconnect was caught there is an
+         * option for the general vhost code to get the dev state without
+         * knowing its type (in this case vhost-user).
+         */
+        s->dev.started = false;
         break;
     case CHR_EVENT_BREAK:
     case CHR_EVENT_MUX_IN:
diff --git a/hw/virtio/vhost.c b/hw/virtio/vhost.c
index 8087f200e9..60bc516003 100644
--- a/hw/virtio/vhost.c
+++ b/hw/virtio/vhost.c
@@ -871,21 +871,42 @@ static int vhost_migration_log(MemoryListener *listener, bool enable)
         dev->log_enabled = enable;
         return 0;
     }
+
+    r = 0;
     if (!enable) {
         r = vhost_dev_set_log(dev, false);
         if (r < 0) {
-            return r;
+            goto check_dev_state;
         }
         vhost_log_put(dev, false);
     } else {
         vhost_dev_log_resize(dev, vhost_get_log_size(dev));
         r = vhost_dev_set_log(dev, true);
         if (r < 0) {
-            return r;
+            goto check_dev_state;
         }
     }
+
+check_dev_state:
     dev->log_enabled = enable;
-    return 0;
+    /*
+     * vhost-user-* devices could change their state during log
+     * initialization due to disconnect. So check dev state after
+     * vhost communication.
+     */
+    if (!dev->started) {
+        /*
+         * Since device is in the stopped state, it is okay for
+         * migration. Return success.
+         */
+        r = 0;
+    }
+    if (r) {
+        /* An error is occured. */
+        dev->log_enabled = false;
+    }
+
+    return r;
 }
 
 static void vhost_log_global_start(MemoryListener *listener)
-- 
MST



^ permalink raw reply related	[flat|nested] 63+ messages in thread

* [PULL v4 07/48] vhost: check queue state in the vhost_dev_set_log routine
  2020-09-29  7:20 [PULL v4 00/48] virtio,pc,acpi: fixes, tests Michael S. Tsirkin
                   ` (4 preceding siblings ...)
  2020-09-29  7:21 ` [PULL v4 06/48] vhost: recheck dev state in the vhost_migration_log routine Michael S. Tsirkin
@ 2020-09-29  7:21 ` Michael S. Tsirkin
  2020-09-29  7:21 ` [PULL v4 08/48] tests/qtest/vhost-user-test: prepare the tests for adding new dev class Michael S. Tsirkin
                   ` (45 subsequent siblings)
  51 siblings, 0 replies; 63+ messages in thread
From: Michael S. Tsirkin @ 2020-09-29  7:21 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell, Dima Stepanov, Raphael Norwitz

From: Dima Stepanov <dimastep@yandex-team.ru>

If the vhost-user-blk daemon provides only one virtqueue, but device was
added with several queues, then QEMU will send more VHOST-USER command
than expected by daemon side. The vhost_virtqueue_start() routine
handles such case by checking the return value from the
virtio_queue_get_desc_addr() function call. Add the same check to the
vhost_dev_set_log() routine.

Signed-off-by: Dima Stepanov <dimastep@yandex-team.ru>
Reviewed-by: Raphael Norwitz <raphael.norwitz@nutanix.com>
Message-Id: <6232946d5af09e9775076645909964a6539b8ab5.1599813294.git.dimastep@yandex-team.ru>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
 hw/virtio/vhost.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/hw/virtio/vhost.c b/hw/virtio/vhost.c
index 60bc516003..68f0a75134 100644
--- a/hw/virtio/vhost.c
+++ b/hw/virtio/vhost.c
@@ -835,12 +835,24 @@ out:
 static int vhost_dev_set_log(struct vhost_dev *dev, bool enable_log)
 {
     int r, i, idx;
+    hwaddr addr;
+
     r = vhost_dev_set_features(dev, enable_log);
     if (r < 0) {
         goto err_features;
     }
     for (i = 0; i < dev->nvqs; ++i) {
         idx = dev->vhost_ops->vhost_get_vq_index(dev, dev->vq_index + i);
+        addr = virtio_queue_get_desc_addr(dev->vdev, idx);
+        if (!addr) {
+            /*
+             * The queue might not be ready for start. If this
+             * is the case there is no reason to continue the process.
+             * The similar logic is used by the vhost_virtqueue_start()
+             * routine.
+             */
+            continue;
+        }
         r = vhost_virtqueue_set_addr(dev, dev->vqs + i, idx,
                                      enable_log);
         if (r < 0) {
-- 
MST



^ permalink raw reply related	[flat|nested] 63+ messages in thread

* [PULL v4 08/48] tests/qtest/vhost-user-test: prepare the tests for adding new dev class
  2020-09-29  7:20 [PULL v4 00/48] virtio,pc,acpi: fixes, tests Michael S. Tsirkin
                   ` (5 preceding siblings ...)
  2020-09-29  7:21 ` [PULL v4 07/48] vhost: check queue state in the vhost_dev_set_log routine Michael S. Tsirkin
@ 2020-09-29  7:21 ` Michael S. Tsirkin
  2020-09-29  7:21 ` [PULL v4 09/48] cphp: remove deprecated cpu-add command(s) Michael S. Tsirkin
                   ` (44 subsequent siblings)
  51 siblings, 0 replies; 63+ messages in thread
From: Michael S. Tsirkin @ 2020-09-29  7:21 UTC (permalink / raw)
  To: qemu-devel
  Cc: Laurent Vivier, Peter Maydell, Thomas Huth, Raphael Norwitz,
	Paolo Bonzini, Dima Stepanov

From: Dima Stepanov <dimastep@yandex-team.ru>

For now only vhost-user-net device is supported by the test. Other
vhost-user devices are not tested. As a first step make source code
refactoring so new devices can reuse the same test routines. To make
this provide a new vhost_user_ops structure with the methods to
initialize device, its command line or make a proper vhost-user
responses.

Signed-off-by: Dima Stepanov <dimastep@yandex-team.ru>
Reviewed-by: Raphael Norwitz <raphael.norwitz@nutanix.com>
Message-Id: <a48b60fb96fef230b75fff72a2d77040dcb5ef7c.1599813294.git.dimastep@yandex-team.ru>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
 tests/qtest/vhost-user-test.c | 105 ++++++++++++++++++++++++----------
 1 file changed, 76 insertions(+), 29 deletions(-)

diff --git a/tests/qtest/vhost-user-test.c b/tests/qtest/vhost-user-test.c
index 9ee0f1e4fd..3df5322614 100644
--- a/tests/qtest/vhost-user-test.c
+++ b/tests/qtest/vhost-user-test.c
@@ -135,6 +135,10 @@ enum {
     TEST_FLAGS_END,
 };
 
+enum {
+    VHOST_USER_NET,
+};
+
 typedef struct TestServer {
     gchar *socket_path;
     gchar *mig_path;
@@ -154,10 +158,25 @@ typedef struct TestServer {
     bool test_fail;
     int test_flags;
     int queues;
+    struct vhost_user_ops *vu_ops;
 } TestServer;
 
+struct vhost_user_ops {
+    /* Device types. */
+    int type;
+    void (*append_opts)(TestServer *s, GString *cmd_line,
+            const char *chr_opts);
+
+    /* VHOST-USER commands. */
+    void (*set_features)(TestServer *s, CharBackend *chr,
+            VhostUserMsg *msg);
+    void (*get_protocol_features)(TestServer *s,
+            CharBackend *chr, VhostUserMsg *msg);
+};
+
 static const char *init_hugepagefs(void);
-static TestServer *test_server_new(const gchar *name);
+static TestServer *test_server_new(const gchar *name,
+        struct vhost_user_ops *ops);
 static void test_server_free(TestServer *server);
 static void test_server_listen(TestServer *server);
 
@@ -167,7 +186,7 @@ enum test_memfd {
     TEST_MEMFD_NO,
 };
 
-static void append_vhost_opts(TestServer *s, GString *cmd_line,
+static void append_vhost_net_opts(TestServer *s, GString *cmd_line,
                              const char *chr_opts)
 {
     g_string_append_printf(cmd_line, QEMU_CMD_CHR QEMU_CMD_NETDEV,
@@ -332,25 +351,15 @@ static void chr_read(void *opaque, const uint8_t *buf, int size)
         break;
 
     case VHOST_USER_SET_FEATURES:
-        g_assert_cmpint(msg.payload.u64 & (0x1ULL << VHOST_USER_F_PROTOCOL_FEATURES),
-                        !=, 0ULL);
-        if (s->test_flags == TEST_FLAGS_DISCONNECT) {
-            qemu_chr_fe_disconnect(chr);
-            s->test_flags = TEST_FLAGS_BAD;
+        if (s->vu_ops->set_features) {
+            s->vu_ops->set_features(s, chr, &msg);
         }
         break;
 
     case VHOST_USER_GET_PROTOCOL_FEATURES:
-        /* send back features to qemu */
-        msg.flags |= VHOST_USER_REPLY_MASK;
-        msg.size = sizeof(m.payload.u64);
-        msg.payload.u64 = 1 << VHOST_USER_PROTOCOL_F_LOG_SHMFD;
-        msg.payload.u64 |= 1 << VHOST_USER_PROTOCOL_F_CROSS_ENDIAN;
-        if (s->queues > 1) {
-            msg.payload.u64 |= 1 << VHOST_USER_PROTOCOL_F_MQ;
+        if (s->vu_ops->get_protocol_features) {
+            s->vu_ops->get_protocol_features(s, chr, &msg);
         }
-        p = (uint8_t *) &msg;
-        qemu_chr_fe_write_all(chr, p, VHOST_USER_HDR_SIZE + msg.size);
         break;
 
     case VHOST_USER_GET_VRING_BASE:
@@ -467,7 +476,8 @@ static const char *init_hugepagefs(void)
 #endif
 }
 
-static TestServer *test_server_new(const gchar *name)
+static TestServer *test_server_new(const gchar *name,
+        struct vhost_user_ops *ops)
 {
     TestServer *server = g_new0(TestServer, 1);
     char template[] = "/tmp/vhost-test-XXXXXX";
@@ -495,6 +505,7 @@ static TestServer *test_server_new(const gchar *name)
 
     server->log_fd = -1;
     server->queues = 1;
+    server->vu_ops = ops;
 
     return server;
 }
@@ -669,11 +680,11 @@ static void vhost_user_test_cleanup(void *s)
 
 static void *vhost_user_test_setup(GString *cmd_line, void *arg)
 {
-    TestServer *server = test_server_new("vhost-user-test");
+    TestServer *server = test_server_new("vhost-user-test", arg);
     test_server_listen(server);
 
     append_mem_opts(server, cmd_line, 256, TEST_MEMFD_AUTO);
-    append_vhost_opts(server, cmd_line, "");
+    server->vu_ops->append_opts(server, cmd_line, "");
 
     g_test_queue_destroy(vhost_user_test_cleanup, server);
 
@@ -682,11 +693,11 @@ static void *vhost_user_test_setup(GString *cmd_line, void *arg)
 
 static void *vhost_user_test_setup_memfd(GString *cmd_line, void *arg)
 {
-    TestServer *server = test_server_new("vhost-user-test");
+    TestServer *server = test_server_new("vhost-user-test", arg);
     test_server_listen(server);
 
     append_mem_opts(server, cmd_line, 256, TEST_MEMFD_YES);
-    append_vhost_opts(server, cmd_line, "");
+    server->vu_ops->append_opts(server, cmd_line, "");
 
     g_test_queue_destroy(vhost_user_test_cleanup, server);
 
@@ -720,7 +731,7 @@ static void test_migrate(void *obj, void *arg, QGuestAllocator *alloc)
         return;
     }
 
-    dest = test_server_new("dest");
+    dest = test_server_new("dest", s->vu_ops);
     dest_cmdline = g_string_new(qos_get_current_command_line());
     uri = g_strdup_printf("%s%s", "unix:", dest->mig_path);
 
@@ -730,7 +741,7 @@ static void test_migrate(void *obj, void *arg, QGuestAllocator *alloc)
     test_server_listen(dest);
     g_string_append_printf(dest_cmdline, " -incoming %s", uri);
     append_mem_opts(dest, dest_cmdline, 256, TEST_MEMFD_AUTO);
-    append_vhost_opts(dest, dest_cmdline, "");
+    dest->vu_ops->append_opts(dest, dest_cmdline, "");
     to = qtest_init(dest_cmdline->str);
 
     /* This would be where you call qos_allocate_objects(to, NULL), if you want
@@ -831,11 +842,11 @@ connect_thread(gpointer data)
 
 static void *vhost_user_test_setup_reconnect(GString *cmd_line, void *arg)
 {
-    TestServer *s = test_server_new("reconnect");
+    TestServer *s = test_server_new("reconnect", arg);
 
     g_thread_new("connect", connect_thread, s);
     append_mem_opts(s, cmd_line, 256, TEST_MEMFD_AUTO);
-    append_vhost_opts(s, cmd_line, ",server");
+    s->vu_ops->append_opts(s, cmd_line, ",server");
 
     g_test_queue_destroy(vhost_user_test_cleanup, s);
 
@@ -866,13 +877,13 @@ static void test_reconnect(void *obj, void *arg, QGuestAllocator *alloc)
 
 static void *vhost_user_test_setup_connect_fail(GString *cmd_line, void *arg)
 {
-    TestServer *s = test_server_new("connect-fail");
+    TestServer *s = test_server_new("connect-fail", arg);
 
     s->test_fail = true;
 
     g_thread_new("connect", connect_thread, s);
     append_mem_opts(s, cmd_line, 256, TEST_MEMFD_AUTO);
-    append_vhost_opts(s, cmd_line, ",server");
+    s->vu_ops->append_opts(s, cmd_line, ",server");
 
     g_test_queue_destroy(vhost_user_test_cleanup, s);
 
@@ -881,13 +892,13 @@ static void *vhost_user_test_setup_connect_fail(GString *cmd_line, void *arg)
 
 static void *vhost_user_test_setup_flags_mismatch(GString *cmd_line, void *arg)
 {
-    TestServer *s = test_server_new("flags-mismatch");
+    TestServer *s = test_server_new("flags-mismatch", arg);
 
     s->test_flags = TEST_FLAGS_DISCONNECT;
 
     g_thread_new("connect", connect_thread, s);
     append_mem_opts(s, cmd_line, 256, TEST_MEMFD_AUTO);
-    append_vhost_opts(s, cmd_line, ",server");
+    s->vu_ops->append_opts(s, cmd_line, ",server");
 
     g_test_queue_destroy(vhost_user_test_cleanup, s);
 
@@ -924,11 +935,47 @@ static void test_multiqueue(void *obj, void *arg, QGuestAllocator *alloc)
     wait_for_rings_started(s, s->queues * 2);
 }
 
+static void vu_net_set_features(TestServer *s, CharBackend *chr,
+        VhostUserMsg *msg)
+{
+    g_assert_cmpint(msg->payload.u64 &
+            (0x1ULL << VHOST_USER_F_PROTOCOL_FEATURES), !=, 0ULL);
+    if (s->test_flags == TEST_FLAGS_DISCONNECT) {
+        qemu_chr_fe_disconnect(chr);
+        s->test_flags = TEST_FLAGS_BAD;
+    }
+}
+
+static void vu_net_get_protocol_features(TestServer *s, CharBackend *chr,
+        VhostUserMsg *msg)
+{
+    /* send back features to qemu */
+    msg->flags |= VHOST_USER_REPLY_MASK;
+    msg->size = sizeof(m.payload.u64);
+    msg->payload.u64 = 1 << VHOST_USER_PROTOCOL_F_LOG_SHMFD;
+    msg->payload.u64 |= 1 << VHOST_USER_PROTOCOL_F_CROSS_ENDIAN;
+    if (s->queues > 1) {
+        msg->payload.u64 |= 1 << VHOST_USER_PROTOCOL_F_MQ;
+    }
+    qemu_chr_fe_write_all(chr, (uint8_t *)msg, VHOST_USER_HDR_SIZE + msg->size);
+}
+
+/* Each VHOST-USER device should have its ops structure defined. */
+static struct vhost_user_ops g_vu_net_ops = {
+    .type = VHOST_USER_NET,
+
+    .append_opts = append_vhost_net_opts,
+
+    .set_features = vu_net_set_features,
+    .get_protocol_features = vu_net_get_protocol_features,
+};
+
 static void register_vhost_user_test(void)
 {
     QOSGraphTestOptions opts = {
         .before = vhost_user_test_setup,
         .subprocess = true,
+        .arg = &g_vu_net_ops,
     };
 
     qemu_add_opts(&qemu_chardev_opts);
-- 
MST



^ permalink raw reply related	[flat|nested] 63+ messages in thread

* [PULL v4 09/48] cphp: remove deprecated cpu-add command(s)
  2020-09-29  7:20 [PULL v4 00/48] virtio,pc,acpi: fixes, tests Michael S. Tsirkin
                   ` (6 preceding siblings ...)
  2020-09-29  7:21 ` [PULL v4 08/48] tests/qtest/vhost-user-test: prepare the tests for adding new dev class Michael S. Tsirkin
@ 2020-09-29  7:21 ` Michael S. Tsirkin
  2020-09-29  7:21 ` [PULL v4 10/48] virtio-iommu: Check gtrees are non null before destroying them Michael S. Tsirkin
                   ` (43 subsequent siblings)
  51 siblings, 0 replies; 63+ messages in thread
From: Michael S. Tsirkin @ 2020-09-29  7:21 UTC (permalink / raw)
  To: qemu-devel
  Cc: Laurent Vivier, Peter Maydell, Thomas Huth, Eduardo Habkost,
	David Hildenbrand, libvir-list, Michal Privoznik, Cornelia Huck,
	Dr . David Alan Gilbert, Markus Armbruster, Halil Pasic,
	Christian Borntraeger, qemu-s390x, Paolo Bonzini, Igor Mammedov,
	Richard Henderson

From: Igor Mammedov <imammedo@redhat.com>

These were deprecated since 4.0, remove both HMP and QMP variants.

Users should use device_add command instead. To get list of
possible CPUs and options, use 'info hotpluggable-cpus' HMP
or query-hotpluggable-cpus QMP command.

Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Acked-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
Acked-by: Cornelia Huck <cohuck@redhat.com>
Message-Id: <20200915120403.1074579-1-imammedo@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
 qapi/machine.json           |  24 ---------
 include/hw/boards.h         |   1 -
 include/hw/i386/pc.h        |   1 -
 include/monitor/hmp.h       |   1 -
 hw/core/machine-hmp-cmds.c  |  12 -----
 hw/core/machine-qmp-cmds.c  |  12 -----
 hw/i386/pc.c                |  27 ----------
 hw/i386/pc_piix.c           |   1 -
 hw/s390x/s390-virtio-ccw.c  |  12 -----
 tests/qtest/cpu-plug-test.c | 100 ++++--------------------------------
 tests/qtest/test-hmp.c      |   1 -
 docs/system/deprecated.rst  |  25 +++++----
 hmp-commands.hx             |  15 ------
 13 files changed, 21 insertions(+), 211 deletions(-)

diff --git a/qapi/machine.json b/qapi/machine.json
index 0ac1880e4a..d8ed096e9a 100644
--- a/qapi/machine.json
+++ b/qapi/machine.json
@@ -307,30 +307,6 @@
 ##
 { 'command': 'query-cpus-fast', 'returns': [ 'CpuInfoFast' ] }
 
-##
-# @cpu-add:
-#
-# Adds CPU with specified ID.
-#
-# @id: ID of CPU to be created, valid values [0..max_cpus)
-#
-# Features:
-# @deprecated: This command is deprecated.  Use `device_add` instead.
-#              See the `query-hotpluggable-cpus` command for details.
-#
-# Returns: Nothing on success
-#
-# Since: 1.5
-#
-# Example:
-#
-# -> { "execute": "cpu-add", "arguments": { "id": 2 } }
-# <- { "return": {} }
-#
-##
-{ 'command': 'cpu-add', 'data': {'id': 'int'},
-  'features': [ 'deprecated' ] }
-
 ##
 # @MachineInfo:
 #
diff --git a/include/hw/boards.h b/include/hw/boards.h
index 56aa1ca335..482d2833f6 100644
--- a/include/hw/boards.h
+++ b/include/hw/boards.h
@@ -168,7 +168,6 @@ struct MachineClass {
     void (*init)(MachineState *state);
     void (*reset)(MachineState *state);
     void (*wakeup)(MachineState *state);
-    void (*hot_add_cpu)(MachineState *state, const int64_t id, Error **errp);
     int (*kvm_type)(MachineState *machine, const char *arg);
     void (*smp_parse)(MachineState *ms, QemuOpts *opts);
 
diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h
index b2da2c8d2b..c71b02cafd 100644
--- a/include/hw/i386/pc.h
+++ b/include/hw/i386/pc.h
@@ -132,7 +132,6 @@ extern int fd_bootchk;
 
 void pc_acpi_smi_interrupt(void *opaque, int irq, int level);
 
-void pc_hot_add_cpu(MachineState *ms, const int64_t id, Error **errp);
 void pc_smp_parse(MachineState *ms, QemuOpts *opts);
 
 void pc_guest_info_init(PCMachineState *pcms);
diff --git a/include/monitor/hmp.h b/include/monitor/hmp.h
index c986cfd28b..642e9e91f9 100644
--- a/include/monitor/hmp.h
+++ b/include/monitor/hmp.h
@@ -89,7 +89,6 @@ void hmp_chardev_add(Monitor *mon, const QDict *qdict);
 void hmp_chardev_change(Monitor *mon, const QDict *qdict);
 void hmp_chardev_remove(Monitor *mon, const QDict *qdict);
 void hmp_chardev_send_break(Monitor *mon, const QDict *qdict);
-void hmp_cpu_add(Monitor *mon, const QDict *qdict);
 void hmp_object_add(Monitor *mon, const QDict *qdict);
 void hmp_object_del(Monitor *mon, const QDict *qdict);
 void hmp_info_memdev(Monitor *mon, const QDict *qdict);
diff --git a/hw/core/machine-hmp-cmds.c b/hw/core/machine-hmp-cmds.c
index 39999c47c5..f4092b98cc 100644
--- a/hw/core/machine-hmp-cmds.c
+++ b/hw/core/machine-hmp-cmds.c
@@ -46,18 +46,6 @@ void hmp_info_cpus(Monitor *mon, const QDict *qdict)
     qapi_free_CpuInfoFastList(cpu_list);
 }
 
-void hmp_cpu_add(Monitor *mon, const QDict *qdict)
-{
-    int cpuid;
-    Error *err = NULL;
-
-    error_report("cpu_add is deprecated, please use device_add instead");
-
-    cpuid = qdict_get_int(qdict, "id");
-    qmp_cpu_add(cpuid, &err);
-    hmp_handle_error(mon, err);
-}
-
 void hmp_hotpluggable_cpus(Monitor *mon, const QDict *qdict)
 {
     Error *err = NULL;
diff --git a/hw/core/machine-qmp-cmds.c b/hw/core/machine-qmp-cmds.c
index 21551221ad..5362c80a18 100644
--- a/hw/core/machine-qmp-cmds.c
+++ b/hw/core/machine-qmp-cmds.c
@@ -284,18 +284,6 @@ HotpluggableCPUList *qmp_query_hotpluggable_cpus(Error **errp)
     return machine_query_hotpluggable_cpus(ms);
 }
 
-void qmp_cpu_add(int64_t id, Error **errp)
-{
-    MachineClass *mc;
-
-    mc = MACHINE_GET_CLASS(current_machine);
-    if (mc->hot_add_cpu) {
-        mc->hot_add_cpu(current_machine, id, errp);
-    } else {
-        error_setg(errp, "Not supported");
-    }
-}
-
 void qmp_set_numa_node(NumaOptions *cmd, Error **errp)
 {
     if (!runstate_check(RUN_STATE_PRECONFIG)) {
diff --git a/hw/i386/pc.c b/hw/i386/pc.c
index 1e2ab5ebe7..50e8317342 100644
--- a/hw/i386/pc.c
+++ b/hw/i386/pc.c
@@ -769,32 +769,6 @@ void pc_smp_parse(MachineState *ms, QemuOpts *opts)
     }
 }
 
-void pc_hot_add_cpu(MachineState *ms, const int64_t id, Error **errp)
-{
-    X86MachineState *x86ms = X86_MACHINE(ms);
-    int64_t apic_id = x86_cpu_apic_id_from_index(x86ms, id);
-    Error *local_err = NULL;
-
-    if (id < 0) {
-        error_setg(errp, "Invalid CPU id: %" PRIi64, id);
-        return;
-    }
-
-    if (apic_id >= ACPI_CPU_HOTPLUG_ID_LIMIT) {
-        error_setg(errp, "Unable to add CPU: %" PRIi64
-                   ", resulting APIC ID (%" PRIi64 ") is too large",
-                   id, apic_id);
-        return;
-    }
-
-
-    x86_cpu_new(X86_MACHINE(ms), apic_id, &local_err);
-    if (local_err) {
-        error_propagate(errp, local_err);
-        return;
-    }
-}
-
 static
 void pc_machine_done(Notifier *notifier, void *data)
 {
@@ -1691,7 +1665,6 @@ static void pc_machine_class_init(ObjectClass *oc, void *data)
     mc->auto_enable_numa_with_memdev = true;
     mc->has_hotpluggable_cpus = true;
     mc->default_boot_order = "cad";
-    mc->hot_add_cpu = pc_hot_add_cpu;
     mc->smp_parse = pc_smp_parse;
     mc->block_default_type = IF_IDE;
     mc->max_cpus = 255;
diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c
index 6f3e78bb60..2d8413a0ce 100644
--- a/hw/i386/pc_piix.c
+++ b/hw/i386/pc_piix.c
@@ -752,7 +752,6 @@ static void pc_i440fx_1_4_machine_options(MachineClass *m)
 {
     pc_i440fx_1_5_machine_options(m);
     m->hw_version = "1.4.0";
-    m->hot_add_cpu = NULL;
     compat_props_add(m->compat_props, pc_compat_1_4, pc_compat_1_4_len);
 }
 
diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c
index 3106bbea33..28266a3a35 100644
--- a/hw/s390x/s390-virtio-ccw.c
+++ b/hw/s390x/s390-virtio-ccw.c
@@ -553,17 +553,6 @@ static HotplugHandler *s390_get_hotplug_handler(MachineState *machine,
     return NULL;
 }
 
-static void s390_hot_add_cpu(MachineState *machine,
-                             const int64_t id, Error **errp)
-{
-    ObjectClass *oc;
-
-    g_assert(machine->possible_cpus->cpus[0].cpu);
-    oc = OBJECT_CLASS(CPU_GET_CLASS(machine->possible_cpus->cpus[0].cpu));
-
-    s390x_new_cpu(object_class_get_name(oc), id, errp);
-}
-
 static void s390_nmi(NMIState *n, int cpu_index, Error **errp)
 {
     CPUState *cs = qemu_get_cpu(cpu_index);
@@ -604,7 +593,6 @@ static void ccw_machine_class_init(ObjectClass *oc, void *data)
     s390mc->hpage_1m_allowed = true;
     mc->init = ccw_init;
     mc->reset = s390_machine_reset;
-    mc->hot_add_cpu = s390_hot_add_cpu;
     mc->block_default_type = IF_VIRTIO;
     mc->no_cdrom = 1;
     mc->no_floppy = 1;
diff --git a/tests/qtest/cpu-plug-test.c b/tests/qtest/cpu-plug-test.c
index e8ffbbce4b..a1c689414b 100644
--- a/tests/qtest/cpu-plug-test.c
+++ b/tests/qtest/cpu-plug-test.c
@@ -25,54 +25,6 @@ struct PlugTestData {
 };
 typedef struct PlugTestData PlugTestData;
 
-static void test_plug_with_cpu_add(gconstpointer data)
-{
-    const PlugTestData *s = data;
-    char *args;
-    QDict *response;
-    unsigned int i;
-
-    args = g_strdup_printf("-machine %s -cpu %s "
-                           "-smp 1,sockets=%u,cores=%u,threads=%u,maxcpus=%u",
-                           s->machine, s->cpu_model,
-                           s->sockets, s->cores, s->threads, s->maxcpus);
-    qtest_start(args);
-
-    for (i = 1; i < s->maxcpus; i++) {
-        response = qmp("{ 'execute': 'cpu-add',"
-                       "  'arguments': { 'id': %d } }", i);
-        g_assert(response);
-        g_assert(!qdict_haskey(response, "error"));
-        qobject_unref(response);
-    }
-
-    qtest_end();
-    g_free(args);
-}
-
-static void test_plug_without_cpu_add(gconstpointer data)
-{
-    const PlugTestData *s = data;
-    char *args;
-    QDict *response;
-
-    args = g_strdup_printf("-machine %s -cpu %s "
-                           "-smp 1,sockets=%u,cores=%u,threads=%u,maxcpus=%u",
-                           s->machine, s->cpu_model,
-                           s->sockets, s->cores, s->threads, s->maxcpus);
-    qtest_start(args);
-
-    response = qmp("{ 'execute': 'cpu-add',"
-                   "  'arguments': { 'id': %d } }",
-                   s->sockets * s->cores * s->threads);
-    g_assert(response);
-    g_assert(qdict_haskey(response, "error"));
-    qobject_unref(response);
-
-    qtest_end();
-    g_free(args);
-}
-
 static void test_plug_with_device_add(gconstpointer data)
 {
     const PlugTestData *td = data;
@@ -144,36 +96,13 @@ static void add_pc_test_case(const char *mname)
     data->cores = 3;
     data->threads = 2;
     data->maxcpus = data->sockets * data->cores * data->threads;
-    if (g_str_has_suffix(mname, "-1.4") ||
-        (strcmp(mname, "pc-1.3") == 0) ||
-        (strcmp(mname, "pc-1.2") == 0) ||
-        (strcmp(mname, "pc-1.1") == 0) ||
-        (strcmp(mname, "pc-1.0") == 0)) {
-        path = g_strdup_printf("cpu-plug/%s/init/%ux%ux%u&maxcpus=%u",
-                               mname, data->sockets, data->cores,
-                               data->threads, data->maxcpus);
-        qtest_add_data_func_full(path, data, test_plug_without_cpu_add,
-                                 test_data_free);
-        g_free(path);
-    } else {
-        PlugTestData *data2 = g_memdup(data, sizeof(PlugTestData));
 
-        data2->machine = g_strdup(data->machine);
-        data2->device_model = g_strdup(data->device_model);
-
-        path = g_strdup_printf("cpu-plug/%s/cpu-add/%ux%ux%u&maxcpus=%u",
-                               mname, data->sockets, data->cores,
-                               data->threads, data->maxcpus);
-        qtest_add_data_func_full(path, data, test_plug_with_cpu_add,
-                                 test_data_free);
-        g_free(path);
-        path = g_strdup_printf("cpu-plug/%s/device-add/%ux%ux%u&maxcpus=%u",
-                               mname, data2->sockets, data2->cores,
-                               data2->threads, data2->maxcpus);
-        qtest_add_data_func_full(path, data2, test_plug_with_device_add,
-                                 test_data_free);
-        g_free(path);
-    }
+    path = g_strdup_printf("cpu-plug/%s/device-add/%ux%ux%u&maxcpus=%u",
+                           mname, data->sockets, data->cores,
+                           data->threads, data->maxcpus);
+    qtest_add_data_func_full(path, data, test_plug_with_device_add,
+                             test_data_free);
+    g_free(path);
 }
 
 static void add_pseries_test_case(const char *mname)
@@ -205,7 +134,7 @@ static void add_pseries_test_case(const char *mname)
 static void add_s390x_test_case(const char *mname)
 {
     char *path;
-    PlugTestData *data, *data2;
+    PlugTestData *data;
 
     if (!g_str_has_prefix(mname, "s390-ccw-virtio-")) {
         return;
@@ -220,21 +149,10 @@ static void add_s390x_test_case(const char *mname)
     data->threads = 1;
     data->maxcpus = data->sockets * data->cores * data->threads;
 
-    data2 = g_memdup(data, sizeof(PlugTestData));
-    data2->machine = g_strdup(data->machine);
-    data2->device_model = g_strdup(data->device_model);
-
-    path = g_strdup_printf("cpu-plug/%s/cpu-add/%ux%ux%u&maxcpus=%u",
+    path = g_strdup_printf("cpu-plug/%s/device-add/%ux%ux%u&maxcpus=%u",
                            mname, data->sockets, data->cores,
                            data->threads, data->maxcpus);
-    qtest_add_data_func_full(path, data, test_plug_with_cpu_add,
-                             test_data_free);
-    g_free(path);
-
-    path = g_strdup_printf("cpu-plug/%s/device-add/%ux%ux%u&maxcpus=%u",
-                           mname, data2->sockets, data2->cores,
-                           data2->threads, data2->maxcpus);
-    qtest_add_data_func_full(path, data2, test_plug_with_device_add,
+    qtest_add_data_func_full(path, data, test_plug_with_device_add,
                              test_data_free);
     g_free(path);
 }
diff --git a/tests/qtest/test-hmp.c b/tests/qtest/test-hmp.c
index aea1384bac..94a8023173 100644
--- a/tests/qtest/test-hmp.c
+++ b/tests/qtest/test-hmp.c
@@ -27,7 +27,6 @@ static const char *hmp_cmds[] = {
     "chardev-change testchardev1 ringbuf",
     "chardev-remove testchardev1",
     "commit all",
-    "cpu-add 1",
     "cpu 0",
     "device_add ?",
     "device_add usb-mouse,id=mouse1",
diff --git a/docs/system/deprecated.rst b/docs/system/deprecated.rst
index 17aa74531c..5326141cee 100644
--- a/docs/system/deprecated.rst
+++ b/docs/system/deprecated.rst
@@ -272,13 +272,6 @@ The ``query-cpus`` command is replaced by the ``query-cpus-fast`` command.
 The ``arch`` output member of the ``query-cpus-fast`` command is
 replaced by the ``target`` output member.
 
-``cpu-add`` (since 4.0)
-'''''''''''''''''''''''
-
-Use ``device_add`` for hotplugging vCPUs instead of ``cpu-add``.  See
-documentation of ``query-hotpluggable-cpus`` for additional
-details.
-
 ``query-events`` (since 4.0)
 ''''''''''''''''''''''''''''
 
@@ -294,12 +287,6 @@ the 'wait' field, which is only applicable to sockets in server mode
 Human Monitor Protocol (HMP) commands
 -------------------------------------
 
-``cpu-add`` (since 4.0)
-'''''''''''''''''''''''
-
-Use ``device_add`` for hotplugging vCPUs instead of ``cpu-add``.  See
-documentation of ``query-hotpluggable-cpus`` for additional details.
-
 ``acl_show``, ``acl_reset``, ``acl_policy``, ``acl_add``, ``acl_remove`` (since 4.0.0)
 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
 
@@ -517,6 +504,12 @@ QEMU Machine Protocol (QMP) commands
 The "autoload" parameter has been ignored since 2.12.0. All bitmaps
 are automatically loaded from qcow2 images.
 
+``cpu-add`` (removed in 5.2)
+''''''''''''''''''''''''''''
+
+Use ``device_add`` for hotplugging vCPUs instead of ``cpu-add``.  See
+documentation of ``query-hotpluggable-cpus`` for additional details.
+
 Human Monitor Protocol (HMP) commands
 -------------------------------------
 
@@ -526,6 +519,12 @@ The ``hub_id`` parameter of ``hostfwd_add`` / ``hostfwd_remove`` (removed in 5.0
 The ``[hub_id name]`` parameter tuple of the 'hostfwd_add' and
 'hostfwd_remove' HMP commands has been replaced by ``netdev_id``.
 
+``cpu-add`` (removed in 5.2)
+''''''''''''''''''''''''''''
+
+Use ``device_add`` for hotplugging vCPUs instead of ``cpu-add``.  See
+documentation of ``query-hotpluggable-cpus`` for additional details.
+
 Guest Emulator ISAs
 -------------------
 
diff --git a/hmp-commands.hx b/hmp-commands.hx
index 27c4bbe0f2..1088d64503 100644
--- a/hmp-commands.hx
+++ b/hmp-commands.hx
@@ -1761,21 +1761,6 @@ SRST
   Executes a qemu-io command on the given block device.
 ERST
 
-    {
-        .name       = "cpu-add",
-        .args_type  = "id:i",
-        .params     = "id",
-        .help       = "add cpu (deprecated, use device_add instead)",
-        .cmd        = hmp_cpu_add,
-    },
-
-SRST
-``cpu-add`` *id*
-  Add CPU with id *id*.  This command is deprecated, please
-  +use ``device_add`` instead. For details, refer to
-  'docs/cpu-hotplug.rst'.
-ERST
-
     {
         .name       = "qom-list",
         .args_type  = "path:s?",
-- 
MST



^ permalink raw reply related	[flat|nested] 63+ messages in thread

* [PULL v4 10/48] virtio-iommu: Check gtrees are non null before destroying them
  2020-09-29  7:20 [PULL v4 00/48] virtio,pc,acpi: fixes, tests Michael S. Tsirkin
                   ` (7 preceding siblings ...)
  2020-09-29  7:21 ` [PULL v4 09/48] cphp: remove deprecated cpu-add command(s) Michael S. Tsirkin
@ 2020-09-29  7:21 ` Michael S. Tsirkin
  2020-09-29  7:21 ` [PULL v4 11/48] virtio-iommu-pci: force virtio version 1 Michael S. Tsirkin
                   ` (42 subsequent siblings)
  51 siblings, 0 replies; 63+ messages in thread
From: Michael S. Tsirkin @ 2020-09-29  7:21 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell, Cornelia Huck, qemu-stable, Eric Auger

From: Eric Auger <eric.auger@redhat.com>

If realize fails, domains and endpoints trees may be NULL. On
unrealize(), this produces assertions:

"GLib: g_tree_destroy: assertion 'tree != NULL' failed"

Check that the trees are non NULL before destroying them.

Cc: qemu-stable@nongnu.org
Signed-off-by: Eric Auger <eric.auger@redhat.com>
Reviewed-by: Cornelia Huck <cohuck@redhat.com>

Message-Id: <20200908193309.20569-2-eric.auger@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
 hw/virtio/virtio-iommu.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/hw/virtio/virtio-iommu.c b/hw/virtio/virtio-iommu.c
index 5d56865e56..21ec63b108 100644
--- a/hw/virtio/virtio-iommu.c
+++ b/hw/virtio/virtio-iommu.c
@@ -801,8 +801,12 @@ static void virtio_iommu_device_unrealize(DeviceState *dev)
     VirtIOIOMMU *s = VIRTIO_IOMMU(dev);
 
     g_hash_table_destroy(s->as_by_busptr);
-    g_tree_destroy(s->domains);
-    g_tree_destroy(s->endpoints);
+    if (s->domains) {
+        g_tree_destroy(s->domains);
+    }
+    if (s->endpoints) {
+        g_tree_destroy(s->endpoints);
+    }
 
     virtio_delete_queue(s->req_vq);
     virtio_delete_queue(s->event_vq);
-- 
MST



^ permalink raw reply related	[flat|nested] 63+ messages in thread

* [PULL v4 11/48] virtio-iommu-pci: force virtio version 1
  2020-09-29  7:20 [PULL v4 00/48] virtio,pc,acpi: fixes, tests Michael S. Tsirkin
                   ` (8 preceding siblings ...)
  2020-09-29  7:21 ` [PULL v4 10/48] virtio-iommu: Check gtrees are non null before destroying them Michael S. Tsirkin
@ 2020-09-29  7:21 ` Michael S. Tsirkin
  2020-09-29  7:21 ` [PULL v4 12/48] virtio-pmem-pci: " Michael S. Tsirkin
                   ` (41 subsequent siblings)
  51 siblings, 0 replies; 63+ messages in thread
From: Michael S. Tsirkin @ 2020-09-29  7:21 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell, Cornelia Huck, qemu-stable, Eric Auger

From: Eric Auger <eric.auger@redhat.com>

Commit 9b3a35ec82 ("virtio: verify that legacy support is not
accidentally on") added a safety check that requires to set
'disable-legacy=on' on virtio-iommu-pci:

qemu-system-aarch64: -device virtio-iommu-pci: device is modern-only,
use disable-legacy=on

virtio-iommu was introduced after the release of VIRTIO 1.0
specifications, so it should be 'modern-only'.

This patch forces virtio version 1 and removes the 'transitional_name'
property removing the need to specify 'disable-legacy=on' on
virtio-iommu-pci device.

Cc: qemu-stable@nongnu.org
Signed-off-by: Eric Auger <eric.auger@redhat.com>
Reviewed-by: Cornelia Huck <cohuck@redhat.com>

Message-Id: <20200908193309.20569-3-eric.auger@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
 hw/virtio/virtio-iommu-pci.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/hw/virtio/virtio-iommu-pci.c b/hw/virtio/virtio-iommu-pci.c
index 76540e57b1..378f63b210 100644
--- a/hw/virtio/virtio-iommu-pci.c
+++ b/hw/virtio/virtio-iommu-pci.c
@@ -69,6 +69,7 @@ static void virtio_iommu_pci_realize(VirtIOPCIProxy *vpci_dev, Error **errp)
     object_property_set_link(OBJECT(dev), "primary-bus",
                              OBJECT(pci_get_bus(&vpci_dev->pci_dev)),
                              &error_abort);
+    virtio_pci_force_virtio_1(vpci_dev);
     qdev_realize(vdev, BUS(&vpci_dev->bus), errp);
 }
 
@@ -98,7 +99,6 @@ static void virtio_iommu_pci_instance_init(Object *obj)
 static const VirtioPCIDeviceTypeInfo virtio_iommu_pci_info = {
     .base_name             = TYPE_VIRTIO_IOMMU_PCI,
     .generic_name          = "virtio-iommu-pci",
-    .transitional_name     = "virtio-iommu-pci-transitional",
     .non_transitional_name = "virtio-iommu-pci-non-transitional",
     .instance_size = sizeof(VirtIOIOMMUPCI),
     .instance_init = virtio_iommu_pci_instance_init,
-- 
MST



^ permalink raw reply related	[flat|nested] 63+ messages in thread

* [PULL v4 12/48] virtio-pmem-pci: force virtio version 1
  2020-09-29  7:20 [PULL v4 00/48] virtio,pc,acpi: fixes, tests Michael S. Tsirkin
                   ` (9 preceding siblings ...)
  2020-09-29  7:21 ` [PULL v4 11/48] virtio-iommu-pci: force virtio version 1 Michael S. Tsirkin
@ 2020-09-29  7:21 ` Michael S. Tsirkin
  2020-09-29  7:21 ` [PULL v4 13/48] util/hexdump: introduce qemu_hexdump_line() Michael S. Tsirkin
                   ` (40 subsequent siblings)
  51 siblings, 0 replies; 63+ messages in thread
From: Michael S. Tsirkin @ 2020-09-29  7:21 UTC (permalink / raw)
  To: qemu-devel; +Cc: Cornelia Huck, Peter Maydell, David Hildenbrand, Pankaj Gupta

From: Pankaj Gupta <pankaj.gupta.linux@gmail.com>

 Qemu fails with below error when trying to run with virtio pmem:

 (qemu) qemu-system-x86_64: -device virtio-pmem-pci,memdev=mem1,id=nv1:
  device is modern-only, use disable-legacy=on

 This patch fixes this by forcing virtio 1 with virtio-pmem.

fixes: adf0748a49 ("virtio-pci: Proxy for virtio-pmem")
Signed-off-by: Pankaj Gupta <pankaj.gupta.linux@gmail.com>
Message-Id: <20200925102251.7216-1-pankaj.gupta.linux@gmail.com>
Reviewed-by: David Hildenbrand <david@redhat.com>
Acked-by: Cornelia Huck <cohuck@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
 hw/virtio/virtio-pmem-pci.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/hw/virtio/virtio-pmem-pci.c b/hw/virtio/virtio-pmem-pci.c
index 21a457d151..2b2a0b1eae 100644
--- a/hw/virtio/virtio-pmem-pci.c
+++ b/hw/virtio/virtio-pmem-pci.c
@@ -22,6 +22,7 @@ static void virtio_pmem_pci_realize(VirtIOPCIProxy *vpci_dev, Error **errp)
     VirtIOPMEMPCI *pmem_pci = VIRTIO_PMEM_PCI(vpci_dev);
     DeviceState *vdev = DEVICE(&pmem_pci->vdev);
 
+    virtio_pci_force_virtio_1(vpci_dev);
     qdev_realize(vdev, BUS(&vpci_dev->bus), errp);
 }
 
-- 
MST



^ permalink raw reply related	[flat|nested] 63+ messages in thread

* [PULL v4 13/48] util/hexdump: introduce qemu_hexdump_line()
  2020-09-29  7:20 [PULL v4 00/48] virtio,pc,acpi: fixes, tests Michael S. Tsirkin
                   ` (10 preceding siblings ...)
  2020-09-29  7:21 ` [PULL v4 12/48] virtio-pmem-pci: " Michael S. Tsirkin
@ 2020-09-29  7:21 ` Michael S. Tsirkin
  2020-09-29  7:21 ` [PULL v4 14/48] vhost-vdpa: add trace-events Michael S. Tsirkin
                   ` (39 subsequent siblings)
  51 siblings, 0 replies; 63+ messages in thread
From: Michael S. Tsirkin @ 2020-09-29  7:21 UTC (permalink / raw)
  To: qemu-devel
  Cc: Laurent Vivier, Peter Maydell, Edgar E. Iglesias, Li Qiang,
	Philippe Mathieu-Daudé,
	Stefan Hajnoczi, Stefano Garzarella

From: Laurent Vivier <lvivier@redhat.com>

Dumping one line of hexadecimal/ASCII from a buffer is often needed.
Move this part from qemu_hexdump() and use it

Acked-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Laurent Vivier <lvivier@redhat.com>
Message-Id: <20200925091055.186023-2-lvivier@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
 include/qemu-common.h |  8 +++++++
 util/hexdump.c        | 54 +++++++++++++++++++++++++++----------------
 2 files changed, 42 insertions(+), 20 deletions(-)

diff --git a/include/qemu-common.h b/include/qemu-common.h
index 9cfd62669b..cc902b690d 100644
--- a/include/qemu-common.h
+++ b/include/qemu-common.h
@@ -134,6 +134,14 @@ void os_setup_early_signal_handling(void);
 char *os_find_datadir(void);
 int os_parse_cmd_args(int index, const char *optarg);
 
+/*
+ * Hexdump a line of a byte buffer into a hexadecimal/ASCII buffer
+ */
+#define QEMU_HEXDUMP_LINE_BYTES 16 /* Number of bytes to dump */
+#define QEMU_HEXDUMP_LINE_LEN 75   /* Number of characters in line */
+void qemu_hexdump_line(char *line, unsigned int b, const void *bufptr,
+                       unsigned int len, bool ascii);
+
 /*
  * Hexdump a buffer to a file. An optional string prefix is added to every line
  */
diff --git a/util/hexdump.c b/util/hexdump.c
index 0b4662e701..2c105a8846 100644
--- a/util/hexdump.c
+++ b/util/hexdump.c
@@ -16,36 +16,50 @@
 #include "qemu/osdep.h"
 #include "qemu-common.h"
 
-void qemu_hexdump(FILE *fp, const char *prefix,
-                  const void *bufptr, size_t size)
+void qemu_hexdump_line(char *line, unsigned int b, const void *bufptr,
+                       unsigned int len, bool ascii)
 {
     const char *buf = bufptr;
-    unsigned int b, len, i, c;
+    int i, c;
 
-    for (b = 0; b < size; b += 16) {
-        len = size - b;
-        if (len > 16) {
-            len = 16;
+    if (len > QEMU_HEXDUMP_LINE_BYTES) {
+        len = QEMU_HEXDUMP_LINE_BYTES;
+    }
+
+    line += snprintf(line, 6, "%04x:", b);
+    for (i = 0; i < QEMU_HEXDUMP_LINE_BYTES; i++) {
+        if ((i % 4) == 0) {
+            *line++ = ' ';
         }
-        fprintf(fp, "%s: %04x:", prefix, b);
-        for (i = 0; i < 16; i++) {
-            if ((i % 4) == 0) {
-                fprintf(fp, " ");
-            }
-            if (i < len) {
-                fprintf(fp, " %02x", (unsigned char)buf[b + i]);
-            } else {
-                fprintf(fp, "   ");
-            }
+        if (i < len) {
+            line += sprintf(line, " %02x", (unsigned char)buf[b + i]);
+        } else {
+            line += sprintf(line, "   ");
         }
-        fprintf(fp, " ");
+    }
+    if (ascii) {
+        *line++ = ' ';
         for (i = 0; i < len; i++) {
             c = buf[b + i];
             if (c < ' ' || c > '~') {
                 c = '.';
             }
-            fprintf(fp, "%c", c);
+            *line++ = c;
         }
-        fprintf(fp, "\n");
     }
+    *line = '\0';
+}
+
+void qemu_hexdump(FILE *fp, const char *prefix,
+                  const void *bufptr, size_t size)
+{
+    unsigned int b, len;
+    char line[QEMU_HEXDUMP_LINE_LEN];
+
+    for (b = 0; b < size; b += QEMU_HEXDUMP_LINE_BYTES) {
+        len = size - b;
+        qemu_hexdump_line(line, b, bufptr, len, true);
+        fprintf(fp, "%s: %s\n", prefix, line);
+    }
+
 }
-- 
MST



^ permalink raw reply related	[flat|nested] 63+ messages in thread

* [PULL v4 14/48] vhost-vdpa: add trace-events
  2020-09-29  7:20 [PULL v4 00/48] virtio,pc,acpi: fixes, tests Michael S. Tsirkin
                   ` (11 preceding siblings ...)
  2020-09-29  7:21 ` [PULL v4 13/48] util/hexdump: introduce qemu_hexdump_line() Michael S. Tsirkin
@ 2020-09-29  7:21 ` Michael S. Tsirkin
  2020-09-29  7:21 ` [PULL v4 15/48] configure: Fix build dependencies with vhost-vdpa Michael S. Tsirkin
                   ` (38 subsequent siblings)
  51 siblings, 0 replies; 63+ messages in thread
From: Michael S. Tsirkin @ 2020-09-29  7:21 UTC (permalink / raw)
  To: qemu-devel; +Cc: Laurent Vivier, Peter Maydell, Jason Wang, Stefan Hajnoczi

From: Laurent Vivier <lvivier@redhat.com>

Add trace functions in vhost-vdpa.c.

All traces from this file can be enabled with '-trace vhost_vdpa*'.

Acked-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Laurent Vivier <lvivier@redhat.com>
Message-Id: <20200925091055.186023-3-lvivier@redhat.com>
Acked-by: Jason Wang <jasowang@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
 hw/virtio/vhost-vdpa.c | 92 +++++++++++++++++++++++++++++++++++++++---
 hw/virtio/trace-events | 31 ++++++++++++++
 2 files changed, 118 insertions(+), 5 deletions(-)

diff --git a/hw/virtio/vhost-vdpa.c b/hw/virtio/vhost-vdpa.c
index dbf2643ff7..4f1039910a 100644
--- a/hw/virtio/vhost-vdpa.c
+++ b/hw/virtio/vhost-vdpa.c
@@ -20,6 +20,8 @@
 #include "hw/virtio/vhost-vdpa.h"
 #include "qemu/main-loop.h"
 #include "cpu.h"
+#include "trace.h"
+#include "qemu-common.h"
 
 static bool vhost_vdpa_listener_skipped_section(MemoryRegionSection *section)
 {
@@ -48,6 +50,9 @@ static int vhost_vdpa_dma_map(struct vhost_vdpa *v, hwaddr iova, hwaddr size,
     msg.iotlb.perm = readonly ? VHOST_ACCESS_RO : VHOST_ACCESS_RW;
     msg.iotlb.type = VHOST_IOTLB_UPDATE;
 
+   trace_vhost_vdpa_dma_map(v, fd, msg.type, msg.iotlb.iova, msg.iotlb.size,
+                            msg.iotlb.uaddr, msg.iotlb.perm, msg.iotlb.type);
+
     if (write(fd, &msg, sizeof(msg)) != sizeof(msg)) {
         error_report("failed to write, fd=%d, errno=%d (%s)",
             fd, errno, strerror(errno));
@@ -69,6 +74,9 @@ static int vhost_vdpa_dma_unmap(struct vhost_vdpa *v, hwaddr iova,
     msg.iotlb.size = size;
     msg.iotlb.type = VHOST_IOTLB_INVALIDATE;
 
+    trace_vhost_vdpa_dma_unmap(v, fd, msg.type, msg.iotlb.iova,
+                               msg.iotlb.size, msg.iotlb.type);
+
     if (write(fd, &msg, sizeof(msg)) != sizeof(msg)) {
         error_report("failed to write, fd=%d, errno=%d (%s)",
             fd, errno, strerror(errno));
@@ -154,6 +162,9 @@ static void vhost_vdpa_listener_region_add(MemoryListener *listener,
             section->offset_within_region +
             (iova - section->offset_within_address_space);
 
+    trace_vhost_vdpa_listener_region_add(v, iova, int128_get64(llend),
+                                         vaddr, section->readonly);
+
     llsize = int128_sub(llend, int128_make64(iova));
 
     ret = vhost_vdpa_dma_map(v, iova, int128_get64(llsize),
@@ -209,6 +220,8 @@ static void vhost_vdpa_listener_region_del(MemoryListener *listener,
     llend = int128_add(llend, section->size);
     llend = int128_and(llend, int128_exts64(TARGET_PAGE_MASK));
 
+    trace_vhost_vdpa_listener_region_del(v, iova, int128_get64(llend));
+
     if (int128_ge(int128_make64(iova), llend)) {
         return;
     }
@@ -249,6 +262,7 @@ static void vhost_vdpa_add_status(struct vhost_dev *dev, uint8_t status)
 {
     uint8_t s;
 
+    trace_vhost_vdpa_add_status(dev, status);
     if (vhost_vdpa_call(dev, VHOST_VDPA_GET_STATUS, &s)) {
         return;
     }
@@ -263,6 +277,7 @@ static int vhost_vdpa_init(struct vhost_dev *dev, void *opaque)
     struct vhost_vdpa *v;
     uint64_t features;
     assert(dev->vhost_ops->backend_type == VHOST_BACKEND_TYPE_VDPA);
+    trace_vhost_vdpa_init(dev, opaque);
 
     v = opaque;
     v->dev = dev;
@@ -283,6 +298,7 @@ static int vhost_vdpa_cleanup(struct vhost_dev *dev)
     struct vhost_vdpa *v;
     assert(dev->vhost_ops->backend_type == VHOST_BACKEND_TYPE_VDPA);
     v = dev->opaque;
+    trace_vhost_vdpa_cleanup(dev, v);
     memory_listener_unregister(&v->listener);
 
     dev->opaque = NULL;
@@ -291,13 +307,25 @@ static int vhost_vdpa_cleanup(struct vhost_dev *dev)
 
 static int vhost_vdpa_memslots_limit(struct vhost_dev *dev)
 {
+    trace_vhost_vdpa_memslots_limit(dev, INT_MAX);
     return INT_MAX;
 }
 
 static int vhost_vdpa_set_mem_table(struct vhost_dev *dev,
                                     struct vhost_memory *mem)
 {
-
+    trace_vhost_vdpa_set_mem_table(dev, mem->nregions, mem->padding);
+    if (trace_event_get_state_backends(TRACE_VHOST_VDPA_SET_MEM_TABLE) &&
+        trace_event_get_state_backends(TRACE_VHOST_VDPA_DUMP_REGIONS)) {
+        int i;
+        for (i = 0; i < mem->nregions; i++) {
+            trace_vhost_vdpa_dump_regions(dev, i,
+                                          mem->regions[i].guest_phys_addr,
+                                          mem->regions[i].memory_size,
+                                          mem->regions[i].userspace_addr,
+                                          mem->regions[i].flags_padding);
+        }
+    }
     if (mem->padding) {
         return -1;
     }
@@ -309,6 +337,7 @@ static int vhost_vdpa_set_features(struct vhost_dev *dev,
                                    uint64_t features)
 {
     int ret;
+    trace_vhost_vdpa_set_features(dev, features);
     ret = vhost_vdpa_call(dev, VHOST_SET_FEATURES, &features);
     uint8_t status = 0;
     if (ret) {
@@ -345,26 +374,34 @@ static int vhost_vdpa_set_backend_cap(struct vhost_dev *dev)
 int vhost_vdpa_get_device_id(struct vhost_dev *dev,
                                    uint32_t *device_id)
 {
-    return vhost_vdpa_call(dev, VHOST_VDPA_GET_DEVICE_ID, device_id);
+    int ret;
+    ret = vhost_vdpa_call(dev, VHOST_VDPA_GET_DEVICE_ID, device_id);
+    trace_vhost_vdpa_get_device_id(dev, *device_id);
+    return ret;
 }
 
 static int vhost_vdpa_reset_device(struct vhost_dev *dev)
 {
+    int ret;
     uint8_t status = 0;
 
-    return vhost_vdpa_call(dev, VHOST_VDPA_SET_STATUS, &status);
+    ret = vhost_vdpa_call(dev, VHOST_VDPA_SET_STATUS, &status);
+    trace_vhost_vdpa_reset_device(dev, status);
+    return ret;
 }
 
 static int vhost_vdpa_get_vq_index(struct vhost_dev *dev, int idx)
 {
     assert(idx >= dev->vq_index && idx < dev->vq_index + dev->nvqs);
 
+    trace_vhost_vdpa_get_vq_index(dev, idx, idx - dev->vq_index);
     return idx - dev->vq_index;
 }
 
 static int vhost_vdpa_set_vring_ready(struct vhost_dev *dev)
 {
     int i;
+    trace_vhost_vdpa_set_vring_ready(dev);
     for (i = 0; i < dev->nvqs; ++i) {
         struct vhost_vring_state state = {
             .index = dev->vq_index + i,
@@ -375,6 +412,19 @@ static int vhost_vdpa_set_vring_ready(struct vhost_dev *dev)
     return 0;
 }
 
+static void vhost_vdpa_dump_config(struct vhost_dev *dev, const uint8_t *config,
+                                   uint32_t config_len)
+{
+    int b, len;
+    char line[QEMU_HEXDUMP_LINE_LEN];
+
+    for (b = 0; b < config_len; b += 16) {
+        len = config_len - b;
+        qemu_hexdump_line(line, b, config, len, false);
+        trace_vhost_vdpa_dump_config(dev, line);
+    }
+}
+
 static int vhost_vdpa_set_config(struct vhost_dev *dev, const uint8_t *data,
                                    uint32_t offset, uint32_t size,
                                    uint32_t flags)
@@ -383,10 +433,15 @@ static int vhost_vdpa_set_config(struct vhost_dev *dev, const uint8_t *data,
     int ret;
     unsigned long config_size = offsetof(struct vhost_vdpa_config, buf);
 
+    trace_vhost_vdpa_set_config(dev, offset, size, flags);
     config = g_malloc(size + config_size);
     config->off = offset;
     config->len = size;
     memcpy(config->buf, data, size);
+    if (trace_event_get_state_backends(TRACE_VHOST_VDPA_SET_CONFIG) &&
+        trace_event_get_state_backends(TRACE_VHOST_VDPA_DUMP_CONFIG)) {
+        vhost_vdpa_dump_config(dev, data, size);
+    }
     ret = vhost_vdpa_call(dev, VHOST_VDPA_SET_CONFIG, config);
     g_free(config);
     return ret;
@@ -399,18 +454,24 @@ static int vhost_vdpa_get_config(struct vhost_dev *dev, uint8_t *config,
     unsigned long config_size = offsetof(struct vhost_vdpa_config, buf);
     int ret;
 
+    trace_vhost_vdpa_get_config(dev, config, config_len);
     v_config = g_malloc(config_len + config_size);
     v_config->len = config_len;
     v_config->off = 0;
     ret = vhost_vdpa_call(dev, VHOST_VDPA_GET_CONFIG, v_config);
     memcpy(config, v_config->buf, config_len);
     g_free(v_config);
+    if (trace_event_get_state_backends(TRACE_VHOST_VDPA_GET_CONFIG) &&
+        trace_event_get_state_backends(TRACE_VHOST_VDPA_DUMP_CONFIG)) {
+        vhost_vdpa_dump_config(dev, config, config_len);
+    }
     return ret;
  }
 
 static int vhost_vdpa_dev_start(struct vhost_dev *dev, bool started)
 {
     struct vhost_vdpa *v = dev->opaque;
+    trace_vhost_vdpa_dev_start(dev, started);
     if (started) {
         uint8_t status = 0;
         memory_listener_register(&v->listener, &address_space_memory);
@@ -432,53 +493,72 @@ static int vhost_vdpa_dev_start(struct vhost_dev *dev, bool started)
 static int vhost_vdpa_set_log_base(struct vhost_dev *dev, uint64_t base,
                                      struct vhost_log *log)
 {
+    trace_vhost_vdpa_set_log_base(dev, base, log->size, log->refcnt, log->fd,
+                                  log->log);
     return vhost_vdpa_call(dev, VHOST_SET_LOG_BASE, &base);
 }
 
 static int vhost_vdpa_set_vring_addr(struct vhost_dev *dev,
                                        struct vhost_vring_addr *addr)
 {
+    trace_vhost_vdpa_set_vring_addr(dev, addr->index, addr->flags,
+                                    addr->desc_user_addr, addr->used_user_addr,
+                                    addr->avail_user_addr,
+                                    addr->log_guest_addr);
     return vhost_vdpa_call(dev, VHOST_SET_VRING_ADDR, addr);
 }
 
 static int vhost_vdpa_set_vring_num(struct vhost_dev *dev,
                                       struct vhost_vring_state *ring)
 {
+    trace_vhost_vdpa_set_vring_num(dev, ring->index, ring->num);
     return vhost_vdpa_call(dev, VHOST_SET_VRING_NUM, ring);
 }
 
 static int vhost_vdpa_set_vring_base(struct vhost_dev *dev,
                                        struct vhost_vring_state *ring)
 {
+    trace_vhost_vdpa_set_vring_base(dev, ring->index, ring->num);
     return vhost_vdpa_call(dev, VHOST_SET_VRING_BASE, ring);
 }
 
 static int vhost_vdpa_get_vring_base(struct vhost_dev *dev,
                                        struct vhost_vring_state *ring)
 {
-    return vhost_vdpa_call(dev, VHOST_GET_VRING_BASE, ring);
+    int ret;
+
+    ret = vhost_vdpa_call(dev, VHOST_GET_VRING_BASE, ring);
+    trace_vhost_vdpa_get_vring_base(dev, ring->index, ring->num);
+    return ret;
 }
 
 static int vhost_vdpa_set_vring_kick(struct vhost_dev *dev,
                                        struct vhost_vring_file *file)
 {
+    trace_vhost_vdpa_set_vring_kick(dev, file->index, file->fd);
     return vhost_vdpa_call(dev, VHOST_SET_VRING_KICK, file);
 }
 
 static int vhost_vdpa_set_vring_call(struct vhost_dev *dev,
                                        struct vhost_vring_file *file)
 {
+    trace_vhost_vdpa_set_vring_call(dev, file->index, file->fd);
     return vhost_vdpa_call(dev, VHOST_SET_VRING_CALL, file);
 }
 
 static int vhost_vdpa_get_features(struct vhost_dev *dev,
                                      uint64_t *features)
 {
-    return vhost_vdpa_call(dev, VHOST_GET_FEATURES, features);
+    int ret;
+
+    ret = vhost_vdpa_call(dev, VHOST_GET_FEATURES, features);
+    trace_vhost_vdpa_get_features(dev, *features);
+    return ret;
 }
 
 static int vhost_vdpa_set_owner(struct vhost_dev *dev)
 {
+    trace_vhost_vdpa_set_owner(dev);
     return vhost_vdpa_call(dev, VHOST_SET_OWNER, NULL);
 }
 
@@ -489,6 +569,8 @@ static int vhost_vdpa_vq_get_addr(struct vhost_dev *dev,
     addr->desc_user_addr = (uint64_t)(unsigned long)vq->desc_phys;
     addr->avail_user_addr = (uint64_t)(unsigned long)vq->avail_phys;
     addr->used_user_addr = (uint64_t)(unsigned long)vq->used_phys;
+    trace_vhost_vdpa_vq_get_addr(dev, vq, addr->desc_user_addr,
+                                 addr->avail_user_addr, addr->used_user_addr);
     return 0;
 }
 
diff --git a/hw/virtio/trace-events b/hw/virtio/trace-events
index 845200bf10..cf1e59de30 100644
--- a/hw/virtio/trace-events
+++ b/hw/virtio/trace-events
@@ -22,6 +22,37 @@ vhost_user_postcopy_waker(const char *rb, uint64_t rb_offset) "%s + 0x%"PRIx64
 vhost_user_postcopy_waker_found(uint64_t client_addr) "0x%"PRIx64
 vhost_user_postcopy_waker_nomatch(const char *rb, uint64_t rb_offset) "%s + 0x%"PRIx64
 
+# vhost-vdpa.c
+vhost_vdpa_dma_map(void *vdpa, int fd, uint32_t msg_type, uint64_t iova, uint64_t size, uint64_t uaddr, uint8_t perm, uint8_t type) "vdpa:%p fd: %d msg_type: %"PRIu32" iova: 0x%"PRIx64" size: 0x%"PRIx64" uaddr: 0x%"PRIx64" perm: 0x%"PRIx8" type: %"PRIu8
+vhost_vdpa_dma_unmap(void *vdpa, int fd, uint32_t msg_type, uint64_t iova, uint64_t size, uint8_t type) "vdpa:%p fd: %d msg_type: %"PRIu32" iova: 0x%"PRIx64" size: 0x%"PRIx64" type: %"PRIu8
+vhost_vdpa_listener_region_add(void *vdpa, uint64_t iova, uint64_t llend, void *vaddr, bool readonly) "vdpa: %p iova 0x%"PRIx64" llend 0x%"PRIx64" vaddr: %p read-only: %d"
+vhost_vdpa_listener_region_del(void *vdpa, uint64_t iova, uint64_t llend) "vdpa: %p iova 0x%"PRIx64" llend 0x%"PRIx64
+vhost_vdpa_add_status(void *dev, uint8_t status) "dev: %p status: 0x%"PRIx8
+vhost_vdpa_init(void *dev, void *vdpa) "dev: %p vdpa: %p"
+vhost_vdpa_cleanup(void *dev, void *vdpa) "dev: %p vdpa: %p"
+vhost_vdpa_memslots_limit(void *dev, int ret) "dev: %p = 0x%x"
+vhost_vdpa_set_mem_table(void *dev, uint32_t nregions, uint32_t padding) "dev: %p nregions: %"PRIu32" padding: 0x%"PRIx32
+vhost_vdpa_dump_regions(void *dev, int i, uint64_t guest_phys_addr, uint64_t memory_size, uint64_t userspace_addr, uint64_t flags_padding) "dev: %p %d: guest_phys_addr: 0x%"PRIx64" memory_size: 0x%"PRIx64" userspace_addr: 0x%"PRIx64" flags_padding: 0x%"PRIx64
+vhost_vdpa_set_features(void *dev, uint64_t features) "dev: %p features: 0x%"PRIx64
+vhost_vdpa_get_device_id(void *dev, uint32_t device_id) "dev: %p device_id %"PRIu32
+vhost_vdpa_reset_device(void *dev, uint8_t status) "dev: %p status: 0x%"PRIx8
+vhost_vdpa_get_vq_index(void *dev, int idx, int vq_idx) "dev: %p idx: %d vq idx: %d"
+vhost_vdpa_set_vring_ready(void *dev) "dev: %p"
+vhost_vdpa_dump_config(void *dev, const char *line) "dev: %p %s"
+vhost_vdpa_set_config(void *dev, uint32_t offset, uint32_t size, uint32_t flags) "dev: %p offset: %"PRIu32" size: %"PRIu32" flags: 0x%"PRIx32
+vhost_vdpa_get_config(void *dev, void *config, uint32_t config_len) "dev: %p config: %p config_len: %"PRIu32
+vhost_vdpa_dev_start(void *dev, bool started) "dev: %p started: %d"
+vhost_vdpa_set_log_base(void *dev, uint64_t base, unsigned long long size, int refcnt, int fd, void *log) "dev: %p base: 0x%"PRIx64" size: %llu refcnt: %d fd: %d log: %p"
+vhost_vdpa_set_vring_addr(void *dev, unsigned int index, unsigned int flags, uint64_t desc_user_addr, uint64_t used_user_addr, uint64_t avail_user_addr, uint64_t log_guest_addr) "dev: %p index: %u flags: 0x%x desc_user_addr: 0x%"PRIx64" used_user_addr: 0x%"PRIx64" avail_user_addr: 0x%"PRIx64" log_guest_addr: 0x%"PRIx64
+vhost_vdpa_set_vring_num(void *dev, unsigned int index, unsigned int num) "dev: %p index: %u num: %u"
+vhost_vdpa_set_vring_base(void *dev, unsigned int index, unsigned int num) "dev: %p index: %u num: %u"
+vhost_vdpa_get_vring_base(void *dev, unsigned int index, unsigned int num) "dev: %p index: %u num: %u"
+vhost_vdpa_set_vring_kick(void *dev, unsigned int index, int fd) "dev: %p index: %u fd: %d"
+vhost_vdpa_set_vring_call(void *dev, unsigned int index, int fd) "dev: %p index: %u fd: %d"
+vhost_vdpa_get_features(void *dev, uint64_t features) "dev: %p features: 0x%"PRIx64
+vhost_vdpa_set_owner(void *dev) "dev: %p"
+vhost_vdpa_vq_get_addr(void *dev, void *vq, uint64_t desc_user_addr, uint64_t avail_user_addr, uint64_t used_user_addr) "dev: %p vq: %p desc_user_addr: 0x%"PRIx64" avail_user_addr: 0x%"PRIx64" used_user_addr: 0x%"PRIx64
+
 # virtio.c
 virtqueue_alloc_element(void *elem, size_t sz, unsigned in_num, unsigned out_num) "elem %p size %zd in_num %u out_num %u"
 virtqueue_fill(void *vq, const void *elem, unsigned int len, unsigned int idx) "vq %p elem %p len %u idx %u"
-- 
MST



^ permalink raw reply related	[flat|nested] 63+ messages in thread

* [PULL v4 15/48] configure: Fix build dependencies with vhost-vdpa.
  2020-09-29  7:20 [PULL v4 00/48] virtio,pc,acpi: fixes, tests Michael S. Tsirkin
                   ` (12 preceding siblings ...)
  2020-09-29  7:21 ` [PULL v4 14/48] vhost-vdpa: add trace-events Michael S. Tsirkin
@ 2020-09-29  7:21 ` Michael S. Tsirkin
  2020-09-29  7:21 ` [PULL v4 16/48] virtio: skip legacy support check on machine types less than 5.1 Michael S. Tsirkin
                   ` (37 subsequent siblings)
  51 siblings, 0 replies; 63+ messages in thread
From: Michael S. Tsirkin @ 2020-09-29  7:21 UTC (permalink / raw)
  To: qemu-devel
  Cc: Laurent Vivier, Peter Maydell, Daniel P. Berrangé,
	lulu, Alex Bennée, pbonzini, marcandre.lureau,
	Philippe Mathieu-Daudé

From: Laurent Vivier <lvivier@redhat.com>

Following the same logic as for vhost-net-user and vhost-kernel,
enable vhost-net if vhost-net-vdpa is enabled and vhost-net is not
explicitly disabled.
See 299e6f19b3e2 ("vhost-net: revamp configure logic")

Autoselect VHOST if VHOST_VDPA is set
See 21c6b0c87e85 ("configure: simplify vhost condition with Kconfig")
See 2becc36a3e53 ("meson: infrastructure for building emulators"

Problems can be triggered using;
... --enable-vhost-vdpa --disable-vhost-user --disable-vhost-kernel ...

Fixes: 108a64818e69 ("vhost-vdpa: introduce vhost-vdpa backend")
Cc: lulu@redhat.com
Cc: pbonzini@redhat.com
Cc: marcandre.lureau@redhat.com
Signed-off-by: Laurent Vivier <lvivier@redhat.com>
Message-Id: <20200924210023.160679-1-lvivier@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Acked-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
 configure    | 3 ++-
 Kconfig.host | 4 ++++
 meson.build  | 1 +
 3 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/configure b/configure
index e8e8e984f2..8ee15810c8 100755
--- a/configure
+++ b/configure
@@ -2494,9 +2494,10 @@ if test "$vhost_net_vdpa" = "yes" && test "$vhost_vdpa" = "no"; then
   error_exit "--enable-vhost-net-vdpa requires --enable-vhost-vdpa"
 fi
 
-# OR the vhost-kernel and vhost-user values for simplicity
+# OR the vhost-kernel, vhost-vdpa and vhost-user values for simplicity
 if test "$vhost_net" = ""; then
   test "$vhost_net_user" = "yes" && vhost_net=yes
+  test "$vhost_net_vdpa" = "yes" && vhost_net=yes
   test "$vhost_kernel" = "yes" && vhost_net=yes
 fi
 
diff --git a/Kconfig.host b/Kconfig.host
index 4af19bf70e..a9a55a9c31 100644
--- a/Kconfig.host
+++ b/Kconfig.host
@@ -24,6 +24,10 @@ config VHOST_USER
     bool
     select VHOST
 
+config VHOST_VDPA
+    bool
+    select VHOST
+
 config VHOST_KERNEL
     bool
     select VHOST
diff --git a/meson.build b/meson.build
index b26c8bffc6..d36dd085b5 100644
--- a/meson.build
+++ b/meson.build
@@ -521,6 +521,7 @@ kconfig_external_symbols = [
   'CONFIG_OPENGL',
   'CONFIG_X11',
   'CONFIG_VHOST_USER',
+  'CONFIG_VHOST_VDPA',
   'CONFIG_VHOST_KERNEL',
   'CONFIG_VIRTFS',
   'CONFIG_LINUX',
-- 
MST



^ permalink raw reply related	[flat|nested] 63+ messages in thread

* [PULL v4 16/48] virtio: skip legacy support check on machine types less than 5.1
  2020-09-29  7:20 [PULL v4 00/48] virtio,pc,acpi: fixes, tests Michael S. Tsirkin
                   ` (13 preceding siblings ...)
  2020-09-29  7:21 ` [PULL v4 15/48] configure: Fix build dependencies with vhost-vdpa Michael S. Tsirkin
@ 2020-09-29  7:21 ` Michael S. Tsirkin
  2020-09-29  7:21 ` [PULL v4 17/48] vhost-vsock-pci: force virtio version 1 Michael S. Tsirkin
                   ` (36 subsequent siblings)
  51 siblings, 0 replies; 63+ messages in thread
From: Michael S. Tsirkin @ 2020-09-29  7:21 UTC (permalink / raw)
  To: qemu-devel
  Cc: Peter Maydell, Thomas Huth, Eduardo Habkost, David Hildenbrand,
	Cornelia Huck, qemu-stable, Dr . David Alan Gilbert, Halil Pasic,
	Christian Borntraeger, qemu-s390x, Richard Henderson,
	Stefano Garzarella

From: Stefano Garzarella <sgarzare@redhat.com>

Commit 9b3a35ec82 ("virtio: verify that legacy support is not accidentally
on") added a check that returns an error if legacy support is on, but the
device does not support legacy.

Unfortunately some devices were wrongly declared legacy capable even if
they were not (e.g vhost-vsock).

To avoid migration issues, we add a virtio-device property
(x-disable-legacy-check) to skip the legacy error, printing a warning
instead, for machine types < 5.1.

Cc: qemu-stable@nongnu.org
Fixes: 9b3a35ec82 ("virtio: verify that legacy support is not accidentally on")
Suggested-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Suggested-by: Cornelia Huck <cohuck@redhat.com>
Reviewed-by: Cornelia Huck <cohuck@redhat.com>
Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
Message-Id: <20200921122506.82515-2-sgarzare@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
 include/hw/virtio/virtio.h |  2 ++
 hw/core/machine.c          |  1 +
 hw/s390x/virtio-ccw.c      | 15 ++++++++++++---
 hw/virtio/virtio-pci.c     | 14 ++++++++++++--
 hw/virtio/virtio.c         |  7 +++++++
 5 files changed, 34 insertions(+), 5 deletions(-)

diff --git a/include/hw/virtio/virtio.h b/include/hw/virtio/virtio.h
index 28cf3b9120..b7ece7a6a8 100644
--- a/include/hw/virtio/virtio.h
+++ b/include/hw/virtio/virtio.h
@@ -101,6 +101,7 @@ struct VirtIODevice
     bool use_started;
     bool started;
     bool start_on_kick; /* when virtio 1.0 feature has not been negotiated */
+    bool disable_legacy_check;
     VMChangeStateEntry *vmstate;
     char *bus_name;
     uint8_t device_endian;
@@ -394,5 +395,6 @@ static inline bool virtio_device_disabled(VirtIODevice *vdev)
 }
 
 bool virtio_legacy_allowed(VirtIODevice *vdev);
+bool virtio_legacy_check_disabled(VirtIODevice *vdev);
 
 #endif
diff --git a/hw/core/machine.c b/hw/core/machine.c
index 9b02fb2f5e..d7f4a0d259 100644
--- a/hw/core/machine.c
+++ b/hw/core/machine.c
@@ -44,6 +44,7 @@ GlobalProperty hw_compat_5_0[] = {
     { "vmport", "x-signal-unsupported-cmd", "off" },
     { "vmport", "x-report-vmx-type", "off" },
     { "vmport", "x-cmds-v2", "off" },
+    { "virtio-device", "x-disable-legacy-check", "true" },
 };
 const size_t hw_compat_5_0_len = G_N_ELEMENTS(hw_compat_5_0);
 
diff --git a/hw/s390x/virtio-ccw.c b/hw/s390x/virtio-ccw.c
index 8d140dc50f..4582e94ae7 100644
--- a/hw/s390x/virtio-ccw.c
+++ b/hw/s390x/virtio-ccw.c
@@ -1122,9 +1122,18 @@ static void virtio_ccw_device_plugged(DeviceState *d, Error **errp)
     }
 
     if (!virtio_ccw_rev_max(dev) && !virtio_legacy_allowed(vdev)) {
-        error_setg(errp, "Invalid value of property max_rev "
-                   "(is %d expected >= 1)", virtio_ccw_rev_max(dev));
-        return;
+        /*
+         * To avoid migration issues, we allow legacy mode when legacy
+         * check is disabled in the old machine types (< 5.1).
+         */
+        if (virtio_legacy_check_disabled(vdev)) {
+            warn_report("device requires revision >= 1, but for backward "
+                        "compatibility max_revision=0 is allowed");
+        } else {
+            error_setg(errp, "Invalid value of property max_rev "
+                       "(is %d expected >= 1)", virtio_ccw_rev_max(dev));
+            return;
+        }
     }
 
     if (virtio_get_num_queues(vdev) > VIRTIO_QUEUE_MAX) {
diff --git a/hw/virtio/virtio-pci.c b/hw/virtio/virtio-pci.c
index 02790e3237..36524a5728 100644
--- a/hw/virtio/virtio-pci.c
+++ b/hw/virtio/virtio-pci.c
@@ -1597,8 +1597,18 @@ static void virtio_pci_device_plugged(DeviceState *d, Error **errp)
 
     if (legacy) {
         if (!virtio_legacy_allowed(vdev)) {
-            error_setg(errp, "device is modern-only, use disable-legacy=on");
-            return;
+            /*
+             * To avoid migration issues, we allow legacy mode when legacy
+             * check is disabled in the old machine types (< 5.1).
+             */
+            if (virtio_legacy_check_disabled(vdev)) {
+                warn_report("device is modern-only, but for backward "
+                            "compatibility legacy is allowed");
+            } else {
+                error_setg(errp,
+                           "device is modern-only, use disable-legacy=on");
+                return;
+            }
         }
         if (virtio_host_has_feature(vdev, VIRTIO_F_IOMMU_PLATFORM)) {
             error_setg(errp, "VIRTIO_F_IOMMU_PLATFORM was supported by"
diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c
index 3a3d012d9f..a2edb4f386 100644
--- a/hw/virtio/virtio.c
+++ b/hw/virtio/virtio.c
@@ -3304,6 +3304,11 @@ bool virtio_legacy_allowed(VirtIODevice *vdev)
     }
 }
 
+bool virtio_legacy_check_disabled(VirtIODevice *vdev)
+{
+    return vdev->disable_legacy_check;
+}
+
 hwaddr virtio_queue_get_desc_addr(VirtIODevice *vdev, int n)
 {
     return vdev->vq[n].vring.desc;
@@ -3713,6 +3718,8 @@ static Property virtio_properties[] = {
     DEFINE_VIRTIO_COMMON_FEATURES(VirtIODevice, host_features),
     DEFINE_PROP_BOOL("use-started", VirtIODevice, use_started, true),
     DEFINE_PROP_BOOL("use-disabled-flag", VirtIODevice, use_disabled_flag, true),
+    DEFINE_PROP_BOOL("x-disable-legacy-check", VirtIODevice,
+                     disable_legacy_check, false),
     DEFINE_PROP_END_OF_LIST(),
 };
 
-- 
MST



^ permalink raw reply related	[flat|nested] 63+ messages in thread

* [PULL v4 17/48] vhost-vsock-pci: force virtio version 1
  2020-09-29  7:20 [PULL v4 00/48] virtio,pc,acpi: fixes, tests Michael S. Tsirkin
                   ` (14 preceding siblings ...)
  2020-09-29  7:21 ` [PULL v4 16/48] virtio: skip legacy support check on machine types less than 5.1 Michael S. Tsirkin
@ 2020-09-29  7:21 ` Michael S. Tsirkin
  2020-09-29  7:21 ` [PULL v4 18/48] vhost-user-vsock-pci: " Michael S. Tsirkin
                   ` (35 subsequent siblings)
  51 siblings, 0 replies; 63+ messages in thread
From: Michael S. Tsirkin @ 2020-09-29  7:21 UTC (permalink / raw)
  To: qemu-devel
  Cc: Peter Maydell, Qinghua Cheng, Qian Cai, Cornelia Huck,
	qemu-stable, Stefano Garzarella

From: Stefano Garzarella <sgarzare@redhat.com>

Commit 9b3a35ec82 ("virtio: verify that legacy support is not
accidentally on") added a safety check that requires to set
'disable-legacy=on' on vhost-vsock-pci device:

    $ ./qemu-system-x86_64 ... -device vhost-vsock-pci,guest-cid=5
        qemu-system-x86_64: -device vhost-vsock-pci,guest-cid=5:
        device is modern-only, use disable-legacy=on

virtio-vsock was introduced after the release of VIRTIO 1.0
specifications, so it should be 'modern-only'.
In addition Cornelia verified that forcing a legacy mode on
vhost-vsock-pci device using x86-64 host and s390x guest, so with
different endianness, produces strange behaviours.

This patch forces virtio version 1 and removes the 'transitional_name'
property removing the need to specify 'disable-legacy=on' on
vhost-vsock-pci device.

To avoid migration issues, we force virtio version 1 only when
legacy check is enabled in the new machine types (>= 5.1).

As the transitional device name is not commonly used, we do not
provide compatibility handling for it.

Cc: qemu-stable@nongnu.org
Reported-by: Qian Cai <caiqian@redhat.com>
Reported-by: Qinghua Cheng <qcheng@redhat.com>
Buglink: https://bugzilla.redhat.com/show_bug.cgi?id=1868449
Suggested-by: Cornelia Huck <cohuck@redhat.com>
Reviewed-by: Cornelia Huck <cohuck@redhat.com>
Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
Message-Id: <20200921122506.82515-3-sgarzare@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
 hw/virtio/vhost-vsock-pci.c | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/hw/virtio/vhost-vsock-pci.c b/hw/virtio/vhost-vsock-pci.c
index e56067b427..205da8d1f5 100644
--- a/hw/virtio/vhost-vsock-pci.c
+++ b/hw/virtio/vhost-vsock-pci.c
@@ -44,6 +44,15 @@ static void vhost_vsock_pci_realize(VirtIOPCIProxy *vpci_dev, Error **errp)
 {
     VHostVSockPCI *dev = VHOST_VSOCK_PCI(vpci_dev);
     DeviceState *vdev = DEVICE(&dev->vdev);
+    VirtIODevice *virtio_dev = VIRTIO_DEVICE(vdev);
+
+    /*
+     * To avoid migration issues, we force virtio version 1 only when
+     * legacy check is enabled in the new machine types (>= 5.1).
+     */
+    if (!virtio_legacy_check_disabled(virtio_dev)) {
+        virtio_pci_force_virtio_1(vpci_dev);
+    }
 
     qdev_realize(vdev, BUS(&vpci_dev->bus), errp);
 }
@@ -73,7 +82,6 @@ static void vhost_vsock_pci_instance_init(Object *obj)
 static const VirtioPCIDeviceTypeInfo vhost_vsock_pci_info = {
     .base_name             = TYPE_VHOST_VSOCK_PCI,
     .generic_name          = "vhost-vsock-pci",
-    .transitional_name     = "vhost-vsock-pci-transitional",
     .non_transitional_name = "vhost-vsock-pci-non-transitional",
     .instance_size = sizeof(VHostVSockPCI),
     .instance_init = vhost_vsock_pci_instance_init,
-- 
MST



^ permalink raw reply related	[flat|nested] 63+ messages in thread

* [PULL v4 18/48] vhost-user-vsock-pci: force virtio version 1
  2020-09-29  7:20 [PULL v4 00/48] virtio,pc,acpi: fixes, tests Michael S. Tsirkin
                   ` (15 preceding siblings ...)
  2020-09-29  7:21 ` [PULL v4 17/48] vhost-vsock-pci: force virtio version 1 Michael S. Tsirkin
@ 2020-09-29  7:21 ` Michael S. Tsirkin
  2020-09-29  7:21 ` [PULL v4 19/48] vhost-vsock-ccw: " Michael S. Tsirkin
                   ` (34 subsequent siblings)
  51 siblings, 0 replies; 63+ messages in thread
From: Michael S. Tsirkin @ 2020-09-29  7:21 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell, Cornelia Huck, qemu-stable, Stefano Garzarella

From: Stefano Garzarella <sgarzare@redhat.com>

Commit 9b3a35ec82 ("virtio: verify that legacy support is not
accidentally on") added a safety check that requires to set
'disable-legacy=on' on vhost-user-vsock-pci device:

    $ ./qemu-system-x86_64 ... \
    -chardev socket,id=char0,reconnect=0,path=/tmp/vhost4.socket \
    -device vhost-user-vsock-pci,chardev=char0
        qemu-system-x86_64: -device vhost-user-vsock-pci,chardev=char0:
        device is modern-only, use disable-legacy=on

virtio-vsock was introduced after the release of VIRTIO 1.0
specifications, so it should be 'modern-only'.

This patch forces virtio version 1 and removes the 'transitional_name'
property, as done for vhost-vsock-pci, removing the need to specify
'disable-legacy=on' on vhost-user-vsock-pci device.

Cc: qemu-stable@nongnu.org
Suggested-by: Cornelia Huck <cohuck@redhat.com>
Reviewed-by: Cornelia Huck <cohuck@redhat.com>
Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
Message-Id: <20200921122506.82515-4-sgarzare@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
 hw/virtio/vhost-user-vsock-pci.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/hw/virtio/vhost-user-vsock-pci.c b/hw/virtio/vhost-user-vsock-pci.c
index 763f89984e..72a96199cd 100644
--- a/hw/virtio/vhost-user-vsock-pci.c
+++ b/hw/virtio/vhost-user-vsock-pci.c
@@ -41,6 +41,9 @@ static void vhost_user_vsock_pci_realize(VirtIOPCIProxy *vpci_dev, Error **errp)
     VHostUserVSockPCI *dev = VHOST_USER_VSOCK_PCI(vpci_dev);
     DeviceState *vdev = DEVICE(&dev->vdev);
 
+    /* unlike vhost-vsock, we do not need to care about pre-5.1 compat */
+    virtio_pci_force_virtio_1(vpci_dev);
+
     qdev_realize(vdev, BUS(&vpci_dev->bus), errp);
 }
 
@@ -69,7 +72,6 @@ static void vhost_user_vsock_pci_instance_init(Object *obj)
 static const VirtioPCIDeviceTypeInfo vhost_user_vsock_pci_info = {
     .base_name             = TYPE_VHOST_USER_VSOCK_PCI,
     .generic_name          = "vhost-user-vsock-pci",
-    .transitional_name     = "vhost-user-vsock-pci-transitional",
     .non_transitional_name = "vhost-user-vsock-pci-non-transitional",
     .instance_size = sizeof(VHostUserVSockPCI),
     .instance_init = vhost_user_vsock_pci_instance_init,
-- 
MST



^ permalink raw reply related	[flat|nested] 63+ messages in thread

* [PULL v4 19/48] vhost-vsock-ccw: force virtio version 1
  2020-09-29  7:20 [PULL v4 00/48] virtio,pc,acpi: fixes, tests Michael S. Tsirkin
                   ` (16 preceding siblings ...)
  2020-09-29  7:21 ` [PULL v4 18/48] vhost-user-vsock-pci: " Michael S. Tsirkin
@ 2020-09-29  7:21 ` Michael S. Tsirkin
  2020-09-29  7:21 ` [PULL v4 20/48] virtio: update MemoryRegionCaches when guest set bad features Michael S. Tsirkin
                   ` (33 subsequent siblings)
  51 siblings, 0 replies; 63+ messages in thread
From: Michael S. Tsirkin @ 2020-09-29  7:21 UTC (permalink / raw)
  To: qemu-devel
  Cc: Peter Maydell, Thomas Huth, David Hildenbrand, Cornelia Huck,
	qemu-stable, Halil Pasic, Christian Borntraeger, qemu-s390x,
	Richard Henderson, Stefano Garzarella

From: Stefano Garzarella <sgarzare@redhat.com>

virtio-vsock was introduced after the release of VIRTIO 1.0
specifications, so it should be 'modern-only'.

This patch forces virtio version 1 as done for vhost-vsock-pci.

To avoid migration issues, we force virtio version 1 only when
legacy check is enabled in the new machine types (>= 5.1).

Cc: qemu-stable@nongnu.org
Suggested-by: Cornelia Huck <cohuck@redhat.com>
Reviewed-by: Cornelia Huck <cohuck@redhat.com>
Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
Message-Id: <20200921122506.82515-5-sgarzare@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
 hw/s390x/vhost-vsock-ccw.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/hw/s390x/vhost-vsock-ccw.c b/hw/s390x/vhost-vsock-ccw.c
index 0822ecca89..246416a8f9 100644
--- a/hw/s390x/vhost-vsock-ccw.c
+++ b/hw/s390x/vhost-vsock-ccw.c
@@ -40,9 +40,21 @@ static void vhost_vsock_ccw_class_init(ObjectClass *klass, void *data)
 static void vhost_vsock_ccw_instance_init(Object *obj)
 {
     VHostVSockCCWState *dev = VHOST_VSOCK_CCW(obj);
+    VirtioCcwDevice *ccw_dev = VIRTIO_CCW_DEVICE(obj);
+    VirtIODevice *virtio_dev;
 
     virtio_instance_init_common(obj, &dev->vdev, sizeof(dev->vdev),
                                 TYPE_VHOST_VSOCK);
+
+    virtio_dev = VIRTIO_DEVICE(&dev->vdev);
+
+    /*
+     * To avoid migration issues, we force virtio version 1 only when
+     * legacy check is enabled in the new machine types (>= 5.1).
+     */
+    if (!virtio_legacy_check_disabled(virtio_dev)) {
+        ccw_dev->force_revision_1 = true;
+    }
 }
 
 static const TypeInfo vhost_vsock_ccw_info = {
-- 
MST



^ permalink raw reply related	[flat|nested] 63+ messages in thread

* [PULL v4 20/48] virtio: update MemoryRegionCaches when guest set bad features
  2020-09-29  7:20 [PULL v4 00/48] virtio,pc,acpi: fixes, tests Michael S. Tsirkin
                   ` (17 preceding siblings ...)
  2020-09-29  7:21 ` [PULL v4 19/48] vhost-vsock-ccw: " Michael S. Tsirkin
@ 2020-09-29  7:21 ` Michael S. Tsirkin
  2020-09-29  7:21 ` [PULL v4 21/48] x86: lpc9: let firmware negotiate 'CPU hotplug with SMI' features Michael S. Tsirkin
                   ` (32 subsequent siblings)
  51 siblings, 0 replies; 63+ messages in thread
From: Michael S. Tsirkin @ 2020-09-29  7:21 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell, Paolo Bonzini, Li Qiang, Alexander Bulekov

From: Li Qiang <liq3ea@163.com>

Current the 'virtio_set_features' only update the 'MemorRegionCaches'
when the 'virtio_set_features_nocheck' return '0' which means it is
not bad features. However the guest can still trigger the access of the
used vring after set bad features. In this situation it will cause assert
failure in 'ADDRESS_SPACE_ST_CACHED'.

Buglink: https://bugs.launchpad.net/qemu/+bug/1890333
Fixes: db812c4073c7 ("virtio: update MemoryRegionCaches when guest negotiates features")
Reported-by: Alexander Bulekov <alxndr@bu.edu>
Signed-off-by: Li Qiang <liq3ea@163.com>
Message-Id: <20200919082706.6703-1-liq3ea@163.com>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
 hw/virtio/virtio.c | 17 ++++++++---------
 1 file changed, 8 insertions(+), 9 deletions(-)

diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c
index a2edb4f386..6f8f865aff 100644
--- a/hw/virtio/virtio.c
+++ b/hw/virtio/virtio.c
@@ -2963,17 +2963,16 @@ int virtio_set_features(VirtIODevice *vdev, uint64_t val)
         return -EINVAL;
     }
     ret = virtio_set_features_nocheck(vdev, val);
-    if (!ret) {
-        if (virtio_vdev_has_feature(vdev, VIRTIO_RING_F_EVENT_IDX)) {
-            /* VIRTIO_RING_F_EVENT_IDX changes the size of the caches.  */
-            int i;
-            for (i = 0; i < VIRTIO_QUEUE_MAX; i++) {
-                if (vdev->vq[i].vring.num != 0) {
-                    virtio_init_region_cache(vdev, i);
-                }
+    if (virtio_vdev_has_feature(vdev, VIRTIO_RING_F_EVENT_IDX)) {
+        /* VIRTIO_RING_F_EVENT_IDX changes the size of the caches.  */
+        int i;
+        for (i = 0; i < VIRTIO_QUEUE_MAX; i++) {
+            if (vdev->vq[i].vring.num != 0) {
+                virtio_init_region_cache(vdev, i);
             }
         }
-
+    }
+    if (!ret) {
         if (!virtio_device_started(vdev, vdev->status) &&
             !virtio_vdev_has_feature(vdev, VIRTIO_F_VERSION_1)) {
             vdev->start_on_kick = true;
-- 
MST



^ permalink raw reply related	[flat|nested] 63+ messages in thread

* [PULL v4 21/48] x86: lpc9: let firmware negotiate 'CPU hotplug with SMI' features
  2020-09-29  7:20 [PULL v4 00/48] virtio,pc,acpi: fixes, tests Michael S. Tsirkin
                   ` (18 preceding siblings ...)
  2020-09-29  7:21 ` [PULL v4 20/48] virtio: update MemoryRegionCaches when guest set bad features Michael S. Tsirkin
@ 2020-09-29  7:21 ` Michael S. Tsirkin
  2020-09-29  7:21 ` [PULL v4 22/48] x86: cpuhp: prevent guest crash on CPU hotplug when broadcast SMI is in use Michael S. Tsirkin
                   ` (31 subsequent siblings)
  51 siblings, 0 replies; 63+ messages in thread
From: Michael S. Tsirkin @ 2020-09-29  7:21 UTC (permalink / raw)
  To: qemu-devel
  Cc: Peter Maydell, Eduardo Habkost, Igor Mammedov, Paolo Bonzini,
	Laszlo Ersek, Richard Henderson

From: Igor Mammedov <imammedo@redhat.com>

It will allow firmware to notify QEMU that firmware requires SMI
being triggered on CPU hot[un]plug, so that it would be able to account
for hotplugged CPU and relocate it to new SMM base and/or safely remove
CPU on unplug.

Using negotiated features, follow up patches will insert SMI upcall
into AML code, to make sure that firmware processes hotplug before
guest OS would attempt to use new CPU.

Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
Tested-by: Laszlo Ersek <lersek@redhat.com>
Message-Id: <20200923094650.1301166-2-imammedo@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
 include/hw/i386/ich9.h |  2 ++
 hw/i386/pc.c           |  4 +++-
 hw/isa/lpc_ich9.c      | 13 +++++++++++++
 3 files changed, 18 insertions(+), 1 deletion(-)

diff --git a/include/hw/i386/ich9.h b/include/hw/i386/ich9.h
index 48b442bc0b..703d56036a 100644
--- a/include/hw/i386/ich9.h
+++ b/include/hw/i386/ich9.h
@@ -247,5 +247,7 @@ struct ICH9LPCState {
 
 /* bit positions used in fw_cfg SMI feature negotiation */
 #define ICH9_LPC_SMI_F_BROADCAST_BIT            0
+#define ICH9_LPC_SMI_F_CPU_HOTPLUG_BIT          1
+#define ICH9_LPC_SMI_F_CPU_HOT_UNPLUG_BIT       2
 
 #endif /* HW_ICH9_H */
diff --git a/hw/i386/pc.c b/hw/i386/pc.c
index 50e8317342..2c6194e57f 100644
--- a/hw/i386/pc.c
+++ b/hw/i386/pc.c
@@ -97,7 +97,9 @@
 #include "trace.h"
 #include CONFIG_DEVICES
 
-GlobalProperty pc_compat_5_1[] = {};
+GlobalProperty pc_compat_5_1[] = {
+    { "ICH9-LPC", "x-smi-cpu-hotplug", "off" },
+};
 const size_t pc_compat_5_1_len = G_N_ELEMENTS(pc_compat_5_1);
 
 GlobalProperty pc_compat_5_0[] = {
diff --git a/hw/isa/lpc_ich9.c b/hw/isa/lpc_ich9.c
index 3303d2eab6..a54b3ec8bd 100644
--- a/hw/isa/lpc_ich9.c
+++ b/hw/isa/lpc_ich9.c
@@ -373,6 +373,15 @@ static void smi_features_ok_callback(void *opaque)
         /* guest requests invalid features, leave @features_ok at zero */
         return;
     }
+    if (!(guest_features & BIT_ULL(ICH9_LPC_SMI_F_BROADCAST_BIT)) &&
+        guest_features & (BIT_ULL(ICH9_LPC_SMI_F_CPU_HOTPLUG_BIT) |
+                          BIT_ULL(ICH9_LPC_SMI_F_CPU_HOT_UNPLUG_BIT))) {
+        /*
+         * cpu hot-[un]plug with SMI requires SMI broadcast,
+         * leave @features_ok at zero
+         */
+        return;
+    }
 
     /* valid feature subset requested, lock it down, report success */
     lpc->smi_negotiated_features = guest_features;
@@ -747,6 +756,10 @@ static Property ich9_lpc_properties[] = {
     DEFINE_PROP_BOOL("noreboot", ICH9LPCState, pin_strap.spkr_hi, true),
     DEFINE_PROP_BIT64("x-smi-broadcast", ICH9LPCState, smi_host_features,
                       ICH9_LPC_SMI_F_BROADCAST_BIT, true),
+    DEFINE_PROP_BIT64("x-smi-cpu-hotplug", ICH9LPCState, smi_host_features,
+                      ICH9_LPC_SMI_F_CPU_HOTPLUG_BIT, true),
+    DEFINE_PROP_BIT64("x-smi-cpu-hotunplug", ICH9LPCState, smi_host_features,
+                      ICH9_LPC_SMI_F_CPU_HOT_UNPLUG_BIT, false),
     DEFINE_PROP_END_OF_LIST(),
 };
 
-- 
MST



^ permalink raw reply related	[flat|nested] 63+ messages in thread

* [PULL v4 22/48] x86: cpuhp: prevent guest crash on CPU hotplug when broadcast SMI is in use
  2020-09-29  7:20 [PULL v4 00/48] virtio,pc,acpi: fixes, tests Michael S. Tsirkin
                   ` (19 preceding siblings ...)
  2020-09-29  7:21 ` [PULL v4 21/48] x86: lpc9: let firmware negotiate 'CPU hotplug with SMI' features Michael S. Tsirkin
@ 2020-09-29  7:21 ` Michael S. Tsirkin
  2020-09-29  7:21 ` [PULL v4 23/48] x86: cpuhp: refuse cpu hot-unplug request earlier if not supported Michael S. Tsirkin
                   ` (30 subsequent siblings)
  51 siblings, 0 replies; 63+ messages in thread
From: Michael S. Tsirkin @ 2020-09-29  7:21 UTC (permalink / raw)
  To: qemu-devel
  Cc: Peter Maydell, Eduardo Habkost, Igor Mammedov, Paolo Bonzini,
	Laszlo Ersek, Richard Henderson

From: Igor Mammedov <imammedo@redhat.com>

There were reports of guest crash on CPU hotplug, when using q35 machine
type and OVMF with SMM, due to hotplugged CPU trying to process SMI at
default SMI handler location without it being relocated by firmware first.

Fix it by refusing hotplug if firmware hasn't negotiated CPU hotplug with
SMI support while SMI broadcast is in use.

Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
Tested-by: Laszlo Ersek <lersek@redhat.com>
Message-Id: <20200923094650.1301166-3-imammedo@redhat.com>
Tested-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
 hw/acpi/ich9.c | 12 +++++++++++-
 hw/i386/x86.c  | 11 +++++++++++
 2 files changed, 22 insertions(+), 1 deletion(-)

diff --git a/hw/acpi/ich9.c b/hw/acpi/ich9.c
index 6a19070cec..0acc9a3107 100644
--- a/hw/acpi/ich9.c
+++ b/hw/acpi/ich9.c
@@ -408,10 +408,20 @@ void ich9_pm_device_pre_plug_cb(HotplugHandler *hotplug_dev, DeviceState *dev,
     ICH9LPCState *lpc = ICH9_LPC_DEVICE(hotplug_dev);
 
     if (object_dynamic_cast(OBJECT(dev), TYPE_PC_DIMM) &&
-        !lpc->pm.acpi_memory_hotplug.is_enabled)
+        !lpc->pm.acpi_memory_hotplug.is_enabled) {
         error_setg(errp,
                    "memory hotplug is not enabled: %s.memory-hotplug-support "
                    "is not set", object_get_typename(OBJECT(lpc)));
+    } else if (object_dynamic_cast(OBJECT(dev), TYPE_CPU)) {
+        uint64_t negotiated = lpc->smi_negotiated_features;
+
+        if (negotiated & BIT_ULL(ICH9_LPC_SMI_F_BROADCAST_BIT) &&
+            !(negotiated & BIT_ULL(ICH9_LPC_SMI_F_CPU_HOTPLUG_BIT))) {
+            error_setg(errp, "cpu hotplug with SMI wasn't enabled by firmware");
+            error_append_hint(errp, "update machine type to newer than 5.1 "
+                "and firmware that suppors CPU hotplug with SMM");
+        }
+    }
 }
 
 void ich9_pm_device_plug_cb(HotplugHandler *hotplug_dev, DeviceState *dev,
diff --git a/hw/i386/x86.c b/hw/i386/x86.c
index c2ea989579..403c2b1dad 100644
--- a/hw/i386/x86.c
+++ b/hw/i386/x86.c
@@ -279,6 +279,17 @@ void x86_cpu_pre_plug(HotplugHandler *hotplug_dev,
         return;
     }
 
+    if (x86ms->acpi_dev) {
+        Error *local_err = NULL;
+
+        hotplug_handler_pre_plug(HOTPLUG_HANDLER(x86ms->acpi_dev), dev,
+                                 &local_err);
+        if (local_err) {
+            error_propagate(errp, local_err);
+            return;
+        }
+    }
+
     init_topo_info(&topo_info, x86ms);
 
     env->nr_dies = x86ms->smp_dies;
-- 
MST



^ permalink raw reply related	[flat|nested] 63+ messages in thread

* [PULL v4 23/48] x86: cpuhp: refuse cpu hot-unplug request earlier if not supported
  2020-09-29  7:20 [PULL v4 00/48] virtio,pc,acpi: fixes, tests Michael S. Tsirkin
                   ` (20 preceding siblings ...)
  2020-09-29  7:21 ` [PULL v4 22/48] x86: cpuhp: prevent guest crash on CPU hotplug when broadcast SMI is in use Michael S. Tsirkin
@ 2020-09-29  7:21 ` Michael S. Tsirkin
  2020-09-29  7:21 ` [PULL v4 24/48] acpi: add aml_land() and aml_break() primitives Michael S. Tsirkin
                   ` (29 subsequent siblings)
  51 siblings, 0 replies; 63+ messages in thread
From: Michael S. Tsirkin @ 2020-09-29  7:21 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell, Laszlo Ersek, Igor Mammedov

From: Igor Mammedov <imammedo@redhat.com>

CPU hot-unplug with SMM requires firmware participation to prevent
guest crash (i.e. CPU can be removed only after OS _and_ firmware
were prepared for the action).
Previous patches introduced ICH9_LPC_SMI_F_CPU_HOT_UNPLUG_BIT
feature bit, which is advertised by firmware when it has support
for CPU hot-unplug. Use it to check if guest is able to handle
unplug and make device_del fail gracefully if hot-unplug feature
hasn't been negotiated.

Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Tested-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
Message-Id: <20200923094650.1301166-4-imammedo@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
 hw/acpi/ich9.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/hw/acpi/ich9.c b/hw/acpi/ich9.c
index 0acc9a3107..95cb0f935b 100644
--- a/hw/acpi/ich9.c
+++ b/hw/acpi/ich9.c
@@ -460,6 +460,18 @@ void ich9_pm_device_unplug_request_cb(HotplugHandler *hotplug_dev,
                                       errp);
     } else if (object_dynamic_cast(OBJECT(dev), TYPE_CPU) &&
                !lpc->pm.cpu_hotplug_legacy) {
+        uint64_t negotiated = lpc->smi_negotiated_features;
+
+        if (negotiated & BIT_ULL(ICH9_LPC_SMI_F_BROADCAST_BIT) &&
+            !(negotiated & BIT_ULL(ICH9_LPC_SMI_F_CPU_HOT_UNPLUG_BIT))) {
+            error_setg(errp, "cpu hot-unplug with SMI wasn't enabled "
+                             "by firmware");
+            error_append_hint(errp, "update machine type to a version having "
+                                    "x-smi-cpu-hotunplug=on and firmware that "
+                                    "supports CPU hot-unplug with SMM");
+            return;
+        }
+
         acpi_cpu_unplug_request_cb(hotplug_dev, &lpc->pm.cpuhp_state,
                                    dev, errp);
     } else {
-- 
MST



^ permalink raw reply related	[flat|nested] 63+ messages in thread

* [PULL v4 24/48] acpi: add aml_land() and aml_break() primitives
  2020-09-29  7:20 [PULL v4 00/48] virtio,pc,acpi: fixes, tests Michael S. Tsirkin
                   ` (21 preceding siblings ...)
  2020-09-29  7:21 ` [PULL v4 23/48] x86: cpuhp: refuse cpu hot-unplug request earlier if not supported Michael S. Tsirkin
@ 2020-09-29  7:21 ` Michael S. Tsirkin
  2020-09-29  7:21 ` [PULL v4 25/48] tests: acpi: mark to be changed tables in bios-tables-test-allowed-diff Michael S. Tsirkin
                   ` (28 subsequent siblings)
  51 siblings, 0 replies; 63+ messages in thread
From: Michael S. Tsirkin @ 2020-09-29  7:21 UTC (permalink / raw)
  To: qemu-devel
  Cc: Peter Maydell, Philippe Mathieu-Daudé, Laszlo Ersek, Igor Mammedov

From: Igor Mammedov <imammedo@redhat.com>

Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
Tested-by: Laszlo Ersek <lersek@redhat.com>
Message-Id: <20200923094650.1301166-5-imammedo@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
 include/hw/acpi/aml-build.h |  2 ++
 hw/acpi/aml-build.c         | 16 ++++++++++++++++
 2 files changed, 18 insertions(+)

diff --git a/include/hw/acpi/aml-build.h b/include/hw/acpi/aml-build.h
index d27da03d64..fe0055fffb 100644
--- a/include/hw/acpi/aml-build.h
+++ b/include/hw/acpi/aml-build.h
@@ -290,6 +290,7 @@ Aml *aml_to_buffer(Aml *src, Aml *dst);
 Aml *aml_store(Aml *val, Aml *target);
 Aml *aml_and(Aml *arg1, Aml *arg2, Aml *dst);
 Aml *aml_or(Aml *arg1, Aml *arg2, Aml *dst);
+Aml *aml_land(Aml *arg1, Aml *arg2);
 Aml *aml_lor(Aml *arg1, Aml *arg2);
 Aml *aml_shiftleft(Aml *arg1, Aml *count);
 Aml *aml_shiftright(Aml *arg1, Aml *count, Aml *dst);
@@ -300,6 +301,7 @@ Aml *aml_increment(Aml *arg);
 Aml *aml_decrement(Aml *arg);
 Aml *aml_index(Aml *arg1, Aml *idx);
 Aml *aml_notify(Aml *arg1, Aml *arg2);
+Aml *aml_break(void);
 Aml *aml_call0(const char *method);
 Aml *aml_call1(const char *method, Aml *arg1);
 Aml *aml_call2(const char *method, Aml *arg1, Aml *arg2);
diff --git a/hw/acpi/aml-build.c b/hw/acpi/aml-build.c
index f6fbc9b95d..3792ba96ce 100644
--- a/hw/acpi/aml-build.c
+++ b/hw/acpi/aml-build.c
@@ -556,6 +556,15 @@ Aml *aml_or(Aml *arg1, Aml *arg2, Aml *dst)
     return build_opcode_2arg_dst(0x7D /* OrOp */, arg1, arg2, dst);
 }
 
+/* ACPI 1.0b: 16.2.5.4 Type 2 Opcodes Encoding: DefLAnd */
+Aml *aml_land(Aml *arg1, Aml *arg2)
+{
+    Aml *var = aml_opcode(0x90 /* LAndOp */);
+    aml_append(var, arg1);
+    aml_append(var, arg2);
+    return var;
+}
+
 /* ACPI 1.0b: 16.2.5.4 Type 2 Opcodes Encoding: DefLOr */
 Aml *aml_lor(Aml *arg1, Aml *arg2)
 {
@@ -629,6 +638,13 @@ Aml *aml_notify(Aml *arg1, Aml *arg2)
     return var;
 }
 
+/* ACPI 1.0b: 16.2.5.3 Type 1 Opcodes Encoding: DefBreak */
+Aml *aml_break(void)
+{
+    Aml *var = aml_opcode(0xa5 /* BreakOp */);
+    return var;
+}
+
 /* helper to call method without argument */
 Aml *aml_call0(const char *method)
 {
-- 
MST



^ permalink raw reply related	[flat|nested] 63+ messages in thread

* [PULL v4 25/48] tests: acpi: mark to be changed tables in bios-tables-test-allowed-diff
  2020-09-29  7:20 [PULL v4 00/48] virtio,pc,acpi: fixes, tests Michael S. Tsirkin
                   ` (22 preceding siblings ...)
  2020-09-29  7:21 ` [PULL v4 24/48] acpi: add aml_land() and aml_break() primitives Michael S. Tsirkin
@ 2020-09-29  7:21 ` Michael S. Tsirkin
  2020-09-29  7:22 ` [PULL v4 26/48] x86: ich9: expose "smi_negotiated_features" as a QOM property Michael S. Tsirkin
                   ` (27 subsequent siblings)
  51 siblings, 0 replies; 63+ messages in thread
From: Michael S. Tsirkin @ 2020-09-29  7:21 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell, Igor Mammedov

From: Igor Mammedov <imammedo@redhat.com>

... to let tests pass until binary blobs are updated with new AML

Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Message-Id: <20200923094650.1301166-6-imammedo@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
 tests/qtest/bios-tables-test-allowed-diff.h | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/tests/qtest/bios-tables-test-allowed-diff.h b/tests/qtest/bios-tables-test-allowed-diff.h
index dfb8523c8b..dba32d5613 100644
--- a/tests/qtest/bios-tables-test-allowed-diff.h
+++ b/tests/qtest/bios-tables-test-allowed-diff.h
@@ -1 +1,20 @@
 /* List of comma-separated changed AML files to ignore */
+"tests/data/acpi/pc/DSDT",
+"tests/data/acpi/q35/DSDT",
+"tests/data/acpi/q35/DSDT.tis",
+"tests/data/acpi/q35/DSDT.bridge",
+"tests/data/acpi/q35/DSDT.mmio64",
+"tests/data/acpi/q35/DSDT.ipmibt",
+"tests/data/acpi/q35/DSDT.cphp",
+"tests/data/acpi/q35/DSDT.memhp",
+"tests/data/acpi/q35/DSDT.numamem",
+"tests/data/acpi/q35/DSDT.dimmpxm",
+"tests/data/acpi/q35/DSDT.acpihmat",
+"tests/data/acpi/pc/DSDT.bridge",
+"tests/data/acpi/pc/DSDT.ipmikcs",
+"tests/data/acpi/pc/DSDT.cphp",
+"tests/data/acpi/pc/DSDT.memhp",
+"tests/data/acpi/pc/DSDT.numamem",
+"tests/data/acpi/pc/DSDT.dimmpxm",
+"tests/data/acpi/pc/DSDT.acpihmat",
+"tests/data/acpi/pc/DSDT.acpihmat",
-- 
MST



^ permalink raw reply related	[flat|nested] 63+ messages in thread

* [PULL v4 26/48] x86: ich9: expose "smi_negotiated_features" as a QOM property
  2020-09-29  7:20 [PULL v4 00/48] virtio,pc,acpi: fixes, tests Michael S. Tsirkin
                   ` (23 preceding siblings ...)
  2020-09-29  7:21 ` [PULL v4 25/48] tests: acpi: mark to be changed tables in bios-tables-test-allowed-diff Michael S. Tsirkin
@ 2020-09-29  7:22 ` Michael S. Tsirkin
  2020-09-29  7:22 ` [PULL v4 27/48] x86: acpi: introduce AcpiPmInfo::smi_on_cpuhp Michael S. Tsirkin
                   ` (26 subsequent siblings)
  51 siblings, 0 replies; 63+ messages in thread
From: Michael S. Tsirkin @ 2020-09-29  7:22 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell, Laszlo Ersek, Igor Mammedov

From: Igor Mammedov <imammedo@redhat.com>

Expose the "smi_negotiated_features" field of ICH9LPCState as
a QOM property.

Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
Tested-by: Laszlo Ersek <lersek@redhat.com>
Message-Id: <20200923094650.1301166-7-imammedo@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
 include/hw/i386/ich9.h | 2 ++
 hw/isa/lpc_ich9.c      | 3 +++
 2 files changed, 5 insertions(+)

diff --git a/include/hw/i386/ich9.h b/include/hw/i386/ich9.h
index 703d56036a..294024be5f 100644
--- a/include/hw/i386/ich9.h
+++ b/include/hw/i386/ich9.h
@@ -245,6 +245,8 @@ struct ICH9LPCState {
 #define ICH9_SMB_HST_D1                         0x06
 #define ICH9_SMB_HOST_BLOCK_DB                  0x07
 
+#define ICH9_LPC_SMI_NEGOTIATED_FEAT_PROP "x-smi-negotiated-features"
+
 /* bit positions used in fw_cfg SMI feature negotiation */
 #define ICH9_LPC_SMI_F_BROADCAST_BIT            0
 #define ICH9_LPC_SMI_F_CPU_HOTPLUG_BIT          1
diff --git a/hw/isa/lpc_ich9.c b/hw/isa/lpc_ich9.c
index a54b3ec8bd..04e5323140 100644
--- a/hw/isa/lpc_ich9.c
+++ b/hw/isa/lpc_ich9.c
@@ -647,6 +647,9 @@ static void ich9_lpc_initfn(Object *obj)
                                   &acpi_enable_cmd, OBJ_PROP_FLAG_READ);
     object_property_add_uint8_ptr(OBJECT(lpc), ACPI_PM_PROP_ACPI_DISABLE_CMD,
                                   &acpi_disable_cmd, OBJ_PROP_FLAG_READ);
+    object_property_add_uint64_ptr(obj, ICH9_LPC_SMI_NEGOTIATED_FEAT_PROP,
+                                   &lpc->smi_negotiated_features,
+                                   OBJ_PROP_FLAG_READ);
 
     ich9_pm_add_properties(obj, &lpc->pm);
 }
-- 
MST



^ permalink raw reply related	[flat|nested] 63+ messages in thread

* [PULL v4 27/48] x86: acpi: introduce AcpiPmInfo::smi_on_cpuhp
  2020-09-29  7:20 [PULL v4 00/48] virtio,pc,acpi: fixes, tests Michael S. Tsirkin
                   ` (24 preceding siblings ...)
  2020-09-29  7:22 ` [PULL v4 26/48] x86: ich9: expose "smi_negotiated_features" as a QOM property Michael S. Tsirkin
@ 2020-09-29  7:22 ` Michael S. Tsirkin
  2020-09-29  7:22 ` [PULL v4 28/48] x86: acpi: introduce the PCI0.SMI0 ACPI device Michael S. Tsirkin
                   ` (25 subsequent siblings)
  51 siblings, 0 replies; 63+ messages in thread
From: Michael S. Tsirkin @ 2020-09-29  7:22 UTC (permalink / raw)
  To: qemu-devel
  Cc: Peter Maydell, Eduardo Habkost, Igor Mammedov, Paolo Bonzini,
	Laszlo Ersek, Richard Henderson

From: Igor Mammedov <imammedo@redhat.com>

Translate the "CPU hotplug with SMI" feature bit, from the property
added in the last patch, to a dedicated boolean in AcpiPmInfo.

Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
Tested-by: Laszlo Ersek <lersek@redhat.com>
Message-Id: <20200923094650.1301166-8-imammedo@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
 hw/i386/acpi-build.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c
index 0e0535d2e3..b408d62560 100644
--- a/hw/i386/acpi-build.c
+++ b/hw/i386/acpi-build.c
@@ -95,6 +95,7 @@ typedef struct AcpiPmInfo {
     bool s3_disabled;
     bool s4_disabled;
     bool pcihp_bridge_en;
+    bool smi_on_cpuhp;
     uint8_t s4_val;
     AcpiFadtData fadt;
     uint16_t cpu_hp_io_base;
@@ -194,6 +195,7 @@ static void acpi_get_pm_info(MachineState *machine, AcpiPmInfo *pm)
     pm->cpu_hp_io_base = 0;
     pm->pcihp_io_base = 0;
     pm->pcihp_io_len = 0;
+    pm->smi_on_cpuhp = false;
 
     assert(obj);
     init_common_fadt_data(machine, obj, &pm->fadt);
@@ -207,12 +209,16 @@ static void acpi_get_pm_info(MachineState *machine, AcpiPmInfo *pm)
             object_property_get_uint(obj, ACPI_PCIHP_IO_LEN_PROP, NULL);
     }
     if (lpc) {
+        uint64_t smi_features = object_property_get_uint(lpc,
+            ICH9_LPC_SMI_NEGOTIATED_FEAT_PROP, NULL);
         struct AcpiGenericAddress r = { .space_id = AML_AS_SYSTEM_IO,
             .bit_width = 8, .address = ICH9_RST_CNT_IOPORT };
         pm->fadt.reset_reg = r;
         pm->fadt.reset_val = 0xf;
         pm->fadt.flags |= 1 << ACPI_FADT_F_RESET_REG_SUP;
         pm->cpu_hp_io_base = ICH9_CPU_HOTPLUG_IO_BASE;
+        pm->smi_on_cpuhp =
+            !!(smi_features & BIT_ULL(ICH9_LPC_SMI_F_CPU_HOTPLUG_BIT));
     }
 
     /* The above need not be conditional on machine type because the reset port
-- 
MST



^ permalink raw reply related	[flat|nested] 63+ messages in thread

* [PULL v4 28/48] x86: acpi: introduce the PCI0.SMI0 ACPI device
  2020-09-29  7:20 [PULL v4 00/48] virtio,pc,acpi: fixes, tests Michael S. Tsirkin
                   ` (25 preceding siblings ...)
  2020-09-29  7:22 ` [PULL v4 27/48] x86: acpi: introduce AcpiPmInfo::smi_on_cpuhp Michael S. Tsirkin
@ 2020-09-29  7:22 ` Michael S. Tsirkin
  2020-09-29  7:22 ` [PULL v4 29/48] x68: acpi: trigger SMI before sending hotplug Notify event to OSPM Michael S. Tsirkin
                   ` (24 subsequent siblings)
  51 siblings, 0 replies; 63+ messages in thread
From: Michael S. Tsirkin @ 2020-09-29  7:22 UTC (permalink / raw)
  To: qemu-devel
  Cc: Peter Maydell, Eduardo Habkost, Igor Mammedov, Paolo Bonzini,
	Laszlo Ersek, Richard Henderson

From: Igor Mammedov <imammedo@redhat.com>

When CPU hotplug with SMI has been negotiated, describe the SMI
register block in the DSDT. Pass the ACPI name of the SMI control
register to build_cpus_aml(), so that CPU_SCAN_METHOD can access the
register in the next patch.

Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
Tested-by: Laszlo Ersek <lersek@redhat.com>
Message-Id: <20200923094650.1301166-9-imammedo@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
 include/hw/acpi/cpu.h |  1 +
 hw/i386/acpi-build.c  | 29 ++++++++++++++++++++++++++++-
 2 files changed, 29 insertions(+), 1 deletion(-)

diff --git a/include/hw/acpi/cpu.h b/include/hw/acpi/cpu.h
index 62f0278ba2..0eeedaa491 100644
--- a/include/hw/acpi/cpu.h
+++ b/include/hw/acpi/cpu.h
@@ -50,6 +50,7 @@ void cpu_hotplug_hw_init(MemoryRegion *as, Object *owner,
 typedef struct CPUHotplugFeatures {
     bool acpi_1_compatible;
     bool has_legacy_cphp;
+    const char *smi_path;
 } CPUHotplugFeatures;
 
 void build_cpus_aml(Aml *table, MachineState *machine, CPUHotplugFeatures opts,
diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c
index b408d62560..b49d360ab2 100644
--- a/hw/i386/acpi-build.c
+++ b/hw/i386/acpi-build.c
@@ -1521,6 +1521,32 @@ build_dsdt(GArray *table_data, BIOSLinker *linker,
         aml_append(dev, aml_name_decl("_UID", aml_int(0)));
         aml_append(dev, build_q35_osc_method());
         aml_append(sb_scope, dev);
+
+        if (pm->smi_on_cpuhp) {
+            /* reserve SMI block resources, IO ports 0xB2, 0xB3 */
+            dev = aml_device("PCI0.SMI0");
+            aml_append(dev, aml_name_decl("_HID", aml_eisaid("PNP0A06")));
+            aml_append(dev, aml_name_decl("_UID", aml_string("SMI resources")));
+            crs = aml_resource_template();
+            aml_append(crs,
+                aml_io(
+                       AML_DECODE16,
+                       ACPI_PORT_SMI_CMD,
+                       ACPI_PORT_SMI_CMD,
+                       1,
+                       2)
+            );
+            aml_append(dev, aml_name_decl("_CRS", crs));
+            aml_append(dev, aml_operation_region("SMIR", AML_SYSTEM_IO,
+                aml_int(ACPI_PORT_SMI_CMD), 2));
+            field = aml_field("SMIR", AML_BYTE_ACC, AML_NOLOCK,
+                              AML_WRITE_AS_ZEROS);
+            aml_append(field, aml_named_field("SMIC", 8));
+            aml_append(field, aml_reserved_field(8));
+            aml_append(dev, field);
+            aml_append(sb_scope, dev);
+        }
+
         aml_append(dsdt, sb_scope);
 
         build_hpet_aml(dsdt);
@@ -1536,7 +1562,8 @@ build_dsdt(GArray *table_data, BIOSLinker *linker,
         build_legacy_cpu_hotplug_aml(dsdt, machine, pm->cpu_hp_io_base);
     } else {
         CPUHotplugFeatures opts = {
-            .acpi_1_compatible = true, .has_legacy_cphp = true
+            .acpi_1_compatible = true, .has_legacy_cphp = true,
+            .smi_path = pm->smi_on_cpuhp ? "\\_SB.PCI0.SMI0.SMIC" : NULL,
         };
         build_cpus_aml(dsdt, machine, opts, pm->cpu_hp_io_base,
                        "\\_SB.PCI0", "\\_GPE._E02");
-- 
MST



^ permalink raw reply related	[flat|nested] 63+ messages in thread

* [PULL v4 29/48] x68: acpi: trigger SMI before sending hotplug Notify event to OSPM
  2020-09-29  7:20 [PULL v4 00/48] virtio,pc,acpi: fixes, tests Michael S. Tsirkin
                   ` (26 preceding siblings ...)
  2020-09-29  7:22 ` [PULL v4 28/48] x86: acpi: introduce the PCI0.SMI0 ACPI device Michael S. Tsirkin
@ 2020-09-29  7:22 ` Michael S. Tsirkin
  2020-09-29  7:22 ` [PULL v4 30/48] tests: acpi: update acpi blobs with new AML Michael S. Tsirkin
                   ` (23 subsequent siblings)
  51 siblings, 0 replies; 63+ messages in thread
From: Michael S. Tsirkin @ 2020-09-29  7:22 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell, Laszlo Ersek, Igor Mammedov

From: Igor Mammedov <imammedo@redhat.com>

In case firmware has negotiated CPU hotplug SMI feature, generate
AML to describe SMI IO port region and send SMI to firmware
on each CPU hotplug SCI in case new CPUs were hotplugged.

Since new CPUs can be hotplugged while CPU_SCAN_METHOD is running
we can't send SMI before new CPUs are fetched from QEMU as it
could cause sending Notify to a CPU that firmware hasn't seen yet.
So fetch new CPUs into local cache first, then send SMI and
after that send Notify events to cached CPUs. This should ensure
that Notify is sent only to CPUs which were processed by firmware
first.
Any CPUs that were hotplugged after caching will be processed
by the next CPU_SCAN_METHOD, when pending SCI is handled.

Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
Tested-by: Laszlo Ersek <lersek@redhat.com>
Message-Id: <20200923094650.1301166-10-imammedo@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
 hw/acpi/cpu.c | 165 +++++++++++++++++++++++++++++++++++++++++---------
 1 file changed, 138 insertions(+), 27 deletions(-)

diff --git a/hw/acpi/cpu.c b/hw/acpi/cpu.c
index 3d6a500fb7..8dd4d8ebbf 100644
--- a/hw/acpi/cpu.c
+++ b/hw/acpi/cpu.c
@@ -14,6 +14,8 @@
 #define ACPI_CPU_CMD_DATA_OFFSET_RW 8
 #define ACPI_CPU_CMD_DATA2_OFFSET_R 0
 
+#define OVMF_CPUHP_SMI_CMD 4
+
 enum {
     CPHP_GET_NEXT_CPU_WITH_EVENT_CMD = 0,
     CPHP_OST_EVENT_CMD = 1,
@@ -321,6 +323,7 @@ const VMStateDescription vmstate_cpu_hotplug = {
 #define CPU_NOTIFY_METHOD "CTFY"
 #define CPU_EJECT_METHOD  "CEJ0"
 #define CPU_OST_METHOD    "COST"
+#define CPU_ADDED_LIST    "CNEW"
 
 #define CPU_ENABLED       "CPEN"
 #define CPU_SELECTOR      "CSEL"
@@ -465,42 +468,150 @@ void build_cpus_aml(Aml *table, MachineState *machine, CPUHotplugFeatures opts,
 
         method = aml_method(CPU_SCAN_METHOD, 0, AML_SERIALIZED);
         {
+            const uint8_t max_cpus_per_pass = 255;
             Aml *else_ctx;
-            Aml *while_ctx;
+            Aml *while_ctx, *while_ctx2;
             Aml *has_event = aml_local(0);
             Aml *dev_chk = aml_int(1);
             Aml *eject_req = aml_int(3);
             Aml *next_cpu_cmd = aml_int(CPHP_GET_NEXT_CPU_WITH_EVENT_CMD);
+            Aml *num_added_cpus = aml_local(1);
+            Aml *cpu_idx = aml_local(2);
+            Aml *uid = aml_local(3);
+            Aml *has_job = aml_local(4);
+            Aml *new_cpus = aml_name(CPU_ADDED_LIST);
 
             aml_append(method, aml_acquire(ctrl_lock, 0xFFFF));
-            aml_append(method, aml_store(one, has_event));
-            while_ctx = aml_while(aml_equal(has_event, one));
+
+            /*
+             * Windows versions newer than XP (including Windows 10/Windows
+             * Server 2019), do support* VarPackageOp but, it is cripled to hold
+             * the same elements number as old PackageOp.
+             * For compatibility with Windows XP (so it won't crash) use ACPI1.0
+             * PackageOp which can hold max 255 elements.
+             *
+             * use named package as old Windows don't support it in local var
+             */
+            aml_append(method, aml_name_decl(CPU_ADDED_LIST,
+                                             aml_package(max_cpus_per_pass)));
+
+            aml_append(method, aml_store(zero, uid));
+            aml_append(method, aml_store(one, has_job));
+            /*
+             * CPU_ADDED_LIST can hold limited number of elements, outer loop
+             * allows to process CPUs in batches which let us to handle more
+             * CPUs than CPU_ADDED_LIST can hold.
+             */
+            while_ctx2 = aml_while(aml_equal(has_job, one));
             {
-                 /* clear loop exit condition, ins_evt/rm_evt checks
-                  * will set it to 1 while next_cpu_cmd returns a CPU
-                  * with events */
-                 aml_append(while_ctx, aml_store(zero, has_event));
-                 aml_append(while_ctx, aml_store(next_cpu_cmd, cpu_cmd));
-                 ifctx = aml_if(aml_equal(ins_evt, one));
-                 {
-                     aml_append(ifctx,
-                         aml_call2(CPU_NOTIFY_METHOD, cpu_data, dev_chk));
-                     aml_append(ifctx, aml_store(one, ins_evt));
-                     aml_append(ifctx, aml_store(one, has_event));
-                 }
-                 aml_append(while_ctx, ifctx);
-                 else_ctx = aml_else();
-                 ifctx = aml_if(aml_equal(rm_evt, one));
-                 {
-                     aml_append(ifctx,
-                         aml_call2(CPU_NOTIFY_METHOD, cpu_data, eject_req));
-                     aml_append(ifctx, aml_store(one, rm_evt));
-                     aml_append(ifctx, aml_store(one, has_event));
-                 }
-                 aml_append(else_ctx, ifctx);
-                 aml_append(while_ctx, else_ctx);
+                aml_append(while_ctx2, aml_store(zero, has_job));
+
+                aml_append(while_ctx2, aml_store(one, has_event));
+                aml_append(while_ctx2, aml_store(zero, num_added_cpus));
+
+                /*
+                 * Scan CPUs, till there are CPUs with events or
+                 * CPU_ADDED_LIST capacity is exhausted
+                 */
+                while_ctx = aml_while(aml_land(aml_equal(has_event, one),
+                                      aml_lless(uid, aml_int(arch_ids->len))));
+                {
+                     /*
+                      * clear loop exit condition, ins_evt/rm_evt checks will
+                      * set it to 1 while next_cpu_cmd returns a CPU with events
+                      */
+                     aml_append(while_ctx, aml_store(zero, has_event));
+
+                     aml_append(while_ctx, aml_store(uid, cpu_selector));
+                     aml_append(while_ctx, aml_store(next_cpu_cmd, cpu_cmd));
+
+                     /*
+                      * wrap around case, scan is complete, exit loop.
+                      * It happens since events are not cleared in scan loop,
+                      * so next_cpu_cmd continues to find already processed CPUs
+                      */
+                     ifctx = aml_if(aml_lless(cpu_data, uid));
+                     {
+                         aml_append(ifctx, aml_break());
+                     }
+                     aml_append(while_ctx, ifctx);
+
+                     /*
+                      * if CPU_ADDED_LIST is full, exit inner loop and process
+                      * collected CPUs
+                      */
+                     ifctx = aml_if(
+                         aml_equal(num_added_cpus, aml_int(max_cpus_per_pass)));
+                     {
+                         aml_append(ifctx, aml_store(one, has_job));
+                         aml_append(ifctx, aml_break());
+                     }
+                     aml_append(while_ctx, ifctx);
+
+                     aml_append(while_ctx, aml_store(cpu_data, uid));
+                     ifctx = aml_if(aml_equal(ins_evt, one));
+                     {
+                         /* cache added CPUs to Notify/Wakeup later */
+                         aml_append(ifctx, aml_store(uid,
+                             aml_index(new_cpus, num_added_cpus)));
+                         aml_append(ifctx, aml_increment(num_added_cpus));
+                         aml_append(ifctx, aml_store(one, has_event));
+                     }
+                     aml_append(while_ctx, ifctx);
+                     else_ctx = aml_else();
+                     ifctx = aml_if(aml_equal(rm_evt, one));
+                     {
+                         aml_append(ifctx,
+                             aml_call2(CPU_NOTIFY_METHOD, uid, eject_req));
+                         aml_append(ifctx, aml_store(one, rm_evt));
+                         aml_append(ifctx, aml_store(one, has_event));
+                     }
+                     aml_append(else_ctx, ifctx);
+                     aml_append(while_ctx, else_ctx);
+                     aml_append(while_ctx, aml_increment(uid));
+                }
+                aml_append(while_ctx2, while_ctx);
+
+                /*
+                 * in case FW negotiated ICH9_LPC_SMI_F_CPU_HOTPLUG_BIT,
+                 * make upcall to FW, so it can pull in new CPUs before
+                 * OS is notified and wakes them up
+                 */
+                if (opts.smi_path) {
+                    ifctx = aml_if(aml_lgreater(num_added_cpus, zero));
+                    {
+                        aml_append(ifctx, aml_store(aml_int(OVMF_CPUHP_SMI_CMD),
+                            aml_name("%s", opts.smi_path)));
+                    }
+                    aml_append(while_ctx2, ifctx);
+                }
+
+                /* Notify OSPM about new CPUs and clear insert events */
+                aml_append(while_ctx2, aml_store(zero, cpu_idx));
+                while_ctx = aml_while(aml_lless(cpu_idx, num_added_cpus));
+                {
+                    aml_append(while_ctx,
+                        aml_store(aml_derefof(aml_index(new_cpus, cpu_idx)),
+                                  uid));
+                    aml_append(while_ctx,
+                        aml_call2(CPU_NOTIFY_METHOD, uid, dev_chk));
+                    aml_append(while_ctx, aml_store(uid, aml_debug()));
+                    aml_append(while_ctx, aml_store(uid, cpu_selector));
+                    aml_append(while_ctx, aml_store(one, ins_evt));
+                    aml_append(while_ctx, aml_increment(cpu_idx));
+                }
+                aml_append(while_ctx2, while_ctx);
+                /*
+                 * If another batch is needed, then it will resume scanning
+                 * exactly at -- and not after -- the last CPU that's currently
+                 * in CPU_ADDED_LIST. In other words, the last CPU in
+                 * CPU_ADDED_LIST is going to be re-checked. That's OK: we've
+                 * just cleared the insert event for *all* CPUs in
+                 * CPU_ADDED_LIST, including the last one. So the scan will
+                 * simply seek past it.
+                 */
             }
-            aml_append(method, while_ctx);
+            aml_append(method, while_ctx2);
             aml_append(method, aml_release(ctrl_lock));
         }
         aml_append(cpus_dev, method);
-- 
MST



^ permalink raw reply related	[flat|nested] 63+ messages in thread

* [PULL v4 30/48] tests: acpi: update acpi blobs with new AML
  2020-09-29  7:20 [PULL v4 00/48] virtio,pc,acpi: fixes, tests Michael S. Tsirkin
                   ` (27 preceding siblings ...)
  2020-09-29  7:22 ` [PULL v4 29/48] x68: acpi: trigger SMI before sending hotplug Notify event to OSPM Michael S. Tsirkin
@ 2020-09-29  7:22 ` Michael S. Tsirkin
  2020-09-29  7:22 ` [PULL v4 31/48] hw/smbios: support loading OEM strings values from a file Michael S. Tsirkin
                   ` (22 subsequent siblings)
  51 siblings, 0 replies; 63+ messages in thread
From: Michael S. Tsirkin @ 2020-09-29  7:22 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell, Igor Mammedov

From: Igor Mammedov <imammedo@redhat.com>

here is diff against tests/data/acpi/q35/DSDT
for currently shipped ovmf binary.
(once firmware blob is updated, it will negotiate CPU hotplug
feature which will ad extra hunk sending SMI and Q35 tests will
need to be updated), but otherwise diff shows new CPU hotplug
AML that is shared between q35 and pc machines.

             Method (CSCN, 0, Serialized)
             {
                 Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
-                Local0 = One
-                While ((Local0 == One))
-                {
-                    Local0 = Zero
-                    \_SB.PCI0.PRES.CCMD = Zero
-                    If ((\_SB.PCI0.PRES.CINS == One))
+                Name (CNEW, Package (0xFF){})
+                Local3 = Zero
+                Local4 = One
+                While ((Local4 == One))
+                {
+                    Local4 = Zero
+                    Local0 = One
+                    Local1 = Zero
+                    While (((Local0 == One) && (Local3 < One)))
                     {
-                        CTFY (\_SB.PCI0.PRES.CDAT, One)
-                        \_SB.PCI0.PRES.CINS = One
-                        Local0 = One
+                        Local0 = Zero
+                        \_SB.PCI0.PRES.CSEL = Local3
+                        \_SB.PCI0.PRES.CCMD = Zero
+                        If ((\_SB.PCI0.PRES.CDAT < Local3))
+                        {
+                            Break
+                        }
+
+                        If ((Local1 == 0xFF))
+                        {
+                            Local4 = One
+                            Break
+                        }
+
+                        Local3 = \_SB.PCI0.PRES.CDAT
+                        If ((\_SB.PCI0.PRES.CINS == One))
+                        {
+                            CNEW [Local1] = Local3
+                            Local1++
+                            Local0 = One
+                        }
+                        ElseIf ((\_SB.PCI0.PRES.CRMV == One))
+                        {
+                            CTFY (Local3, 0x03)
+                            \_SB.PCI0.PRES.CRMV = One
+                            Local0 = One
+                        }
+
+                        Local3++
                     }
-                    ElseIf ((\_SB.PCI0.PRES.CRMV == One))
+
+                    Local2 = Zero
+                    While ((Local2 < Local1))
                     {
-                        CTFY (\_SB.PCI0.PRES.CDAT, 0x03)
-                        \_SB.PCI0.PRES.CRMV = One
-                        Local0 = One
+                        Local3 = DerefOf (CNEW [Local2])
+                        CTFY (Local3, One)
+                        Debug = Local3
+                        \_SB.PCI0.PRES.CSEL = Local3
+                        \_SB.PCI0.PRES.CINS = One
+                        Local2++
                     }
                 }

Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Message-Id: <20200923094650.1301166-11-imammedo@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
 tests/qtest/bios-tables-test-allowed-diff.h |  19 -------------------
 tests/data/acpi/pc/DSDT                     | Bin 4934 -> 5060 bytes
 tests/data/acpi/pc/DSDT.acpihmat            | Bin 6258 -> 6385 bytes
 tests/data/acpi/pc/DSDT.bridge              | Bin 6793 -> 6919 bytes
 tests/data/acpi/pc/DSDT.cphp                | Bin 5397 -> 5524 bytes
 tests/data/acpi/pc/DSDT.dimmpxm             | Bin 6587 -> 6714 bytes
 tests/data/acpi/pc/DSDT.ipmikcs             | Bin 5006 -> 5132 bytes
 tests/data/acpi/pc/DSDT.memhp               | Bin 6293 -> 6419 bytes
 tests/data/acpi/pc/DSDT.numamem             | Bin 4940 -> 5066 bytes
 tests/data/acpi/q35/DSDT                    | Bin 7678 -> 7804 bytes
 tests/data/acpi/q35/DSDT.acpihmat           | Bin 9002 -> 9129 bytes
 tests/data/acpi/q35/DSDT.bridge             | Bin 7695 -> 7821 bytes
 tests/data/acpi/q35/DSDT.cphp               | Bin 8141 -> 8268 bytes
 tests/data/acpi/q35/DSDT.dimmpxm            | Bin 9331 -> 9458 bytes
 tests/data/acpi/q35/DSDT.ipmibt             | Bin 7753 -> 7879 bytes
 tests/data/acpi/q35/DSDT.memhp              | Bin 9037 -> 9163 bytes
 tests/data/acpi/q35/DSDT.mmio64             | Bin 8808 -> 8934 bytes
 tests/data/acpi/q35/DSDT.numamem            | Bin 7684 -> 7810 bytes
 tests/data/acpi/q35/DSDT.tis                | Bin 8283 -> 8409 bytes
 19 files changed, 19 deletions(-)

diff --git a/tests/qtest/bios-tables-test-allowed-diff.h b/tests/qtest/bios-tables-test-allowed-diff.h
index dba32d5613..dfb8523c8b 100644
--- a/tests/qtest/bios-tables-test-allowed-diff.h
+++ b/tests/qtest/bios-tables-test-allowed-diff.h
@@ -1,20 +1 @@
 /* List of comma-separated changed AML files to ignore */
-"tests/data/acpi/pc/DSDT",
-"tests/data/acpi/q35/DSDT",
-"tests/data/acpi/q35/DSDT.tis",
-"tests/data/acpi/q35/DSDT.bridge",
-"tests/data/acpi/q35/DSDT.mmio64",
-"tests/data/acpi/q35/DSDT.ipmibt",
-"tests/data/acpi/q35/DSDT.cphp",
-"tests/data/acpi/q35/DSDT.memhp",
-"tests/data/acpi/q35/DSDT.numamem",
-"tests/data/acpi/q35/DSDT.dimmpxm",
-"tests/data/acpi/q35/DSDT.acpihmat",
-"tests/data/acpi/pc/DSDT.bridge",
-"tests/data/acpi/pc/DSDT.ipmikcs",
-"tests/data/acpi/pc/DSDT.cphp",
-"tests/data/acpi/pc/DSDT.memhp",
-"tests/data/acpi/pc/DSDT.numamem",
-"tests/data/acpi/pc/DSDT.dimmpxm",
-"tests/data/acpi/pc/DSDT.acpihmat",
-"tests/data/acpi/pc/DSDT.acpihmat",
diff --git a/tests/data/acpi/pc/DSDT b/tests/data/acpi/pc/DSDT
index b121bb5bc124be522e233516efb17cdc94de5a75..4ca46e5a2bdb1dfab79dd8630aeeb9a386d8b30e 100644
GIT binary patch
delta 323
zcmX@6c0`@aCD<k8h%f^K<C%?ITiBSq>?R*zTg~KaJUN&BFO!?t<Qxu}dJbnl*Ki@G
z{{;-m1&k?+T!bd4FcvVR6fh<fFeEPW;h8WwfpKawP$;1wIYyr)KG-Qfz}eFvAjmb?
zIoQ>wfB{|5+1F)(_*8UJ7srs~r3*MGCvyD<TC=nOCSMOT3#4Fy%4C>0OxV*en6V(a
z1LVj=hSEf!vlf~!FvU<7<QvB59O4$4%*9;5h;9Z@5~!~<xqu;Qkt@s8q{M<|uz^Vo
e$<Ev$O+Xu>4GWSd>u{*D0xc{}+HA|o$prw{_+k$L

delta 193
zcmX@2eoT$aCD<jzO_+g!@xVr|Eo@9aW|I%Ft!DDqo}A16m&t=~at?<KUjbvnB1i7Y
z35*2{2?Y$34Y`E<7Pzxaj?rg{4|a+VaP~9^2yzW}_Vf#8bPjQgL>G5)3}Gx_L>C3B
l2AaFjn`MCq%VZl)NnLaWKy6&inEHZz!+`oW@8;y>0szAaHLw5x

diff --git a/tests/data/acpi/pc/DSDT.acpihmat b/tests/data/acpi/pc/DSDT.acpihmat
index b0dbb943f4cea83a5adde23aefa54f1678c560a1..35a74bce8cc152ecb615cb38c4b7f63c7c7d3ab3 100644
GIT binary patch
delta 304
zcmexl@X?UVCD<k8qXYv3W9LS$Eo@AlE|U+it!DDE+?>nK!N}<@<{a$o#}TbOnUO=-
z>HmKYXFu0)A*TNY49NwIDT`c%CZ{kKFr*YPCKNCvF7oA>Fgby7YBCp70YgGTa*RGp
ze6Uk|fU~DTK#*&&bFiz=<oO(8_2N^}Wn3IXl9w*voSew@A872-0&MaNR3@Vfd-?@4
z79@9o+?2>rnh12oLh}Wt7|Mct!x)`I+#-{?m<t$V^e3BeiYS&Q7ce9(a%GvClvvOV
kHX(^28LS9sVzgmF^5i;BRaT${rAd?HIm9-{af<K*0E&TJnE(I)

delta 209
zcmexp_{o6FCD<jTNP>ZZv2P>S7B(g?o5=^*Rx|k;Zq8-rVC3}Ra}IX)<A_$C%*Y|E
z_WyqYW5Oaw?#T&^1q=xV3^DpF@xe~<0nVNV0YR?8&d$Cr3*1>ID{_iTIET1JqD#9t
vhA>Xvz$xkvG-aVT%K{IU$>>Uge8U)VXysxqV8o&vXx8L-4zbO5IYsyZgN-`x

diff --git a/tests/data/acpi/pc/DSDT.bridge b/tests/data/acpi/pc/DSDT.bridge
index 7b6c7a47875fc73b03fbe88807890f3867ddba1a..803d7a8e839ea8b7ac33c4490459ddaede584269 100644
GIT binary patch
delta 323
zcmeA)Z8zg`33dr#mu6sK6xqnNg^kI}Zt?-P)l9y|lXKbsGP#LO&f$=$=WzCO4Hshi
zU%-%Dz?ibgMQCygV*x`-0b@b|L*gPIo(Yo^7^fx!g%S#qWAs_#gPr07oIMQ!f?R{0
zgI#?J7|;cseO(raPem7XaSTabx`1<XBG-SQHA@R%^7SyYKnfP9OooZWggyO&84Hp-
zK#ojgC`|-9YoYl9Qw(K6zF~~cA#Rb$T+9WG=w<*Vf%;053mB3Xxw1@6N-Ssw8<@n9
d?92_)1hgUAupoJ|4u>i$(8AKB&9<CAf&i#*V2}U+

delta 193
zcmZoS>onzZ33dtTlwx3D<lM-$g^kI_Z1MrN)lB}{lXKbsGI{V#&f$>ZD_~4m<j6fa
zfw6!gp@3nsA(yb<0(X|lG5Rd=!A|i3&YlJVL9W5ho_@iM&LM7*=;AJpA&do#=%PT?
kKyw#*vn=pnnQX%;sf(@vsEvymQ(us87*OBl-JCvx05hyLF#rGn

diff --git a/tests/data/acpi/pc/DSDT.cphp b/tests/data/acpi/pc/DSDT.cphp
index c0e8aa5b32d84f39e5d6c9a5024505f818707c12..8bab2f506409f2b025a63d8b91c7bfdaa931e626 100644
GIT binary patch
delta 251
zcmbQLHAS1tCD<ioiYNmEqrpb5Eo@9)(UT9bt!DBK*qqC5$;j?5<{a$o$1&NTLtK}`
z+0Qjxi0OX;LvjIQ$|6^x$tjEl3@HVS2?Y#^i+p(|Oio~&n#{#kz>rXoJo!Jn=;TWr
zB23~_Co^&i^CmA{z&SaQ>pxKE(gKi(OY#Dh$uasY@xe~<0nVNV0YR?8&Yph3j0MRZ
zAd3<iN)v%bFEn3ZilHpXH;mCa#4R#;ay+M$Vrg;#L((EwmZ?dJ1<hc+NeszgX`orr
ZhCsKh=Tv0{8eN(+c>;&n=6=pLZUB`uOrrn*

delta 220
zcmbQDJyna#CD<iIRFr{%(Q+f#7B(jD;K>KrRx|l|Y|dr3WMuc?a}IX)<CyHvArZis
zu*i{nasp!kLqY*Vj6O?zuv2`1v!_8okZZ8Bv#-kncb3WM!k&J?jLso$k?7(sjv<Vb
sA99NN7ceF)^k!M$fvGjfHw>3nF6IJ8bQ6Kffo4sfz#+DokE@Lv0MS-FWdHyG

diff --git a/tests/data/acpi/pc/DSDT.dimmpxm b/tests/data/acpi/pc/DSDT.dimmpxm
index 1649953b6cccb933e4a440dc56507dc9197c4a8a..e015b4594c96a6e0f34c0668e3383b9a91dff38e 100644
GIT binary patch
delta 308
zcmdmOyvu~kCD<jzN{WGjQF0^K7B(j5fXN5gRx`P|Zq8*_U}SO^o7~SKQ_tb-=Nc}=
z^uK^1xqvZck*m<;6vhIElmf<t0*1szzC05qCooP;=3*&eNGM2-(PxPdc8U*h_B03x
zat(G4cJ(P>Ko@lOby*-j6<yTDF(i5E0?x^aT>pXgEG>Y_^TW*oDOjK~`8<bcdO>mr
z$W@69rHMdyEHqzWIvL%#Am1=X=McBZWG?0cMl6y*eWl3-3`vVzS*9i>7BqtmOkzj|
c>tQTNjy5bvp6t(|%IfJCT$;2wfiqeF0OOlnivR!s

delta 210
zcmdmGvfG%;CD<iow<H4tqvA%cEo@9K9+MBSt!8q!-JHv=z{upmH@TlfroMnNVUZ*E
z<OIe7hJ*r!7=4!bV5j&1XHSEGAlG1LXJ3~E?ktnhg+2X(8J$DiBGJWN977lj7|}(6
os)4pF^k!M$fnn6-0!~hGbPYgbxR?tVCns_W1F3|~_c@~l0B9gOg#Z8m

diff --git a/tests/data/acpi/pc/DSDT.ipmikcs b/tests/data/acpi/pc/DSDT.ipmikcs
index 92748d49dcd418e4a734da47e8d5c0268aedfc29..ca6630e39f60ebd5c056f57c4c03fdb9d5467577 100644
GIT binary patch
delta 304
zcmeBE@6q6L33dtL5n*6pjNi!hhmFb0ZZZe^Y9?Rf$y?d~*1L&02Rr+5L@USWv&08G
z#RoWh8UzHn20I7%c>n*;;q2!cF2wY|fFZenF=dg9(Bu@x0)~_V#)JZf#6><l6DB7x
zPE7_1B@`s18xZX3Q^0^O=<MsVKzu4fG#Fx;i(^Rg(gmE86S@8a?O9rYP=JtMpfVX<
z*wZhVu^_nv<j6#Z(nO%M7Md?Goovr3$(TGjn^Q`$G`WBwX^|_-)TG3MX0W;>hGgdu
cw@9FylcNm_k|*!xRAmJkQ<}87m6MYT0IdjJEdT%j

delta 202
zcmeCt=u_u%33dtT6J}sw4B5!_hmFa{Y%&M?Y9@c}$y?d~vU~732Rr+5Ojh8M;ATu%
z<j6fafw6!gVKP6bSiL*T<QRRH_+Y2_0B28wfFRdkXHUOiM&}T>NOW-*#}LK>Ms!i2
n>H@}uh2AU+JTQ$4@(sgf6c;ndtjS9_MJ6xg65TAp^@S4v*7-NU

diff --git a/tests/data/acpi/pc/DSDT.memhp b/tests/data/acpi/pc/DSDT.memhp
index 4026772906e910af514beb76de6e4cca0bc2171b..43f4e114e2cc48c68c35af47303fa87c9255db40 100644
GIT binary patch
delta 323
zcmbPgIN6BHCD<iISdxK(aqmX1Eo@8<_LC2=t!8pInVif1m&r|Rat?<~J%_WOYq${8
z{{n{O0>+d@E<%%27z-Fu3K$a#7!nux@JyJTz&JG-D3nl;9HY+?AM6w#;OuD-5ab%{
z9PH{-z<@63?CY{Xd@8!Ai(^Rg(gmE86S@8atyx+Cldp%F1yZm;Wim`0ChX}K%vg}z
z0diy_Lun$=Sqse<m|`dk@(p8j4snZ2=3*{jL^lH{3Dj4bT)>dD$dzSkQer_f*uW%)
eWM^)WCZG+`h6Tx!bvRU6ffkk~ZMNl%;0FMI?qN#+

delta 193
zcmbPiG}VyHCD<iosssZA<ED*VTiBSK%qJgUTg~LEGdY+2FOvt~<Qxtez5>RCMULE)
z6Br8^5(*e58*&NzEpTU<9HY+?AM6w#;OuD-5ab%{?CBTG=p5n}i7xKq7{XY<h%O3L
l4K#P5H_HMKmdQ4plDg;$fZDj2G4%!ch5_|$-pv`o4*;<`HS7QY

diff --git a/tests/data/acpi/pc/DSDT.numamem b/tests/data/acpi/pc/DSDT.numamem
index 4d9ba337a82954af094e739b8a83467f89a37cc0..ba8f7e6c33f9eb0f7a080144fcb4a27d36aa04ae 100644
GIT binary patch
delta 323
zcmX@3c1oSgCD<k8lrRGWW7$ToEo@8<_LC2=t!8pInVif1m&r|Rat?<~J%_WOYq${8
z{{n{O0>+d@E<%%27z-Fu3K$a#7!nux@JyJTz&JG-D3nl;9HY+?AM6w#;OuD-5ab%{
z9PH{-z<@63?CY{Xd@8!Ai(^Rg(gmE86S@8atyx+Cldp%F1yZm;Wim`0ChX}K%vg}z
z0diy_Lun$=Sqse<m|`dk@(p8j4snZ2=3*{jL^lH{3Dj4bT)>dD$dzSkQer_f*uW%)
eWM^)WCZG+`h6Tx!bvRU6ffkk~ZMNm)=K=t6nPI;G

delta 193
zcmX@5enySUCD<jzN0@<uF>52&7B(g)^T`L;Rx`QkOwMKh%jCf~Ifp}ruYfUOkt6ry
z1jYh}gaU@ihFrpa3*1>I$LO=f2Rp?FIC~ld1i1z~d-?@4I)}JLqKmsYhA<W|qKg7m
l1I=CN&9cCQWwH&Yq%OJwpf)aMOnpJVVL*MGcXRS{0RV_rHDCY$

diff --git a/tests/data/acpi/q35/DSDT b/tests/data/acpi/q35/DSDT
index bba8884073a27427b88ac0d733c9c87330a59366..d6c26940b1a68d4184f6f2335924099aa28b130a 100644
GIT binary patch
delta 249
zcmexo{l|vOCD<jTMvj4jar;KD2@*_Rc9Z8wtY-2xp6n_4m)%XwIoR2cWAb}RaUBk4
zKi6;}rvC*D$pwrli(G^zr!W>Uq!chF6fh(%^5K~<Ie~F%GEgX?AbIk9NzutgQX)*^
zQztK!66Q@_x`1<XBG-SQ#-#-y5trlzDwAXMS>l78;scyL4FZB(gPlG7f*A{vJ3#g%
zGL$9)O<riez!XDSkZ%~HbBJ4H^5p+gQi`R?1q?}xTv?_jB^ES;^(HYSgQbCHMH>R$
W;xDbr3N*SjX|jQo*k*m{^GpEqI!~+s

delta 203
zcmexk^Us>gCD<k8pDY6d<C=|J6C{{?%qGu~Sk2_GJ=s(8FS`eybFi}?$K>~t63UDT
ziyXNpComQ;Bor{j=(EHJJH-b$dm01;xduBs`?@S}XPNv_N>su*#4QqC+Ql)1adLyS
rsDA-t!a{GB1s*Ju(Uk=GhB4yM%Ees3h($TjtjPvaVw=}WpJxI9Z#6rr

diff --git a/tests/data/acpi/q35/DSDT.acpihmat b/tests/data/acpi/q35/DSDT.acpihmat
index 9cac92418b5fcc2767dc74603d599642b59623fe..2b67045d6add69574499b97d938cca01949231b4 100644
GIT binary patch
delta 288
zcmZ4Gw$h!;CD<ior7{BpW64IY2@*`6E|cd-tY-4D-0UgI!N~3|<{a$o$1!=Lq<B4t
zv!83Y5YztxhU5aqltr#WlT#QA7*Yxt6ABm-7y0r`n4G{kHJOX4fFYqEIYyr)KG-Qf
zz}eFvAjmb?IoQ>wfB{|5+1F)(_*8UJ7srs~r3*MGCvyD<+OxC(DsKii3#4Fy%4BqX
zo_@iM1<4&CS0*x)CIa2H(0qaE<a<(*jLDO^q@@%~lM5J<7P+!aO-d|i2CGYANOlf!
bi%bUUi#9Aso*X5u$_g~5G-<PnG#dv1HTG7>

delta 203
zcmZ4KzRHcuCD<iIOPPUzv2r8V1PLZDo5^z|Rx|k;ZuXSqU}X2;a}IX)<Cr{AQi7W?
zVUZ*E<OIe7hJ?xMrNrvpStiHmv&08G#RoWh8UzHn20MHD1v5H_xJ9CiyEuk07BHfV
o0#z3<CM@)3S>S<bRFH2NE~B`ZL1s;MkrtWkC?mRghxA8w05}9VZU6uP

diff --git a/tests/data/acpi/q35/DSDT.bridge b/tests/data/acpi/q35/DSDT.bridge
index f08b7245f59aad491fcaa60e2bab1085c369ea1c..0f6c9c68c81cddd2126eea8a7c336b8667202223 100644
GIT binary patch
delta 249
zcmeCT>9yr@33dtTm1AIF4ByB#L4wK4Zt@(7)l9y|lRYK>vb%{n2Rr+5OnxsZuEXK%
z=Nc}=^uK^1xqvZck&Dpe6vhIElmf<t0*1szK0Fg9CooP;1_~t<Bu}0%DLT1GN`y&#
z>g0t|!o0~#7jRBa<oXZPxU>Ky;*z{TWpa!@OMI|Xe1Nm3K|qjeu(PLMFk?Y-2gsg8
zhSEf!$qUUFm|`dk@(p8j4snZ2p8Q`*O0hJ#fFWs-E6dcR#DZq9-Xw-(ur$!DXhWb|
W{H0Y{fku}mO*W7c+pI7BfC&KA`%aPo

delta 203
zcmeCR?YH4_33dtLmt$aH^xnudL4wK0Z1Nn5)lB}{lRYK>vU~732Rr+5OnxsZq0E@D
z$dP+;0%HL~LIFdJK1+PCQ+$B4r$IoFYp}Dkugd~=mdPKbL?xU<+#=DXT^vIgCpSoo
q`WG-JEc9ks;K4E(T}hB{7$Xj?T+9WGSd;_Jnrt8?wt21e1112)r8$rQ

diff --git a/tests/data/acpi/q35/DSDT.cphp b/tests/data/acpi/q35/DSDT.cphp
index 57d859cef9fa16a8f125c4b338611c8472699f38..d7bedee7ff638f11b3bb84ef960364b409a49cce 100644
GIT binary patch
delta 306
zcmX?Wf5w5!CD<jzM}dKXQF<fS1PLau=*e>=Rx|kqZ1$A2WUO}=a}IX)<A_#{(PxPd
zc8U*h_B03xat(G4@bUitpTpVDHC%}4e*r^s0b|M{SE0!%j0FrS1&j#=42g?;c_vIw
zV4RxF#a6(OP>_snLa?h(0Ry_Av#-kn@u_gp5U6b~jv>iQ7jRBa<oXY^XlVgl0h0Uz
zmC5MBo_@iM1<4&CS0*x)CIa2H(0qaEWPWK$#^lM?(o%}0$ps8ai(FZzCM6a$gViN5
fBs+(=MJ5CFMH?0*PwtjhWd#~jnzT7ox`G7&GO=B7

delta 199
zcmX@(aMqs7CD<k8tULn)qv}Sk2@*`+!IS4mtY-4_*z753$;j@(=N#<p$1(Y%v;;R}
z!XiiR$q9@F3<;ATNQu?EvrLZBXNeDXiVtx1GzbWC4R-eQ3ubf<af?J3cX141EMP<z
k1*$G!Ojzj6vcLn=s36}kTt;y*gUp&-DlM}4igX1F09eU5u>b%7

diff --git a/tests/data/acpi/q35/DSDT.dimmpxm b/tests/data/acpi/q35/DSDT.dimmpxm
index 9d5bd5744e2ba2e0f6126c3aba0bb36af865e499..13e80ae2e5c7606a7260d4cb3ab776488d0697d6 100644
GIT binary patch
delta 325
zcmezD@yV0RCD<k8lL`X^<MWMN6C{|N118UrSk2_-y4h1wfsx5wY;v}gOg)FQpKG`f
z)Bgg7<O0T&MXo}VQy2>vQVJLo3K$X>`SMJdoWM9WnTw@>A)z2SMxP}<*eO21+0!5(
z$TiqG*wv?i0bS79*JXkDRCG}n$B^Wu3pghya{UL|v$OyzUk^76q+o%{WORL=e!+|d
z$sHh9CNh*J0^POHe1R#3vLN3uM&}T>$Yd_&0!DN*fRaFcrO5>hNsC-rrY0p8G=mLH
eVo2rzYXaI3ZCH>zSzAh#6=-2;(q<cJb4~zS_+p&^

delta 194
zcmez5`PqZZCD<jTScQRs@!dwQ2@*^$9+T%ttY&hz-Rvo;z{upmH#u8MhOdAzVUZ*E
z<OIe7hJ*r!$%Zn*ehb`LCdcTr#0NXY2RM5g1O&MTJA3*CGdhR3MWTzlIEFA5FrteB
mRRhgk=*_aggJrUfw4^S&0-!c7W=wrSzF|Opn|Di_a{>Sy^)^ue

diff --git a/tests/data/acpi/q35/DSDT.ipmibt b/tests/data/acpi/q35/DSDT.ipmibt
index 5cd11de6a8fe47324e5f922823a22746882f19f5..9a1b635dab776fb25e378a00e6ca0cadf9902c25 100644
GIT binary patch
delta 286
zcmX?UbKI88CD<k8xEuom<LixFw<Vao>?S{#Sk2^XJb8-bUv@V!=U`_)j>#7##p^ko
z{anL^nEn?qBo{EIEOHT=oWfYZkW#>yP{5G5$cJab<OIg4$v~lmg5(%|miS<&_yA{5
zgMc8{VCP_0p8^JSL1$l=1>#fDMO_?2l9w*voSew@A85_e0+_rh%q)<C1uBza;xJ)P
zzhK6K<PMM{6B$YqfzDcJzQA;{oU|lk@?<Y*DaF#{0*0hTt}IiN5(}Ea>XI0eokQFr
afo@KYHY`Y<JWE=Y6=+Op(&iNDr%V8%Ct5cE

delta 182
zcmX?Zd(wu>CD<jzQ;vaw@%~1x+Y(GZW|N;wtY-4po;*eJFS`eybFi}?$K;EW65Nal
ziyXNpComQ;BusuMCFbYOGC4+{B|g|GKET=2ARx#!*xA!Bn9(`JEfQVa#W94jfDv63
lsJehLVWBt60uPqSlN+UlC2(n;Tq`X#xj{yB^LObBOaQB)Hktqc

diff --git a/tests/data/acpi/q35/DSDT.memhp b/tests/data/acpi/q35/DSDT.memhp
index 05a7a73ec43130d5c3018bb462fd84981bfb151c..55ce4e2293624c2c0725c3bbaaa7ec29acfccfc9 100644
GIT binary patch
delta 249
zcmX@>cG{iGCD<k8v@!z&<I0U(6C{`%>?hBWSk2^YGTBq|FT0zVbFi}?$K>~t;yN78
zey-s{O#cfQk_#A97P$ybPGKxyNGV`UC}2oj<ij&zasuPjWS~$&LGtAJlA@D~q(qp+
zr%qldCCr<=bOGn&M6UlpjY|taA}+}bR3^vhv&08G#RoWh8UzHn20MHD1v3^TcYy3k
zWGGDpn!M0_fhmTvAm1=X=McBZ<jMb~q!de&3mB3Xxw1@6N-Ssw>rG-v21^6YiZ%qg
W#a~*L6=-y6(qscEvCaC@avT8KEKcbF

delta 203
zcmX@@e%6i4CD<jzSDAr<aqdR02@*_B=9A}0tY&i6nd~X~m)(QUIoR2cWAb}R31!BF
zMULE)6Br8^5(*e%^jYGAo#F$WJq-eaT!WpReO(r~vrPUdB`V<@;ueW6?cx~1IJrSu
q)W3i+VWBt60uPqS=t_co!x(XB<zg;i#G)K%)?@=IvCV6x<v0MCY&quu

diff --git a/tests/data/acpi/q35/DSDT.mmio64 b/tests/data/acpi/q35/DSDT.mmio64
index efd3f1188f2b55da1514212d4be081a61c2a96e9..99b7b2ae4ba36b8ca7901626c1561d29100087d2 100644
GIT binary patch
delta 249
zcmaFi^30XXCD<k8nGyp7W9mk(2@*^W_LJvGtY&gHnd~X~m)%XwIoR2cWAb}RaUBk4
zKi6;}rvC*D$pwrli(G^zr!W>Uq!chF6fh(%^5K~<Ie~F%GEgX?AbIk9NzutgQX)*^
zQztK!66Q@_x`1<XBG-SQ#-#-y5trlzDwAXMS>l78;scyL4FZB(gPlG7f*A{vJ3#g%
zGL$9)O<riez!XDSkZ%~HbBJ4H^5p+gQi`R?1q?}xTv?_jB^ES;^(HYSgQbCHMH>R$
W;xDbr3N*SjX|jQo*k*lcOLhR{%1;Xb

delta 203
zcmaFn`oe|FCD<h-Ly3WbF>)i<1PLZ5^T~50Rx`QkO!k!g%kIJF9PI4JG5Niugfe5o
zB1i7Y35*2{2?Y!>`YiFmPVoWGo(2IyuEEaEzAg*gStfs!5|wZcaf?Kkc5w`0oZKKS
q>R-T^u+W=jfd|WEbR|K)VT?GmaxoV$Vo?q>YqEiq*ygp;mh1qbnmP#p

diff --git a/tests/data/acpi/q35/DSDT.numamem b/tests/data/acpi/q35/DSDT.numamem
index 1978b55f1255402bf9bade0b91150b5cb49789a4..2b2433cc13ec3110abbc8440a0b1ad8c487edb6c 100644
GIT binary patch
delta 249
zcmZp%X|m;V33dr-l4D?COx(ydL4wJ_e)1fN)lAMNlRYK>vb%{n2Rr+5OnxsZuEXK%
z=Nc}=^uK^1xqvZck&Dpe6vhIElmf<t0*1szK0Fg9CooP;1_~t<Bu}0%DLT1GN`y&#
z>g0t|!o0~#7jRBa<oXZPxU>Ky;*z{TWpa!@OMI|Xe1Nm3K|qjeu(PLMFk?Y-2gsg8
zhSEf!$qUUFm|`dk@(p8j4snZ2p8Q`*O0hJ#fFWs-E6dcR#DZq9-Xw-(ur$!DXhWb|
W{H0Y{fku}mO*W7c+pI5rl?ec^mQG#(

delta 203
zcmZp&ZL#5U33dr#kz-(B4Bf~zL4wK2eDWNL)l9BBlRYK>vU~732Rr+5OnxsZq0E@D
z$dP+;0%HL~LIFdJK1+PCQ+$B4r$IoFYp}Dkugd~=mdPKbL?xU<+#=DXT^vIgCpSoo
q`WG-JEc9ks;K4E(T}hB{7$Xj?T+9WGSd;_Jnrt8?wt21eRVDzYo;h3q

diff --git a/tests/data/acpi/q35/DSDT.tis b/tests/data/acpi/q35/DSDT.tis
index 638de3872673d17b1958497d0e62c83653de1602..dd06ee4c348930b0684827ca05747b4f65dbd6b2 100644
GIT binary patch
delta 249
zcmccZaMO{?CD<k8rUC;4<AjY|6C{|t>?Y5VSk2^XJlRw7FT0zVbFi}?$K>~t;yN78
zey-s{O#cfQk_#A97P$ybPGKxyNGV`UC}2oj<ij&zasuPjWS~$&LGtAJlA@D~q(qp+
zr%qldCCr<=bOGn&M6UlpjY|taA}+}bR3^vhv&08G#RoWh8UzHn20MHD1v3^TcYy3k
zWGGDpn!M0_fhmTvAm1=X=McBZ<jMb~q!de&3mB3Xxw1@6N-Ssw>rG-v21^6YiZ%qg
W#a~*L6=-y6(qscEvCaC@I;;Tg4o?UG

delta 203
zcmccVc-w)?CD<h-T7iLqv1KFI1PLY|v&nNLRx|l)Pxh4j%kIJF9PI4JG5Niugfe5o
zB1i7Y35*2{2?Y!>`YiFmPVoWGo(2IyuEEaEzAg*gStfs!5|wZcaf?Kkc5w`0oZKKS
q>R-T^u+W=jfd|WEbR|K)VT?GmaxoV$Vo?q>YqEiq*ygp;I;;SvwmJp?

-- 
MST



^ permalink raw reply related	[flat|nested] 63+ messages in thread

* [PULL v4 31/48] hw/smbios: support loading OEM strings values from a file
  2020-09-29  7:20 [PULL v4 00/48] virtio,pc,acpi: fixes, tests Michael S. Tsirkin
                   ` (28 preceding siblings ...)
  2020-09-29  7:22 ` [PULL v4 30/48] tests: acpi: update acpi blobs with new AML Michael S. Tsirkin
@ 2020-09-29  7:22 ` Michael S. Tsirkin
  2020-09-29  7:22 ` [PULL v4 32/48] hw/smbios: report error if table size is too large Michael S. Tsirkin
                   ` (21 subsequent siblings)
  51 siblings, 0 replies; 63+ messages in thread
From: Michael S. Tsirkin @ 2020-09-29  7:22 UTC (permalink / raw)
  To: qemu-devel
  Cc: Peter Maydell, Igor Mammedov, Daniel P. Berrangé,
	Laszlo Ersek, Philippe Mathieu-Daudé

From: Daniel P. Berrangé <berrange@redhat.com>

Some applications want to pass quite large values for the OEM strings
entries. Rather than having huge strings on the command line, it would
be better to load them from a file, as supported with -fw_cfg.

This introduces the "path" parameter allowing for:

  $ echo -n "thisthing" > mydata.txt
  $ qemu-system-x86_64 \
    -smbios type=11,value=something \
    -smbios type=11,path=mydata.txt \
    -smbios type=11,value=somemore \
    ...other args...

Now in the guest

$ dmidecode -t 11
Getting SMBIOS data from sysfs.
SMBIOS 2.8 present.

Handle 0x0E00, DMI type 11, 5 bytes
OEM Strings
	String 1: something
	String 2: thisthing
	String 3: somemore

Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
Message-Id: <20200923133804.2089190-2-berrange@redhat.com>
Tested-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
 hw/smbios/smbios.c | 71 +++++++++++++++++++++++++++++++++++++---------
 1 file changed, 58 insertions(+), 13 deletions(-)

diff --git a/hw/smbios/smbios.c b/hw/smbios/smbios.c
index 7cc950b41c..d993448087 100644
--- a/hw/smbios/smbios.c
+++ b/hw/smbios/smbios.c
@@ -110,7 +110,7 @@ static struct {
 
 static struct {
     size_t nvalues;
-    const char **values;
+    char **values;
 } type11;
 
 static struct {
@@ -314,6 +314,11 @@ static const QemuOptDesc qemu_smbios_type11_opts[] = {
         .type = QEMU_OPT_STRING,
         .help = "OEM string data",
     },
+    {
+        .name = "path",
+        .type = QEMU_OPT_STRING,
+        .help = "OEM string data from file",
+    },
 };
 
 static const QemuOptDesc qemu_smbios_type17_opts[] = {
@@ -641,6 +646,8 @@ static void smbios_build_type_11_table(void)
 
     for (i = 0; i < type11.nvalues; i++) {
         SMBIOS_TABLE_SET_STR_LIST(11, type11.values[i]);
+        g_free(type11.values[i]);
+        type11.values[i] = NULL;
     }
 
     SMBIOS_BUILD_TABLE_POST;
@@ -940,9 +947,8 @@ static void save_opt(const char **dest, QemuOpts *opts, const char *name)
 
 
 struct opt_list {
-    const char *name;
     size_t *ndest;
-    const char ***dest;
+    char ***dest;
 };
 
 static int save_opt_one(void *opaque,
@@ -951,23 +957,60 @@ static int save_opt_one(void *opaque,
 {
     struct opt_list *opt = opaque;
 
-    if (!g_str_equal(name, opt->name)) {
-        return 0;
+    if (g_str_equal(name, "path")) {
+        g_autoptr(GByteArray) data = g_byte_array_new();
+        g_autofree char *buf = g_new(char, 4096);
+        ssize_t ret;
+        int fd = qemu_open(value, O_RDONLY, errp);
+        if (fd < 0) {
+            return -1;
+        }
+
+        while (1) {
+            ret = read(fd, buf, 4096);
+            if (ret == 0) {
+                break;
+            }
+            if (ret < 0) {
+                error_setg(errp, "Unable to read from %s: %s",
+                           value, strerror(errno));
+                return -1;
+            }
+            if (memchr(buf, '\0', ret)) {
+                error_setg(errp, "NUL in OEM strings value in %s", value);
+                return -1;
+            }
+            g_byte_array_append(data, (guint8 *)buf, ret);
+        }
+
+        close(fd);
+
+        *opt->dest = g_renew(char *, *opt->dest, (*opt->ndest) + 1);
+        (*opt->dest)[*opt->ndest] = (char *)g_byte_array_free(data,  FALSE);
+        (*opt->ndest)++;
+        data = NULL;
+   } else if (g_str_equal(name, "value")) {
+        *opt->dest = g_renew(char *, *opt->dest, (*opt->ndest) + 1);
+        (*opt->dest)[*opt->ndest] = g_strdup(value);
+        (*opt->ndest)++;
+    } else if (!g_str_equal(name, "type")) {
+        error_setg(errp, "Unexpected option %s", name);
+        return -1;
     }
 
-    *opt->dest = g_renew(const char *, *opt->dest, (*opt->ndest) + 1);
-    (*opt->dest)[*opt->ndest] = value;
-    (*opt->ndest)++;
     return 0;
 }
 
-static void save_opt_list(size_t *ndest, const char ***dest,
-                          QemuOpts *opts, const char *name)
+static bool save_opt_list(size_t *ndest, char ***dest, QemuOpts *opts,
+                          Error **errp)
 {
     struct opt_list opt = {
-        name, ndest, dest,
+        ndest, dest,
     };
-    qemu_opt_foreach(opts, save_opt_one, &opt, NULL);
+    if (!qemu_opt_foreach(opts, save_opt_one, &opt, errp)) {
+        return false;
+    }
+    return true;
 }
 
 void smbios_entry_add(QemuOpts *opts, Error **errp)
@@ -1149,7 +1192,9 @@ void smbios_entry_add(QemuOpts *opts, Error **errp)
             if (!qemu_opts_validate(opts, qemu_smbios_type11_opts, errp)) {
                 return;
             }
-            save_opt_list(&type11.nvalues, &type11.values, opts, "value");
+            if (!save_opt_list(&type11.nvalues, &type11.values, opts, errp)) {
+                return;
+            }
             return;
         case 17:
             if (!qemu_opts_validate(opts, qemu_smbios_type17_opts, errp)) {
-- 
MST



^ permalink raw reply related	[flat|nested] 63+ messages in thread

* [PULL v4 32/48] hw/smbios: report error if table size is too large
  2020-09-29  7:20 [PULL v4 00/48] virtio,pc,acpi: fixes, tests Michael S. Tsirkin
                   ` (29 preceding siblings ...)
  2020-09-29  7:22 ` [PULL v4 31/48] hw/smbios: support loading OEM strings values from a file Michael S. Tsirkin
@ 2020-09-29  7:22 ` Michael S. Tsirkin
  2020-09-29  7:22 ` [PULL v4 33/48] qemu-options: document SMBIOS type 11 settings Michael S. Tsirkin
                   ` (20 subsequent siblings)
  51 siblings, 0 replies; 63+ messages in thread
From: Michael S. Tsirkin @ 2020-09-29  7:22 UTC (permalink / raw)
  To: qemu-devel
  Cc: Peter Maydell, Philippe Mathieu-Daudé,
	Daniel P. Berrangé,
	Laszlo Ersek, Igor Mammedov

From: Daniel P. Berrangé <berrange@redhat.com>

The SMBIOS 2.1 entry point uses a uint16 data type for reporting the
total length of the tables. If the user passes -smbios configuration to
QEMU that causes the table size to exceed this limit then various bad
behaviours result, including

 - firmware hangs in an infinite loop
 - firmware triggers a KVM crash on bad memory access
 - firmware silently discards user's SMBIOS data replacing it with
   a generic data set.

Limiting the size to 0xffff in QEMU avoids triggering most of these
problems. There is a remaining bug in SeaBIOS which tries to prepend its
own data for table 0, and does not check whether there is sufficient
space before attempting this.

Reviewed-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
Message-Id: <20200923133804.2089190-3-berrange@redhat.com>
Tested-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
 hw/smbios/smbios.c | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/hw/smbios/smbios.c b/hw/smbios/smbios.c
index d993448087..8b30906e50 100644
--- a/hw/smbios/smbios.c
+++ b/hw/smbios/smbios.c
@@ -365,6 +365,13 @@ static void smbios_register_config(void)
 
 opts_init(smbios_register_config);
 
+/*
+ * The SMBIOS 2.1 "structure table length" field in the
+ * entry point uses a 16-bit integer, so we're limited
+ * in total table size
+ */
+#define SMBIOS_21_MAX_TABLES_LEN 0xffff
+
 static void smbios_validate_table(MachineState *ms)
 {
     uint32_t expect_t4_count = smbios_legacy ?
@@ -375,6 +382,13 @@ static void smbios_validate_table(MachineState *ms)
                      expect_t4_count, smbios_type4_count);
         exit(1);
     }
+
+    if (smbios_ep_type == SMBIOS_ENTRY_POINT_21 &&
+        smbios_tables_len > SMBIOS_21_MAX_TABLES_LEN) {
+        error_report("SMBIOS 2.1 table length %zu exceeds %d",
+                     smbios_tables_len, SMBIOS_21_MAX_TABLES_LEN);
+        exit(1);
+    }
 }
 
 
-- 
MST



^ permalink raw reply related	[flat|nested] 63+ messages in thread

* [PULL v4 33/48] qemu-options: document SMBIOS type 11 settings
  2020-09-29  7:20 [PULL v4 00/48] virtio,pc,acpi: fixes, tests Michael S. Tsirkin
                   ` (30 preceding siblings ...)
  2020-09-29  7:22 ` [PULL v4 32/48] hw/smbios: report error if table size is too large Michael S. Tsirkin
@ 2020-09-29  7:22 ` Michael S. Tsirkin
  2020-09-29  7:22 ` [PULL v4 34/48] vhost-user: save features of multiqueues if chardev is closed Michael S. Tsirkin
                   ` (19 subsequent siblings)
  51 siblings, 0 replies; 63+ messages in thread
From: Michael S. Tsirkin @ 2020-09-29  7:22 UTC (permalink / raw)
  To: qemu-devel
  Cc: Peter Maydell, Jason Wang, Paolo Bonzini, Daniel P. Berrangé,
	Philippe Mathieu-Daudé

From: Daniel P. Berrangé <berrange@redhat.com>

Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
Message-Id: <20200923133804.2089190-4-berrange@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
 qemu-options.hx | 41 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 41 insertions(+)

diff --git a/qemu-options.hx b/qemu-options.hx
index 47f64be0c0..3564c2303f 100644
--- a/qemu-options.hx
+++ b/qemu-options.hx
@@ -2296,6 +2296,8 @@ DEF("smbios", HAS_ARG, QEMU_OPTION_smbios,
     "-smbios type=4[,sock_pfx=str][,manufacturer=str][,version=str][,serial=str]\n"
     "              [,asset=str][,part=str][,max-speed=%d][,current-speed=%d]\n"
     "                specify SMBIOS type 4 fields\n"
+    "-smbios type=11[,value=str][,path=filename]\n"
+    "                specify SMBIOS type 11 fields\n"
     "-smbios type=17[,loc_pfx=str][,bank=str][,manufacturer=str][,serial=str]\n"
     "               [,asset=str][,part=str][,speed=%d]\n"
     "                specify SMBIOS type 17 fields\n",
@@ -2319,6 +2321,45 @@ SRST
 ``-smbios type=4[,sock_pfx=str][,manufacturer=str][,version=str][,serial=str][,asset=str][,part=str]``
     Specify SMBIOS type 4 fields
 
+``-smbios type=11[,value=str][,path=filename]``
+    Specify SMBIOS type 11 fields
+
+    This argument can be repeated multiple times, and values are added in the order they are parsed.
+    Applications intending to use OEM strings data are encouraged to use their application name as
+    a prefix for the value string. This facilitates passing information for multiple applications
+    concurrently.
+
+    The ``value=str`` syntax provides the string data inline, while the ``path=filename`` syntax
+    loads data from a file on disk. Note that the file is not permitted to contain any NUL bytes.
+
+    Both the ``value`` and ``path`` options can be repeated multiple times and will be added to
+    the SMBIOS table in the order in which they appear.
+
+    Note that on the x86 architecture, the total size of all SMBIOS tables is limited to 65535
+    bytes. Thus the OEM strings data is not suitable for passing large amounts of data into the
+    guest. Instead it should be used as a indicator to inform the guest where to locate the real
+    data set, for example, by specifying the serial ID of a block device.
+
+    An example passing three strings is
+
+    .. parsed-literal::
+
+        -smbios type=11,value=cloud-init:ds=nocloud-net;s=http://10.10.0.1:8000/,\\
+                        value=anaconda:method=http://dl.fedoraproject.org/pub/fedora/linux/releases/25/x86_64/os,\\
+                        path=/some/file/with/oemstringsdata.txt
+
+    In the guest OS this is visible with the ``dmidecode`` command
+
+     .. parsed-literal::
+
+         $ dmidecode -t 11
+         Handle 0x0E00, DMI type 11, 5 bytes
+         OEM Strings
+              String 1: cloud-init:ds=nocloud-net;s=http://10.10.0.1:8000/
+              String 2: anaconda:method=http://dl.fedoraproject.org/pub/fedora/linux/releases/25/x86_64/os
+              String 3: myapp:some extra data
+
+
 ``-smbios type=17[,loc_pfx=str][,bank=str][,manufacturer=str][,serial=str][,asset=str][,part=str][,speed=%d]``
     Specify SMBIOS type 17 fields
 ERST
-- 
MST



^ permalink raw reply related	[flat|nested] 63+ messages in thread

* [PULL v4 34/48] vhost-user: save features of multiqueues if chardev is closed
  2020-09-29  7:20 [PULL v4 00/48] virtio,pc,acpi: fixes, tests Michael S. Tsirkin
                   ` (31 preceding siblings ...)
  2020-09-29  7:22 ` [PULL v4 33/48] qemu-options: document SMBIOS type 11 settings Michael S. Tsirkin
@ 2020-09-29  7:22 ` Michael S. Tsirkin
  2021-05-12  7:58   ` Michael S. Tsirkin
  2020-09-29  7:22 ` [PULL v4 35/48] tests/acpi: mark addition of table DSDT.roothp for unit testing root pci hotplug Michael S. Tsirkin
                   ` (18 subsequent siblings)
  51 siblings, 1 reply; 63+ messages in thread
From: Michael S. Tsirkin @ 2020-09-29  7:22 UTC (permalink / raw)
  To: qemu-devel
  Cc: Peter Maydell, Jason Wang, haibinzhang(张海斌)

From: haibinzhang(张海斌) <haibinzhang@tencent.com>

Fore-commit(c6beefd674) only saves features of queue0,
this makes wrong features of other queues in multiqueues
situation.
For examples:
  qemu-system-aarch64 ... \
  -chardev socket,id=charnet0,path=/var/run/vhost_sock \
  -netdev vhost-user,chardev=charnet0,queues=2,id=hostnet0 \
  ...
There are two queues in nic assocated with one chardev.
When chardev is reconnected, it is necessary to save and
restore features of all queues.

Signed-of-by: Haibin Zhang <haibinzhang@tencent.com>
Message-Id: <46CBC206-E0CA-4249-81CD-10F75DA30441@tencent.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
 net/vhost-user.c | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/net/vhost-user.c b/net/vhost-user.c
index 17532daaf3..ffbd94d944 100644
--- a/net/vhost-user.c
+++ b/net/vhost-user.c
@@ -226,7 +226,7 @@ static void chr_closed_bh(void *opaque)
     NetClientState *ncs[MAX_QUEUE_NUM];
     NetVhostUserState *s;
     Error *err = NULL;
-    int queues;
+    int queues, i;
 
     queues = qemu_find_net_clients_except(name, ncs,
                                           NET_CLIENT_DRIVER_NIC,
@@ -235,8 +235,12 @@ static void chr_closed_bh(void *opaque)
 
     s = DO_UPCAST(NetVhostUserState, nc, ncs[0]);
 
-    if (s->vhost_net) {
-        s->acked_features = vhost_net_get_acked_features(s->vhost_net);
+    for (i = queues -1; i >= 0; i--) {
+        s = DO_UPCAST(NetVhostUserState, nc, ncs[i]);
+
+        if (s->vhost_net) {
+            s->acked_features = vhost_net_get_acked_features(s->vhost_net);
+        }
     }
 
     qmp_set_link(name, false, &err);
-- 
MST



^ permalink raw reply related	[flat|nested] 63+ messages in thread

* [PULL v4 35/48] tests/acpi: mark addition of table DSDT.roothp for unit testing root pci hotplug
  2020-09-29  7:20 [PULL v4 00/48] virtio,pc,acpi: fixes, tests Michael S. Tsirkin
                   ` (32 preceding siblings ...)
  2020-09-29  7:22 ` [PULL v4 34/48] vhost-user: save features of multiqueues if chardev is closed Michael S. Tsirkin
@ 2020-09-29  7:22 ` Michael S. Tsirkin
  2020-09-29  7:22 ` [PULL v4 36/48] tests/acpi: add new unit test to test hotplug off/on feature on the root pci bus Michael S. Tsirkin
                   ` (17 subsequent siblings)
  51 siblings, 0 replies; 63+ messages in thread
From: Michael S. Tsirkin @ 2020-09-29  7:22 UTC (permalink / raw)
  To: qemu-devel; +Cc: Ani Sinha, Peter Maydell, Igor Mammedov

From: Ani Sinha <ani@anisinha.ca>

A new binary acpi table tests/data/acpi/pc/DSDT.roothp is added in order to
unit test the feature flag that can disable/enable root pci bus hotplug on
i440fx. This feature was added with the commit:
3d7e78aa7777f0 ("Introduce a new flag for i440fx to disable PCI hotplug on
the root bus")

This change documents the fact that this new file addition was made as a part
of the unit test change.

Signed-off-by: Ani Sinha <ani@anisinha.ca>
Reviewed-by: Igor Mammedov <imammedo@redhat.com>
Message-Id: <20200918084111.15339-2-ani@anisinha.ca>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
 tests/qtest/bios-tables-test-allowed-diff.h | 1 +
 1 file changed, 1 insertion(+)

diff --git a/tests/qtest/bios-tables-test-allowed-diff.h b/tests/qtest/bios-tables-test-allowed-diff.h
index dfb8523c8b..ac864fc982 100644
--- a/tests/qtest/bios-tables-test-allowed-diff.h
+++ b/tests/qtest/bios-tables-test-allowed-diff.h
@@ -1 +1,2 @@
 /* List of comma-separated changed AML files to ignore */
+"tests/data/acpi/pc/DSDT.roothp",
-- 
MST



^ permalink raw reply related	[flat|nested] 63+ messages in thread

* [PULL v4 36/48] tests/acpi: add new unit test to test hotplug off/on feature on the root pci bus
  2020-09-29  7:20 [PULL v4 00/48] virtio,pc,acpi: fixes, tests Michael S. Tsirkin
                   ` (33 preceding siblings ...)
  2020-09-29  7:22 ` [PULL v4 35/48] tests/acpi: mark addition of table DSDT.roothp for unit testing root pci hotplug Michael S. Tsirkin
@ 2020-09-29  7:22 ` Michael S. Tsirkin
  2020-09-29  7:22 ` [PULL v4 37/48] tests/acpi: add a new ACPI table in order to test root pci hotplug on/off Michael S. Tsirkin
                   ` (16 subsequent siblings)
  51 siblings, 0 replies; 63+ messages in thread
From: Michael S. Tsirkin @ 2020-09-29  7:22 UTC (permalink / raw)
  To: qemu-devel
  Cc: Laurent Vivier, Peter Maydell, Thomas Huth, Igor Mammedov,
	Ani Sinha, Paolo Bonzini

From: Ani Sinha <ani@anisinha.ca>

Ability to turn hotplug off on the pci root bus for i440fx was added in commit:
3d7e78aa7777f0 ("Introduce a new flag for i440fx to disable PCI hotplug on the
root bus")

This change adds a unit test in order to test this feature.

Signed-off-by: Ani Sinha <ani@anisinha.ca>
Reviewed-by: Igor Mammedov <imammedo@redhat.com>
Message-Id: <20200918084111.15339-3-ani@anisinha.ca>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
 tests/qtest/bios-tables-test.c | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/tests/qtest/bios-tables-test.c b/tests/qtest/bios-tables-test.c
index a9c8d478ae..bc932d0b9f 100644
--- a/tests/qtest/bios-tables-test.c
+++ b/tests/qtest/bios-tables-test.c
@@ -742,6 +742,20 @@ static void test_acpi_piix4_tcg_bridge(void)
     free_test_data(&data);
 }
 
+static void test_acpi_piix4_no_root_hotplug(void)
+{
+    test_data data;
+
+    memset(&data, 0, sizeof(data));
+    data.machine = MACHINE_PC;
+    data.variant = ".roothp";
+    data.required_struct_types = base_required_struct_types;
+    data.required_struct_types_len = ARRAY_SIZE(base_required_struct_types);
+    test_acpi_one("-global PIIX4_PM.acpi-root-pci-hotplug=off "
+                  "-device pci-bridge,chassis_nr=1", &data);
+    free_test_data(&data);
+}
+
 static void test_acpi_q35_tcg(void)
 {
     test_data data;
@@ -1160,6 +1174,8 @@ int main(int argc, char *argv[])
         qtest_add_func("acpi/q35/tpm-tis", test_acpi_q35_tcg_tpm_tis);
         qtest_add_func("acpi/piix4", test_acpi_piix4_tcg);
         qtest_add_func("acpi/piix4/bridge", test_acpi_piix4_tcg_bridge);
+        qtest_add_func("acpi/piix4/pci-hotplug/no_root_hotplug",
+                       test_acpi_piix4_no_root_hotplug);
         qtest_add_func("acpi/q35", test_acpi_q35_tcg);
         qtest_add_func("acpi/q35/bridge", test_acpi_q35_tcg_bridge);
         qtest_add_func("acpi/q35/mmio64", test_acpi_q35_tcg_mmio64);
-- 
MST



^ permalink raw reply related	[flat|nested] 63+ messages in thread

* [PULL v4 37/48] tests/acpi: add a new ACPI table in order to test root pci hotplug on/off
  2020-09-29  7:20 [PULL v4 00/48] virtio,pc,acpi: fixes, tests Michael S. Tsirkin
                   ` (34 preceding siblings ...)
  2020-09-29  7:22 ` [PULL v4 36/48] tests/acpi: add new unit test to test hotplug off/on feature on the root pci bus Michael S. Tsirkin
@ 2020-09-29  7:22 ` Michael S. Tsirkin
  2020-09-29  7:22 ` [PULL v4 38/48] Fix a gap where acpi_pcihp_find_hotplug_bus() returns a non-hotpluggable bus Michael S. Tsirkin
                   ` (15 subsequent siblings)
  51 siblings, 0 replies; 63+ messages in thread
From: Michael S. Tsirkin @ 2020-09-29  7:22 UTC (permalink / raw)
  To: qemu-devel; +Cc: Ani Sinha, Peter Maydell, Igor Mammedov

From: Ani Sinha <ani@anisinha.ca>

A new binary ACPI table tests/data/acpi/pc/DSDT.roothp is added in order
to unit test hotplug on/off capability on the root pci bus for i440fx.
The diff between the table DSDT.bridge and DSDT.roothp is listed below:

@@ -1,30 +1,30 @@
 /*
  * Intel ACPI Component Architecture
  * AML/ASL+ Disassembler version 20180105 (64-bit version)
  * Copyright (c) 2000 - 2018 Intel Corporation
  *
  * Disassembling to symbolic ASL+ operators
  *
- * Disassembly of tests/data/acpi/pc/DSDT.bridge, Fri Sep 11 22:51:04 2020
+ * Disassembly of /tmp/aml-UGIHQ0, Fri Sep 11 22:51:04 2020
  *
  * Original Table Header:
  *     Signature        "DSDT"
- *     Length           0x00001A89 (6793)
+ *     Length           0x0000140A (5130)
  *     Revision         0x01 **** 32-bit table (V1), no 64-bit math support
- *     Checksum         0x09
+ *     Checksum         0xE6
  *     OEM ID           "BOCHS "
  *     OEM Table ID     "BXPCDSDT"
  *     OEM Revision     0x00000001 (1)
  *     Compiler ID      "BXPC"
  *     Compiler Version 0x00000001 (1)
  */
 DefinitionBlock ("", "DSDT", 1, "BOCHS ", "BXPCDSDT", 0x00000001)
 {
     Scope (\)
     {
         OperationRegion (DBG, SystemIO, 0x0402, One)
         Field (DBG, ByteAcc, NoLock, Preserve)
         {
             DBGB,   8
         }

@@ -831,61 +831,60 @@
             Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
             {
                 IO (Decode16,
                     0x0510,             // Range Minimum
                     0x0510,             // Range Maximum
                     0x01,               // Alignment
                     0x0C,               // Length
                     )
             })
         }
     }

     Scope (\_SB)
     {
         Scope (PCI0)
         {
-            Name (BSEL, Zero)
             Device (S00)
             {
                 Name (_ADR, Zero)  // _ADR: Address
             }

             Device (S10)
             {
                 Name (_ADR, 0x00020000)  // _ADR: Address
                 Method (_S1D, 0, NotSerialized)  // _S1D: S1 Device State
                 {
                     Return (Zero)
                 }

                 Method (_S2D, 0, NotSerialized)  // _S2D: S2 Device State
                 {
                     Return (Zero)
                 }

                 Method (_S3D, 0, NotSerialized)  // _S3D: S3 Device State
                 {
                     Return (Zero)
                 }
             }

             Device (S18)
             {
                 Name (_ADR, 0x00030000)  // _ADR: Address
-                Name (BSEL, One)
+                Name (BSEL, Zero)
                 Device (S00)
                 {
                     Name (_SUN, Zero)  // _SUN: Slot User Number
                     Name (_ADR, Zero)  // _ADR: Address
                     Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
                     {
                         PCEJ (BSEL, _SUN)
                     }
                 }

                 Device (S08)
                 {
                     Name (_SUN, One)  // _SUN: Slot User Number
                     Name (_ADR, 0x00010000)  // _ADR: Address
                     Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
                     {
@@ -1345,456 +1344,30 @@
                         Notify (SE8, Arg1)
                     }

                     If ((Arg0 & 0x40000000))
                     {
                         Notify (SF0, Arg1)
                     }

                     If ((Arg0 & 0x80000000))
                     {
                         Notify (SF8, Arg1)
                     }
                 }

                 Method (PCNT, 0, NotSerialized)
                 {
-                    BNUM = One
+                    BNUM = Zero
                     DVNT (PCIU, One)
                     DVNT (PCID, 0x03)
                 }
             }

-            Device (S20)
-            {
-                Name (_SUN, 0x04)  // _SUN: Slot User Number
-                Name (_ADR, 0x00040000)  // _ADR: Address
-                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                {
-                    PCEJ (BSEL, _SUN)
-                }
-            }
-
-            Device (S28)
-            {
-                Name (_SUN, 0x05)  // _SUN: Slot User Number
-                Name (_ADR, 0x00050000)  // _ADR: Address
-                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                {
-                    PCEJ (BSEL, _SUN)
-                }
-            }
-
-            Device (S30)
-            {
-                Name (_SUN, 0x06)  // _SUN: Slot User Number
-                Name (_ADR, 0x00060000)  // _ADR: Address
-                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                {
-                    PCEJ (BSEL, _SUN)
-                }
-            }
-
-            Device (S38)
-            {
-                Name (_SUN, 0x07)  // _SUN: Slot User Number
-                Name (_ADR, 0x00070000)  // _ADR: Address
-                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                {
-                    PCEJ (BSEL, _SUN)
-                }
-            }
-
-            Device (S40)
-            {
-                Name (_SUN, 0x08)  // _SUN: Slot User Number
-                Name (_ADR, 0x00080000)  // _ADR: Address
-                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                {
-                    PCEJ (BSEL, _SUN)
-                }
-            }
-
-            Device (S48)
-            {
-                Name (_SUN, 0x09)  // _SUN: Slot User Number
-                Name (_ADR, 0x00090000)  // _ADR: Address
-                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                {
-                    PCEJ (BSEL, _SUN)
-                }
-            }
-
-            Device (S50)
-            {
-                Name (_SUN, 0x0A)  // _SUN: Slot User Number
-                Name (_ADR, 0x000A0000)  // _ADR: Address
-                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                {
-                    PCEJ (BSEL, _SUN)
-                }
-            }
-
-            Device (S58)
-            {
-                Name (_SUN, 0x0B)  // _SUN: Slot User Number
-                Name (_ADR, 0x000B0000)  // _ADR: Address
-                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                {
-                    PCEJ (BSEL, _SUN)
-                }
-            }
-
-            Device (S60)
-            {
-                Name (_SUN, 0x0C)  // _SUN: Slot User Number
-                Name (_ADR, 0x000C0000)  // _ADR: Address
-                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                {
-                    PCEJ (BSEL, _SUN)
-                }
-            }
-
-            Device (S68)
-            {
-                Name (_SUN, 0x0D)  // _SUN: Slot User Number
-                Name (_ADR, 0x000D0000)  // _ADR: Address
-                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                {
-                    PCEJ (BSEL, _SUN)
-                }
-            }
-
-            Device (S70)
-            {
-                Name (_SUN, 0x0E)  // _SUN: Slot User Number
-                Name (_ADR, 0x000E0000)  // _ADR: Address
-                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                {
-                    PCEJ (BSEL, _SUN)
-                }
-            }
-
-            Device (S78)
-            {
-                Name (_SUN, 0x0F)  // _SUN: Slot User Number
-                Name (_ADR, 0x000F0000)  // _ADR: Address
-                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                {
-                    PCEJ (BSEL, _SUN)
-                }
-            }
-
-            Device (S80)
-            {
-                Name (_SUN, 0x10)  // _SUN: Slot User Number
-                Name (_ADR, 0x00100000)  // _ADR: Address
-                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                {
-                    PCEJ (BSEL, _SUN)
-                }
-            }
-
-            Device (S88)
-            {
-                Name (_SUN, 0x11)  // _SUN: Slot User Number
-                Name (_ADR, 0x00110000)  // _ADR: Address
-                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                {
-                    PCEJ (BSEL, _SUN)
-                }
-            }
-
-            Device (S90)
-            {
-                Name (_SUN, 0x12)  // _SUN: Slot User Number
-                Name (_ADR, 0x00120000)  // _ADR: Address
-                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                {
-                    PCEJ (BSEL, _SUN)
-                }
-            }
-
-            Device (S98)
-            {
-                Name (_SUN, 0x13)  // _SUN: Slot User Number
-                Name (_ADR, 0x00130000)  // _ADR: Address
-                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                {
-                    PCEJ (BSEL, _SUN)
-                }
-            }
-
-            Device (SA0)
-            {
-                Name (_SUN, 0x14)  // _SUN: Slot User Number
-                Name (_ADR, 0x00140000)  // _ADR: Address
-                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                {
-                    PCEJ (BSEL, _SUN)
-                }
-            }
-
-            Device (SA8)
-            {
-                Name (_SUN, 0x15)  // _SUN: Slot User Number
-                Name (_ADR, 0x00150000)  // _ADR: Address
-                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                {
-                    PCEJ (BSEL, _SUN)
-                }
-            }
-
-            Device (SB0)
-            {
-                Name (_SUN, 0x16)  // _SUN: Slot User Number
-                Name (_ADR, 0x00160000)  // _ADR: Address
-                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                {
-                    PCEJ (BSEL, _SUN)
-                }
-            }
-
-            Device (SB8)
-            {
-                Name (_SUN, 0x17)  // _SUN: Slot User Number
-                Name (_ADR, 0x00170000)  // _ADR: Address
-                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                {
-                    PCEJ (BSEL, _SUN)
-                }
-            }
-
-            Device (SC0)
-            {
-                Name (_SUN, 0x18)  // _SUN: Slot User Number
-                Name (_ADR, 0x00180000)  // _ADR: Address
-                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                {
-                    PCEJ (BSEL, _SUN)
-                }
-            }
-
-            Device (SC8)
-            {
-                Name (_SUN, 0x19)  // _SUN: Slot User Number
-                Name (_ADR, 0x00190000)  // _ADR: Address
-                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                {
-                    PCEJ (BSEL, _SUN)
-                }
-            }
-
-            Device (SD0)
-            {
-                Name (_SUN, 0x1A)  // _SUN: Slot User Number
-                Name (_ADR, 0x001A0000)  // _ADR: Address
-                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                {
-                    PCEJ (BSEL, _SUN)
-                }
-            }
-
-            Device (SD8)
-            {
-                Name (_SUN, 0x1B)  // _SUN: Slot User Number
-                Name (_ADR, 0x001B0000)  // _ADR: Address
-                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                {
-                    PCEJ (BSEL, _SUN)
-                }
-            }
-
-            Device (SE0)
-            {
-                Name (_SUN, 0x1C)  // _SUN: Slot User Number
-                Name (_ADR, 0x001C0000)  // _ADR: Address
-                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                {
-                    PCEJ (BSEL, _SUN)
-                }
-            }
-
-            Device (SE8)
-            {
-                Name (_SUN, 0x1D)  // _SUN: Slot User Number
-                Name (_ADR, 0x001D0000)  // _ADR: Address
-                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                {
-                    PCEJ (BSEL, _SUN)
-                }
-            }
-
-            Device (SF0)
-            {
-                Name (_SUN, 0x1E)  // _SUN: Slot User Number
-                Name (_ADR, 0x001E0000)  // _ADR: Address
-                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                {
-                    PCEJ (BSEL, _SUN)
-                }
-            }
-
-            Device (SF8)
-            {
-                Name (_SUN, 0x1F)  // _SUN: Slot User Number
-                Name (_ADR, 0x001F0000)  // _ADR: Address
-                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                {
-                    PCEJ (BSEL, _SUN)
-                }
-            }
-
-            Method (DVNT, 2, NotSerialized)
-            {
-                If ((Arg0 & 0x10))
-                {
-                    Notify (S20, Arg1)
-                }
-
-                If ((Arg0 & 0x20))
-                {
-                    Notify (S28, Arg1)
-                }
-
-                If ((Arg0 & 0x40))
-                {
-                    Notify (S30, Arg1)
-                }
-
-                If ((Arg0 & 0x80))
-                {
-                    Notify (S38, Arg1)
-                }
-
-                If ((Arg0 & 0x0100))
-                {
-                    Notify (S40, Arg1)
-                }
-
-                If ((Arg0 & 0x0200))
-                {
-                    Notify (S48, Arg1)
-                }
-
-                If ((Arg0 & 0x0400))
-                {
-                    Notify (S50, Arg1)
-                }
-
-                If ((Arg0 & 0x0800))
-                {
-                    Notify (S58, Arg1)
-                }
-
-                If ((Arg0 & 0x1000))
-                {
-                    Notify (S60, Arg1)
-                }
-
-                If ((Arg0 & 0x2000))
-                {
-                    Notify (S68, Arg1)
-                }
-
-                If ((Arg0 & 0x4000))
-                {
-                    Notify (S70, Arg1)
-                }
-
-                If ((Arg0 & 0x8000))
-                {
-                    Notify (S78, Arg1)
-                }
-
-                If ((Arg0 & 0x00010000))
-                {
-                    Notify (S80, Arg1)
-                }
-
-                If ((Arg0 & 0x00020000))
-                {
-                    Notify (S88, Arg1)
-                }
-
-                If ((Arg0 & 0x00040000))
-                {
-                    Notify (S90, Arg1)
-                }
-
-                If ((Arg0 & 0x00080000))
-                {
-                    Notify (S98, Arg1)
-                }
-
-                If ((Arg0 & 0x00100000))
-                {
-                    Notify (SA0, Arg1)
-                }
-
-                If ((Arg0 & 0x00200000))
-                {
-                    Notify (SA8, Arg1)
-                }
-
-                If ((Arg0 & 0x00400000))
-                {
-                    Notify (SB0, Arg1)
-                }
-
-                If ((Arg0 & 0x00800000))
-                {
-                    Notify (SB8, Arg1)
-                }
-
-                If ((Arg0 & 0x01000000))
-                {
-                    Notify (SC0, Arg1)
-                }
-
-                If ((Arg0 & 0x02000000))
-                {
-                    Notify (SC8, Arg1)
-                }
-
-                If ((Arg0 & 0x04000000))
-                {
-                    Notify (SD0, Arg1)
-                }
-
-                If ((Arg0 & 0x08000000))
-                {
-                    Notify (SD8, Arg1)
-                }
-
-                If ((Arg0 & 0x10000000))
-                {
-                    Notify (SE0, Arg1)
-                }
-
-                If ((Arg0 & 0x20000000))
-                {
-                    Notify (SE8, Arg1)
-                }
-
-                If ((Arg0 & 0x40000000))
-                {
-                    Notify (SF0, Arg1)
-                }
-
-                If ((Arg0 & 0x80000000))
-                {
-                    Notify (SF8, Arg1)
-                }
-            }
-
             Method (PCNT, 0, NotSerialized)
             {
-                BNUM = Zero
-                DVNT (PCIU, One)
-                DVNT (PCID, 0x03)
                 ^S18.PCNT ()
             }
         }
     }
 }

Signed-off-by: Ani Sinha <ani@anisinha.ca>
Acked-by: Igor Mammedov <imammedo@redhat.com>
Message-Id: <20200918084111.15339-4-ani@anisinha.ca>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
 tests/qtest/bios-tables-test-allowed-diff.h |   1 -
 tests/data/acpi/pc/DSDT.roothp              | Bin 0 -> 5130 bytes
 2 files changed, 1 deletion(-)
 create mode 100644 tests/data/acpi/pc/DSDT.roothp

diff --git a/tests/qtest/bios-tables-test-allowed-diff.h b/tests/qtest/bios-tables-test-allowed-diff.h
index ac864fc982..dfb8523c8b 100644
--- a/tests/qtest/bios-tables-test-allowed-diff.h
+++ b/tests/qtest/bios-tables-test-allowed-diff.h
@@ -1,2 +1 @@
 /* List of comma-separated changed AML files to ignore */
-"tests/data/acpi/pc/DSDT.roothp",
diff --git a/tests/data/acpi/pc/DSDT.roothp b/tests/data/acpi/pc/DSDT.roothp
new file mode 100644
index 0000000000000000000000000000000000000000..886a5e6952f6f034bdd80d44d43de5975a1a4b0f
GIT binary patch
literal 5130
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

literal 0
HcmV?d00001

-- 
MST



^ permalink raw reply related	[flat|nested] 63+ messages in thread

* [PULL v4 38/48] Fix a gap where acpi_pcihp_find_hotplug_bus() returns a non-hotpluggable bus
  2020-09-29  7:20 [PULL v4 00/48] virtio,pc,acpi: fixes, tests Michael S. Tsirkin
                   ` (35 preceding siblings ...)
  2020-09-29  7:22 ` [PULL v4 37/48] tests/acpi: add a new ACPI table in order to test root pci hotplug on/off Michael S. Tsirkin
@ 2020-09-29  7:22 ` Michael S. Tsirkin
  2020-09-29  7:22 ` [PULL v4 39/48] i440fx/acpi: do not add hotplug related amls for cold plugged bridges Michael S. Tsirkin
                   ` (14 subsequent siblings)
  51 siblings, 0 replies; 63+ messages in thread
From: Michael S. Tsirkin @ 2020-09-29  7:22 UTC (permalink / raw)
  To: qemu-devel; +Cc: Ani Sinha, Peter Maydell, Igor Mammedov

From: Ani Sinha <ani@anisinha.ca>

When ACPI hotplug for the root bus is disabled, the bsel property for that
bus is not set. Please see the following commit:

3d7e78aa7777f ("Introduce a new flag for i440fx to disable PCI hotplug on the
root bus").

As a result, when acpi_pcihp_find_hotplug_bus() is called
with bsel set to 0, it may return the root bus. This can cause devices
attached to the root bus to get hot-unplugged if the user issues the following
set of commmands:

outl 0xae10 0
outl 0xae08 your_slot

Thanks to Julia for pointing this out here:
https://www.mail-archive.com/qemu-devel@nongnu.org/msg734548.html

In this patch, we fix the issue in this function by checking if the bus which
is returned by the function is actually hotpluggable. If not, we simply return
NULL. This avoids the scenario where we were returning a non-hotpluggable bus.

Signed-off-by: Ani Sinha <ani@anisinha.ca>
Reviewed-by: Igor Mammedov <imammedo@redhat.com>
Message-Id: <20200918084111.15339-5-ani@anisinha.ca>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
 hw/acpi/pcihp.c | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/hw/acpi/pcihp.c b/hw/acpi/pcihp.c
index 39b1f74442..32ae8b2c0a 100644
--- a/hw/acpi/pcihp.c
+++ b/hw/acpi/pcihp.c
@@ -147,6 +147,21 @@ static PCIBus *acpi_pcihp_find_hotplug_bus(AcpiPciHpState *s, int bsel)
     if (!bsel && !find.bus) {
         find.bus = s->root;
     }
+
+    /*
+     * Check if find.bus is actually hotpluggable. If bsel is set to
+     * NULL for example on the root bus in order to make it
+     * non-hotpluggable, find.bus will match the root bus when bsel
+     * is 0. See acpi_pcihp_test_hotplug_bus() above. Since the
+     * bus is not hotpluggable however, we should not select the bus.
+     * Instead, we should set find.bus to NULL in that case. In the check
+     * below, we generalize this case for all buses, not just the root bus.
+     * The callers of this function check for a null return value and
+     * handle them appropriately.
+     */
+    if (find.bus && !qbus_is_hotpluggable(BUS(find.bus))) {
+        find.bus = NULL;
+    }
     return find.bus;
 }
 
-- 
MST



^ permalink raw reply related	[flat|nested] 63+ messages in thread

* [PULL v4 39/48] i440fx/acpi: do not add hotplug related amls for cold plugged bridges
  2020-09-29  7:20 [PULL v4 00/48] virtio,pc,acpi: fixes, tests Michael S. Tsirkin
                   ` (36 preceding siblings ...)
  2020-09-29  7:22 ` [PULL v4 38/48] Fix a gap where acpi_pcihp_find_hotplug_bus() returns a non-hotpluggable bus Michael S. Tsirkin
@ 2020-09-29  7:22 ` Michael S. Tsirkin
  2020-09-29  7:22 ` [PULL v4 40/48] tests/acpi: list added acpi table binary file for pci bridge hotplug test Michael S. Tsirkin
                   ` (13 subsequent siblings)
  51 siblings, 0 replies; 63+ messages in thread
From: Michael S. Tsirkin @ 2020-09-29  7:22 UTC (permalink / raw)
  To: qemu-devel
  Cc: Peter Maydell, Eduardo Habkost, Julia Suvorova, Igor Mammedov,
	Ani Sinha, Paolo Bonzini, Richard Henderson

From: Ani Sinha <ani@anisinha.ca>

Cold plugged bridges are not hot unpluggable, even when their hotplug
property (acpi-pci-hotplug-with-bridge-support) is turned off. Please see
the function acpi_pcihp_pc_no_hotplug(). However, with
the current implementaton, Windows would try to hot-unplug a pci bridge when
it's hotplug switch is off. This is regardless of whether there are devices
attached to the bridge. This is because we add ACPI code like _EJ0 etc for the
pci slot where the bridge is cold plugged.

In this fix, we identify a cold plugged bridge and for cold plugged bridges,
we do not add the appropriate ACPI methods that are used by the OS
to identify a hot-pluggable/unpluggable pci device. After this change, Windows
does not detect the cold plugged pci bridge as ejectable.

As a result of the patch, the following are the changes to the DSDT ACPI
table:

@@ -858,38 +858,33 @@
                     Return (Zero)
                 }

                 Method (_S2D, 0, NotSerialized)  // _S2D: S2 Device State
                 {
                     Return (Zero)
                 }

                 Method (_S3D, 0, NotSerialized)  // _S3D: S3 Device State
                 {
                     Return (Zero)
                 }
             }

             Device (S18)
             {
-                Name (_SUN, 0x03)  // _SUN: Slot User Number
                 Name (_ADR, 0x00030000)  // _ADR: Address
-                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                {
-                    PCEJ (BSEL, _SUN)
-                }
             }

             Device (S20)
             {
                 Name (_SUN, 0x04)  // _SUN: Slot User Number
                 Name (_ADR, 0x00040000)  // _ADR: Address
                 Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
                 {
                     PCEJ (BSEL, _SUN)
                 }
             }

             Device (S28)
             {
                 Name (_SUN, 0x05)  // _SUN: Slot User Number
                 Name (_ADR, 0x00050000)  // _ADR: Address
@@ -1148,37 +1143,32 @@
                     PCEJ (BSEL, _SUN)
                 }
             }

             Device (SF8)
             {
                 Name (_SUN, 0x1F)  // _SUN: Slot User Number
                 Name (_ADR, 0x001F0000)  // _ADR: Address
                 Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
                 {
                     PCEJ (BSEL, _SUN)
                 }
             }

             Method (DVNT, 2, NotSerialized)
             {
-                If ((Arg0 & 0x08))
-                {
-                    Notify (S18, Arg1)
-                }
-
                 If ((Arg0 & 0x10))
                 {
                     Notify (S20, Arg1)
                 }

                 If ((Arg0 & 0x20))
                 {
                     Notify (S28, Arg1)
                 }

                 If ((Arg0 & 0x40))
                 {
                     Notify (S30, Arg1)
                 }

                 If ((Arg0 & 0x80))

While at it, I have also updated a stale comment.

Signed-off-by: Ani Sinha <ani@anisinha.ca>
Suggested-by: Julia Suvorova <jusual@redhat.com>
Reviewed-by: Julia Suvorova <jusual@redhat.com>
Reviewed-by: Igor Mammedov <imammedo@redhat.com>
Message-Id: <20200918084111.15339-6-ani@anisinha.ca>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
 hw/i386/acpi-build.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c
index b49d360ab2..2b17843837 100644
--- a/hw/i386/acpi-build.c
+++ b/hw/i386/acpi-build.c
@@ -365,6 +365,7 @@ static void build_append_pci_bus_devices(Aml *parent_scope, PCIBus *bus,
         int slot = PCI_SLOT(i);
         bool hotplug_enabled_dev;
         bool bridge_in_acpi;
+        bool cold_plugged_bridge;
 
         if (!pdev) {
             if (bsel) { /* add hotplug slots for non present devices */
@@ -386,15 +387,14 @@ static void build_append_pci_bus_devices(Aml *parent_scope, PCIBus *bus,
         pc = PCI_DEVICE_GET_CLASS(pdev);
         dc = DEVICE_GET_CLASS(pdev);
 
-        /* When hotplug for bridges is enabled, bridges are
-         * described in ACPI separately (see build_pci_bus_end).
-         * In this case they aren't themselves hot-pluggable.
+        /*
+         * Cold plugged bridges aren't themselves hot-pluggable.
          * Hotplugged bridges *are* hot-pluggable.
          */
-        bridge_in_acpi = pc->is_bridge && pcihp_bridge_en &&
-            !DEVICE(pdev)->hotplugged;
+        cold_plugged_bridge = pc->is_bridge && !DEVICE(pdev)->hotplugged;
+        bridge_in_acpi =  cold_plugged_bridge && pcihp_bridge_en;
 
-        hotplug_enabled_dev = bsel && dc->hotpluggable && !bridge_in_acpi;
+        hotplug_enabled_dev = bsel && dc->hotpluggable && !cold_plugged_bridge;
 
         if (pc->class_id == PCI_CLASS_BRIDGE_ISA) {
             continue;
-- 
MST



^ permalink raw reply related	[flat|nested] 63+ messages in thread

* [PULL v4 40/48] tests/acpi: list added acpi table binary file for pci bridge hotplug test
  2020-09-29  7:20 [PULL v4 00/48] virtio,pc,acpi: fixes, tests Michael S. Tsirkin
                   ` (37 preceding siblings ...)
  2020-09-29  7:22 ` [PULL v4 39/48] i440fx/acpi: do not add hotplug related amls for cold plugged bridges Michael S. Tsirkin
@ 2020-09-29  7:22 ` Michael S. Tsirkin
  2020-09-29  7:22 ` [PULL v4 41/48] tests/acpi: unit test for 'acpi-pci-hotplug-with-bridge-support' bridge flag Michael S. Tsirkin
                   ` (12 subsequent siblings)
  51 siblings, 0 replies; 63+ messages in thread
From: Michael S. Tsirkin @ 2020-09-29  7:22 UTC (permalink / raw)
  To: qemu-devel; +Cc: Ani Sinha, Peter Maydell, Igor Mammedov

From: Ani Sinha <ani@anisinha.ca>

The file 'tests/data/acpi/pc/DSDT.hpbridge' is a newly added acpi table file
for testing the pci bridge option 'acpi-pci-hotplug-with-bridge-support' under
i440fx. This change documents this fact.

Signed-off-by: Ani Sinha <ani@anisinha.ca>
Reviewed-by: Igor Mammedov <imammedo@redhat.com>
Message-Id: <20200918084111.15339-7-ani@anisinha.ca>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
 tests/qtest/bios-tables-test-allowed-diff.h | 1 +
 1 file changed, 1 insertion(+)

diff --git a/tests/qtest/bios-tables-test-allowed-diff.h b/tests/qtest/bios-tables-test-allowed-diff.h
index dfb8523c8b..96a9237355 100644
--- a/tests/qtest/bios-tables-test-allowed-diff.h
+++ b/tests/qtest/bios-tables-test-allowed-diff.h
@@ -1 +1,2 @@
 /* List of comma-separated changed AML files to ignore */
+"tests/data/acpi/pc/DSDT.hpbridge",
-- 
MST



^ permalink raw reply related	[flat|nested] 63+ messages in thread

* [PULL v4 41/48] tests/acpi: unit test for 'acpi-pci-hotplug-with-bridge-support' bridge flag
  2020-09-29  7:20 [PULL v4 00/48] virtio,pc,acpi: fixes, tests Michael S. Tsirkin
                   ` (38 preceding siblings ...)
  2020-09-29  7:22 ` [PULL v4 40/48] tests/acpi: list added acpi table binary file for pci bridge hotplug test Michael S. Tsirkin
@ 2020-09-29  7:22 ` Michael S. Tsirkin
  2020-09-29  7:22 ` [PULL v4 42/48] tests/acpi: add newly added acpi DSDT table blob for pci bridge hotplug flag Michael S. Tsirkin
                   ` (11 subsequent siblings)
  51 siblings, 0 replies; 63+ messages in thread
From: Michael S. Tsirkin @ 2020-09-29  7:22 UTC (permalink / raw)
  To: qemu-devel
  Cc: Laurent Vivier, Peter Maydell, Thomas Huth, Igor Mammedov,
	Ani Sinha, Paolo Bonzini

From: Ani Sinha <ani@anisinha.ca>

This change adds a new unit test for the global flag
'acpi-pci-hotplug-with-bridge-support' which is available for cold plugged pci
bridges in i440fx. The flag can be used to turn off ACPI based hotplug support
on all pci bridges.

Signed-off-by: Ani Sinha <ani@anisinha.ca>
Reviewed-by: Igor Mammedov <imammedo@redhat.com>
Message-Id: <20200918084111.15339-8-ani@anisinha.ca>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
 tests/qtest/bios-tables-test.c | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/tests/qtest/bios-tables-test.c b/tests/qtest/bios-tables-test.c
index bc932d0b9f..3c09b844f9 100644
--- a/tests/qtest/bios-tables-test.c
+++ b/tests/qtest/bios-tables-test.c
@@ -756,6 +756,20 @@ static void test_acpi_piix4_no_root_hotplug(void)
     free_test_data(&data);
 }
 
+static void test_acpi_piix4_no_bridge_hotplug(void)
+{
+    test_data data;
+
+    memset(&data, 0, sizeof(data));
+    data.machine = MACHINE_PC;
+    data.variant = ".hpbridge";
+    data.required_struct_types = base_required_struct_types;
+    data.required_struct_types_len = ARRAY_SIZE(base_required_struct_types);
+    test_acpi_one("-global PIIX4_PM.acpi-pci-hotplug-with-bridge-support=off "
+                  "-device pci-bridge,chassis_nr=1", &data);
+    free_test_data(&data);
+}
+
 static void test_acpi_q35_tcg(void)
 {
     test_data data;
@@ -1176,6 +1190,8 @@ int main(int argc, char *argv[])
         qtest_add_func("acpi/piix4/bridge", test_acpi_piix4_tcg_bridge);
         qtest_add_func("acpi/piix4/pci-hotplug/no_root_hotplug",
                        test_acpi_piix4_no_root_hotplug);
+        qtest_add_func("acpi/piix4/pci-hotplug/no_bridge_hotplug",
+                       test_acpi_piix4_no_bridge_hotplug);
         qtest_add_func("acpi/q35", test_acpi_q35_tcg);
         qtest_add_func("acpi/q35/bridge", test_acpi_q35_tcg_bridge);
         qtest_add_func("acpi/q35/mmio64", test_acpi_q35_tcg_mmio64);
-- 
MST



^ permalink raw reply related	[flat|nested] 63+ messages in thread

* [PULL v4 42/48] tests/acpi: add newly added acpi DSDT table blob for pci bridge hotplug flag
  2020-09-29  7:20 [PULL v4 00/48] virtio,pc,acpi: fixes, tests Michael S. Tsirkin
                   ` (39 preceding siblings ...)
  2020-09-29  7:22 ` [PULL v4 41/48] tests/acpi: unit test for 'acpi-pci-hotplug-with-bridge-support' bridge flag Michael S. Tsirkin
@ 2020-09-29  7:22 ` Michael S. Tsirkin
  2020-09-29  7:22 ` [PULL v4 43/48] Add ACPI DSDT tables for q35 that are being updated by the next patch Michael S. Tsirkin
                   ` (10 subsequent siblings)
  51 siblings, 0 replies; 63+ messages in thread
From: Michael S. Tsirkin @ 2020-09-29  7:22 UTC (permalink / raw)
  To: qemu-devel; +Cc: Ani Sinha, Peter Maydell, Igor Mammedov

From: Ani Sinha <ani@anisinha.ca>

This patch adds a binary blob corresponding to the DSDT acpi table. It is used
to unit test the flag 'acpi-pci-hotplug-with-bridge-support' used with pci
bridges.

This change also clears the file tests/qtest/bios-tables-test-allowed-diff.h
so that future changes which affect the table can be caught.

The following is the diff between files tests/data/acpi/pc/DSDT.bridge and
tests/data/acpi/pc/DSDT.hpbridge after disassembly :

@@ -1,30 +1,30 @@
 /*
  * Intel ACPI Component Architecture
  * AML/ASL+ Disassembler version 20180105 (64-bit version)
  * Copyright (c) 2000 - 2018 Intel Corporation
  *
  * Disassembling to symbolic ASL+ operators
  *
- * Disassembly of tests/data/acpi/pc/DSDT.bridge, Fri Sep 11 23:21:34 2020
+ * Disassembly of /tmp/aml-7UURQ0, Fri Sep 11 23:21:34 2020
  *
  * Original Table Header:
  *     Signature        "DSDT"
- *     Length           0x00001A89 (6793)
+ *     Length           0x0000131F (4895)
  *     Revision         0x01 **** 32-bit table (V1), no 64-bit math support
- *     Checksum         0x09
+ *     Checksum         0xF9
  *     OEM ID           "BOCHS "
  *     OEM Table ID     "BXPCDSDT"
  *     OEM Revision     0x00000001 (1)
  *     Compiler ID      "BXPC"
  *     Compiler Version 0x00000001 (1)
  */
 DefinitionBlock ("", "DSDT", 1, "BOCHS ", "BXPCDSDT", 0x00000001)
 {
     Scope (\)
     {
         OperationRegion (DBG, SystemIO, 0x0402, One)
         Field (DBG, ByteAcc, NoLock, Preserve)
         {
             DBGB,   8
         }

@@ -859,522 +859,32 @@
                 }

                 Method (_S2D, 0, NotSerialized)  // _S2D: S2 Device State
                 {
                     Return (Zero)
                 }

                 Method (_S3D, 0, NotSerialized)  // _S3D: S3 Device State
                 {
                     Return (Zero)
                 }
             }

             Device (S18)
             {
                 Name (_ADR, 0x00030000)  // _ADR: Address
-                Name (BSEL, One)
-                Device (S00)
-                {
-                    Name (_SUN, Zero)  // _SUN: Slot User Number
-                    Name (_ADR, Zero)  // _ADR: Address
-                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                    {
-                        PCEJ (BSEL, _SUN)
-                    }
-                }
-
-                Device (S08)
-                {
-                    Name (_SUN, One)  // _SUN: Slot User Number
-                    Name (_ADR, 0x00010000)  // _ADR: Address
-                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                    {
-                        PCEJ (BSEL, _SUN)
-                    }
-                }
-
-                Device (S10)
-                {
-                    Name (_SUN, 0x02)  // _SUN: Slot User Number
-                    Name (_ADR, 0x00020000)  // _ADR: Address
-                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                    {
-                        PCEJ (BSEL, _SUN)
-                    }
-                }
-
-                Device (S18)
-                {
-                    Name (_SUN, 0x03)  // _SUN: Slot User Number
-                    Name (_ADR, 0x00030000)  // _ADR: Address
-                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                    {
-                        PCEJ (BSEL, _SUN)
-                    }
-                }
-
-                Device (S20)
-                {
-                    Name (_SUN, 0x04)  // _SUN: Slot User Number
-                    Name (_ADR, 0x00040000)  // _ADR: Address
-                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                    {
-                        PCEJ (BSEL, _SUN)
-                    }
-                }
-
-                Device (S28)
-                {
-                    Name (_SUN, 0x05)  // _SUN: Slot User Number
-                    Name (_ADR, 0x00050000)  // _ADR: Address
-                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                    {
-                        PCEJ (BSEL, _SUN)
-                    }
-                }
-
-                Device (S30)
-                {
-                    Name (_SUN, 0x06)  // _SUN: Slot User Number
-                    Name (_ADR, 0x00060000)  // _ADR: Address
-                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                    {
-                        PCEJ (BSEL, _SUN)
-                    }
-                }
-
-                Device (S38)
-                {
-                    Name (_SUN, 0x07)  // _SUN: Slot User Number
-                    Name (_ADR, 0x00070000)  // _ADR: Address
-                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                    {
-                        PCEJ (BSEL, _SUN)
-                    }
-                }
-
-                Device (S40)
-                {
-                    Name (_SUN, 0x08)  // _SUN: Slot User Number
-                    Name (_ADR, 0x00080000)  // _ADR: Address
-                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                    {
-                        PCEJ (BSEL, _SUN)
-                    }
-                }
-
-                Device (S48)
-                {
-                    Name (_SUN, 0x09)  // _SUN: Slot User Number
-                    Name (_ADR, 0x00090000)  // _ADR: Address
-                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                    {
-                        PCEJ (BSEL, _SUN)
-                    }
-                }
-
-                Device (S50)
-                {
-                    Name (_SUN, 0x0A)  // _SUN: Slot User Number
-                    Name (_ADR, 0x000A0000)  // _ADR: Address
-                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                    {
-                        PCEJ (BSEL, _SUN)
-                    }
-                }
-
-                Device (S58)
-                {
-                    Name (_SUN, 0x0B)  // _SUN: Slot User Number
-                    Name (_ADR, 0x000B0000)  // _ADR: Address
-                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                    {
-                        PCEJ (BSEL, _SUN)
-                    }
-                }
-
-                Device (S60)
-                {
-                    Name (_SUN, 0x0C)  // _SUN: Slot User Number
-                    Name (_ADR, 0x000C0000)  // _ADR: Address
-                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                    {
-                        PCEJ (BSEL, _SUN)
-                    }
-                }
-
-                Device (S68)
-                {
-                    Name (_SUN, 0x0D)  // _SUN: Slot User Number
-                    Name (_ADR, 0x000D0000)  // _ADR: Address
-                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                    {
-                        PCEJ (BSEL, _SUN)
-                    }
-                }
-
-                Device (S70)
-                {
-                    Name (_SUN, 0x0E)  // _SUN: Slot User Number
-                    Name (_ADR, 0x000E0000)  // _ADR: Address
-                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                    {
-                        PCEJ (BSEL, _SUN)
-                    }
-                }
-
-                Device (S78)
-                {
-                    Name (_SUN, 0x0F)  // _SUN: Slot User Number
-                    Name (_ADR, 0x000F0000)  // _ADR: Address
-                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                    {
-                        PCEJ (BSEL, _SUN)
-                    }
-                }
-
-                Device (S80)
-                {
-                    Name (_SUN, 0x10)  // _SUN: Slot User Number
-                    Name (_ADR, 0x00100000)  // _ADR: Address
-                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                    {
-                        PCEJ (BSEL, _SUN)
-                    }
-                }
-
-                Device (S88)
-                {
-                    Name (_SUN, 0x11)  // _SUN: Slot User Number
-                    Name (_ADR, 0x00110000)  // _ADR: Address
-                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                    {
-                        PCEJ (BSEL, _SUN)
-                    }
-                }
-
-                Device (S90)
-                {
-                    Name (_SUN, 0x12)  // _SUN: Slot User Number
-                    Name (_ADR, 0x00120000)  // _ADR: Address
-                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                    {
-                        PCEJ (BSEL, _SUN)
-                    }
-                }
-
-                Device (S98)
-                {
-                    Name (_SUN, 0x13)  // _SUN: Slot User Number
-                    Name (_ADR, 0x00130000)  // _ADR: Address
-                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                    {
-                        PCEJ (BSEL, _SUN)
-                    }
-                }
-
-                Device (SA0)
-                {
-                    Name (_SUN, 0x14)  // _SUN: Slot User Number
-                    Name (_ADR, 0x00140000)  // _ADR: Address
-                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                    {
-                        PCEJ (BSEL, _SUN)
-                    }
-                }
-
-                Device (SA8)
-                {
-                    Name (_SUN, 0x15)  // _SUN: Slot User Number
-                    Name (_ADR, 0x00150000)  // _ADR: Address
-                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                    {
-                        PCEJ (BSEL, _SUN)
-                    }
-                }
-
-                Device (SB0)
-                {
-                    Name (_SUN, 0x16)  // _SUN: Slot User Number
-                    Name (_ADR, 0x00160000)  // _ADR: Address
-                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                    {
-                        PCEJ (BSEL, _SUN)
-                    }
-                }
-
-                Device (SB8)
-                {
-                    Name (_SUN, 0x17)  // _SUN: Slot User Number
-                    Name (_ADR, 0x00170000)  // _ADR: Address
-                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                    {
-                        PCEJ (BSEL, _SUN)
-                    }
-                }
-
-                Device (SC0)
-                {
-                    Name (_SUN, 0x18)  // _SUN: Slot User Number
-                    Name (_ADR, 0x00180000)  // _ADR: Address
-                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                    {
-                        PCEJ (BSEL, _SUN)
-                    }
-                }
-
-                Device (SC8)
-                {
-                    Name (_SUN, 0x19)  // _SUN: Slot User Number
-                    Name (_ADR, 0x00190000)  // _ADR: Address
-                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                    {
-                        PCEJ (BSEL, _SUN)
-                    }
-                }
-
-                Device (SD0)
-                {
-                    Name (_SUN, 0x1A)  // _SUN: Slot User Number
-                    Name (_ADR, 0x001A0000)  // _ADR: Address
-                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                    {
-                        PCEJ (BSEL, _SUN)
-                    }
-                }
-
-                Device (SD8)
-                {
-                    Name (_SUN, 0x1B)  // _SUN: Slot User Number
-                    Name (_ADR, 0x001B0000)  // _ADR: Address
-                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                    {
-                        PCEJ (BSEL, _SUN)
-                    }
-                }
-
-                Device (SE0)
-                {
-                    Name (_SUN, 0x1C)  // _SUN: Slot User Number
-                    Name (_ADR, 0x001C0000)  // _ADR: Address
-                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                    {
-                        PCEJ (BSEL, _SUN)
-                    }
-                }
-
-                Device (SE8)
-                {
-                    Name (_SUN, 0x1D)  // _SUN: Slot User Number
-                    Name (_ADR, 0x001D0000)  // _ADR: Address
-                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                    {
-                        PCEJ (BSEL, _SUN)
-                    }
-                }
-
-                Device (SF0)
-                {
-                    Name (_SUN, 0x1E)  // _SUN: Slot User Number
-                    Name (_ADR, 0x001E0000)  // _ADR: Address
-                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                    {
-                        PCEJ (BSEL, _SUN)
-                    }
-                }
-
-                Device (SF8)
-                {
-                    Name (_SUN, 0x1F)  // _SUN: Slot User Number
-                    Name (_ADR, 0x001F0000)  // _ADR: Address
-                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                    {
-                        PCEJ (BSEL, _SUN)
-                    }
-                }
-
-                Method (DVNT, 2, NotSerialized)
-                {
-                    If ((Arg0 & One))
-                    {
-                        Notify (S00, Arg1)
-                    }
-
-                    If ((Arg0 & 0x02))
-                    {
-                        Notify (S08, Arg1)
-                    }
-
-                    If ((Arg0 & 0x04))
-                    {
-                        Notify (S10, Arg1)
-                    }
-
-                    If ((Arg0 & 0x08))
-                    {
-                        Notify (S18, Arg1)
-                    }
-
-                    If ((Arg0 & 0x10))
-                    {
-                        Notify (S20, Arg1)
-                    }
-
-                    If ((Arg0 & 0x20))
-                    {
-                        Notify (S28, Arg1)
-                    }
-
-                    If ((Arg0 & 0x40))
-                    {
-                        Notify (S30, Arg1)
-                    }
-
-                    If ((Arg0 & 0x80))
-                    {
-                        Notify (S38, Arg1)
-                    }
-
-                    If ((Arg0 & 0x0100))
-                    {
-                        Notify (S40, Arg1)
-                    }
-
-                    If ((Arg0 & 0x0200))
-                    {
-                        Notify (S48, Arg1)
-                    }
-
-                    If ((Arg0 & 0x0400))
-                    {
-                        Notify (S50, Arg1)
-                    }
-
-                    If ((Arg0 & 0x0800))
-                    {
-                        Notify (S58, Arg1)
-                    }
-
-                    If ((Arg0 & 0x1000))
-                    {
-                        Notify (S60, Arg1)
-                    }
-
-                    If ((Arg0 & 0x2000))
-                    {
-                        Notify (S68, Arg1)
-                    }
-
-                    If ((Arg0 & 0x4000))
-                    {
-                        Notify (S70, Arg1)
-                    }
-
-                    If ((Arg0 & 0x8000))
-                    {
-                        Notify (S78, Arg1)
-                    }
-
-                    If ((Arg0 & 0x00010000))
-                    {
-                        Notify (S80, Arg1)
-                    }
-
-                    If ((Arg0 & 0x00020000))
-                    {
-                        Notify (S88, Arg1)
-                    }
-
-                    If ((Arg0 & 0x00040000))
-                    {
-                        Notify (S90, Arg1)
-                    }
-
-                    If ((Arg0 & 0x00080000))
-                    {
-                        Notify (S98, Arg1)
-                    }
-
-                    If ((Arg0 & 0x00100000))
-                    {
-                        Notify (SA0, Arg1)
-                    }
-
-                    If ((Arg0 & 0x00200000))
-                    {
-                        Notify (SA8, Arg1)
-                    }
-
-                    If ((Arg0 & 0x00400000))
-                    {
-                        Notify (SB0, Arg1)
-                    }
-
-                    If ((Arg0 & 0x00800000))
-                    {
-                        Notify (SB8, Arg1)
-                    }
-
-                    If ((Arg0 & 0x01000000))
-                    {
-                        Notify (SC0, Arg1)
-                    }
-
-                    If ((Arg0 & 0x02000000))
-                    {
-                        Notify (SC8, Arg1)
-                    }
-
-                    If ((Arg0 & 0x04000000))
-                    {
-                        Notify (SD0, Arg1)
-                    }
-
-                    If ((Arg0 & 0x08000000))
-                    {
-                        Notify (SD8, Arg1)
-                    }
-
-                    If ((Arg0 & 0x10000000))
-                    {
-                        Notify (SE0, Arg1)
-                    }
-
-                    If ((Arg0 & 0x20000000))
-                    {
-                        Notify (SE8, Arg1)
-                    }
-
-                    If ((Arg0 & 0x40000000))
-                    {
-                        Notify (SF0, Arg1)
-                    }
-
-                    If ((Arg0 & 0x80000000))
-                    {
-                        Notify (SF8, Arg1)
-                    }
-                }
-
-                Method (PCNT, 0, NotSerialized)
-                {
-                    BNUM = One
-                    DVNT (PCIU, One)
-                    DVNT (PCID, 0x03)
-                }
             }

             Device (S20)
             {
                 Name (_SUN, 0x04)  // _SUN: Slot User Number
                 Name (_ADR, 0x00040000)  // _ADR: Address
                 Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
                 {
                     PCEJ (BSEL, _SUN)
                 }
             }

             Device (S28)
             {
                 Name (_SUN, 0x05)  // _SUN: Slot User Number
                 Name (_ADR, 0x00050000)  // _ADR: Address
@@ -1779,22 +1289,21 @@
                 If ((Arg0 & 0x40000000))
                 {
                     Notify (SF0, Arg1)
                 }

                 If ((Arg0 & 0x80000000))
                 {
                     Notify (SF8, Arg1)
                 }
             }

             Method (PCNT, 0, NotSerialized)
             {
                 BNUM = Zero
                 DVNT (PCIU, One)
                 DVNT (PCID, 0x03)
-                ^S18.PCNT ()
             }
         }
     }
 }

Signed-off-by: Ani Sinha <ani@anisinha.ca>
Acked-by: Igor Mammedov <imammedo@redhat.com>
Message-Id: <20200918084111.15339-9-ani@anisinha.ca>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
 tests/qtest/bios-tables-test-allowed-diff.h |   1 -
 tests/data/acpi/pc/DSDT.hpbridge            | Bin 0 -> 4895 bytes
 2 files changed, 1 deletion(-)
 create mode 100644 tests/data/acpi/pc/DSDT.hpbridge

diff --git a/tests/qtest/bios-tables-test-allowed-diff.h b/tests/qtest/bios-tables-test-allowed-diff.h
index 96a9237355..dfb8523c8b 100644
--- a/tests/qtest/bios-tables-test-allowed-diff.h
+++ b/tests/qtest/bios-tables-test-allowed-diff.h
@@ -1,2 +1 @@
 /* List of comma-separated changed AML files to ignore */
-"tests/data/acpi/pc/DSDT.hpbridge",
diff --git a/tests/data/acpi/pc/DSDT.hpbridge b/tests/data/acpi/pc/DSDT.hpbridge
new file mode 100644
index 0000000000000000000000000000000000000000..b0751398541bdf88ce405be9742aeba0b375dbc3
GIT binary patch
literal 4895
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
S66ohVtr{L;J8bx3aOwYF+mJl~

literal 0
HcmV?d00001

-- 
MST



^ permalink raw reply related	[flat|nested] 63+ messages in thread

* [PULL v4 43/48] Add ACPI DSDT tables for q35 that are being updated by the next patch
  2020-09-29  7:20 [PULL v4 00/48] virtio,pc,acpi: fixes, tests Michael S. Tsirkin
                   ` (40 preceding siblings ...)
  2020-09-29  7:22 ` [PULL v4 42/48] tests/acpi: add newly added acpi DSDT table blob for pci bridge hotplug flag Michael S. Tsirkin
@ 2020-09-29  7:22 ` Michael S. Tsirkin
  2020-09-29  7:22 ` [PULL v4 44/48] piix4: don't reserve hw resources when hotplug is off globally Michael S. Tsirkin
                   ` (9 subsequent siblings)
  51 siblings, 0 replies; 63+ messages in thread
From: Michael S. Tsirkin @ 2020-09-29  7:22 UTC (permalink / raw)
  To: qemu-devel; +Cc: Ani Sinha, Peter Maydell, Igor Mammedov

From: Ani Sinha <ani@anisinha.ca>

The following patch ("piix4: don't reserve hw resources when
hotplug is off globally") modifies certain ACPI tables for q35 machines.
This patch adds those table names to tests/qtest/bios-tables-test-allowed-diff.h
so that unit tests continue to pass and bisection is not broken.

Signed-off-by: Ani Sinha <ani@anisinha.ca>
Reviewed-by: Igor Mammedov <imammedo@redhat.com>
Message-Id: <20200918084111.15339-10-ani@anisinha.ca>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
 tests/qtest/bios-tables-test-allowed-diff.h | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/tests/qtest/bios-tables-test-allowed-diff.h b/tests/qtest/bios-tables-test-allowed-diff.h
index dfb8523c8b..631703142c 100644
--- a/tests/qtest/bios-tables-test-allowed-diff.h
+++ b/tests/qtest/bios-tables-test-allowed-diff.h
@@ -1 +1,11 @@
 /* List of comma-separated changed AML files to ignore */
+"tests/data/acpi/q35/DSDT",
+"tests/data/acpi/q35/DSDT.acpihmat",
+"tests/data/acpi/q35/DSDT.bridge",
+"tests/data/acpi/q35/DSDT.cphp",
+"tests/data/acpi/q35/DSDT.dimmpxm",
+"tests/data/acpi/q35/DSDT.ipmibt",
+"tests/data/acpi/q35/DSDT.memhp",
+"tests/data/acpi/q35/DSDT.mmio64",
+"tests/data/acpi/q35/DSDT.numamem",
+"tests/data/acpi/q35/DSDT.tis",
-- 
MST



^ permalink raw reply related	[flat|nested] 63+ messages in thread

* [PULL v4 44/48] piix4: don't reserve hw resources when hotplug is off globally
  2020-09-29  7:20 [PULL v4 00/48] virtio,pc,acpi: fixes, tests Michael S. Tsirkin
                   ` (41 preceding siblings ...)
  2020-09-29  7:22 ` [PULL v4 43/48] Add ACPI DSDT tables for q35 that are being updated by the next patch Michael S. Tsirkin
@ 2020-09-29  7:22 ` Michael S. Tsirkin
  2020-11-07 10:10   ` Philippe Mathieu-Daudé
  2020-09-29  7:22 ` [PULL v4 45/48] tests/acpi: update golden master DSDT binary table blobs for q35 Michael S. Tsirkin
                   ` (8 subsequent siblings)
  51 siblings, 1 reply; 63+ messages in thread
From: Michael S. Tsirkin @ 2020-09-29  7:22 UTC (permalink / raw)
  To: qemu-devel
  Cc: Peter Maydell, Eduardo Habkost, Philippe Mathieu-Daudé,
	Aleksandar Markovic, Paolo Bonzini, Ani Sinha, Igor Mammedov,
	Aurelien Jarno, Richard Henderson

From: Ani Sinha <ani@anisinha.ca>

When acpi hotplug is turned off for both root pci bus as well as for pci
bridges, we should not generate the related ACPI code for DSDT table or
initialize related hw ports or reserve hw resources. This change makes
sure all those operations are turned off in the case ACPI pci hotplug is
off globally.

In this change, we also make sure ACPI code for the PCNT method are only
added when bsel is enabled for the corresponding pci bus or bridge hotplug
is turned on.

As q35 machines do not use bsel for it's pci buses at this point in time, this
change affects DSDT acpi table for q35 machines as well. Therefore, we will
also need to commit the updated golden master DSDT table acpi binary blobs as
well. Following is the list of blobs which needs updating:

 tests/data/acpi/q35/DSDT
 tests/data/acpi/q35/DSDT.acpihmat
 tests/data/acpi/q35/DSDT.bridge
 tests/data/acpi/q35/DSDT.cphp
 tests/data/acpi/q35/DSDT.dimmpxm
 tests/data/acpi/q35/DSDT.ipmibt
 tests/data/acpi/q35/DSDT.memhp
 tests/data/acpi/q35/DSDT.mmio64
 tests/data/acpi/q35/DSDT.numamem
 tests/data/acpi/q35/DSDT.tis

These tables are updated in the following commit. Without the updated table
blobs, the unit tests would fail with this patch.

Signed-off-by: Ani Sinha <ani@anisinha.ca>
Reviewed-by: Igor Mammedov <imammedo@redhat.com>
Message-Id: <20200918084111.15339-11-ani@anisinha.ca>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
 hw/acpi/piix4.c      |  6 ++++--
 hw/i386/acpi-build.c | 25 ++++++++++++++++++-------
 2 files changed, 22 insertions(+), 9 deletions(-)

diff --git a/hw/acpi/piix4.c b/hw/acpi/piix4.c
index 832f8fba82..894d357f8c 100644
--- a/hw/acpi/piix4.c
+++ b/hw/acpi/piix4.c
@@ -596,8 +596,10 @@ static void piix4_acpi_system_hot_add_init(MemoryRegion *parent,
                           "acpi-gpe0", GPE_LEN);
     memory_region_add_subregion(parent, GPE_BASE, &s->io_gpe);
 
-    acpi_pcihp_init(OBJECT(s), &s->acpi_pci_hotplug, bus, parent,
-                    s->use_acpi_hotplug_bridge);
+    if (s->use_acpi_hotplug_bridge || s->use_acpi_root_pci_hotplug) {
+        acpi_pcihp_init(OBJECT(s), &s->acpi_pci_hotplug, bus, parent,
+                        s->use_acpi_hotplug_bridge);
+    }
 
     s->cpu_hotplug_legacy = true;
     object_property_add_bool(OBJECT(s), "cpu-hotplug-legacy",
diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c
index 2b17843837..8d14e4667a 100644
--- a/hw/i386/acpi-build.c
+++ b/hw/i386/acpi-build.c
@@ -96,6 +96,7 @@ typedef struct AcpiPmInfo {
     bool s4_disabled;
     bool pcihp_bridge_en;
     bool smi_on_cpuhp;
+    bool pcihp_root_en;
     uint8_t s4_val;
     AcpiFadtData fadt;
     uint16_t cpu_hp_io_base;
@@ -251,6 +252,9 @@ static void acpi_get_pm_info(MachineState *machine, AcpiPmInfo *pm)
     pm->pcihp_bridge_en =
         object_property_get_bool(obj, "acpi-pci-hotplug-with-bridge-support",
                                  NULL);
+    pm->pcihp_root_en =
+        object_property_get_bool(obj, "acpi-root-pci-hotplug",
+                                 NULL);
 }
 
 static void acpi_get_misc_info(AcpiMiscInfo *info)
@@ -456,10 +460,12 @@ static void build_append_pci_bus_devices(Aml *parent_scope, PCIBus *bus,
     }
 
     /* Append PCNT method to notify about events on local and child buses.
-     * Add unconditionally for root since DSDT expects it.
+     * Add this method for root bus only when hotplug is enabled since DSDT
+     * expects it.
      */
-    method = aml_method("PCNT", 0, AML_NOTSERIALIZED);
-
+    if (bsel || pcihp_bridge_en) {
+        method = aml_method("PCNT", 0, AML_NOTSERIALIZED);
+    }
     /* If bus supports hotplug select it and notify about local events */
     if (bsel) {
         uint64_t bsel_val = qnum_get_uint(qobject_to(QNum, bsel));
@@ -485,7 +491,10 @@ static void build_append_pci_bus_devices(Aml *parent_scope, PCIBus *bus,
             aml_append(method, aml_name("^S%.02X.PCNT", devfn));
         }
     }
-    aml_append(parent_scope, method);
+
+    if (bsel || pcihp_bridge_en) {
+        aml_append(parent_scope, method);
+    }
     qobject_unref(bsel);
 }
 
@@ -1510,7 +1519,9 @@ build_dsdt(GArray *table_data, BIOSLinker *linker,
         build_hpet_aml(dsdt);
         build_piix4_isa_bridge(dsdt);
         build_isa_devices_aml(dsdt);
-        build_piix4_pci_hotplug(dsdt);
+        if (pm->pcihp_bridge_en || pm->pcihp_root_en) {
+            build_piix4_pci_hotplug(dsdt);
+        }
         build_piix4_pci0_int(dsdt);
     } else {
         sb_scope = aml_scope("_SB");
@@ -1579,7 +1590,7 @@ build_dsdt(GArray *table_data, BIOSLinker *linker,
     {
         aml_append(scope, aml_name_decl("_HID", aml_string("ACPI0006")));
 
-        if (misc->is_piix4) {
+        if (misc->is_piix4 && (pm->pcihp_bridge_en || pm->pcihp_root_en)) {
             method = aml_method("_E01", 0, AML_NOTSERIALIZED);
             aml_append(method,
                 aml_acquire(aml_name("\\_SB.PCI0.BLCK"), 0xFFFF));
@@ -1731,7 +1742,7 @@ build_dsdt(GArray *table_data, BIOSLinker *linker,
     crs_range_set_free(&crs_range_set);
 
     /* reserve PCIHP resources */
-    if (pm->pcihp_io_len) {
+    if (pm->pcihp_io_len && (pm->pcihp_bridge_en || pm->pcihp_root_en)) {
         dev = aml_device("PHPR");
         aml_append(dev, aml_name_decl("_HID", aml_string("PNP0A06")));
         aml_append(dev,
-- 
MST



^ permalink raw reply related	[flat|nested] 63+ messages in thread

* [PULL v4 45/48] tests/acpi: update golden master DSDT binary table blobs for q35
  2020-09-29  7:20 [PULL v4 00/48] virtio,pc,acpi: fixes, tests Michael S. Tsirkin
                   ` (42 preceding siblings ...)
  2020-09-29  7:22 ` [PULL v4 44/48] piix4: don't reserve hw resources when hotplug is off globally Michael S. Tsirkin
@ 2020-09-29  7:22 ` Michael S. Tsirkin
  2020-09-29  7:23 ` [PULL v4 46/48] hw: virtio-pmem: detach the element fromt the virtqueue when error occurs Michael S. Tsirkin
                   ` (7 subsequent siblings)
  51 siblings, 0 replies; 63+ messages in thread
From: Michael S. Tsirkin @ 2020-09-29  7:22 UTC (permalink / raw)
  To: qemu-devel
  Cc: Laurent Vivier, Peter Maydell, Thomas Huth, Markus Armbruster,
	Michael Roth, Igor Mammedov, Ani Sinha, Paolo Bonzini

From: Ani Sinha <ani@anisinha.ca>

In the previously applied commit ("piix4: don't reserve hw resources when
hotplug is off globally"), we make changes to the ACPI DSDT tables
such that some ACPI code are not generated when bsel is absent. Since
as of this point in time, in q35 machines, we do not use bsel for pci
buses, we need to update the DSDT table blobs.
This patch updates the DSDT golden master tables for q35 machines.
At the same time, we clear bios-tables-test-allowed-diff.h for future
changes which update tables.

Following is a typical diff between the q35 acpi DSDT table blobs:

@@ -1,30 +1,30 @@
 /*
  * Intel ACPI Component Architecture
  * AML/ASL+ Disassembler version 20180105 (64-bit version)
  * Copyright (c) 2000 - 2018 Intel Corporation
  *
  * Disassembling to symbolic ASL+ operators
  *
- * Disassembly of tests/data/acpi/q35/DSDT, Tue Sep 15 18:52:47 2020
+ * Disassembly of /tmp/aml-3O0DR0, Tue Sep 15 18:52:47 2020
  *
  * Original Table Header:
  *     Signature        "DSDT"
- *     Length           0x00001DFE (7678)
+ *     Length           0x00001DF6 (7670)
  *     Revision         0x01 **** 32-bit table (V1), no 64-bit math support
- *     Checksum         0xAC
+ *     Checksum         0x17
  *     OEM ID           "BOCHS "
  *     OEM Table ID     "BXPCDSDT"
  *     OEM Revision     0x00000001 (1)
  *     Compiler ID      "BXPC"
  *     Compiler Version 0x00000001 (1)
  */
 DefinitionBlock ("", "DSDT", 1, "BOCHS ", "BXPCDSDT", 0x00000001)
 {
     Scope (\)
     {
         OperationRegion (DBG, SystemIO, 0x0402, One)
         Field (DBG, ByteAcc, NoLock, Preserve)
         {
             DBGB,   8
         }

@@ -3113,24 +3113,20 @@
                 Name (_ADR, 0x00010000)  // _ADR: Address
                 Method (_S1D, 0, NotSerialized)  // _S1D: S1 Device State
                 {
                     Return (Zero)
                 }

                 Method (_S2D, 0, NotSerialized)  // _S2D: S2 Device State
                 {
                     Return (Zero)
                 }

                 Method (_S3D, 0, NotSerialized)  // _S3D: S3 Device State
                 {
                     Return (Zero)
                 }
             }
-
-            Method (PCNT, 0, NotSerialized)
-            {
-            }
         }
     }
 }

Signed-off-by: Ani Sinha <ani@anisinha.ca>
Acked-by: Igor Mammedov <imammedo@redhat.com>
Message-Id: <20200918084111.15339-12-ani@anisinha.ca>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
 tests/qtest/bios-tables-test-allowed-diff.h   |   10 -
 tests/test-qapi-event.c                       |  198 +
 tests/test-qmp-introspect.c                   |   58 +
 tests/test-qmp-marshal.c                      |  383 ++
 tests/.vhost-user-test.c.swo                  |  Bin 0 -> 16384 bytes
 tests/Makefile.include.orig                   | 1012 +++++
 tests/Makefile.orig                           |  569 +++
 tests/bios-tables-test.c.orig                 |  925 +++++
 tests/data/acpi/diff-aml.sh                   |    0
 tests/data/acpi/disassemle-aml.py             |   21 +
 tests/data/acpi/microvm/APIC.dsl              |   56 +
 tests/data/acpi/microvm/DSDT.dsl              |  121 +
 tests/data/acpi/microvm/FACP.dsl              |  196 +
 tests/data/acpi/pc/APIC.acpihmat.dsl          |  112 +
 tests/data/acpi/pc/APIC.bridge                |  Bin 0 -> 120 bytes
 tests/data/acpi/pc/APIC.bridge.dsl            |  104 +
 tests/data/acpi/pc/APIC.cphp.dsl              |  146 +
 tests/data/acpi/pc/APIC.dimmpxm.dsl           |  129 +
 tests/data/acpi/pc/APIC.dsl                   |  104 +
 tests/data/acpi/pc/APIC.hpbridge              |  Bin 0 -> 120 bytes
 tests/data/acpi/pc/APIC.ipmikcs               |  Bin 0 -> 120 bytes
 tests/data/acpi/pc/APIC.ipmikcs.dsl           |  104 +
 tests/data/acpi/pc/APIC.memhp                 |  Bin 0 -> 120 bytes
 tests/data/acpi/pc/APIC.memhp.dsl             |  104 +
 tests/data/acpi/pc/APIC.numamem               |  Bin 0 -> 120 bytes
 tests/data/acpi/pc/APIC.numamem.dsl           |  104 +
 tests/data/acpi/pc/APIC.roothp                |  Bin 0 -> 120 bytes
 tests/data/acpi/pc/DSDT.acpihmat.dsl          | 1619 ++++++++
 tests/data/acpi/pc/DSDT.bridge.dsl            | 1800 +++++++++
 tests/data/acpi/pc/DSDT.cphp.dsl              | 1466 +++++++
 tests/data/acpi/pc/DSDT.dimmpxm.dsl           | 1719 ++++++++
 tests/data/acpi/pc/DSDT.dsl                   | 1407 +++++++
 tests/data/acpi/pc/DSDT.hpbridge              |  Bin 4895 -> 5021 bytes
 tests/data/acpi/pc/DSDT.ipmikcs.dsl           | 1337 +++++++
 tests/data/acpi/pc/DSDT.memhp.dsl             | 1625 ++++++++
 tests/data/acpi/pc/DSDT.numamem.dsl           | 1321 ++++++
 tests/data/acpi/pc/DSDT.roothp                |  Bin 5130 -> 5256 bytes
 tests/data/acpi/pc/FACP.acpihmat              |  Bin 0 -> 116 bytes
 tests/data/acpi/pc/FACP.acpihmat.dsl          |   99 +
 tests/data/acpi/pc/FACP.bridge                |  Bin 0 -> 116 bytes
 tests/data/acpi/pc/FACP.bridge.dsl            |   99 +
 tests/data/acpi/pc/FACP.cphp                  |  Bin 0 -> 116 bytes
 tests/data/acpi/pc/FACP.cphp.dsl              |   99 +
 tests/data/acpi/pc/FACP.dimmpxm               |  Bin 0 -> 116 bytes
 tests/data/acpi/pc/FACP.dimmpxm.dsl           |   99 +
 tests/data/acpi/pc/FACP.dsl                   |   99 +
 tests/data/acpi/pc/FACP.hpbridge              |  Bin 0 -> 116 bytes
 tests/data/acpi/pc/FACP.ipmikcs               |  Bin 0 -> 116 bytes
 tests/data/acpi/pc/FACP.ipmikcs.dsl           |   99 +
 tests/data/acpi/pc/FACP.memhp                 |  Bin 0 -> 116 bytes
 tests/data/acpi/pc/FACP.memhp.dsl             |   99 +
 tests/data/acpi/pc/FACP.numamem               |  Bin 0 -> 116 bytes
 tests/data/acpi/pc/FACP.numamem.dsl           |   99 +
 tests/data/acpi/pc/FACP.roothp                |  Bin 0 -> 116 bytes
 tests/data/acpi/pc/FACS.acpihmat              |  Bin 0 -> 64 bytes
 tests/data/acpi/pc/FACS.acpihmat.dsl          |   32 +
 tests/data/acpi/pc/FACS.bridge                |  Bin 0 -> 64 bytes
 tests/data/acpi/pc/FACS.bridge.dsl            |   32 +
 tests/data/acpi/pc/FACS.cphp                  |  Bin 0 -> 64 bytes
 tests/data/acpi/pc/FACS.cphp.dsl              |   32 +
 tests/data/acpi/pc/FACS.dimmpxm               |  Bin 0 -> 64 bytes
 tests/data/acpi/pc/FACS.dimmpxm.dsl           |   32 +
 tests/data/acpi/pc/FACS.dsl                   |   32 +
 tests/data/acpi/pc/FACS.hpbridge              |  Bin 0 -> 64 bytes
 tests/data/acpi/pc/FACS.ipmikcs               |  Bin 0 -> 64 bytes
 tests/data/acpi/pc/FACS.ipmikcs.dsl           |   32 +
 tests/data/acpi/pc/FACS.memhp                 |  Bin 0 -> 64 bytes
 tests/data/acpi/pc/FACS.memhp.dsl             |   32 +
 tests/data/acpi/pc/FACS.numamem               |  Bin 0 -> 64 bytes
 tests/data/acpi/pc/FACS.numamem.dsl           |   32 +
 tests/data/acpi/pc/FACS.roothp                |  Bin 0 -> 64 bytes
 tests/data/acpi/pc/HMAT.acpihmat.dsl          |  132 +
 tests/data/acpi/pc/HMAT.dsl                   |  132 +
 tests/data/acpi/pc/HPET.acpihmat              |  Bin 0 -> 56 bytes
 tests/data/acpi/pc/HPET.acpihmat.dsl          |   43 +
 tests/data/acpi/pc/HPET.bridge                |  Bin 0 -> 56 bytes
 tests/data/acpi/pc/HPET.bridge.dsl            |   43 +
 tests/data/acpi/pc/HPET.cphp                  |  Bin 0 -> 56 bytes
 tests/data/acpi/pc/HPET.cphp.dsl              |   43 +
 tests/data/acpi/pc/HPET.dimmpxm               |  Bin 0 -> 56 bytes
 tests/data/acpi/pc/HPET.dimmpxm.dsl           |   43 +
 tests/data/acpi/pc/HPET.dsl                   |   43 +
 tests/data/acpi/pc/HPET.hpbridge              |  Bin 0 -> 56 bytes
 tests/data/acpi/pc/HPET.ipmikcs               |  Bin 0 -> 56 bytes
 tests/data/acpi/pc/HPET.ipmikcs.dsl           |   43 +
 tests/data/acpi/pc/HPET.memhp                 |  Bin 0 -> 56 bytes
 tests/data/acpi/pc/HPET.memhp.dsl             |   43 +
 tests/data/acpi/pc/HPET.numamem               |  Bin 0 -> 56 bytes
 tests/data/acpi/pc/HPET.numamem.dsl           |   43 +
 tests/data/acpi/pc/HPET.roothp                |  Bin 0 -> 56 bytes
 tests/data/acpi/pc/NFIT.dimmpxm.dsl           |  115 +
 tests/data/acpi/pc/NFIT.dsl                   |  115 +
 tests/data/acpi/pc/SLIT.cphp.dsl              |   31 +
 tests/data/acpi/pc/SLIT.dsl                   |   31 +
 tests/data/acpi/pc/SLIT.memhp.dsl             |   31 +
 tests/data/acpi/pc/SRAT.acpihmat.dsl          |  137 +
 tests/data/acpi/pc/SRAT.cphp.dsl              |  168 +
 tests/data/acpi/pc/SRAT.dimmpxm.dsl           |  194 +
 tests/data/acpi/pc/SRAT.dsl                   |  108 +
 tests/data/acpi/pc/SRAT.memhp.dsl             |  125 +
 tests/data/acpi/pc/SRAT.numamem.dsl           |  108 +
 tests/data/acpi/pc/SSDT.dsl                   |  205 +
 tests/data/acpi/pc/WAET.acpihmat              |  Bin 0 -> 40 bytes
 tests/data/acpi/pc/WAET.acpihmat.dsl          |   31 +
 tests/data/acpi/pc/WAET.bridge                |  Bin 0 -> 40 bytes
 tests/data/acpi/pc/WAET.bridge.dsl            |   31 +
 tests/data/acpi/pc/WAET.cphp                  |  Bin 0 -> 40 bytes
 tests/data/acpi/pc/WAET.cphp.dsl              |   31 +
 tests/data/acpi/pc/WAET.dimmpxm               |  Bin 0 -> 40 bytes
 tests/data/acpi/pc/WAET.dimmpxm.dsl           |   31 +
 tests/data/acpi/pc/WAET.dsl                   |   31 +
 tests/data/acpi/pc/WAET.hpbridge              |  Bin 0 -> 40 bytes
 tests/data/acpi/pc/WAET.ipmikcs               |  Bin 0 -> 40 bytes
 tests/data/acpi/pc/WAET.ipmikcs.dsl           |   31 +
 tests/data/acpi/pc/WAET.memhp                 |  Bin 0 -> 40 bytes
 tests/data/acpi/pc/WAET.memhp.dsl             |   31 +
 tests/data/acpi/pc/WAET.numamem               |  Bin 0 -> 40 bytes
 tests/data/acpi/pc/WAET.numamem.dsl           |   31 +
 tests/data/acpi/pc/WAET.roothp                |  Bin 0 -> 40 bytes
 tests/data/acpi/q35/APIC.acpihmat.dsl         |  112 +
 tests/data/acpi/q35/APIC.bridge               |  Bin 0 -> 120 bytes
 tests/data/acpi/q35/APIC.bridge.dsl           |  104 +
 tests/data/acpi/q35/APIC.cphp.dsl             |  146 +
 tests/data/acpi/q35/APIC.dimmpxm.dsl          |  129 +
 tests/data/acpi/q35/APIC.dsl                  |  104 +
 tests/data/acpi/q35/APIC.ipmibt               |  Bin 0 -> 120 bytes
 tests/data/acpi/q35/APIC.ipmibt.dsl           |  104 +
 tests/data/acpi/q35/APIC.memhp                |  Bin 0 -> 120 bytes
 tests/data/acpi/q35/APIC.memhp.dsl            |  104 +
 tests/data/acpi/q35/APIC.mmio64               |  Bin 0 -> 120 bytes
 tests/data/acpi/q35/APIC.mmio64.dsl           |  104 +
 tests/data/acpi/q35/APIC.numamem              |  Bin 0 -> 120 bytes
 tests/data/acpi/q35/APIC.numamem.dsl          |  104 +
 tests/data/acpi/q35/APIC.tis                  |  Bin 0 -> 120 bytes
 tests/data/acpi/q35/APIC.tis.dsl              |  104 +
 tests/data/acpi/q35/DSDT                      |  Bin 7804 -> 7796 bytes
 tests/data/acpi/q35/DSDT.acpihmat             |  Bin 9129 -> 9121 bytes
 tests/data/acpi/q35/DSDT.acpihmat.dsl         | 3436 ++++++++++++++++
 tests/data/acpi/q35/DSDT.bridge               |  Bin 7821 -> 7814 bytes
 tests/data/acpi/q35/DSDT.bridge.dsl           | 3141 +++++++++++++++
 tests/data/acpi/q35/DSDT.cphp                 |  Bin 8268 -> 8260 bytes
 tests/data/acpi/q35/DSDT.cphp.dsl             | 3283 +++++++++++++++
 tests/data/acpi/q35/DSDT.dimmpxm              |  Bin 9458 -> 9450 bytes
 tests/data/acpi/q35/DSDT.dimmpxm.dsl          | 3535 +++++++++++++++++
 tests/data/acpi/q35/DSDT.dsl                  | 3351 ++++++++++++++++
 tests/data/acpi/q35/DSDT.ipmibt               |  Bin 7879 -> 7871 bytes
 tests/data/acpi/q35/DSDT.ipmibt.dsl           | 3156 +++++++++++++++
 tests/data/acpi/q35/DSDT.memhp                |  Bin 9163 -> 9155 bytes
 tests/data/acpi/q35/DSDT.memhp.dsl            | 3442 ++++++++++++++++
 tests/data/acpi/q35/DSDT.mmio64               |  Bin 8934 -> 8927 bytes
 tests/data/acpi/q35/DSDT.mmio64.dsl           | 3377 ++++++++++++++++
 tests/data/acpi/q35/DSDT.numamem              |  Bin 7810 -> 7802 bytes
 tests/data/acpi/q35/DSDT.numamem.dsl          | 3138 +++++++++++++++
 tests/data/acpi/q35/DSDT.tis                  |  Bin 8409 -> 8402 bytes
 tests/data/acpi/q35/DSDT.tis.dsl              | 3321 ++++++++++++++++
 tests/data/acpi/q35/FACP.acpihmat             |  Bin 0 -> 244 bytes
 tests/data/acpi/q35/FACP.acpihmat.dsl         |  179 +
 tests/data/acpi/q35/FACP.bridge               |  Bin 0 -> 244 bytes
 tests/data/acpi/q35/FACP.bridge.dsl           |  179 +
 tests/data/acpi/q35/FACP.cphp                 |  Bin 0 -> 244 bytes
 tests/data/acpi/q35/FACP.cphp.dsl             |  179 +
 tests/data/acpi/q35/FACP.dimmpxm              |  Bin 0 -> 244 bytes
 tests/data/acpi/q35/FACP.dimmpxm.dsl          |  179 +
 tests/data/acpi/q35/FACP.dsl                  |  179 +
 tests/data/acpi/q35/FACP.ipmibt               |  Bin 0 -> 244 bytes
 tests/data/acpi/q35/FACP.ipmibt.dsl           |  179 +
 tests/data/acpi/q35/FACP.memhp                |  Bin 0 -> 244 bytes
 tests/data/acpi/q35/FACP.memhp.dsl            |  179 +
 tests/data/acpi/q35/FACP.mmio64               |  Bin 0 -> 244 bytes
 tests/data/acpi/q35/FACP.mmio64.dsl           |  179 +
 tests/data/acpi/q35/FACP.numamem              |  Bin 0 -> 244 bytes
 tests/data/acpi/q35/FACP.numamem.dsl          |  179 +
 tests/data/acpi/q35/FACP.tis                  |  Bin 0 -> 244 bytes
 tests/data/acpi/q35/FACP.tis.dsl              |  179 +
 tests/data/acpi/q35/FACS.acpihmat             |  Bin 0 -> 64 bytes
 tests/data/acpi/q35/FACS.acpihmat.dsl         |   32 +
 tests/data/acpi/q35/FACS.bridge               |  Bin 0 -> 64 bytes
 tests/data/acpi/q35/FACS.bridge.dsl           |   32 +
 tests/data/acpi/q35/FACS.cphp                 |  Bin 0 -> 64 bytes
 tests/data/acpi/q35/FACS.cphp.dsl             |   32 +
 tests/data/acpi/q35/FACS.dimmpxm              |  Bin 0 -> 64 bytes
 tests/data/acpi/q35/FACS.dimmpxm.dsl          |   32 +
 tests/data/acpi/q35/FACS.dsl                  |   32 +
 tests/data/acpi/q35/FACS.ipmibt               |  Bin 0 -> 64 bytes
 tests/data/acpi/q35/FACS.ipmibt.dsl           |   32 +
 tests/data/acpi/q35/FACS.memhp                |  Bin 0 -> 64 bytes
 tests/data/acpi/q35/FACS.memhp.dsl            |   32 +
 tests/data/acpi/q35/FACS.mmio64               |  Bin 0 -> 64 bytes
 tests/data/acpi/q35/FACS.mmio64.dsl           |   32 +
 tests/data/acpi/q35/FACS.numamem              |  Bin 0 -> 64 bytes
 tests/data/acpi/q35/FACS.numamem.dsl          |   32 +
 tests/data/acpi/q35/FACS.tis                  |  Bin 0 -> 64 bytes
 tests/data/acpi/q35/FACS.tis.dsl              |   32 +
 tests/data/acpi/q35/HMAT.acpihmat.dsl         |  132 +
 tests/data/acpi/q35/HMAT.dsl                  |  132 +
 tests/data/acpi/q35/HPET.acpihmat             |  Bin 0 -> 56 bytes
 tests/data/acpi/q35/HPET.acpihmat.dsl         |   43 +
 tests/data/acpi/q35/HPET.bridge               |  Bin 0 -> 56 bytes
 tests/data/acpi/q35/HPET.bridge.dsl           |   43 +
 tests/data/acpi/q35/HPET.cphp                 |  Bin 0 -> 56 bytes
 tests/data/acpi/q35/HPET.cphp.dsl             |   43 +
 tests/data/acpi/q35/HPET.dimmpxm              |  Bin 0 -> 56 bytes
 tests/data/acpi/q35/HPET.dimmpxm.dsl          |   43 +
 tests/data/acpi/q35/HPET.dsl                  |   43 +
 tests/data/acpi/q35/HPET.ipmibt               |  Bin 0 -> 56 bytes
 tests/data/acpi/q35/HPET.ipmibt.dsl           |   43 +
 tests/data/acpi/q35/HPET.memhp                |  Bin 0 -> 56 bytes
 tests/data/acpi/q35/HPET.memhp.dsl            |   43 +
 tests/data/acpi/q35/HPET.mmio64               |  Bin 0 -> 56 bytes
 tests/data/acpi/q35/HPET.mmio64.dsl           |   43 +
 tests/data/acpi/q35/HPET.numamem              |  Bin 0 -> 56 bytes
 tests/data/acpi/q35/HPET.numamem.dsl          |   43 +
 tests/data/acpi/q35/HPET.tis                  |  Bin 0 -> 56 bytes
 tests/data/acpi/q35/HPET.tis.dsl              |   43 +
 tests/data/acpi/q35/MCFG.acpihmat             |  Bin 0 -> 60 bytes
 tests/data/acpi/q35/MCFG.acpihmat.dsl         |   36 +
 tests/data/acpi/q35/MCFG.bridge               |  Bin 0 -> 60 bytes
 tests/data/acpi/q35/MCFG.bridge.dsl           |   36 +
 tests/data/acpi/q35/MCFG.cphp                 |  Bin 0 -> 60 bytes
 tests/data/acpi/q35/MCFG.cphp.dsl             |   36 +
 tests/data/acpi/q35/MCFG.dimmpxm              |  Bin 0 -> 60 bytes
 tests/data/acpi/q35/MCFG.dimmpxm.dsl          |   36 +
 tests/data/acpi/q35/MCFG.dsl                  |   36 +
 tests/data/acpi/q35/MCFG.ipmibt               |  Bin 0 -> 60 bytes
 tests/data/acpi/q35/MCFG.ipmibt.dsl           |   36 +
 tests/data/acpi/q35/MCFG.memhp                |  Bin 0 -> 60 bytes
 tests/data/acpi/q35/MCFG.memhp.dsl            |   36 +
 tests/data/acpi/q35/MCFG.mmio64               |  Bin 0 -> 60 bytes
 tests/data/acpi/q35/MCFG.mmio64.dsl           |   36 +
 tests/data/acpi/q35/MCFG.numamem              |  Bin 0 -> 60 bytes
 tests/data/acpi/q35/MCFG.numamem.dsl          |   36 +
 tests/data/acpi/q35/MCFG.tis                  |  Bin 0 -> 60 bytes
 tests/data/acpi/q35/MCFG.tis.dsl              |   36 +
 tests/data/acpi/q35/NFIT.dimmpxm.dsl          |  115 +
 tests/data/acpi/q35/NFIT.dsl                  |  115 +
 tests/data/acpi/q35/SLIT.cphp.dsl             |   31 +
 tests/data/acpi/q35/SLIT.dsl                  |   31 +
 tests/data/acpi/q35/SLIT.memhp.dsl            |   31 +
 tests/data/acpi/q35/SRAT.acpihmat.dsl         |  137 +
 tests/data/acpi/q35/SRAT.cphp.dsl             |  168 +
 tests/data/acpi/q35/SRAT.dimmpxm.dsl          |  194 +
 tests/data/acpi/q35/SRAT.dsl                  |  108 +
 tests/data/acpi/q35/SRAT.memhp.dsl            |  125 +
 tests/data/acpi/q35/SRAT.mmio64.dsl           |  108 +
 tests/data/acpi/q35/SRAT.numamem.dsl          |  108 +
 tests/data/acpi/q35/SSDT.dsl                  |  205 +
 tests/data/acpi/q35/TPM2.dsl                  |   38 +
 tests/data/acpi/q35/TPM2.tis.dsl              |   38 +
 tests/data/acpi/q35/WAET.acpihmat             |  Bin 0 -> 40 bytes
 tests/data/acpi/q35/WAET.acpihmat.dsl         |   31 +
 tests/data/acpi/q35/WAET.bridge               |  Bin 0 -> 40 bytes
 tests/data/acpi/q35/WAET.bridge.dsl           |   31 +
 tests/data/acpi/q35/WAET.cphp                 |  Bin 0 -> 40 bytes
 tests/data/acpi/q35/WAET.cphp.dsl             |   31 +
 tests/data/acpi/q35/WAET.dimmpxm              |  Bin 0 -> 40 bytes
 tests/data/acpi/q35/WAET.dimmpxm.dsl          |   31 +
 tests/data/acpi/q35/WAET.dsl                  |   31 +
 tests/data/acpi/q35/WAET.ipmibt               |  Bin 0 -> 40 bytes
 tests/data/acpi/q35/WAET.ipmibt.dsl           |   31 +
 tests/data/acpi/q35/WAET.memhp                |  Bin 0 -> 40 bytes
 tests/data/acpi/q35/WAET.memhp.dsl            |   31 +
 tests/data/acpi/q35/WAET.mmio64               |  Bin 0 -> 40 bytes
 tests/data/acpi/q35/WAET.mmio64.dsl           |   31 +
 tests/data/acpi/q35/WAET.numamem              |  Bin 0 -> 40 bytes
 tests/data/acpi/q35/WAET.numamem.dsl          |   31 +
 tests/data/acpi/q35/WAET.tis                  |  Bin 0 -> 40 bytes
 tests/data/acpi/q35/WAET.tis.dsl              |   31 +
 tests/data/acpi/virt/APIC.dsl                 |   78 +
 tests/data/acpi/virt/APIC.memhp.dsl           |   78 +
 tests/data/acpi/virt/APIC.numamem.dsl         |   78 +
 tests/data/acpi/virt/DSDT.dsl                 | 1906 +++++++++
 tests/data/acpi/virt/DSDT.memhp.dsl           | 2215 +++++++++++
 tests/data/acpi/virt/DSDT.numamem.dsl         | 1906 +++++++++
 tests/data/acpi/virt/FACP.dsl                 |  196 +
 tests/data/acpi/virt/FACP.memhp.dsl           |  196 +
 tests/data/acpi/virt/FACP.numamem.dsl         |  196 +
 tests/data/acpi/virt/GTDT.dsl                 |   61 +
 tests/data/acpi/virt/GTDT.memhp.dsl           |   61 +
 tests/data/acpi/virt/GTDT.numamem.dsl         |   61 +
 tests/data/acpi/virt/MCFG.dsl                 |   36 +
 tests/data/acpi/virt/MCFG.memhp.dsl           |   36 +
 tests/data/acpi/virt/MCFG.numamem.dsl         |   36 +
 tests/data/acpi/virt/NFIT.dsl                 |  103 +
 tests/data/acpi/virt/NFIT.memhp.dsl           |  103 +
 tests/data/acpi/virt/SLIT.dsl                 |   31 +
 tests/data/acpi/virt/SLIT.memhp.dsl           |   31 +
 tests/data/acpi/virt/SPCR.dsl                 |   57 +
 tests/data/acpi/virt/SPCR.memhp.dsl           |   57 +
 tests/data/acpi/virt/SPCR.numamem.dsl         |   57 +
 tests/data/acpi/virt/SRAT.dsl                 |   57 +
 tests/data/acpi/virt/SRAT.memhp.dsl           |  107 +
 tests/data/acpi/virt/SRAT.numamem.dsl         |   57 +
 tests/data/acpi/virt/SSDT.dsl                 |  205 +
 .../bios-tables-test.x86_64.iso.raw           |  Bin 0 -> 425984 bytes
 tests/libqtest.c.orig                         | 1106 ++++++
 tests/qemu-iotests/core.12067                 |  Bin 0 -> 22716416 bytes
 .../bios-tables-test-allowed-diff.h.orig      |   18 +
 .../qtest/bios-tables-test-allowed-diff.h.rej |    9 +
 tests/qtest/bios-tables-test.c.orig           | 1200 ++++++
 tests/qtest/bios-tables-test.c.rej            |   22 +
 tests/vhost-user-bridge                       |  Bin 0 -> 83120 bytes
 tests/vhost-user-bridge.c.orig                | 1432 +++++++
 tests/vhost-user-test.c.orig                  |  364 ++
 303 files changed, 71489 insertions(+), 10 deletions(-)
 create mode 100644 tests/test-qapi-event.c
 create mode 100644 tests/test-qmp-introspect.c
 create mode 100644 tests/test-qmp-marshal.c
 create mode 100644 tests/.vhost-user-test.c.swo
 create mode 100644 tests/Makefile.include.orig
 create mode 100644 tests/Makefile.orig
 create mode 100644 tests/bios-tables-test.c.orig
 create mode 100644 tests/data/acpi/diff-aml.sh
 create mode 100644 tests/data/acpi/disassemle-aml.py
 create mode 100644 tests/data/acpi/microvm/APIC.dsl
 create mode 100644 tests/data/acpi/microvm/DSDT.dsl
 create mode 100644 tests/data/acpi/microvm/FACP.dsl
 create mode 100644 tests/data/acpi/pc/APIC.acpihmat.dsl
 create mode 100644 tests/data/acpi/pc/APIC.bridge
 create mode 100644 tests/data/acpi/pc/APIC.bridge.dsl
 create mode 100644 tests/data/acpi/pc/APIC.cphp.dsl
 create mode 100644 tests/data/acpi/pc/APIC.dimmpxm.dsl
 create mode 100644 tests/data/acpi/pc/APIC.dsl
 create mode 100644 tests/data/acpi/pc/APIC.hpbridge
 create mode 100644 tests/data/acpi/pc/APIC.ipmikcs
 create mode 100644 tests/data/acpi/pc/APIC.ipmikcs.dsl
 create mode 100644 tests/data/acpi/pc/APIC.memhp
 create mode 100644 tests/data/acpi/pc/APIC.memhp.dsl
 create mode 100644 tests/data/acpi/pc/APIC.numamem
 create mode 100644 tests/data/acpi/pc/APIC.numamem.dsl
 create mode 100644 tests/data/acpi/pc/APIC.roothp
 create mode 100644 tests/data/acpi/pc/DSDT.acpihmat.dsl
 create mode 100644 tests/data/acpi/pc/DSDT.bridge.dsl
 create mode 100644 tests/data/acpi/pc/DSDT.cphp.dsl
 create mode 100644 tests/data/acpi/pc/DSDT.dimmpxm.dsl
 create mode 100644 tests/data/acpi/pc/DSDT.dsl
 create mode 100644 tests/data/acpi/pc/DSDT.ipmikcs.dsl
 create mode 100644 tests/data/acpi/pc/DSDT.memhp.dsl
 create mode 100644 tests/data/acpi/pc/DSDT.numamem.dsl
 create mode 100644 tests/data/acpi/pc/FACP.acpihmat
 create mode 100644 tests/data/acpi/pc/FACP.acpihmat.dsl
 create mode 100644 tests/data/acpi/pc/FACP.bridge
 create mode 100644 tests/data/acpi/pc/FACP.bridge.dsl
 create mode 100644 tests/data/acpi/pc/FACP.cphp
 create mode 100644 tests/data/acpi/pc/FACP.cphp.dsl
 create mode 100644 tests/data/acpi/pc/FACP.dimmpxm
 create mode 100644 tests/data/acpi/pc/FACP.dimmpxm.dsl
 create mode 100644 tests/data/acpi/pc/FACP.dsl
 create mode 100644 tests/data/acpi/pc/FACP.hpbridge
 create mode 100644 tests/data/acpi/pc/FACP.ipmikcs
 create mode 100644 tests/data/acpi/pc/FACP.ipmikcs.dsl
 create mode 100644 tests/data/acpi/pc/FACP.memhp
 create mode 100644 tests/data/acpi/pc/FACP.memhp.dsl
 create mode 100644 tests/data/acpi/pc/FACP.numamem
 create mode 100644 tests/data/acpi/pc/FACP.numamem.dsl
 create mode 100644 tests/data/acpi/pc/FACP.roothp
 create mode 100644 tests/data/acpi/pc/FACS.acpihmat
 create mode 100644 tests/data/acpi/pc/FACS.acpihmat.dsl
 create mode 100644 tests/data/acpi/pc/FACS.bridge
 create mode 100644 tests/data/acpi/pc/FACS.bridge.dsl
 create mode 100644 tests/data/acpi/pc/FACS.cphp
 create mode 100644 tests/data/acpi/pc/FACS.cphp.dsl
 create mode 100644 tests/data/acpi/pc/FACS.dimmpxm
 create mode 100644 tests/data/acpi/pc/FACS.dimmpxm.dsl
 create mode 100644 tests/data/acpi/pc/FACS.dsl
 create mode 100644 tests/data/acpi/pc/FACS.hpbridge
 create mode 100644 tests/data/acpi/pc/FACS.ipmikcs
 create mode 100644 tests/data/acpi/pc/FACS.ipmikcs.dsl
 create mode 100644 tests/data/acpi/pc/FACS.memhp
 create mode 100644 tests/data/acpi/pc/FACS.memhp.dsl
 create mode 100644 tests/data/acpi/pc/FACS.numamem
 create mode 100644 tests/data/acpi/pc/FACS.numamem.dsl
 create mode 100644 tests/data/acpi/pc/FACS.roothp
 create mode 100644 tests/data/acpi/pc/HMAT.acpihmat.dsl
 create mode 100644 tests/data/acpi/pc/HMAT.dsl
 create mode 100644 tests/data/acpi/pc/HPET.acpihmat
 create mode 100644 tests/data/acpi/pc/HPET.acpihmat.dsl
 create mode 100644 tests/data/acpi/pc/HPET.bridge
 create mode 100644 tests/data/acpi/pc/HPET.bridge.dsl
 create mode 100644 tests/data/acpi/pc/HPET.cphp
 create mode 100644 tests/data/acpi/pc/HPET.cphp.dsl
 create mode 100644 tests/data/acpi/pc/HPET.dimmpxm
 create mode 100644 tests/data/acpi/pc/HPET.dimmpxm.dsl
 create mode 100644 tests/data/acpi/pc/HPET.dsl
 create mode 100644 tests/data/acpi/pc/HPET.hpbridge
 create mode 100644 tests/data/acpi/pc/HPET.ipmikcs
 create mode 100644 tests/data/acpi/pc/HPET.ipmikcs.dsl
 create mode 100644 tests/data/acpi/pc/HPET.memhp
 create mode 100644 tests/data/acpi/pc/HPET.memhp.dsl
 create mode 100644 tests/data/acpi/pc/HPET.numamem
 create mode 100644 tests/data/acpi/pc/HPET.numamem.dsl
 create mode 100644 tests/data/acpi/pc/HPET.roothp
 create mode 100644 tests/data/acpi/pc/NFIT.dimmpxm.dsl
 create mode 100644 tests/data/acpi/pc/NFIT.dsl
 create mode 100644 tests/data/acpi/pc/SLIT.cphp.dsl
 create mode 100644 tests/data/acpi/pc/SLIT.dsl
 create mode 100644 tests/data/acpi/pc/SLIT.memhp.dsl
 create mode 100644 tests/data/acpi/pc/SRAT.acpihmat.dsl
 create mode 100644 tests/data/acpi/pc/SRAT.cphp.dsl
 create mode 100644 tests/data/acpi/pc/SRAT.dimmpxm.dsl
 create mode 100644 tests/data/acpi/pc/SRAT.dsl
 create mode 100644 tests/data/acpi/pc/SRAT.memhp.dsl
 create mode 100644 tests/data/acpi/pc/SRAT.numamem.dsl
 create mode 100644 tests/data/acpi/pc/SSDT.dsl
 create mode 100644 tests/data/acpi/pc/WAET.acpihmat
 create mode 100644 tests/data/acpi/pc/WAET.acpihmat.dsl
 create mode 100644 tests/data/acpi/pc/WAET.bridge
 create mode 100644 tests/data/acpi/pc/WAET.bridge.dsl
 create mode 100644 tests/data/acpi/pc/WAET.cphp
 create mode 100644 tests/data/acpi/pc/WAET.cphp.dsl
 create mode 100644 tests/data/acpi/pc/WAET.dimmpxm
 create mode 100644 tests/data/acpi/pc/WAET.dimmpxm.dsl
 create mode 100644 tests/data/acpi/pc/WAET.dsl
 create mode 100644 tests/data/acpi/pc/WAET.hpbridge
 create mode 100644 tests/data/acpi/pc/WAET.ipmikcs
 create mode 100644 tests/data/acpi/pc/WAET.ipmikcs.dsl
 create mode 100644 tests/data/acpi/pc/WAET.memhp
 create mode 100644 tests/data/acpi/pc/WAET.memhp.dsl
 create mode 100644 tests/data/acpi/pc/WAET.numamem
 create mode 100644 tests/data/acpi/pc/WAET.numamem.dsl
 create mode 100644 tests/data/acpi/pc/WAET.roothp
 create mode 100644 tests/data/acpi/q35/APIC.acpihmat.dsl
 create mode 100644 tests/data/acpi/q35/APIC.bridge
 create mode 100644 tests/data/acpi/q35/APIC.bridge.dsl
 create mode 100644 tests/data/acpi/q35/APIC.cphp.dsl
 create mode 100644 tests/data/acpi/q35/APIC.dimmpxm.dsl
 create mode 100644 tests/data/acpi/q35/APIC.dsl
 create mode 100644 tests/data/acpi/q35/APIC.ipmibt
 create mode 100644 tests/data/acpi/q35/APIC.ipmibt.dsl
 create mode 100644 tests/data/acpi/q35/APIC.memhp
 create mode 100644 tests/data/acpi/q35/APIC.memhp.dsl
 create mode 100644 tests/data/acpi/q35/APIC.mmio64
 create mode 100644 tests/data/acpi/q35/APIC.mmio64.dsl
 create mode 100644 tests/data/acpi/q35/APIC.numamem
 create mode 100644 tests/data/acpi/q35/APIC.numamem.dsl
 create mode 100644 tests/data/acpi/q35/APIC.tis
 create mode 100644 tests/data/acpi/q35/APIC.tis.dsl
 create mode 100644 tests/data/acpi/q35/DSDT.acpihmat.dsl
 create mode 100644 tests/data/acpi/q35/DSDT.bridge.dsl
 create mode 100644 tests/data/acpi/q35/DSDT.cphp.dsl
 create mode 100644 tests/data/acpi/q35/DSDT.dimmpxm.dsl
 create mode 100644 tests/data/acpi/q35/DSDT.dsl
 create mode 100644 tests/data/acpi/q35/DSDT.ipmibt.dsl
 create mode 100644 tests/data/acpi/q35/DSDT.memhp.dsl
 create mode 100644 tests/data/acpi/q35/DSDT.mmio64.dsl
 create mode 100644 tests/data/acpi/q35/DSDT.numamem.dsl
 create mode 100644 tests/data/acpi/q35/DSDT.tis.dsl
 create mode 100644 tests/data/acpi/q35/FACP.acpihmat
 create mode 100644 tests/data/acpi/q35/FACP.acpihmat.dsl
 create mode 100644 tests/data/acpi/q35/FACP.bridge
 create mode 100644 tests/data/acpi/q35/FACP.bridge.dsl
 create mode 100644 tests/data/acpi/q35/FACP.cphp
 create mode 100644 tests/data/acpi/q35/FACP.cphp.dsl
 create mode 100644 tests/data/acpi/q35/FACP.dimmpxm
 create mode 100644 tests/data/acpi/q35/FACP.dimmpxm.dsl
 create mode 100644 tests/data/acpi/q35/FACP.dsl
 create mode 100644 tests/data/acpi/q35/FACP.ipmibt
 create mode 100644 tests/data/acpi/q35/FACP.ipmibt.dsl
 create mode 100644 tests/data/acpi/q35/FACP.memhp
 create mode 100644 tests/data/acpi/q35/FACP.memhp.dsl
 create mode 100644 tests/data/acpi/q35/FACP.mmio64
 create mode 100644 tests/data/acpi/q35/FACP.mmio64.dsl
 create mode 100644 tests/data/acpi/q35/FACP.numamem
 create mode 100644 tests/data/acpi/q35/FACP.numamem.dsl
 create mode 100644 tests/data/acpi/q35/FACP.tis
 create mode 100644 tests/data/acpi/q35/FACP.tis.dsl
 create mode 100644 tests/data/acpi/q35/FACS.acpihmat
 create mode 100644 tests/data/acpi/q35/FACS.acpihmat.dsl
 create mode 100644 tests/data/acpi/q35/FACS.bridge
 create mode 100644 tests/data/acpi/q35/FACS.bridge.dsl
 create mode 100644 tests/data/acpi/q35/FACS.cphp
 create mode 100644 tests/data/acpi/q35/FACS.cphp.dsl
 create mode 100644 tests/data/acpi/q35/FACS.dimmpxm
 create mode 100644 tests/data/acpi/q35/FACS.dimmpxm.dsl
 create mode 100644 tests/data/acpi/q35/FACS.dsl
 create mode 100644 tests/data/acpi/q35/FACS.ipmibt
 create mode 100644 tests/data/acpi/q35/FACS.ipmibt.dsl
 create mode 100644 tests/data/acpi/q35/FACS.memhp
 create mode 100644 tests/data/acpi/q35/FACS.memhp.dsl
 create mode 100644 tests/data/acpi/q35/FACS.mmio64
 create mode 100644 tests/data/acpi/q35/FACS.mmio64.dsl
 create mode 100644 tests/data/acpi/q35/FACS.numamem
 create mode 100644 tests/data/acpi/q35/FACS.numamem.dsl
 create mode 100644 tests/data/acpi/q35/FACS.tis
 create mode 100644 tests/data/acpi/q35/FACS.tis.dsl
 create mode 100644 tests/data/acpi/q35/HMAT.acpihmat.dsl
 create mode 100644 tests/data/acpi/q35/HMAT.dsl
 create mode 100644 tests/data/acpi/q35/HPET.acpihmat
 create mode 100644 tests/data/acpi/q35/HPET.acpihmat.dsl
 create mode 100644 tests/data/acpi/q35/HPET.bridge
 create mode 100644 tests/data/acpi/q35/HPET.bridge.dsl
 create mode 100644 tests/data/acpi/q35/HPET.cphp
 create mode 100644 tests/data/acpi/q35/HPET.cphp.dsl
 create mode 100644 tests/data/acpi/q35/HPET.dimmpxm
 create mode 100644 tests/data/acpi/q35/HPET.dimmpxm.dsl
 create mode 100644 tests/data/acpi/q35/HPET.dsl
 create mode 100644 tests/data/acpi/q35/HPET.ipmibt
 create mode 100644 tests/data/acpi/q35/HPET.ipmibt.dsl
 create mode 100644 tests/data/acpi/q35/HPET.memhp
 create mode 100644 tests/data/acpi/q35/HPET.memhp.dsl
 create mode 100644 tests/data/acpi/q35/HPET.mmio64
 create mode 100644 tests/data/acpi/q35/HPET.mmio64.dsl
 create mode 100644 tests/data/acpi/q35/HPET.numamem
 create mode 100644 tests/data/acpi/q35/HPET.numamem.dsl
 create mode 100644 tests/data/acpi/q35/HPET.tis
 create mode 100644 tests/data/acpi/q35/HPET.tis.dsl
 create mode 100644 tests/data/acpi/q35/MCFG.acpihmat
 create mode 100644 tests/data/acpi/q35/MCFG.acpihmat.dsl
 create mode 100644 tests/data/acpi/q35/MCFG.bridge
 create mode 100644 tests/data/acpi/q35/MCFG.bridge.dsl
 create mode 100644 tests/data/acpi/q35/MCFG.cphp
 create mode 100644 tests/data/acpi/q35/MCFG.cphp.dsl
 create mode 100644 tests/data/acpi/q35/MCFG.dimmpxm
 create mode 100644 tests/data/acpi/q35/MCFG.dimmpxm.dsl
 create mode 100644 tests/data/acpi/q35/MCFG.dsl
 create mode 100644 tests/data/acpi/q35/MCFG.ipmibt
 create mode 100644 tests/data/acpi/q35/MCFG.ipmibt.dsl
 create mode 100644 tests/data/acpi/q35/MCFG.memhp
 create mode 100644 tests/data/acpi/q35/MCFG.memhp.dsl
 create mode 100644 tests/data/acpi/q35/MCFG.mmio64
 create mode 100644 tests/data/acpi/q35/MCFG.mmio64.dsl
 create mode 100644 tests/data/acpi/q35/MCFG.numamem
 create mode 100644 tests/data/acpi/q35/MCFG.numamem.dsl
 create mode 100644 tests/data/acpi/q35/MCFG.tis
 create mode 100644 tests/data/acpi/q35/MCFG.tis.dsl
 create mode 100644 tests/data/acpi/q35/NFIT.dimmpxm.dsl
 create mode 100644 tests/data/acpi/q35/NFIT.dsl
 create mode 100644 tests/data/acpi/q35/SLIT.cphp.dsl
 create mode 100644 tests/data/acpi/q35/SLIT.dsl
 create mode 100644 tests/data/acpi/q35/SLIT.memhp.dsl
 create mode 100644 tests/data/acpi/q35/SRAT.acpihmat.dsl
 create mode 100644 tests/data/acpi/q35/SRAT.cphp.dsl
 create mode 100644 tests/data/acpi/q35/SRAT.dimmpxm.dsl
 create mode 100644 tests/data/acpi/q35/SRAT.dsl
 create mode 100644 tests/data/acpi/q35/SRAT.memhp.dsl
 create mode 100644 tests/data/acpi/q35/SRAT.mmio64.dsl
 create mode 100644 tests/data/acpi/q35/SRAT.numamem.dsl
 create mode 100644 tests/data/acpi/q35/SSDT.dsl
 create mode 100644 tests/data/acpi/q35/TPM2.dsl
 create mode 100644 tests/data/acpi/q35/TPM2.tis.dsl
 create mode 100644 tests/data/acpi/q35/WAET.acpihmat
 create mode 100644 tests/data/acpi/q35/WAET.acpihmat.dsl
 create mode 100644 tests/data/acpi/q35/WAET.bridge
 create mode 100644 tests/data/acpi/q35/WAET.bridge.dsl
 create mode 100644 tests/data/acpi/q35/WAET.cphp
 create mode 100644 tests/data/acpi/q35/WAET.cphp.dsl
 create mode 100644 tests/data/acpi/q35/WAET.dimmpxm
 create mode 100644 tests/data/acpi/q35/WAET.dimmpxm.dsl
 create mode 100644 tests/data/acpi/q35/WAET.dsl
 create mode 100644 tests/data/acpi/q35/WAET.ipmibt
 create mode 100644 tests/data/acpi/q35/WAET.ipmibt.dsl
 create mode 100644 tests/data/acpi/q35/WAET.memhp
 create mode 100644 tests/data/acpi/q35/WAET.memhp.dsl
 create mode 100644 tests/data/acpi/q35/WAET.mmio64
 create mode 100644 tests/data/acpi/q35/WAET.mmio64.dsl
 create mode 100644 tests/data/acpi/q35/WAET.numamem
 create mode 100644 tests/data/acpi/q35/WAET.numamem.dsl
 create mode 100644 tests/data/acpi/q35/WAET.tis
 create mode 100644 tests/data/acpi/q35/WAET.tis.dsl
 create mode 100644 tests/data/acpi/virt/APIC.dsl
 create mode 100644 tests/data/acpi/virt/APIC.memhp.dsl
 create mode 100644 tests/data/acpi/virt/APIC.numamem.dsl
 create mode 100644 tests/data/acpi/virt/DSDT.dsl
 create mode 100644 tests/data/acpi/virt/DSDT.memhp.dsl
 create mode 100644 tests/data/acpi/virt/DSDT.numamem.dsl
 create mode 100644 tests/data/acpi/virt/FACP.dsl
 create mode 100644 tests/data/acpi/virt/FACP.memhp.dsl
 create mode 100644 tests/data/acpi/virt/FACP.numamem.dsl
 create mode 100644 tests/data/acpi/virt/GTDT.dsl
 create mode 100644 tests/data/acpi/virt/GTDT.memhp.dsl
 create mode 100644 tests/data/acpi/virt/GTDT.numamem.dsl
 create mode 100644 tests/data/acpi/virt/MCFG.dsl
 create mode 100644 tests/data/acpi/virt/MCFG.memhp.dsl
 create mode 100644 tests/data/acpi/virt/MCFG.numamem.dsl
 create mode 100644 tests/data/acpi/virt/NFIT.dsl
 create mode 100644 tests/data/acpi/virt/NFIT.memhp.dsl
 create mode 100644 tests/data/acpi/virt/SLIT.dsl
 create mode 100644 tests/data/acpi/virt/SLIT.memhp.dsl
 create mode 100644 tests/data/acpi/virt/SPCR.dsl
 create mode 100644 tests/data/acpi/virt/SPCR.memhp.dsl
 create mode 100644 tests/data/acpi/virt/SPCR.numamem.dsl
 create mode 100644 tests/data/acpi/virt/SRAT.dsl
 create mode 100644 tests/data/acpi/virt/SRAT.memhp.dsl
 create mode 100644 tests/data/acpi/virt/SRAT.numamem.dsl
 create mode 100644 tests/data/acpi/virt/SSDT.dsl
 create mode 100644 tests/data/uefi-boot-images/bios-tables-test.x86_64.iso.raw
 create mode 100644 tests/libqtest.c.orig
 create mode 100644 tests/qemu-iotests/core.12067
 create mode 100644 tests/qtest/bios-tables-test-allowed-diff.h.orig
 create mode 100644 tests/qtest/bios-tables-test-allowed-diff.h.rej
 create mode 100644 tests/qtest/bios-tables-test.c.orig
 create mode 100644 tests/qtest/bios-tables-test.c.rej
 create mode 100755 tests/vhost-user-bridge
 create mode 100644 tests/vhost-user-bridge.c.orig
 create mode 100644 tests/vhost-user-test.c.orig

diff --git a/tests/qtest/bios-tables-test-allowed-diff.h b/tests/qtest/bios-tables-test-allowed-diff.h
index 631703142c..dfb8523c8b 100644
--- a/tests/qtest/bios-tables-test-allowed-diff.h
+++ b/tests/qtest/bios-tables-test-allowed-diff.h
@@ -1,11 +1 @@
 /* List of comma-separated changed AML files to ignore */
-"tests/data/acpi/q35/DSDT",
-"tests/data/acpi/q35/DSDT.acpihmat",
-"tests/data/acpi/q35/DSDT.bridge",
-"tests/data/acpi/q35/DSDT.cphp",
-"tests/data/acpi/q35/DSDT.dimmpxm",
-"tests/data/acpi/q35/DSDT.ipmibt",
-"tests/data/acpi/q35/DSDT.memhp",
-"tests/data/acpi/q35/DSDT.mmio64",
-"tests/data/acpi/q35/DSDT.numamem",
-"tests/data/acpi/q35/DSDT.tis",
diff --git a/tests/test-qapi-event.c b/tests/test-qapi-event.c
new file mode 100644
index 0000000000..bdeb9095d4
--- /dev/null
+++ b/tests/test-qapi-event.c
@@ -0,0 +1,198 @@
+/* AUTOMATICALLY GENERATED, DO NOT MODIFY */
+
+/*
+ * schema-defined QAPI event functions
+ *
+ * Copyright (c) 2014 Wenchao Xia
+ *
+ * Authors:
+ *  Wenchao Xia   <wenchaoqemu@gmail.com>
+ *
+ * This work is licensed under the terms of the GNU LGPL, version 2.1 or later.
+ * See the COPYING.LIB file in the top-level directory.
+ *
+ */
+
+#include "qemu/osdep.h"
+#include "qemu-common.h"
+#include "test-qapi-event.h"
+#include "test-qapi-visit.h"
+#include "qapi/qmp-output-visitor.h"
+#include "qapi/qmp-event.h"
+
+
+void qapi_event_send_event_a(Error **errp)
+{
+    QDict *qmp;
+    Error *err = NULL;
+    QMPEventFuncEmit emit;
+
+    emit = qmp_event_get_func_emit();
+    if (!emit) {
+        return;
+    }
+
+    qmp = qmp_event_build_dict("EVENT_A");
+
+    emit(TEST_QAPI_EVENT_EVENT_A, qmp, &err);
+
+    error_propagate(errp, err);
+    QDECREF(qmp);
+}
+
+void qapi_event_send_event_b(Error **errp)
+{
+    QDict *qmp;
+    Error *err = NULL;
+    QMPEventFuncEmit emit;
+
+    emit = qmp_event_get_func_emit();
+    if (!emit) {
+        return;
+    }
+
+    qmp = qmp_event_build_dict("EVENT_B");
+
+    emit(TEST_QAPI_EVENT_EVENT_B, qmp, &err);
+
+    error_propagate(errp, err);
+    QDECREF(qmp);
+}
+
+void qapi_event_send_event_c(bool has_a, int64_t a, bool has_b, UserDefOne *b, const char *c, Error **errp)
+{
+    QDict *qmp;
+    Error *err = NULL;
+    QMPEventFuncEmit emit;
+    QmpOutputVisitor *qov;
+    Visitor *v;
+    q_obj_EVENT_C_arg param = {
+        has_a, a, has_b, b, (char *)c
+    };
+
+    emit = qmp_event_get_func_emit();
+    if (!emit) {
+        return;
+    }
+
+    qmp = qmp_event_build_dict("EVENT_C");
+
+    qov = qmp_output_visitor_new();
+    v = qmp_output_get_visitor(qov);
+
+    visit_start_struct(v, "EVENT_C", NULL, 0, &err);
+    if (err) {
+        goto out;
+    }
+    visit_type_q_obj_EVENT_C_arg_members(v, &param, &err);
+    if (!err) {
+        visit_check_struct(v, &err);
+    }
+    visit_end_struct(v);
+    if (err) {
+        goto out;
+    }
+
+    qdict_put_obj(qmp, "data", qmp_output_get_qobject(qov));
+    emit(TEST_QAPI_EVENT_EVENT_C, qmp, &err);
+
+out:
+    qmp_output_visitor_cleanup(qov);
+    error_propagate(errp, err);
+    QDECREF(qmp);
+}
+
+void qapi_event_send_event_d(EventStructOne *a, const char *b, bool has_c, const char *c, bool has_enum3, EnumOne enum3, Error **errp)
+{
+    QDict *qmp;
+    Error *err = NULL;
+    QMPEventFuncEmit emit;
+    QmpOutputVisitor *qov;
+    Visitor *v;
+    q_obj_EVENT_D_arg param = {
+        a, (char *)b, has_c, (char *)c, has_enum3, enum3
+    };
+
+    emit = qmp_event_get_func_emit();
+    if (!emit) {
+        return;
+    }
+
+    qmp = qmp_event_build_dict("EVENT_D");
+
+    qov = qmp_output_visitor_new();
+    v = qmp_output_get_visitor(qov);
+
+    visit_start_struct(v, "EVENT_D", NULL, 0, &err);
+    if (err) {
+        goto out;
+    }
+    visit_type_q_obj_EVENT_D_arg_members(v, &param, &err);
+    if (!err) {
+        visit_check_struct(v, &err);
+    }
+    visit_end_struct(v);
+    if (err) {
+        goto out;
+    }
+
+    qdict_put_obj(qmp, "data", qmp_output_get_qobject(qov));
+    emit(TEST_QAPI_EVENT_EVENT_D, qmp, &err);
+
+out:
+    qmp_output_visitor_cleanup(qov);
+    error_propagate(errp, err);
+    QDECREF(qmp);
+}
+
+void qapi_event_send___org_qemu_x_event(__org_qemu_x_Enum __org_qemu_x_member1, const char *__org_qemu_x_member2, bool has_q_wchar_t, int64_t q_wchar_t, Error **errp)
+{
+    QDict *qmp;
+    Error *err = NULL;
+    QMPEventFuncEmit emit;
+    QmpOutputVisitor *qov;
+    Visitor *v;
+    __org_qemu_x_Struct param = {
+        __org_qemu_x_member1, (char *)__org_qemu_x_member2, has_q_wchar_t, q_wchar_t
+    };
+
+    emit = qmp_event_get_func_emit();
+    if (!emit) {
+        return;
+    }
+
+    qmp = qmp_event_build_dict("__ORG.QEMU_X-EVENT");
+
+    qov = qmp_output_visitor_new();
+    v = qmp_output_get_visitor(qov);
+
+    visit_start_struct(v, "__ORG.QEMU_X-EVENT", NULL, 0, &err);
+    if (err) {
+        goto out;
+    }
+    visit_type___org_qemu_x_Struct_members(v, &param, &err);
+    if (!err) {
+        visit_check_struct(v, &err);
+    }
+    visit_end_struct(v);
+    if (err) {
+        goto out;
+    }
+
+    qdict_put_obj(qmp, "data", qmp_output_get_qobject(qov));
+    emit(TEST_QAPI_EVENT___ORG_QEMU_X_EVENT, qmp, &err);
+
+out:
+    qmp_output_visitor_cleanup(qov);
+    error_propagate(errp, err);
+    QDECREF(qmp);
+}
+
+const char *const test_QAPIEvent_lookup[] = {
+    [TEST_QAPI_EVENT_EVENT_A] = "EVENT_A",
+    [TEST_QAPI_EVENT_EVENT_B] = "EVENT_B",
+    [TEST_QAPI_EVENT_EVENT_C] = "EVENT_C",
+    [TEST_QAPI_EVENT_EVENT_D] = "EVENT_D",
+    [TEST_QAPI_EVENT___ORG_QEMU_X_EVENT] = "__ORG.QEMU_X-EVENT",
+    [TEST_QAPI_EVENT__MAX] = NULL,
+};
diff --git a/tests/test-qmp-introspect.c b/tests/test-qmp-introspect.c
new file mode 100644
index 0000000000..edae06c64e
--- /dev/null
+++ b/tests/test-qmp-introspect.c
@@ -0,0 +1,58 @@
+/* AUTOMATICALLY GENERATED, DO NOT MODIFY */
+
+/*
+ * QAPI/QMP schema introspection
+ *
+ * Copyright (C) 2015 Red Hat, Inc.
+ *
+ * This work is licensed under the terms of the GNU LGPL, version 2.1 or later.
+ * See the COPYING.LIB file in the top-level directory.
+ *
+ */
+
+#include "qemu/osdep.h"
+#include "test-qmp-introspect.h"
+
+const char test_qmp_schema_json[] = "["
+    "{\"arg-type\": \"0\", \"meta-type\": \"event\", \"name\": \"EVENT_A\"}, "
+    "{\"arg-type\": \"0\", \"meta-type\": \"event\", \"name\": \"EVENT_B\"}, "
+    "{\"arg-type\": \"1\", \"meta-type\": \"event\", \"name\": \"EVENT_C\"}, "
+    "{\"arg-type\": \"2\", \"meta-type\": \"event\", \"name\": \"EVENT_D\"}, "
+    "{\"arg-type\": \"3\", \"meta-type\": \"event\", \"name\": \"__ORG.QEMU_X-EVENT\"}, "
+    "{\"arg-type\": \"4\", \"meta-type\": \"command\", \"name\": \"__org.qemu_x-command\", \"ret-type\": \"5\"}, "
+    "{\"arg-type\": \"6\", \"meta-type\": \"command\", \"name\": \"guest-get-time\", \"ret-type\": \"int\"}, "
+    "{\"arg-type\": \"7\", \"meta-type\": \"command\", \"name\": \"guest-sync\", \"ret-type\": \"any\"}, "
+    "{\"arg-type\": \"0\", \"meta-type\": \"command\", \"name\": \"user_def_cmd\", \"ret-type\": \"0\"}, "
+    "{\"arg-type\": \"8\", \"meta-type\": \"command\", \"name\": \"user_def_cmd0\", \"ret-type\": \"8\"}, "
+    "{\"arg-type\": \"9\", \"meta-type\": \"command\", \"name\": \"user_def_cmd1\", \"ret-type\": \"0\"}, "
+    "{\"arg-type\": \"10\", \"meta-type\": \"command\", \"name\": \"user_def_cmd2\", \"ret-type\": \"11\"}, "
+    "{\"members\": [], \"meta-type\": \"object\", \"name\": \"0\"}, "
+    "{\"members\": [{\"default\": null, \"name\": \"a\", \"type\": \"int\"}, {\"default\": null, \"name\": \"b\", \"type\": \"12\"}, {\"name\": \"c\", \"type\": \"str\"}], \"meta-type\": \"object\", \"name\": \"1\"}, "
+    "{\"members\": [{\"name\": \"a\", \"type\": \"13\"}, {\"name\": \"b\", \"type\": \"str\"}, {\"default\": null, \"name\": \"c\", \"type\": \"str\"}, {\"default\": null, \"name\": \"enum3\", \"type\": \"14\"}], \"meta-type\": \"object\", \"name\": \"2\"}, "
+    "{\"members\": [{\"name\": \"__org.qemu_x-member1\", \"type\": \"15\"}, {\"name\": \"__org.qemu_x-member2\", \"type\": \"str\"}, {\"default\": null, \"name\": \"wchar-t\", \"type\": \"int\"}], \"meta-type\": \"object\", \"name\": \"3\"}, "
+    "{\"members\": [{\"name\": \"a\", \"type\": \"[15]\"}, {\"name\": \"b\", \"type\": \"[3]\"}, {\"name\": \"c\", \"type\": \"16\"}, {\"name\": \"d\", \"type\": \"17\"}], \"meta-type\": \"object\", \"name\": \"4\"}, "
+    "{\"members\": [{\"name\": \"type\", \"type\": \"18\"}], \"meta-type\": \"object\", \"name\": \"5\", \"tag\": \"type\", \"variants\": [{\"case\": \"__org.qemu_x-branch\", \"type\": \"19\"}]}, "
+    "{\"members\": [{\"name\": \"a\", \"type\": \"int\"}, {\"default\": null, \"name\": \"b\", \"type\": \"int\"}], \"meta-type\": \"object\", \"name\": \"6\"}, "
+    "{\"json-type\": \"int\", \"meta-type\": \"builtin\", \"name\": \"int\"}, "
+    "{\"members\": [{\"name\": \"arg\", \"type\": \"any\"}], \"meta-type\": \"object\", \"name\": \"7\"}, "
+    "{\"json-type\": \"value\", \"meta-type\": \"builtin\", \"name\": \"any\"}, "
+    "{\"members\": [], \"meta-type\": \"object\", \"name\": \"8\"}, "
+    "{\"members\": [{\"name\": \"ud1a\", \"type\": \"12\"}], \"meta-type\": \"object\", \"name\": \"9\"}, "
+    "{\"members\": [{\"name\": \"ud1a\", \"type\": \"12\"}, {\"default\": null, \"name\": \"ud1b\", \"type\": \"12\"}], \"meta-type\": \"object\", \"name\": \"10\"}, "
+    "{\"members\": [{\"name\": \"string0\", \"type\": \"str\"}, {\"name\": \"dict1\", \"type\": \"20\"}], \"meta-type\": \"object\", \"name\": \"11\"}, "
+    "{\"members\": [{\"name\": \"integer\", \"type\": \"int\"}, {\"name\": \"string\", \"type\": \"str\"}, {\"default\": null, \"name\": \"enum1\", \"type\": \"14\"}], \"meta-type\": \"object\", \"name\": \"12\"}, "
+    "{\"json-type\": \"string\", \"meta-type\": \"builtin\", \"name\": \"str\"}, "
+    "{\"members\": [{\"name\": \"struct1\", \"type\": \"12\"}, {\"name\": \"string\", \"type\": \"str\"}, {\"default\": null, \"name\": \"enum2\", \"type\": \"14\"}], \"meta-type\": \"object\", \"name\": \"13\"}, "
+    "{\"meta-type\": \"enum\", \"name\": \"14\", \"values\": [\"value1\", \"value2\", \"value3\"]}, "
+    "{\"meta-type\": \"enum\", \"name\": \"15\", \"values\": [\"__org.qemu_x-value\"]}, "
+    "{\"element-type\": \"15\", \"meta-type\": \"array\", \"name\": \"[15]\"}, "
+    "{\"element-type\": \"3\", \"meta-type\": \"array\", \"name\": \"[3]\"}, "
+    "{\"members\": [{\"name\": \"__org.qemu_x-member1\", \"type\": \"15\"}], \"meta-type\": \"object\", \"name\": \"16\", \"tag\": \"__org.qemu_x-member1\", \"variants\": [{\"case\": \"__org.qemu_x-value\", \"type\": \"21\"}]}, "
+    "{\"members\": [{\"type\": \"str\"}, {\"type\": \"22\"}], \"meta-type\": \"alternate\", \"name\": \"17\"}, "
+    "{\"meta-type\": \"enum\", \"name\": \"18\", \"values\": [\"__org.qemu_x-branch\"]}, "
+    "{\"members\": [{\"name\": \"data\", \"type\": \"str\"}], \"meta-type\": \"object\", \"name\": \"19\"}, "
+    "{\"members\": [{\"name\": \"string1\", \"type\": \"str\"}, {\"name\": \"dict2\", \"type\": \"23\"}, {\"default\": null, \"name\": \"dict3\", \"type\": \"23\"}], \"meta-type\": \"object\", \"name\": \"20\"}, "
+    "{\"members\": [{\"name\": \"array\", \"type\": \"[5]\"}], \"meta-type\": \"object\", \"name\": \"21\"}, "
+    "{\"members\": [{\"name\": \"__org.qemu_x-member1\", \"type\": \"15\"}], \"meta-type\": \"object\", \"name\": \"22\"}, "
+    "{\"members\": [{\"name\": \"userdef\", \"type\": \"12\"}, {\"name\": \"string\", \"type\": \"str\"}], \"meta-type\": \"object\", \"name\": \"23\"}, "
+    "{\"element-type\": \"5\", \"meta-type\": \"array\", \"name\": \"[5]\"}]";
diff --git a/tests/test-qmp-marshal.c b/tests/test-qmp-marshal.c
new file mode 100644
index 0000000000..54e3952d35
--- /dev/null
+++ b/tests/test-qmp-marshal.c
@@ -0,0 +1,383 @@
+/* AUTOMATICALLY GENERATED, DO NOT MODIFY */
+
+/*
+ * schema-defined QMP->QAPI command dispatch
+ *
+ * Copyright IBM, Corp. 2011
+ *
+ * Authors:
+ *  Anthony Liguori   <aliguori@us.ibm.com>
+ *
+ * This work is licensed under the terms of the GNU LGPL, version 2.1 or later.
+ * See the COPYING.LIB file in the top-level directory.
+ *
+ */
+
+#include "qemu/osdep.h"
+#include "qemu-common.h"
+#include "qemu/module.h"
+#include "qapi/qmp/types.h"
+#include "qapi/qmp/dispatch.h"
+#include "qapi/visitor.h"
+#include "qapi/qmp-output-visitor.h"
+#include "qapi/qmp-input-visitor.h"
+#include "qapi/dealloc-visitor.h"
+#include "test-qapi-types.h"
+#include "test-qapi-visit.h"
+#include "test-qmp-commands.h"
+
+
+static void qmp_marshal_output___org_qemu_x_Union1(__org_qemu_x_Union1 *ret_in, QObject **ret_out, Error **errp)
+{
+    Error *err = NULL;
+    QmpOutputVisitor *qov = qmp_output_visitor_new();
+    QapiDeallocVisitor *qdv;
+    Visitor *v;
+
+    v = qmp_output_get_visitor(qov);
+    visit_type___org_qemu_x_Union1(v, "unused", &ret_in, &err);
+    if (err) {
+        goto out;
+    }
+    *ret_out = qmp_output_get_qobject(qov);
+
+out:
+    error_propagate(errp, err);
+    qmp_output_visitor_cleanup(qov);
+    qdv = qapi_dealloc_visitor_new();
+    v = qapi_dealloc_get_visitor(qdv);
+    visit_type___org_qemu_x_Union1(v, "unused", &ret_in, NULL);
+    qapi_dealloc_visitor_cleanup(qdv);
+}
+
+static void qmp_marshal___org_qemu_x_command(QDict *args, QObject **ret, Error **errp)
+{
+    Error *err = NULL;
+    __org_qemu_x_Union1 *retval;
+    QmpInputVisitor *qiv = qmp_input_visitor_new(QOBJECT(args), true);
+    QapiDeallocVisitor *qdv;
+    Visitor *v;
+    q_obj___org_qemu_x_command_arg arg = {0};
+
+    v = qmp_input_get_visitor(qiv);
+    visit_start_struct(v, NULL, NULL, 0, &err);
+    if (err) {
+        goto out;
+    }
+    visit_type_q_obj___org_qemu_x_command_arg_members(v, &arg, &err);
+    if (!err) {
+        visit_check_struct(v, &err);
+    }
+    visit_end_struct(v);
+    if (err) {
+        goto out;
+    }
+
+    retval = qmp___org_qemu_x_command(arg.a, arg.b, arg.c, arg.d, &err);
+    if (err) {
+        goto out;
+    }
+
+    qmp_marshal_output___org_qemu_x_Union1(retval, ret, &err);
+
+out:
+    error_propagate(errp, err);
+    qmp_input_visitor_cleanup(qiv);
+    qdv = qapi_dealloc_visitor_new();
+    v = qapi_dealloc_get_visitor(qdv);
+    visit_start_struct(v, NULL, NULL, 0, NULL);
+    visit_type_q_obj___org_qemu_x_command_arg_members(v, &arg, NULL);
+    visit_end_struct(v);
+    qapi_dealloc_visitor_cleanup(qdv);
+}
+
+static void qmp_marshal_output_int(int64_t ret_in, QObject **ret_out, Error **errp)
+{
+    Error *err = NULL;
+    QmpOutputVisitor *qov = qmp_output_visitor_new();
+    QapiDeallocVisitor *qdv;
+    Visitor *v;
+
+    v = qmp_output_get_visitor(qov);
+    visit_type_int(v, "unused", &ret_in, &err);
+    if (err) {
+        goto out;
+    }
+    *ret_out = qmp_output_get_qobject(qov);
+
+out:
+    error_propagate(errp, err);
+    qmp_output_visitor_cleanup(qov);
+    qdv = qapi_dealloc_visitor_new();
+    v = qapi_dealloc_get_visitor(qdv);
+    visit_type_int(v, "unused", &ret_in, NULL);
+    qapi_dealloc_visitor_cleanup(qdv);
+}
+
+static void qmp_marshal_guest_get_time(QDict *args, QObject **ret, Error **errp)
+{
+    Error *err = NULL;
+    int64_t retval;
+    QmpInputVisitor *qiv = qmp_input_visitor_new(QOBJECT(args), true);
+    QapiDeallocVisitor *qdv;
+    Visitor *v;
+    q_obj_guest_get_time_arg arg = {0};
+
+    v = qmp_input_get_visitor(qiv);
+    visit_start_struct(v, NULL, NULL, 0, &err);
+    if (err) {
+        goto out;
+    }
+    visit_type_q_obj_guest_get_time_arg_members(v, &arg, &err);
+    if (!err) {
+        visit_check_struct(v, &err);
+    }
+    visit_end_struct(v);
+    if (err) {
+        goto out;
+    }
+
+    retval = qmp_guest_get_time(arg.a, arg.has_b, arg.b, &err);
+    if (err) {
+        goto out;
+    }
+
+    qmp_marshal_output_int(retval, ret, &err);
+
+out:
+    error_propagate(errp, err);
+    qmp_input_visitor_cleanup(qiv);
+    qdv = qapi_dealloc_visitor_new();
+    v = qapi_dealloc_get_visitor(qdv);
+    visit_start_struct(v, NULL, NULL, 0, NULL);
+    visit_type_q_obj_guest_get_time_arg_members(v, &arg, NULL);
+    visit_end_struct(v);
+    qapi_dealloc_visitor_cleanup(qdv);
+}
+
+static void qmp_marshal_output_any(QObject *ret_in, QObject **ret_out, Error **errp)
+{
+    Error *err = NULL;
+    QmpOutputVisitor *qov = qmp_output_visitor_new();
+    QapiDeallocVisitor *qdv;
+    Visitor *v;
+
+    v = qmp_output_get_visitor(qov);
+    visit_type_any(v, "unused", &ret_in, &err);
+    if (err) {
+        goto out;
+    }
+    *ret_out = qmp_output_get_qobject(qov);
+
+out:
+    error_propagate(errp, err);
+    qmp_output_visitor_cleanup(qov);
+    qdv = qapi_dealloc_visitor_new();
+    v = qapi_dealloc_get_visitor(qdv);
+    visit_type_any(v, "unused", &ret_in, NULL);
+    qapi_dealloc_visitor_cleanup(qdv);
+}
+
+static void qmp_marshal_guest_sync(QDict *args, QObject **ret, Error **errp)
+{
+    Error *err = NULL;
+    QObject *retval;
+    QmpInputVisitor *qiv = qmp_input_visitor_new(QOBJECT(args), true);
+    QapiDeallocVisitor *qdv;
+    Visitor *v;
+    q_obj_guest_sync_arg arg = {0};
+
+    v = qmp_input_get_visitor(qiv);
+    visit_start_struct(v, NULL, NULL, 0, &err);
+    if (err) {
+        goto out;
+    }
+    visit_type_q_obj_guest_sync_arg_members(v, &arg, &err);
+    if (!err) {
+        visit_check_struct(v, &err);
+    }
+    visit_end_struct(v);
+    if (err) {
+        goto out;
+    }
+
+    retval = qmp_guest_sync(arg.arg, &err);
+    if (err) {
+        goto out;
+    }
+
+    qmp_marshal_output_any(retval, ret, &err);
+
+out:
+    error_propagate(errp, err);
+    qmp_input_visitor_cleanup(qiv);
+    qdv = qapi_dealloc_visitor_new();
+    v = qapi_dealloc_get_visitor(qdv);
+    visit_start_struct(v, NULL, NULL, 0, NULL);
+    visit_type_q_obj_guest_sync_arg_members(v, &arg, NULL);
+    visit_end_struct(v);
+    qapi_dealloc_visitor_cleanup(qdv);
+}
+
+static void qmp_marshal_user_def_cmd(QDict *args, QObject **ret, Error **errp)
+{
+    Error *err = NULL;
+
+    (void)args;
+
+    qmp_user_def_cmd(&err);
+    error_propagate(errp, err);
+}
+
+static void qmp_marshal_output_Empty2(Empty2 *ret_in, QObject **ret_out, Error **errp)
+{
+    Error *err = NULL;
+    QmpOutputVisitor *qov = qmp_output_visitor_new();
+    QapiDeallocVisitor *qdv;
+    Visitor *v;
+
+    v = qmp_output_get_visitor(qov);
+    visit_type_Empty2(v, "unused", &ret_in, &err);
+    if (err) {
+        goto out;
+    }
+    *ret_out = qmp_output_get_qobject(qov);
+
+out:
+    error_propagate(errp, err);
+    qmp_output_visitor_cleanup(qov);
+    qdv = qapi_dealloc_visitor_new();
+    v = qapi_dealloc_get_visitor(qdv);
+    visit_type_Empty2(v, "unused", &ret_in, NULL);
+    qapi_dealloc_visitor_cleanup(qdv);
+}
+
+static void qmp_marshal_user_def_cmd0(QDict *args, QObject **ret, Error **errp)
+{
+    Error *err = NULL;
+    Empty2 *retval;
+
+    (void)args;
+
+    retval = qmp_user_def_cmd0(&err);
+    if (err) {
+        goto out;
+    }
+
+    qmp_marshal_output_Empty2(retval, ret, &err);
+
+out:
+    error_propagate(errp, err);
+}
+
+static void qmp_marshal_user_def_cmd1(QDict *args, QObject **ret, Error **errp)
+{
+    Error *err = NULL;
+    QmpInputVisitor *qiv = qmp_input_visitor_new(QOBJECT(args), true);
+    QapiDeallocVisitor *qdv;
+    Visitor *v;
+    q_obj_user_def_cmd1_arg arg = {0};
+
+    v = qmp_input_get_visitor(qiv);
+    visit_start_struct(v, NULL, NULL, 0, &err);
+    if (err) {
+        goto out;
+    }
+    visit_type_q_obj_user_def_cmd1_arg_members(v, &arg, &err);
+    if (!err) {
+        visit_check_struct(v, &err);
+    }
+    visit_end_struct(v);
+    if (err) {
+        goto out;
+    }
+
+    qmp_user_def_cmd1(arg.ud1a, &err);
+
+out:
+    error_propagate(errp, err);
+    qmp_input_visitor_cleanup(qiv);
+    qdv = qapi_dealloc_visitor_new();
+    v = qapi_dealloc_get_visitor(qdv);
+    visit_start_struct(v, NULL, NULL, 0, NULL);
+    visit_type_q_obj_user_def_cmd1_arg_members(v, &arg, NULL);
+    visit_end_struct(v);
+    qapi_dealloc_visitor_cleanup(qdv);
+}
+
+static void qmp_marshal_output_UserDefTwo(UserDefTwo *ret_in, QObject **ret_out, Error **errp)
+{
+    Error *err = NULL;
+    QmpOutputVisitor *qov = qmp_output_visitor_new();
+    QapiDeallocVisitor *qdv;
+    Visitor *v;
+
+    v = qmp_output_get_visitor(qov);
+    visit_type_UserDefTwo(v, "unused", &ret_in, &err);
+    if (err) {
+        goto out;
+    }
+    *ret_out = qmp_output_get_qobject(qov);
+
+out:
+    error_propagate(errp, err);
+    qmp_output_visitor_cleanup(qov);
+    qdv = qapi_dealloc_visitor_new();
+    v = qapi_dealloc_get_visitor(qdv);
+    visit_type_UserDefTwo(v, "unused", &ret_in, NULL);
+    qapi_dealloc_visitor_cleanup(qdv);
+}
+
+static void qmp_marshal_user_def_cmd2(QDict *args, QObject **ret, Error **errp)
+{
+    Error *err = NULL;
+    UserDefTwo *retval;
+    QmpInputVisitor *qiv = qmp_input_visitor_new(QOBJECT(args), true);
+    QapiDeallocVisitor *qdv;
+    Visitor *v;
+    q_obj_user_def_cmd2_arg arg = {0};
+
+    v = qmp_input_get_visitor(qiv);
+    visit_start_struct(v, NULL, NULL, 0, &err);
+    if (err) {
+        goto out;
+    }
+    visit_type_q_obj_user_def_cmd2_arg_members(v, &arg, &err);
+    if (!err) {
+        visit_check_struct(v, &err);
+    }
+    visit_end_struct(v);
+    if (err) {
+        goto out;
+    }
+
+    retval = qmp_user_def_cmd2(arg.ud1a, arg.has_ud1b, arg.ud1b, &err);
+    if (err) {
+        goto out;
+    }
+
+    qmp_marshal_output_UserDefTwo(retval, ret, &err);
+
+out:
+    error_propagate(errp, err);
+    qmp_input_visitor_cleanup(qiv);
+    qdv = qapi_dealloc_visitor_new();
+    v = qapi_dealloc_get_visitor(qdv);
+    visit_start_struct(v, NULL, NULL, 0, NULL);
+    visit_type_q_obj_user_def_cmd2_arg_members(v, &arg, NULL);
+    visit_end_struct(v);
+    qapi_dealloc_visitor_cleanup(qdv);
+}
+
+static void qmp_init_marshal(void)
+{
+    qmp_register_command("__org.qemu_x-command", qmp_marshal___org_qemu_x_command, QCO_NO_OPTIONS);
+    qmp_register_command("guest-get-time", qmp_marshal_guest_get_time, QCO_NO_OPTIONS);
+    qmp_register_command("guest-sync", qmp_marshal_guest_sync, QCO_NO_OPTIONS);
+    qmp_register_command("user_def_cmd", qmp_marshal_user_def_cmd, QCO_NO_OPTIONS);
+    qmp_register_command("user_def_cmd0", qmp_marshal_user_def_cmd0, QCO_NO_OPTIONS);
+    qmp_register_command("user_def_cmd1", qmp_marshal_user_def_cmd1, QCO_NO_OPTIONS);
+    qmp_register_command("user_def_cmd2", qmp_marshal_user_def_cmd2, QCO_NO_OPTIONS);
+}
+
+qapi_init(qmp_init_marshal);
diff --git a/tests/.vhost-user-test.c.swo b/tests/.vhost-user-test.c.swo
new file mode 100644
index 0000000000000000000000000000000000000000..5545d2bef350c4c4197c70c9789465cfee8f84ce
GIT binary patch
literal 16384
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
XoRgvmQlLSjGu=TNt&UM~TJ!!55Am^f

literal 0
HcmV?d00001

diff --git a/tests/Makefile.include.orig b/tests/Makefile.include.orig
new file mode 100644
index 0000000000..ba82235bd4
--- /dev/null
+++ b/tests/Makefile.include.orig
@@ -0,0 +1,1012 @@
+
+.PHONY: check-help
+check-help:
+	@echo "Regression testing targets:"
+	@echo
+	@echo " $(MAKE) check                Run all tests"
+	@echo " $(MAKE) check-qtest-TARGET   Run qtest tests for given target"
+	@echo " $(MAKE) check-qtest          Run qtest tests"
+	@echo " $(MAKE) check-unit           Run qobject tests"
+	@echo " $(MAKE) check-speed          Run qobject speed tests"
+	@echo " $(MAKE) check-qapi-schema    Run QAPI schema tests"
+	@echo " $(MAKE) check-block          Run block tests"
+	@echo " $(MAKE) check-tcg            Run TCG tests"
+	@echo " $(MAKE) check-acceptance     Run all acceptance (functional) tests"
+	@echo " $(MAKE) check-report.html    Generates an HTML test report"
+	@echo " $(MAKE) check-venv           Creates a Python venv for tests"
+	@echo " $(MAKE) check-clean          Clean the tests"
+	@echo
+	@echo "Please note that HTML reports do not regenerate if the unit tests"
+	@echo "has not changed."
+	@echo
+	@echo "The variable SPEED can be set to control the gtester speed setting."
+	@echo "Default options are -k and (for $(MAKE) V=1) --verbose; they can be"
+	@echo "changed with variable GTESTER_OPTIONS."
+
+ifneq ($(wildcard config-host.mak),)
+export SRC_PATH
+
+# TODO don't duplicate $(SRC_PATH)/Makefile's qapi-py here
+qapi-py = $(SRC_PATH)/scripts/qapi/commands.py \
+$(SRC_PATH)/scripts/qapi/events.py \
+$(SRC_PATH)/scripts/qapi/introspect.py \
+$(SRC_PATH)/scripts/qapi/types.py \
+$(SRC_PATH)/scripts/qapi/visit.py \
+$(SRC_PATH)/scripts/qapi/common.py \
+$(SRC_PATH)/scripts/qapi/doc.py \
+$(SRC_PATH)/scripts/qapi-gen.py
+
+# Get the list of all supported sysemu targets
+SYSEMU_TARGET_LIST := $(subst -softmmu.mak,,$(notdir \
+   $(wildcard $(SRC_PATH)/default-configs/*-softmmu.mak)))
+
+check-unit-y += tests/check-qdict$(EXESUF)
+check-unit-y += tests/check-block-qdict$(EXESUF)
+check-unit-y += tests/test-char$(EXESUF)
+check-unit-y += tests/check-qnum$(EXESUF)
+check-unit-y += tests/check-qstring$(EXESUF)
+check-unit-y += tests/check-qlist$(EXESUF)
+check-unit-y += tests/check-qnull$(EXESUF)
+check-unit-y += tests/check-qobject$(EXESUF)
+check-unit-y += tests/check-qjson$(EXESUF)
+check-unit-y += tests/check-qlit$(EXESUF)
+check-unit-y += tests/test-qobject-output-visitor$(EXESUF)
+check-unit-y += tests/test-clone-visitor$(EXESUF)
+check-unit-y += tests/test-qobject-input-visitor$(EXESUF)
+check-unit-y += tests/test-qmp-cmds$(EXESUF)
+check-unit-y += tests/test-string-input-visitor$(EXESUF)
+check-unit-y += tests/test-string-output-visitor$(EXESUF)
+check-unit-y += tests/test-qmp-event$(EXESUF)
+check-unit-y += tests/test-opts-visitor$(EXESUF)
+check-unit-y += tests/test-coroutine$(EXESUF)
+check-unit-y += tests/test-visitor-serialization$(EXESUF)
+check-unit-y += tests/test-iov$(EXESUF)
+check-unit-y += tests/test-aio$(EXESUF)
+check-unit-y += tests/test-aio-multithread$(EXESUF)
+check-unit-y += tests/test-throttle$(EXESUF)
+check-unit-y += tests/test-thread-pool$(EXESUF)
+check-unit-y += tests/test-hbitmap$(EXESUF)
+check-unit-y += tests/test-bdrv-drain$(EXESUF)
+check-unit-y += tests/test-blockjob$(EXESUF)
+check-unit-y += tests/test-blockjob-txn$(EXESUF)
+check-unit-y += tests/test-block-backend$(EXESUF)
+check-unit-y += tests/test-image-locking$(EXESUF)
+check-unit-y += tests/test-x86-cpuid$(EXESUF)
+# all code tested by test-x86-cpuid is inside topology.h
+ifeq ($(CONFIG_SOFTMMU),y)
+check-unit-y += tests/test-xbzrle$(EXESUF)
+check-unit-$(CONFIG_POSIX) += tests/test-vmstate$(EXESUF)
+endif
+check-unit-y += tests/test-cutils$(EXESUF)
+check-unit-y += tests/test-shift128$(EXESUF)
+check-unit-y += tests/test-mul64$(EXESUF)
+check-unit-y += tests/test-int128$(EXESUF)
+# all code tested by test-int128 is inside int128.h
+check-unit-y += tests/rcutorture$(EXESUF)
+check-unit-y += tests/test-rcu-list$(EXESUF)
+check-unit-y += tests/test-rcu-simpleq$(EXESUF)
+check-unit-y += tests/test-rcu-tailq$(EXESUF)
+check-unit-y += tests/test-qdist$(EXESUF)
+check-unit-y += tests/test-qht$(EXESUF)
+# FIXME: {test-qht-par + gprof} often break on Travis CI
+check-unit-$(call lnot,$(CONFIG_GPROF)) += tests/test-qht-par$(EXESUF)
+check-unit-y += tests/test-bitops$(EXESUF)
+check-unit-y += tests/test-bitcnt$(EXESUF)
+check-unit-y += tests/test-qdev-global-props$(EXESUF)
+check-unit-y += tests/check-qom-interface$(EXESUF)
+check-unit-y += tests/check-qom-proplist$(EXESUF)
+check-unit-y += tests/test-qemu-opts$(EXESUF)
+check-unit-y += tests/test-keyval$(EXESUF)
+check-unit-y += tests/test-write-threshold$(EXESUF)
+check-unit-y += tests/test-crypto-hash$(EXESUF)
+check-speed-y += tests/benchmark-crypto-hash$(EXESUF)
+check-unit-y += tests/test-crypto-hmac$(EXESUF)
+check-speed-y += tests/benchmark-crypto-hmac$(EXESUF)
+check-unit-y += tests/test-crypto-cipher$(EXESUF)
+check-speed-y += tests/benchmark-crypto-cipher$(EXESUF)
+check-unit-y += tests/test-crypto-secret$(EXESUF)
+check-unit-$(CONFIG_GNUTLS) += tests/test-crypto-tlscredsx509$(EXESUF)
+check-unit-$(CONFIG_GNUTLS) += tests/test-crypto-tlssession$(EXESUF)
+ifneq (,$(findstring qemu-ga,$(TOOLS)))
+check-unit-$(CONFIG_LINUX) += tests/test-qga$(EXESUF)
+endif
+check-unit-y += tests/test-timed-average$(EXESUF)
+check-unit-y += tests/test-util-sockets$(EXESUF)
+check-unit-y += tests/test-io-task$(EXESUF)
+check-unit-y += tests/test-io-channel-socket$(EXESUF)
+check-unit-y += tests/test-io-channel-file$(EXESUF)
+check-unit-$(CONFIG_GNUTLS) += tests/test-io-channel-tls$(EXESUF)
+check-unit-y += tests/test-io-channel-command$(EXESUF)
+check-unit-y += tests/test-io-channel-buffer$(EXESUF)
+check-unit-y += tests/test-base64$(EXESUF)
+check-unit-$(if $(CONFIG_NETTLE),y,$(CONFIG_GCRYPT)) += tests/test-crypto-pbkdf$(EXESUF)
+check-unit-y += tests/test-crypto-ivgen$(EXESUF)
+check-unit-y += tests/test-crypto-afsplit$(EXESUF)
+check-unit-y += tests/test-crypto-xts$(EXESUF)
+check-unit-y += tests/test-crypto-block$(EXESUF)
+check-unit-y += tests/test-logging$(EXESUF)
+check-unit-$(CONFIG_REPLICATION) += tests/test-replication$(EXESUF)
+check-unit-y += tests/test-bufferiszero$(EXESUF)
+check-unit-y += tests/test-uuid$(EXESUF)
+check-unit-y += tests/ptimer-test$(EXESUF)
+check-unit-y += tests/test-qapi-util$(EXESUF)
+
+check-block-$(CONFIG_POSIX) += tests/qemu-iotests-quick.sh
+
+# All QTests for now are POSIX-only, but the dependencies are
+# really in libqtest, not in the testcases themselves.
+
+check-qtest-generic-y += tests/qmp-test$(EXESUF)
+check-qtest-generic-y += tests/qmp-cmd-test$(EXESUF)
+
+check-qtest-generic-y += tests/device-introspect-test$(EXESUF)
+check-qtest-generic-y += tests/cdrom-test$(EXESUF)
+
+check-qtest-ipack-y += tests/ipoctal232-test$(EXESUF)
+
+check-qtest-virtioserial-y += tests/virtio-console-test$(EXESUF)
+
+check-qtest-virtio-y += tests/virtio-net-test$(EXESUF)
+check-qtest-virtio-$(CONFIG_VIRTIO_BALLOON) += tests/virtio-balloon-test$(EXESUF)
+check-qtest-virtio-y += tests/virtio-blk-test$(EXESUF)
+check-qtest-virtio-$(CONFIG_VIRTIO_RNG) += tests/virtio-rng-test$(EXESUF)
+check-qtest-virtio-$(CONFIG_VIRTIO_SCSI) += tests/virtio-scsi-test$(EXESUF)
+ifeq ($(CONFIG_VIRTIO)$(CONFIG_VIRTFS)$(CONFIG_PCI),yyy)
+check-qtest-virtio-$(CONFIG_VIRTIO_9P) += tests/virtio-9p-test$(EXESUF)
+endif
+check-qtest-virtio-y += tests/virtio-serial-test$(EXESUF)
+check-qtest-virtio-y += $(check-qtest-virtioserial-y)
+
+check-qtest-pci-y += tests/e1000-test$(EXESUF)
+check-qtest-pci-y += tests/e1000e-test$(EXESUF)
+check-qtest-pci-$(CONFIG_RTL8139_PCI) += tests/rtl8139-test$(EXESUF)
+check-qtest-pci-$(CONFIG_PCNET_PCI) += tests/pcnet-test$(EXESUF)
+check-qtest-pci-$(CONFIG_EEPRO100_PCI) += tests/eepro100-test$(EXESUF)
+check-qtest-pci-$(CONFIG_NE2000_PCI) += tests/ne2000-test$(EXESUF)
+check-qtest-pci-$(CONFIG_NVME_PCI) += tests/nvme-test$(EXESUF)
+check-qtest-pci-$(CONFIG_AC97) += tests/ac97-test$(EXESUF)
+check-qtest-pci-$(CONFIG_ES1370) += tests/es1370-test$(EXESUF)
+check-qtest-pci-y += $(check-qtest-virtio-y)
+check-qtest-pci-$(CONFIG_IPACK) += tests/tpci200-test$(EXESUF)
+check-qtest-pci-$(CONFIG_IPACK) += $(check-qtest-ipack-y)
+check-qtest-pci-y += tests/display-vga-test$(EXESUF)
+check-qtest-pci-$(CONFIG_HDA) += tests/intel-hda-test$(EXESUF)
+check-qtest-pci-$(CONFIG_IVSHMEM_DEVICE) += tests/ivshmem-test$(EXESUF)
+check-qtest-pci-y += tests/megasas-test$(EXESUF)
+
+check-qtest-i386-$(CONFIG_ISA_TESTDEV) = tests/endianness-test$(EXESUF)
+check-qtest-i386-y += tests/fdc-test$(EXESUF)
+check-qtest-i386-y += tests/ide-test$(EXESUF)
+check-qtest-i386-y += tests/ahci-test$(EXESUF)
+check-qtest-i386-y += tests/hd-geo-test$(EXESUF)
+check-qtest-i386-y += tests/boot-order-test$(EXESUF)
+check-qtest-i386-y += tests/bios-tables-test$(EXESUF)
+check-qtest-i386-$(CONFIG_SGA) += tests/boot-serial-test$(EXESUF)
+check-qtest-i386-$(CONFIG_SLIRP) += tests/pxe-test$(EXESUF)
+check-qtest-i386-y += tests/rtc-test$(EXESUF)
+check-qtest-i386-y += tests/ipmi-kcs-test$(EXESUF)
+check-qtest-i386-y += tests/ipmi-bt-test$(EXESUF)
+check-qtest-i386-y += tests/i440fx-test$(EXESUF)
+check-qtest-i386-y += tests/fw_cfg-test$(EXESUF)
+check-qtest-i386-y += tests/drive_del-test$(EXESUF)
+check-qtest-i386-$(CONFIG_WDT_IB700) += tests/wdt_ib700-test$(EXESUF)
+check-qtest-i386-y += tests/tco-test$(EXESUF)
+check-qtest-i386-y += $(check-qtest-pci-y)
+check-qtest-i386-$(CONFIG_VMXNET3_PCI) += tests/vmxnet3-test$(EXESUF)
+check-qtest-i386-$(CONFIG_PVPANIC) += tests/pvpanic-test$(EXESUF)
+check-qtest-i386-$(CONFIG_I82801B11) += tests/i82801b11-test$(EXESUF)
+check-qtest-i386-$(CONFIG_IOH3420) += tests/ioh3420-test$(EXESUF)
+check-qtest-i386-$(CONFIG_USB_OHCI) += tests/usb-hcd-ohci-test$(EXESUF)
+check-qtest-i386-$(CONFIG_USB_UHCI) += tests/usb-hcd-uhci-test$(EXESUF)
+ifeq ($(CONFIG_USB_ECHI)$(CONFIG_USB_UHCI),yy)
+check-qtest-i386-y += tests/usb-hcd-ehci-test$(EXESUF)
+endif
+check-qtest-i386-$(CONFIG_USB_XHCI_NEC) += tests/usb-hcd-xhci-test$(EXESUF)
+check-qtest-i386-y += tests/cpu-plug-test$(EXESUF)
+check-qtest-i386-y += tests/q35-test$(EXESUF)
+check-qtest-i386-y += tests/vmgenid-test$(EXESUF)
+check-qtest-i386-$(CONFIG_VHOST_USER_NET_TEST_i386) += tests/vhost-user-test$(EXESUF)
+ifeq ($(CONFIG_VHOST_USER_NET_TEST_i386),)
+check-qtest-x86_64-$(CONFIG_VHOST_USER_NET_TEST_x86_64) += tests/vhost-user-test$(EXESUF)
+endif
+check-qtest-i386-$(CONFIG_TPM_CRB) += tests/tpm-crb-swtpm-test$(EXESUF)
+check-qtest-i386-$(CONFIG_TPM_CRB) += tests/tpm-crb-test$(EXESUF)
+check-qtest-i386-$(CONFIG_TPM_TIS) += tests/tpm-tis-swtpm-test$(EXESUF)
+check-qtest-i386-$(CONFIG_TPM_TIS) += tests/tpm-tis-test$(EXESUF)
+check-qtest-i386-$(CONFIG_SLIRP) += tests/test-netfilter$(EXESUF)
+check-qtest-i386-$(CONFIG_POSIX) += tests/test-filter-mirror$(EXESUF)
+check-qtest-i386-$(CONFIG_RTL8139_PCI) += tests/test-filter-redirector$(EXESUF)
+check-qtest-i386-y += tests/migration-test$(EXESUF)
+check-qtest-i386-y += tests/test-x86-cpuid-compat$(EXESUF)
+check-qtest-i386-y += tests/numa-test$(EXESUF)
+check-qtest-x86_64-y += $(check-qtest-i386-y)
+check-qtest-x86_64-$(CONFIG_SDHCI) += tests/sdhci-test$(EXESUF)
+
+check-qtest-alpha-y += tests/boot-serial-test$(EXESUF)
+check-qtest-alpha-$(CONFIG_VGA) += tests/display-vga-test$(EXESUF)
+
+check-qtest-hppa-y += tests/boot-serial-test$(EXESUF)
+check-qtest-hppa-$(CONFIG_VGA) += tests/display-vga-test$(EXESUF)
+
+check-qtest-m68k-y = tests/boot-serial-test$(EXESUF)
+
+check-qtest-microblaze-y += tests/boot-serial-test$(EXESUF)
+
+check-qtest-mips-$(CONFIG_ISA_TESTDEV) = tests/endianness-test$(EXESUF)
+check-qtest-mips-$(CONFIG_VGA) += tests/display-vga-test$(EXESUF)
+
+check-qtest-mips64-$(CONFIG_ISA_TESTDEV) = tests/endianness-test$(EXESUF)
+check-qtest-mips64-$(CONFIG_VGA) += tests/display-vga-test$(EXESUF)
+
+check-qtest-mips64el-$(CONFIG_ISA_TESTDEV) = tests/endianness-test$(EXESUF)
+check-qtest-mips64el-$(CONFIG_VGA) += tests/display-vga-test$(EXESUF)
+
+check-qtest-moxie-y += tests/boot-serial-test$(EXESUF)
+
+check-qtest-ppc-$(CONFIG_ISA_TESTDEV) = tests/endianness-test$(EXESUF)
+check-qtest-ppc-y += tests/boot-order-test$(EXESUF)
+check-qtest-ppc-y += tests/prom-env-test$(EXESUF)
+check-qtest-ppc-y += tests/drive_del-test$(EXESUF)
+check-qtest-ppc-y += tests/boot-serial-test$(EXESUF)
+check-qtest-ppc-y += tests/m48t59-test$(EXESUF)
+
+check-qtest-ppc64-y += $(check-qtest-ppc-y)
+check-qtest-ppc64-y += tests/spapr-phb-test$(EXESUF)
+check-qtest-ppc64-y += tests/pnv-xscom-test$(EXESUF)
+check-qtest-ppc64-y += tests/migration-test$(EXESUF)
+check-qtest-ppc64-y += tests/rtas-test$(EXESUF)
+check-qtest-ppc64-$(CONFIG_SLIRP) += tests/pxe-test$(EXESUF)
+check-qtest-ppc64-$(CONFIG_USB_OHCI) += tests/usb-hcd-ohci-test$(EXESUF)
+check-qtest-ppc64-$(CONFIG_USB_UHCI) += tests/usb-hcd-uhci-test$(EXESUF)
+check-qtest-ppc64-$(CONFIG_USB_XHCI_NEC) += tests/usb-hcd-xhci-test$(EXESUF)
+check-qtest-ppc64-y += $(check-qtest-virtio-y)
+check-qtest-ppc64-$(CONFIG_SLIRP) += tests/test-netfilter$(EXESUF)
+check-qtest-ppc64-$(CONFIG_POSIX) += tests/test-filter-mirror$(EXESUF)
+check-qtest-ppc64-$(CONFIG_RTL8139_PCI) += tests/test-filter-redirector$(EXESUF)
+check-qtest-ppc64-y += tests/display-vga-test$(EXESUF)
+check-qtest-ppc64-y += tests/numa-test$(EXESUF)
+check-qtest-ppc64-$(CONFIG_IVSHMEM_DEVICE) += tests/ivshmem-test$(EXESUF)
+check-qtest-ppc64-y += tests/cpu-plug-test$(EXESUF)
+
+check-qtest-sh4-$(CONFIG_ISA_TESTDEV) = tests/endianness-test$(EXESUF)
+
+check-qtest-sh4eb-$(CONFIG_ISA_TESTDEV) = tests/endianness-test$(EXESUF)
+
+check-qtest-sparc-y += tests/prom-env-test$(EXESUF)
+check-qtest-sparc-y += tests/m48t59-test$(EXESUF)
+check-qtest-sparc-y += tests/boot-serial-test$(EXESUF)
+
+check-qtest-sparc64-$(CONFIG_ISA_TESTDEV) = tests/endianness-test$(EXESUF)
+check-qtest-sparc64-y += tests/prom-env-test$(EXESUF)
+check-qtest-sparc64-y += tests/boot-serial-test$(EXESUF)
+
+check-qtest-arm-y += tests/tmp105-test$(EXESUF)
+check-qtest-arm-y += tests/pca9552-test$(EXESUF)
+check-qtest-arm-y += tests/ds1338-test$(EXESUF)
+check-qtest-arm-y += tests/microbit-test$(EXESUF)
+check-qtest-arm-y += tests/m25p80-test$(EXESUF)
+check-qtest-arm-y += tests/virtio-blk-test$(EXESUF)
+check-qtest-arm-y += tests/test-arm-mptimer$(EXESUF)
+check-qtest-arm-y += tests/boot-serial-test$(EXESUF)
+check-qtest-arm-$(CONFIG_SDHCI) += tests/sdhci-test$(EXESUF)
+check-qtest-arm-y += tests/hexloader-test$(EXESUF)
+
+check-qtest-aarch64-y = tests/numa-test$(EXESUF)
+check-qtest-aarch64-$(CONFIG_SDHCI) += tests/sdhci-test$(EXESUF)
+check-qtest-aarch64-y += tests/boot-serial-test$(EXESUF)
+check-qtest-aarch64-y += tests/migration-test$(EXESUF)
+
+check-qtest-microblazeel-y += $(check-qtest-microblaze-y)
+
+check-qtest-xtensaeb-y += $(check-qtest-xtensa-y)
+
+check-qtest-s390x-y = tests/boot-serial-test$(EXESUF)
+check-qtest-s390x-$(CONFIG_SLIRP) += tests/pxe-test$(EXESUF)
+check-qtest-s390x-$(CONFIG_SLIRP) += tests/test-netfilter$(EXESUF)
+check-qtest-s390x-$(CONFIG_POSIX) += tests/test-filter-mirror$(EXESUF)
+check-qtest-s390x-$(CONFIG_POSIX) += tests/test-filter-redirector$(EXESUF)
+check-qtest-s390x-y += tests/drive_del-test$(EXESUF)
+check-qtest-s390x-y += tests/virtio-ccw-test$(EXESUF)
+check-qtest-s390x-y += tests/cpu-plug-test$(EXESUF)
+check-qtest-s390x-y += tests/migration-test$(EXESUF)
+
+check-qtest-generic-y += tests/machine-none-test$(EXESUF)
+check-qtest-generic-y += tests/qom-test$(EXESUF)
+check-qtest-generic-y += tests/test-hmp$(EXESUF)
+
+qapi-schema += alternate-any.json
+qapi-schema += alternate-array.json
+qapi-schema += alternate-base.json
+qapi-schema += alternate-clash.json
+qapi-schema += alternate-conflict-dict.json
+qapi-schema += alternate-conflict-enum-bool.json
+qapi-schema += alternate-conflict-enum-int.json
+qapi-schema += alternate-conflict-string.json
+qapi-schema += alternate-conflict-bool-string.json
+qapi-schema += alternate-conflict-num-string.json
+qapi-schema += alternate-empty.json
+qapi-schema += alternate-invalid-dict.json
+qapi-schema += alternate-nested.json
+qapi-schema += alternate-unknown.json
+qapi-schema += args-alternate.json
+qapi-schema += args-any.json
+qapi-schema += args-array-empty.json
+qapi-schema += args-array-unknown.json
+qapi-schema += args-bad-boxed.json
+qapi-schema += args-boxed-anon.json
+qapi-schema += args-boxed-empty.json
+qapi-schema += args-boxed-string.json
+qapi-schema += args-int.json
+qapi-schema += args-invalid.json
+qapi-schema += args-member-array-bad.json
+qapi-schema += args-member-case.json
+qapi-schema += args-member-unknown.json
+qapi-schema += args-name-clash.json
+qapi-schema += args-union.json
+qapi-schema += args-unknown.json
+qapi-schema += bad-base.json
+qapi-schema += bad-data.json
+qapi-schema += bad-ident.json
+qapi-schema += bad-if.json
+qapi-schema += bad-if-empty.json
+qapi-schema += bad-if-empty-list.json
+qapi-schema += bad-if-list.json
+qapi-schema += bad-type-bool.json
+qapi-schema += bad-type-dict.json
+qapi-schema += bad-type-int.json
+qapi-schema += base-cycle-direct.json
+qapi-schema += base-cycle-indirect.json
+qapi-schema += command-int.json
+qapi-schema += comments.json
+qapi-schema += doc-bad-alternate-member.json
+qapi-schema += doc-bad-command-arg.json
+qapi-schema += doc-bad-section.json
+qapi-schema += doc-bad-symbol.json
+qapi-schema += doc-bad-union-member.json
+qapi-schema += doc-before-include.json
+qapi-schema += doc-before-pragma.json
+qapi-schema += doc-duplicated-arg.json
+qapi-schema += doc-duplicated-return.json
+qapi-schema += doc-duplicated-since.json
+qapi-schema += doc-empty-arg.json
+qapi-schema += doc-empty-section.json
+qapi-schema += doc-empty-symbol.json
+qapi-schema += doc-good.json
+qapi-schema += doc-interleaved-section.json
+qapi-schema += doc-invalid-end.json
+qapi-schema += doc-invalid-end2.json
+qapi-schema += doc-invalid-return.json
+qapi-schema += doc-invalid-section.json
+qapi-schema += doc-invalid-start.json
+qapi-schema += doc-missing-colon.json
+qapi-schema += doc-missing-expr.json
+qapi-schema += doc-missing-space.json
+qapi-schema += doc-missing.json
+qapi-schema += doc-no-symbol.json
+qapi-schema += double-data.json
+qapi-schema += double-type.json
+qapi-schema += duplicate-key.json
+qapi-schema += empty.json
+qapi-schema += enum-bad-member.json
+qapi-schema += enum-bad-name.json
+qapi-schema += enum-bad-prefix.json
+qapi-schema += enum-clash-member.json
+qapi-schema += enum-dict-member-unknown.json
+qapi-schema += enum-if-invalid.json
+qapi-schema += enum-int-member.json
+qapi-schema += enum-member-case.json
+qapi-schema += enum-missing-data.json
+qapi-schema += enum-wrong-data.json
+qapi-schema += escape-outside-string.json
+qapi-schema += escape-too-big.json
+qapi-schema += escape-too-short.json
+qapi-schema += event-boxed-empty.json
+qapi-schema += event-case.json
+qapi-schema += event-member-invalid-dict.json
+qapi-schema += event-nest-struct.json
+qapi-schema += flat-union-array-branch.json
+qapi-schema += flat-union-bad-base.json
+qapi-schema += flat-union-bad-discriminator.json
+qapi-schema += flat-union-base-any.json
+qapi-schema += flat-union-base-union.json
+qapi-schema += flat-union-clash-member.json
+qapi-schema += flat-union-empty.json
+qapi-schema += flat-union-inline.json
+qapi-schema += flat-union-inline-invalid-dict.json
+qapi-schema += flat-union-int-branch.json
+qapi-schema += flat-union-invalid-branch-key.json
+qapi-schema += flat-union-invalid-discriminator.json
+qapi-schema += flat-union-invalid-if-discriminator.json
+qapi-schema += flat-union-no-base.json
+qapi-schema += flat-union-optional-discriminator.json
+qapi-schema += flat-union-string-discriminator.json
+qapi-schema += funny-char.json
+qapi-schema += ident-with-escape.json
+qapi-schema += include-before-err.json
+qapi-schema += include-cycle.json
+qapi-schema += include-extra-junk.json
+qapi-schema += include-format-err.json
+qapi-schema += include-nested-err.json
+qapi-schema += include-no-file.json
+qapi-schema += include-non-file.json
+qapi-schema += include-relpath.json
+qapi-schema += include-repetition.json
+qapi-schema += include-self-cycle.json
+qapi-schema += include-simple.json
+qapi-schema += indented-expr.json
+qapi-schema += leading-comma-list.json
+qapi-schema += leading-comma-object.json
+qapi-schema += missing-colon.json
+qapi-schema += missing-comma-list.json
+qapi-schema += missing-comma-object.json
+qapi-schema += missing-type.json
+qapi-schema += nested-struct-data.json
+qapi-schema += nested-struct-data-invalid-dict.json
+qapi-schema += non-objects.json
+qapi-schema += oob-test.json
+qapi-schema += allow-preconfig-test.json
+qapi-schema += pragma-doc-required-crap.json
+qapi-schema += pragma-extra-junk.json
+qapi-schema += pragma-name-case-whitelist-crap.json
+qapi-schema += pragma-non-dict.json
+qapi-schema += pragma-returns-whitelist-crap.json
+qapi-schema += qapi-schema-test.json
+qapi-schema += quoted-structural-chars.json
+qapi-schema += redefined-builtin.json
+qapi-schema += redefined-command.json
+qapi-schema += redefined-event.json
+qapi-schema += redefined-type.json
+qapi-schema += reserved-command-q.json
+qapi-schema += reserved-enum-q.json
+qapi-schema += reserved-member-has.json
+qapi-schema += reserved-member-q.json
+qapi-schema += reserved-member-u.json
+qapi-schema += reserved-member-underscore.json
+qapi-schema += reserved-type-kind.json
+qapi-schema += reserved-type-list.json
+qapi-schema += returns-alternate.json
+qapi-schema += returns-array-bad.json
+qapi-schema += returns-dict.json
+qapi-schema += returns-unknown.json
+qapi-schema += returns-whitelist.json
+qapi-schema += struct-base-clash-deep.json
+qapi-schema += struct-base-clash.json
+qapi-schema += struct-data-invalid.json
+qapi-schema += struct-member-invalid-dict.json
+qapi-schema += struct-member-invalid.json
+qapi-schema += trailing-comma-list.json
+qapi-schema += trailing-comma-object.json
+qapi-schema += type-bypass-bad-gen.json
+qapi-schema += unclosed-list.json
+qapi-schema += unclosed-object.json
+qapi-schema += unclosed-string.json
+qapi-schema += unicode-str.json
+qapi-schema += union-base-empty.json
+qapi-schema += union-base-no-discriminator.json
+qapi-schema += union-branch-case.json
+qapi-schema += union-branch-invalid-dict.json
+qapi-schema += union-clash-branches.json
+qapi-schema += union-empty.json
+qapi-schema += union-invalid-base.json
+qapi-schema += union-optional-branch.json
+qapi-schema += union-unknown.json
+qapi-schema += unknown-escape.json
+qapi-schema += unknown-expr-key.json
+
+
+check-qapi-schema-y := $(addprefix tests/qapi-schema/, $(qapi-schema))
+
+GENERATED_FILES += tests/test-qapi-types.h tests/test-qapi-visit.h \
+	tests/test-qapi-commands.h tests/test-qapi-events.h \
+	tests/test-qapi-introspect.h
+
+test-obj-y = tests/check-qnum.o tests/check-qstring.o tests/check-qdict.o \
+	tests/check-qlist.o tests/check-qnull.o tests/check-qobject.o \
+	tests/check-qjson.o tests/check-qlit.o \
+	tests/check-block-qtest.o \
+	tests/test-coroutine.o tests/test-string-output-visitor.o \
+	tests/test-string-input-visitor.o tests/test-qobject-output-visitor.o \
+	tests/test-clone-visitor.o \
+	tests/test-qobject-input-visitor.o \
+	tests/test-qmp-cmds.o tests/test-visitor-serialization.o \
+	tests/test-x86-cpuid.o tests/test-mul64.o tests/test-int128.o \
+	tests/test-opts-visitor.o tests/test-qmp-event.o \
+	tests/rcutorture.o tests/test-rcu-list.o \
+	tests/test-rcu-simpleq.o \
+	tests/test-rcu-tailq.o \
+	tests/test-qdist.o tests/test-shift128.o \
+	tests/test-qht.o tests/qht-bench.o tests/test-qht-par.o \
+	tests/atomic_add-bench.o tests/atomic64-bench.o
+
+$(test-obj-y): QEMU_INCLUDES += -Itests
+QEMU_CFLAGS += -I$(SRC_PATH)/tests
+
+
+# Deps that are common to various different sets of tests below
+test-util-obj-y = libqemuutil.a
+test-qom-obj-y = $(qom-obj-y) $(test-util-obj-y)
+test-qapi-obj-y = tests/test-qapi-visit.o tests/test-qapi-types.o \
+	tests/test-qapi-events.o tests/test-qapi-introspect.o \
+	$(test-qom-obj-y)
+benchmark-crypto-obj-y = $(crypto-obj-y) $(test-qom-obj-y)
+test-crypto-obj-y = $(crypto-obj-y) $(test-qom-obj-y)
+test-io-obj-y = $(io-obj-y) $(test-crypto-obj-y)
+test-block-obj-y = $(block-obj-y) $(test-io-obj-y) tests/iothread.o
+
+tests/check-qnum$(EXESUF): tests/check-qnum.o $(test-util-obj-y)
+tests/check-qstring$(EXESUF): tests/check-qstring.o $(test-util-obj-y)
+tests/check-qdict$(EXESUF): tests/check-qdict.o $(test-util-obj-y)
+tests/check-block-qdict$(EXESUF): tests/check-block-qdict.o $(test-util-obj-y)
+tests/check-qlist$(EXESUF): tests/check-qlist.o $(test-util-obj-y)
+tests/check-qnull$(EXESUF): tests/check-qnull.o $(test-util-obj-y)
+tests/check-qobject$(EXESUF): tests/check-qobject.o $(test-util-obj-y)
+tests/check-qjson$(EXESUF): tests/check-qjson.o $(test-util-obj-y)
+tests/check-qlit$(EXESUF): tests/check-qlit.o $(test-util-obj-y)
+tests/check-qom-interface$(EXESUF): tests/check-qom-interface.o $(test-qom-obj-y)
+tests/check-qom-proplist$(EXESUF): tests/check-qom-proplist.o $(test-qom-obj-y)
+
+tests/test-char$(EXESUF): tests/test-char.o $(test-util-obj-y) $(qtest-obj-y) $(test-io-obj-y) $(chardev-obj-y)
+tests/test-coroutine$(EXESUF): tests/test-coroutine.o $(test-block-obj-y)
+tests/test-aio$(EXESUF): tests/test-aio.o $(test-block-obj-y)
+tests/test-aio-multithread$(EXESUF): tests/test-aio-multithread.o $(test-block-obj-y)
+tests/test-throttle$(EXESUF): tests/test-throttle.o $(test-block-obj-y)
+tests/test-bdrv-drain$(EXESUF): tests/test-bdrv-drain.o $(test-block-obj-y) $(test-util-obj-y)
+tests/test-blockjob$(EXESUF): tests/test-blockjob.o $(test-block-obj-y) $(test-util-obj-y)
+tests/test-blockjob-txn$(EXESUF): tests/test-blockjob-txn.o $(test-block-obj-y) $(test-util-obj-y)
+tests/test-block-backend$(EXESUF): tests/test-block-backend.o $(test-block-obj-y) $(test-util-obj-y)
+tests/test-image-locking$(EXESUF): tests/test-image-locking.o $(test-block-obj-y) $(test-util-obj-y)
+tests/test-thread-pool$(EXESUF): tests/test-thread-pool.o $(test-block-obj-y)
+tests/test-iov$(EXESUF): tests/test-iov.o $(test-util-obj-y)
+tests/test-hbitmap$(EXESUF): tests/test-hbitmap.o $(test-util-obj-y) $(test-crypto-obj-y)
+tests/test-x86-cpuid$(EXESUF): tests/test-x86-cpuid.o
+tests/test-xbzrle$(EXESUF): tests/test-xbzrle.o migration/xbzrle.o migration/page_cache.o $(test-util-obj-y)
+tests/test-cutils$(EXESUF): tests/test-cutils.o util/cutils.o $(test-util-obj-y)
+tests/test-int128$(EXESUF): tests/test-int128.o
+tests/rcutorture$(EXESUF): tests/rcutorture.o $(test-util-obj-y)
+tests/test-rcu-list$(EXESUF): tests/test-rcu-list.o $(test-util-obj-y)
+tests/test-rcu-simpleq$(EXESUF): tests/test-rcu-simpleq.o $(test-util-obj-y)
+tests/test-rcu-tailq$(EXESUF): tests/test-rcu-tailq.o $(test-util-obj-y)
+tests/test-qdist$(EXESUF): tests/test-qdist.o $(test-util-obj-y)
+tests/test-qht$(EXESUF): tests/test-qht.o $(test-util-obj-y)
+tests/test-qht-par$(EXESUF): tests/test-qht-par.o tests/qht-bench$(EXESUF) $(test-util-obj-y)
+tests/qht-bench$(EXESUF): tests/qht-bench.o $(test-util-obj-y)
+tests/test-bufferiszero$(EXESUF): tests/test-bufferiszero.o $(test-util-obj-y)
+tests/atomic_add-bench$(EXESUF): tests/atomic_add-bench.o $(test-util-obj-y)
+tests/atomic64-bench$(EXESUF): tests/atomic64-bench.o $(test-util-obj-y)
+
+tests/fp/%:
+	$(MAKE) -C $(dir $@) $(notdir $@)
+
+tests/test-qdev-global-props$(EXESUF): tests/test-qdev-global-props.o \
+	hw/core/qdev.o hw/core/qdev-properties.o hw/core/hotplug.o\
+	hw/core/bus.o \
+	hw/core/irq.o \
+	hw/core/fw-path-provider.o \
+	hw/core/reset.o \
+	$(test-qapi-obj-y)
+tests/test-vmstate$(EXESUF): tests/test-vmstate.o \
+	migration/vmstate.o migration/vmstate-types.o migration/qemu-file.o \
+        migration/qemu-file-channel.o migration/qjson.o \
+	$(test-io-obj-y)
+tests/test-timed-average$(EXESUF): tests/test-timed-average.o $(test-util-obj-y)
+tests/test-base64$(EXESUF): tests/test-base64.o $(test-util-obj-y)
+tests/ptimer-test$(EXESUF): tests/ptimer-test.o tests/ptimer-test-stubs.o hw/core/ptimer.o
+
+tests/test-logging$(EXESUF): tests/test-logging.o $(test-util-obj-y)
+
+tests/test-replication$(EXESUF): tests/test-replication.o $(test-util-obj-y) \
+	$(test-block-obj-y)
+
+tests/test-qapi-types.c tests/test-qapi-types.h \
+tests/test-qapi-visit.c tests/test-qapi-visit.h \
+tests/test-qapi-commands.h tests/test-qapi-commands.c \
+tests/test-qapi-events.c tests/test-qapi-events.h \
+tests/test-qapi-introspect.c tests/test-qapi-introspect.h: \
+tests/test-qapi-gen-timestamp ;
+tests/test-qapi-gen-timestamp: $(SRC_PATH)/tests/qapi-schema/qapi-schema-test.json $(qapi-py)
+	$(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-gen.py \
+		-o tests -p "test-" $<, \
+		"GEN","$(@:%-timestamp=%)")
+	@>$@
+
+tests/qapi-schema/doc-good.test.texi: $(SRC_PATH)/tests/qapi-schema/doc-good.json $(qapi-py)
+	$(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-gen.py \
+		-o tests/qapi-schema -p "doc-good-" $<, \
+		"GEN","$@")
+	@mv tests/qapi-schema/doc-good-qapi-doc.texi $@
+	@rm -f tests/qapi-schema/doc-good-qapi-*.[ch] tests/qapi-schema/doc-good-qmp-*.[ch]
+
+tests/test-string-output-visitor$(EXESUF): tests/test-string-output-visitor.o $(test-qapi-obj-y)
+tests/test-string-input-visitor$(EXESUF): tests/test-string-input-visitor.o $(test-qapi-obj-y)
+tests/test-qmp-event$(EXESUF): tests/test-qmp-event.o $(test-qapi-obj-y)
+tests/test-qobject-output-visitor$(EXESUF): tests/test-qobject-output-visitor.o $(test-qapi-obj-y)
+tests/test-clone-visitor$(EXESUF): tests/test-clone-visitor.o $(test-qapi-obj-y)
+tests/test-qobject-input-visitor$(EXESUF): tests/test-qobject-input-visitor.o $(test-qapi-obj-y)
+tests/test-qmp-cmds$(EXESUF): tests/test-qmp-cmds.o tests/test-qapi-commands.o $(test-qapi-obj-y)
+tests/test-visitor-serialization$(EXESUF): tests/test-visitor-serialization.o $(test-qapi-obj-y)
+tests/test-opts-visitor$(EXESUF): tests/test-opts-visitor.o $(test-qapi-obj-y)
+
+tests/test-shift128$(EXESUF): tests/test-shift128.o $(test-util-obj-y)
+tests/test-mul64$(EXESUF): tests/test-mul64.o $(test-util-obj-y)
+tests/test-bitops$(EXESUF): tests/test-bitops.o $(test-util-obj-y)
+tests/test-bitcnt$(EXESUF): tests/test-bitcnt.o $(test-util-obj-y)
+tests/test-crypto-hash$(EXESUF): tests/test-crypto-hash.o $(test-crypto-obj-y)
+tests/benchmark-crypto-hash$(EXESUF): tests/benchmark-crypto-hash.o $(test-crypto-obj-y)
+tests/test-crypto-hmac$(EXESUF): tests/test-crypto-hmac.o $(test-crypto-obj-y)
+tests/benchmark-crypto-hmac$(EXESUF): tests/benchmark-crypto-hmac.o $(test-crypto-obj-y)
+tests/test-crypto-cipher$(EXESUF): tests/test-crypto-cipher.o $(test-crypto-obj-y)
+tests/benchmark-crypto-cipher$(EXESUF): tests/benchmark-crypto-cipher.o $(test-crypto-obj-y)
+tests/test-crypto-secret$(EXESUF): tests/test-crypto-secret.o $(test-crypto-obj-y)
+tests/test-crypto-xts$(EXESUF): tests/test-crypto-xts.o $(test-crypto-obj-y)
+
+tests/crypto-tls-x509-helpers.o-cflags := $(TASN1_CFLAGS)
+tests/crypto-tls-x509-helpers.o-libs := $(TASN1_LIBS)
+tests/pkix_asn1_tab.o-cflags := $(TASN1_CFLAGS)
+
+tests/test-crypto-tlscredsx509.o-cflags := $(TASN1_CFLAGS)
+tests/test-crypto-tlscredsx509$(EXESUF): tests/test-crypto-tlscredsx509.o \
+	tests/crypto-tls-x509-helpers.o tests/pkix_asn1_tab.o $(test-crypto-obj-y)
+
+tests/test-crypto-tlssession.o-cflags := $(TASN1_CFLAGS)
+tests/test-crypto-tlssession$(EXESUF): tests/test-crypto-tlssession.o \
+	tests/crypto-tls-x509-helpers.o tests/pkix_asn1_tab.o \
+	tests/crypto-tls-psk-helpers.o \
+        $(test-crypto-obj-y)
+tests/test-util-sockets$(EXESUF): tests/test-util-sockets.o \
+	tests/socket-helpers.o $(test-util-obj-y)
+tests/test-io-task$(EXESUF): tests/test-io-task.o $(test-io-obj-y)
+tests/test-io-channel-socket$(EXESUF): tests/test-io-channel-socket.o \
+        tests/io-channel-helpers.o tests/socket-helpers.o $(test-io-obj-y)
+tests/tpm-crb-swtpm-test$(EXESUF): tests/tpm-crb-swtpm-test.o tests/tpm-emu.o \
+	tests/tpm-util.o tests/tpm-tests.o $(test-io-obj-y)
+tests/tpm-crb-test$(EXESUF): tests/tpm-crb-test.o tests/tpm-emu.o $(test-io-obj-y)
+tests/tpm-tis-swtpm-test$(EXESUF): tests/tpm-tis-swtpm-test.o tests/tpm-emu.o \
+	tests/tpm-util.o tests/tpm-tests.o $(test-io-obj-y)
+tests/tpm-tis-test$(EXESUF): tests/tpm-tis-test.o tests/tpm-emu.o $(test-io-obj-y)
+tests/test-io-channel-file$(EXESUF): tests/test-io-channel-file.o \
+        tests/io-channel-helpers.o $(test-io-obj-y)
+tests/test-io-channel-tls$(EXESUF): tests/test-io-channel-tls.o \
+	tests/crypto-tls-x509-helpers.o tests/pkix_asn1_tab.o \
+	tests/io-channel-helpers.o $(test-io-obj-y)
+tests/test-io-channel-command$(EXESUF): tests/test-io-channel-command.o \
+        tests/io-channel-helpers.o $(test-io-obj-y)
+tests/test-io-channel-buffer$(EXESUF): tests/test-io-channel-buffer.o \
+        tests/io-channel-helpers.o $(test-io-obj-y)
+tests/test-crypto-pbkdf$(EXESUF): tests/test-crypto-pbkdf.o $(test-crypto-obj-y)
+tests/test-crypto-ivgen$(EXESUF): tests/test-crypto-ivgen.o $(test-crypto-obj-y)
+tests/test-crypto-afsplit$(EXESUF): tests/test-crypto-afsplit.o $(test-crypto-obj-y)
+tests/test-crypto-block$(EXESUF): tests/test-crypto-block.o $(test-crypto-obj-y)
+
+libqos-obj-y = tests/libqos/pci.o tests/libqos/fw_cfg.o tests/libqos/malloc.o
+libqos-obj-y += tests/libqos/i2c.o tests/libqos/libqos.o
+libqos-spapr-obj-y = $(libqos-obj-y) tests/libqos/malloc-spapr.o
+libqos-spapr-obj-y += tests/libqos/libqos-spapr.o
+libqos-spapr-obj-y += tests/libqos/rtas.o
+libqos-spapr-obj-y += tests/libqos/pci-spapr.o
+libqos-pc-obj-y = $(libqos-obj-y) tests/libqos/pci-pc.o
+libqos-pc-obj-y += tests/libqos/malloc-pc.o tests/libqos/libqos-pc.o
+libqos-pc-obj-y += tests/libqos/ahci.o
+libqos-omap-obj-y = $(libqos-obj-y) tests/libqos/i2c-omap.o
+libqos-imx-obj-y = $(libqos-obj-y) tests/libqos/i2c-imx.o
+libqos-usb-obj-y = $(libqos-spapr-obj-y) $(libqos-pc-obj-y) tests/libqos/usb.o
+libqos-virtio-obj-y = $(libqos-spapr-obj-y) $(libqos-pc-obj-y) tests/libqos/virtio.o tests/libqos/virtio-pci.o tests/libqos/virtio-mmio.o tests/libqos/malloc-generic.o
+
+tests/qmp-test$(EXESUF): tests/qmp-test.o
+tests/qmp-cmd-test$(EXESUF): tests/qmp-cmd-test.o
+tests/device-introspect-test$(EXESUF): tests/device-introspect-test.o
+tests/rtc-test$(EXESUF): tests/rtc-test.o
+tests/m48t59-test$(EXESUF): tests/m48t59-test.o
+tests/hexloader-test$(EXESUF): tests/hexloader-test.o
+tests/endianness-test$(EXESUF): tests/endianness-test.o
+tests/spapr-phb-test$(EXESUF): tests/spapr-phb-test.o $(libqos-obj-y)
+tests/prom-env-test$(EXESUF): tests/prom-env-test.o $(libqos-obj-y)
+tests/rtas-test$(EXESUF): tests/rtas-test.o $(libqos-spapr-obj-y)
+tests/fdc-test$(EXESUF): tests/fdc-test.o
+tests/ide-test$(EXESUF): tests/ide-test.o $(libqos-pc-obj-y)
+tests/ahci-test$(EXESUF): tests/ahci-test.o $(libqos-pc-obj-y)
+tests/ipmi-kcs-test$(EXESUF): tests/ipmi-kcs-test.o
+tests/ipmi-bt-test$(EXESUF): tests/ipmi-bt-test.o
+tests/hd-geo-test$(EXESUF): tests/hd-geo-test.o
+tests/boot-order-test$(EXESUF): tests/boot-order-test.o $(libqos-obj-y)
+tests/boot-serial-test$(EXESUF): tests/boot-serial-test.o $(libqos-obj-y)
+tests/bios-tables-test$(EXESUF): tests/bios-tables-test.o \
+	tests/boot-sector.o tests/acpi-utils.o $(libqos-obj-y)
+tests/pxe-test$(EXESUF): tests/pxe-test.o tests/boot-sector.o $(libqos-obj-y)
+tests/tmp105-test$(EXESUF): tests/tmp105-test.o $(libqos-omap-obj-y)
+tests/pca9552-test$(EXESUF): tests/pca9552-test.o $(libqos-omap-obj-y)
+tests/ds1338-test$(EXESUF): tests/ds1338-test.o $(libqos-imx-obj-y)
+tests/microbit-test$(EXESUF): tests/microbit-test.o
+tests/m25p80-test$(EXESUF): tests/m25p80-test.o
+tests/i440fx-test$(EXESUF): tests/i440fx-test.o $(libqos-pc-obj-y)
+tests/q35-test$(EXESUF): tests/q35-test.o $(libqos-pc-obj-y)
+tests/fw_cfg-test$(EXESUF): tests/fw_cfg-test.o $(libqos-pc-obj-y)
+tests/e1000-test$(EXESUF): tests/e1000-test.o
+tests/e1000e-test$(EXESUF): tests/e1000e-test.o $(libqos-pc-obj-y)
+tests/rtl8139-test$(EXESUF): tests/rtl8139-test.o $(libqos-pc-obj-y)
+tests/pcnet-test$(EXESUF): tests/pcnet-test.o
+tests/pnv-xscom-test$(EXESUF): tests/pnv-xscom-test.o
+tests/eepro100-test$(EXESUF): tests/eepro100-test.o
+tests/vmxnet3-test$(EXESUF): tests/vmxnet3-test.o
+tests/ne2000-test$(EXESUF): tests/ne2000-test.o
+tests/wdt_ib700-test$(EXESUF): tests/wdt_ib700-test.o
+tests/tco-test$(EXESUF): tests/tco-test.o $(libqos-pc-obj-y)
+tests/virtio-balloon-test$(EXESUF): tests/virtio-balloon-test.o $(libqos-virtio-obj-y)
+tests/virtio-blk-test$(EXESUF): tests/virtio-blk-test.o $(libqos-virtio-obj-y)
+tests/virtio-ccw-test$(EXESUF): tests/virtio-ccw-test.o
+tests/virtio-net-test$(EXESUF): tests/virtio-net-test.o $(libqos-pc-obj-y) $(libqos-virtio-obj-y)
+tests/virtio-rng-test$(EXESUF): tests/virtio-rng-test.o $(libqos-pc-obj-y)
+tests/virtio-scsi-test$(EXESUF): tests/virtio-scsi-test.o $(libqos-virtio-obj-y)
+tests/virtio-9p-test$(EXESUF): tests/virtio-9p-test.o $(libqos-virtio-obj-y)
+tests/virtio-serial-test$(EXESUF): tests/virtio-serial-test.o $(libqos-virtio-obj-y)
+tests/virtio-console-test$(EXESUF): tests/virtio-console-test.o $(libqos-virtio-obj-y)
+tests/tpci200-test$(EXESUF): tests/tpci200-test.o
+tests/display-vga-test$(EXESUF): tests/display-vga-test.o
+tests/ipoctal232-test$(EXESUF): tests/ipoctal232-test.o
+tests/qom-test$(EXESUF): tests/qom-test.o
+tests/test-hmp$(EXESUF): tests/test-hmp.o
+tests/machine-none-test$(EXESUF): tests/machine-none-test.o
+tests/drive_del-test$(EXESUF): tests/drive_del-test.o $(libqos-virtio-obj-y)
+tests/qdev-monitor-test$(EXESUF): tests/qdev-monitor-test.o $(libqos-pc-obj-y)
+tests/nvme-test$(EXESUF): tests/nvme-test.o $(libqos-pc-obj-y)
+tests/pvpanic-test$(EXESUF): tests/pvpanic-test.o
+tests/i82801b11-test$(EXESUF): tests/i82801b11-test.o
+tests/ac97-test$(EXESUF): tests/ac97-test.o
+tests/es1370-test$(EXESUF): tests/es1370-test.o
+tests/intel-hda-test$(EXESUF): tests/intel-hda-test.o
+tests/ioh3420-test$(EXESUF): tests/ioh3420-test.o
+tests/usb-hcd-ohci-test$(EXESUF): tests/usb-hcd-ohci-test.o $(libqos-usb-obj-y)
+tests/usb-hcd-uhci-test$(EXESUF): tests/usb-hcd-uhci-test.o $(libqos-usb-obj-y)
+tests/usb-hcd-ehci-test$(EXESUF): tests/usb-hcd-ehci-test.o $(libqos-usb-obj-y)
+tests/usb-hcd-xhci-test$(EXESUF): tests/usb-hcd-xhci-test.o $(libqos-usb-obj-y)
+tests/cpu-plug-test$(EXESUF): tests/cpu-plug-test.o
+tests/migration-test$(EXESUF): tests/migration-test.o
+tests/vhost-user-test$(EXESUF): tests/vhost-user-test.o $(test-util-obj-y) \
+	$(qtest-obj-y) $(test-io-obj-y) $(libqos-virtio-obj-y) $(libqos-pc-obj-y) \
+	$(chardev-obj-y)
+tests/qemu-iotests/socket_scm_helper$(EXESUF): tests/qemu-iotests/socket_scm_helper.o
+tests/test-qemu-opts$(EXESUF): tests/test-qemu-opts.o $(test-util-obj-y)
+tests/test-keyval$(EXESUF): tests/test-keyval.o $(test-util-obj-y) $(test-qapi-obj-y)
+tests/test-write-threshold$(EXESUF): tests/test-write-threshold.o $(test-block-obj-y)
+tests/test-netfilter$(EXESUF): tests/test-netfilter.o $(qtest-obj-y)
+tests/test-filter-mirror$(EXESUF): tests/test-filter-mirror.o $(qtest-obj-y)
+tests/test-filter-redirector$(EXESUF): tests/test-filter-redirector.o $(qtest-obj-y)
+tests/test-x86-cpuid-compat$(EXESUF): tests/test-x86-cpuid-compat.o $(qtest-obj-y)
+tests/ivshmem-test$(EXESUF): tests/ivshmem-test.o contrib/ivshmem-server/ivshmem-server.o $(libqos-pc-obj-y) $(libqos-spapr-obj-y)
+tests/megasas-test$(EXESUF): tests/megasas-test.o $(libqos-spapr-obj-y) $(libqos-pc-obj-y)
+tests/vhost-user-bridge$(EXESUF): tests/vhost-user-bridge.o $(test-util-obj-y) libvhost-user.a
+tests/test-uuid$(EXESUF): tests/test-uuid.o $(test-util-obj-y)
+tests/test-arm-mptimer$(EXESUF): tests/test-arm-mptimer.o
+tests/test-qapi-util$(EXESUF): tests/test-qapi-util.o $(test-util-obj-y)
+tests/numa-test$(EXESUF): tests/numa-test.o
+tests/vmgenid-test$(EXESUF): tests/vmgenid-test.o tests/boot-sector.o tests/acpi-utils.o
+tests/sdhci-test$(EXESUF): tests/sdhci-test.o $(libqos-pc-obj-y)
+tests/cdrom-test$(EXESUF): tests/cdrom-test.o tests/boot-sector.o $(libqos-obj-y)
+
+tests/migration/stress$(EXESUF): tests/migration/stress.o
+	$(call quiet-command, $(LINKPROG) -static -O3 $(PTHREAD_LIB) -o $@ $< ,"LINK","$(TARGET_DIR)$@")
+
+INITRD_WORK_DIR=tests/migration/initrd
+
+tests/migration/initrd-stress.img: tests/migration/stress$(EXESUF)
+	mkdir -p $(INITRD_WORK_DIR)
+	cp $< $(INITRD_WORK_DIR)/init
+	(cd $(INITRD_WORK_DIR) && (find | cpio --quiet -o -H newc | gzip -9)) > $@
+	rm $(INITRD_WORK_DIR)/init
+	rmdir $(INITRD_WORK_DIR)
+
+ifeq ($(CONFIG_POSIX),y)
+LIBS += -lutil
+endif
+
+# QTest rules
+
+TARGETS=$(patsubst %-softmmu,%, $(filter %-softmmu,$(TARGET_DIRS)))
+ifeq ($(CONFIG_POSIX),y)
+QTEST_TARGETS = $(TARGETS)
+check-qtest-y=$(foreach TARGET,$(TARGETS), $(check-qtest-$(TARGET)-y))
+check-qtest-y += $(check-qtest-generic-y)
+else
+QTEST_TARGETS =
+endif
+
+qtest-obj-y = tests/libqtest.o $(test-util-obj-y)
+$(check-qtest-y): $(qtest-obj-y)
+
+tests/test-qga$(EXESUF): qemu-ga$(EXESUF)
+tests/test-qga$(EXESUF): tests/test-qga.o $(qtest-obj-y)
+
+SPEED = quick
+
+# gtester tests, possibly with verbose output
+# do_test_tap runs all tests, even if some of them fail, while do_test_human
+# stops at the first failure unless -k is given on the command line
+
+define do_test_human_k
+        $(quiet-@)rc=0; $(foreach COMMAND, $1, \
+          $(call quiet-command-run, \
+            export MALLOC_PERTURB_=$${MALLOC_PERTURB_:-$$(( $${RANDOM:-0} % 255 + 1))} $2; \
+              $(COMMAND) -m=$(SPEED) -k --tap < /dev/null \
+              | ./scripts/tap-driver.pl --test-name="$(notdir $(COMMAND))" $(if $(V),, --show-failures-only) \
+              || rc=$$?;, "TEST", "$@: $(COMMAND)")) exit $$rc
+endef
+define do_test_human_no_k
+        $(foreach COMMAND, $1, \
+          $(call quiet-command, \
+            MALLOC_PERTURB_=$${MALLOC_PERTURB_:-$$(( $${RANDOM:-0} % 255 + 1))} $2 \
+              $(COMMAND) -m=$(SPEED) -k --tap < /dev/null \
+              | ./scripts/tap-driver.pl --test-name="$(notdir $(COMMAND))" $(if $(V),, --show-failures-only), \
+              "TEST", "$@: $(COMMAND)")
+)
+endef
+do_test_human = \
+        $(if $(findstring k, $(MAKEFLAGS)), $(do_test_human_k), $(do_test_human_no_k))
+
+define do_test_tap
+	$(call quiet-command, \
+          { export MALLOC_PERTURB_=$${MALLOC_PERTURB_:-$$(( $${RANDOM:-0} % 255 + 1))} $2; \
+            $(foreach COMMAND, $1, \
+	      $(COMMAND) -m=$(SPEED) -k --tap < /dev/null \
+	      | sed "s/^[a-z][a-z]* [0-9]* /&$(notdir $(COMMAND)) /" || true; ) } \
+	      | ./scripts/tap-merge.pl | tee "$@" \
+	      | ./scripts/tap-driver.pl $(if $(V),, --show-failures-only), \
+	  "TAP","$@")
+endef
+
+.PHONY: $(patsubst %, check-qtest-%, $(QTEST_TARGETS))
+$(patsubst %, check-qtest-%, $(QTEST_TARGETS)): check-qtest-%: subdir-%-softmmu $(check-qtest-y)
+	$(call do_test_human,$(check-qtest-$*-y) $(check-qtest-generic-y), \
+	  QTEST_QEMU_BINARY=$*-softmmu/qemu-system-$* \
+	  QTEST_QEMU_IMG=qemu-img$(EXESUF))
+
+check-unit: $(check-unit-y)
+	$(call do_test_human, $^)
+
+check-speed: $(check-speed-y)
+	$(call do_test_human, $^)
+
+# gtester tests with TAP output
+
+$(patsubst %, check-report-qtest-%.tap, $(QTEST_TARGETS)): check-report-qtest-%.tap: $(check-qtest-y)
+	$(call do_test_tap, $(check-qtest-$*-y) $(check-qtest-generic-y), \
+	  QTEST_QEMU_BINARY=$*-softmmu/qemu-system-$* \
+	  QTEST_QEMU_IMG=qemu-img$(EXESUF))
+
+check-report-unit.tap: $(check-unit-y)
+	$(call do_test_tap,$^)
+
+# Reports and overall runs
+
+check-report.tap: $(patsubst %,check-report-qtest-%.tap, $(QTEST_TARGETS)) check-report-unit.tap
+	$(call quiet-command,./scripts/tap-merge.py $^ > $@,"GEN","$@")
+
+# Per guest TCG tests
+
+LINUX_USER_TARGETS=$(filter %-linux-user,$(TARGET_DIRS))
+BUILD_TCG_TARGET_RULES=$(patsubst %,build-tcg-tests-%, $(LINUX_USER_TARGETS))
+CLEAN_TCG_TARGET_RULES=$(patsubst %,clean-tcg-tests-%, $(LINUX_USER_TARGETS))
+RUN_TCG_TARGET_RULES=$(patsubst %,run-tcg-tests-%, $(LINUX_USER_TARGETS))
+
+ifeq ($(HAVE_USER_DOCKER),y)
+# Probe for the Docker Builds needed for each build
+$(foreach PROBE_TARGET,$(TARGET_DIRS), 				\
+	$(eval -include $(SRC_PATH)/tests/tcg/Makefile.probe) 	\
+	$(if $(DOCKER_PREREQ), 					\
+		$(eval build-tcg-tests-$(PROBE_TARGET): $(DOCKER_PREREQ))))
+endif
+
+build-tcg-tests-%:
+	$(call quiet-command,$(MAKE) $(SUBDIR_MAKEFLAGS) -C $* V="$(V)" \
+		SKIP_DOCKER_BUILD=1 TARGET_DIR="$*/" guest-tests, \
+		"BUILD", "TCG tests for $*")
+
+run-tcg-tests-%: % build-tcg-tests-%
+	$(call quiet-command,$(MAKE) $(SUBDIR_MAKEFLAGS) -C $* V="$(V)" \
+		SKIP_DOCKER_BUILD=1 TARGET_DIR="$*/" run-guest-tests, \
+		"RUN", "TCG tests for $*")
+
+clean-tcg-tests-%:
+	$(call quiet-command,$(MAKE) $(SUBDIR_MAKEFLAGS) -C $* V="$(V)" TARGET_DIR="$*/" clean-guest-tests,)
+
+.PHONY: build-tcg
+build-tcg: $(BUILD_TCG_TARGET_RULES)
+
+.PHONY: check-tcg
+check-tcg: $(RUN_TCG_TARGET_RULES)
+
+.PHONY: clean-tcg
+clean-tcg: $(CLEAN_TCG_TARGET_RULES)
+
+# Other tests
+
+QEMU_IOTESTS_HELPERS-$(call land,$(CONFIG_SOFTMMU),$(CONFIG_LINUX)) = tests/qemu-iotests/socket_scm_helper$(EXESUF)
+
+.PHONY: check-tests/qemu-iotests-quick.sh
+check-tests/qemu-iotests-quick.sh: tests/qemu-iotests-quick.sh qemu-img$(EXESUF) qemu-io$(EXESUF) $(QEMU_IOTESTS_HELPERS-y)
+	$<
+
+.PHONY: $(patsubst %, check-%, $(check-qapi-schema-y))
+$(patsubst %, check-%, $(check-qapi-schema-y)): check-%.json: $(SRC_PATH)/%.json
+	$(call quiet-command, PYTHONPATH=$(SRC_PATH)/scripts \
+		$(PYTHON) $(SRC_PATH)/tests/qapi-schema/test-qapi.py \
+		$^ >$*.test.out 2>$*.test.err; \
+		echo $$? >$*.test.exit, \
+		"TEST","$*.out")
+	@# Sanitize error messages (make them independent of build directory)
+	@perl -p -e 's|\Q$(SRC_PATH)\E/||g' $*.test.err | diff -u $(SRC_PATH)/$*.err -
+	@diff -u $(SRC_PATH)/$*.out $*.test.out
+	@diff -u $(SRC_PATH)/$*.exit $*.test.exit
+
+.PHONY: check-tests/qapi-schema/doc-good.texi
+check-tests/qapi-schema/doc-good.texi: tests/qapi-schema/doc-good.test.texi
+	@diff -u $(SRC_PATH)/tests/qapi-schema/doc-good.texi $<
+
+.PHONY: check-decodetree
+check-decodetree:
+	$(call quiet-command, \
+	  cd $(SRC_PATH)/tests/decode && \
+          ./check.sh "$(PYTHON)" "$(SRC_PATH)/scripts/decodetree.py", \
+          TEST, decodetree.py)
+
+# Python venv for running tests
+
+.PHONY: check-venv check-acceptance
+
+TESTS_VENV_DIR=$(BUILD_DIR)/tests/venv
+TESTS_VENV_REQ=$(SRC_PATH)/tests/requirements.txt
+TESTS_RESULTS_DIR=$(BUILD_DIR)/tests/results
+# Controls the output generated by Avocado when running tests.
+# Any number of command separated loggers are accepted.  For more
+# information please refer to "avocado --help".
+AVOCADO_SHOW=none
+
+PYTHON3 = $(shell $(PYTHON) -c 'import sys; print(1 if sys.version_info >= (3, 0) else 0)')
+ifeq ($(PYTHON3), 1)
+$(TESTS_VENV_DIR): $(TESTS_VENV_REQ)
+	$(call quiet-command, \
+            $(PYTHON) -m venv --system-site-packages $@, \
+            VENV, $@)
+	$(call quiet-command, \
+            $(TESTS_VENV_DIR)/bin/python -m pip -q install -r $(TESTS_VENV_REQ), \
+            PIP, $(TESTS_VENV_REQ))
+	$(call quiet-command, touch $@)
+else
+$(TESTS_VENV_DIR):
+	$(error "venv directory for tests requires Python 3")
+endif
+
+$(TESTS_RESULTS_DIR):
+	$(call quiet-command, mkdir -p $@, \
+            MKDIR, $@)
+
+check-venv: $(TESTS_VENV_DIR)
+
+check-acceptance: check-venv $(TESTS_RESULTS_DIR)
+	$(call quiet-command, \
+            $(TESTS_VENV_DIR)/bin/python -m avocado \
+            --show=$(AVOCADO_SHOW) run --job-results-dir=$(TESTS_RESULTS_DIR) \
+            --failfast=on $(SRC_PATH)/tests/acceptance, \
+            "AVOCADO", "tests/acceptance")
+
+# Consolidated targets
+
+.PHONY: check-qapi-schema check-qtest check-unit check check-clean
+check-qapi-schema: $(patsubst %,check-%, $(check-qapi-schema-y)) check-tests/qapi-schema/doc-good.texi
+check-qtest: $(patsubst %,check-qtest-%, $(QTEST_TARGETS))
+check-block: $(patsubst %,check-%, $(check-block-y))
+check: check-qapi-schema check-unit check-qtest check-decodetree
+check-clean:
+	rm -rf $(check-unit-y) tests/*.o $(QEMU_IOTESTS_HELPERS-y)
+	rm -rf $(sort $(foreach target,$(SYSEMU_TARGET_LIST), $(check-qtest-$(target)-y)) $(check-qtest-generic-y))
+	rm -f tests/test-qapi-gen-timestamp
+	rm -rf $(TESTS_VENV_DIR) $(TESTS_RESULTS_DIR)
+
+clean: check-clean
+
+# Build the help program automatically
+
+all: $(QEMU_IOTESTS_HELPERS-y)
+
+-include $(wildcard tests/*.d)
+-include $(wildcard tests/libqos/*.d)
+
+endif
diff --git a/tests/Makefile.orig b/tests/Makefile.orig
new file mode 100644
index 0000000000..e6474ba31b
--- /dev/null
+++ b/tests/Makefile.orig
@@ -0,0 +1,569 @@
+export SRC_PATH
+
+qapi-py = $(SRC_PATH)/scripts/qapi.py $(SRC_PATH)/scripts/ordereddict.py
+
+# Get the list of all supported sysemu targets
+SYSEMU_TARGET_LIST := $(subst -softmmu.mak,,$(notdir \
+   $(wildcard $(SRC_PATH)/default-configs/*-softmmu.mak)))
+
+check-unit-y = tests/check-qdict$(EXESUF)
+gcov-files-check-qdict-y = qobject/qdict.c
+check-unit-y += tests/check-qfloat$(EXESUF)
+gcov-files-check-qfloat-y = qobject/qfloat.c
+check-unit-y += tests/check-qint$(EXESUF)
+gcov-files-check-qint-y = qobject/qint.c
+check-unit-y += tests/check-qstring$(EXESUF)
+gcov-files-check-qstring-y = qobject/qstring.c
+check-unit-y += tests/check-qlist$(EXESUF)
+gcov-files-check-qlist-y = qobject/qlist.c
+check-unit-y += tests/check-qjson$(EXESUF)
+gcov-files-check-qjson-y = qobject/qjson.c
+check-unit-y += tests/test-qmp-output-visitor$(EXESUF)
+gcov-files-test-qmp-output-visitor-y = qapi/qmp-output-visitor.c
+check-unit-y += tests/test-qmp-input-visitor$(EXESUF)
+gcov-files-test-qmp-input-visitor-y = qapi/qmp-input-visitor.c
+check-unit-y += tests/test-qmp-input-strict$(EXESUF)
+check-unit-y += tests/test-qmp-commands$(EXESUF)
+gcov-files-test-qmp-commands-y = qapi/qmp-dispatch.c
+check-unit-y += tests/test-string-input-visitor$(EXESUF)
+gcov-files-test-string-input-visitor-y = qapi/string-input-visitor.c
+check-unit-y += tests/test-string-output-visitor$(EXESUF)
+gcov-files-test-string-output-visitor-y = qapi/string-output-visitor.c
+check-unit-y += tests/test-qmp-event$(EXESUF)
+gcov-files-test-qmp-event-y += qapi/qmp-event.c
+check-unit-y += tests/test-opts-visitor$(EXESUF)
+gcov-files-test-opts-visitor-y = qapi/opts-visitor.c
+check-unit-y += tests/test-coroutine$(EXESUF)
+gcov-files-test-coroutine-y = coroutine-$(CONFIG_COROUTINE_BACKEND).c
+check-unit-y += tests/test-visitor-serialization$(EXESUF)
+check-unit-y += tests/test-iov$(EXESUF)
+gcov-files-test-iov-y = util/iov.c
+check-unit-y += tests/test-aio$(EXESUF)
+check-unit-$(CONFIG_POSIX) += tests/test-rfifolock$(EXESUF)
+check-unit-y += tests/test-throttle$(EXESUF)
+gcov-files-test-aio-$(CONFIG_WIN32) = aio-win32.c
+gcov-files-test-aio-$(CONFIG_POSIX) = aio-posix.c
+check-unit-y += tests/test-thread-pool$(EXESUF)
+gcov-files-test-thread-pool-y = thread-pool.c
+gcov-files-test-hbitmap-y = util/hbitmap.c
+check-unit-y += tests/test-hbitmap$(EXESUF)
+check-unit-y += tests/test-x86-cpuid$(EXESUF)
+# all code tested by test-x86-cpuid is inside topology.h
+gcov-files-test-x86-cpuid-y =
+ifeq ($(CONFIG_SOFTMMU),y)
+check-unit-y += tests/test-xbzrle$(EXESUF)
+gcov-files-test-xbzrle-y = migration/xbzrle.c
+check-unit-$(CONFIG_POSIX) += tests/test-vmstate$(EXESUF)
+endif
+check-unit-y += tests/test-cutils$(EXESUF)
+gcov-files-test-cutils-y += util/cutils.c
+check-unit-y += tests/test-mul64$(EXESUF)
+gcov-files-test-mul64-y = util/host-utils.c
+check-unit-y += tests/test-int128$(EXESUF)
+# all code tested by test-int128 is inside int128.h
+gcov-files-test-int128-y =
+check-unit-y += tests/rcutorture$(EXESUF)
+gcov-files-rcutorture-y = util/rcu.c
+check-unit-y += tests/test-rcu-list$(EXESUF)
+gcov-files-test-rcu-list-y = util/rcu.c
+check-unit-y += tests/test-bitops$(EXESUF)
+check-unit-$(CONFIG_HAS_GLIB_SUBPROCESS_TESTS) += tests/test-qdev-global-props$(EXESUF)
+check-unit-y += tests/check-qom-interface$(EXESUF)
+gcov-files-check-qom-interface-y = qom/object.c
+check-unit-y += tests/check-qom-proplist$(EXESUF)
+gcov-files-check-qom-proplist-y = qom/object.c
+check-unit-y += tests/test-qemu-opts$(EXESUF)
+gcov-files-test-qemu-opts-y = qom/test-qemu-opts.c
+check-unit-y += tests/test-write-threshold$(EXESUF)
+gcov-files-test-write-threshold-y = block/write-threshold.c
+check-unit-$(CONFIG_GNUTLS_HASH) += tests/test-crypto-hash$(EXESUF)
+check-unit-y += tests/test-crypto-cipher$(EXESUF)
+check-unit-$(CONFIG_GNUTLS) += tests/test-crypto-tlscredsx509$(EXESUF)
+check-unit-$(CONFIG_GNUTLS) += tests/test-crypto-tlssession$(EXESUF)
+
+check-block-$(CONFIG_POSIX) += tests/qemu-iotests-quick.sh
+
+# All QTests for now are POSIX-only, but the dependencies are
+# really in libqtest, not in the testcases themselves.
+
+gcov-files-ipack-y += hw/ipack/ipack.c
+check-qtest-ipack-y += tests/ipoctal232-test$(EXESUF)
+gcov-files-ipack-y += hw/char/ipoctal232.c
+
+check-qtest-virtioserial-y += tests/virtio-console-test$(EXESUF)
+gcov-files-virtioserial-y += hw/char/virtio-console.c
+
+gcov-files-virtio-y += i386-softmmu/hw/virtio/virtio.c
+check-qtest-virtio-y += tests/virtio-net-test$(EXESUF)
+gcov-files-virtio-y += i386-softmmu/hw/net/virtio-net.c
+check-qtest-virtio-y += tests/virtio-balloon-test$(EXESUF)
+gcov-files-virtio-y += i386-softmmu/hw/virtio/virtio-balloon.c
+check-qtest-virtio-y += tests/virtio-blk-test$(EXESUF)
+gcov-files-virtio-y += i386-softmmu/hw/block/virtio-blk.c
+check-qtest-virtio-y += tests/virtio-rng-test$(EXESUF)
+gcov-files-virtio-y += hw/virtio/virtio-rng.c
+check-qtest-virtio-y += tests/virtio-scsi-test$(EXESUF)
+gcov-files-virtio-y += i386-softmmu/hw/scsi/virtio-scsi.c
+ifeq ($(CONFIG_VIRTIO)$(CONFIG_VIRTFS)$(CONFIG_PCI),yyy)
+check-qtest-virtio-y += tests/virtio-9p-test$(EXESUF)
+gcov-files-virtio-y += hw/9pfs/virtio-9p.c
+gcov-files-virtio-y += i386-softmmu/hw/9pfs/virtio-9p-device.c
+endif
+check-qtest-virtio-y += tests/virtio-serial-test$(EXESUF)
+gcov-files-virtio-y += i386-softmmu/hw/char/virtio-serial-bus.c
+check-qtest-virtio-y += $(check-qtest-virtioserial-y)
+gcov-files-virtio-y += $(gcov-files-virtioserial-y)
+
+check-qtest-pci-y += tests/e1000-test$(EXESUF)
+gcov-files-pci-y += hw/net/e1000.c
+check-qtest-pci-y += tests/rtl8139-test$(EXESUF)
+gcov-files-pci-y += hw/net/rtl8139.c
+check-qtest-pci-y += tests/pcnet-test$(EXESUF)
+gcov-files-pci-y += hw/net/pcnet.c
+gcov-files-pci-y += hw/net/pcnet-pci.c
+check-qtest-pci-y += tests/eepro100-test$(EXESUF)
+gcov-files-pci-y += hw/net/eepro100.c
+check-qtest-pci-y += tests/ne2000-test$(EXESUF)
+gcov-files-pci-y += hw/net/ne2000.c
+check-qtest-pci-y += tests/nvme-test$(EXESUF)
+gcov-files-pci-y += hw/block/nvme.c
+check-qtest-pci-y += tests/ac97-test$(EXESUF)
+gcov-files-pci-y += hw/audio/ac97.c
+check-qtest-pci-y += tests/es1370-test$(EXESUF)
+gcov-files-pci-y += hw/audio/es1370.c
+check-qtest-pci-y += $(check-qtest-virtio-y)
+gcov-files-pci-y += $(gcov-files-virtio-y) hw/virtio/virtio-pci.c
+check-qtest-pci-y += tests/tpci200-test$(EXESUF)
+gcov-files-pci-y += hw/ipack/tpci200.c
+check-qtest-pci-y += $(check-qtest-ipack-y)
+gcov-files-pci-y += $(gcov-files-ipack-y)
+check-qtest-pci-y += tests/display-vga-test$(EXESUF)
+gcov-files-pci-y += hw/display/vga.c
+gcov-files-pci-y += hw/display/cirrus_vga.c
+gcov-files-pci-y += hw/display/vga-pci.c
+gcov-files-pci-y += hw/display/virtio-gpu.c
+gcov-files-pci-y += hw/display/virtio-gpu-pci.c
+gcov-files-pci-$(CONFIG_VIRTIO_VGA) += hw/display/virtio-vga.c
+check-qtest-pci-y += tests/intel-hda-test$(EXESUF)
+gcov-files-pci-y += hw/audio/intel-hda.c hw/audio/hda-codec.c
+
+check-qtest-i386-y = tests/endianness-test$(EXESUF)
+check-qtest-i386-y += tests/fdc-test$(EXESUF)
+gcov-files-i386-y = hw/block/fdc.c
+check-qtest-i386-y += tests/ide-test$(EXESUF)
+check-qtest-i386-y += tests/ahci-test$(EXESUF)
+check-qtest-i386-y += tests/hd-geo-test$(EXESUF)
+gcov-files-i386-y += hw/block/hd-geometry.c
+check-qtest-i386-y += tests/boot-order-test$(EXESUF)
+check-qtest-i386-y += tests/bios-tables-test$(EXESUF)
+check-qtest-i386-y += tests/rtc-test$(EXESUF)
+check-qtest-i386-y += tests/i440fx-test$(EXESUF)
+check-qtest-i386-y += tests/fw_cfg-test$(EXESUF)
+check-qtest-i386-y += tests/drive_del-test$(EXESUF)
+check-qtest-i386-y += tests/wdt_ib700-test$(EXESUF)
+check-qtest-i386-y += tests/tco-test$(EXESUF)
+gcov-files-i386-y += hw/watchdog/watchdog.c hw/watchdog/wdt_ib700.c
+check-qtest-i386-y += $(check-qtest-pci-y)
+gcov-files-i386-y += $(gcov-files-pci-y)
+check-qtest-i386-y += tests/vmxnet3-test$(EXESUF)
+gcov-files-i386-y += hw/net/vmxnet3.c
+gcov-files-i386-y += hw/net/vmxnet_rx_pkt.c
+gcov-files-i386-y += hw/net/vmxnet_tx_pkt.c
+check-qtest-i386-y += tests/pvpanic-test$(EXESUF)
+gcov-files-i386-y += i386-softmmu/hw/misc/pvpanic.c
+check-qtest-i386-y += tests/i82801b11-test$(EXESUF)
+gcov-files-i386-y += hw/pci-bridge/i82801b11.c
+check-qtest-i386-y += tests/ioh3420-test$(EXESUF)
+gcov-files-i386-y += hw/pci-bridge/ioh3420.c
+check-qtest-i386-y += tests/usb-hcd-ohci-test$(EXESUF)
+gcov-files-i386-y += hw/usb/hcd-ohci.c
+check-qtest-i386-y += tests/usb-hcd-uhci-test$(EXESUF)
+gcov-files-i386-y += hw/usb/hcd-uhci.c
+check-qtest-i386-y += tests/usb-hcd-ehci-test$(EXESUF)
+gcov-files-i386-y += hw/usb/hcd-ehci.c
+gcov-files-i386-y += hw/usb/dev-hid.c
+gcov-files-i386-y += hw/usb/dev-storage.c
+check-qtest-i386-y += tests/usb-hcd-xhci-test$(EXESUF)
+gcov-files-i386-y += hw/usb/hcd-xhci.c
+check-qtest-i386-y += tests/pc-cpu-test$(EXESUF)
+check-qtest-i386-y += tests/q35-test$(EXESUF)
+gcov-files-i386-y += hw/pci-host/q35.c
+ifeq ($(CONFIG_VHOST_NET),y)
+check-qtest-i386-$(CONFIG_LINUX) += tests/vhost-user-test$(EXESUF)
+endif
+check-qtest-x86_64-y = $(check-qtest-i386-y)
+gcov-files-i386-y += i386-softmmu/hw/timer/mc146818rtc.c
+gcov-files-x86_64-y = $(subst i386-softmmu/,x86_64-softmmu/,$(gcov-files-i386-y))
+check-qtest-mips-y = tests/endianness-test$(EXESUF)
+check-qtest-mips64-y = tests/endianness-test$(EXESUF)
+check-qtest-mips64el-y = tests/endianness-test$(EXESUF)
+check-qtest-ppc-y = tests/endianness-test$(EXESUF)
+check-qtest-ppc64-y = tests/endianness-test$(EXESUF)
+check-qtest-sh4-y = tests/endianness-test$(EXESUF)
+check-qtest-sh4eb-y = tests/endianness-test$(EXESUF)
+check-qtest-sparc64-y = tests/endianness-test$(EXESUF)
+#check-qtest-sparc-y = tests/m48t59-test$(EXESUF)
+#check-qtest-sparc64-y += tests/m48t59-test$(EXESUF)
+gcov-files-sparc-y += hw/timer/m48t59.c
+gcov-files-sparc64-y += hw/timer/m48t59.c
+check-qtest-arm-y = tests/tmp105-test$(EXESUF)
+check-qtest-arm-y = tests/ds1338-test$(EXESUF)
+gcov-files-arm-y += hw/misc/tmp105.c
+check-qtest-arm-y += tests/virtio-blk-test$(EXESUF)
+gcov-files-arm-y += arm-softmmu/hw/block/virtio-blk.c
+check-qtest-ppc-y += tests/boot-order-test$(EXESUF)
+check-qtest-ppc64-y += tests/boot-order-test$(EXESUF)
+check-qtest-ppc64-y += tests/spapr-phb-test$(EXESUF)
+gcov-files-ppc64-y += ppc64-softmmu/hw/ppc/spapr_pci.c
+check-qtest-microblazeel-y = $(check-qtest-microblaze-y)
+check-qtest-xtensaeb-y = $(check-qtest-xtensa-y)
+
+# qom-test works for all sysemu architectures:
+$(foreach target,$(SYSEMU_TARGET_LIST), \
+	$(if $(findstring tests/qom-test$(EXESUF), $(check-qtest-$(target)-y)),, \
+		$(eval check-qtest-$(target)-y += tests/qom-test$(EXESUF))))
+
+check-qapi-schema-y := $(addprefix tests/qapi-schema/, \
+	comments.json empty.json enum-empty.json enum-missing-data.json \
+	enum-wrong-data.json enum-int-member.json enum-dict-member.json \
+	enum-clash-member.json enum-max-member.json enum-union-clash.json \
+	enum-bad-name.json enum-bad-prefix.json \
+	funny-char.json indented-expr.json \
+	missing-type.json bad-ident.json ident-with-escape.json \
+	escape-outside-string.json unknown-escape.json \
+	escape-too-short.json escape-too-big.json unicode-str.json \
+	double-type.json bad-base.json bad-type-bool.json bad-type-int.json \
+	bad-type-dict.json double-data.json unknown-expr-key.json \
+	redefined-type.json redefined-command.json redefined-builtin.json \
+	redefined-event.json command-int.json bad-data.json event-max.json \
+	type-bypass-bad-gen.json \
+	args-invalid.json \
+	args-array-empty.json args-array-unknown.json args-int.json \
+	args-unknown.json args-member-unknown.json args-member-array.json \
+	args-member-array-bad.json args-alternate.json args-union.json \
+	args-any.json \
+	returns-array-bad.json returns-int.json returns-dict.json \
+	returns-unknown.json returns-alternate.json returns-whitelist.json \
+	missing-colon.json missing-comma-list.json missing-comma-object.json \
+	struct-data-invalid.json struct-member-invalid.json \
+	nested-struct-data.json non-objects.json \
+	qapi-schema-test.json quoted-structural-chars.json \
+	leading-comma-list.json leading-comma-object.json \
+	trailing-comma-list.json trailing-comma-object.json \
+	unclosed-list.json unclosed-object.json unclosed-string.json \
+	duplicate-key.json union-invalid-base.json union-bad-branch.json \
+	union-optional-branch.json union-unknown.json union-max.json \
+	flat-union-optional-discriminator.json flat-union-no-base.json \
+	flat-union-invalid-discriminator.json flat-union-inline.json \
+	flat-union-invalid-branch-key.json flat-union-reverse-define.json \
+	flat-union-string-discriminator.json union-base-no-discriminator.json \
+	flat-union-bad-discriminator.json flat-union-bad-base.json \
+	flat-union-base-any.json \
+	flat-union-array-branch.json flat-union-int-branch.json \
+	flat-union-base-union.json flat-union-branch-clash.json \
+	alternate-nested.json alternate-unknown.json alternate-clash.json \
+	alternate-good.json alternate-base.json alternate-array.json \
+	alternate-conflict-string.json alternate-conflict-dict.json \
+	include-simple.json include-relpath.json include-format-err.json \
+	include-non-file.json include-no-file.json include-before-err.json \
+	include-nested-err.json include-self-cycle.json include-cycle.json \
+	include-repetition.json event-nest-struct.json event-case.json \
+	struct-base-clash.json struct-base-clash-deep.json )
+
+GENERATED_HEADERS += tests/test-qapi-types.h tests/test-qapi-visit.h \
+	tests/test-qmp-commands.h tests/test-qapi-event.h \
+	tests/test-qmp-introspect.h
+
+test-obj-y = tests/check-qint.o tests/check-qstring.o tests/check-qdict.o \
+	tests/check-qlist.o tests/check-qfloat.o tests/check-qjson.o \
+	tests/test-coroutine.o tests/test-string-output-visitor.o \
+	tests/test-string-input-visitor.o tests/test-qmp-output-visitor.o \
+	tests/test-qmp-input-visitor.o tests/test-qmp-input-strict.o \
+	tests/test-qmp-commands.o tests/test-visitor-serialization.o \
+	tests/test-x86-cpuid.o tests/test-mul64.o tests/test-int128.o \
+	tests/test-opts-visitor.o tests/test-qmp-event.o \
+	tests/rcutorture.o tests/test-rcu-list.o
+
+$(test-obj-y): QEMU_INCLUDES += -Itests
+QEMU_CFLAGS += -I$(SRC_PATH)/tests
+
+
+# Deps that are common to various different sets of tests below
+test-util-obj-y = libqemuutil.a libqemustub.a
+test-qom-obj-y = $(qom-obj-y) $(test-util-obj-y)
+test-qapi-obj-y = tests/test-qapi-visit.o tests/test-qapi-types.o \
+	tests/test-qapi-event.o tests/test-qmp-introspect.o \
+	$(test-qom-obj-y)
+test-crypto-obj-y = $(crypto-obj-y) $(test-qom-obj-y)
+test-block-obj-y = $(block-obj-y) $(test-crypto-obj-y)
+
+tests/check-qint$(EXESUF): tests/check-qint.o $(test-util-obj-y)
+tests/check-qstring$(EXESUF): tests/check-qstring.o $(test-util-obj-y)
+tests/check-qdict$(EXESUF): tests/check-qdict.o $(test-util-obj-y)
+tests/check-qlist$(EXESUF): tests/check-qlist.o $(test-util-obj-y)
+tests/check-qfloat$(EXESUF): tests/check-qfloat.o $(test-util-obj-y)
+tests/check-qjson$(EXESUF): tests/check-qjson.o $(test-util-obj-y)
+tests/check-qom-interface$(EXESUF): tests/check-qom-interface.o $(test-qom-obj-y)
+tests/check-qom-proplist$(EXESUF): tests/check-qom-proplist.o $(test-qom-obj-y)
+tests/test-coroutine$(EXESUF): tests/test-coroutine.o $(test-block-obj-y)
+tests/test-aio$(EXESUF): tests/test-aio.o $(test-block-obj-y)
+tests/test-rfifolock$(EXESUF): tests/test-rfifolock.o $(test-util-obj-y)
+tests/test-throttle$(EXESUF): tests/test-throttle.o $(test-block-obj-y)
+tests/test-thread-pool$(EXESUF): tests/test-thread-pool.o $(test-block-obj-y)
+tests/test-iov$(EXESUF): tests/test-iov.o $(test-util-obj-y)
+tests/test-hbitmap$(EXESUF): tests/test-hbitmap.o $(test-util-obj-y)
+tests/test-x86-cpuid$(EXESUF): tests/test-x86-cpuid.o
+tests/test-xbzrle$(EXESUF): tests/test-xbzrle.o migration/xbzrle.o page_cache.o $(test-util-obj-y)
+tests/test-cutils$(EXESUF): tests/test-cutils.o util/cutils.o
+tests/test-int128$(EXESUF): tests/test-int128.o
+tests/rcutorture$(EXESUF): tests/rcutorture.o $(test-util-obj-y)
+tests/test-rcu-list$(EXESUF): tests/test-rcu-list.o $(test-util-obj-y)
+
+tests/test-qdev-global-props$(EXESUF): tests/test-qdev-global-props.o \
+	hw/core/qdev.o hw/core/qdev-properties.o hw/core/hotplug.o\
+	hw/core/irq.o \
+	hw/core/fw-path-provider.o \
+	$(test-qapi-obj-y)
+tests/test-vmstate$(EXESUF): tests/test-vmstate.o \
+	migration/vmstate.o migration/qemu-file.o migration/qemu-file-buf.o \
+        migration/qemu-file-unix.o qjson.o \
+	$(test-qom-obj-y)
+
+tests/test-qapi-types.c tests/test-qapi-types.h :\
+$(SRC_PATH)/tests/qapi-schema/qapi-schema-test.json $(SRC_PATH)/scripts/qapi-types.py $(qapi-py)
+	$(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-types.py \
+		$(gen-out-type) -o tests -p "test-" $<, \
+		"  GEN   $@")
+tests/test-qapi-visit.c tests/test-qapi-visit.h :\
+$(SRC_PATH)/tests/qapi-schema/qapi-schema-test.json $(SRC_PATH)/scripts/qapi-visit.py $(qapi-py)
+	$(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-visit.py \
+		$(gen-out-type) -o tests -p "test-" $<, \
+		"  GEN   $@")
+tests/test-qmp-commands.h tests/test-qmp-marshal.c :\
+$(SRC_PATH)/tests/qapi-schema/qapi-schema-test.json $(SRC_PATH)/scripts/qapi-commands.py $(qapi-py)
+	$(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-commands.py \
+		$(gen-out-type) -o tests -p "test-" $<, \
+		"  GEN   $@")
+tests/test-qapi-event.c tests/test-qapi-event.h :\
+$(SRC_PATH)/tests/qapi-schema/qapi-schema-test.json $(SRC_PATH)/scripts/qapi-event.py $(qapi-py)
+	$(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-event.py \
+		$(gen-out-type) -o tests -p "test-" $<, \
+		"  GEN   $@")
+tests/test-qmp-introspect.c tests/test-qmp-introspect.h :\
+$(SRC_PATH)/tests/qapi-schema/qapi-schema-test.json $(SRC_PATH)/scripts/qapi-introspect.py $(qapi-py)
+	$(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-introspect.py \
+		$(gen-out-type) -o tests -p "test-" $<, \
+		"  GEN   $@")
+
+tests/test-string-output-visitor$(EXESUF): tests/test-string-output-visitor.o $(test-qapi-obj-y)
+tests/test-string-input-visitor$(EXESUF): tests/test-string-input-visitor.o $(test-qapi-obj-y)
+tests/test-qmp-event$(EXESUF): tests/test-qmp-event.o $(test-qapi-obj-y)
+tests/test-qmp-output-visitor$(EXESUF): tests/test-qmp-output-visitor.o $(test-qapi-obj-y)
+tests/test-qmp-input-visitor$(EXESUF): tests/test-qmp-input-visitor.o $(test-qapi-obj-y)
+tests/test-qmp-input-strict$(EXESUF): tests/test-qmp-input-strict.o $(test-qapi-obj-y)
+tests/test-qmp-commands$(EXESUF): tests/test-qmp-commands.o tests/test-qmp-marshal.o $(test-qapi-obj-y)
+tests/test-visitor-serialization$(EXESUF): tests/test-visitor-serialization.o $(test-qapi-obj-y)
+tests/test-opts-visitor$(EXESUF): tests/test-opts-visitor.o $(test-qapi-obj-y)
+
+tests/test-mul64$(EXESUF): tests/test-mul64.o $(test-util-obj-y)
+tests/test-bitops$(EXESUF): tests/test-bitops.o $(test-util-obj-y)
+tests/test-crypto-hash$(EXESUF): tests/test-crypto-hash.o $(test-crypto-obj-y)
+tests/test-crypto-cipher$(EXESUF): tests/test-crypto-cipher.o $(test-crypto-obj-y)
+tests/test-crypto-tlscredsx509$(EXESUF): tests/test-crypto-tlscredsx509.o \
+	tests/crypto-tls-x509-helpers.o tests/pkix_asn1_tab.o $(test-crypto-obj-y)
+tests/test-crypto-tlssession$(EXESUF): tests/test-crypto-tlssession.o \
+	tests/crypto-tls-x509-helpers.o tests/pkix_asn1_tab.o $(test-crypto-obj-y)
+
+libqos-obj-y = tests/libqos/pci.o tests/libqos/fw_cfg.o tests/libqos/malloc.o
+libqos-obj-y += tests/libqos/i2c.o tests/libqos/libqos.o
+libqos-pc-obj-y = $(libqos-obj-y) tests/libqos/pci-pc.o
+libqos-pc-obj-y += tests/libqos/malloc-pc.o tests/libqos/libqos-pc.o
+libqos-pc-obj-y += tests/libqos/ahci.o
+libqos-omap-obj-y = $(libqos-obj-y) tests/libqos/i2c-omap.o
+libqos-imx-obj-y = $(libqos-obj-y) tests/libqos/i2c-imx.o
+libqos-usb-obj-y = $(libqos-pc-obj-y) tests/libqos/usb.o
+libqos-virtio-obj-y = $(libqos-pc-obj-y) tests/libqos/virtio.o tests/libqos/virtio-pci.o tests/libqos/virtio-mmio.o tests/libqos/malloc-generic.o
+
+tests/rtc-test$(EXESUF): tests/rtc-test.o
+tests/m48t59-test$(EXESUF): tests/m48t59-test.o
+tests/endianness-test$(EXESUF): tests/endianness-test.o
+tests/spapr-phb-test$(EXESUF): tests/spapr-phb-test.o $(libqos-obj-y)
+tests/fdc-test$(EXESUF): tests/fdc-test.o
+tests/ide-test$(EXESUF): tests/ide-test.o $(libqos-pc-obj-y)
+tests/ahci-test$(EXESUF): tests/ahci-test.o $(libqos-pc-obj-y)
+tests/hd-geo-test$(EXESUF): tests/hd-geo-test.o
+tests/boot-order-test$(EXESUF): tests/boot-order-test.o $(libqos-obj-y)
+tests/bios-tables-test$(EXESUF): tests/bios-tables-test.o $(libqos-obj-y)
+tests/tmp105-test$(EXESUF): tests/tmp105-test.o $(libqos-omap-obj-y)
+tests/ds1338-test$(EXESUF): tests/ds1338-test.o $(libqos-imx-obj-y)
+tests/i440fx-test$(EXESUF): tests/i440fx-test.o $(libqos-pc-obj-y)
+tests/q35-test$(EXESUF): tests/q35-test.o $(libqos-pc-obj-y)
+tests/fw_cfg-test$(EXESUF): tests/fw_cfg-test.o $(libqos-pc-obj-y)
+tests/e1000-test$(EXESUF): tests/e1000-test.o
+tests/rtl8139-test$(EXESUF): tests/rtl8139-test.o $(libqos-pc-obj-y)
+tests/pcnet-test$(EXESUF): tests/pcnet-test.o
+tests/eepro100-test$(EXESUF): tests/eepro100-test.o
+tests/vmxnet3-test$(EXESUF): tests/vmxnet3-test.o
+tests/ne2000-test$(EXESUF): tests/ne2000-test.o
+tests/wdt_ib700-test$(EXESUF): tests/wdt_ib700-test.o
+tests/tco-test$(EXESUF): tests/tco-test.o $(libqos-pc-obj-y)
+tests/virtio-balloon-test$(EXESUF): tests/virtio-balloon-test.o
+tests/virtio-blk-test$(EXESUF): tests/virtio-blk-test.o $(libqos-virtio-obj-y)
+tests/virtio-net-test$(EXESUF): tests/virtio-net-test.o $(libqos-pc-obj-y) $(libqos-virtio-obj-y)
+tests/virtio-rng-test$(EXESUF): tests/virtio-rng-test.o $(libqos-pc-obj-y)
+tests/virtio-scsi-test$(EXESUF): tests/virtio-scsi-test.o $(libqos-virtio-obj-y)
+tests/virtio-9p-test$(EXESUF): tests/virtio-9p-test.o
+tests/virtio-serial-test$(EXESUF): tests/virtio-serial-test.o
+tests/virtio-console-test$(EXESUF): tests/virtio-console-test.o
+tests/tpci200-test$(EXESUF): tests/tpci200-test.o
+tests/display-vga-test$(EXESUF): tests/display-vga-test.o
+tests/ipoctal232-test$(EXESUF): tests/ipoctal232-test.o
+tests/qom-test$(EXESUF): tests/qom-test.o
+tests/drive_del-test$(EXESUF): tests/drive_del-test.o $(libqos-pc-obj-y)
+tests/qdev-monitor-test$(EXESUF): tests/qdev-monitor-test.o $(libqos-pc-obj-y)
+tests/nvme-test$(EXESUF): tests/nvme-test.o
+tests/pvpanic-test$(EXESUF): tests/pvpanic-test.o
+tests/i82801b11-test$(EXESUF): tests/i82801b11-test.o
+tests/ac97-test$(EXESUF): tests/ac97-test.o
+tests/es1370-test$(EXESUF): tests/es1370-test.o
+tests/intel-hda-test$(EXESUF): tests/intel-hda-test.o
+tests/ioh3420-test$(EXESUF): tests/ioh3420-test.o
+tests/usb-hcd-ohci-test$(EXESUF): tests/usb-hcd-ohci-test.o $(libqos-usb-obj-y)
+tests/usb-hcd-uhci-test$(EXESUF): tests/usb-hcd-uhci-test.o $(libqos-usb-obj-y)
+tests/usb-hcd-ehci-test$(EXESUF): tests/usb-hcd-ehci-test.o $(libqos-usb-obj-y)
+tests/usb-hcd-xhci-test$(EXESUF): tests/usb-hcd-xhci-test.o $(libqos-usb-obj-y)
+tests/pc-cpu-test$(EXESUF): tests/pc-cpu-test.o
+tests/vhost-user-test$(EXESUF): tests/vhost-user-test.o qemu-char.o qemu-timer.o $(qtest-obj-y)
+tests/qemu-iotests/socket_scm_helper$(EXESUF): tests/qemu-iotests/socket_scm_helper.o
+tests/test-qemu-opts$(EXESUF): tests/test-qemu-opts.o $(test-util-obj-y)
+tests/test-write-threshold$(EXESUF): tests/test-write-threshold.o $(test-block-obj-y)
+
+ifeq ($(CONFIG_POSIX),y)
+LIBS += -lutil
+endif
+LIBS += $(TEST_LIBS)
+CFLAGS += $(TEST_CFLAGS)
+
+# QTest rules
+
+TARGETS=$(patsubst %-softmmu,%, $(filter %-softmmu,$(TARGET_DIRS)))
+ifeq ($(CONFIG_POSIX),y)
+QTEST_TARGETS=$(foreach TARGET,$(TARGETS), $(if $(check-qtest-$(TARGET)-y), $(TARGET),))
+check-qtest-y=$(foreach TARGET,$(TARGETS), $(check-qtest-$(TARGET)-y))
+endif
+
+qtest-obj-y = tests/libqtest.o $(test-util-obj-y)
+$(check-qtest-y): $(qtest-obj-y)
+
+.PHONY: check-help
+check-help:
+	@echo "Regression testing targets:"
+	@echo
+	@echo " make check                Run all tests"
+	@echo " make check-qtest-TARGET   Run qtest tests for given target"
+	@echo " make check-qtest          Run qtest tests"
+	@echo " make check-unit           Run qobject tests"
+	@echo " make check-qapi-schema    Run QAPI schema tests"
+	@echo " make check-block          Run block tests"
+	@echo " make check-report.html    Generates an HTML test report"
+	@echo " make check-clean          Clean the tests"
+	@echo
+	@echo "Please note that HTML reports do not regenerate if the unit tests"
+	@echo "has not changed."
+	@echo
+	@echo "The variable SPEED can be set to control the gtester speed setting."
+	@echo "Default options are -k and (for make V=1) --verbose; they can be"
+	@echo "changed with variable GTESTER_OPTIONS."
+
+SPEED = quick
+GTESTER_OPTIONS = -k $(if $(V),--verbose,-q)
+GCOV_OPTIONS = -n $(if $(V),-f,)
+
+# gtester tests, possibly with verbose output
+
+.PHONY: $(patsubst %, check-qtest-%, $(QTEST_TARGETS))
+$(patsubst %, check-qtest-%, $(QTEST_TARGETS)): check-qtest-%: $(check-qtest-y)
+	$(if $(CONFIG_GCOV),@rm -f *.gcda */*.gcda */*/*.gcda */*/*/*.gcda,)
+	$(call quiet-command,QTEST_QEMU_BINARY=$*-softmmu/qemu-system-$* \
+		QTEST_QEMU_IMG=qemu-img$(EXESUF) \
+		MALLOC_PERTURB_=$${MALLOC_PERTURB_:-$$((RANDOM % 255 + 1))} \
+		gtester $(GTESTER_OPTIONS) -m=$(SPEED) $(check-qtest-$*-y),"GTESTER $@")
+	$(if $(CONFIG_GCOV),@for f in $(gcov-files-$*-y); do \
+	  echo Gcov report for $$f:;\
+	  $(GCOV) $(GCOV_OPTIONS) $$f -o `dirname $$f`; \
+	done,)
+
+.PHONY: $(patsubst %, check-%, $(check-unit-y))
+$(patsubst %, check-%, $(check-unit-y)): check-%: %
+	$(if $(CONFIG_GCOV),@rm -f *.gcda */*.gcda */*/*.gcda */*/*/*.gcda,)
+	$(call quiet-command, \
+		MALLOC_PERTURB_=$${MALLOC_PERTURB_:-$$((RANDOM % 255 + 1))} \
+		gtester $(GTESTER_OPTIONS) -m=$(SPEED) $*,"GTESTER $*")
+	$(if $(CONFIG_GCOV),@for f in $(gcov-files-$(subst tests/,,$*)-y); do \
+	  echo Gcov report for $$f:;\
+	  $(GCOV) $(GCOV_OPTIONS) $$f -o `dirname $$f`; \
+	done,)
+
+# gtester tests with XML output
+
+$(patsubst %, check-report-qtest-%.xml, $(QTEST_TARGETS)): check-report-qtest-%.xml: $(check-qtest-y)
+	$(call quiet-command,QTEST_QEMU_BINARY=$*-softmmu/qemu-system-$* \
+		QTEST_QEMU_IMG=qemu-img$(EXESUF) \
+	  gtester -q $(GTESTER_OPTIONS) -o $@ -m=$(SPEED) $(check-qtest-$*-y),"GTESTER $@")
+
+check-report-unit.xml: $(check-unit-y)
+	$(call quiet-command,gtester -q $(GTESTER_OPTIONS) -o $@ -m=$(SPEED) $^, "GTESTER $@")
+
+# Reports and overall runs
+
+check-report.xml: $(patsubst %,check-report-qtest-%.xml, $(QTEST_TARGETS)) check-report-unit.xml
+	$(call quiet-command,$(SRC_PATH)/scripts/gtester-cat $^ > $@, "  GEN   $@")
+
+check-report.html: check-report.xml
+	$(call quiet-command,gtester-report $< > $@, "  GEN   $@")
+
+
+# Other tests
+
+QEMU_IOTESTS_HELPERS-$(CONFIG_LINUX) = tests/qemu-iotests/socket_scm_helper$(EXESUF)
+
+.PHONY: check-tests/qemu-iotests-quick.sh
+check-tests/qemu-iotests-quick.sh: tests/qemu-iotests-quick.sh qemu-img$(EXESUF) qemu-io$(EXESUF) $(QEMU_IOTESTS_HELPERS-y)
+	$<
+
+.PHONY: check-tests/test-qapi.py
+check-tests/test-qapi.py: tests/test-qapi.py
+
+.PHONY: $(patsubst %, check-%, $(check-qapi-schema-y))
+$(patsubst %, check-%, $(check-qapi-schema-y)): check-%.json: $(SRC_PATH)/%.json
+	$(call quiet-command, PYTHONPATH=$(SRC_PATH)/scripts \
+		$(PYTHON) $(SRC_PATH)/tests/qapi-schema/test-qapi.py \
+		$^ >$*.test.out 2>$*.test.err; \
+		echo $$? >$*.test.exit, \
+		"  TEST  $*.out")
+	@diff -q $(SRC_PATH)/$*.out $*.test.out
+	@# Sanitize error messages (make them independent of build directory)
+	@perl -p -e 's|\Q$(SRC_PATH)\E/||g' $*.test.err | diff -q $(SRC_PATH)/$*.err -
+	@diff -q $(SRC_PATH)/$*.exit $*.test.exit
+
+# Consolidated targets
+
+.PHONY: check-qapi-schema check-qtest check-unit check check-clean
+check-qapi-schema: $(patsubst %,check-%, $(check-qapi-schema-y))
+check-qtest: $(patsubst %,check-qtest-%, $(QTEST_TARGETS))
+check-unit: $(patsubst %,check-%, $(check-unit-y))
+check-block: $(patsubst %,check-%, $(check-block-y))
+check: check-qapi-schema check-unit check-qtest
+check-clean:
+	$(MAKE) -C tests/tcg clean
+	rm -rf $(check-unit-y) tests/*.o $(QEMU_IOTESTS_HELPERS-y)
+	rm -rf $(sort $(foreach target,$(SYSEMU_TARGET_LIST), $(check-qtest-$(target)-y)))
+
+clean: check-clean
+
+# Build the help program automatically
+
+all: $(QEMU_IOTESTS_HELPERS-y)
+
+-include $(wildcard tests/*.d)
+-include $(wildcard tests/libqos/*.d)
diff --git a/tests/bios-tables-test.c.orig b/tests/bios-tables-test.c.orig
new file mode 100644
index 0000000000..d455b2abfc
--- /dev/null
+++ b/tests/bios-tables-test.c.orig
@@ -0,0 +1,925 @@
+/*
+ * Boot order test cases.
+ *
+ * Copyright (c) 2013 Red Hat Inc.
+ *
+ * Authors:
+ *  Michael S. Tsirkin <mst@redhat.com>,
+ *
+ * This work is licensed under the terms of the GNU GPL, version 2 or later.
+ * See the COPYING file in the top-level directory.
+ */
+
+#include "qemu/osdep.h"
+#include <glib/gstdio.h>
+#include "qemu-common.h"
+#include "hw/firmware/smbios.h"
+#include "qemu/bitmap.h"
+#include "acpi-utils.h"
+#include "boot-sector.h"
+
+#define MACHINE_PC "pc"
+#define MACHINE_Q35 "q35"
+
+#define ACPI_REBUILD_EXPECTED_AML "TEST_ACPI_REBUILD_AML"
+
+typedef struct {
+    const char *machine;
+    const char *variant;
+    uint32_t rsdp_addr;
+    uint8_t rsdp_table[36 /* ACPI 2.0+ RSDP size */];
+    AcpiRsdtDescriptorRev1 rsdt_table;
+    uint32_t dsdt_addr;
+    uint32_t facs_addr;
+    AcpiFacsDescriptorRev1 facs_table;
+    uint32_t *rsdt_tables_addr;
+    int rsdt_tables_nr;
+    GArray *tables;
+    uint32_t smbios_ep_addr;
+    struct smbios_21_entry_point smbios_ep_table;
+    uint8_t *required_struct_types;
+    int required_struct_types_len;
+    QTestState *qts;
+} test_data;
+
+static char disk[] = "tests/acpi-test-disk-XXXXXX";
+static const char *data_dir = "tests/data/acpi";
+#ifdef CONFIG_IASL
+static const char *iasl = stringify(CONFIG_IASL);
+#else
+static const char *iasl;
+#endif
+
+static void free_test_data(test_data *data)
+{
+    AcpiSdtTable *temp;
+    int i;
+
+    g_free(data->rsdt_tables_addr);
+
+    for (i = 0; i < data->tables->len; ++i) {
+        temp = &g_array_index(data->tables, AcpiSdtTable, i);
+        g_free(temp->aml);
+        if (temp->aml_file &&
+            !temp->tmp_files_retain &&
+            g_strstr_len(temp->aml_file, -1, "aml-")) {
+            unlink(temp->aml_file);
+        }
+        g_free(temp->aml_file);
+        g_free(temp->asl);
+        if (temp->asl_file &&
+            !temp->tmp_files_retain) {
+            unlink(temp->asl_file);
+        }
+        g_free(temp->asl_file);
+    }
+
+    g_array_free(data->tables, true);
+}
+
+static void test_acpi_rsdp_address(test_data *data)
+{
+    uint32_t off = acpi_find_rsdp_address(data->qts);
+    g_assert_cmphex(off, <, 0x100000);
+    data->rsdp_addr = off;
+}
+
+static void test_acpi_rsdp_table(test_data *data)
+{
+    uint8_t *rsdp_table = data->rsdp_table, revision;
+    uint32_t addr = data->rsdp_addr;
+
+    acpi_parse_rsdp_table(data->qts, addr, rsdp_table);
+    revision = rsdp_table[15 /* Revision offset */];
+
+    switch (revision) {
+    case 0: /* ACPI 1.0 RSDP */
+        /* With rev 1, checksum is only for the first 20 bytes */
+        g_assert(!acpi_calc_checksum(rsdp_table,  20));
+        break;
+    case 2: /* ACPI 2.0+ RSDP */
+        /* With revision 2, we have 2 checksums */
+        g_assert(!acpi_calc_checksum(rsdp_table, 20));
+        g_assert(!acpi_calc_checksum(rsdp_table, 36));
+        break;
+    default:
+        g_assert_not_reached();
+    }
+}
+
+static void test_acpi_rsdt_table(test_data *data)
+{
+    AcpiRsdtDescriptorRev1 *rsdt_table = &data->rsdt_table;
+    uint32_t addr = acpi_get_rsdt_address(data->rsdp_table);
+    uint32_t *tables;
+    int tables_nr;
+    uint8_t checksum;
+    uint32_t rsdt_table_length;
+
+    /* read the header */
+    ACPI_READ_TABLE_HEADER(data->qts, rsdt_table, addr);
+    ACPI_ASSERT_CMP(rsdt_table->signature, "RSDT");
+
+    rsdt_table_length = le32_to_cpu(rsdt_table->length);
+
+    /* compute the table entries in rsdt */
+    tables_nr = (rsdt_table_length - sizeof(AcpiRsdtDescriptorRev1)) /
+                sizeof(uint32_t);
+    g_assert(tables_nr > 0);
+
+    /* get the addresses of the tables pointed by rsdt */
+    tables = g_new0(uint32_t, tables_nr);
+    ACPI_READ_ARRAY_PTR(data->qts, tables, tables_nr, addr);
+
+    checksum = acpi_calc_checksum((uint8_t *)rsdt_table, rsdt_table_length) +
+               acpi_calc_checksum((uint8_t *)tables,
+                                  tables_nr * sizeof(uint32_t));
+    g_assert(!checksum);
+
+   /* SSDT tables after FADT */
+    data->rsdt_tables_addr = tables;
+    data->rsdt_tables_nr = tables_nr;
+}
+
+static void fadt_fetch_facs_and_dsdt_ptrs(test_data *data)
+{
+    uint32_t addr;
+    AcpiTableHeader hdr;
+
+    /* FADT table comes first */
+    addr = le32_to_cpu(data->rsdt_tables_addr[0]);
+    ACPI_READ_TABLE_HEADER(data->qts, &hdr, addr);
+    ACPI_ASSERT_CMP(hdr.signature, "FACP");
+
+    ACPI_READ_FIELD(data->qts, data->facs_addr, addr);
+    ACPI_READ_FIELD(data->qts, data->dsdt_addr, addr);
+}
+
+static void sanitize_fadt_ptrs(test_data *data)
+{
+    /* fixup pointers in FADT */
+    int i;
+
+    for (i = 0; i < data->tables->len; i++) {
+        AcpiSdtTable *sdt = &g_array_index(data->tables, AcpiSdtTable, i);
+
+        if (memcmp(&sdt->header.signature, "FACP", 4)) {
+            continue;
+        }
+
+        /* check original FADT checksum before sanitizing table */
+        g_assert(!(uint8_t)(
+            acpi_calc_checksum((uint8_t *)sdt, sizeof(AcpiTableHeader)) +
+            acpi_calc_checksum((uint8_t *)sdt->aml, sdt->aml_len)
+        ));
+
+        /* sdt->aml field offset := spec offset - header size */
+        memset(sdt->aml + 0, 0, 4); /* sanitize FIRMWARE_CTRL(36) ptr */
+        memset(sdt->aml + 4, 0, 4); /* sanitize DSDT(40) ptr */
+        if (sdt->header.revision >= 3) {
+            memset(sdt->aml + 96, 0, 8); /* sanitize X_FIRMWARE_CTRL(132) ptr */
+            memset(sdt->aml + 104, 0, 8); /* sanitize X_DSDT(140) ptr */
+        }
+
+        /* update checksum */
+        sdt->header.checksum = 0;
+        sdt->header.checksum -=
+            acpi_calc_checksum((uint8_t *)sdt, sizeof(AcpiTableHeader)) +
+            acpi_calc_checksum((uint8_t *)sdt->aml, sdt->aml_len);
+        break;
+    }
+}
+
+static void test_acpi_facs_table(test_data *data)
+{
+    AcpiFacsDescriptorRev1 *facs_table = &data->facs_table;
+    uint32_t addr = le32_to_cpu(data->facs_addr);
+
+    ACPI_READ_FIELD(data->qts, facs_table->signature, addr);
+    ACPI_READ_FIELD(data->qts, facs_table->length, addr);
+    ACPI_READ_FIELD(data->qts, facs_table->hardware_signature, addr);
+    ACPI_READ_FIELD(data->qts, facs_table->firmware_waking_vector, addr);
+    ACPI_READ_FIELD(data->qts, facs_table->global_lock, addr);
+    ACPI_READ_FIELD(data->qts, facs_table->flags, addr);
+    ACPI_READ_ARRAY(data->qts, facs_table->resverved3, addr);
+
+    ACPI_ASSERT_CMP(facs_table->signature, "FACS");
+}
+
+/** fetch_table
+ *   load ACPI table at @addr into table descriptor @sdt_table
+ *   and check that header checksum matches actual one.
+ */
+static void fetch_table(QTestState *qts, AcpiSdtTable *sdt_table, uint32_t addr)
+{
+    uint8_t checksum;
+
+    memset(sdt_table, 0, sizeof(*sdt_table));
+    ACPI_READ_TABLE_HEADER(qts, &sdt_table->header, addr);
+
+    sdt_table->aml_len = le32_to_cpu(sdt_table->header.length)
+                         - sizeof(AcpiTableHeader);
+    sdt_table->aml = g_malloc0(sdt_table->aml_len);
+    ACPI_READ_ARRAY_PTR(qts, sdt_table->aml, sdt_table->aml_len, addr);
+
+    checksum = acpi_calc_checksum((uint8_t *)sdt_table,
+                                  sizeof(AcpiTableHeader)) +
+               acpi_calc_checksum((uint8_t *)sdt_table->aml,
+                                  sdt_table->aml_len);
+    g_assert(!checksum);
+}
+
+static void test_acpi_dsdt_table(test_data *data)
+{
+    AcpiSdtTable dsdt_table;
+    uint32_t addr = le32_to_cpu(data->dsdt_addr);
+
+    fetch_table(data->qts, &dsdt_table, addr);
+    ACPI_ASSERT_CMP(dsdt_table.header.signature, "DSDT");
+
+    /* Since DSDT isn't in RSDT, add DSDT to ASL test tables list manually */
+    g_array_append_val(data->tables, dsdt_table);
+}
+
+/* Load all tables and add to test list directly RSDT referenced tables */
+static void fetch_rsdt_referenced_tables(test_data *data)
+{
+    int tables_nr = data->rsdt_tables_nr;
+    int i;
+
+    for (i = 0; i < tables_nr; i++) {
+        AcpiSdtTable ssdt_table;
+        uint32_t addr;
+
+        addr = le32_to_cpu(data->rsdt_tables_addr[i]);
+        fetch_table(data->qts, &ssdt_table, addr);
+
+        /* Add table to ASL test tables list */
+        g_array_append_val(data->tables, ssdt_table);
+    }
+}
+
+static void dump_aml_files(test_data *data, bool rebuild)
+{
+    AcpiSdtTable *sdt;
+    GError *error = NULL;
+    gchar *aml_file = NULL;
+    gint fd;
+    ssize_t ret;
+    int i;
+
+    for (i = 0; i < data->tables->len; ++i) {
+        const char *ext = data->variant ? data->variant : "";
+        sdt = &g_array_index(data->tables, AcpiSdtTable, i);
+        g_assert(sdt->aml);
+
+        if (rebuild) {
+            aml_file = g_strdup_printf("%s/%s/%.4s%s", data_dir, data->machine,
+                                       (gchar *)&sdt->header.signature, ext);
+            fd = g_open(aml_file, O_WRONLY|O_TRUNC|O_CREAT,
+                        S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH);
+        } else {
+            fd = g_file_open_tmp("aml-XXXXXX", &sdt->aml_file, &error);
+            g_assert_no_error(error);
+        }
+        g_assert(fd >= 0);
+
+        ret = qemu_write_full(fd, sdt, sizeof(AcpiTableHeader));
+        g_assert(ret == sizeof(AcpiTableHeader));
+        ret = qemu_write_full(fd, sdt->aml, sdt->aml_len);
+        g_assert(ret == sdt->aml_len);
+
+        close(fd);
+
+        g_free(aml_file);
+    }
+}
+
+static bool compare_signature(AcpiSdtTable *sdt, const char *signature)
+{
+   return !memcmp(&sdt->header.signature, signature, 4);
+}
+
+static bool load_asl(GArray *sdts, AcpiSdtTable *sdt)
+{
+    AcpiSdtTable *temp;
+    GError *error = NULL;
+    GString *command_line = g_string_new(iasl);
+    gint fd;
+    gchar *out, *out_err;
+    gboolean ret;
+    int i;
+
+    fd = g_file_open_tmp("asl-XXXXXX.dsl", &sdt->asl_file, &error);
+    g_assert_no_error(error);
+    close(fd);
+
+    /* build command line */
+    g_string_append_printf(command_line, " -p %s ", sdt->asl_file);
+    if (compare_signature(sdt, "DSDT") ||
+        compare_signature(sdt, "SSDT")) {
+        for (i = 0; i < sdts->len; ++i) {
+            temp = &g_array_index(sdts, AcpiSdtTable, i);
+            if (compare_signature(temp, "DSDT") ||
+                compare_signature(temp, "SSDT")) {
+                g_string_append_printf(command_line, "-e %s ", temp->aml_file);
+            }
+        }
+    }
+    g_string_append_printf(command_line, "-d %s", sdt->aml_file);
+
+    /* pass 'out' and 'out_err' in order to be redirected */
+    ret = g_spawn_command_line_sync(command_line->str, &out, &out_err, NULL, &error);
+    g_assert_no_error(error);
+    if (ret) {
+        ret = g_file_get_contents(sdt->asl_file, &sdt->asl,
+                                  &sdt->asl_len, &error);
+        g_assert(ret);
+        g_assert_no_error(error);
+        ret = (sdt->asl_len > 0);
+    }
+
+    g_free(out);
+    g_free(out_err);
+    g_string_free(command_line, true);
+
+    return !ret;
+}
+
+#define COMMENT_END "*/"
+#define DEF_BLOCK "DefinitionBlock ("
+#define BLOCK_NAME_END ","
+
+static GString *normalize_asl(gchar *asl_code)
+{
+    GString *asl = g_string_new(asl_code);
+    gchar *comment, *block_name;
+
+    /* strip comments (different generation days) */
+    comment = g_strstr_len(asl->str, asl->len, COMMENT_END);
+    if (comment) {
+        comment += strlen(COMMENT_END);
+        while (*comment == '\n') {
+            comment++;
+        }
+        asl = g_string_erase(asl, 0, comment - asl->str);
+    }
+
+    /* strip def block name (it has file path in it) */
+    if (g_str_has_prefix(asl->str, DEF_BLOCK)) {
+        block_name = g_strstr_len(asl->str, asl->len, BLOCK_NAME_END);
+        g_assert(block_name);
+        asl = g_string_erase(asl, 0,
+                             block_name + sizeof(BLOCK_NAME_END) - asl->str);
+    }
+
+    return asl;
+}
+
+static GArray *load_expected_aml(test_data *data)
+{
+    int i;
+    AcpiSdtTable *sdt;
+    GError *error = NULL;
+    gboolean ret;
+
+    GArray *exp_tables = g_array_new(false, true, sizeof(AcpiSdtTable));
+    if (getenv("V")) {
+        fputc('\n', stderr);
+    }
+    for (i = 0; i < data->tables->len; ++i) {
+        AcpiSdtTable exp_sdt;
+        gchar *aml_file = NULL;
+        const char *ext = data->variant ? data->variant : "";
+
+        sdt = &g_array_index(data->tables, AcpiSdtTable, i);
+
+        memset(&exp_sdt, 0, sizeof(exp_sdt));
+        exp_sdt.header.signature = sdt->header.signature;
+
+try_again:
+        aml_file = g_strdup_printf("%s/%s/%.4s%s", data_dir, data->machine,
+                                   (gchar *)&sdt->header.signature, ext);
+        if (getenv("V")) {
+            fprintf(stderr, "Looking for expected file '%s'\n", aml_file);
+        }
+        if (g_file_test(aml_file, G_FILE_TEST_EXISTS)) {
+            exp_sdt.aml_file = aml_file;
+        } else if (*ext != '\0') {
+            /* try fallback to generic (extension less) expected file */
+            ext = "";
+            g_free(aml_file);
+            goto try_again;
+        }
+        g_assert(exp_sdt.aml_file);
+        if (getenv("V")) {
+            fprintf(stderr, "Using expected file '%s'\n", aml_file);
+        }
+        ret = g_file_get_contents(aml_file, &exp_sdt.aml,
+                                  &exp_sdt.aml_len, &error);
+        g_assert(ret);
+        g_assert_no_error(error);
+        g_assert(exp_sdt.aml);
+        g_assert(exp_sdt.aml_len);
+
+        g_array_append_val(exp_tables, exp_sdt);
+    }
+
+    return exp_tables;
+}
+
+/* test the list of tables in @data->tables against reference tables */
+static void test_acpi_asl(test_data *data)
+{
+    int i;
+    AcpiSdtTable *sdt, *exp_sdt;
+    test_data exp_data;
+    gboolean exp_err, err;
+
+    memset(&exp_data, 0, sizeof(exp_data));
+    exp_data.tables = load_expected_aml(data);
+    dump_aml_files(data, false);
+    for (i = 0; i < data->tables->len; ++i) {
+        GString *asl, *exp_asl;
+
+        sdt = &g_array_index(data->tables, AcpiSdtTable, i);
+        exp_sdt = &g_array_index(exp_data.tables, AcpiSdtTable, i);
+
+        err = load_asl(data->tables, sdt);
+        asl = normalize_asl(sdt->asl);
+
+        exp_err = load_asl(exp_data.tables, exp_sdt);
+        exp_asl = normalize_asl(exp_sdt->asl);
+
+        /* TODO: check for warnings */
+        g_assert(!err || exp_err);
+
+        if (g_strcmp0(asl->str, exp_asl->str)) {
+            if (exp_err) {
+                fprintf(stderr,
+                        "Warning! iasl couldn't parse the expected aml\n");
+            } else {
+                uint32_t signature = cpu_to_le32(exp_sdt->header.signature);
+                sdt->tmp_files_retain = true;
+                exp_sdt->tmp_files_retain = true;
+                fprintf(stderr,
+                        "acpi-test: Warning! %.4s mismatch. "
+                        "Actual [asl:%s, aml:%s], Expected [asl:%s, aml:%s].\n",
+                        (gchar *)&signature,
+                        sdt->asl_file, sdt->aml_file,
+                        exp_sdt->asl_file, exp_sdt->aml_file);
+                if (getenv("V")) {
+                    const char *diff_cmd = getenv("DIFF");
+                    if (diff_cmd) {
+                        int ret G_GNUC_UNUSED;
+                        char *diff = g_strdup_printf("%s %s %s", diff_cmd,
+                            exp_sdt->asl_file, sdt->asl_file);
+                        ret = system(diff) ;
+                        g_free(diff);
+                    } else {
+                        fprintf(stderr, "acpi-test: Warning. not showing "
+                            "difference since no diff utility is specified. "
+                            "Set 'DIFF' environment variable to a preferred "
+                            "diff utility and run 'make V=1 check' again to "
+                            "see ASL difference.");
+                    }
+                }
+          }
+        }
+        g_string_free(asl, true);
+        g_string_free(exp_asl, true);
+    }
+
+    free_test_data(&exp_data);
+}
+
+static bool smbios_ep_table_ok(test_data *data)
+{
+    struct smbios_21_entry_point *ep_table = &data->smbios_ep_table;
+    uint32_t addr = data->smbios_ep_addr;
+
+    ACPI_READ_ARRAY(data->qts, ep_table->anchor_string, addr);
+    if (memcmp(ep_table->anchor_string, "_SM_", 4)) {
+        return false;
+    }
+    ACPI_READ_FIELD(data->qts, ep_table->checksum, addr);
+    ACPI_READ_FIELD(data->qts, ep_table->length, addr);
+    ACPI_READ_FIELD(data->qts, ep_table->smbios_major_version, addr);
+    ACPI_READ_FIELD(data->qts, ep_table->smbios_minor_version, addr);
+    ACPI_READ_FIELD(data->qts, ep_table->max_structure_size, addr);
+    ACPI_READ_FIELD(data->qts, ep_table->entry_point_revision, addr);
+    ACPI_READ_ARRAY(data->qts, ep_table->formatted_area, addr);
+    ACPI_READ_ARRAY(data->qts, ep_table->intermediate_anchor_string, addr);
+    if (memcmp(ep_table->intermediate_anchor_string, "_DMI_", 5)) {
+        return false;
+    }
+    ACPI_READ_FIELD(data->qts, ep_table->intermediate_checksum, addr);
+    ACPI_READ_FIELD(data->qts, ep_table->structure_table_length, addr);
+    if (ep_table->structure_table_length == 0) {
+        return false;
+    }
+    ACPI_READ_FIELD(data->qts, ep_table->structure_table_address, addr);
+    ACPI_READ_FIELD(data->qts, ep_table->number_of_structures, addr);
+    if (ep_table->number_of_structures == 0) {
+        return false;
+    }
+    ACPI_READ_FIELD(data->qts, ep_table->smbios_bcd_revision, addr);
+    if (acpi_calc_checksum((uint8_t *)ep_table, sizeof *ep_table) ||
+        acpi_calc_checksum((uint8_t *)ep_table + 0x10,
+                           sizeof *ep_table - 0x10)) {
+        return false;
+    }
+    return true;
+}
+
+static void test_smbios_entry_point(test_data *data)
+{
+    uint32_t off;
+
+    /* find smbios entry point structure */
+    for (off = 0xf0000; off < 0x100000; off += 0x10) {
+        uint8_t sig[] = "_SM_";
+        int i;
+
+        for (i = 0; i < sizeof sig - 1; ++i) {
+            sig[i] = qtest_readb(data->qts, off + i);
+        }
+
+        if (!memcmp(sig, "_SM_", sizeof sig)) {
+            /* signature match, but is this a valid entry point? */
+            data->smbios_ep_addr = off;
+            if (smbios_ep_table_ok(data)) {
+                break;
+            }
+        }
+    }
+
+    g_assert_cmphex(off, <, 0x100000);
+}
+
+static inline bool smbios_single_instance(uint8_t type)
+{
+    switch (type) {
+    case 0:
+    case 1:
+    case 2:
+    case 3:
+    case 16:
+    case 32:
+    case 127:
+        return true;
+    default:
+        return false;
+    }
+}
+
+static void test_smbios_structs(test_data *data)
+{
+    DECLARE_BITMAP(struct_bitmap, SMBIOS_MAX_TYPE+1) = { 0 };
+    struct smbios_21_entry_point *ep_table = &data->smbios_ep_table;
+    uint32_t addr = le32_to_cpu(ep_table->structure_table_address);
+    int i, len, max_len = 0;
+    uint8_t type, prv, crt;
+
+    /* walk the smbios tables */
+    for (i = 0; i < le16_to_cpu(ep_table->number_of_structures); i++) {
+
+        /* grab type and formatted area length from struct header */
+        type = qtest_readb(data->qts, addr);
+        g_assert_cmpuint(type, <=, SMBIOS_MAX_TYPE);
+        len = qtest_readb(data->qts, addr + 1);
+
+        /* single-instance structs must not have been encountered before */
+        if (smbios_single_instance(type)) {
+            g_assert(!test_bit(type, struct_bitmap));
+        }
+        set_bit(type, struct_bitmap);
+
+        /* seek to end of unformatted string area of this struct ("\0\0") */
+        prv = crt = 1;
+        while (prv || crt) {
+            prv = crt;
+            crt = qtest_readb(data->qts, addr + len);
+            len++;
+        }
+
+        /* keep track of max. struct size */
+        if (max_len < len) {
+            max_len = len;
+            g_assert_cmpuint(max_len, <=, ep_table->max_structure_size);
+        }
+
+        /* start of next structure */
+        addr += len;
+    }
+
+    /* total table length and max struct size must match entry point values */
+    g_assert_cmpuint(le16_to_cpu(ep_table->structure_table_length), ==,
+                     addr - le32_to_cpu(ep_table->structure_table_address));
+    g_assert_cmpuint(le16_to_cpu(ep_table->max_structure_size), ==, max_len);
+
+    /* required struct types must all be present */
+    for (i = 0; i < data->required_struct_types_len; i++) {
+        g_assert(test_bit(data->required_struct_types[i], struct_bitmap));
+    }
+}
+
+static void test_acpi_one(const char *params, test_data *data)
+{
+    char *args;
+
+    /* Disable kernel irqchip to be able to override apic irq0. */
+    args = g_strdup_printf("-machine %s,accel=%s,kernel-irqchip=off "
+                           "-net none -display none %s "
+                           "-drive id=hd0,if=none,file=%s,format=raw "
+                           "-device ide-hd,drive=hd0 ",
+                           data->machine, "kvm:tcg",
+                           params ? params : "", disk);
+
+    data->qts = qtest_init(args);
+
+    boot_sector_test(data->qts);
+
+    data->tables = g_array_new(false, true, sizeof(AcpiSdtTable));
+    test_acpi_rsdp_address(data);
+    test_acpi_rsdp_table(data);
+    test_acpi_rsdt_table(data);
+    fadt_fetch_facs_and_dsdt_ptrs(data);
+    test_acpi_facs_table(data);
+    test_acpi_dsdt_table(data);
+    fetch_rsdt_referenced_tables(data);
+
+    sanitize_fadt_ptrs(data);
+
+    if (iasl) {
+        if (getenv(ACPI_REBUILD_EXPECTED_AML)) {
+            dump_aml_files(data, true);
+        } else {
+            test_acpi_asl(data);
+        }
+    }
+
+    test_smbios_entry_point(data);
+    test_smbios_structs(data);
+
+    assert(!global_qtest);
+    qtest_quit(data->qts);
+    g_free(args);
+}
+
+static uint8_t base_required_struct_types[] = {
+    0, 1, 3, 4, 16, 17, 19, 32, 127
+};
+
+static void test_acpi_piix4_tcg(void)
+{
+    test_data data;
+
+    /* Supplying -machine accel argument overrides the default (qtest).
+     * This is to make guest actually run.
+     */
+    memset(&data, 0, sizeof(data));
+    data.machine = MACHINE_PC;
+    data.required_struct_types = base_required_struct_types;
+    data.required_struct_types_len = ARRAY_SIZE(base_required_struct_types);
+    test_acpi_one(NULL, &data);
+    free_test_data(&data);
+}
+
+static void test_acpi_piix4_tcg_bridge(void)
+{
+    test_data data;
+
+    memset(&data, 0, sizeof(data));
+    data.machine = MACHINE_PC;
+    data.variant = ".bridge";
+    data.required_struct_types = base_required_struct_types;
+    data.required_struct_types_len = ARRAY_SIZE(base_required_struct_types);
+    test_acpi_one("-device pci-bridge,chassis_nr=1", &data);
+    free_test_data(&data);
+}
+
+static void test_acpi_q35_tcg(void)
+{
+    test_data data;
+
+    memset(&data, 0, sizeof(data));
+    data.machine = MACHINE_Q35;
+    data.required_struct_types = base_required_struct_types;
+    data.required_struct_types_len = ARRAY_SIZE(base_required_struct_types);
+    test_acpi_one(NULL, &data);
+    free_test_data(&data);
+}
+
+static void test_acpi_q35_tcg_bridge(void)
+{
+    test_data data;
+
+    memset(&data, 0, sizeof(data));
+    data.machine = MACHINE_Q35;
+    data.variant = ".bridge";
+    data.required_struct_types = base_required_struct_types;
+    data.required_struct_types_len = ARRAY_SIZE(base_required_struct_types);
+    test_acpi_one("-device pci-bridge,chassis_nr=1",
+                  &data);
+    free_test_data(&data);
+}
+
+static void test_acpi_q35_tcg_mmio64(void)
+{
+    test_data data = {
+        .machine = MACHINE_Q35,
+        .variant = ".mmio64",
+        .required_struct_types = base_required_struct_types,
+        .required_struct_types_len = ARRAY_SIZE(base_required_struct_types)
+    };
+
+    test_acpi_one("-m 128M,slots=1,maxmem=2G "
+                  "-device pci-testdev,membar=2G",
+                  &data);
+    free_test_data(&data);
+}
+
+static void test_acpi_piix4_tcg_cphp(void)
+{
+    test_data data;
+
+    memset(&data, 0, sizeof(data));
+    data.machine = MACHINE_PC;
+    data.variant = ".cphp";
+    test_acpi_one("-smp 2,cores=3,sockets=2,maxcpus=6"
+                  " -numa node -numa node"
+                  " -numa dist,src=0,dst=1,val=21",
+                  &data);
+    free_test_data(&data);
+}
+
+static void test_acpi_q35_tcg_cphp(void)
+{
+    test_data data;
+
+    memset(&data, 0, sizeof(data));
+    data.machine = MACHINE_Q35;
+    data.variant = ".cphp";
+    test_acpi_one(" -smp 2,cores=3,sockets=2,maxcpus=6"
+                  " -numa node -numa node"
+                  " -numa dist,src=0,dst=1,val=21",
+                  &data);
+    free_test_data(&data);
+}
+
+static uint8_t ipmi_required_struct_types[] = {
+    0, 1, 3, 4, 16, 17, 19, 32, 38, 127
+};
+
+static void test_acpi_q35_tcg_ipmi(void)
+{
+    test_data data;
+
+    memset(&data, 0, sizeof(data));
+    data.machine = MACHINE_Q35;
+    data.variant = ".ipmibt";
+    data.required_struct_types = ipmi_required_struct_types;
+    data.required_struct_types_len = ARRAY_SIZE(ipmi_required_struct_types);
+    test_acpi_one("-device ipmi-bmc-sim,id=bmc0"
+                  " -device isa-ipmi-bt,bmc=bmc0",
+                  &data);
+    free_test_data(&data);
+}
+
+static void test_acpi_piix4_tcg_ipmi(void)
+{
+    test_data data;
+
+    /* Supplying -machine accel argument overrides the default (qtest).
+     * This is to make guest actually run.
+     */
+    memset(&data, 0, sizeof(data));
+    data.machine = MACHINE_PC;
+    data.variant = ".ipmikcs";
+    data.required_struct_types = ipmi_required_struct_types;
+    data.required_struct_types_len = ARRAY_SIZE(ipmi_required_struct_types);
+    test_acpi_one("-device ipmi-bmc-sim,id=bmc0"
+                  " -device isa-ipmi-kcs,irq=0,bmc=bmc0",
+                  &data);
+    free_test_data(&data);
+}
+
+static void test_acpi_q35_tcg_memhp(void)
+{
+    test_data data;
+
+    memset(&data, 0, sizeof(data));
+    data.machine = MACHINE_Q35;
+    data.variant = ".memhp";
+    test_acpi_one(" -m 128,slots=3,maxmem=1G"
+                  " -numa node -numa node"
+                  " -numa dist,src=0,dst=1,val=21",
+                  &data);
+    free_test_data(&data);
+}
+
+static void test_acpi_piix4_tcg_memhp(void)
+{
+    test_data data;
+
+    memset(&data, 0, sizeof(data));
+    data.machine = MACHINE_PC;
+    data.variant = ".memhp";
+    test_acpi_one(" -m 128,slots=3,maxmem=1G"
+                  " -numa node -numa node"
+                  " -numa dist,src=0,dst=1,val=21",
+                  &data);
+    free_test_data(&data);
+}
+
+static void test_acpi_q35_tcg_numamem(void)
+{
+    test_data data;
+
+    memset(&data, 0, sizeof(data));
+    data.machine = MACHINE_Q35;
+    data.variant = ".numamem";
+    test_acpi_one(" -numa node -numa node,mem=128", &data);
+    free_test_data(&data);
+}
+
+static void test_acpi_piix4_tcg_numamem(void)
+{
+    test_data data;
+
+    memset(&data, 0, sizeof(data));
+    data.machine = MACHINE_PC;
+    data.variant = ".numamem";
+    test_acpi_one(" -numa node -numa node,mem=128", &data);
+    free_test_data(&data);
+}
+
+static void test_acpi_tcg_dimm_pxm(const char *machine)
+{
+    test_data data;
+
+    memset(&data, 0, sizeof(data));
+    data.machine = machine;
+    data.variant = ".dimmpxm";
+    test_acpi_one(" -machine nvdimm=on,nvdimm-persistence=cpu"
+                  " -smp 4,sockets=4"
+                  " -m 128M,slots=3,maxmem=1G"
+                  " -numa node,mem=32M,nodeid=0"
+                  " -numa node,mem=32M,nodeid=1"
+                  " -numa node,mem=32M,nodeid=2"
+                  " -numa node,mem=32M,nodeid=3"
+                  " -numa cpu,node-id=0,socket-id=0"
+                  " -numa cpu,node-id=1,socket-id=1"
+                  " -numa cpu,node-id=2,socket-id=2"
+                  " -numa cpu,node-id=3,socket-id=3"
+                  " -object memory-backend-ram,id=ram0,size=128M"
+                  " -object memory-backend-ram,id=nvm0,size=128M"
+                  " -device pc-dimm,id=dimm0,memdev=ram0,node=1"
+                  " -device nvdimm,id=dimm1,memdev=nvm0,node=2",
+                  &data);
+    free_test_data(&data);
+}
+
+static void test_acpi_q35_tcg_dimm_pxm(void)
+{
+    test_acpi_tcg_dimm_pxm(MACHINE_Q35);
+}
+
+static void test_acpi_piix4_tcg_dimm_pxm(void)
+{
+    test_acpi_tcg_dimm_pxm(MACHINE_PC);
+}
+
+int main(int argc, char *argv[])
+{
+    const char *arch = qtest_get_arch();
+    int ret;
+
+    ret = boot_sector_init(disk);
+    if(ret)
+        return ret;
+
+    g_test_init(&argc, &argv, NULL);
+
+    if (strcmp(arch, "i386") == 0 || strcmp(arch, "x86_64") == 0) {
+        qtest_add_func("acpi/piix4", test_acpi_piix4_tcg);
+        qtest_add_func("acpi/piix4/bridge", test_acpi_piix4_tcg_bridge);
+        qtest_add_func("acpi/q35", test_acpi_q35_tcg);
+        qtest_add_func("acpi/q35/bridge", test_acpi_q35_tcg_bridge);
+        qtest_add_func("acpi/q35/mmio64", test_acpi_q35_tcg_mmio64);
+        qtest_add_func("acpi/piix4/ipmi", test_acpi_piix4_tcg_ipmi);
+        qtest_add_func("acpi/q35/ipmi", test_acpi_q35_tcg_ipmi);
+        qtest_add_func("acpi/piix4/cpuhp", test_acpi_piix4_tcg_cphp);
+        qtest_add_func("acpi/q35/cpuhp", test_acpi_q35_tcg_cphp);
+        qtest_add_func("acpi/piix4/memhp", test_acpi_piix4_tcg_memhp);
+        qtest_add_func("acpi/q35/memhp", test_acpi_q35_tcg_memhp);
+        qtest_add_func("acpi/piix4/numamem", test_acpi_piix4_tcg_numamem);
+        qtest_add_func("acpi/q35/numamem", test_acpi_q35_tcg_numamem);
+        qtest_add_func("acpi/piix4/dimmpxm", test_acpi_piix4_tcg_dimm_pxm);
+        qtest_add_func("acpi/q35/dimmpxm", test_acpi_q35_tcg_dimm_pxm);
+    }
+    ret = g_test_run();
+    boot_sector_cleanup(disk);
+    return ret;
+}
diff --git a/tests/data/acpi/diff-aml.sh b/tests/data/acpi/diff-aml.sh
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/tests/data/acpi/disassemle-aml.py b/tests/data/acpi/disassemle-aml.py
new file mode 100644
index 0000000000..0398fada63
--- /dev/null
+++ b/tests/data/acpi/disassemle-aml.py
@@ -0,0 +1,21 @@
+#!/usr/bin/python
+
+import os, re
+root = "tests/data/acpi"
+for machine in os.listdir(root):
+    machine_root = os.path.join(root, machine)
+    if not os.path.isdir(machine_root):
+        continue
+    files = os.listdir(machine_root):
+    for file in files:
+        if file.endswith(".dsl"):
+            continue
+        extension_prefix = "^[^.]*\."
+        if re.match(extension_prefix, file):
+            variant = re.sub(extension_prefix, "", file)
+
+
+for dirpath, dirnames, filenames in os.walk("tests/data/acpi"):
+    for file in files:
+        if file.endswith(".txt"):
+             print(os.path.join(root, file))
diff --git a/tests/data/acpi/microvm/APIC.dsl b/tests/data/acpi/microvm/APIC.dsl
new file mode 100644
index 0000000000..02f56dce43
--- /dev/null
+++ b/tests/data/acpi/microvm/APIC.dsl
@@ -0,0 +1,56 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/microvm/APIC, Mon Sep 28 17:24:38 2020
+ *
+ * ACPI Data Table [APIC]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "APIC"    [Multiple APIC Description Table (MADT)]
+[004h 0004   4]                 Table Length : 00000046
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : D7
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCAPIC"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]           Local Apic Address : FEE00000
+[028h 0040   4]        Flags (decoded below) : 00000001
+                         PC-AT Compatibility : 1
+
+[02Ch 0044   1]                Subtable Type : 00 [Processor Local APIC]
+[02Dh 0045   1]                       Length : 08
+[02Eh 0046   1]                 Processor ID : 00
+[02Fh 0047   1]                Local Apic ID : 00
+[030h 0048   4]        Flags (decoded below) : 00000001
+                           Processor Enabled : 1
+                      Runtime Online Capable : 0
+
+[034h 0052   1]                Subtable Type : 01 [I/O APIC]
+[035h 0053   1]                       Length : 0C
+[036h 0054   1]                  I/O Apic ID : 00
+[037h 0055   1]                     Reserved : 00
+[038h 0056   4]                      Address : FEC00000
+[03Ch 0060   4]                    Interrupt : 00000000
+
+[040h 0064   1]                Subtable Type : 04 [Local APIC NMI]
+[041h 0065   1]                       Length : 06
+[042h 0066   1]                 Processor ID : FF
+[043h 0067   2]        Flags (decoded below) : 0000
+                                    Polarity : 0
+                                Trigger Mode : 0
+[045h 0069   1]         Interrupt Input LINT : 01
+
+Raw Table Data: Length 70 (0x46)
+
+    0000: 41 50 49 43 46 00 00 00 01 D7 42 4F 43 48 53 20  // APICF.....BOCHS 
+    0010: 42 58 50 43 41 50 49 43 01 00 00 00 42 58 50 43  // BXPCAPIC....BXPC
+    0020: 01 00 00 00 00 00 E0 FE 01 00 00 00 00 08 00 00  // ................
+    0030: 01 00 00 00 01 0C 00 00 00 00 C0 FE 00 00 00 00  // ................
+    0040: 04 06 FF 00 00 01                                // ......
diff --git a/tests/data/acpi/microvm/DSDT.dsl b/tests/data/acpi/microvm/DSDT.dsl
new file mode 100644
index 0000000000..fd53f08128
--- /dev/null
+++ b/tests/data/acpi/microvm/DSDT.dsl
@@ -0,0 +1,121 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembling to symbolic ASL+ operators
+ *
+ * Disassembly of tests/data/acpi/microvm/DSDT, Mon Sep 28 17:24:38 2020
+ *
+ * Original Table Header:
+ *     Signature        "DSDT"
+ *     Length           0x0000016D (365)
+ *     Revision         0x02
+ *     Checksum         0x62
+ *     OEM ID           "BOCHS "
+ *     OEM Table ID     "BXPCDSDT"
+ *     OEM Revision     0x00000001 (1)
+ *     Compiler ID      "BXPC"
+ *     Compiler Version 0x00000001 (1)
+ */
+DefinitionBlock ("", "DSDT", 2, "BOCHS ", "BXPCDSDT", 0x00000001)
+{
+    Scope (_SB)
+    {
+        Device (FWCF)
+        {
+            Name (_HID, "QEMU0002")  // _HID: Hardware ID
+            Name (_STA, 0x0B)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0510,             // Range Minimum
+                    0x0510,             // Range Maximum
+                    0x01,               // Alignment
+                    0x0C,               // Length
+                    )
+            })
+        }
+
+        Device (COM1)
+        {
+            Name (_HID, EisaId ("PNP0501") /* 16550A-compatible COM Serial Port */)  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x03F8,             // Range Minimum
+                    0x03F8,             // Range Maximum
+                    0x00,               // Alignment
+                    0x08,               // Length
+                    )
+                IRQNoFlags ()
+                    {4}
+            })
+        }
+
+        Device (GED)
+        {
+            Name (_HID, "ACPI0013" /* Generic Event Device */)  // _HID: Hardware ID
+            Name (_UID, "GED")  // _UID: Unique ID
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Edge, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000009,
+                }
+            })
+            OperationRegion (EREG, SystemMemory, 0xFEA00000, 0x04)
+            Field (EREG, DWordAcc, NoLock, WriteAsZeros)
+            {
+                ESEL,   32
+            }
+
+            Method (_EVT, 1, Serialized)  // _EVT: Event
+            {
+                Local0 = ESEL /* \_SB_.GED_.ESEL */
+                If (((Local0 & 0x02) == 0x02))
+                {
+                    Notify (PWRB, 0x80) // Status Change
+                }
+            }
+        }
+
+        Device (PWRB)
+        {
+            Name (_HID, "PNP0C0C" /* Power Button Device */)  // _HID: Hardware ID
+            Name (_UID, Zero)  // _UID: Unique ID
+        }
+
+        Device (VR07)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x07)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0xFEB00E00,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000017,
+                }
+            })
+        }
+    }
+
+    Scope (\)
+    {
+        Name (_S5, Package (0x04)  // _S5_: S5 System State
+        {
+            0x05, 
+            Zero, 
+            Zero, 
+            Zero
+        })
+    }
+}
+
diff --git a/tests/data/acpi/microvm/FACP.dsl b/tests/data/acpi/microvm/FACP.dsl
new file mode 100644
index 0000000000..4cf780caec
--- /dev/null
+++ b/tests/data/acpi/microvm/FACP.dsl
@@ -0,0 +1,196 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/microvm/FACP, Mon Sep 28 17:24:38 2020
+ *
+ * ACPI Data Table [FACP]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "FACP"    [Fixed ACPI Description Table (FADT)]
+[004h 0004   4]                 Table Length : 0000010C
+[008h 0008   1]                     Revision : 05
+[009h 0009   1]                     Checksum : 7E
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCFACP"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]                 FACS Address : 00000000
+[028h 0040   4]                 DSDT Address : 00000000
+[02Ch 0044   1]                        Model : 00
+[02Dh 0045   1]                   PM Profile : 00 [Unspecified]
+[02Eh 0046   2]                SCI Interrupt : 0000
+[030h 0048   4]             SMI Command Port : 00000000
+[034h 0052   1]            ACPI Enable Value : 00
+[035h 0053   1]           ACPI Disable Value : 00
+[036h 0054   1]               S4BIOS Command : 00
+[037h 0055   1]              P-State Control : 00
+[038h 0056   4]     PM1A Event Block Address : 00000000
+[03Ch 0060   4]     PM1B Event Block Address : 00000000
+[040h 0064   4]   PM1A Control Block Address : 00000000
+[044h 0068   4]   PM1B Control Block Address : 00000000
+[048h 0072   4]    PM2 Control Block Address : 00000000
+[04Ch 0076   4]       PM Timer Block Address : 00000000
+[050h 0080   4]           GPE0 Block Address : 00000000
+[054h 0084   4]           GPE1 Block Address : 00000000
+[058h 0088   1]       PM1 Event Block Length : 00
+[059h 0089   1]     PM1 Control Block Length : 00
+[05Ah 0090   1]     PM2 Control Block Length : 00
+[05Bh 0091   1]        PM Timer Block Length : 00
+[05Ch 0092   1]            GPE0 Block Length : 00
+[05Dh 0093   1]            GPE1 Block Length : 00
+[05Eh 0094   1]             GPE1 Base Offset : 00
+[05Fh 0095   1]                 _CST Support : 00
+[060h 0096   2]                   C2 Latency : 0000
+[062h 0098   2]                   C3 Latency : 0000
+[064h 0100   2]               CPU Cache Size : 0000
+[066h 0102   2]           Cache Flush Stride : 0000
+[068h 0104   1]            Duty Cycle Offset : 00
+[069h 0105   1]             Duty Cycle Width : 00
+[06Ah 0106   1]          RTC Day Alarm Index : 00
+[06Bh 0107   1]        RTC Month Alarm Index : 00
+[06Ch 0108   1]            RTC Century Index : 00
+[06Dh 0109   2]   Boot Flags (decoded below) : 0000
+               Legacy Devices Supported (V2) : 0
+            8042 Present on ports 60/64 (V2) : 0
+                        VGA Not Present (V4) : 0
+                      MSI Not Supported (V4) : 0
+                PCIe ASPM Not Supported (V4) : 0
+                   CMOS RTC Not Present (V5) : 0
+[06Fh 0111   1]                     Reserved : 00
+[070h 0112   4]        Flags (decoded below) : 00100400
+      WBINVD instruction is operational (V1) : 0
+              WBINVD flushes all caches (V1) : 0
+                    All CPUs support C1 (V1) : 0
+                  C2 works on MP system (V1) : 0
+            Control Method Power Button (V1) : 0
+            Control Method Sleep Button (V1) : 0
+        RTC wake not in fixed reg space (V1) : 0
+            RTC can wake system from S4 (V1) : 0
+                        32-bit PM Timer (V1) : 0
+                      Docking Supported (V1) : 0
+               Reset Register Supported (V2) : 1
+                            Sealed Case (V3) : 0
+                    Headless - No Video (V3) : 0
+        Use native instr after SLP_TYPx (V3) : 0
+              PCIEXP_WAK Bits Supported (V4) : 0
+                     Use Platform Timer (V4) : 0
+               RTC_STS valid on S4 wake (V4) : 0
+                Remote Power-on capable (V4) : 0
+                 Use APIC Cluster Model (V4) : 0
+     Use APIC Physical Destination Mode (V4) : 0
+                       Hardware Reduced (V5) : 1
+                      Low Power S0 Idle (V5) : 0
+
+[074h 0116  12]               Reset Register : [Generic Address Structure]
+[074h 0116   1]                     Space ID : 00 [SystemMemory]
+[075h 0117   1]                    Bit Width : 08
+[076h 0118   1]                   Bit Offset : 00
+[077h 0119   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[078h 0120   8]                      Address : 00000000FEA00202
+
+[080h 0128   1]         Value to cause reset : 42
+[081h 0129   2]    ARM Flags (decoded below) : 0000
+                              PSCI Compliant : 0
+                       Must use HVC for PSCI : 0
+
+[083h 0131   1]          FADT Minor Revision : 00
+[084h 0132   8]                 FACS Address : 0000000000000000
+[08Ch 0140   8]                 DSDT Address : 0000000000000000
+[094h 0148  12]             PM1A Event Block : [Generic Address Structure]
+[094h 0148   1]                     Space ID : 00 [SystemMemory]
+[095h 0149   1]                    Bit Width : 00
+[096h 0150   1]                   Bit Offset : 00
+[097h 0151   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[098h 0152   8]                      Address : 0000000000000000
+
+[0A0h 0160  12]             PM1B Event Block : [Generic Address Structure]
+[0A0h 0160   1]                     Space ID : 00 [SystemMemory]
+[0A1h 0161   1]                    Bit Width : 00
+[0A2h 0162   1]                   Bit Offset : 00
+[0A3h 0163   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0A4h 0164   8]                      Address : 0000000000000000
+
+[0ACh 0172  12]           PM1A Control Block : [Generic Address Structure]
+[0ACh 0172   1]                     Space ID : 00 [SystemMemory]
+[0ADh 0173   1]                    Bit Width : 00
+[0AEh 0174   1]                   Bit Offset : 00
+[0AFh 0175   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0B0h 0176   8]                      Address : 0000000000000000
+
+[0B8h 0184  12]           PM1B Control Block : [Generic Address Structure]
+[0B8h 0184   1]                     Space ID : 00 [SystemMemory]
+[0B9h 0185   1]                    Bit Width : 00
+[0BAh 0186   1]                   Bit Offset : 00
+[0BBh 0187   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0BCh 0188   8]                      Address : 0000000000000000
+
+[0C4h 0196  12]            PM2 Control Block : [Generic Address Structure]
+[0C4h 0196   1]                     Space ID : 00 [SystemMemory]
+[0C5h 0197   1]                    Bit Width : 00
+[0C6h 0198   1]                   Bit Offset : 00
+[0C7h 0199   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0C8h 0200   8]                      Address : 0000000000000000
+
+[0D0h 0208  12]               PM Timer Block : [Generic Address Structure]
+[0D0h 0208   1]                     Space ID : 00 [SystemMemory]
+[0D1h 0209   1]                    Bit Width : 00
+[0D2h 0210   1]                   Bit Offset : 00
+[0D3h 0211   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0D4h 0212   8]                      Address : 0000000000000000
+
+[0DCh 0220  12]                   GPE0 Block : [Generic Address Structure]
+[0DCh 0220   1]                     Space ID : 00 [SystemMemory]
+[0DDh 0221   1]                    Bit Width : 00
+[0DEh 0222   1]                   Bit Offset : 00
+[0DFh 0223   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0E0h 0224   8]                      Address : 0000000000000000
+
+[0E8h 0232  12]                   GPE1 Block : [Generic Address Structure]
+[0E8h 0232   1]                     Space ID : 00 [SystemMemory]
+[0E9h 0233   1]                    Bit Width : 00
+[0EAh 0234   1]                   Bit Offset : 00
+[0EBh 0235   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0ECh 0236   8]                      Address : 0000000000000000
+
+
+[0F4h 0244  12]       Sleep Control Register : [Generic Address Structure]
+[0F4h 0244   1]                     Space ID : 00 [SystemMemory]
+[0F5h 0245   1]                    Bit Width : 08
+[0F6h 0246   1]                   Bit Offset : 00
+[0F7h 0247   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0F8h 0248   8]                      Address : 00000000FEA00200
+
+[100h 0256  12]        Sleep Status Register : [Generic Address Structure]
+[100h 0256   1]                     Space ID : 00 [SystemMemory]
+[101h 0257   1]                    Bit Width : 08
+[102h 0258   1]                   Bit Offset : 00
+[103h 0259   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[104h 0260   8]                      Address : 00000000FEA00201
+
+/**** ACPI table terminates in the middle of a data structure! (dump table) */
+
+Raw Table Data: Length 268 (0x10C)
+
+    0000: 46 41 43 50 0C 01 00 00 05 7E 42 4F 43 48 53 20  // FACP.....~BOCHS 
+    0010: 42 58 50 43 46 41 43 50 01 00 00 00 42 58 50 43  // BXPCFACP....BXPC
+    0020: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0040: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0050: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0070: 00 04 10 00 00 08 00 00 02 02 A0 FE 00 00 00 00  // ................
+    0080: 42 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // B...............
+    0090: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00F0: 00 00 00 00 00 08 00 00 00 02 A0 FE 00 00 00 00  // ................
+    0100: 00 08 00 00 01 02 A0 FE 00 00 00 00              // ............
diff --git a/tests/data/acpi/pc/APIC.acpihmat.dsl b/tests/data/acpi/pc/APIC.acpihmat.dsl
new file mode 100644
index 0000000000..15155cac55
--- /dev/null
+++ b/tests/data/acpi/pc/APIC.acpihmat.dsl
@@ -0,0 +1,112 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/pc/APIC.acpihmat, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [APIC]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "APIC"    [Multiple APIC Description Table (MADT)]
+[004h 0004   4]                 Table Length : 00000080
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : DA
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCAPIC"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]           Local Apic Address : FEE00000
+[028h 0040   4]        Flags (decoded below) : 00000001
+                         PC-AT Compatibility : 1
+
+[02Ch 0044   1]                Subtable Type : 00 [Processor Local APIC]
+[02Dh 0045   1]                       Length : 08
+[02Eh 0046   1]                 Processor ID : 00
+[02Fh 0047   1]                Local Apic ID : 00
+[030h 0048   4]        Flags (decoded below) : 00000001
+                           Processor Enabled : 1
+                      Runtime Online Capable : 0
+
+[034h 0052   1]                Subtable Type : 00 [Processor Local APIC]
+[035h 0053   1]                       Length : 08
+[036h 0054   1]                 Processor ID : 01
+[037h 0055   1]                Local Apic ID : 01
+[038h 0056   4]        Flags (decoded below) : 00000001
+                           Processor Enabled : 1
+                      Runtime Online Capable : 0
+
+[03Ch 0060   1]                Subtable Type : 01 [I/O APIC]
+[03Dh 0061   1]                       Length : 0C
+[03Eh 0062   1]                  I/O Apic ID : 00
+[03Fh 0063   1]                     Reserved : 00
+[040h 0064   4]                      Address : FEC00000
+[044h 0068   4]                    Interrupt : 00000000
+
+[048h 0072   1]                Subtable Type : 02 [Interrupt Source Override]
+[049h 0073   1]                       Length : 0A
+[04Ah 0074   1]                          Bus : 00
+[04Bh 0075   1]                       Source : 00
+[04Ch 0076   4]                    Interrupt : 00000002
+[050h 0080   2]        Flags (decoded below) : 0000
+                                    Polarity : 0
+                                Trigger Mode : 0
+
+[052h 0082   1]                Subtable Type : 02 [Interrupt Source Override]
+[053h 0083   1]                       Length : 0A
+[054h 0084   1]                          Bus : 00
+[055h 0085   1]                       Source : 05
+[056h 0086   4]                    Interrupt : 00000005
+[05Ah 0090   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[05Ch 0092   1]                Subtable Type : 02 [Interrupt Source Override]
+[05Dh 0093   1]                       Length : 0A
+[05Eh 0094   1]                          Bus : 00
+[05Fh 0095   1]                       Source : 09
+[060h 0096   4]                    Interrupt : 00000009
+[064h 0100   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[066h 0102   1]                Subtable Type : 02 [Interrupt Source Override]
+[067h 0103   1]                       Length : 0A
+[068h 0104   1]                          Bus : 00
+[069h 0105   1]                       Source : 0A
+[06Ah 0106   4]                    Interrupt : 0000000A
+[06Eh 0110   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[070h 0112   1]                Subtable Type : 02 [Interrupt Source Override]
+[071h 0113   1]                       Length : 0A
+[072h 0114   1]                          Bus : 00
+[073h 0115   1]                       Source : 0B
+[074h 0116   4]                    Interrupt : 0000000B
+[078h 0120   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[07Ah 0122   1]                Subtable Type : 04 [Local APIC NMI]
+[07Bh 0123   1]                       Length : 06
+[07Ch 0124   1]                 Processor ID : FF
+[07Dh 0125   2]        Flags (decoded below) : 0000
+                                    Polarity : 0
+                                Trigger Mode : 0
+[07Fh 0127   1]         Interrupt Input LINT : 01
+
+Raw Table Data: Length 128 (0x80)
+
+    0000: 41 50 49 43 80 00 00 00 01 DA 42 4F 43 48 53 20  // APIC......BOCHS 
+    0010: 42 58 50 43 41 50 49 43 01 00 00 00 42 58 50 43  // BXPCAPIC....BXPC
+    0020: 01 00 00 00 00 00 E0 FE 01 00 00 00 00 08 00 00  // ................
+    0030: 01 00 00 00 00 08 01 01 01 00 00 00 01 0C 00 00  // ................
+    0040: 00 00 C0 FE 00 00 00 00 02 0A 00 00 02 00 00 00  // ................
+    0050: 00 00 02 0A 00 05 05 00 00 00 0D 00 02 0A 00 09  // ................
+    0060: 09 00 00 00 0D 00 02 0A 00 0A 0A 00 00 00 0D 00  // ................
+    0070: 02 0A 00 0B 0B 00 00 00 0D 00 04 06 FF 00 00 01  // ................
diff --git a/tests/data/acpi/pc/APIC.bridge b/tests/data/acpi/pc/APIC.bridge
new file mode 100644
index 0000000000000000000000000000000000000000..84509e0ae4cabeb5ead3e42a4edfa50abddbc17d
GIT binary patch
literal 120
zcmZ<^@N}+VU|?W;>*Vk35v<@85#a0y6k`O6f!H9Lf#JbFFwFr}2jnsGfW!{`1CdNz
hKn!AlSgfo-nis_4<b<)ffC?aD+}vOm3)_F75db|X4FLcE

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/pc/APIC.bridge.dsl b/tests/data/acpi/pc/APIC.bridge.dsl
new file mode 100644
index 0000000000..2828370063
--- /dev/null
+++ b/tests/data/acpi/pc/APIC.bridge.dsl
@@ -0,0 +1,104 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/pc/APIC.bridge, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [APIC]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "APIC"    [Multiple APIC Description Table (MADT)]
+[004h 0004   4]                 Table Length : 00000078
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : ED
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCAPIC"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]           Local Apic Address : FEE00000
+[028h 0040   4]        Flags (decoded below) : 00000001
+                         PC-AT Compatibility : 1
+
+[02Ch 0044   1]                Subtable Type : 00 [Processor Local APIC]
+[02Dh 0045   1]                       Length : 08
+[02Eh 0046   1]                 Processor ID : 00
+[02Fh 0047   1]                Local Apic ID : 00
+[030h 0048   4]        Flags (decoded below) : 00000001
+                           Processor Enabled : 1
+                      Runtime Online Capable : 0
+
+[034h 0052   1]                Subtable Type : 01 [I/O APIC]
+[035h 0053   1]                       Length : 0C
+[036h 0054   1]                  I/O Apic ID : 00
+[037h 0055   1]                     Reserved : 00
+[038h 0056   4]                      Address : FEC00000
+[03Ch 0060   4]                    Interrupt : 00000000
+
+[040h 0064   1]                Subtable Type : 02 [Interrupt Source Override]
+[041h 0065   1]                       Length : 0A
+[042h 0066   1]                          Bus : 00
+[043h 0067   1]                       Source : 00
+[044h 0068   4]                    Interrupt : 00000002
+[048h 0072   2]        Flags (decoded below) : 0000
+                                    Polarity : 0
+                                Trigger Mode : 0
+
+[04Ah 0074   1]                Subtable Type : 02 [Interrupt Source Override]
+[04Bh 0075   1]                       Length : 0A
+[04Ch 0076   1]                          Bus : 00
+[04Dh 0077   1]                       Source : 05
+[04Eh 0078   4]                    Interrupt : 00000005
+[052h 0082   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[054h 0084   1]                Subtable Type : 02 [Interrupt Source Override]
+[055h 0085   1]                       Length : 0A
+[056h 0086   1]                          Bus : 00
+[057h 0087   1]                       Source : 09
+[058h 0088   4]                    Interrupt : 00000009
+[05Ch 0092   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[05Eh 0094   1]                Subtable Type : 02 [Interrupt Source Override]
+[05Fh 0095   1]                       Length : 0A
+[060h 0096   1]                          Bus : 00
+[061h 0097   1]                       Source : 0A
+[062h 0098   4]                    Interrupt : 0000000A
+[066h 0102   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[068h 0104   1]                Subtable Type : 02 [Interrupt Source Override]
+[069h 0105   1]                       Length : 0A
+[06Ah 0106   1]                          Bus : 00
+[06Bh 0107   1]                       Source : 0B
+[06Ch 0108   4]                    Interrupt : 0000000B
+[070h 0112   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[072h 0114   1]                Subtable Type : 04 [Local APIC NMI]
+[073h 0115   1]                       Length : 06
+[074h 0116   1]                 Processor ID : FF
+[075h 0117   2]        Flags (decoded below) : 0000
+                                    Polarity : 0
+                                Trigger Mode : 0
+[077h 0119   1]         Interrupt Input LINT : 01
+
+Raw Table Data: Length 120 (0x78)
+
+    0000: 41 50 49 43 78 00 00 00 01 ED 42 4F 43 48 53 20  // APICx.....BOCHS 
+    0010: 42 58 50 43 41 50 49 43 01 00 00 00 42 58 50 43  // BXPCAPIC....BXPC
+    0020: 01 00 00 00 00 00 E0 FE 01 00 00 00 00 08 00 00  // ................
+    0030: 01 00 00 00 01 0C 00 00 00 00 C0 FE 00 00 00 00  // ................
+    0040: 02 0A 00 00 02 00 00 00 00 00 02 0A 00 05 05 00  // ................
+    0050: 00 00 0D 00 02 0A 00 09 09 00 00 00 0D 00 02 0A  // ................
+    0060: 00 0A 0A 00 00 00 0D 00 02 0A 00 0B 0B 00 00 00  // ................
+    0070: 0D 00 04 06 FF 00 00 01                          // ........
diff --git a/tests/data/acpi/pc/APIC.cphp.dsl b/tests/data/acpi/pc/APIC.cphp.dsl
new file mode 100644
index 0000000000..b4b043229a
--- /dev/null
+++ b/tests/data/acpi/pc/APIC.cphp.dsl
@@ -0,0 +1,146 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/pc/APIC.cphp, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [APIC]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "APIC"    [Multiple APIC Description Table (MADT)]
+[004h 0004   4]                 Table Length : 000000A0
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 7B
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCAPIC"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]           Local Apic Address : FEE00000
+[028h 0040   4]        Flags (decoded below) : 00000001
+                         PC-AT Compatibility : 1
+
+[02Ch 0044   1]                Subtable Type : 00 [Processor Local APIC]
+[02Dh 0045   1]                       Length : 08
+[02Eh 0046   1]                 Processor ID : 00
+[02Fh 0047   1]                Local Apic ID : 00
+[030h 0048   4]        Flags (decoded below) : 00000001
+                           Processor Enabled : 1
+                      Runtime Online Capable : 0
+
+[034h 0052   1]                Subtable Type : 00 [Processor Local APIC]
+[035h 0053   1]                       Length : 08
+[036h 0054   1]                 Processor ID : 01
+[037h 0055   1]                Local Apic ID : 01
+[038h 0056   4]        Flags (decoded below) : 00000001
+                           Processor Enabled : 1
+                      Runtime Online Capable : 0
+
+[03Ch 0060   1]                Subtable Type : 00 [Processor Local APIC]
+[03Dh 0061   1]                       Length : 08
+[03Eh 0062   1]                 Processor ID : 02
+[03Fh 0063   1]                Local Apic ID : 02
+[040h 0064   4]        Flags (decoded below) : 00000000
+                           Processor Enabled : 0
+                      Runtime Online Capable : 0
+
+[044h 0068   1]                Subtable Type : 00 [Processor Local APIC]
+[045h 0069   1]                       Length : 08
+[046h 0070   1]                 Processor ID : 03
+[047h 0071   1]                Local Apic ID : 04
+[048h 0072   4]        Flags (decoded below) : 00000000
+                           Processor Enabled : 0
+                      Runtime Online Capable : 0
+
+[04Ch 0076   1]                Subtable Type : 00 [Processor Local APIC]
+[04Dh 0077   1]                       Length : 08
+[04Eh 0078   1]                 Processor ID : 04
+[04Fh 0079   1]                Local Apic ID : 05
+[050h 0080   4]        Flags (decoded below) : 00000000
+                           Processor Enabled : 0
+                      Runtime Online Capable : 0
+
+[054h 0084   1]                Subtable Type : 00 [Processor Local APIC]
+[055h 0085   1]                       Length : 08
+[056h 0086   1]                 Processor ID : 05
+[057h 0087   1]                Local Apic ID : 06
+[058h 0088   4]        Flags (decoded below) : 00000000
+                           Processor Enabled : 0
+                      Runtime Online Capable : 0
+
+[05Ch 0092   1]                Subtable Type : 01 [I/O APIC]
+[05Dh 0093   1]                       Length : 0C
+[05Eh 0094   1]                  I/O Apic ID : 00
+[05Fh 0095   1]                     Reserved : 00
+[060h 0096   4]                      Address : FEC00000
+[064h 0100   4]                    Interrupt : 00000000
+
+[068h 0104   1]                Subtable Type : 02 [Interrupt Source Override]
+[069h 0105   1]                       Length : 0A
+[06Ah 0106   1]                          Bus : 00
+[06Bh 0107   1]                       Source : 00
+[06Ch 0108   4]                    Interrupt : 00000002
+[070h 0112   2]        Flags (decoded below) : 0000
+                                    Polarity : 0
+                                Trigger Mode : 0
+
+[072h 0114   1]                Subtable Type : 02 [Interrupt Source Override]
+[073h 0115   1]                       Length : 0A
+[074h 0116   1]                          Bus : 00
+[075h 0117   1]                       Source : 05
+[076h 0118   4]                    Interrupt : 00000005
+[07Ah 0122   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[07Ch 0124   1]                Subtable Type : 02 [Interrupt Source Override]
+[07Dh 0125   1]                       Length : 0A
+[07Eh 0126   1]                          Bus : 00
+[07Fh 0127   1]                       Source : 09
+[080h 0128   4]                    Interrupt : 00000009
+[084h 0132   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[086h 0134   1]                Subtable Type : 02 [Interrupt Source Override]
+[087h 0135   1]                       Length : 0A
+[088h 0136   1]                          Bus : 00
+[089h 0137   1]                       Source : 0A
+[08Ah 0138   4]                    Interrupt : 0000000A
+[08Eh 0142   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[090h 0144   1]                Subtable Type : 02 [Interrupt Source Override]
+[091h 0145   1]                       Length : 0A
+[092h 0146   1]                          Bus : 00
+[093h 0147   1]                       Source : 0B
+[094h 0148   4]                    Interrupt : 0000000B
+[098h 0152   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[09Ah 0154   1]                Subtable Type : 04 [Local APIC NMI]
+[09Bh 0155   1]                       Length : 06
+[09Ch 0156   1]                 Processor ID : FF
+[09Dh 0157   2]        Flags (decoded below) : 0000
+                                    Polarity : 0
+                                Trigger Mode : 0
+[09Fh 0159   1]         Interrupt Input LINT : 01
+
+Raw Table Data: Length 160 (0xA0)
+
+    0000: 41 50 49 43 A0 00 00 00 01 7B 42 4F 43 48 53 20  // APIC.....{BOCHS 
+    0010: 42 58 50 43 41 50 49 43 01 00 00 00 42 58 50 43  // BXPCAPIC....BXPC
+    0020: 01 00 00 00 00 00 E0 FE 01 00 00 00 00 08 00 00  // ................
+    0030: 01 00 00 00 00 08 01 01 01 00 00 00 00 08 02 02  // ................
+    0040: 00 00 00 00 00 08 03 04 00 00 00 00 00 08 04 05  // ................
+    0050: 00 00 00 00 00 08 05 06 00 00 00 00 01 0C 00 00  // ................
+    0060: 00 00 C0 FE 00 00 00 00 02 0A 00 00 02 00 00 00  // ................
+    0070: 00 00 02 0A 00 05 05 00 00 00 0D 00 02 0A 00 09  // ................
+    0080: 09 00 00 00 0D 00 02 0A 00 0A 0A 00 00 00 0D 00  // ................
+    0090: 02 0A 00 0B 0B 00 00 00 0D 00 04 06 FF 00 00 01  // ................
diff --git a/tests/data/acpi/pc/APIC.dimmpxm.dsl b/tests/data/acpi/pc/APIC.dimmpxm.dsl
new file mode 100644
index 0000000000..adabdcc603
--- /dev/null
+++ b/tests/data/acpi/pc/APIC.dimmpxm.dsl
@@ -0,0 +1,129 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/pc/APIC.dimmpxm, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [APIC]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "APIC"    [Multiple APIC Description Table (MADT)]
+[004h 0004   4]                 Table Length : 00000090
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : AE
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCAPIC"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]           Local Apic Address : FEE00000
+[028h 0040   4]        Flags (decoded below) : 00000001
+                         PC-AT Compatibility : 1
+
+[02Ch 0044   1]                Subtable Type : 00 [Processor Local APIC]
+[02Dh 0045   1]                       Length : 08
+[02Eh 0046   1]                 Processor ID : 00
+[02Fh 0047   1]                Local Apic ID : 00
+[030h 0048   4]        Flags (decoded below) : 00000001
+                           Processor Enabled : 1
+                      Runtime Online Capable : 0
+
+[034h 0052   1]                Subtable Type : 00 [Processor Local APIC]
+[035h 0053   1]                       Length : 08
+[036h 0054   1]                 Processor ID : 01
+[037h 0055   1]                Local Apic ID : 01
+[038h 0056   4]        Flags (decoded below) : 00000001
+                           Processor Enabled : 1
+                      Runtime Online Capable : 0
+
+[03Ch 0060   1]                Subtable Type : 00 [Processor Local APIC]
+[03Dh 0061   1]                       Length : 08
+[03Eh 0062   1]                 Processor ID : 02
+[03Fh 0063   1]                Local Apic ID : 02
+[040h 0064   4]        Flags (decoded below) : 00000001
+                           Processor Enabled : 1
+                      Runtime Online Capable : 0
+
+[044h 0068   1]                Subtable Type : 00 [Processor Local APIC]
+[045h 0069   1]                       Length : 08
+[046h 0070   1]                 Processor ID : 03
+[047h 0071   1]                Local Apic ID : 03
+[048h 0072   4]        Flags (decoded below) : 00000001
+                           Processor Enabled : 1
+                      Runtime Online Capable : 0
+
+[04Ch 0076   1]                Subtable Type : 01 [I/O APIC]
+[04Dh 0077   1]                       Length : 0C
+[04Eh 0078   1]                  I/O Apic ID : 00
+[04Fh 0079   1]                     Reserved : 00
+[050h 0080   4]                      Address : FEC00000
+[054h 0084   4]                    Interrupt : 00000000
+
+[058h 0088   1]                Subtable Type : 02 [Interrupt Source Override]
+[059h 0089   1]                       Length : 0A
+[05Ah 0090   1]                          Bus : 00
+[05Bh 0091   1]                       Source : 00
+[05Ch 0092   4]                    Interrupt : 00000002
+[060h 0096   2]        Flags (decoded below) : 0000
+                                    Polarity : 0
+                                Trigger Mode : 0
+
+[062h 0098   1]                Subtable Type : 02 [Interrupt Source Override]
+[063h 0099   1]                       Length : 0A
+[064h 0100   1]                          Bus : 00
+[065h 0101   1]                       Source : 05
+[066h 0102   4]                    Interrupt : 00000005
+[06Ah 0106   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[06Ch 0108   1]                Subtable Type : 02 [Interrupt Source Override]
+[06Dh 0109   1]                       Length : 0A
+[06Eh 0110   1]                          Bus : 00
+[06Fh 0111   1]                       Source : 09
+[070h 0112   4]                    Interrupt : 00000009
+[074h 0116   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[076h 0118   1]                Subtable Type : 02 [Interrupt Source Override]
+[077h 0119   1]                       Length : 0A
+[078h 0120   1]                          Bus : 00
+[079h 0121   1]                       Source : 0A
+[07Ah 0122   4]                    Interrupt : 0000000A
+[07Eh 0126   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[080h 0128   1]                Subtable Type : 02 [Interrupt Source Override]
+[081h 0129   1]                       Length : 0A
+[082h 0130   1]                          Bus : 00
+[083h 0131   1]                       Source : 0B
+[084h 0132   4]                    Interrupt : 0000000B
+[088h 0136   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[08Ah 0138   1]                Subtable Type : 04 [Local APIC NMI]
+[08Bh 0139   1]                       Length : 06
+[08Ch 0140   1]                 Processor ID : FF
+[08Dh 0141   2]        Flags (decoded below) : 0000
+                                    Polarity : 0
+                                Trigger Mode : 0
+[08Fh 0143   1]         Interrupt Input LINT : 01
+
+Raw Table Data: Length 144 (0x90)
+
+    0000: 41 50 49 43 90 00 00 00 01 AE 42 4F 43 48 53 20  // APIC......BOCHS 
+    0010: 42 58 50 43 41 50 49 43 01 00 00 00 42 58 50 43  // BXPCAPIC....BXPC
+    0020: 01 00 00 00 00 00 E0 FE 01 00 00 00 00 08 00 00  // ................
+    0030: 01 00 00 00 00 08 01 01 01 00 00 00 00 08 02 02  // ................
+    0040: 01 00 00 00 00 08 03 03 01 00 00 00 01 0C 00 00  // ................
+    0050: 00 00 C0 FE 00 00 00 00 02 0A 00 00 02 00 00 00  // ................
+    0060: 00 00 02 0A 00 05 05 00 00 00 0D 00 02 0A 00 09  // ................
+    0070: 09 00 00 00 0D 00 02 0A 00 0A 0A 00 00 00 0D 00  // ................
+    0080: 02 0A 00 0B 0B 00 00 00 0D 00 04 06 FF 00 00 01  // ................
diff --git a/tests/data/acpi/pc/APIC.dsl b/tests/data/acpi/pc/APIC.dsl
new file mode 100644
index 0000000000..d9516fc1f2
--- /dev/null
+++ b/tests/data/acpi/pc/APIC.dsl
@@ -0,0 +1,104 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/pc/APIC.roothp, Mon Sep 28 17:24:38 2020
+ *
+ * ACPI Data Table [APIC]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "APIC"    [Multiple APIC Description Table (MADT)]
+[004h 0004   4]                 Table Length : 00000078
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : ED
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCAPIC"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]           Local Apic Address : FEE00000
+[028h 0040   4]        Flags (decoded below) : 00000001
+                         PC-AT Compatibility : 1
+
+[02Ch 0044   1]                Subtable Type : 00 [Processor Local APIC]
+[02Dh 0045   1]                       Length : 08
+[02Eh 0046   1]                 Processor ID : 00
+[02Fh 0047   1]                Local Apic ID : 00
+[030h 0048   4]        Flags (decoded below) : 00000001
+                           Processor Enabled : 1
+                      Runtime Online Capable : 0
+
+[034h 0052   1]                Subtable Type : 01 [I/O APIC]
+[035h 0053   1]                       Length : 0C
+[036h 0054   1]                  I/O Apic ID : 00
+[037h 0055   1]                     Reserved : 00
+[038h 0056   4]                      Address : FEC00000
+[03Ch 0060   4]                    Interrupt : 00000000
+
+[040h 0064   1]                Subtable Type : 02 [Interrupt Source Override]
+[041h 0065   1]                       Length : 0A
+[042h 0066   1]                          Bus : 00
+[043h 0067   1]                       Source : 00
+[044h 0068   4]                    Interrupt : 00000002
+[048h 0072   2]        Flags (decoded below) : 0000
+                                    Polarity : 0
+                                Trigger Mode : 0
+
+[04Ah 0074   1]                Subtable Type : 02 [Interrupt Source Override]
+[04Bh 0075   1]                       Length : 0A
+[04Ch 0076   1]                          Bus : 00
+[04Dh 0077   1]                       Source : 05
+[04Eh 0078   4]                    Interrupt : 00000005
+[052h 0082   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[054h 0084   1]                Subtable Type : 02 [Interrupt Source Override]
+[055h 0085   1]                       Length : 0A
+[056h 0086   1]                          Bus : 00
+[057h 0087   1]                       Source : 09
+[058h 0088   4]                    Interrupt : 00000009
+[05Ch 0092   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[05Eh 0094   1]                Subtable Type : 02 [Interrupt Source Override]
+[05Fh 0095   1]                       Length : 0A
+[060h 0096   1]                          Bus : 00
+[061h 0097   1]                       Source : 0A
+[062h 0098   4]                    Interrupt : 0000000A
+[066h 0102   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[068h 0104   1]                Subtable Type : 02 [Interrupt Source Override]
+[069h 0105   1]                       Length : 0A
+[06Ah 0106   1]                          Bus : 00
+[06Bh 0107   1]                       Source : 0B
+[06Ch 0108   4]                    Interrupt : 0000000B
+[070h 0112   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[072h 0114   1]                Subtable Type : 04 [Local APIC NMI]
+[073h 0115   1]                       Length : 06
+[074h 0116   1]                 Processor ID : FF
+[075h 0117   2]        Flags (decoded below) : 0000
+                                    Polarity : 0
+                                Trigger Mode : 0
+[077h 0119   1]         Interrupt Input LINT : 01
+
+Raw Table Data: Length 120 (0x78)
+
+    0000: 41 50 49 43 78 00 00 00 01 ED 42 4F 43 48 53 20  // APICx.....BOCHS 
+    0010: 42 58 50 43 41 50 49 43 01 00 00 00 42 58 50 43  // BXPCAPIC....BXPC
+    0020: 01 00 00 00 00 00 E0 FE 01 00 00 00 00 08 00 00  // ................
+    0030: 01 00 00 00 01 0C 00 00 00 00 C0 FE 00 00 00 00  // ................
+    0040: 02 0A 00 00 02 00 00 00 00 00 02 0A 00 05 05 00  // ................
+    0050: 00 00 0D 00 02 0A 00 09 09 00 00 00 0D 00 02 0A  // ................
+    0060: 00 0A 0A 00 00 00 0D 00 02 0A 00 0B 0B 00 00 00  // ................
+    0070: 0D 00 04 06 FF 00 00 01                          // ........
diff --git a/tests/data/acpi/pc/APIC.hpbridge b/tests/data/acpi/pc/APIC.hpbridge
new file mode 100644
index 0000000000000000000000000000000000000000..84509e0ae4cabeb5ead3e42a4edfa50abddbc17d
GIT binary patch
literal 120
zcmZ<^@N}+VU|?W;>*Vk35v<@85#a0y6k`O6f!H9Lf#JbFFwFr}2jnsGfW!{`1CdNz
hKn!AlSgfo-nis_4<b<)ffC?aD+}vOm3)_F75db|X4FLcE

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/pc/APIC.ipmikcs b/tests/data/acpi/pc/APIC.ipmikcs
new file mode 100644
index 0000000000000000000000000000000000000000..84509e0ae4cabeb5ead3e42a4edfa50abddbc17d
GIT binary patch
literal 120
zcmZ<^@N}+VU|?W;>*Vk35v<@85#a0y6k`O6f!H9Lf#JbFFwFr}2jnsGfW!{`1CdNz
hKn!AlSgfo-nis_4<b<)ffC?aD+}vOm3)_F75db|X4FLcE

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/pc/APIC.ipmikcs.dsl b/tests/data/acpi/pc/APIC.ipmikcs.dsl
new file mode 100644
index 0000000000..28198bed68
--- /dev/null
+++ b/tests/data/acpi/pc/APIC.ipmikcs.dsl
@@ -0,0 +1,104 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/pc/APIC.ipmikcs, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [APIC]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "APIC"    [Multiple APIC Description Table (MADT)]
+[004h 0004   4]                 Table Length : 00000078
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : ED
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCAPIC"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]           Local Apic Address : FEE00000
+[028h 0040   4]        Flags (decoded below) : 00000001
+                         PC-AT Compatibility : 1
+
+[02Ch 0044   1]                Subtable Type : 00 [Processor Local APIC]
+[02Dh 0045   1]                       Length : 08
+[02Eh 0046   1]                 Processor ID : 00
+[02Fh 0047   1]                Local Apic ID : 00
+[030h 0048   4]        Flags (decoded below) : 00000001
+                           Processor Enabled : 1
+                      Runtime Online Capable : 0
+
+[034h 0052   1]                Subtable Type : 01 [I/O APIC]
+[035h 0053   1]                       Length : 0C
+[036h 0054   1]                  I/O Apic ID : 00
+[037h 0055   1]                     Reserved : 00
+[038h 0056   4]                      Address : FEC00000
+[03Ch 0060   4]                    Interrupt : 00000000
+
+[040h 0064   1]                Subtable Type : 02 [Interrupt Source Override]
+[041h 0065   1]                       Length : 0A
+[042h 0066   1]                          Bus : 00
+[043h 0067   1]                       Source : 00
+[044h 0068   4]                    Interrupt : 00000002
+[048h 0072   2]        Flags (decoded below) : 0000
+                                    Polarity : 0
+                                Trigger Mode : 0
+
+[04Ah 0074   1]                Subtable Type : 02 [Interrupt Source Override]
+[04Bh 0075   1]                       Length : 0A
+[04Ch 0076   1]                          Bus : 00
+[04Dh 0077   1]                       Source : 05
+[04Eh 0078   4]                    Interrupt : 00000005
+[052h 0082   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[054h 0084   1]                Subtable Type : 02 [Interrupt Source Override]
+[055h 0085   1]                       Length : 0A
+[056h 0086   1]                          Bus : 00
+[057h 0087   1]                       Source : 09
+[058h 0088   4]                    Interrupt : 00000009
+[05Ch 0092   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[05Eh 0094   1]                Subtable Type : 02 [Interrupt Source Override]
+[05Fh 0095   1]                       Length : 0A
+[060h 0096   1]                          Bus : 00
+[061h 0097   1]                       Source : 0A
+[062h 0098   4]                    Interrupt : 0000000A
+[066h 0102   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[068h 0104   1]                Subtable Type : 02 [Interrupt Source Override]
+[069h 0105   1]                       Length : 0A
+[06Ah 0106   1]                          Bus : 00
+[06Bh 0107   1]                       Source : 0B
+[06Ch 0108   4]                    Interrupt : 0000000B
+[070h 0112   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[072h 0114   1]                Subtable Type : 04 [Local APIC NMI]
+[073h 0115   1]                       Length : 06
+[074h 0116   1]                 Processor ID : FF
+[075h 0117   2]        Flags (decoded below) : 0000
+                                    Polarity : 0
+                                Trigger Mode : 0
+[077h 0119   1]         Interrupt Input LINT : 01
+
+Raw Table Data: Length 120 (0x78)
+
+    0000: 41 50 49 43 78 00 00 00 01 ED 42 4F 43 48 53 20  // APICx.....BOCHS 
+    0010: 42 58 50 43 41 50 49 43 01 00 00 00 42 58 50 43  // BXPCAPIC....BXPC
+    0020: 01 00 00 00 00 00 E0 FE 01 00 00 00 00 08 00 00  // ................
+    0030: 01 00 00 00 01 0C 00 00 00 00 C0 FE 00 00 00 00  // ................
+    0040: 02 0A 00 00 02 00 00 00 00 00 02 0A 00 05 05 00  // ................
+    0050: 00 00 0D 00 02 0A 00 09 09 00 00 00 0D 00 02 0A  // ................
+    0060: 00 0A 0A 00 00 00 0D 00 02 0A 00 0B 0B 00 00 00  // ................
+    0070: 0D 00 04 06 FF 00 00 01                          // ........
diff --git a/tests/data/acpi/pc/APIC.memhp b/tests/data/acpi/pc/APIC.memhp
new file mode 100644
index 0000000000000000000000000000000000000000..84509e0ae4cabeb5ead3e42a4edfa50abddbc17d
GIT binary patch
literal 120
zcmZ<^@N}+VU|?W;>*Vk35v<@85#a0y6k`O6f!H9Lf#JbFFwFr}2jnsGfW!{`1CdNz
hKn!AlSgfo-nis_4<b<)ffC?aD+}vOm3)_F75db|X4FLcE

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/pc/APIC.memhp.dsl b/tests/data/acpi/pc/APIC.memhp.dsl
new file mode 100644
index 0000000000..b8449c0bde
--- /dev/null
+++ b/tests/data/acpi/pc/APIC.memhp.dsl
@@ -0,0 +1,104 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/pc/APIC.memhp, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [APIC]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "APIC"    [Multiple APIC Description Table (MADT)]
+[004h 0004   4]                 Table Length : 00000078
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : ED
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCAPIC"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]           Local Apic Address : FEE00000
+[028h 0040   4]        Flags (decoded below) : 00000001
+                         PC-AT Compatibility : 1
+
+[02Ch 0044   1]                Subtable Type : 00 [Processor Local APIC]
+[02Dh 0045   1]                       Length : 08
+[02Eh 0046   1]                 Processor ID : 00
+[02Fh 0047   1]                Local Apic ID : 00
+[030h 0048   4]        Flags (decoded below) : 00000001
+                           Processor Enabled : 1
+                      Runtime Online Capable : 0
+
+[034h 0052   1]                Subtable Type : 01 [I/O APIC]
+[035h 0053   1]                       Length : 0C
+[036h 0054   1]                  I/O Apic ID : 00
+[037h 0055   1]                     Reserved : 00
+[038h 0056   4]                      Address : FEC00000
+[03Ch 0060   4]                    Interrupt : 00000000
+
+[040h 0064   1]                Subtable Type : 02 [Interrupt Source Override]
+[041h 0065   1]                       Length : 0A
+[042h 0066   1]                          Bus : 00
+[043h 0067   1]                       Source : 00
+[044h 0068   4]                    Interrupt : 00000002
+[048h 0072   2]        Flags (decoded below) : 0000
+                                    Polarity : 0
+                                Trigger Mode : 0
+
+[04Ah 0074   1]                Subtable Type : 02 [Interrupt Source Override]
+[04Bh 0075   1]                       Length : 0A
+[04Ch 0076   1]                          Bus : 00
+[04Dh 0077   1]                       Source : 05
+[04Eh 0078   4]                    Interrupt : 00000005
+[052h 0082   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[054h 0084   1]                Subtable Type : 02 [Interrupt Source Override]
+[055h 0085   1]                       Length : 0A
+[056h 0086   1]                          Bus : 00
+[057h 0087   1]                       Source : 09
+[058h 0088   4]                    Interrupt : 00000009
+[05Ch 0092   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[05Eh 0094   1]                Subtable Type : 02 [Interrupt Source Override]
+[05Fh 0095   1]                       Length : 0A
+[060h 0096   1]                          Bus : 00
+[061h 0097   1]                       Source : 0A
+[062h 0098   4]                    Interrupt : 0000000A
+[066h 0102   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[068h 0104   1]                Subtable Type : 02 [Interrupt Source Override]
+[069h 0105   1]                       Length : 0A
+[06Ah 0106   1]                          Bus : 00
+[06Bh 0107   1]                       Source : 0B
+[06Ch 0108   4]                    Interrupt : 0000000B
+[070h 0112   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[072h 0114   1]                Subtable Type : 04 [Local APIC NMI]
+[073h 0115   1]                       Length : 06
+[074h 0116   1]                 Processor ID : FF
+[075h 0117   2]        Flags (decoded below) : 0000
+                                    Polarity : 0
+                                Trigger Mode : 0
+[077h 0119   1]         Interrupt Input LINT : 01
+
+Raw Table Data: Length 120 (0x78)
+
+    0000: 41 50 49 43 78 00 00 00 01 ED 42 4F 43 48 53 20  // APICx.....BOCHS 
+    0010: 42 58 50 43 41 50 49 43 01 00 00 00 42 58 50 43  // BXPCAPIC....BXPC
+    0020: 01 00 00 00 00 00 E0 FE 01 00 00 00 00 08 00 00  // ................
+    0030: 01 00 00 00 01 0C 00 00 00 00 C0 FE 00 00 00 00  // ................
+    0040: 02 0A 00 00 02 00 00 00 00 00 02 0A 00 05 05 00  // ................
+    0050: 00 00 0D 00 02 0A 00 09 09 00 00 00 0D 00 02 0A  // ................
+    0060: 00 0A 0A 00 00 00 0D 00 02 0A 00 0B 0B 00 00 00  // ................
+    0070: 0D 00 04 06 FF 00 00 01                          // ........
diff --git a/tests/data/acpi/pc/APIC.numamem b/tests/data/acpi/pc/APIC.numamem
new file mode 100644
index 0000000000000000000000000000000000000000..84509e0ae4cabeb5ead3e42a4edfa50abddbc17d
GIT binary patch
literal 120
zcmZ<^@N}+VU|?W;>*Vk35v<@85#a0y6k`O6f!H9Lf#JbFFwFr}2jnsGfW!{`1CdNz
hKn!AlSgfo-nis_4<b<)ffC?aD+}vOm3)_F75db|X4FLcE

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/pc/APIC.numamem.dsl b/tests/data/acpi/pc/APIC.numamem.dsl
new file mode 100644
index 0000000000..d75e4283d1
--- /dev/null
+++ b/tests/data/acpi/pc/APIC.numamem.dsl
@@ -0,0 +1,104 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/pc/APIC.numamem, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [APIC]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "APIC"    [Multiple APIC Description Table (MADT)]
+[004h 0004   4]                 Table Length : 00000078
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : ED
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCAPIC"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]           Local Apic Address : FEE00000
+[028h 0040   4]        Flags (decoded below) : 00000001
+                         PC-AT Compatibility : 1
+
+[02Ch 0044   1]                Subtable Type : 00 [Processor Local APIC]
+[02Dh 0045   1]                       Length : 08
+[02Eh 0046   1]                 Processor ID : 00
+[02Fh 0047   1]                Local Apic ID : 00
+[030h 0048   4]        Flags (decoded below) : 00000001
+                           Processor Enabled : 1
+                      Runtime Online Capable : 0
+
+[034h 0052   1]                Subtable Type : 01 [I/O APIC]
+[035h 0053   1]                       Length : 0C
+[036h 0054   1]                  I/O Apic ID : 00
+[037h 0055   1]                     Reserved : 00
+[038h 0056   4]                      Address : FEC00000
+[03Ch 0060   4]                    Interrupt : 00000000
+
+[040h 0064   1]                Subtable Type : 02 [Interrupt Source Override]
+[041h 0065   1]                       Length : 0A
+[042h 0066   1]                          Bus : 00
+[043h 0067   1]                       Source : 00
+[044h 0068   4]                    Interrupt : 00000002
+[048h 0072   2]        Flags (decoded below) : 0000
+                                    Polarity : 0
+                                Trigger Mode : 0
+
+[04Ah 0074   1]                Subtable Type : 02 [Interrupt Source Override]
+[04Bh 0075   1]                       Length : 0A
+[04Ch 0076   1]                          Bus : 00
+[04Dh 0077   1]                       Source : 05
+[04Eh 0078   4]                    Interrupt : 00000005
+[052h 0082   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[054h 0084   1]                Subtable Type : 02 [Interrupt Source Override]
+[055h 0085   1]                       Length : 0A
+[056h 0086   1]                          Bus : 00
+[057h 0087   1]                       Source : 09
+[058h 0088   4]                    Interrupt : 00000009
+[05Ch 0092   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[05Eh 0094   1]                Subtable Type : 02 [Interrupt Source Override]
+[05Fh 0095   1]                       Length : 0A
+[060h 0096   1]                          Bus : 00
+[061h 0097   1]                       Source : 0A
+[062h 0098   4]                    Interrupt : 0000000A
+[066h 0102   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[068h 0104   1]                Subtable Type : 02 [Interrupt Source Override]
+[069h 0105   1]                       Length : 0A
+[06Ah 0106   1]                          Bus : 00
+[06Bh 0107   1]                       Source : 0B
+[06Ch 0108   4]                    Interrupt : 0000000B
+[070h 0112   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[072h 0114   1]                Subtable Type : 04 [Local APIC NMI]
+[073h 0115   1]                       Length : 06
+[074h 0116   1]                 Processor ID : FF
+[075h 0117   2]        Flags (decoded below) : 0000
+                                    Polarity : 0
+                                Trigger Mode : 0
+[077h 0119   1]         Interrupt Input LINT : 01
+
+Raw Table Data: Length 120 (0x78)
+
+    0000: 41 50 49 43 78 00 00 00 01 ED 42 4F 43 48 53 20  // APICx.....BOCHS 
+    0010: 42 58 50 43 41 50 49 43 01 00 00 00 42 58 50 43  // BXPCAPIC....BXPC
+    0020: 01 00 00 00 00 00 E0 FE 01 00 00 00 00 08 00 00  // ................
+    0030: 01 00 00 00 01 0C 00 00 00 00 C0 FE 00 00 00 00  // ................
+    0040: 02 0A 00 00 02 00 00 00 00 00 02 0A 00 05 05 00  // ................
+    0050: 00 00 0D 00 02 0A 00 09 09 00 00 00 0D 00 02 0A  // ................
+    0060: 00 0A 0A 00 00 00 0D 00 02 0A 00 0B 0B 00 00 00  // ................
+    0070: 0D 00 04 06 FF 00 00 01                          // ........
diff --git a/tests/data/acpi/pc/APIC.roothp b/tests/data/acpi/pc/APIC.roothp
new file mode 100644
index 0000000000000000000000000000000000000000..84509e0ae4cabeb5ead3e42a4edfa50abddbc17d
GIT binary patch
literal 120
zcmZ<^@N}+VU|?W;>*Vk35v<@85#a0y6k`O6f!H9Lf#JbFFwFr}2jnsGfW!{`1CdNz
hKn!AlSgfo-nis_4<b<)ffC?aD+}vOm3)_F75db|X4FLcE

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/pc/DSDT.acpihmat.dsl b/tests/data/acpi/pc/DSDT.acpihmat.dsl
new file mode 100644
index 0000000000..b2a4b1bd7f
--- /dev/null
+++ b/tests/data/acpi/pc/DSDT.acpihmat.dsl
@@ -0,0 +1,1619 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembling to symbolic ASL+ operators
+ *
+ * Disassembly of tests/data/acpi/pc/DSDT.acpihmat, Tue Aug  4 11:14:15 2020
+ *
+ * Original Table Header:
+ *     Signature        "DSDT"
+ *     Length           0x00001872 (6258)
+ *     Revision         0x01 **** 32-bit table (V1), no 64-bit math support
+ *     Checksum         0x8E
+ *     OEM ID           "BOCHS "
+ *     OEM Table ID     "BXPCDSDT"
+ *     OEM Revision     0x00000001 (1)
+ *     Compiler ID      "BXPC"
+ *     Compiler Version 0x00000001 (1)
+ */
+DefinitionBlock ("", "DSDT", 1, "BOCHS ", "BXPCDSDT", 0x00000001)
+{
+    Scope (\)
+    {
+        OperationRegion (DBG, SystemIO, 0x0402, One)
+        Field (DBG, ByteAcc, NoLock, Preserve)
+        {
+            DBGB,   8
+        }
+
+        Method (DBUG, 1, NotSerialized)
+        {
+            ToHexString (Arg0, Local0)
+            ToBuffer (Local0, Local0)
+            Local1 = (SizeOf (Local0) - One)
+            Local2 = Zero
+            While ((Local2 < Local1))
+            {
+                DBGB = DerefOf (Local0 [Local2])
+                Local2++
+            }
+
+            DBGB = 0x0A
+        }
+    }
+
+    Scope (_SB)
+    {
+        Device (PCI0)
+        {
+            Name (_HID, EisaId ("PNP0A03") /* PCI Bus */)  // _HID: Hardware ID
+            Name (_ADR, Zero)  // _ADR: Address
+            Name (_UID, Zero)  // _UID: Unique ID
+        }
+    }
+
+    Scope (_SB)
+    {
+        Device (HPET)
+        {
+            Name (_HID, EisaId ("PNP0103") /* HPET System Timer */)  // _HID: Hardware ID
+            Name (_UID, Zero)  // _UID: Unique ID
+            OperationRegion (HPTM, SystemMemory, 0xFED00000, 0x0400)
+            Field (HPTM, DWordAcc, Lock, Preserve)
+            {
+                VEND,   32, 
+                PRD,    32
+            }
+
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Local0 = VEND /* \_SB_.HPET.VEND */
+                Local1 = PRD /* \_SB_.HPET.PRD_ */
+                Local0 >>= 0x10
+                If (((Local0 == Zero) || (Local0 == 0xFFFF)))
+                {
+                    Return (Zero)
+                }
+
+                If (((Local1 == Zero) || (Local1 > 0x05F5E100)))
+                {
+                    Return (Zero)
+                }
+
+                Return (0x0F)
+            }
+
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadOnly,
+                    0xFED00000,         // Address Base
+                    0x00000400,         // Address Length
+                    )
+            })
+        }
+    }
+
+    Scope (_SB.PCI0)
+    {
+        Device (ISA)
+        {
+            Name (_ADR, 0x00010000)  // _ADR: Address
+            OperationRegion (P40C, PCI_Config, 0x60, 0x04)
+        }
+    }
+
+    Scope (_SB.PCI0.ISA)
+    {
+        Device (KBD)
+        {
+            Name (_HID, EisaId ("PNP0303") /* IBM Enhanced Keyboard (101/102-key, PS/2 Mouse) */)  // _HID: Hardware ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0060,             // Range Minimum
+                    0x0060,             // Range Maximum
+                    0x01,               // Alignment
+                    0x01,               // Length
+                    )
+                IO (Decode16,
+                    0x0064,             // Range Minimum
+                    0x0064,             // Range Maximum
+                    0x01,               // Alignment
+                    0x01,               // Length
+                    )
+                IRQNoFlags ()
+                    {1}
+            })
+        }
+
+        Device (MOU)
+        {
+            Name (_HID, EisaId ("PNP0F13") /* PS/2 Mouse */)  // _HID: Hardware ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IRQNoFlags ()
+                    {12}
+            })
+        }
+
+        Device (FDC0)
+        {
+            Name (_HID, EisaId ("PNP0700"))  // _HID: Hardware ID
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x03F2,             // Range Minimum
+                    0x03F2,             // Range Maximum
+                    0x00,               // Alignment
+                    0x04,               // Length
+                    )
+                IO (Decode16,
+                    0x03F7,             // Range Minimum
+                    0x03F7,             // Range Maximum
+                    0x00,               // Alignment
+                    0x01,               // Length
+                    )
+                IRQNoFlags ()
+                    {6}
+                DMA (Compatibility, NotBusMaster, Transfer8, )
+                    {2}
+            })
+            Device (FLPA)
+            {
+                Name (_ADR, Zero)  // _ADR: Address
+                Name (_FDI, Package (0x10)  // _FDI: Floppy Drive Information
+                {
+                    Zero, 
+                    0x05, 
+                    0x4F, 
+                    0x30, 
+                    One, 
+                    0xAF, 
+                    0x02, 
+                    0x25, 
+                    0x02, 
+                    0x12, 
+                    0x1B, 
+                    0xFF, 
+                    0x6C, 
+                    0xF6, 
+                    0x0F, 
+                    0x08
+                })
+            }
+
+            Name (_FDE, Buffer (0x14)  // _FDE: Floppy Disk Enumerate
+            {
+                /* 0000 */  0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
+                /* 0008 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
+                /* 0010 */  0x02, 0x00, 0x00, 0x00                           // ....
+            })
+        }
+
+        Device (LPT1)
+        {
+            Name (_HID, EisaId ("PNP0400") /* Standard LPT Parallel Port */)  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0378,             // Range Minimum
+                    0x0378,             // Range Maximum
+                    0x08,               // Alignment
+                    0x08,               // Length
+                    )
+                IRQNoFlags ()
+                    {7}
+            })
+        }
+
+        Device (COM1)
+        {
+            Name (_HID, EisaId ("PNP0501") /* 16550A-compatible COM Serial Port */)  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x03F8,             // Range Minimum
+                    0x03F8,             // Range Maximum
+                    0x00,               // Alignment
+                    0x08,               // Length
+                    )
+                IRQNoFlags ()
+                    {4}
+            })
+        }
+
+        Device (RTC)
+        {
+            Name (_HID, EisaId ("PNP0B00") /* AT Real-Time Clock */)  // _HID: Hardware ID
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0070,             // Range Minimum
+                    0x0070,             // Range Maximum
+                    0x01,               // Alignment
+                    0x08,               // Length
+                    )
+                IRQNoFlags ()
+                    {8}
+            })
+        }
+    }
+
+    Scope (_SB.PCI0)
+    {
+        OperationRegion (PCST, SystemIO, 0xAE00, 0x08)
+        Field (PCST, DWordAcc, NoLock, WriteAsZeros)
+        {
+            PCIU,   32, 
+            PCID,   32
+        }
+
+        OperationRegion (SEJ, SystemIO, 0xAE08, 0x04)
+        Field (SEJ, DWordAcc, NoLock, WriteAsZeros)
+        {
+            B0EJ,   32
+        }
+
+        OperationRegion (BNMR, SystemIO, 0xAE10, 0x04)
+        Field (BNMR, DWordAcc, NoLock, WriteAsZeros)
+        {
+            BNUM,   32
+        }
+
+        Mutex (BLCK, 0x00)
+        Method (PCEJ, 2, NotSerialized)
+        {
+            Acquire (BLCK, 0xFFFF)
+            BNUM = Arg0
+            B0EJ = (One << Arg1)
+            Release (BLCK)
+            Return (Zero)
+        }
+    }
+
+    Scope (_SB)
+    {
+        Scope (PCI0)
+        {
+            Method (_PRT, 0, NotSerialized)  // _PRT: PCI Routing Table
+            {
+                Local0 = Package (0x80){}
+                Local1 = Zero
+                While ((Local1 < 0x80))
+                {
+                    Local2 = (Local1 >> 0x02)
+                    Local3 = ((Local1 + Local2) & 0x03)
+                    If ((Local3 == Zero))
+                    {
+                        Local4 = Package (0x04)
+                            {
+                                Zero, 
+                                Zero, 
+                                LNKD, 
+                                Zero
+                            }
+                    }
+
+                    If ((Local3 == One))
+                    {
+                        If ((Local1 == 0x04))
+                        {
+                            Local4 = Package (0x04)
+                                {
+                                    Zero, 
+                                    Zero, 
+                                    LNKS, 
+                                    Zero
+                                }
+                        }
+                        Else
+                        {
+                            Local4 = Package (0x04)
+                                {
+                                    Zero, 
+                                    Zero, 
+                                    LNKA, 
+                                    Zero
+                                }
+                        }
+                    }
+
+                    If ((Local3 == 0x02))
+                    {
+                        Local4 = Package (0x04)
+                            {
+                                Zero, 
+                                Zero, 
+                                LNKB, 
+                                Zero
+                            }
+                    }
+
+                    If ((Local3 == 0x03))
+                    {
+                        Local4 = Package (0x04)
+                            {
+                                Zero, 
+                                Zero, 
+                                LNKC, 
+                                Zero
+                            }
+                    }
+
+                    Local4 [Zero] = ((Local2 << 0x10) | 0xFFFF)
+                    Local4 [One] = (Local1 & 0x03)
+                    Local0 [Local1] = Local4
+                    Local1++
+                }
+
+                Return (Local0)
+            }
+        }
+
+        Field (PCI0.ISA.P40C, ByteAcc, NoLock, Preserve)
+        {
+            PRQ0,   8, 
+            PRQ1,   8, 
+            PRQ2,   8, 
+            PRQ3,   8
+        }
+
+        Method (IQST, 1, NotSerialized)
+        {
+            If ((0x80 & Arg0))
+            {
+                Return (0x09)
+            }
+
+            Return (0x0B)
+        }
+
+        Method (IQCR, 1, Serialized)
+        {
+            Name (PRR0, ResourceTemplate ()
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, _Y00)
+                {
+                    0x00000000,
+                }
+            })
+            CreateDWordField (PRR0, \_SB.IQCR._Y00._INT, PRRI)  // _INT: Interrupts
+            If ((Arg0 < 0x80))
+            {
+                PRRI = Arg0
+            }
+
+            Return (PRR0) /* \_SB_.IQCR.PRR0 */
+        }
+
+        Device (LNKA)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, Zero)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQ0))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQ0 |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQ0))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQ0 = PRRI /* \_SB_.LNKA._SRS.PRRI */
+            }
+        }
+
+        Device (LNKB)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQ1))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQ1 |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQ1))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQ1 = PRRI /* \_SB_.LNKB._SRS.PRRI */
+            }
+        }
+
+        Device (LNKC)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x02)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQ2))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQ2 |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQ2))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQ2 = PRRI /* \_SB_.LNKC._SRS.PRRI */
+            }
+        }
+
+        Device (LNKD)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x03)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQ3))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQ3 |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQ3))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQ3 = PRRI /* \_SB_.LNKD._SRS.PRRI */
+            }
+        }
+
+        Device (LNKS)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x04)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000009,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (0x0B)
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (_PRS) /* \_SB_.LNKS._PRS */
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+    }
+
+    Scope (_SB)
+    {
+        Device (\_SB.PCI0.PRES)
+        {
+            Name (_HID, EisaId ("PNP0A06") /* Generic Container Device */)  // _HID: Hardware ID
+            Name (_UID, "CPU Hotplug resources")  // _UID: Unique ID
+            Mutex (CPLK, 0x00)
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0xAF00,             // Range Minimum
+                    0xAF00,             // Range Maximum
+                    0x01,               // Alignment
+                    0x0C,               // Length
+                    )
+            })
+            OperationRegion (PRST, SystemIO, 0xAF00, 0x0C)
+            Field (PRST, ByteAcc, NoLock, WriteAsZeros)
+            {
+                Offset (0x04), 
+                CPEN,   1, 
+                CINS,   1, 
+                CRMV,   1, 
+                CEJ0,   1, 
+                Offset (0x05), 
+                CCMD,   8
+            }
+
+            Field (PRST, DWordAcc, NoLock, Preserve)
+            {
+                CSEL,   32, 
+                Offset (0x08), 
+                CDAT,   32
+            }
+
+            Method (_INI, 0, Serialized)  // _INI: Initialize
+            {
+                CSEL = Zero
+            }
+        }
+
+        Device (\_SB.CPUS)
+        {
+            Name (_HID, "ACPI0010" /* Processor Container Device */)  // _HID: Hardware ID
+            Name (_CID, EisaId ("PNP0A05") /* Generic Container Device */)  // _CID: Compatible ID
+            Method (CTFY, 2, NotSerialized)
+            {
+                If ((Arg0 == Zero))
+                {
+                    Notify (C000, Arg1)
+                }
+
+                If ((Arg0 == One))
+                {
+                    Notify (C001, Arg1)
+                }
+            }
+
+            Method (CSTA, 1, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                \_SB.PCI0.PRES.CSEL = Arg0
+                Local0 = Zero
+                If ((\_SB.PCI0.PRES.CPEN == One))
+                {
+                    Local0 = 0x0F
+                }
+
+                Release (\_SB.PCI0.PRES.CPLK)
+                Return (Local0)
+            }
+
+            Method (CEJ0, 1, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                \_SB.PCI0.PRES.CSEL = Arg0
+                \_SB.PCI0.PRES.CEJ0 = One
+                Release (\_SB.PCI0.PRES.CPLK)
+            }
+
+            Method (CSCN, 0, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                Local0 = One
+                While ((Local0 == One))
+                {
+                    Local0 = Zero
+                    \_SB.PCI0.PRES.CCMD = Zero
+                    If ((\_SB.PCI0.PRES.CINS == One))
+                    {
+                        CTFY (\_SB.PCI0.PRES.CDAT, One)
+                        \_SB.PCI0.PRES.CINS = One
+                        Local0 = One
+                    }
+                    ElseIf ((\_SB.PCI0.PRES.CRMV == One))
+                    {
+                        CTFY (\_SB.PCI0.PRES.CDAT, 0x03)
+                        \_SB.PCI0.PRES.CRMV = One
+                        Local0 = One
+                    }
+                }
+
+                Release (\_SB.PCI0.PRES.CPLK)
+            }
+
+            Method (COST, 4, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                \_SB.PCI0.PRES.CSEL = Arg0
+                \_SB.PCI0.PRES.CCMD = One
+                \_SB.PCI0.PRES.CDAT = Arg1
+                \_SB.PCI0.PRES.CCMD = 0x02
+                \_SB.PCI0.PRES.CDAT = Arg2
+                Release (\_SB.PCI0.PRES.CPLK)
+            }
+
+            Processor (C000, 0x00, 0x00000000, 0x00)
+            {
+                Method (_STA, 0, Serialized)  // _STA: Status
+                {
+                    Return (CSTA (Zero))
+                }
+
+                Name (_MAT, Buffer (0x08)  // _MAT: Multiple APIC Table Entry
+                {
+                     0x00, 0x08, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00   // ........
+                })
+                Method (_OST, 3, Serialized)  // _OST: OSPM Status Indication
+                {
+                    COST (Zero, Arg0, Arg1, Arg2)
+                }
+
+                Name (_PXM, Zero)  // _PXM: Device Proximity
+            }
+
+            Processor (C001, 0x01, 0x00000000, 0x00)
+            {
+                Method (_STA, 0, Serialized)  // _STA: Status
+                {
+                    Return (CSTA (One))
+                }
+
+                Name (_MAT, Buffer (0x08)  // _MAT: Multiple APIC Table Entry
+                {
+                     0x00, 0x08, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00   // ........
+                })
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    CEJ0 (One)
+                }
+
+                Method (_OST, 3, Serialized)  // _OST: OSPM Status Indication
+                {
+                    COST (One, Arg0, Arg1, Arg2)
+                }
+
+                Name (_PXM, Zero)  // _PXM: Device Proximity
+            }
+        }
+    }
+
+    Method (\_GPE._E02, 0, NotSerialized)  // _Exx: Edge-Triggered GPE, xx=0x00-0xFF
+    {
+        \_SB.CPUS.CSCN ()
+    }
+
+    Device (\_SB.PCI0.MHPD)
+    {
+        Name (_HID, "PNP0A06" /* Generic Container Device */)  // _HID: Hardware ID
+        Name (_UID, "Memory hotplug resources")  // _UID: Unique ID
+        Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+        {
+            IO (Decode16,
+                0x0A00,             // Range Minimum
+                0x0A00,             // Range Maximum
+                0x00,               // Alignment
+                0x18,               // Length
+                )
+        })
+        OperationRegion (HPMR, SystemIO, 0x0A00, 0x18)
+    }
+
+    Device (\_SB.MHPC)
+    {
+        Name (_HID, "PNP0A06" /* Generic Container Device */)  // _HID: Hardware ID
+        Name (_UID, "DIMM devices")  // _UID: Unique ID
+        Name (MDNR, 0x02)
+        Field (\_SB.PCI0.MHPD.HPMR, DWordAcc, NoLock, Preserve)
+        {
+            MRBL,   32, 
+            MRBH,   32, 
+            MRLL,   32, 
+            MRLH,   32, 
+            MPX,    32
+        }
+
+        Field (\_SB.PCI0.MHPD.HPMR, ByteAcc, NoLock, WriteAsZeros)
+        {
+            Offset (0x14), 
+            MES,    1, 
+            MINS,   1, 
+            MRMV,   1, 
+            MEJ,    1
+        }
+
+        Field (\_SB.PCI0.MHPD.HPMR, DWordAcc, NoLock, Preserve)
+        {
+            MSEL,   32, 
+            MOEV,   32, 
+            MOSC,   32
+        }
+
+        Method (_STA, 0, NotSerialized)  // _STA: Status
+        {
+            If ((MDNR == Zero))
+            {
+                Return (Zero)
+            }
+
+            Return (0x0B)
+        }
+
+        Mutex (MLCK, 0x00)
+        Method (MSCN, 0, NotSerialized)
+        {
+            If ((MDNR == Zero))
+            {
+                Return (Zero)
+            }
+
+            Local0 = Zero
+            Acquire (MLCK, 0xFFFF)
+            While ((Local0 < MDNR))
+            {
+                MSEL = Local0
+                If ((MINS == One))
+                {
+                    MTFY (Local0, One)
+                    MINS = One
+                }
+                ElseIf ((MRMV == One))
+                {
+                    MTFY (Local0, 0x03)
+                    MRMV = One
+                }
+
+                Local0 += One
+            }
+
+            Release (MLCK)
+            Return (One)
+        }
+
+        Method (MRST, 1, NotSerialized)
+        {
+            Local0 = Zero
+            Acquire (MLCK, 0xFFFF)
+            MSEL = ToInteger (Arg0)
+            If ((MES == One))
+            {
+                Local0 = 0x0F
+            }
+
+            Release (MLCK)
+            Return (Local0)
+        }
+
+        Method (MCRS, 1, Serialized)
+        {
+            Acquire (MLCK, 0xFFFF)
+            MSEL = ToInteger (Arg0)
+            Name (MR64, ResourceTemplate ()
+            {
+                QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
+                    0x0000000000000000, // Granularity
+                    0x0000000000000000, // Range Minimum
+                    0xFFFFFFFFFFFFFFFE, // Range Maximum
+                    0x0000000000000000, // Translation Offset
+                    0xFFFFFFFFFFFFFFFF, // Length
+                    ,, _Y01, AddressRangeMemory, TypeStatic)
+            })
+            CreateDWordField (MR64, \_SB.MHPC.MCRS._Y01._MIN, MINL)  // _MIN: Minimum Base Address
+            CreateDWordField (MR64, 0x12, MINH)
+            CreateDWordField (MR64, \_SB.MHPC.MCRS._Y01._LEN, LENL)  // _LEN: Length
+            CreateDWordField (MR64, 0x2A, LENH)
+            CreateDWordField (MR64, \_SB.MHPC.MCRS._Y01._MAX, MAXL)  // _MAX: Maximum Base Address
+            CreateDWordField (MR64, 0x1A, MAXH)
+            MINH = MRBH /* \_SB_.MHPC.MRBH */
+            MINL = MRBL /* \_SB_.MHPC.MRBL */
+            LENH = MRLH /* \_SB_.MHPC.MRLH */
+            LENL = MRLL /* \_SB_.MHPC.MRLL */
+            MAXL = (MINL + LENL) /* \_SB_.MHPC.MCRS.LENL */
+            MAXH = (MINH + LENH) /* \_SB_.MHPC.MCRS.LENH */
+            If ((MAXL < MINL))
+            {
+                MAXH += One
+            }
+
+            If ((MAXL < One))
+            {
+                MAXH -= One
+            }
+
+            MAXL -= One
+            If ((MAXH == Zero))
+            {
+                Name (MR32, ResourceTemplate ()
+                {
+                    DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
+                        0x00000000,         // Granularity
+                        0x00000000,         // Range Minimum
+                        0xFFFFFFFE,         // Range Maximum
+                        0x00000000,         // Translation Offset
+                        0xFFFFFFFF,         // Length
+                        ,, _Y02, AddressRangeMemory, TypeStatic)
+                })
+                CreateDWordField (MR32, \_SB.MHPC.MCRS._Y02._MIN, MIN)  // _MIN: Minimum Base Address
+                CreateDWordField (MR32, \_SB.MHPC.MCRS._Y02._MAX, MAX)  // _MAX: Maximum Base Address
+                CreateDWordField (MR32, \_SB.MHPC.MCRS._Y02._LEN, LEN)  // _LEN: Length
+                MIN = MINL /* \_SB_.MHPC.MCRS.MINL */
+                MAX = MAXL /* \_SB_.MHPC.MCRS.MAXL */
+                LEN = LENL /* \_SB_.MHPC.MCRS.LENL */
+                Release (MLCK)
+                Return (MR32) /* \_SB_.MHPC.MCRS.MR32 */
+            }
+
+            Release (MLCK)
+            Return (MR64) /* \_SB_.MHPC.MCRS.MR64 */
+        }
+
+        Method (MPXM, 1, NotSerialized)
+        {
+            Acquire (MLCK, 0xFFFF)
+            MSEL = ToInteger (Arg0)
+            Local0 = MPX /* \_SB_.MHPC.MPX_ */
+            Release (MLCK)
+            Return (Local0)
+        }
+
+        Method (MOST, 4, NotSerialized)
+        {
+            Acquire (MLCK, 0xFFFF)
+            MSEL = ToInteger (Arg0)
+            MOEV = Arg1
+            MOSC = Arg2
+            Release (MLCK)
+        }
+
+        Method (MEJ0, 2, NotSerialized)
+        {
+            Acquire (MLCK, 0xFFFF)
+            MSEL = ToInteger (Arg0)
+            MEJ = One
+            Release (MLCK)
+        }
+
+        Device (MP00)
+        {
+            Name (_UID, "0x00")  // _UID: Unique ID
+            Name (_HID, EisaId ("PNP0C80") /* Memory Device */)  // _HID: Hardware ID
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (MCRS (_UID))
+            }
+
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (MRST (_UID))
+            }
+
+            Method (_PXM, 0, NotSerialized)  // _PXM: Device Proximity
+            {
+                Return (MPXM (_UID))
+            }
+
+            Method (_OST, 3, NotSerialized)  // _OST: OSPM Status Indication
+            {
+                MOST (_UID, Arg0, Arg1, Arg2)
+            }
+
+            Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+            {
+                MEJ0 (_UID, Arg0)
+            }
+        }
+
+        Device (MP01)
+        {
+            Name (_UID, "0x01")  // _UID: Unique ID
+            Name (_HID, EisaId ("PNP0C80") /* Memory Device */)  // _HID: Hardware ID
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (MCRS (_UID))
+            }
+
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (MRST (_UID))
+            }
+
+            Method (_PXM, 0, NotSerialized)  // _PXM: Device Proximity
+            {
+                Return (MPXM (_UID))
+            }
+
+            Method (_OST, 3, NotSerialized)  // _OST: OSPM Status Indication
+            {
+                MOST (_UID, Arg0, Arg1, Arg2)
+            }
+
+            Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+            {
+                MEJ0 (_UID, Arg0)
+            }
+        }
+
+        Method (MTFY, 2, NotSerialized)
+        {
+            If ((Arg0 == Zero))
+            {
+                Notify (MP00, Arg1)
+            }
+
+            If ((Arg0 == One))
+            {
+                Notify (MP01, Arg1)
+            }
+        }
+    }
+
+    Method (\_GPE._E03, 0, NotSerialized)  // _Exx: Edge-Triggered GPE, xx=0x00-0xFF
+    {
+        \_SB.MHPC.MSCN ()
+    }
+
+    Scope (_GPE)
+    {
+        Name (_HID, "ACPI0006" /* GPE Block Device */)  // _HID: Hardware ID
+        Method (_E01, 0, NotSerialized)  // _Exx: Edge-Triggered GPE, xx=0x00-0xFF
+        {
+            Acquire (\_SB.PCI0.BLCK, 0xFFFF)
+            \_SB.PCI0.PCNT ()
+            Release (\_SB.PCI0.BLCK)
+        }
+    }
+
+    Scope (\_SB.PCI0)
+    {
+        Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+        {
+            WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
+                0x0000,             // Granularity
+                0x0000,             // Range Minimum
+                0x00FF,             // Range Maximum
+                0x0000,             // Translation Offset
+                0x0100,             // Length
+                ,, )
+            IO (Decode16,
+                0x0CF8,             // Range Minimum
+                0x0CF8,             // Range Maximum
+                0x01,               // Alignment
+                0x08,               // Length
+                )
+            WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
+                0x0000,             // Granularity
+                0x0000,             // Range Minimum
+                0x0CF7,             // Range Maximum
+                0x0000,             // Translation Offset
+                0x0CF8,             // Length
+                ,, , TypeStatic, DenseTranslation)
+            WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
+                0x0000,             // Granularity
+                0x0D00,             // Range Minimum
+                0xFFFF,             // Range Maximum
+                0x0000,             // Translation Offset
+                0xF300,             // Length
+                ,, , TypeStatic, DenseTranslation)
+            DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
+                0x00000000,         // Granularity
+                0x000A0000,         // Range Minimum
+                0x000BFFFF,         // Range Maximum
+                0x00000000,         // Translation Offset
+                0x00020000,         // Length
+                ,, , AddressRangeMemory, TypeStatic)
+            DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
+                0x00000000,         // Granularity
+                0x08000000,         // Range Minimum
+                0xFEBFFFFF,         // Range Maximum
+                0x00000000,         // Translation Offset
+                0xF6C00000,         // Length
+                ,, , AddressRangeMemory, TypeStatic)
+            QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
+                0x0000000000000000, // Granularity
+                0x00000001C0000000, // Range Minimum
+                0x000000023FFFFFFF, // Range Maximum
+                0x0000000000000000, // Translation Offset
+                0x0000000080000000, // Length
+                ,, , AddressRangeMemory, TypeStatic)
+        })
+        Device (GPE0)
+        {
+            Name (_HID, "PNP0A06" /* Generic Container Device */)  // _HID: Hardware ID
+            Name (_UID, "GPE0 resources")  // _UID: Unique ID
+            Name (_STA, 0x0B)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0xAFE0,             // Range Minimum
+                    0xAFE0,             // Range Maximum
+                    0x01,               // Alignment
+                    0x04,               // Length
+                    )
+            })
+        }
+
+        Device (PHPR)
+        {
+            Name (_HID, "PNP0A06" /* Generic Container Device */)  // _HID: Hardware ID
+            Name (_UID, "PCI Hotplug resources")  // _UID: Unique ID
+            Name (_STA, 0x0B)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0xAE00,             // Range Minimum
+                    0xAE00,             // Range Maximum
+                    0x01,               // Alignment
+                    0x14,               // Length
+                    )
+            })
+        }
+    }
+
+    Scope (\)
+    {
+        Name (_S3, Package (0x04)  // _S3_: S3 System State
+        {
+            One, 
+            One, 
+            Zero, 
+            Zero
+        })
+        Name (_S4, Package (0x04)  // _S4_: S4 System State
+        {
+            0x02, 
+            0x02, 
+            Zero, 
+            Zero
+        })
+        Name (_S5, Package (0x04)  // _S5_: S5 System State
+        {
+            Zero, 
+            Zero, 
+            Zero, 
+            Zero
+        })
+    }
+
+    Scope (\_SB.PCI0)
+    {
+        Device (FWCF)
+        {
+            Name (_HID, "QEMU0002")  // _HID: Hardware ID
+            Name (_STA, 0x0B)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0510,             // Range Minimum
+                    0x0510,             // Range Maximum
+                    0x01,               // Alignment
+                    0x0C,               // Length
+                    )
+            })
+        }
+    }
+
+    Scope (\_SB)
+    {
+        Scope (PCI0)
+        {
+            Name (BSEL, Zero)
+            Device (S00)
+            {
+                Name (_ADR, Zero)  // _ADR: Address
+            }
+
+            Device (S10)
+            {
+                Name (_ADR, 0x00020000)  // _ADR: Address
+                Method (_S1D, 0, NotSerialized)  // _S1D: S1 Device State
+                {
+                    Return (Zero)
+                }
+
+                Method (_S2D, 0, NotSerialized)  // _S2D: S2 Device State
+                {
+                    Return (Zero)
+                }
+
+                Method (_S3D, 0, NotSerialized)  // _S3D: S3 Device State
+                {
+                    Return (Zero)
+                }
+            }
+
+            Device (S18)
+            {
+                Name (_SUN, 0x03)  // _SUN: Slot User Number
+                Name (_ADR, 0x00030000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S20)
+            {
+                Name (_SUN, 0x04)  // _SUN: Slot User Number
+                Name (_ADR, 0x00040000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S28)
+            {
+                Name (_SUN, 0x05)  // _SUN: Slot User Number
+                Name (_ADR, 0x00050000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S30)
+            {
+                Name (_SUN, 0x06)  // _SUN: Slot User Number
+                Name (_ADR, 0x00060000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S38)
+            {
+                Name (_SUN, 0x07)  // _SUN: Slot User Number
+                Name (_ADR, 0x00070000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S40)
+            {
+                Name (_SUN, 0x08)  // _SUN: Slot User Number
+                Name (_ADR, 0x00080000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S48)
+            {
+                Name (_SUN, 0x09)  // _SUN: Slot User Number
+                Name (_ADR, 0x00090000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S50)
+            {
+                Name (_SUN, 0x0A)  // _SUN: Slot User Number
+                Name (_ADR, 0x000A0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S58)
+            {
+                Name (_SUN, 0x0B)  // _SUN: Slot User Number
+                Name (_ADR, 0x000B0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S60)
+            {
+                Name (_SUN, 0x0C)  // _SUN: Slot User Number
+                Name (_ADR, 0x000C0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S68)
+            {
+                Name (_SUN, 0x0D)  // _SUN: Slot User Number
+                Name (_ADR, 0x000D0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S70)
+            {
+                Name (_SUN, 0x0E)  // _SUN: Slot User Number
+                Name (_ADR, 0x000E0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S78)
+            {
+                Name (_SUN, 0x0F)  // _SUN: Slot User Number
+                Name (_ADR, 0x000F0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S80)
+            {
+                Name (_SUN, 0x10)  // _SUN: Slot User Number
+                Name (_ADR, 0x00100000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S88)
+            {
+                Name (_SUN, 0x11)  // _SUN: Slot User Number
+                Name (_ADR, 0x00110000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S90)
+            {
+                Name (_SUN, 0x12)  // _SUN: Slot User Number
+                Name (_ADR, 0x00120000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S98)
+            {
+                Name (_SUN, 0x13)  // _SUN: Slot User Number
+                Name (_ADR, 0x00130000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SA0)
+            {
+                Name (_SUN, 0x14)  // _SUN: Slot User Number
+                Name (_ADR, 0x00140000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SA8)
+            {
+                Name (_SUN, 0x15)  // _SUN: Slot User Number
+                Name (_ADR, 0x00150000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SB0)
+            {
+                Name (_SUN, 0x16)  // _SUN: Slot User Number
+                Name (_ADR, 0x00160000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SB8)
+            {
+                Name (_SUN, 0x17)  // _SUN: Slot User Number
+                Name (_ADR, 0x00170000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SC0)
+            {
+                Name (_SUN, 0x18)  // _SUN: Slot User Number
+                Name (_ADR, 0x00180000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SC8)
+            {
+                Name (_SUN, 0x19)  // _SUN: Slot User Number
+                Name (_ADR, 0x00190000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SD0)
+            {
+                Name (_SUN, 0x1A)  // _SUN: Slot User Number
+                Name (_ADR, 0x001A0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SD8)
+            {
+                Name (_SUN, 0x1B)  // _SUN: Slot User Number
+                Name (_ADR, 0x001B0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SE0)
+            {
+                Name (_SUN, 0x1C)  // _SUN: Slot User Number
+                Name (_ADR, 0x001C0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SE8)
+            {
+                Name (_SUN, 0x1D)  // _SUN: Slot User Number
+                Name (_ADR, 0x001D0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SF0)
+            {
+                Name (_SUN, 0x1E)  // _SUN: Slot User Number
+                Name (_ADR, 0x001E0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SF8)
+            {
+                Name (_SUN, 0x1F)  // _SUN: Slot User Number
+                Name (_ADR, 0x001F0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Method (DVNT, 2, NotSerialized)
+            {
+                If ((Arg0 & 0x08))
+                {
+                    Notify (S18, Arg1)
+                }
+
+                If ((Arg0 & 0x10))
+                {
+                    Notify (S20, Arg1)
+                }
+
+                If ((Arg0 & 0x20))
+                {
+                    Notify (S28, Arg1)
+                }
+
+                If ((Arg0 & 0x40))
+                {
+                    Notify (S30, Arg1)
+                }
+
+                If ((Arg0 & 0x80))
+                {
+                    Notify (S38, Arg1)
+                }
+
+                If ((Arg0 & 0x0100))
+                {
+                    Notify (S40, Arg1)
+                }
+
+                If ((Arg0 & 0x0200))
+                {
+                    Notify (S48, Arg1)
+                }
+
+                If ((Arg0 & 0x0400))
+                {
+                    Notify (S50, Arg1)
+                }
+
+                If ((Arg0 & 0x0800))
+                {
+                    Notify (S58, Arg1)
+                }
+
+                If ((Arg0 & 0x1000))
+                {
+                    Notify (S60, Arg1)
+                }
+
+                If ((Arg0 & 0x2000))
+                {
+                    Notify (S68, Arg1)
+                }
+
+                If ((Arg0 & 0x4000))
+                {
+                    Notify (S70, Arg1)
+                }
+
+                If ((Arg0 & 0x8000))
+                {
+                    Notify (S78, Arg1)
+                }
+
+                If ((Arg0 & 0x00010000))
+                {
+                    Notify (S80, Arg1)
+                }
+
+                If ((Arg0 & 0x00020000))
+                {
+                    Notify (S88, Arg1)
+                }
+
+                If ((Arg0 & 0x00040000))
+                {
+                    Notify (S90, Arg1)
+                }
+
+                If ((Arg0 & 0x00080000))
+                {
+                    Notify (S98, Arg1)
+                }
+
+                If ((Arg0 & 0x00100000))
+                {
+                    Notify (SA0, Arg1)
+                }
+
+                If ((Arg0 & 0x00200000))
+                {
+                    Notify (SA8, Arg1)
+                }
+
+                If ((Arg0 & 0x00400000))
+                {
+                    Notify (SB0, Arg1)
+                }
+
+                If ((Arg0 & 0x00800000))
+                {
+                    Notify (SB8, Arg1)
+                }
+
+                If ((Arg0 & 0x01000000))
+                {
+                    Notify (SC0, Arg1)
+                }
+
+                If ((Arg0 & 0x02000000))
+                {
+                    Notify (SC8, Arg1)
+                }
+
+                If ((Arg0 & 0x04000000))
+                {
+                    Notify (SD0, Arg1)
+                }
+
+                If ((Arg0 & 0x08000000))
+                {
+                    Notify (SD8, Arg1)
+                }
+
+                If ((Arg0 & 0x10000000))
+                {
+                    Notify (SE0, Arg1)
+                }
+
+                If ((Arg0 & 0x20000000))
+                {
+                    Notify (SE8, Arg1)
+                }
+
+                If ((Arg0 & 0x40000000))
+                {
+                    Notify (SF0, Arg1)
+                }
+
+                If ((Arg0 & 0x80000000))
+                {
+                    Notify (SF8, Arg1)
+                }
+            }
+
+            Method (PCNT, 0, NotSerialized)
+            {
+                BNUM = Zero
+                DVNT (PCIU, One)
+                DVNT (PCID, 0x03)
+            }
+        }
+    }
+}
+
diff --git a/tests/data/acpi/pc/DSDT.bridge.dsl b/tests/data/acpi/pc/DSDT.bridge.dsl
new file mode 100644
index 0000000000..3311b57ecb
--- /dev/null
+++ b/tests/data/acpi/pc/DSDT.bridge.dsl
@@ -0,0 +1,1800 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembling to symbolic ASL+ operators
+ *
+ * Disassembly of tests/data/acpi/pc/DSDT.bridge, Tue Aug  4 11:14:15 2020
+ *
+ * Original Table Header:
+ *     Signature        "DSDT"
+ *     Length           0x00001A89 (6793)
+ *     Revision         0x01 **** 32-bit table (V1), no 64-bit math support
+ *     Checksum         0x09
+ *     OEM ID           "BOCHS "
+ *     OEM Table ID     "BXPCDSDT"
+ *     OEM Revision     0x00000001 (1)
+ *     Compiler ID      "BXPC"
+ *     Compiler Version 0x00000001 (1)
+ */
+DefinitionBlock ("", "DSDT", 1, "BOCHS ", "BXPCDSDT", 0x00000001)
+{
+    Scope (\)
+    {
+        OperationRegion (DBG, SystemIO, 0x0402, One)
+        Field (DBG, ByteAcc, NoLock, Preserve)
+        {
+            DBGB,   8
+        }
+
+        Method (DBUG, 1, NotSerialized)
+        {
+            ToHexString (Arg0, Local0)
+            ToBuffer (Local0, Local0)
+            Local1 = (SizeOf (Local0) - One)
+            Local2 = Zero
+            While ((Local2 < Local1))
+            {
+                DBGB = DerefOf (Local0 [Local2])
+                Local2++
+            }
+
+            DBGB = 0x0A
+        }
+    }
+
+    Scope (_SB)
+    {
+        Device (PCI0)
+        {
+            Name (_HID, EisaId ("PNP0A03") /* PCI Bus */)  // _HID: Hardware ID
+            Name (_ADR, Zero)  // _ADR: Address
+            Name (_UID, Zero)  // _UID: Unique ID
+        }
+    }
+
+    Scope (_SB)
+    {
+        Device (HPET)
+        {
+            Name (_HID, EisaId ("PNP0103") /* HPET System Timer */)  // _HID: Hardware ID
+            Name (_UID, Zero)  // _UID: Unique ID
+            OperationRegion (HPTM, SystemMemory, 0xFED00000, 0x0400)
+            Field (HPTM, DWordAcc, Lock, Preserve)
+            {
+                VEND,   32, 
+                PRD,    32
+            }
+
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Local0 = VEND /* \_SB_.HPET.VEND */
+                Local1 = PRD /* \_SB_.HPET.PRD_ */
+                Local0 >>= 0x10
+                If (((Local0 == Zero) || (Local0 == 0xFFFF)))
+                {
+                    Return (Zero)
+                }
+
+                If (((Local1 == Zero) || (Local1 > 0x05F5E100)))
+                {
+                    Return (Zero)
+                }
+
+                Return (0x0F)
+            }
+
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadOnly,
+                    0xFED00000,         // Address Base
+                    0x00000400,         // Address Length
+                    )
+            })
+        }
+    }
+
+    Scope (_SB.PCI0)
+    {
+        Device (ISA)
+        {
+            Name (_ADR, 0x00010000)  // _ADR: Address
+            OperationRegion (P40C, PCI_Config, 0x60, 0x04)
+        }
+    }
+
+    Scope (_SB.PCI0.ISA)
+    {
+        Device (KBD)
+        {
+            Name (_HID, EisaId ("PNP0303") /* IBM Enhanced Keyboard (101/102-key, PS/2 Mouse) */)  // _HID: Hardware ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0060,             // Range Minimum
+                    0x0060,             // Range Maximum
+                    0x01,               // Alignment
+                    0x01,               // Length
+                    )
+                IO (Decode16,
+                    0x0064,             // Range Minimum
+                    0x0064,             // Range Maximum
+                    0x01,               // Alignment
+                    0x01,               // Length
+                    )
+                IRQNoFlags ()
+                    {1}
+            })
+        }
+
+        Device (MOU)
+        {
+            Name (_HID, EisaId ("PNP0F13") /* PS/2 Mouse */)  // _HID: Hardware ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IRQNoFlags ()
+                    {12}
+            })
+        }
+
+        Device (FDC0)
+        {
+            Name (_HID, EisaId ("PNP0700"))  // _HID: Hardware ID
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x03F2,             // Range Minimum
+                    0x03F2,             // Range Maximum
+                    0x00,               // Alignment
+                    0x04,               // Length
+                    )
+                IO (Decode16,
+                    0x03F7,             // Range Minimum
+                    0x03F7,             // Range Maximum
+                    0x00,               // Alignment
+                    0x01,               // Length
+                    )
+                IRQNoFlags ()
+                    {6}
+                DMA (Compatibility, NotBusMaster, Transfer8, )
+                    {2}
+            })
+            Device (FLPA)
+            {
+                Name (_ADR, Zero)  // _ADR: Address
+                Name (_FDI, Package (0x10)  // _FDI: Floppy Drive Information
+                {
+                    Zero, 
+                    0x05, 
+                    0x4F, 
+                    0x30, 
+                    One, 
+                    0xAF, 
+                    0x02, 
+                    0x25, 
+                    0x02, 
+                    0x12, 
+                    0x1B, 
+                    0xFF, 
+                    0x6C, 
+                    0xF6, 
+                    0x0F, 
+                    0x08
+                })
+            }
+
+            Name (_FDE, Buffer (0x14)  // _FDE: Floppy Disk Enumerate
+            {
+                /* 0000 */  0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
+                /* 0008 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
+                /* 0010 */  0x02, 0x00, 0x00, 0x00                           // ....
+            })
+        }
+
+        Device (LPT1)
+        {
+            Name (_HID, EisaId ("PNP0400") /* Standard LPT Parallel Port */)  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0378,             // Range Minimum
+                    0x0378,             // Range Maximum
+                    0x08,               // Alignment
+                    0x08,               // Length
+                    )
+                IRQNoFlags ()
+                    {7}
+            })
+        }
+
+        Device (COM1)
+        {
+            Name (_HID, EisaId ("PNP0501") /* 16550A-compatible COM Serial Port */)  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x03F8,             // Range Minimum
+                    0x03F8,             // Range Maximum
+                    0x00,               // Alignment
+                    0x08,               // Length
+                    )
+                IRQNoFlags ()
+                    {4}
+            })
+        }
+
+        Device (RTC)
+        {
+            Name (_HID, EisaId ("PNP0B00") /* AT Real-Time Clock */)  // _HID: Hardware ID
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0070,             // Range Minimum
+                    0x0070,             // Range Maximum
+                    0x01,               // Alignment
+                    0x08,               // Length
+                    )
+                IRQNoFlags ()
+                    {8}
+            })
+        }
+    }
+
+    Scope (_SB.PCI0)
+    {
+        OperationRegion (PCST, SystemIO, 0xAE00, 0x08)
+        Field (PCST, DWordAcc, NoLock, WriteAsZeros)
+        {
+            PCIU,   32, 
+            PCID,   32
+        }
+
+        OperationRegion (SEJ, SystemIO, 0xAE08, 0x04)
+        Field (SEJ, DWordAcc, NoLock, WriteAsZeros)
+        {
+            B0EJ,   32
+        }
+
+        OperationRegion (BNMR, SystemIO, 0xAE10, 0x04)
+        Field (BNMR, DWordAcc, NoLock, WriteAsZeros)
+        {
+            BNUM,   32
+        }
+
+        Mutex (BLCK, 0x00)
+        Method (PCEJ, 2, NotSerialized)
+        {
+            Acquire (BLCK, 0xFFFF)
+            BNUM = Arg0
+            B0EJ = (One << Arg1)
+            Release (BLCK)
+            Return (Zero)
+        }
+    }
+
+    Scope (_SB)
+    {
+        Scope (PCI0)
+        {
+            Method (_PRT, 0, NotSerialized)  // _PRT: PCI Routing Table
+            {
+                Local0 = Package (0x80){}
+                Local1 = Zero
+                While ((Local1 < 0x80))
+                {
+                    Local2 = (Local1 >> 0x02)
+                    Local3 = ((Local1 + Local2) & 0x03)
+                    If ((Local3 == Zero))
+                    {
+                        Local4 = Package (0x04)
+                            {
+                                Zero, 
+                                Zero, 
+                                LNKD, 
+                                Zero
+                            }
+                    }
+
+                    If ((Local3 == One))
+                    {
+                        If ((Local1 == 0x04))
+                        {
+                            Local4 = Package (0x04)
+                                {
+                                    Zero, 
+                                    Zero, 
+                                    LNKS, 
+                                    Zero
+                                }
+                        }
+                        Else
+                        {
+                            Local4 = Package (0x04)
+                                {
+                                    Zero, 
+                                    Zero, 
+                                    LNKA, 
+                                    Zero
+                                }
+                        }
+                    }
+
+                    If ((Local3 == 0x02))
+                    {
+                        Local4 = Package (0x04)
+                            {
+                                Zero, 
+                                Zero, 
+                                LNKB, 
+                                Zero
+                            }
+                    }
+
+                    If ((Local3 == 0x03))
+                    {
+                        Local4 = Package (0x04)
+                            {
+                                Zero, 
+                                Zero, 
+                                LNKC, 
+                                Zero
+                            }
+                    }
+
+                    Local4 [Zero] = ((Local2 << 0x10) | 0xFFFF)
+                    Local4 [One] = (Local1 & 0x03)
+                    Local0 [Local1] = Local4
+                    Local1++
+                }
+
+                Return (Local0)
+            }
+        }
+
+        Field (PCI0.ISA.P40C, ByteAcc, NoLock, Preserve)
+        {
+            PRQ0,   8, 
+            PRQ1,   8, 
+            PRQ2,   8, 
+            PRQ3,   8
+        }
+
+        Method (IQST, 1, NotSerialized)
+        {
+            If ((0x80 & Arg0))
+            {
+                Return (0x09)
+            }
+
+            Return (0x0B)
+        }
+
+        Method (IQCR, 1, Serialized)
+        {
+            Name (PRR0, ResourceTemplate ()
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, _Y00)
+                {
+                    0x00000000,
+                }
+            })
+            CreateDWordField (PRR0, \_SB.IQCR._Y00._INT, PRRI)  // _INT: Interrupts
+            If ((Arg0 < 0x80))
+            {
+                PRRI = Arg0
+            }
+
+            Return (PRR0) /* \_SB_.IQCR.PRR0 */
+        }
+
+        Device (LNKA)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, Zero)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQ0))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQ0 |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQ0))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQ0 = PRRI /* \_SB_.LNKA._SRS.PRRI */
+            }
+        }
+
+        Device (LNKB)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQ1))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQ1 |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQ1))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQ1 = PRRI /* \_SB_.LNKB._SRS.PRRI */
+            }
+        }
+
+        Device (LNKC)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x02)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQ2))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQ2 |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQ2))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQ2 = PRRI /* \_SB_.LNKC._SRS.PRRI */
+            }
+        }
+
+        Device (LNKD)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x03)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQ3))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQ3 |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQ3))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQ3 = PRRI /* \_SB_.LNKD._SRS.PRRI */
+            }
+        }
+
+        Device (LNKS)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x04)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000009,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (0x0B)
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (_PRS) /* \_SB_.LNKS._PRS */
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+    }
+
+    Scope (_SB)
+    {
+        Device (\_SB.PCI0.PRES)
+        {
+            Name (_HID, EisaId ("PNP0A06") /* Generic Container Device */)  // _HID: Hardware ID
+            Name (_UID, "CPU Hotplug resources")  // _UID: Unique ID
+            Mutex (CPLK, 0x00)
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0xAF00,             // Range Minimum
+                    0xAF00,             // Range Maximum
+                    0x01,               // Alignment
+                    0x0C,               // Length
+                    )
+            })
+            OperationRegion (PRST, SystemIO, 0xAF00, 0x0C)
+            Field (PRST, ByteAcc, NoLock, WriteAsZeros)
+            {
+                Offset (0x04), 
+                CPEN,   1, 
+                CINS,   1, 
+                CRMV,   1, 
+                CEJ0,   1, 
+                Offset (0x05), 
+                CCMD,   8
+            }
+
+            Field (PRST, DWordAcc, NoLock, Preserve)
+            {
+                CSEL,   32, 
+                Offset (0x08), 
+                CDAT,   32
+            }
+
+            Method (_INI, 0, Serialized)  // _INI: Initialize
+            {
+                CSEL = Zero
+            }
+        }
+
+        Device (\_SB.CPUS)
+        {
+            Name (_HID, "ACPI0010" /* Processor Container Device */)  // _HID: Hardware ID
+            Name (_CID, EisaId ("PNP0A05") /* Generic Container Device */)  // _CID: Compatible ID
+            Method (CTFY, 2, NotSerialized)
+            {
+                If ((Arg0 == Zero))
+                {
+                    Notify (C000, Arg1)
+                }
+            }
+
+            Method (CSTA, 1, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                \_SB.PCI0.PRES.CSEL = Arg0
+                Local0 = Zero
+                If ((\_SB.PCI0.PRES.CPEN == One))
+                {
+                    Local0 = 0x0F
+                }
+
+                Release (\_SB.PCI0.PRES.CPLK)
+                Return (Local0)
+            }
+
+            Method (CEJ0, 1, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                \_SB.PCI0.PRES.CSEL = Arg0
+                \_SB.PCI0.PRES.CEJ0 = One
+                Release (\_SB.PCI0.PRES.CPLK)
+            }
+
+            Method (CSCN, 0, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                Local0 = One
+                While ((Local0 == One))
+                {
+                    Local0 = Zero
+                    \_SB.PCI0.PRES.CCMD = Zero
+                    If ((\_SB.PCI0.PRES.CINS == One))
+                    {
+                        CTFY (\_SB.PCI0.PRES.CDAT, One)
+                        \_SB.PCI0.PRES.CINS = One
+                        Local0 = One
+                    }
+                    ElseIf ((\_SB.PCI0.PRES.CRMV == One))
+                    {
+                        CTFY (\_SB.PCI0.PRES.CDAT, 0x03)
+                        \_SB.PCI0.PRES.CRMV = One
+                        Local0 = One
+                    }
+                }
+
+                Release (\_SB.PCI0.PRES.CPLK)
+            }
+
+            Method (COST, 4, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                \_SB.PCI0.PRES.CSEL = Arg0
+                \_SB.PCI0.PRES.CCMD = One
+                \_SB.PCI0.PRES.CDAT = Arg1
+                \_SB.PCI0.PRES.CCMD = 0x02
+                \_SB.PCI0.PRES.CDAT = Arg2
+                Release (\_SB.PCI0.PRES.CPLK)
+            }
+
+            Processor (C000, 0x00, 0x00000000, 0x00)
+            {
+                Method (_STA, 0, Serialized)  // _STA: Status
+                {
+                    Return (CSTA (Zero))
+                }
+
+                Name (_MAT, Buffer (0x08)  // _MAT: Multiple APIC Table Entry
+                {
+                     0x00, 0x08, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00   // ........
+                })
+                Method (_OST, 3, Serialized)  // _OST: OSPM Status Indication
+                {
+                    COST (Zero, Arg0, Arg1, Arg2)
+                }
+            }
+        }
+    }
+
+    Method (\_GPE._E02, 0, NotSerialized)  // _Exx: Edge-Triggered GPE, xx=0x00-0xFF
+    {
+        \_SB.CPUS.CSCN ()
+    }
+
+    Scope (_GPE)
+    {
+        Name (_HID, "ACPI0006" /* GPE Block Device */)  // _HID: Hardware ID
+        Method (_E01, 0, NotSerialized)  // _Exx: Edge-Triggered GPE, xx=0x00-0xFF
+        {
+            Acquire (\_SB.PCI0.BLCK, 0xFFFF)
+            \_SB.PCI0.PCNT ()
+            Release (\_SB.PCI0.BLCK)
+        }
+    }
+
+    Scope (\_SB.PCI0)
+    {
+        Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+        {
+            WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
+                0x0000,             // Granularity
+                0x0000,             // Range Minimum
+                0x00FF,             // Range Maximum
+                0x0000,             // Translation Offset
+                0x0100,             // Length
+                ,, )
+            IO (Decode16,
+                0x0CF8,             // Range Minimum
+                0x0CF8,             // Range Maximum
+                0x01,               // Alignment
+                0x08,               // Length
+                )
+            WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
+                0x0000,             // Granularity
+                0x0000,             // Range Minimum
+                0x0CF7,             // Range Maximum
+                0x0000,             // Translation Offset
+                0x0CF8,             // Length
+                ,, , TypeStatic, DenseTranslation)
+            WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
+                0x0000,             // Granularity
+                0x0D00,             // Range Minimum
+                0xFFFF,             // Range Maximum
+                0x0000,             // Translation Offset
+                0xF300,             // Length
+                ,, , TypeStatic, DenseTranslation)
+            DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
+                0x00000000,         // Granularity
+                0x000A0000,         // Range Minimum
+                0x000BFFFF,         // Range Maximum
+                0x00000000,         // Translation Offset
+                0x00020000,         // Length
+                ,, , AddressRangeMemory, TypeStatic)
+            DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
+                0x00000000,         // Granularity
+                0x08000000,         // Range Minimum
+                0xFEBFFFFF,         // Range Maximum
+                0x00000000,         // Translation Offset
+                0xF6C00000,         // Length
+                ,, , AddressRangeMemory, TypeStatic)
+            QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
+                0x0000000000000000, // Granularity
+                0x0000000100000000, // Range Minimum
+                0x000000017FFFFFFF, // Range Maximum
+                0x0000000000000000, // Translation Offset
+                0x0000000080000000, // Length
+                ,, , AddressRangeMemory, TypeStatic)
+        })
+        Device (GPE0)
+        {
+            Name (_HID, "PNP0A06" /* Generic Container Device */)  // _HID: Hardware ID
+            Name (_UID, "GPE0 resources")  // _UID: Unique ID
+            Name (_STA, 0x0B)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0xAFE0,             // Range Minimum
+                    0xAFE0,             // Range Maximum
+                    0x01,               // Alignment
+                    0x04,               // Length
+                    )
+            })
+        }
+
+        Device (PHPR)
+        {
+            Name (_HID, "PNP0A06" /* Generic Container Device */)  // _HID: Hardware ID
+            Name (_UID, "PCI Hotplug resources")  // _UID: Unique ID
+            Name (_STA, 0x0B)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0xAE00,             // Range Minimum
+                    0xAE00,             // Range Maximum
+                    0x01,               // Alignment
+                    0x14,               // Length
+                    )
+            })
+        }
+    }
+
+    Scope (\)
+    {
+        Name (_S3, Package (0x04)  // _S3_: S3 System State
+        {
+            One, 
+            One, 
+            Zero, 
+            Zero
+        })
+        Name (_S4, Package (0x04)  // _S4_: S4 System State
+        {
+            0x02, 
+            0x02, 
+            Zero, 
+            Zero
+        })
+        Name (_S5, Package (0x04)  // _S5_: S5 System State
+        {
+            Zero, 
+            Zero, 
+            Zero, 
+            Zero
+        })
+    }
+
+    Scope (\_SB.PCI0)
+    {
+        Device (FWCF)
+        {
+            Name (_HID, "QEMU0002")  // _HID: Hardware ID
+            Name (_STA, 0x0B)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0510,             // Range Minimum
+                    0x0510,             // Range Maximum
+                    0x01,               // Alignment
+                    0x0C,               // Length
+                    )
+            })
+        }
+    }
+
+    Scope (\_SB)
+    {
+        Scope (PCI0)
+        {
+            Name (BSEL, Zero)
+            Device (S00)
+            {
+                Name (_ADR, Zero)  // _ADR: Address
+            }
+
+            Device (S10)
+            {
+                Name (_ADR, 0x00020000)  // _ADR: Address
+                Method (_S1D, 0, NotSerialized)  // _S1D: S1 Device State
+                {
+                    Return (Zero)
+                }
+
+                Method (_S2D, 0, NotSerialized)  // _S2D: S2 Device State
+                {
+                    Return (Zero)
+                }
+
+                Method (_S3D, 0, NotSerialized)  // _S3D: S3 Device State
+                {
+                    Return (Zero)
+                }
+            }
+
+            Device (S18)
+            {
+                Name (_ADR, 0x00030000)  // _ADR: Address
+                Name (BSEL, One)
+                Device (S00)
+                {
+                    Name (_SUN, Zero)  // _SUN: Slot User Number
+                    Name (_ADR, Zero)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (S08)
+                {
+                    Name (_SUN, One)  // _SUN: Slot User Number
+                    Name (_ADR, 0x00010000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (S10)
+                {
+                    Name (_SUN, 0x02)  // _SUN: Slot User Number
+                    Name (_ADR, 0x00020000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (S18)
+                {
+                    Name (_SUN, 0x03)  // _SUN: Slot User Number
+                    Name (_ADR, 0x00030000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (S20)
+                {
+                    Name (_SUN, 0x04)  // _SUN: Slot User Number
+                    Name (_ADR, 0x00040000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (S28)
+                {
+                    Name (_SUN, 0x05)  // _SUN: Slot User Number
+                    Name (_ADR, 0x00050000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (S30)
+                {
+                    Name (_SUN, 0x06)  // _SUN: Slot User Number
+                    Name (_ADR, 0x00060000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (S38)
+                {
+                    Name (_SUN, 0x07)  // _SUN: Slot User Number
+                    Name (_ADR, 0x00070000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (S40)
+                {
+                    Name (_SUN, 0x08)  // _SUN: Slot User Number
+                    Name (_ADR, 0x00080000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (S48)
+                {
+                    Name (_SUN, 0x09)  // _SUN: Slot User Number
+                    Name (_ADR, 0x00090000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (S50)
+                {
+                    Name (_SUN, 0x0A)  // _SUN: Slot User Number
+                    Name (_ADR, 0x000A0000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (S58)
+                {
+                    Name (_SUN, 0x0B)  // _SUN: Slot User Number
+                    Name (_ADR, 0x000B0000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (S60)
+                {
+                    Name (_SUN, 0x0C)  // _SUN: Slot User Number
+                    Name (_ADR, 0x000C0000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (S68)
+                {
+                    Name (_SUN, 0x0D)  // _SUN: Slot User Number
+                    Name (_ADR, 0x000D0000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (S70)
+                {
+                    Name (_SUN, 0x0E)  // _SUN: Slot User Number
+                    Name (_ADR, 0x000E0000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (S78)
+                {
+                    Name (_SUN, 0x0F)  // _SUN: Slot User Number
+                    Name (_ADR, 0x000F0000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (S80)
+                {
+                    Name (_SUN, 0x10)  // _SUN: Slot User Number
+                    Name (_ADR, 0x00100000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (S88)
+                {
+                    Name (_SUN, 0x11)  // _SUN: Slot User Number
+                    Name (_ADR, 0x00110000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (S90)
+                {
+                    Name (_SUN, 0x12)  // _SUN: Slot User Number
+                    Name (_ADR, 0x00120000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (S98)
+                {
+                    Name (_SUN, 0x13)  // _SUN: Slot User Number
+                    Name (_ADR, 0x00130000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (SA0)
+                {
+                    Name (_SUN, 0x14)  // _SUN: Slot User Number
+                    Name (_ADR, 0x00140000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (SA8)
+                {
+                    Name (_SUN, 0x15)  // _SUN: Slot User Number
+                    Name (_ADR, 0x00150000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (SB0)
+                {
+                    Name (_SUN, 0x16)  // _SUN: Slot User Number
+                    Name (_ADR, 0x00160000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (SB8)
+                {
+                    Name (_SUN, 0x17)  // _SUN: Slot User Number
+                    Name (_ADR, 0x00170000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (SC0)
+                {
+                    Name (_SUN, 0x18)  // _SUN: Slot User Number
+                    Name (_ADR, 0x00180000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (SC8)
+                {
+                    Name (_SUN, 0x19)  // _SUN: Slot User Number
+                    Name (_ADR, 0x00190000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (SD0)
+                {
+                    Name (_SUN, 0x1A)  // _SUN: Slot User Number
+                    Name (_ADR, 0x001A0000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (SD8)
+                {
+                    Name (_SUN, 0x1B)  // _SUN: Slot User Number
+                    Name (_ADR, 0x001B0000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (SE0)
+                {
+                    Name (_SUN, 0x1C)  // _SUN: Slot User Number
+                    Name (_ADR, 0x001C0000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (SE8)
+                {
+                    Name (_SUN, 0x1D)  // _SUN: Slot User Number
+                    Name (_ADR, 0x001D0000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (SF0)
+                {
+                    Name (_SUN, 0x1E)  // _SUN: Slot User Number
+                    Name (_ADR, 0x001E0000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (SF8)
+                {
+                    Name (_SUN, 0x1F)  // _SUN: Slot User Number
+                    Name (_ADR, 0x001F0000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Method (DVNT, 2, NotSerialized)
+                {
+                    If ((Arg0 & One))
+                    {
+                        Notify (S00, Arg1)
+                    }
+
+                    If ((Arg0 & 0x02))
+                    {
+                        Notify (S08, Arg1)
+                    }
+
+                    If ((Arg0 & 0x04))
+                    {
+                        Notify (S10, Arg1)
+                    }
+
+                    If ((Arg0 & 0x08))
+                    {
+                        Notify (S18, Arg1)
+                    }
+
+                    If ((Arg0 & 0x10))
+                    {
+                        Notify (S20, Arg1)
+                    }
+
+                    If ((Arg0 & 0x20))
+                    {
+                        Notify (S28, Arg1)
+                    }
+
+                    If ((Arg0 & 0x40))
+                    {
+                        Notify (S30, Arg1)
+                    }
+
+                    If ((Arg0 & 0x80))
+                    {
+                        Notify (S38, Arg1)
+                    }
+
+                    If ((Arg0 & 0x0100))
+                    {
+                        Notify (S40, Arg1)
+                    }
+
+                    If ((Arg0 & 0x0200))
+                    {
+                        Notify (S48, Arg1)
+                    }
+
+                    If ((Arg0 & 0x0400))
+                    {
+                        Notify (S50, Arg1)
+                    }
+
+                    If ((Arg0 & 0x0800))
+                    {
+                        Notify (S58, Arg1)
+                    }
+
+                    If ((Arg0 & 0x1000))
+                    {
+                        Notify (S60, Arg1)
+                    }
+
+                    If ((Arg0 & 0x2000))
+                    {
+                        Notify (S68, Arg1)
+                    }
+
+                    If ((Arg0 & 0x4000))
+                    {
+                        Notify (S70, Arg1)
+                    }
+
+                    If ((Arg0 & 0x8000))
+                    {
+                        Notify (S78, Arg1)
+                    }
+
+                    If ((Arg0 & 0x00010000))
+                    {
+                        Notify (S80, Arg1)
+                    }
+
+                    If ((Arg0 & 0x00020000))
+                    {
+                        Notify (S88, Arg1)
+                    }
+
+                    If ((Arg0 & 0x00040000))
+                    {
+                        Notify (S90, Arg1)
+                    }
+
+                    If ((Arg0 & 0x00080000))
+                    {
+                        Notify (S98, Arg1)
+                    }
+
+                    If ((Arg0 & 0x00100000))
+                    {
+                        Notify (SA0, Arg1)
+                    }
+
+                    If ((Arg0 & 0x00200000))
+                    {
+                        Notify (SA8, Arg1)
+                    }
+
+                    If ((Arg0 & 0x00400000))
+                    {
+                        Notify (SB0, Arg1)
+                    }
+
+                    If ((Arg0 & 0x00800000))
+                    {
+                        Notify (SB8, Arg1)
+                    }
+
+                    If ((Arg0 & 0x01000000))
+                    {
+                        Notify (SC0, Arg1)
+                    }
+
+                    If ((Arg0 & 0x02000000))
+                    {
+                        Notify (SC8, Arg1)
+                    }
+
+                    If ((Arg0 & 0x04000000))
+                    {
+                        Notify (SD0, Arg1)
+                    }
+
+                    If ((Arg0 & 0x08000000))
+                    {
+                        Notify (SD8, Arg1)
+                    }
+
+                    If ((Arg0 & 0x10000000))
+                    {
+                        Notify (SE0, Arg1)
+                    }
+
+                    If ((Arg0 & 0x20000000))
+                    {
+                        Notify (SE8, Arg1)
+                    }
+
+                    If ((Arg0 & 0x40000000))
+                    {
+                        Notify (SF0, Arg1)
+                    }
+
+                    If ((Arg0 & 0x80000000))
+                    {
+                        Notify (SF8, Arg1)
+                    }
+                }
+
+                Method (PCNT, 0, NotSerialized)
+                {
+                    BNUM = One
+                    DVNT (PCIU, One)
+                    DVNT (PCID, 0x03)
+                }
+            }
+
+            Device (S20)
+            {
+                Name (_SUN, 0x04)  // _SUN: Slot User Number
+                Name (_ADR, 0x00040000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S28)
+            {
+                Name (_SUN, 0x05)  // _SUN: Slot User Number
+                Name (_ADR, 0x00050000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S30)
+            {
+                Name (_SUN, 0x06)  // _SUN: Slot User Number
+                Name (_ADR, 0x00060000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S38)
+            {
+                Name (_SUN, 0x07)  // _SUN: Slot User Number
+                Name (_ADR, 0x00070000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S40)
+            {
+                Name (_SUN, 0x08)  // _SUN: Slot User Number
+                Name (_ADR, 0x00080000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S48)
+            {
+                Name (_SUN, 0x09)  // _SUN: Slot User Number
+                Name (_ADR, 0x00090000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S50)
+            {
+                Name (_SUN, 0x0A)  // _SUN: Slot User Number
+                Name (_ADR, 0x000A0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S58)
+            {
+                Name (_SUN, 0x0B)  // _SUN: Slot User Number
+                Name (_ADR, 0x000B0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S60)
+            {
+                Name (_SUN, 0x0C)  // _SUN: Slot User Number
+                Name (_ADR, 0x000C0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S68)
+            {
+                Name (_SUN, 0x0D)  // _SUN: Slot User Number
+                Name (_ADR, 0x000D0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S70)
+            {
+                Name (_SUN, 0x0E)  // _SUN: Slot User Number
+                Name (_ADR, 0x000E0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S78)
+            {
+                Name (_SUN, 0x0F)  // _SUN: Slot User Number
+                Name (_ADR, 0x000F0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S80)
+            {
+                Name (_SUN, 0x10)  // _SUN: Slot User Number
+                Name (_ADR, 0x00100000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S88)
+            {
+                Name (_SUN, 0x11)  // _SUN: Slot User Number
+                Name (_ADR, 0x00110000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S90)
+            {
+                Name (_SUN, 0x12)  // _SUN: Slot User Number
+                Name (_ADR, 0x00120000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S98)
+            {
+                Name (_SUN, 0x13)  // _SUN: Slot User Number
+                Name (_ADR, 0x00130000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SA0)
+            {
+                Name (_SUN, 0x14)  // _SUN: Slot User Number
+                Name (_ADR, 0x00140000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SA8)
+            {
+                Name (_SUN, 0x15)  // _SUN: Slot User Number
+                Name (_ADR, 0x00150000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SB0)
+            {
+                Name (_SUN, 0x16)  // _SUN: Slot User Number
+                Name (_ADR, 0x00160000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SB8)
+            {
+                Name (_SUN, 0x17)  // _SUN: Slot User Number
+                Name (_ADR, 0x00170000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SC0)
+            {
+                Name (_SUN, 0x18)  // _SUN: Slot User Number
+                Name (_ADR, 0x00180000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SC8)
+            {
+                Name (_SUN, 0x19)  // _SUN: Slot User Number
+                Name (_ADR, 0x00190000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SD0)
+            {
+                Name (_SUN, 0x1A)  // _SUN: Slot User Number
+                Name (_ADR, 0x001A0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SD8)
+            {
+                Name (_SUN, 0x1B)  // _SUN: Slot User Number
+                Name (_ADR, 0x001B0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SE0)
+            {
+                Name (_SUN, 0x1C)  // _SUN: Slot User Number
+                Name (_ADR, 0x001C0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SE8)
+            {
+                Name (_SUN, 0x1D)  // _SUN: Slot User Number
+                Name (_ADR, 0x001D0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SF0)
+            {
+                Name (_SUN, 0x1E)  // _SUN: Slot User Number
+                Name (_ADR, 0x001E0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SF8)
+            {
+                Name (_SUN, 0x1F)  // _SUN: Slot User Number
+                Name (_ADR, 0x001F0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Method (DVNT, 2, NotSerialized)
+            {
+                If ((Arg0 & 0x10))
+                {
+                    Notify (S20, Arg1)
+                }
+
+                If ((Arg0 & 0x20))
+                {
+                    Notify (S28, Arg1)
+                }
+
+                If ((Arg0 & 0x40))
+                {
+                    Notify (S30, Arg1)
+                }
+
+                If ((Arg0 & 0x80))
+                {
+                    Notify (S38, Arg1)
+                }
+
+                If ((Arg0 & 0x0100))
+                {
+                    Notify (S40, Arg1)
+                }
+
+                If ((Arg0 & 0x0200))
+                {
+                    Notify (S48, Arg1)
+                }
+
+                If ((Arg0 & 0x0400))
+                {
+                    Notify (S50, Arg1)
+                }
+
+                If ((Arg0 & 0x0800))
+                {
+                    Notify (S58, Arg1)
+                }
+
+                If ((Arg0 & 0x1000))
+                {
+                    Notify (S60, Arg1)
+                }
+
+                If ((Arg0 & 0x2000))
+                {
+                    Notify (S68, Arg1)
+                }
+
+                If ((Arg0 & 0x4000))
+                {
+                    Notify (S70, Arg1)
+                }
+
+                If ((Arg0 & 0x8000))
+                {
+                    Notify (S78, Arg1)
+                }
+
+                If ((Arg0 & 0x00010000))
+                {
+                    Notify (S80, Arg1)
+                }
+
+                If ((Arg0 & 0x00020000))
+                {
+                    Notify (S88, Arg1)
+                }
+
+                If ((Arg0 & 0x00040000))
+                {
+                    Notify (S90, Arg1)
+                }
+
+                If ((Arg0 & 0x00080000))
+                {
+                    Notify (S98, Arg1)
+                }
+
+                If ((Arg0 & 0x00100000))
+                {
+                    Notify (SA0, Arg1)
+                }
+
+                If ((Arg0 & 0x00200000))
+                {
+                    Notify (SA8, Arg1)
+                }
+
+                If ((Arg0 & 0x00400000))
+                {
+                    Notify (SB0, Arg1)
+                }
+
+                If ((Arg0 & 0x00800000))
+                {
+                    Notify (SB8, Arg1)
+                }
+
+                If ((Arg0 & 0x01000000))
+                {
+                    Notify (SC0, Arg1)
+                }
+
+                If ((Arg0 & 0x02000000))
+                {
+                    Notify (SC8, Arg1)
+                }
+
+                If ((Arg0 & 0x04000000))
+                {
+                    Notify (SD0, Arg1)
+                }
+
+                If ((Arg0 & 0x08000000))
+                {
+                    Notify (SD8, Arg1)
+                }
+
+                If ((Arg0 & 0x10000000))
+                {
+                    Notify (SE0, Arg1)
+                }
+
+                If ((Arg0 & 0x20000000))
+                {
+                    Notify (SE8, Arg1)
+                }
+
+                If ((Arg0 & 0x40000000))
+                {
+                    Notify (SF0, Arg1)
+                }
+
+                If ((Arg0 & 0x80000000))
+                {
+                    Notify (SF8, Arg1)
+                }
+            }
+
+            Method (PCNT, 0, NotSerialized)
+            {
+                BNUM = Zero
+                DVNT (PCIU, One)
+                DVNT (PCID, 0x03)
+                ^S18.PCNT ()
+            }
+        }
+    }
+}
+
diff --git a/tests/data/acpi/pc/DSDT.cphp.dsl b/tests/data/acpi/pc/DSDT.cphp.dsl
new file mode 100644
index 0000000000..22ed37d7dc
--- /dev/null
+++ b/tests/data/acpi/pc/DSDT.cphp.dsl
@@ -0,0 +1,1466 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembling to symbolic ASL+ operators
+ *
+ * Disassembly of tests/data/acpi/pc/DSDT.cphp, Tue Aug  4 11:14:15 2020
+ *
+ * Original Table Header:
+ *     Signature        "DSDT"
+ *     Length           0x00001515 (5397)
+ *     Revision         0x01 **** 32-bit table (V1), no 64-bit math support
+ *     Checksum         0x39
+ *     OEM ID           "BOCHS "
+ *     OEM Table ID     "BXPCDSDT"
+ *     OEM Revision     0x00000001 (1)
+ *     Compiler ID      "BXPC"
+ *     Compiler Version 0x00000001 (1)
+ */
+DefinitionBlock ("", "DSDT", 1, "BOCHS ", "BXPCDSDT", 0x00000001)
+{
+    Scope (\)
+    {
+        OperationRegion (DBG, SystemIO, 0x0402, One)
+        Field (DBG, ByteAcc, NoLock, Preserve)
+        {
+            DBGB,   8
+        }
+
+        Method (DBUG, 1, NotSerialized)
+        {
+            ToHexString (Arg0, Local0)
+            ToBuffer (Local0, Local0)
+            Local1 = (SizeOf (Local0) - One)
+            Local2 = Zero
+            While ((Local2 < Local1))
+            {
+                DBGB = DerefOf (Local0 [Local2])
+                Local2++
+            }
+
+            DBGB = 0x0A
+        }
+    }
+
+    Scope (_SB)
+    {
+        Device (PCI0)
+        {
+            Name (_HID, EisaId ("PNP0A03") /* PCI Bus */)  // _HID: Hardware ID
+            Name (_ADR, Zero)  // _ADR: Address
+            Name (_UID, Zero)  // _UID: Unique ID
+        }
+    }
+
+    Scope (_SB)
+    {
+        Device (HPET)
+        {
+            Name (_HID, EisaId ("PNP0103") /* HPET System Timer */)  // _HID: Hardware ID
+            Name (_UID, Zero)  // _UID: Unique ID
+            OperationRegion (HPTM, SystemMemory, 0xFED00000, 0x0400)
+            Field (HPTM, DWordAcc, Lock, Preserve)
+            {
+                VEND,   32, 
+                PRD,    32
+            }
+
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Local0 = VEND /* \_SB_.HPET.VEND */
+                Local1 = PRD /* \_SB_.HPET.PRD_ */
+                Local0 >>= 0x10
+                If (((Local0 == Zero) || (Local0 == 0xFFFF)))
+                {
+                    Return (Zero)
+                }
+
+                If (((Local1 == Zero) || (Local1 > 0x05F5E100)))
+                {
+                    Return (Zero)
+                }
+
+                Return (0x0F)
+            }
+
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadOnly,
+                    0xFED00000,         // Address Base
+                    0x00000400,         // Address Length
+                    )
+            })
+        }
+    }
+
+    Scope (_SB.PCI0)
+    {
+        Device (ISA)
+        {
+            Name (_ADR, 0x00010000)  // _ADR: Address
+            OperationRegion (P40C, PCI_Config, 0x60, 0x04)
+        }
+    }
+
+    Scope (_SB.PCI0.ISA)
+    {
+        Device (KBD)
+        {
+            Name (_HID, EisaId ("PNP0303") /* IBM Enhanced Keyboard (101/102-key, PS/2 Mouse) */)  // _HID: Hardware ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0060,             // Range Minimum
+                    0x0060,             // Range Maximum
+                    0x01,               // Alignment
+                    0x01,               // Length
+                    )
+                IO (Decode16,
+                    0x0064,             // Range Minimum
+                    0x0064,             // Range Maximum
+                    0x01,               // Alignment
+                    0x01,               // Length
+                    )
+                IRQNoFlags ()
+                    {1}
+            })
+        }
+
+        Device (MOU)
+        {
+            Name (_HID, EisaId ("PNP0F13") /* PS/2 Mouse */)  // _HID: Hardware ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IRQNoFlags ()
+                    {12}
+            })
+        }
+
+        Device (FDC0)
+        {
+            Name (_HID, EisaId ("PNP0700"))  // _HID: Hardware ID
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x03F2,             // Range Minimum
+                    0x03F2,             // Range Maximum
+                    0x00,               // Alignment
+                    0x04,               // Length
+                    )
+                IO (Decode16,
+                    0x03F7,             // Range Minimum
+                    0x03F7,             // Range Maximum
+                    0x00,               // Alignment
+                    0x01,               // Length
+                    )
+                IRQNoFlags ()
+                    {6}
+                DMA (Compatibility, NotBusMaster, Transfer8, )
+                    {2}
+            })
+            Device (FLPA)
+            {
+                Name (_ADR, Zero)  // _ADR: Address
+                Name (_FDI, Package (0x10)  // _FDI: Floppy Drive Information
+                {
+                    Zero, 
+                    0x05, 
+                    0x4F, 
+                    0x30, 
+                    One, 
+                    0xAF, 
+                    0x02, 
+                    0x25, 
+                    0x02, 
+                    0x12, 
+                    0x1B, 
+                    0xFF, 
+                    0x6C, 
+                    0xF6, 
+                    0x0F, 
+                    0x08
+                })
+            }
+
+            Name (_FDE, Buffer (0x14)  // _FDE: Floppy Disk Enumerate
+            {
+                /* 0000 */  0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
+                /* 0008 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
+                /* 0010 */  0x02, 0x00, 0x00, 0x00                           // ....
+            })
+        }
+
+        Device (LPT1)
+        {
+            Name (_HID, EisaId ("PNP0400") /* Standard LPT Parallel Port */)  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0378,             // Range Minimum
+                    0x0378,             // Range Maximum
+                    0x08,               // Alignment
+                    0x08,               // Length
+                    )
+                IRQNoFlags ()
+                    {7}
+            })
+        }
+
+        Device (COM1)
+        {
+            Name (_HID, EisaId ("PNP0501") /* 16550A-compatible COM Serial Port */)  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x03F8,             // Range Minimum
+                    0x03F8,             // Range Maximum
+                    0x00,               // Alignment
+                    0x08,               // Length
+                    )
+                IRQNoFlags ()
+                    {4}
+            })
+        }
+
+        Device (RTC)
+        {
+            Name (_HID, EisaId ("PNP0B00") /* AT Real-Time Clock */)  // _HID: Hardware ID
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0070,             // Range Minimum
+                    0x0070,             // Range Maximum
+                    0x01,               // Alignment
+                    0x08,               // Length
+                    )
+                IRQNoFlags ()
+                    {8}
+            })
+        }
+    }
+
+    Scope (_SB.PCI0)
+    {
+        OperationRegion (PCST, SystemIO, 0xAE00, 0x08)
+        Field (PCST, DWordAcc, NoLock, WriteAsZeros)
+        {
+            PCIU,   32, 
+            PCID,   32
+        }
+
+        OperationRegion (SEJ, SystemIO, 0xAE08, 0x04)
+        Field (SEJ, DWordAcc, NoLock, WriteAsZeros)
+        {
+            B0EJ,   32
+        }
+
+        OperationRegion (BNMR, SystemIO, 0xAE10, 0x04)
+        Field (BNMR, DWordAcc, NoLock, WriteAsZeros)
+        {
+            BNUM,   32
+        }
+
+        Mutex (BLCK, 0x00)
+        Method (PCEJ, 2, NotSerialized)
+        {
+            Acquire (BLCK, 0xFFFF)
+            BNUM = Arg0
+            B0EJ = (One << Arg1)
+            Release (BLCK)
+            Return (Zero)
+        }
+    }
+
+    Scope (_SB)
+    {
+        Scope (PCI0)
+        {
+            Method (_PRT, 0, NotSerialized)  // _PRT: PCI Routing Table
+            {
+                Local0 = Package (0x80){}
+                Local1 = Zero
+                While ((Local1 < 0x80))
+                {
+                    Local2 = (Local1 >> 0x02)
+                    Local3 = ((Local1 + Local2) & 0x03)
+                    If ((Local3 == Zero))
+                    {
+                        Local4 = Package (0x04)
+                            {
+                                Zero, 
+                                Zero, 
+                                LNKD, 
+                                Zero
+                            }
+                    }
+
+                    If ((Local3 == One))
+                    {
+                        If ((Local1 == 0x04))
+                        {
+                            Local4 = Package (0x04)
+                                {
+                                    Zero, 
+                                    Zero, 
+                                    LNKS, 
+                                    Zero
+                                }
+                        }
+                        Else
+                        {
+                            Local4 = Package (0x04)
+                                {
+                                    Zero, 
+                                    Zero, 
+                                    LNKA, 
+                                    Zero
+                                }
+                        }
+                    }
+
+                    If ((Local3 == 0x02))
+                    {
+                        Local4 = Package (0x04)
+                            {
+                                Zero, 
+                                Zero, 
+                                LNKB, 
+                                Zero
+                            }
+                    }
+
+                    If ((Local3 == 0x03))
+                    {
+                        Local4 = Package (0x04)
+                            {
+                                Zero, 
+                                Zero, 
+                                LNKC, 
+                                Zero
+                            }
+                    }
+
+                    Local4 [Zero] = ((Local2 << 0x10) | 0xFFFF)
+                    Local4 [One] = (Local1 & 0x03)
+                    Local0 [Local1] = Local4
+                    Local1++
+                }
+
+                Return (Local0)
+            }
+        }
+
+        Field (PCI0.ISA.P40C, ByteAcc, NoLock, Preserve)
+        {
+            PRQ0,   8, 
+            PRQ1,   8, 
+            PRQ2,   8, 
+            PRQ3,   8
+        }
+
+        Method (IQST, 1, NotSerialized)
+        {
+            If ((0x80 & Arg0))
+            {
+                Return (0x09)
+            }
+
+            Return (0x0B)
+        }
+
+        Method (IQCR, 1, Serialized)
+        {
+            Name (PRR0, ResourceTemplate ()
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, _Y00)
+                {
+                    0x00000000,
+                }
+            })
+            CreateDWordField (PRR0, \_SB.IQCR._Y00._INT, PRRI)  // _INT: Interrupts
+            If ((Arg0 < 0x80))
+            {
+                PRRI = Arg0
+            }
+
+            Return (PRR0) /* \_SB_.IQCR.PRR0 */
+        }
+
+        Device (LNKA)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, Zero)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQ0))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQ0 |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQ0))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQ0 = PRRI /* \_SB_.LNKA._SRS.PRRI */
+            }
+        }
+
+        Device (LNKB)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQ1))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQ1 |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQ1))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQ1 = PRRI /* \_SB_.LNKB._SRS.PRRI */
+            }
+        }
+
+        Device (LNKC)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x02)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQ2))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQ2 |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQ2))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQ2 = PRRI /* \_SB_.LNKC._SRS.PRRI */
+            }
+        }
+
+        Device (LNKD)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x03)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQ3))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQ3 |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQ3))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQ3 = PRRI /* \_SB_.LNKD._SRS.PRRI */
+            }
+        }
+
+        Device (LNKS)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x04)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000009,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (0x0B)
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (_PRS) /* \_SB_.LNKS._PRS */
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+    }
+
+    Scope (_SB)
+    {
+        Device (\_SB.PCI0.PRES)
+        {
+            Name (_HID, EisaId ("PNP0A06") /* Generic Container Device */)  // _HID: Hardware ID
+            Name (_UID, "CPU Hotplug resources")  // _UID: Unique ID
+            Mutex (CPLK, 0x00)
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0xAF00,             // Range Minimum
+                    0xAF00,             // Range Maximum
+                    0x01,               // Alignment
+                    0x0C,               // Length
+                    )
+            })
+            OperationRegion (PRST, SystemIO, 0xAF00, 0x0C)
+            Field (PRST, ByteAcc, NoLock, WriteAsZeros)
+            {
+                Offset (0x04), 
+                CPEN,   1, 
+                CINS,   1, 
+                CRMV,   1, 
+                CEJ0,   1, 
+                Offset (0x05), 
+                CCMD,   8
+            }
+
+            Field (PRST, DWordAcc, NoLock, Preserve)
+            {
+                CSEL,   32, 
+                Offset (0x08), 
+                CDAT,   32
+            }
+
+            Method (_INI, 0, Serialized)  // _INI: Initialize
+            {
+                CSEL = Zero
+            }
+        }
+
+        Device (\_SB.CPUS)
+        {
+            Name (_HID, "ACPI0010" /* Processor Container Device */)  // _HID: Hardware ID
+            Name (_CID, EisaId ("PNP0A05") /* Generic Container Device */)  // _CID: Compatible ID
+            Method (CTFY, 2, NotSerialized)
+            {
+                If ((Arg0 == Zero))
+                {
+                    Notify (C000, Arg1)
+                }
+
+                If ((Arg0 == One))
+                {
+                    Notify (C001, Arg1)
+                }
+
+                If ((Arg0 == 0x02))
+                {
+                    Notify (C002, Arg1)
+                }
+
+                If ((Arg0 == 0x03))
+                {
+                    Notify (C003, Arg1)
+                }
+
+                If ((Arg0 == 0x04))
+                {
+                    Notify (C004, Arg1)
+                }
+
+                If ((Arg0 == 0x05))
+                {
+                    Notify (C005, Arg1)
+                }
+            }
+
+            Method (CSTA, 1, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                \_SB.PCI0.PRES.CSEL = Arg0
+                Local0 = Zero
+                If ((\_SB.PCI0.PRES.CPEN == One))
+                {
+                    Local0 = 0x0F
+                }
+
+                Release (\_SB.PCI0.PRES.CPLK)
+                Return (Local0)
+            }
+
+            Method (CEJ0, 1, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                \_SB.PCI0.PRES.CSEL = Arg0
+                \_SB.PCI0.PRES.CEJ0 = One
+                Release (\_SB.PCI0.PRES.CPLK)
+            }
+
+            Method (CSCN, 0, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                Local0 = One
+                While ((Local0 == One))
+                {
+                    Local0 = Zero
+                    \_SB.PCI0.PRES.CCMD = Zero
+                    If ((\_SB.PCI0.PRES.CINS == One))
+                    {
+                        CTFY (\_SB.PCI0.PRES.CDAT, One)
+                        \_SB.PCI0.PRES.CINS = One
+                        Local0 = One
+                    }
+                    ElseIf ((\_SB.PCI0.PRES.CRMV == One))
+                    {
+                        CTFY (\_SB.PCI0.PRES.CDAT, 0x03)
+                        \_SB.PCI0.PRES.CRMV = One
+                        Local0 = One
+                    }
+                }
+
+                Release (\_SB.PCI0.PRES.CPLK)
+            }
+
+            Method (COST, 4, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                \_SB.PCI0.PRES.CSEL = Arg0
+                \_SB.PCI0.PRES.CCMD = One
+                \_SB.PCI0.PRES.CDAT = Arg1
+                \_SB.PCI0.PRES.CCMD = 0x02
+                \_SB.PCI0.PRES.CDAT = Arg2
+                Release (\_SB.PCI0.PRES.CPLK)
+            }
+
+            Processor (C000, 0x00, 0x00000000, 0x00)
+            {
+                Method (_STA, 0, Serialized)  // _STA: Status
+                {
+                    Return (CSTA (Zero))
+                }
+
+                Name (_MAT, Buffer (0x08)  // _MAT: Multiple APIC Table Entry
+                {
+                     0x00, 0x08, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00   // ........
+                })
+                Method (_OST, 3, Serialized)  // _OST: OSPM Status Indication
+                {
+                    COST (Zero, Arg0, Arg1, Arg2)
+                }
+
+                Name (_PXM, Zero)  // _PXM: Device Proximity
+            }
+
+            Processor (C001, 0x01, 0x00000000, 0x00)
+            {
+                Method (_STA, 0, Serialized)  // _STA: Status
+                {
+                    Return (CSTA (One))
+                }
+
+                Name (_MAT, Buffer (0x08)  // _MAT: Multiple APIC Table Entry
+                {
+                     0x00, 0x08, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00   // ........
+                })
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    CEJ0 (One)
+                }
+
+                Method (_OST, 3, Serialized)  // _OST: OSPM Status Indication
+                {
+                    COST (One, Arg0, Arg1, Arg2)
+                }
+
+                Name (_PXM, Zero)  // _PXM: Device Proximity
+            }
+
+            Processor (C002, 0x02, 0x00000000, 0x00)
+            {
+                Method (_STA, 0, Serialized)  // _STA: Status
+                {
+                    Return (CSTA (0x02))
+                }
+
+                Name (_MAT, Buffer (0x08)  // _MAT: Multiple APIC Table Entry
+                {
+                     0x00, 0x08, 0x02, 0x02, 0x01, 0x00, 0x00, 0x00   // ........
+                })
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    CEJ0 (0x02)
+                }
+
+                Method (_OST, 3, Serialized)  // _OST: OSPM Status Indication
+                {
+                    COST (0x02, Arg0, Arg1, Arg2)
+                }
+
+                Name (_PXM, Zero)  // _PXM: Device Proximity
+            }
+
+            Processor (C003, 0x03, 0x00000000, 0x00)
+            {
+                Method (_STA, 0, Serialized)  // _STA: Status
+                {
+                    Return (CSTA (0x03))
+                }
+
+                Name (_MAT, Buffer (0x08)  // _MAT: Multiple APIC Table Entry
+                {
+                     0x00, 0x08, 0x03, 0x04, 0x01, 0x00, 0x00, 0x00   // ........
+                })
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    CEJ0 (0x03)
+                }
+
+                Method (_OST, 3, Serialized)  // _OST: OSPM Status Indication
+                {
+                    COST (0x03, Arg0, Arg1, Arg2)
+                }
+
+                Name (_PXM, One)  // _PXM: Device Proximity
+            }
+
+            Processor (C004, 0x04, 0x00000000, 0x00)
+            {
+                Method (_STA, 0, Serialized)  // _STA: Status
+                {
+                    Return (CSTA (0x04))
+                }
+
+                Name (_MAT, Buffer (0x08)  // _MAT: Multiple APIC Table Entry
+                {
+                     0x00, 0x08, 0x04, 0x05, 0x01, 0x00, 0x00, 0x00   // ........
+                })
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    CEJ0 (0x04)
+                }
+
+                Method (_OST, 3, Serialized)  // _OST: OSPM Status Indication
+                {
+                    COST (0x04, Arg0, Arg1, Arg2)
+                }
+
+                Name (_PXM, One)  // _PXM: Device Proximity
+            }
+
+            Processor (C005, 0x05, 0x00000000, 0x00)
+            {
+                Method (_STA, 0, Serialized)  // _STA: Status
+                {
+                    Return (CSTA (0x05))
+                }
+
+                Name (_MAT, Buffer (0x08)  // _MAT: Multiple APIC Table Entry
+                {
+                     0x00, 0x08, 0x05, 0x06, 0x01, 0x00, 0x00, 0x00   // ........
+                })
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    CEJ0 (0x05)
+                }
+
+                Method (_OST, 3, Serialized)  // _OST: OSPM Status Indication
+                {
+                    COST (0x05, Arg0, Arg1, Arg2)
+                }
+
+                Name (_PXM, One)  // _PXM: Device Proximity
+            }
+        }
+    }
+
+    Method (\_GPE._E02, 0, NotSerialized)  // _Exx: Edge-Triggered GPE, xx=0x00-0xFF
+    {
+        \_SB.CPUS.CSCN ()
+    }
+
+    Scope (_GPE)
+    {
+        Name (_HID, "ACPI0006" /* GPE Block Device */)  // _HID: Hardware ID
+        Method (_E01, 0, NotSerialized)  // _Exx: Edge-Triggered GPE, xx=0x00-0xFF
+        {
+            Acquire (\_SB.PCI0.BLCK, 0xFFFF)
+            \_SB.PCI0.PCNT ()
+            Release (\_SB.PCI0.BLCK)
+        }
+    }
+
+    Scope (\_SB.PCI0)
+    {
+        Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+        {
+            WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
+                0x0000,             // Granularity
+                0x0000,             // Range Minimum
+                0x00FF,             // Range Maximum
+                0x0000,             // Translation Offset
+                0x0100,             // Length
+                ,, )
+            IO (Decode16,
+                0x0CF8,             // Range Minimum
+                0x0CF8,             // Range Maximum
+                0x01,               // Alignment
+                0x08,               // Length
+                )
+            WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
+                0x0000,             // Granularity
+                0x0000,             // Range Minimum
+                0x0CF7,             // Range Maximum
+                0x0000,             // Translation Offset
+                0x0CF8,             // Length
+                ,, , TypeStatic, DenseTranslation)
+            WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
+                0x0000,             // Granularity
+                0x0D00,             // Range Minimum
+                0xFFFF,             // Range Maximum
+                0x0000,             // Translation Offset
+                0xF300,             // Length
+                ,, , TypeStatic, DenseTranslation)
+            DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
+                0x00000000,         // Granularity
+                0x000A0000,         // Range Minimum
+                0x000BFFFF,         // Range Maximum
+                0x00000000,         // Translation Offset
+                0x00020000,         // Length
+                ,, , AddressRangeMemory, TypeStatic)
+            DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
+                0x00000000,         // Granularity
+                0x08000000,         // Range Minimum
+                0xFEBFFFFF,         // Range Maximum
+                0x00000000,         // Translation Offset
+                0xF6C00000,         // Length
+                ,, , AddressRangeMemory, TypeStatic)
+            QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
+                0x0000000000000000, // Granularity
+                0x0000000100000000, // Range Minimum
+                0x000000017FFFFFFF, // Range Maximum
+                0x0000000000000000, // Translation Offset
+                0x0000000080000000, // Length
+                ,, , AddressRangeMemory, TypeStatic)
+        })
+        Device (GPE0)
+        {
+            Name (_HID, "PNP0A06" /* Generic Container Device */)  // _HID: Hardware ID
+            Name (_UID, "GPE0 resources")  // _UID: Unique ID
+            Name (_STA, 0x0B)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0xAFE0,             // Range Minimum
+                    0xAFE0,             // Range Maximum
+                    0x01,               // Alignment
+                    0x04,               // Length
+                    )
+            })
+        }
+
+        Device (PHPR)
+        {
+            Name (_HID, "PNP0A06" /* Generic Container Device */)  // _HID: Hardware ID
+            Name (_UID, "PCI Hotplug resources")  // _UID: Unique ID
+            Name (_STA, 0x0B)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0xAE00,             // Range Minimum
+                    0xAE00,             // Range Maximum
+                    0x01,               // Alignment
+                    0x14,               // Length
+                    )
+            })
+        }
+    }
+
+    Scope (\)
+    {
+        Name (_S3, Package (0x04)  // _S3_: S3 System State
+        {
+            One, 
+            One, 
+            Zero, 
+            Zero
+        })
+        Name (_S4, Package (0x04)  // _S4_: S4 System State
+        {
+            0x02, 
+            0x02, 
+            Zero, 
+            Zero
+        })
+        Name (_S5, Package (0x04)  // _S5_: S5 System State
+        {
+            Zero, 
+            Zero, 
+            Zero, 
+            Zero
+        })
+    }
+
+    Scope (\_SB.PCI0)
+    {
+        Device (FWCF)
+        {
+            Name (_HID, "QEMU0002")  // _HID: Hardware ID
+            Name (_STA, 0x0B)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0510,             // Range Minimum
+                    0x0510,             // Range Maximum
+                    0x01,               // Alignment
+                    0x0C,               // Length
+                    )
+            })
+        }
+    }
+
+    Scope (\_SB)
+    {
+        Scope (PCI0)
+        {
+            Name (BSEL, Zero)
+            Device (S00)
+            {
+                Name (_ADR, Zero)  // _ADR: Address
+            }
+
+            Device (S10)
+            {
+                Name (_ADR, 0x00020000)  // _ADR: Address
+                Method (_S1D, 0, NotSerialized)  // _S1D: S1 Device State
+                {
+                    Return (Zero)
+                }
+
+                Method (_S2D, 0, NotSerialized)  // _S2D: S2 Device State
+                {
+                    Return (Zero)
+                }
+
+                Method (_S3D, 0, NotSerialized)  // _S3D: S3 Device State
+                {
+                    Return (Zero)
+                }
+            }
+
+            Device (S18)
+            {
+                Name (_SUN, 0x03)  // _SUN: Slot User Number
+                Name (_ADR, 0x00030000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S20)
+            {
+                Name (_SUN, 0x04)  // _SUN: Slot User Number
+                Name (_ADR, 0x00040000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S28)
+            {
+                Name (_SUN, 0x05)  // _SUN: Slot User Number
+                Name (_ADR, 0x00050000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S30)
+            {
+                Name (_SUN, 0x06)  // _SUN: Slot User Number
+                Name (_ADR, 0x00060000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S38)
+            {
+                Name (_SUN, 0x07)  // _SUN: Slot User Number
+                Name (_ADR, 0x00070000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S40)
+            {
+                Name (_SUN, 0x08)  // _SUN: Slot User Number
+                Name (_ADR, 0x00080000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S48)
+            {
+                Name (_SUN, 0x09)  // _SUN: Slot User Number
+                Name (_ADR, 0x00090000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S50)
+            {
+                Name (_SUN, 0x0A)  // _SUN: Slot User Number
+                Name (_ADR, 0x000A0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S58)
+            {
+                Name (_SUN, 0x0B)  // _SUN: Slot User Number
+                Name (_ADR, 0x000B0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S60)
+            {
+                Name (_SUN, 0x0C)  // _SUN: Slot User Number
+                Name (_ADR, 0x000C0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S68)
+            {
+                Name (_SUN, 0x0D)  // _SUN: Slot User Number
+                Name (_ADR, 0x000D0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S70)
+            {
+                Name (_SUN, 0x0E)  // _SUN: Slot User Number
+                Name (_ADR, 0x000E0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S78)
+            {
+                Name (_SUN, 0x0F)  // _SUN: Slot User Number
+                Name (_ADR, 0x000F0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S80)
+            {
+                Name (_SUN, 0x10)  // _SUN: Slot User Number
+                Name (_ADR, 0x00100000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S88)
+            {
+                Name (_SUN, 0x11)  // _SUN: Slot User Number
+                Name (_ADR, 0x00110000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S90)
+            {
+                Name (_SUN, 0x12)  // _SUN: Slot User Number
+                Name (_ADR, 0x00120000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S98)
+            {
+                Name (_SUN, 0x13)  // _SUN: Slot User Number
+                Name (_ADR, 0x00130000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SA0)
+            {
+                Name (_SUN, 0x14)  // _SUN: Slot User Number
+                Name (_ADR, 0x00140000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SA8)
+            {
+                Name (_SUN, 0x15)  // _SUN: Slot User Number
+                Name (_ADR, 0x00150000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SB0)
+            {
+                Name (_SUN, 0x16)  // _SUN: Slot User Number
+                Name (_ADR, 0x00160000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SB8)
+            {
+                Name (_SUN, 0x17)  // _SUN: Slot User Number
+                Name (_ADR, 0x00170000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SC0)
+            {
+                Name (_SUN, 0x18)  // _SUN: Slot User Number
+                Name (_ADR, 0x00180000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SC8)
+            {
+                Name (_SUN, 0x19)  // _SUN: Slot User Number
+                Name (_ADR, 0x00190000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SD0)
+            {
+                Name (_SUN, 0x1A)  // _SUN: Slot User Number
+                Name (_ADR, 0x001A0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SD8)
+            {
+                Name (_SUN, 0x1B)  // _SUN: Slot User Number
+                Name (_ADR, 0x001B0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SE0)
+            {
+                Name (_SUN, 0x1C)  // _SUN: Slot User Number
+                Name (_ADR, 0x001C0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SE8)
+            {
+                Name (_SUN, 0x1D)  // _SUN: Slot User Number
+                Name (_ADR, 0x001D0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SF0)
+            {
+                Name (_SUN, 0x1E)  // _SUN: Slot User Number
+                Name (_ADR, 0x001E0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SF8)
+            {
+                Name (_SUN, 0x1F)  // _SUN: Slot User Number
+                Name (_ADR, 0x001F0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Method (DVNT, 2, NotSerialized)
+            {
+                If ((Arg0 & 0x08))
+                {
+                    Notify (S18, Arg1)
+                }
+
+                If ((Arg0 & 0x10))
+                {
+                    Notify (S20, Arg1)
+                }
+
+                If ((Arg0 & 0x20))
+                {
+                    Notify (S28, Arg1)
+                }
+
+                If ((Arg0 & 0x40))
+                {
+                    Notify (S30, Arg1)
+                }
+
+                If ((Arg0 & 0x80))
+                {
+                    Notify (S38, Arg1)
+                }
+
+                If ((Arg0 & 0x0100))
+                {
+                    Notify (S40, Arg1)
+                }
+
+                If ((Arg0 & 0x0200))
+                {
+                    Notify (S48, Arg1)
+                }
+
+                If ((Arg0 & 0x0400))
+                {
+                    Notify (S50, Arg1)
+                }
+
+                If ((Arg0 & 0x0800))
+                {
+                    Notify (S58, Arg1)
+                }
+
+                If ((Arg0 & 0x1000))
+                {
+                    Notify (S60, Arg1)
+                }
+
+                If ((Arg0 & 0x2000))
+                {
+                    Notify (S68, Arg1)
+                }
+
+                If ((Arg0 & 0x4000))
+                {
+                    Notify (S70, Arg1)
+                }
+
+                If ((Arg0 & 0x8000))
+                {
+                    Notify (S78, Arg1)
+                }
+
+                If ((Arg0 & 0x00010000))
+                {
+                    Notify (S80, Arg1)
+                }
+
+                If ((Arg0 & 0x00020000))
+                {
+                    Notify (S88, Arg1)
+                }
+
+                If ((Arg0 & 0x00040000))
+                {
+                    Notify (S90, Arg1)
+                }
+
+                If ((Arg0 & 0x00080000))
+                {
+                    Notify (S98, Arg1)
+                }
+
+                If ((Arg0 & 0x00100000))
+                {
+                    Notify (SA0, Arg1)
+                }
+
+                If ((Arg0 & 0x00200000))
+                {
+                    Notify (SA8, Arg1)
+                }
+
+                If ((Arg0 & 0x00400000))
+                {
+                    Notify (SB0, Arg1)
+                }
+
+                If ((Arg0 & 0x00800000))
+                {
+                    Notify (SB8, Arg1)
+                }
+
+                If ((Arg0 & 0x01000000))
+                {
+                    Notify (SC0, Arg1)
+                }
+
+                If ((Arg0 & 0x02000000))
+                {
+                    Notify (SC8, Arg1)
+                }
+
+                If ((Arg0 & 0x04000000))
+                {
+                    Notify (SD0, Arg1)
+                }
+
+                If ((Arg0 & 0x08000000))
+                {
+                    Notify (SD8, Arg1)
+                }
+
+                If ((Arg0 & 0x10000000))
+                {
+                    Notify (SE0, Arg1)
+                }
+
+                If ((Arg0 & 0x20000000))
+                {
+                    Notify (SE8, Arg1)
+                }
+
+                If ((Arg0 & 0x40000000))
+                {
+                    Notify (SF0, Arg1)
+                }
+
+                If ((Arg0 & 0x80000000))
+                {
+                    Notify (SF8, Arg1)
+                }
+            }
+
+            Method (PCNT, 0, NotSerialized)
+            {
+                BNUM = Zero
+                DVNT (PCIU, One)
+                DVNT (PCID, 0x03)
+            }
+        }
+    }
+}
+
diff --git a/tests/data/acpi/pc/DSDT.dimmpxm.dsl b/tests/data/acpi/pc/DSDT.dimmpxm.dsl
new file mode 100644
index 0000000000..798056147b
--- /dev/null
+++ b/tests/data/acpi/pc/DSDT.dimmpxm.dsl
@@ -0,0 +1,1719 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembling to symbolic ASL+ operators
+ *
+ * Disassembly of tests/data/acpi/pc/DSDT.dimmpxm, Tue Aug  4 11:14:15 2020
+ *
+ * Original Table Header:
+ *     Signature        "DSDT"
+ *     Length           0x000019BB (6587)
+ *     Revision         0x01 **** 32-bit table (V1), no 64-bit math support
+ *     Checksum         0x21
+ *     OEM ID           "BOCHS "
+ *     OEM Table ID     "BXPCDSDT"
+ *     OEM Revision     0x00000001 (1)
+ *     Compiler ID      "BXPC"
+ *     Compiler Version 0x00000001 (1)
+ */
+DefinitionBlock ("", "DSDT", 1, "BOCHS ", "BXPCDSDT", 0x00000001)
+{
+    External (_SB_.NVDR, UnknownObj)
+
+    Scope (\)
+    {
+        OperationRegion (DBG, SystemIO, 0x0402, One)
+        Field (DBG, ByteAcc, NoLock, Preserve)
+        {
+            DBGB,   8
+        }
+
+        Method (DBUG, 1, NotSerialized)
+        {
+            ToHexString (Arg0, Local0)
+            ToBuffer (Local0, Local0)
+            Local1 = (SizeOf (Local0) - One)
+            Local2 = Zero
+            While ((Local2 < Local1))
+            {
+                DBGB = DerefOf (Local0 [Local2])
+                Local2++
+            }
+
+            DBGB = 0x0A
+        }
+    }
+
+    Scope (_SB)
+    {
+        Device (PCI0)
+        {
+            Name (_HID, EisaId ("PNP0A03") /* PCI Bus */)  // _HID: Hardware ID
+            Name (_ADR, Zero)  // _ADR: Address
+            Name (_UID, Zero)  // _UID: Unique ID
+        }
+    }
+
+    Scope (_SB)
+    {
+        Device (HPET)
+        {
+            Name (_HID, EisaId ("PNP0103") /* HPET System Timer */)  // _HID: Hardware ID
+            Name (_UID, Zero)  // _UID: Unique ID
+            OperationRegion (HPTM, SystemMemory, 0xFED00000, 0x0400)
+            Field (HPTM, DWordAcc, Lock, Preserve)
+            {
+                VEND,   32, 
+                PRD,    32
+            }
+
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Local0 = VEND /* \_SB_.HPET.VEND */
+                Local1 = PRD /* \_SB_.HPET.PRD_ */
+                Local0 >>= 0x10
+                If (((Local0 == Zero) || (Local0 == 0xFFFF)))
+                {
+                    Return (Zero)
+                }
+
+                If (((Local1 == Zero) || (Local1 > 0x05F5E100)))
+                {
+                    Return (Zero)
+                }
+
+                Return (0x0F)
+            }
+
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadOnly,
+                    0xFED00000,         // Address Base
+                    0x00000400,         // Address Length
+                    )
+            })
+        }
+    }
+
+    Scope (_SB.PCI0)
+    {
+        Device (ISA)
+        {
+            Name (_ADR, 0x00010000)  // _ADR: Address
+            OperationRegion (P40C, PCI_Config, 0x60, 0x04)
+        }
+    }
+
+    Scope (_SB.PCI0.ISA)
+    {
+        Device (KBD)
+        {
+            Name (_HID, EisaId ("PNP0303") /* IBM Enhanced Keyboard (101/102-key, PS/2 Mouse) */)  // _HID: Hardware ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0060,             // Range Minimum
+                    0x0060,             // Range Maximum
+                    0x01,               // Alignment
+                    0x01,               // Length
+                    )
+                IO (Decode16,
+                    0x0064,             // Range Minimum
+                    0x0064,             // Range Maximum
+                    0x01,               // Alignment
+                    0x01,               // Length
+                    )
+                IRQNoFlags ()
+                    {1}
+            })
+        }
+
+        Device (MOU)
+        {
+            Name (_HID, EisaId ("PNP0F13") /* PS/2 Mouse */)  // _HID: Hardware ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IRQNoFlags ()
+                    {12}
+            })
+        }
+
+        Device (FDC0)
+        {
+            Name (_HID, EisaId ("PNP0700"))  // _HID: Hardware ID
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x03F2,             // Range Minimum
+                    0x03F2,             // Range Maximum
+                    0x00,               // Alignment
+                    0x04,               // Length
+                    )
+                IO (Decode16,
+                    0x03F7,             // Range Minimum
+                    0x03F7,             // Range Maximum
+                    0x00,               // Alignment
+                    0x01,               // Length
+                    )
+                IRQNoFlags ()
+                    {6}
+                DMA (Compatibility, NotBusMaster, Transfer8, )
+                    {2}
+            })
+            Device (FLPA)
+            {
+                Name (_ADR, Zero)  // _ADR: Address
+                Name (_FDI, Package (0x10)  // _FDI: Floppy Drive Information
+                {
+                    Zero, 
+                    0x05, 
+                    0x4F, 
+                    0x30, 
+                    One, 
+                    0xAF, 
+                    0x02, 
+                    0x25, 
+                    0x02, 
+                    0x12, 
+                    0x1B, 
+                    0xFF, 
+                    0x6C, 
+                    0xF6, 
+                    0x0F, 
+                    0x08
+                })
+            }
+
+            Name (_FDE, Buffer (0x14)  // _FDE: Floppy Disk Enumerate
+            {
+                /* 0000 */  0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
+                /* 0008 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
+                /* 0010 */  0x02, 0x00, 0x00, 0x00                           // ....
+            })
+        }
+
+        Device (LPT1)
+        {
+            Name (_HID, EisaId ("PNP0400") /* Standard LPT Parallel Port */)  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0378,             // Range Minimum
+                    0x0378,             // Range Maximum
+                    0x08,               // Alignment
+                    0x08,               // Length
+                    )
+                IRQNoFlags ()
+                    {7}
+            })
+        }
+
+        Device (COM1)
+        {
+            Name (_HID, EisaId ("PNP0501") /* 16550A-compatible COM Serial Port */)  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x03F8,             // Range Minimum
+                    0x03F8,             // Range Maximum
+                    0x00,               // Alignment
+                    0x08,               // Length
+                    )
+                IRQNoFlags ()
+                    {4}
+            })
+        }
+
+        Device (RTC)
+        {
+            Name (_HID, EisaId ("PNP0B00") /* AT Real-Time Clock */)  // _HID: Hardware ID
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0070,             // Range Minimum
+                    0x0070,             // Range Maximum
+                    0x01,               // Alignment
+                    0x08,               // Length
+                    )
+                IRQNoFlags ()
+                    {8}
+            })
+        }
+    }
+
+    Scope (_SB.PCI0)
+    {
+        OperationRegion (PCST, SystemIO, 0xAE00, 0x08)
+        Field (PCST, DWordAcc, NoLock, WriteAsZeros)
+        {
+            PCIU,   32, 
+            PCID,   32
+        }
+
+        OperationRegion (SEJ, SystemIO, 0xAE08, 0x04)
+        Field (SEJ, DWordAcc, NoLock, WriteAsZeros)
+        {
+            B0EJ,   32
+        }
+
+        OperationRegion (BNMR, SystemIO, 0xAE10, 0x04)
+        Field (BNMR, DWordAcc, NoLock, WriteAsZeros)
+        {
+            BNUM,   32
+        }
+
+        Mutex (BLCK, 0x00)
+        Method (PCEJ, 2, NotSerialized)
+        {
+            Acquire (BLCK, 0xFFFF)
+            BNUM = Arg0
+            B0EJ = (One << Arg1)
+            Release (BLCK)
+            Return (Zero)
+        }
+    }
+
+    Scope (_SB)
+    {
+        Scope (PCI0)
+        {
+            Method (_PRT, 0, NotSerialized)  // _PRT: PCI Routing Table
+            {
+                Local0 = Package (0x80){}
+                Local1 = Zero
+                While ((Local1 < 0x80))
+                {
+                    Local2 = (Local1 >> 0x02)
+                    Local3 = ((Local1 + Local2) & 0x03)
+                    If ((Local3 == Zero))
+                    {
+                        Local4 = Package (0x04)
+                            {
+                                Zero, 
+                                Zero, 
+                                LNKD, 
+                                Zero
+                            }
+                    }
+
+                    If ((Local3 == One))
+                    {
+                        If ((Local1 == 0x04))
+                        {
+                            Local4 = Package (0x04)
+                                {
+                                    Zero, 
+                                    Zero, 
+                                    LNKS, 
+                                    Zero
+                                }
+                        }
+                        Else
+                        {
+                            Local4 = Package (0x04)
+                                {
+                                    Zero, 
+                                    Zero, 
+                                    LNKA, 
+                                    Zero
+                                }
+                        }
+                    }
+
+                    If ((Local3 == 0x02))
+                    {
+                        Local4 = Package (0x04)
+                            {
+                                Zero, 
+                                Zero, 
+                                LNKB, 
+                                Zero
+                            }
+                    }
+
+                    If ((Local3 == 0x03))
+                    {
+                        Local4 = Package (0x04)
+                            {
+                                Zero, 
+                                Zero, 
+                                LNKC, 
+                                Zero
+                            }
+                    }
+
+                    Local4 [Zero] = ((Local2 << 0x10) | 0xFFFF)
+                    Local4 [One] = (Local1 & 0x03)
+                    Local0 [Local1] = Local4
+                    Local1++
+                }
+
+                Return (Local0)
+            }
+        }
+
+        Field (PCI0.ISA.P40C, ByteAcc, NoLock, Preserve)
+        {
+            PRQ0,   8, 
+            PRQ1,   8, 
+            PRQ2,   8, 
+            PRQ3,   8
+        }
+
+        Method (IQST, 1, NotSerialized)
+        {
+            If ((0x80 & Arg0))
+            {
+                Return (0x09)
+            }
+
+            Return (0x0B)
+        }
+
+        Method (IQCR, 1, Serialized)
+        {
+            Name (PRR0, ResourceTemplate ()
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, _Y00)
+                {
+                    0x00000000,
+                }
+            })
+            CreateDWordField (PRR0, \_SB.IQCR._Y00._INT, PRRI)  // _INT: Interrupts
+            If ((Arg0 < 0x80))
+            {
+                PRRI = Arg0
+            }
+
+            Return (PRR0) /* \_SB_.IQCR.PRR0 */
+        }
+
+        Device (LNKA)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, Zero)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQ0))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQ0 |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQ0))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQ0 = PRRI /* \_SB_.LNKA._SRS.PRRI */
+            }
+        }
+
+        Device (LNKB)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQ1))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQ1 |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQ1))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQ1 = PRRI /* \_SB_.LNKB._SRS.PRRI */
+            }
+        }
+
+        Device (LNKC)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x02)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQ2))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQ2 |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQ2))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQ2 = PRRI /* \_SB_.LNKC._SRS.PRRI */
+            }
+        }
+
+        Device (LNKD)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x03)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQ3))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQ3 |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQ3))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQ3 = PRRI /* \_SB_.LNKD._SRS.PRRI */
+            }
+        }
+
+        Device (LNKS)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x04)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000009,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (0x0B)
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (_PRS) /* \_SB_.LNKS._PRS */
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+    }
+
+    Scope (_SB)
+    {
+        Device (\_SB.PCI0.PRES)
+        {
+            Name (_HID, EisaId ("PNP0A06") /* Generic Container Device */)  // _HID: Hardware ID
+            Name (_UID, "CPU Hotplug resources")  // _UID: Unique ID
+            Mutex (CPLK, 0x00)
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0xAF00,             // Range Minimum
+                    0xAF00,             // Range Maximum
+                    0x01,               // Alignment
+                    0x0C,               // Length
+                    )
+            })
+            OperationRegion (PRST, SystemIO, 0xAF00, 0x0C)
+            Field (PRST, ByteAcc, NoLock, WriteAsZeros)
+            {
+                Offset (0x04), 
+                CPEN,   1, 
+                CINS,   1, 
+                CRMV,   1, 
+                CEJ0,   1, 
+                Offset (0x05), 
+                CCMD,   8
+            }
+
+            Field (PRST, DWordAcc, NoLock, Preserve)
+            {
+                CSEL,   32, 
+                Offset (0x08), 
+                CDAT,   32
+            }
+
+            Method (_INI, 0, Serialized)  // _INI: Initialize
+            {
+                CSEL = Zero
+            }
+        }
+
+        Device (\_SB.CPUS)
+        {
+            Name (_HID, "ACPI0010" /* Processor Container Device */)  // _HID: Hardware ID
+            Name (_CID, EisaId ("PNP0A05") /* Generic Container Device */)  // _CID: Compatible ID
+            Method (CTFY, 2, NotSerialized)
+            {
+                If ((Arg0 == Zero))
+                {
+                    Notify (C000, Arg1)
+                }
+
+                If ((Arg0 == One))
+                {
+                    Notify (C001, Arg1)
+                }
+
+                If ((Arg0 == 0x02))
+                {
+                    Notify (C002, Arg1)
+                }
+
+                If ((Arg0 == 0x03))
+                {
+                    Notify (C003, Arg1)
+                }
+            }
+
+            Method (CSTA, 1, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                \_SB.PCI0.PRES.CSEL = Arg0
+                Local0 = Zero
+                If ((\_SB.PCI0.PRES.CPEN == One))
+                {
+                    Local0 = 0x0F
+                }
+
+                Release (\_SB.PCI0.PRES.CPLK)
+                Return (Local0)
+            }
+
+            Method (CEJ0, 1, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                \_SB.PCI0.PRES.CSEL = Arg0
+                \_SB.PCI0.PRES.CEJ0 = One
+                Release (\_SB.PCI0.PRES.CPLK)
+            }
+
+            Method (CSCN, 0, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                Local0 = One
+                While ((Local0 == One))
+                {
+                    Local0 = Zero
+                    \_SB.PCI0.PRES.CCMD = Zero
+                    If ((\_SB.PCI0.PRES.CINS == One))
+                    {
+                        CTFY (\_SB.PCI0.PRES.CDAT, One)
+                        \_SB.PCI0.PRES.CINS = One
+                        Local0 = One
+                    }
+                    ElseIf ((\_SB.PCI0.PRES.CRMV == One))
+                    {
+                        CTFY (\_SB.PCI0.PRES.CDAT, 0x03)
+                        \_SB.PCI0.PRES.CRMV = One
+                        Local0 = One
+                    }
+                }
+
+                Release (\_SB.PCI0.PRES.CPLK)
+            }
+
+            Method (COST, 4, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                \_SB.PCI0.PRES.CSEL = Arg0
+                \_SB.PCI0.PRES.CCMD = One
+                \_SB.PCI0.PRES.CDAT = Arg1
+                \_SB.PCI0.PRES.CCMD = 0x02
+                \_SB.PCI0.PRES.CDAT = Arg2
+                Release (\_SB.PCI0.PRES.CPLK)
+            }
+
+            Processor (C000, 0x00, 0x00000000, 0x00)
+            {
+                Method (_STA, 0, Serialized)  // _STA: Status
+                {
+                    Return (CSTA (Zero))
+                }
+
+                Name (_MAT, Buffer (0x08)  // _MAT: Multiple APIC Table Entry
+                {
+                     0x00, 0x08, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00   // ........
+                })
+                Method (_OST, 3, Serialized)  // _OST: OSPM Status Indication
+                {
+                    COST (Zero, Arg0, Arg1, Arg2)
+                }
+
+                Name (_PXM, Zero)  // _PXM: Device Proximity
+            }
+
+            Processor (C001, 0x01, 0x00000000, 0x00)
+            {
+                Method (_STA, 0, Serialized)  // _STA: Status
+                {
+                    Return (CSTA (One))
+                }
+
+                Name (_MAT, Buffer (0x08)  // _MAT: Multiple APIC Table Entry
+                {
+                     0x00, 0x08, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00   // ........
+                })
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    CEJ0 (One)
+                }
+
+                Method (_OST, 3, Serialized)  // _OST: OSPM Status Indication
+                {
+                    COST (One, Arg0, Arg1, Arg2)
+                }
+
+                Name (_PXM, One)  // _PXM: Device Proximity
+            }
+
+            Processor (C002, 0x02, 0x00000000, 0x00)
+            {
+                Method (_STA, 0, Serialized)  // _STA: Status
+                {
+                    Return (CSTA (0x02))
+                }
+
+                Name (_MAT, Buffer (0x08)  // _MAT: Multiple APIC Table Entry
+                {
+                     0x00, 0x08, 0x02, 0x02, 0x01, 0x00, 0x00, 0x00   // ........
+                })
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    CEJ0 (0x02)
+                }
+
+                Method (_OST, 3, Serialized)  // _OST: OSPM Status Indication
+                {
+                    COST (0x02, Arg0, Arg1, Arg2)
+                }
+
+                Name (_PXM, 0x02)  // _PXM: Device Proximity
+            }
+
+            Processor (C003, 0x03, 0x00000000, 0x00)
+            {
+                Method (_STA, 0, Serialized)  // _STA: Status
+                {
+                    Return (CSTA (0x03))
+                }
+
+                Name (_MAT, Buffer (0x08)  // _MAT: Multiple APIC Table Entry
+                {
+                     0x00, 0x08, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00   // ........
+                })
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    CEJ0 (0x03)
+                }
+
+                Method (_OST, 3, Serialized)  // _OST: OSPM Status Indication
+                {
+                    COST (0x03, Arg0, Arg1, Arg2)
+                }
+
+                Name (_PXM, 0x03)  // _PXM: Device Proximity
+            }
+        }
+    }
+
+    Method (\_GPE._E02, 0, NotSerialized)  // _Exx: Edge-Triggered GPE, xx=0x00-0xFF
+    {
+        \_SB.CPUS.CSCN ()
+    }
+
+    Device (\_SB.PCI0.MHPD)
+    {
+        Name (_HID, "PNP0A06" /* Generic Container Device */)  // _HID: Hardware ID
+        Name (_UID, "Memory hotplug resources")  // _UID: Unique ID
+        Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+        {
+            IO (Decode16,
+                0x0A00,             // Range Minimum
+                0x0A00,             // Range Maximum
+                0x00,               // Alignment
+                0x18,               // Length
+                )
+        })
+        OperationRegion (HPMR, SystemIO, 0x0A00, 0x18)
+    }
+
+    Device (\_SB.MHPC)
+    {
+        Name (_HID, "PNP0A06" /* Generic Container Device */)  // _HID: Hardware ID
+        Name (_UID, "DIMM devices")  // _UID: Unique ID
+        Name (MDNR, 0x03)
+        Field (\_SB.PCI0.MHPD.HPMR, DWordAcc, NoLock, Preserve)
+        {
+            MRBL,   32, 
+            MRBH,   32, 
+            MRLL,   32, 
+            MRLH,   32, 
+            MPX,    32
+        }
+
+        Field (\_SB.PCI0.MHPD.HPMR, ByteAcc, NoLock, WriteAsZeros)
+        {
+            Offset (0x14), 
+            MES,    1, 
+            MINS,   1, 
+            MRMV,   1, 
+            MEJ,    1
+        }
+
+        Field (\_SB.PCI0.MHPD.HPMR, DWordAcc, NoLock, Preserve)
+        {
+            MSEL,   32, 
+            MOEV,   32, 
+            MOSC,   32
+        }
+
+        Method (_STA, 0, NotSerialized)  // _STA: Status
+        {
+            If ((MDNR == Zero))
+            {
+                Return (Zero)
+            }
+
+            Return (0x0B)
+        }
+
+        Mutex (MLCK, 0x00)
+        Method (MSCN, 0, NotSerialized)
+        {
+            If ((MDNR == Zero))
+            {
+                Return (Zero)
+            }
+
+            Local0 = Zero
+            Acquire (MLCK, 0xFFFF)
+            While ((Local0 < MDNR))
+            {
+                MSEL = Local0
+                If ((MINS == One))
+                {
+                    MTFY (Local0, One)
+                    MINS = One
+                }
+                ElseIf ((MRMV == One))
+                {
+                    MTFY (Local0, 0x03)
+                    MRMV = One
+                }
+
+                Local0 += One
+            }
+
+            Release (MLCK)
+            Return (One)
+        }
+
+        Method (MRST, 1, NotSerialized)
+        {
+            Local0 = Zero
+            Acquire (MLCK, 0xFFFF)
+            MSEL = ToInteger (Arg0)
+            If ((MES == One))
+            {
+                Local0 = 0x0F
+            }
+
+            Release (MLCK)
+            Return (Local0)
+        }
+
+        Method (MCRS, 1, Serialized)
+        {
+            Acquire (MLCK, 0xFFFF)
+            MSEL = ToInteger (Arg0)
+            Name (MR64, ResourceTemplate ()
+            {
+                QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
+                    0x0000000000000000, // Granularity
+                    0x0000000000000000, // Range Minimum
+                    0xFFFFFFFFFFFFFFFE, // Range Maximum
+                    0x0000000000000000, // Translation Offset
+                    0xFFFFFFFFFFFFFFFF, // Length
+                    ,, _Y01, AddressRangeMemory, TypeStatic)
+            })
+            CreateDWordField (MR64, \_SB.MHPC.MCRS._Y01._MIN, MINL)  // _MIN: Minimum Base Address
+            CreateDWordField (MR64, 0x12, MINH)
+            CreateDWordField (MR64, \_SB.MHPC.MCRS._Y01._LEN, LENL)  // _LEN: Length
+            CreateDWordField (MR64, 0x2A, LENH)
+            CreateDWordField (MR64, \_SB.MHPC.MCRS._Y01._MAX, MAXL)  // _MAX: Maximum Base Address
+            CreateDWordField (MR64, 0x1A, MAXH)
+            MINH = MRBH /* \_SB_.MHPC.MRBH */
+            MINL = MRBL /* \_SB_.MHPC.MRBL */
+            LENH = MRLH /* \_SB_.MHPC.MRLH */
+            LENL = MRLL /* \_SB_.MHPC.MRLL */
+            MAXL = (MINL + LENL) /* \_SB_.MHPC.MCRS.LENL */
+            MAXH = (MINH + LENH) /* \_SB_.MHPC.MCRS.LENH */
+            If ((MAXL < MINL))
+            {
+                MAXH += One
+            }
+
+            If ((MAXL < One))
+            {
+                MAXH -= One
+            }
+
+            MAXL -= One
+            If ((MAXH == Zero))
+            {
+                Name (MR32, ResourceTemplate ()
+                {
+                    DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
+                        0x00000000,         // Granularity
+                        0x00000000,         // Range Minimum
+                        0xFFFFFFFE,         // Range Maximum
+                        0x00000000,         // Translation Offset
+                        0xFFFFFFFF,         // Length
+                        ,, _Y02, AddressRangeMemory, TypeStatic)
+                })
+                CreateDWordField (MR32, \_SB.MHPC.MCRS._Y02._MIN, MIN)  // _MIN: Minimum Base Address
+                CreateDWordField (MR32, \_SB.MHPC.MCRS._Y02._MAX, MAX)  // _MAX: Maximum Base Address
+                CreateDWordField (MR32, \_SB.MHPC.MCRS._Y02._LEN, LEN)  // _LEN: Length
+                MIN = MINL /* \_SB_.MHPC.MCRS.MINL */
+                MAX = MAXL /* \_SB_.MHPC.MCRS.MAXL */
+                LEN = LENL /* \_SB_.MHPC.MCRS.LENL */
+                Release (MLCK)
+                Return (MR32) /* \_SB_.MHPC.MCRS.MR32 */
+            }
+
+            Release (MLCK)
+            Return (MR64) /* \_SB_.MHPC.MCRS.MR64 */
+        }
+
+        Method (MPXM, 1, NotSerialized)
+        {
+            Acquire (MLCK, 0xFFFF)
+            MSEL = ToInteger (Arg0)
+            Local0 = MPX /* \_SB_.MHPC.MPX_ */
+            Release (MLCK)
+            Return (Local0)
+        }
+
+        Method (MOST, 4, NotSerialized)
+        {
+            Acquire (MLCK, 0xFFFF)
+            MSEL = ToInteger (Arg0)
+            MOEV = Arg1
+            MOSC = Arg2
+            Release (MLCK)
+        }
+
+        Method (MEJ0, 2, NotSerialized)
+        {
+            Acquire (MLCK, 0xFFFF)
+            MSEL = ToInteger (Arg0)
+            MEJ = One
+            Release (MLCK)
+        }
+
+        Device (MP00)
+        {
+            Name (_UID, "0x00")  // _UID: Unique ID
+            Name (_HID, EisaId ("PNP0C80") /* Memory Device */)  // _HID: Hardware ID
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (MCRS (_UID))
+            }
+
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (MRST (_UID))
+            }
+
+            Method (_PXM, 0, NotSerialized)  // _PXM: Device Proximity
+            {
+                Return (MPXM (_UID))
+            }
+
+            Method (_OST, 3, NotSerialized)  // _OST: OSPM Status Indication
+            {
+                MOST (_UID, Arg0, Arg1, Arg2)
+            }
+
+            Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+            {
+                MEJ0 (_UID, Arg0)
+            }
+        }
+
+        Device (MP01)
+        {
+            Name (_UID, "0x01")  // _UID: Unique ID
+            Name (_HID, EisaId ("PNP0C80") /* Memory Device */)  // _HID: Hardware ID
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (MCRS (_UID))
+            }
+
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (MRST (_UID))
+            }
+
+            Method (_PXM, 0, NotSerialized)  // _PXM: Device Proximity
+            {
+                Return (MPXM (_UID))
+            }
+
+            Method (_OST, 3, NotSerialized)  // _OST: OSPM Status Indication
+            {
+                MOST (_UID, Arg0, Arg1, Arg2)
+            }
+
+            Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+            {
+                MEJ0 (_UID, Arg0)
+            }
+        }
+
+        Device (MP02)
+        {
+            Name (_UID, "0x02")  // _UID: Unique ID
+            Name (_HID, EisaId ("PNP0C80") /* Memory Device */)  // _HID: Hardware ID
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (MCRS (_UID))
+            }
+
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (MRST (_UID))
+            }
+
+            Method (_PXM, 0, NotSerialized)  // _PXM: Device Proximity
+            {
+                Return (MPXM (_UID))
+            }
+
+            Method (_OST, 3, NotSerialized)  // _OST: OSPM Status Indication
+            {
+                MOST (_UID, Arg0, Arg1, Arg2)
+            }
+
+            Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+            {
+                MEJ0 (_UID, Arg0)
+            }
+        }
+
+        Method (MTFY, 2, NotSerialized)
+        {
+            If ((Arg0 == Zero))
+            {
+                Notify (MP00, Arg1)
+            }
+
+            If ((Arg0 == One))
+            {
+                Notify (MP01, Arg1)
+            }
+
+            If ((Arg0 == 0x02))
+            {
+                Notify (MP02, Arg1)
+            }
+        }
+    }
+
+    Method (\_GPE._E03, 0, NotSerialized)  // _Exx: Edge-Triggered GPE, xx=0x00-0xFF
+    {
+        \_SB.MHPC.MSCN ()
+    }
+
+    Scope (_GPE)
+    {
+        Name (_HID, "ACPI0006" /* GPE Block Device */)  // _HID: Hardware ID
+        Method (_E01, 0, NotSerialized)  // _Exx: Edge-Triggered GPE, xx=0x00-0xFF
+        {
+            Acquire (\_SB.PCI0.BLCK, 0xFFFF)
+            \_SB.PCI0.PCNT ()
+            Release (\_SB.PCI0.BLCK)
+        }
+
+        Method (_E04, 0, NotSerialized)  // _Exx: Edge-Triggered GPE, xx=0x00-0xFF
+        {
+            Notify (\_SB.NVDR, 0x80) // Status Change
+        }
+    }
+
+    Scope (\_SB.PCI0)
+    {
+        Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+        {
+            WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
+                0x0000,             // Granularity
+                0x0000,             // Range Minimum
+                0x00FF,             // Range Maximum
+                0x0000,             // Translation Offset
+                0x0100,             // Length
+                ,, )
+            IO (Decode16,
+                0x0CF8,             // Range Minimum
+                0x0CF8,             // Range Maximum
+                0x01,               // Alignment
+                0x08,               // Length
+                )
+            WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
+                0x0000,             // Granularity
+                0x0000,             // Range Minimum
+                0x0CF7,             // Range Maximum
+                0x0000,             // Translation Offset
+                0x0CF8,             // Length
+                ,, , TypeStatic, DenseTranslation)
+            WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
+                0x0000,             // Granularity
+                0x0D00,             // Range Minimum
+                0xFFFF,             // Range Maximum
+                0x0000,             // Translation Offset
+                0xF300,             // Length
+                ,, , TypeStatic, DenseTranslation)
+            DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
+                0x00000000,         // Granularity
+                0x000A0000,         // Range Minimum
+                0x000BFFFF,         // Range Maximum
+                0x00000000,         // Translation Offset
+                0x00020000,         // Length
+                ,, , AddressRangeMemory, TypeStatic)
+            DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
+                0x00000000,         // Granularity
+                0x08000000,         // Range Minimum
+                0xFEBFFFFF,         // Range Maximum
+                0x00000000,         // Translation Offset
+                0xF6C00000,         // Length
+                ,, , AddressRangeMemory, TypeStatic)
+            QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
+                0x0000000000000000, // Granularity
+                0x0000000200000000, // Range Minimum
+                0x000000027FFFFFFF, // Range Maximum
+                0x0000000000000000, // Translation Offset
+                0x0000000080000000, // Length
+                ,, , AddressRangeMemory, TypeStatic)
+        })
+        Device (GPE0)
+        {
+            Name (_HID, "PNP0A06" /* Generic Container Device */)  // _HID: Hardware ID
+            Name (_UID, "GPE0 resources")  // _UID: Unique ID
+            Name (_STA, 0x0B)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0xAFE0,             // Range Minimum
+                    0xAFE0,             // Range Maximum
+                    0x01,               // Alignment
+                    0x04,               // Length
+                    )
+            })
+        }
+
+        Device (PHPR)
+        {
+            Name (_HID, "PNP0A06" /* Generic Container Device */)  // _HID: Hardware ID
+            Name (_UID, "PCI Hotplug resources")  // _UID: Unique ID
+            Name (_STA, 0x0B)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0xAE00,             // Range Minimum
+                    0xAE00,             // Range Maximum
+                    0x01,               // Alignment
+                    0x14,               // Length
+                    )
+            })
+        }
+    }
+
+    Scope (\)
+    {
+        Name (_S3, Package (0x04)  // _S3_: S3 System State
+        {
+            One, 
+            One, 
+            Zero, 
+            Zero
+        })
+        Name (_S4, Package (0x04)  // _S4_: S4 System State
+        {
+            0x02, 
+            0x02, 
+            Zero, 
+            Zero
+        })
+        Name (_S5, Package (0x04)  // _S5_: S5 System State
+        {
+            Zero, 
+            Zero, 
+            Zero, 
+            Zero
+        })
+    }
+
+    Scope (\_SB.PCI0)
+    {
+        Device (FWCF)
+        {
+            Name (_HID, "QEMU0002")  // _HID: Hardware ID
+            Name (_STA, 0x0B)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0510,             // Range Minimum
+                    0x0510,             // Range Maximum
+                    0x01,               // Alignment
+                    0x0C,               // Length
+                    )
+            })
+        }
+    }
+
+    Scope (\_SB)
+    {
+        Scope (PCI0)
+        {
+            Name (BSEL, Zero)
+            Device (S00)
+            {
+                Name (_ADR, Zero)  // _ADR: Address
+            }
+
+            Device (S10)
+            {
+                Name (_ADR, 0x00020000)  // _ADR: Address
+                Method (_S1D, 0, NotSerialized)  // _S1D: S1 Device State
+                {
+                    Return (Zero)
+                }
+
+                Method (_S2D, 0, NotSerialized)  // _S2D: S2 Device State
+                {
+                    Return (Zero)
+                }
+
+                Method (_S3D, 0, NotSerialized)  // _S3D: S3 Device State
+                {
+                    Return (Zero)
+                }
+            }
+
+            Device (S18)
+            {
+                Name (_SUN, 0x03)  // _SUN: Slot User Number
+                Name (_ADR, 0x00030000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S20)
+            {
+                Name (_SUN, 0x04)  // _SUN: Slot User Number
+                Name (_ADR, 0x00040000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S28)
+            {
+                Name (_SUN, 0x05)  // _SUN: Slot User Number
+                Name (_ADR, 0x00050000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S30)
+            {
+                Name (_SUN, 0x06)  // _SUN: Slot User Number
+                Name (_ADR, 0x00060000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S38)
+            {
+                Name (_SUN, 0x07)  // _SUN: Slot User Number
+                Name (_ADR, 0x00070000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S40)
+            {
+                Name (_SUN, 0x08)  // _SUN: Slot User Number
+                Name (_ADR, 0x00080000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S48)
+            {
+                Name (_SUN, 0x09)  // _SUN: Slot User Number
+                Name (_ADR, 0x00090000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S50)
+            {
+                Name (_SUN, 0x0A)  // _SUN: Slot User Number
+                Name (_ADR, 0x000A0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S58)
+            {
+                Name (_SUN, 0x0B)  // _SUN: Slot User Number
+                Name (_ADR, 0x000B0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S60)
+            {
+                Name (_SUN, 0x0C)  // _SUN: Slot User Number
+                Name (_ADR, 0x000C0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S68)
+            {
+                Name (_SUN, 0x0D)  // _SUN: Slot User Number
+                Name (_ADR, 0x000D0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S70)
+            {
+                Name (_SUN, 0x0E)  // _SUN: Slot User Number
+                Name (_ADR, 0x000E0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S78)
+            {
+                Name (_SUN, 0x0F)  // _SUN: Slot User Number
+                Name (_ADR, 0x000F0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S80)
+            {
+                Name (_SUN, 0x10)  // _SUN: Slot User Number
+                Name (_ADR, 0x00100000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S88)
+            {
+                Name (_SUN, 0x11)  // _SUN: Slot User Number
+                Name (_ADR, 0x00110000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S90)
+            {
+                Name (_SUN, 0x12)  // _SUN: Slot User Number
+                Name (_ADR, 0x00120000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S98)
+            {
+                Name (_SUN, 0x13)  // _SUN: Slot User Number
+                Name (_ADR, 0x00130000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SA0)
+            {
+                Name (_SUN, 0x14)  // _SUN: Slot User Number
+                Name (_ADR, 0x00140000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SA8)
+            {
+                Name (_SUN, 0x15)  // _SUN: Slot User Number
+                Name (_ADR, 0x00150000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SB0)
+            {
+                Name (_SUN, 0x16)  // _SUN: Slot User Number
+                Name (_ADR, 0x00160000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SB8)
+            {
+                Name (_SUN, 0x17)  // _SUN: Slot User Number
+                Name (_ADR, 0x00170000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SC0)
+            {
+                Name (_SUN, 0x18)  // _SUN: Slot User Number
+                Name (_ADR, 0x00180000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SC8)
+            {
+                Name (_SUN, 0x19)  // _SUN: Slot User Number
+                Name (_ADR, 0x00190000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SD0)
+            {
+                Name (_SUN, 0x1A)  // _SUN: Slot User Number
+                Name (_ADR, 0x001A0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SD8)
+            {
+                Name (_SUN, 0x1B)  // _SUN: Slot User Number
+                Name (_ADR, 0x001B0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SE0)
+            {
+                Name (_SUN, 0x1C)  // _SUN: Slot User Number
+                Name (_ADR, 0x001C0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SE8)
+            {
+                Name (_SUN, 0x1D)  // _SUN: Slot User Number
+                Name (_ADR, 0x001D0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SF0)
+            {
+                Name (_SUN, 0x1E)  // _SUN: Slot User Number
+                Name (_ADR, 0x001E0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SF8)
+            {
+                Name (_SUN, 0x1F)  // _SUN: Slot User Number
+                Name (_ADR, 0x001F0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Method (DVNT, 2, NotSerialized)
+            {
+                If ((Arg0 & 0x08))
+                {
+                    Notify (S18, Arg1)
+                }
+
+                If ((Arg0 & 0x10))
+                {
+                    Notify (S20, Arg1)
+                }
+
+                If ((Arg0 & 0x20))
+                {
+                    Notify (S28, Arg1)
+                }
+
+                If ((Arg0 & 0x40))
+                {
+                    Notify (S30, Arg1)
+                }
+
+                If ((Arg0 & 0x80))
+                {
+                    Notify (S38, Arg1)
+                }
+
+                If ((Arg0 & 0x0100))
+                {
+                    Notify (S40, Arg1)
+                }
+
+                If ((Arg0 & 0x0200))
+                {
+                    Notify (S48, Arg1)
+                }
+
+                If ((Arg0 & 0x0400))
+                {
+                    Notify (S50, Arg1)
+                }
+
+                If ((Arg0 & 0x0800))
+                {
+                    Notify (S58, Arg1)
+                }
+
+                If ((Arg0 & 0x1000))
+                {
+                    Notify (S60, Arg1)
+                }
+
+                If ((Arg0 & 0x2000))
+                {
+                    Notify (S68, Arg1)
+                }
+
+                If ((Arg0 & 0x4000))
+                {
+                    Notify (S70, Arg1)
+                }
+
+                If ((Arg0 & 0x8000))
+                {
+                    Notify (S78, Arg1)
+                }
+
+                If ((Arg0 & 0x00010000))
+                {
+                    Notify (S80, Arg1)
+                }
+
+                If ((Arg0 & 0x00020000))
+                {
+                    Notify (S88, Arg1)
+                }
+
+                If ((Arg0 & 0x00040000))
+                {
+                    Notify (S90, Arg1)
+                }
+
+                If ((Arg0 & 0x00080000))
+                {
+                    Notify (S98, Arg1)
+                }
+
+                If ((Arg0 & 0x00100000))
+                {
+                    Notify (SA0, Arg1)
+                }
+
+                If ((Arg0 & 0x00200000))
+                {
+                    Notify (SA8, Arg1)
+                }
+
+                If ((Arg0 & 0x00400000))
+                {
+                    Notify (SB0, Arg1)
+                }
+
+                If ((Arg0 & 0x00800000))
+                {
+                    Notify (SB8, Arg1)
+                }
+
+                If ((Arg0 & 0x01000000))
+                {
+                    Notify (SC0, Arg1)
+                }
+
+                If ((Arg0 & 0x02000000))
+                {
+                    Notify (SC8, Arg1)
+                }
+
+                If ((Arg0 & 0x04000000))
+                {
+                    Notify (SD0, Arg1)
+                }
+
+                If ((Arg0 & 0x08000000))
+                {
+                    Notify (SD8, Arg1)
+                }
+
+                If ((Arg0 & 0x10000000))
+                {
+                    Notify (SE0, Arg1)
+                }
+
+                If ((Arg0 & 0x20000000))
+                {
+                    Notify (SE8, Arg1)
+                }
+
+                If ((Arg0 & 0x40000000))
+                {
+                    Notify (SF0, Arg1)
+                }
+
+                If ((Arg0 & 0x80000000))
+                {
+                    Notify (SF8, Arg1)
+                }
+            }
+
+            Method (PCNT, 0, NotSerialized)
+            {
+                BNUM = Zero
+                DVNT (PCIU, One)
+                DVNT (PCID, 0x03)
+            }
+        }
+    }
+}
+
diff --git a/tests/data/acpi/pc/DSDT.dsl b/tests/data/acpi/pc/DSDT.dsl
new file mode 100644
index 0000000000..da2b413efc
--- /dev/null
+++ b/tests/data/acpi/pc/DSDT.dsl
@@ -0,0 +1,1407 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembling to symbolic ASL+ operators
+ *
+ * Disassembly of tests/data/acpi/pc/DSDT.roothp, Mon Sep 28 17:24:38 2020
+ *
+ * Original Table Header:
+ *     Signature        "DSDT"
+ *     Length           0x00001488 (5256)
+ *     Revision         0x01 **** 32-bit table (V1), no 64-bit math support
+ *     Checksum         0xF2
+ *     OEM ID           "BOCHS "
+ *     OEM Table ID     "BXPCDSDT"
+ *     OEM Revision     0x00000001 (1)
+ *     Compiler ID      "BXPC"
+ *     Compiler Version 0x00000001 (1)
+ */
+DefinitionBlock ("", "DSDT", 1, "BOCHS ", "BXPCDSDT", 0x00000001)
+{
+    Scope (\)
+    {
+        OperationRegion (DBG, SystemIO, 0x0402, One)
+        Field (DBG, ByteAcc, NoLock, Preserve)
+        {
+            DBGB,   8
+        }
+
+        Method (DBUG, 1, NotSerialized)
+        {
+            ToHexString (Arg0, Local0)
+            ToBuffer (Local0, Local0)
+            Local1 = (SizeOf (Local0) - One)
+            Local2 = Zero
+            While ((Local2 < Local1))
+            {
+                DBGB = DerefOf (Local0 [Local2])
+                Local2++
+            }
+
+            DBGB = 0x0A
+        }
+    }
+
+    Scope (_SB)
+    {
+        Device (PCI0)
+        {
+            Name (_HID, EisaId ("PNP0A03") /* PCI Bus */)  // _HID: Hardware ID
+            Name (_ADR, Zero)  // _ADR: Address
+            Name (_UID, Zero)  // _UID: Unique ID
+        }
+    }
+
+    Scope (_SB)
+    {
+        Device (HPET)
+        {
+            Name (_HID, EisaId ("PNP0103") /* HPET System Timer */)  // _HID: Hardware ID
+            Name (_UID, Zero)  // _UID: Unique ID
+            OperationRegion (HPTM, SystemMemory, 0xFED00000, 0x0400)
+            Field (HPTM, DWordAcc, Lock, Preserve)
+            {
+                VEND,   32, 
+                PRD,    32
+            }
+
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Local0 = VEND /* \_SB_.HPET.VEND */
+                Local1 = PRD /* \_SB_.HPET.PRD_ */
+                Local0 >>= 0x10
+                If (((Local0 == Zero) || (Local0 == 0xFFFF)))
+                {
+                    Return (Zero)
+                }
+
+                If (((Local1 == Zero) || (Local1 > 0x05F5E100)))
+                {
+                    Return (Zero)
+                }
+
+                Return (0x0F)
+            }
+
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadOnly,
+                    0xFED00000,         // Address Base
+                    0x00000400,         // Address Length
+                    )
+            })
+        }
+    }
+
+    Scope (_SB.PCI0)
+    {
+        Device (ISA)
+        {
+            Name (_ADR, 0x00010000)  // _ADR: Address
+            OperationRegion (P40C, PCI_Config, 0x60, 0x04)
+        }
+    }
+
+    Scope (_SB.PCI0.ISA)
+    {
+        Device (KBD)
+        {
+            Name (_HID, EisaId ("PNP0303") /* IBM Enhanced Keyboard (101/102-key, PS/2 Mouse) */)  // _HID: Hardware ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0060,             // Range Minimum
+                    0x0060,             // Range Maximum
+                    0x01,               // Alignment
+                    0x01,               // Length
+                    )
+                IO (Decode16,
+                    0x0064,             // Range Minimum
+                    0x0064,             // Range Maximum
+                    0x01,               // Alignment
+                    0x01,               // Length
+                    )
+                IRQNoFlags ()
+                    {1}
+            })
+        }
+
+        Device (MOU)
+        {
+            Name (_HID, EisaId ("PNP0F13") /* PS/2 Mouse */)  // _HID: Hardware ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IRQNoFlags ()
+                    {12}
+            })
+        }
+
+        Device (FDC0)
+        {
+            Name (_HID, EisaId ("PNP0700"))  // _HID: Hardware ID
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x03F2,             // Range Minimum
+                    0x03F2,             // Range Maximum
+                    0x00,               // Alignment
+                    0x04,               // Length
+                    )
+                IO (Decode16,
+                    0x03F7,             // Range Minimum
+                    0x03F7,             // Range Maximum
+                    0x00,               // Alignment
+                    0x01,               // Length
+                    )
+                IRQNoFlags ()
+                    {6}
+                DMA (Compatibility, NotBusMaster, Transfer8, )
+                    {2}
+            })
+            Device (FLPA)
+            {
+                Name (_ADR, Zero)  // _ADR: Address
+                Name (_FDI, Package (0x10)  // _FDI: Floppy Drive Information
+                {
+                    Zero, 
+                    0x05, 
+                    0x4F, 
+                    0x30, 
+                    One, 
+                    0xAF, 
+                    0x02, 
+                    0x25, 
+                    0x02, 
+                    0x12, 
+                    0x1B, 
+                    0xFF, 
+                    0x6C, 
+                    0xF6, 
+                    0x0F, 
+                    0x08
+                })
+            }
+
+            Name (_FDE, Buffer (0x14)  // _FDE: Floppy Disk Enumerate
+            {
+                /* 0000 */  0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
+                /* 0008 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
+                /* 0010 */  0x02, 0x00, 0x00, 0x00                           // ....
+            })
+        }
+
+        Device (LPT1)
+        {
+            Name (_HID, EisaId ("PNP0400") /* Standard LPT Parallel Port */)  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0378,             // Range Minimum
+                    0x0378,             // Range Maximum
+                    0x08,               // Alignment
+                    0x08,               // Length
+                    )
+                IRQNoFlags ()
+                    {7}
+            })
+        }
+
+        Device (COM1)
+        {
+            Name (_HID, EisaId ("PNP0501") /* 16550A-compatible COM Serial Port */)  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x03F8,             // Range Minimum
+                    0x03F8,             // Range Maximum
+                    0x00,               // Alignment
+                    0x08,               // Length
+                    )
+                IRQNoFlags ()
+                    {4}
+            })
+        }
+
+        Device (RTC)
+        {
+            Name (_HID, EisaId ("PNP0B00") /* AT Real-Time Clock */)  // _HID: Hardware ID
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0070,             // Range Minimum
+                    0x0070,             // Range Maximum
+                    0x01,               // Alignment
+                    0x08,               // Length
+                    )
+                IRQNoFlags ()
+                    {8}
+            })
+        }
+    }
+
+    Scope (_SB.PCI0)
+    {
+        OperationRegion (PCST, SystemIO, 0xAE00, 0x08)
+        Field (PCST, DWordAcc, NoLock, WriteAsZeros)
+        {
+            PCIU,   32, 
+            PCID,   32
+        }
+
+        OperationRegion (SEJ, SystemIO, 0xAE08, 0x04)
+        Field (SEJ, DWordAcc, NoLock, WriteAsZeros)
+        {
+            B0EJ,   32
+        }
+
+        OperationRegion (BNMR, SystemIO, 0xAE10, 0x04)
+        Field (BNMR, DWordAcc, NoLock, WriteAsZeros)
+        {
+            BNUM,   32
+        }
+
+        Mutex (BLCK, 0x00)
+        Method (PCEJ, 2, NotSerialized)
+        {
+            Acquire (BLCK, 0xFFFF)
+            BNUM = Arg0
+            B0EJ = (One << Arg1)
+            Release (BLCK)
+            Return (Zero)
+        }
+    }
+
+    Scope (_SB)
+    {
+        Scope (PCI0)
+        {
+            Method (_PRT, 0, NotSerialized)  // _PRT: PCI Routing Table
+            {
+                Local0 = Package (0x80){}
+                Local1 = Zero
+                While ((Local1 < 0x80))
+                {
+                    Local2 = (Local1 >> 0x02)
+                    Local3 = ((Local1 + Local2) & 0x03)
+                    If ((Local3 == Zero))
+                    {
+                        Local4 = Package (0x04)
+                            {
+                                Zero, 
+                                Zero, 
+                                LNKD, 
+                                Zero
+                            }
+                    }
+
+                    If ((Local3 == One))
+                    {
+                        If ((Local1 == 0x04))
+                        {
+                            Local4 = Package (0x04)
+                                {
+                                    Zero, 
+                                    Zero, 
+                                    LNKS, 
+                                    Zero
+                                }
+                        }
+                        Else
+                        {
+                            Local4 = Package (0x04)
+                                {
+                                    Zero, 
+                                    Zero, 
+                                    LNKA, 
+                                    Zero
+                                }
+                        }
+                    }
+
+                    If ((Local3 == 0x02))
+                    {
+                        Local4 = Package (0x04)
+                            {
+                                Zero, 
+                                Zero, 
+                                LNKB, 
+                                Zero
+                            }
+                    }
+
+                    If ((Local3 == 0x03))
+                    {
+                        Local4 = Package (0x04)
+                            {
+                                Zero, 
+                                Zero, 
+                                LNKC, 
+                                Zero
+                            }
+                    }
+
+                    Local4 [Zero] = ((Local2 << 0x10) | 0xFFFF)
+                    Local4 [One] = (Local1 & 0x03)
+                    Local0 [Local1] = Local4
+                    Local1++
+                }
+
+                Return (Local0)
+            }
+        }
+
+        Field (PCI0.ISA.P40C, ByteAcc, NoLock, Preserve)
+        {
+            PRQ0,   8, 
+            PRQ1,   8, 
+            PRQ2,   8, 
+            PRQ3,   8
+        }
+
+        Method (IQST, 1, NotSerialized)
+        {
+            If ((0x80 & Arg0))
+            {
+                Return (0x09)
+            }
+
+            Return (0x0B)
+        }
+
+        Method (IQCR, 1, Serialized)
+        {
+            Name (PRR0, ResourceTemplate ()
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, _Y00)
+                {
+                    0x00000000,
+                }
+            })
+            CreateDWordField (PRR0, \_SB.IQCR._Y00._INT, PRRI)  // _INT: Interrupts
+            If ((Arg0 < 0x80))
+            {
+                PRRI = Arg0
+            }
+
+            Return (PRR0) /* \_SB_.IQCR.PRR0 */
+        }
+
+        Device (LNKA)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, Zero)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQ0))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQ0 |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQ0))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQ0 = PRRI /* \_SB_.LNKA._SRS.PRRI */
+            }
+        }
+
+        Device (LNKB)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQ1))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQ1 |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQ1))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQ1 = PRRI /* \_SB_.LNKB._SRS.PRRI */
+            }
+        }
+
+        Device (LNKC)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x02)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQ2))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQ2 |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQ2))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQ2 = PRRI /* \_SB_.LNKC._SRS.PRRI */
+            }
+        }
+
+        Device (LNKD)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x03)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQ3))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQ3 |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQ3))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQ3 = PRRI /* \_SB_.LNKD._SRS.PRRI */
+            }
+        }
+
+        Device (LNKS)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x04)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000009,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (0x0B)
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (_PRS) /* \_SB_.LNKS._PRS */
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+    }
+
+    Scope (_SB)
+    {
+        Device (\_SB.PCI0.PRES)
+        {
+            Name (_HID, EisaId ("PNP0A06") /* Generic Container Device */)  // _HID: Hardware ID
+            Name (_UID, "CPU Hotplug resources")  // _UID: Unique ID
+            Mutex (CPLK, 0x00)
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0xAF00,             // Range Minimum
+                    0xAF00,             // Range Maximum
+                    0x01,               // Alignment
+                    0x0C,               // Length
+                    )
+            })
+            OperationRegion (PRST, SystemIO, 0xAF00, 0x0C)
+            Field (PRST, ByteAcc, NoLock, WriteAsZeros)
+            {
+                Offset (0x04), 
+                CPEN,   1, 
+                CINS,   1, 
+                CRMV,   1, 
+                CEJ0,   1, 
+                Offset (0x05), 
+                CCMD,   8
+            }
+
+            Field (PRST, DWordAcc, NoLock, Preserve)
+            {
+                CSEL,   32, 
+                Offset (0x08), 
+                CDAT,   32
+            }
+
+            Method (_INI, 0, Serialized)  // _INI: Initialize
+            {
+                CSEL = Zero
+            }
+        }
+
+        Device (\_SB.CPUS)
+        {
+            Name (_HID, "ACPI0010" /* Processor Container Device */)  // _HID: Hardware ID
+            Name (_CID, EisaId ("PNP0A05") /* Generic Container Device */)  // _CID: Compatible ID
+            Method (CTFY, 2, NotSerialized)
+            {
+                If ((Arg0 == Zero))
+                {
+                    Notify (C000, Arg1)
+                }
+            }
+
+            Method (CSTA, 1, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                \_SB.PCI0.PRES.CSEL = Arg0
+                Local0 = Zero
+                If ((\_SB.PCI0.PRES.CPEN == One))
+                {
+                    Local0 = 0x0F
+                }
+
+                Release (\_SB.PCI0.PRES.CPLK)
+                Return (Local0)
+            }
+
+            Method (CEJ0, 1, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                \_SB.PCI0.PRES.CSEL = Arg0
+                \_SB.PCI0.PRES.CEJ0 = One
+                Release (\_SB.PCI0.PRES.CPLK)
+            }
+
+            Method (CSCN, 0, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                Name (CNEW, Package (0xFF){})
+                Local3 = Zero
+                Local4 = One
+                While ((Local4 == One))
+                {
+                    Local4 = Zero
+                    Local0 = One
+                    Local1 = Zero
+                    While (((Local0 == One) && (Local3 < One)))
+                    {
+                        Local0 = Zero
+                        \_SB.PCI0.PRES.CSEL = Local3
+                        \_SB.PCI0.PRES.CCMD = Zero
+                        If ((\_SB.PCI0.PRES.CDAT < Local3))
+                        {
+                            Break
+                        }
+
+                        If ((Local1 == 0xFF))
+                        {
+                            Local4 = One
+                            Break
+                        }
+
+                        Local3 = \_SB.PCI0.PRES.CDAT
+                        If ((\_SB.PCI0.PRES.CINS == One))
+                        {
+                            CNEW [Local1] = Local3
+                            Local1++
+                            Local0 = One
+                        }
+                        ElseIf ((\_SB.PCI0.PRES.CRMV == One))
+                        {
+                            CTFY (Local3, 0x03)
+                            \_SB.PCI0.PRES.CRMV = One
+                            Local0 = One
+                        }
+
+                        Local3++
+                    }
+
+                    Local2 = Zero
+                    While ((Local2 < Local1))
+                    {
+                        Local3 = DerefOf (CNEW [Local2])
+                        CTFY (Local3, One)
+                        Debug = Local3
+                        \_SB.PCI0.PRES.CSEL = Local3
+                        \_SB.PCI0.PRES.CINS = One
+                        Local2++
+                    }
+                }
+
+                Release (\_SB.PCI0.PRES.CPLK)
+            }
+
+            Method (COST, 4, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                \_SB.PCI0.PRES.CSEL = Arg0
+                \_SB.PCI0.PRES.CCMD = One
+                \_SB.PCI0.PRES.CDAT = Arg1
+                \_SB.PCI0.PRES.CCMD = 0x02
+                \_SB.PCI0.PRES.CDAT = Arg2
+                Release (\_SB.PCI0.PRES.CPLK)
+            }
+
+            Processor (C000, 0x00, 0x00000000, 0x00)
+            {
+                Method (_STA, 0, Serialized)  // _STA: Status
+                {
+                    Return (CSTA (Zero))
+                }
+
+                Name (_MAT, Buffer (0x08)  // _MAT: Multiple APIC Table Entry
+                {
+                     0x00, 0x08, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00   // ........
+                })
+                Method (_OST, 3, Serialized)  // _OST: OSPM Status Indication
+                {
+                    COST (Zero, Arg0, Arg1, Arg2)
+                }
+            }
+        }
+    }
+
+    Method (\_GPE._E02, 0, NotSerialized)  // _Exx: Edge-Triggered GPE, xx=0x00-0xFF
+    {
+        \_SB.CPUS.CSCN ()
+    }
+
+    Scope (_GPE)
+    {
+        Name (_HID, "ACPI0006" /* GPE Block Device */)  // _HID: Hardware ID
+        Method (_E01, 0, NotSerialized)  // _Exx: Edge-Triggered GPE, xx=0x00-0xFF
+        {
+            Acquire (\_SB.PCI0.BLCK, 0xFFFF)
+            \_SB.PCI0.PCNT ()
+            Release (\_SB.PCI0.BLCK)
+        }
+    }
+
+    Scope (\_SB.PCI0)
+    {
+        Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+        {
+            WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
+                0x0000,             // Granularity
+                0x0000,             // Range Minimum
+                0x00FF,             // Range Maximum
+                0x0000,             // Translation Offset
+                0x0100,             // Length
+                ,, )
+            IO (Decode16,
+                0x0CF8,             // Range Minimum
+                0x0CF8,             // Range Maximum
+                0x01,               // Alignment
+                0x08,               // Length
+                )
+            WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
+                0x0000,             // Granularity
+                0x0000,             // Range Minimum
+                0x0CF7,             // Range Maximum
+                0x0000,             // Translation Offset
+                0x0CF8,             // Length
+                ,, , TypeStatic, DenseTranslation)
+            WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
+                0x0000,             // Granularity
+                0x0D00,             // Range Minimum
+                0xFFFF,             // Range Maximum
+                0x0000,             // Translation Offset
+                0xF300,             // Length
+                ,, , TypeStatic, DenseTranslation)
+            DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
+                0x00000000,         // Granularity
+                0x000A0000,         // Range Minimum
+                0x000BFFFF,         // Range Maximum
+                0x00000000,         // Translation Offset
+                0x00020000,         // Length
+                ,, , AddressRangeMemory, TypeStatic)
+            DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
+                0x00000000,         // Granularity
+                0x08000000,         // Range Minimum
+                0xFEBFFFFF,         // Range Maximum
+                0x00000000,         // Translation Offset
+                0xF6C00000,         // Length
+                ,, , AddressRangeMemory, TypeStatic)
+            QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
+                0x0000000000000000, // Granularity
+                0x0000000100000000, // Range Minimum
+                0x000000017FFFFFFF, // Range Maximum
+                0x0000000000000000, // Translation Offset
+                0x0000000080000000, // Length
+                ,, , AddressRangeMemory, TypeStatic)
+        })
+        Device (GPE0)
+        {
+            Name (_HID, "PNP0A06" /* Generic Container Device */)  // _HID: Hardware ID
+            Name (_UID, "GPE0 resources")  // _UID: Unique ID
+            Name (_STA, 0x0B)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0xAFE0,             // Range Minimum
+                    0xAFE0,             // Range Maximum
+                    0x01,               // Alignment
+                    0x04,               // Length
+                    )
+            })
+        }
+
+        Device (PHPR)
+        {
+            Name (_HID, "PNP0A06" /* Generic Container Device */)  // _HID: Hardware ID
+            Name (_UID, "PCI Hotplug resources")  // _UID: Unique ID
+            Name (_STA, 0x0B)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0xAE00,             // Range Minimum
+                    0xAE00,             // Range Maximum
+                    0x01,               // Alignment
+                    0x14,               // Length
+                    )
+            })
+        }
+    }
+
+    Scope (\)
+    {
+        Name (_S3, Package (0x04)  // _S3_: S3 System State
+        {
+            One, 
+            One, 
+            Zero, 
+            Zero
+        })
+        Name (_S4, Package (0x04)  // _S4_: S4 System State
+        {
+            0x02, 
+            0x02, 
+            Zero, 
+            Zero
+        })
+        Name (_S5, Package (0x04)  // _S5_: S5 System State
+        {
+            Zero, 
+            Zero, 
+            Zero, 
+            Zero
+        })
+    }
+
+    Scope (\_SB.PCI0)
+    {
+        Device (FWCF)
+        {
+            Name (_HID, "QEMU0002")  // _HID: Hardware ID
+            Name (_STA, 0x0B)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0510,             // Range Minimum
+                    0x0510,             // Range Maximum
+                    0x01,               // Alignment
+                    0x0C,               // Length
+                    )
+            })
+        }
+    }
+
+    Scope (\_SB)
+    {
+        Scope (PCI0)
+        {
+            Device (S00)
+            {
+                Name (_ADR, Zero)  // _ADR: Address
+            }
+
+            Device (S10)
+            {
+                Name (_ADR, 0x00020000)  // _ADR: Address
+                Method (_S1D, 0, NotSerialized)  // _S1D: S1 Device State
+                {
+                    Return (Zero)
+                }
+
+                Method (_S2D, 0, NotSerialized)  // _S2D: S2 Device State
+                {
+                    Return (Zero)
+                }
+
+                Method (_S3D, 0, NotSerialized)  // _S3D: S3 Device State
+                {
+                    Return (Zero)
+                }
+            }
+
+            Device (S18)
+            {
+                Name (_ADR, 0x00030000)  // _ADR: Address
+                Name (BSEL, Zero)
+                Device (S00)
+                {
+                    Name (_SUN, Zero)  // _SUN: Slot User Number
+                    Name (_ADR, Zero)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (S08)
+                {
+                    Name (_SUN, One)  // _SUN: Slot User Number
+                    Name (_ADR, 0x00010000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (S10)
+                {
+                    Name (_SUN, 0x02)  // _SUN: Slot User Number
+                    Name (_ADR, 0x00020000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (S18)
+                {
+                    Name (_SUN, 0x03)  // _SUN: Slot User Number
+                    Name (_ADR, 0x00030000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (S20)
+                {
+                    Name (_SUN, 0x04)  // _SUN: Slot User Number
+                    Name (_ADR, 0x00040000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (S28)
+                {
+                    Name (_SUN, 0x05)  // _SUN: Slot User Number
+                    Name (_ADR, 0x00050000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (S30)
+                {
+                    Name (_SUN, 0x06)  // _SUN: Slot User Number
+                    Name (_ADR, 0x00060000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (S38)
+                {
+                    Name (_SUN, 0x07)  // _SUN: Slot User Number
+                    Name (_ADR, 0x00070000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (S40)
+                {
+                    Name (_SUN, 0x08)  // _SUN: Slot User Number
+                    Name (_ADR, 0x00080000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (S48)
+                {
+                    Name (_SUN, 0x09)  // _SUN: Slot User Number
+                    Name (_ADR, 0x00090000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (S50)
+                {
+                    Name (_SUN, 0x0A)  // _SUN: Slot User Number
+                    Name (_ADR, 0x000A0000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (S58)
+                {
+                    Name (_SUN, 0x0B)  // _SUN: Slot User Number
+                    Name (_ADR, 0x000B0000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (S60)
+                {
+                    Name (_SUN, 0x0C)  // _SUN: Slot User Number
+                    Name (_ADR, 0x000C0000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (S68)
+                {
+                    Name (_SUN, 0x0D)  // _SUN: Slot User Number
+                    Name (_ADR, 0x000D0000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (S70)
+                {
+                    Name (_SUN, 0x0E)  // _SUN: Slot User Number
+                    Name (_ADR, 0x000E0000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (S78)
+                {
+                    Name (_SUN, 0x0F)  // _SUN: Slot User Number
+                    Name (_ADR, 0x000F0000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (S80)
+                {
+                    Name (_SUN, 0x10)  // _SUN: Slot User Number
+                    Name (_ADR, 0x00100000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (S88)
+                {
+                    Name (_SUN, 0x11)  // _SUN: Slot User Number
+                    Name (_ADR, 0x00110000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (S90)
+                {
+                    Name (_SUN, 0x12)  // _SUN: Slot User Number
+                    Name (_ADR, 0x00120000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (S98)
+                {
+                    Name (_SUN, 0x13)  // _SUN: Slot User Number
+                    Name (_ADR, 0x00130000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (SA0)
+                {
+                    Name (_SUN, 0x14)  // _SUN: Slot User Number
+                    Name (_ADR, 0x00140000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (SA8)
+                {
+                    Name (_SUN, 0x15)  // _SUN: Slot User Number
+                    Name (_ADR, 0x00150000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (SB0)
+                {
+                    Name (_SUN, 0x16)  // _SUN: Slot User Number
+                    Name (_ADR, 0x00160000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (SB8)
+                {
+                    Name (_SUN, 0x17)  // _SUN: Slot User Number
+                    Name (_ADR, 0x00170000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (SC0)
+                {
+                    Name (_SUN, 0x18)  // _SUN: Slot User Number
+                    Name (_ADR, 0x00180000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (SC8)
+                {
+                    Name (_SUN, 0x19)  // _SUN: Slot User Number
+                    Name (_ADR, 0x00190000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (SD0)
+                {
+                    Name (_SUN, 0x1A)  // _SUN: Slot User Number
+                    Name (_ADR, 0x001A0000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (SD8)
+                {
+                    Name (_SUN, 0x1B)  // _SUN: Slot User Number
+                    Name (_ADR, 0x001B0000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (SE0)
+                {
+                    Name (_SUN, 0x1C)  // _SUN: Slot User Number
+                    Name (_ADR, 0x001C0000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (SE8)
+                {
+                    Name (_SUN, 0x1D)  // _SUN: Slot User Number
+                    Name (_ADR, 0x001D0000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (SF0)
+                {
+                    Name (_SUN, 0x1E)  // _SUN: Slot User Number
+                    Name (_ADR, 0x001E0000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Device (SF8)
+                {
+                    Name (_SUN, 0x1F)  // _SUN: Slot User Number
+                    Name (_ADR, 0x001F0000)  // _ADR: Address
+                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                    {
+                        PCEJ (BSEL, _SUN)
+                    }
+                }
+
+                Method (DVNT, 2, NotSerialized)
+                {
+                    If ((Arg0 & One))
+                    {
+                        Notify (S00, Arg1)
+                    }
+
+                    If ((Arg0 & 0x02))
+                    {
+                        Notify (S08, Arg1)
+                    }
+
+                    If ((Arg0 & 0x04))
+                    {
+                        Notify (S10, Arg1)
+                    }
+
+                    If ((Arg0 & 0x08))
+                    {
+                        Notify (S18, Arg1)
+                    }
+
+                    If ((Arg0 & 0x10))
+                    {
+                        Notify (S20, Arg1)
+                    }
+
+                    If ((Arg0 & 0x20))
+                    {
+                        Notify (S28, Arg1)
+                    }
+
+                    If ((Arg0 & 0x40))
+                    {
+                        Notify (S30, Arg1)
+                    }
+
+                    If ((Arg0 & 0x80))
+                    {
+                        Notify (S38, Arg1)
+                    }
+
+                    If ((Arg0 & 0x0100))
+                    {
+                        Notify (S40, Arg1)
+                    }
+
+                    If ((Arg0 & 0x0200))
+                    {
+                        Notify (S48, Arg1)
+                    }
+
+                    If ((Arg0 & 0x0400))
+                    {
+                        Notify (S50, Arg1)
+                    }
+
+                    If ((Arg0 & 0x0800))
+                    {
+                        Notify (S58, Arg1)
+                    }
+
+                    If ((Arg0 & 0x1000))
+                    {
+                        Notify (S60, Arg1)
+                    }
+
+                    If ((Arg0 & 0x2000))
+                    {
+                        Notify (S68, Arg1)
+                    }
+
+                    If ((Arg0 & 0x4000))
+                    {
+                        Notify (S70, Arg1)
+                    }
+
+                    If ((Arg0 & 0x8000))
+                    {
+                        Notify (S78, Arg1)
+                    }
+
+                    If ((Arg0 & 0x00010000))
+                    {
+                        Notify (S80, Arg1)
+                    }
+
+                    If ((Arg0 & 0x00020000))
+                    {
+                        Notify (S88, Arg1)
+                    }
+
+                    If ((Arg0 & 0x00040000))
+                    {
+                        Notify (S90, Arg1)
+                    }
+
+                    If ((Arg0 & 0x00080000))
+                    {
+                        Notify (S98, Arg1)
+                    }
+
+                    If ((Arg0 & 0x00100000))
+                    {
+                        Notify (SA0, Arg1)
+                    }
+
+                    If ((Arg0 & 0x00200000))
+                    {
+                        Notify (SA8, Arg1)
+                    }
+
+                    If ((Arg0 & 0x00400000))
+                    {
+                        Notify (SB0, Arg1)
+                    }
+
+                    If ((Arg0 & 0x00800000))
+                    {
+                        Notify (SB8, Arg1)
+                    }
+
+                    If ((Arg0 & 0x01000000))
+                    {
+                        Notify (SC0, Arg1)
+                    }
+
+                    If ((Arg0 & 0x02000000))
+                    {
+                        Notify (SC8, Arg1)
+                    }
+
+                    If ((Arg0 & 0x04000000))
+                    {
+                        Notify (SD0, Arg1)
+                    }
+
+                    If ((Arg0 & 0x08000000))
+                    {
+                        Notify (SD8, Arg1)
+                    }
+
+                    If ((Arg0 & 0x10000000))
+                    {
+                        Notify (SE0, Arg1)
+                    }
+
+                    If ((Arg0 & 0x20000000))
+                    {
+                        Notify (SE8, Arg1)
+                    }
+
+                    If ((Arg0 & 0x40000000))
+                    {
+                        Notify (SF0, Arg1)
+                    }
+
+                    If ((Arg0 & 0x80000000))
+                    {
+                        Notify (SF8, Arg1)
+                    }
+                }
+
+                Method (PCNT, 0, NotSerialized)
+                {
+                    BNUM = Zero
+                    DVNT (PCIU, One)
+                    DVNT (PCID, 0x03)
+                }
+            }
+
+            Method (PCNT, 0, NotSerialized)
+            {
+                ^S18.PCNT ()
+            }
+        }
+    }
+}
+
diff --git a/tests/data/acpi/pc/DSDT.hpbridge b/tests/data/acpi/pc/DSDT.hpbridge
index b0751398541bdf88ce405be9742aeba0b375dbc3..56032bcf1ba4e251f16c9028429826090531efdd 100644
GIT binary patch
delta 323
zcmbQQHdmd?CD<iot}p`wBkM-4Eo@9)c9RdVt!DByo}A16m&r|Rat?<~J%_WOYq${8
z{{n{O0>+d@E<%%27z-Fu3K$a#7!nux@JyJTz&JG-D3nl;9HY+?AM6w#;OuD-5ab%{
z9PH{-z<@63?CY{Xd@8!Ai(^Rg(gmE86S@8atyx+Cldp%F1yZm;Wim`0ChX}K%vg}z
z0diy_Lun$=Sqse<m|`dk@(p8j4snZ2=3*{jL^lH{3Dj4bT)>dD$dzSkQer_f*uW%)
eWM^)WCZG+`h6Tx!bvRU6ffkk~ZMNln#0dabbz!Rj

delta 193
zcmbQMK3|Q?CD<iIUYLP_@#jXaEo@9aW|I%Ft!DDqo}A16m&t=~at?<KUjbvnB1i7Y
z35*2{2?Y$34Y`E<7Pzxaj?rg{4|a+VaP~9^2yzW}_Vf#8bPjQgL>G5)3}Gx_L>C3B
l2AaFjn`MCq%VZl)NnLaWKy6&inEHZz!+`oW@8*2O2>_N2HcS8j

diff --git a/tests/data/acpi/pc/DSDT.ipmikcs.dsl b/tests/data/acpi/pc/DSDT.ipmikcs.dsl
new file mode 100644
index 0000000000..2e4b524ab8
--- /dev/null
+++ b/tests/data/acpi/pc/DSDT.ipmikcs.dsl
@@ -0,0 +1,1337 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembling to symbolic ASL+ operators
+ *
+ * Disassembly of tests/data/acpi/pc/DSDT.ipmikcs, Tue Aug  4 11:14:15 2020
+ *
+ * Original Table Header:
+ *     Signature        "DSDT"
+ *     Length           0x0000138E (5006)
+ *     Revision         0x01 **** 32-bit table (V1), no 64-bit math support
+ *     Checksum         0x54
+ *     OEM ID           "BOCHS "
+ *     OEM Table ID     "BXPCDSDT"
+ *     OEM Revision     0x00000001 (1)
+ *     Compiler ID      "BXPC"
+ *     Compiler Version 0x00000001 (1)
+ */
+DefinitionBlock ("", "DSDT", 1, "BOCHS ", "BXPCDSDT", 0x00000001)
+{
+    Scope (\)
+    {
+        OperationRegion (DBG, SystemIO, 0x0402, One)
+        Field (DBG, ByteAcc, NoLock, Preserve)
+        {
+            DBGB,   8
+        }
+
+        Method (DBUG, 1, NotSerialized)
+        {
+            ToHexString (Arg0, Local0)
+            ToBuffer (Local0, Local0)
+            Local1 = (SizeOf (Local0) - One)
+            Local2 = Zero
+            While ((Local2 < Local1))
+            {
+                DBGB = DerefOf (Local0 [Local2])
+                Local2++
+            }
+
+            DBGB = 0x0A
+        }
+    }
+
+    Scope (_SB)
+    {
+        Device (PCI0)
+        {
+            Name (_HID, EisaId ("PNP0A03") /* PCI Bus */)  // _HID: Hardware ID
+            Name (_ADR, Zero)  // _ADR: Address
+            Name (_UID, Zero)  // _UID: Unique ID
+        }
+    }
+
+    Scope (_SB)
+    {
+        Device (HPET)
+        {
+            Name (_HID, EisaId ("PNP0103") /* HPET System Timer */)  // _HID: Hardware ID
+            Name (_UID, Zero)  // _UID: Unique ID
+            OperationRegion (HPTM, SystemMemory, 0xFED00000, 0x0400)
+            Field (HPTM, DWordAcc, Lock, Preserve)
+            {
+                VEND,   32, 
+                PRD,    32
+            }
+
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Local0 = VEND /* \_SB_.HPET.VEND */
+                Local1 = PRD /* \_SB_.HPET.PRD_ */
+                Local0 >>= 0x10
+                If (((Local0 == Zero) || (Local0 == 0xFFFF)))
+                {
+                    Return (Zero)
+                }
+
+                If (((Local1 == Zero) || (Local1 > 0x05F5E100)))
+                {
+                    Return (Zero)
+                }
+
+                Return (0x0F)
+            }
+
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadOnly,
+                    0xFED00000,         // Address Base
+                    0x00000400,         // Address Length
+                    )
+            })
+        }
+    }
+
+    Scope (_SB.PCI0)
+    {
+        Device (ISA)
+        {
+            Name (_ADR, 0x00010000)  // _ADR: Address
+            OperationRegion (P40C, PCI_Config, 0x60, 0x04)
+        }
+    }
+
+    Scope (_SB.PCI0.ISA)
+    {
+        Device (MI1)
+        {
+            Name (_HID, EisaId ("IPI0001"))  // _HID: Hardware ID
+            Name (_STR, "ipmi_kcs")  // _STR: Description String
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0CA2,             // Range Minimum
+                    0x0CA3,             // Range Maximum
+                    0x01,               // Alignment
+                    0x02,               // Length
+                    )
+            })
+            Name (_IFT, One)  // _IFT: IPMI Interface Type
+            Name (_SRV, 0x0200)  // _SRV: IPMI Spec Revision
+        }
+
+        Device (KBD)
+        {
+            Name (_HID, EisaId ("PNP0303") /* IBM Enhanced Keyboard (101/102-key, PS/2 Mouse) */)  // _HID: Hardware ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0060,             // Range Minimum
+                    0x0060,             // Range Maximum
+                    0x01,               // Alignment
+                    0x01,               // Length
+                    )
+                IO (Decode16,
+                    0x0064,             // Range Minimum
+                    0x0064,             // Range Maximum
+                    0x01,               // Alignment
+                    0x01,               // Length
+                    )
+                IRQNoFlags ()
+                    {1}
+            })
+        }
+
+        Device (MOU)
+        {
+            Name (_HID, EisaId ("PNP0F13") /* PS/2 Mouse */)  // _HID: Hardware ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IRQNoFlags ()
+                    {12}
+            })
+        }
+
+        Device (FDC0)
+        {
+            Name (_HID, EisaId ("PNP0700"))  // _HID: Hardware ID
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x03F2,             // Range Minimum
+                    0x03F2,             // Range Maximum
+                    0x00,               // Alignment
+                    0x04,               // Length
+                    )
+                IO (Decode16,
+                    0x03F7,             // Range Minimum
+                    0x03F7,             // Range Maximum
+                    0x00,               // Alignment
+                    0x01,               // Length
+                    )
+                IRQNoFlags ()
+                    {6}
+                DMA (Compatibility, NotBusMaster, Transfer8, )
+                    {2}
+            })
+            Device (FLPA)
+            {
+                Name (_ADR, Zero)  // _ADR: Address
+                Name (_FDI, Package (0x10)  // _FDI: Floppy Drive Information
+                {
+                    Zero, 
+                    0x05, 
+                    0x4F, 
+                    0x30, 
+                    One, 
+                    0xAF, 
+                    0x02, 
+                    0x25, 
+                    0x02, 
+                    0x12, 
+                    0x1B, 
+                    0xFF, 
+                    0x6C, 
+                    0xF6, 
+                    0x0F, 
+                    0x08
+                })
+            }
+
+            Name (_FDE, Buffer (0x14)  // _FDE: Floppy Disk Enumerate
+            {
+                /* 0000 */  0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
+                /* 0008 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
+                /* 0010 */  0x02, 0x00, 0x00, 0x00                           // ....
+            })
+        }
+
+        Device (LPT1)
+        {
+            Name (_HID, EisaId ("PNP0400") /* Standard LPT Parallel Port */)  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0378,             // Range Minimum
+                    0x0378,             // Range Maximum
+                    0x08,               // Alignment
+                    0x08,               // Length
+                    )
+                IRQNoFlags ()
+                    {7}
+            })
+        }
+
+        Device (COM1)
+        {
+            Name (_HID, EisaId ("PNP0501") /* 16550A-compatible COM Serial Port */)  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x03F8,             // Range Minimum
+                    0x03F8,             // Range Maximum
+                    0x00,               // Alignment
+                    0x08,               // Length
+                    )
+                IRQNoFlags ()
+                    {4}
+            })
+        }
+
+        Device (RTC)
+        {
+            Name (_HID, EisaId ("PNP0B00") /* AT Real-Time Clock */)  // _HID: Hardware ID
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0070,             // Range Minimum
+                    0x0070,             // Range Maximum
+                    0x01,               // Alignment
+                    0x08,               // Length
+                    )
+                IRQNoFlags ()
+                    {8}
+            })
+        }
+    }
+
+    Scope (_SB.PCI0)
+    {
+        OperationRegion (PCST, SystemIO, 0xAE00, 0x08)
+        Field (PCST, DWordAcc, NoLock, WriteAsZeros)
+        {
+            PCIU,   32, 
+            PCID,   32
+        }
+
+        OperationRegion (SEJ, SystemIO, 0xAE08, 0x04)
+        Field (SEJ, DWordAcc, NoLock, WriteAsZeros)
+        {
+            B0EJ,   32
+        }
+
+        OperationRegion (BNMR, SystemIO, 0xAE10, 0x04)
+        Field (BNMR, DWordAcc, NoLock, WriteAsZeros)
+        {
+            BNUM,   32
+        }
+
+        Mutex (BLCK, 0x00)
+        Method (PCEJ, 2, NotSerialized)
+        {
+            Acquire (BLCK, 0xFFFF)
+            BNUM = Arg0
+            B0EJ = (One << Arg1)
+            Release (BLCK)
+            Return (Zero)
+        }
+    }
+
+    Scope (_SB)
+    {
+        Scope (PCI0)
+        {
+            Method (_PRT, 0, NotSerialized)  // _PRT: PCI Routing Table
+            {
+                Local0 = Package (0x80){}
+                Local1 = Zero
+                While ((Local1 < 0x80))
+                {
+                    Local2 = (Local1 >> 0x02)
+                    Local3 = ((Local1 + Local2) & 0x03)
+                    If ((Local3 == Zero))
+                    {
+                        Local4 = Package (0x04)
+                            {
+                                Zero, 
+                                Zero, 
+                                LNKD, 
+                                Zero
+                            }
+                    }
+
+                    If ((Local3 == One))
+                    {
+                        If ((Local1 == 0x04))
+                        {
+                            Local4 = Package (0x04)
+                                {
+                                    Zero, 
+                                    Zero, 
+                                    LNKS, 
+                                    Zero
+                                }
+                        }
+                        Else
+                        {
+                            Local4 = Package (0x04)
+                                {
+                                    Zero, 
+                                    Zero, 
+                                    LNKA, 
+                                    Zero
+                                }
+                        }
+                    }
+
+                    If ((Local3 == 0x02))
+                    {
+                        Local4 = Package (0x04)
+                            {
+                                Zero, 
+                                Zero, 
+                                LNKB, 
+                                Zero
+                            }
+                    }
+
+                    If ((Local3 == 0x03))
+                    {
+                        Local4 = Package (0x04)
+                            {
+                                Zero, 
+                                Zero, 
+                                LNKC, 
+                                Zero
+                            }
+                    }
+
+                    Local4 [Zero] = ((Local2 << 0x10) | 0xFFFF)
+                    Local4 [One] = (Local1 & 0x03)
+                    Local0 [Local1] = Local4
+                    Local1++
+                }
+
+                Return (Local0)
+            }
+        }
+
+        Field (PCI0.ISA.P40C, ByteAcc, NoLock, Preserve)
+        {
+            PRQ0,   8, 
+            PRQ1,   8, 
+            PRQ2,   8, 
+            PRQ3,   8
+        }
+
+        Method (IQST, 1, NotSerialized)
+        {
+            If ((0x80 & Arg0))
+            {
+                Return (0x09)
+            }
+
+            Return (0x0B)
+        }
+
+        Method (IQCR, 1, Serialized)
+        {
+            Name (PRR0, ResourceTemplate ()
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, _Y00)
+                {
+                    0x00000000,
+                }
+            })
+            CreateDWordField (PRR0, \_SB.IQCR._Y00._INT, PRRI)  // _INT: Interrupts
+            If ((Arg0 < 0x80))
+            {
+                PRRI = Arg0
+            }
+
+            Return (PRR0) /* \_SB_.IQCR.PRR0 */
+        }
+
+        Device (LNKA)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, Zero)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQ0))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQ0 |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQ0))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQ0 = PRRI /* \_SB_.LNKA._SRS.PRRI */
+            }
+        }
+
+        Device (LNKB)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQ1))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQ1 |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQ1))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQ1 = PRRI /* \_SB_.LNKB._SRS.PRRI */
+            }
+        }
+
+        Device (LNKC)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x02)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQ2))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQ2 |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQ2))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQ2 = PRRI /* \_SB_.LNKC._SRS.PRRI */
+            }
+        }
+
+        Device (LNKD)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x03)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQ3))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQ3 |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQ3))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQ3 = PRRI /* \_SB_.LNKD._SRS.PRRI */
+            }
+        }
+
+        Device (LNKS)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x04)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000009,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (0x0B)
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (_PRS) /* \_SB_.LNKS._PRS */
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+    }
+
+    Scope (_SB)
+    {
+        Device (\_SB.PCI0.PRES)
+        {
+            Name (_HID, EisaId ("PNP0A06") /* Generic Container Device */)  // _HID: Hardware ID
+            Name (_UID, "CPU Hotplug resources")  // _UID: Unique ID
+            Mutex (CPLK, 0x00)
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0xAF00,             // Range Minimum
+                    0xAF00,             // Range Maximum
+                    0x01,               // Alignment
+                    0x0C,               // Length
+                    )
+            })
+            OperationRegion (PRST, SystemIO, 0xAF00, 0x0C)
+            Field (PRST, ByteAcc, NoLock, WriteAsZeros)
+            {
+                Offset (0x04), 
+                CPEN,   1, 
+                CINS,   1, 
+                CRMV,   1, 
+                CEJ0,   1, 
+                Offset (0x05), 
+                CCMD,   8
+            }
+
+            Field (PRST, DWordAcc, NoLock, Preserve)
+            {
+                CSEL,   32, 
+                Offset (0x08), 
+                CDAT,   32
+            }
+
+            Method (_INI, 0, Serialized)  // _INI: Initialize
+            {
+                CSEL = Zero
+            }
+        }
+
+        Device (\_SB.CPUS)
+        {
+            Name (_HID, "ACPI0010" /* Processor Container Device */)  // _HID: Hardware ID
+            Name (_CID, EisaId ("PNP0A05") /* Generic Container Device */)  // _CID: Compatible ID
+            Method (CTFY, 2, NotSerialized)
+            {
+                If ((Arg0 == Zero))
+                {
+                    Notify (C000, Arg1)
+                }
+            }
+
+            Method (CSTA, 1, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                \_SB.PCI0.PRES.CSEL = Arg0
+                Local0 = Zero
+                If ((\_SB.PCI0.PRES.CPEN == One))
+                {
+                    Local0 = 0x0F
+                }
+
+                Release (\_SB.PCI0.PRES.CPLK)
+                Return (Local0)
+            }
+
+            Method (CEJ0, 1, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                \_SB.PCI0.PRES.CSEL = Arg0
+                \_SB.PCI0.PRES.CEJ0 = One
+                Release (\_SB.PCI0.PRES.CPLK)
+            }
+
+            Method (CSCN, 0, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                Local0 = One
+                While ((Local0 == One))
+                {
+                    Local0 = Zero
+                    \_SB.PCI0.PRES.CCMD = Zero
+                    If ((\_SB.PCI0.PRES.CINS == One))
+                    {
+                        CTFY (\_SB.PCI0.PRES.CDAT, One)
+                        \_SB.PCI0.PRES.CINS = One
+                        Local0 = One
+                    }
+                    ElseIf ((\_SB.PCI0.PRES.CRMV == One))
+                    {
+                        CTFY (\_SB.PCI0.PRES.CDAT, 0x03)
+                        \_SB.PCI0.PRES.CRMV = One
+                        Local0 = One
+                    }
+                }
+
+                Release (\_SB.PCI0.PRES.CPLK)
+            }
+
+            Method (COST, 4, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                \_SB.PCI0.PRES.CSEL = Arg0
+                \_SB.PCI0.PRES.CCMD = One
+                \_SB.PCI0.PRES.CDAT = Arg1
+                \_SB.PCI0.PRES.CCMD = 0x02
+                \_SB.PCI0.PRES.CDAT = Arg2
+                Release (\_SB.PCI0.PRES.CPLK)
+            }
+
+            Processor (C000, 0x00, 0x00000000, 0x00)
+            {
+                Method (_STA, 0, Serialized)  // _STA: Status
+                {
+                    Return (CSTA (Zero))
+                }
+
+                Name (_MAT, Buffer (0x08)  // _MAT: Multiple APIC Table Entry
+                {
+                     0x00, 0x08, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00   // ........
+                })
+                Method (_OST, 3, Serialized)  // _OST: OSPM Status Indication
+                {
+                    COST (Zero, Arg0, Arg1, Arg2)
+                }
+            }
+        }
+    }
+
+    Method (\_GPE._E02, 0, NotSerialized)  // _Exx: Edge-Triggered GPE, xx=0x00-0xFF
+    {
+        \_SB.CPUS.CSCN ()
+    }
+
+    Scope (_GPE)
+    {
+        Name (_HID, "ACPI0006" /* GPE Block Device */)  // _HID: Hardware ID
+        Method (_E01, 0, NotSerialized)  // _Exx: Edge-Triggered GPE, xx=0x00-0xFF
+        {
+            Acquire (\_SB.PCI0.BLCK, 0xFFFF)
+            \_SB.PCI0.PCNT ()
+            Release (\_SB.PCI0.BLCK)
+        }
+    }
+
+    Scope (\_SB.PCI0)
+    {
+        Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+        {
+            WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
+                0x0000,             // Granularity
+                0x0000,             // Range Minimum
+                0x00FF,             // Range Maximum
+                0x0000,             // Translation Offset
+                0x0100,             // Length
+                ,, )
+            IO (Decode16,
+                0x0CF8,             // Range Minimum
+                0x0CF8,             // Range Maximum
+                0x01,               // Alignment
+                0x08,               // Length
+                )
+            WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
+                0x0000,             // Granularity
+                0x0000,             // Range Minimum
+                0x0CF7,             // Range Maximum
+                0x0000,             // Translation Offset
+                0x0CF8,             // Length
+                ,, , TypeStatic, DenseTranslation)
+            WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
+                0x0000,             // Granularity
+                0x0D00,             // Range Minimum
+                0xFFFF,             // Range Maximum
+                0x0000,             // Translation Offset
+                0xF300,             // Length
+                ,, , TypeStatic, DenseTranslation)
+            DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
+                0x00000000,         // Granularity
+                0x000A0000,         // Range Minimum
+                0x000BFFFF,         // Range Maximum
+                0x00000000,         // Translation Offset
+                0x00020000,         // Length
+                ,, , AddressRangeMemory, TypeStatic)
+            DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
+                0x00000000,         // Granularity
+                0x08000000,         // Range Minimum
+                0xFEBFFFFF,         // Range Maximum
+                0x00000000,         // Translation Offset
+                0xF6C00000,         // Length
+                ,, , AddressRangeMemory, TypeStatic)
+            QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
+                0x0000000000000000, // Granularity
+                0x0000000100000000, // Range Minimum
+                0x000000017FFFFFFF, // Range Maximum
+                0x0000000000000000, // Translation Offset
+                0x0000000080000000, // Length
+                ,, , AddressRangeMemory, TypeStatic)
+        })
+        Device (GPE0)
+        {
+            Name (_HID, "PNP0A06" /* Generic Container Device */)  // _HID: Hardware ID
+            Name (_UID, "GPE0 resources")  // _UID: Unique ID
+            Name (_STA, 0x0B)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0xAFE0,             // Range Minimum
+                    0xAFE0,             // Range Maximum
+                    0x01,               // Alignment
+                    0x04,               // Length
+                    )
+            })
+        }
+
+        Device (PHPR)
+        {
+            Name (_HID, "PNP0A06" /* Generic Container Device */)  // _HID: Hardware ID
+            Name (_UID, "PCI Hotplug resources")  // _UID: Unique ID
+            Name (_STA, 0x0B)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0xAE00,             // Range Minimum
+                    0xAE00,             // Range Maximum
+                    0x01,               // Alignment
+                    0x14,               // Length
+                    )
+            })
+        }
+    }
+
+    Scope (\)
+    {
+        Name (_S3, Package (0x04)  // _S3_: S3 System State
+        {
+            One, 
+            One, 
+            Zero, 
+            Zero
+        })
+        Name (_S4, Package (0x04)  // _S4_: S4 System State
+        {
+            0x02, 
+            0x02, 
+            Zero, 
+            Zero
+        })
+        Name (_S5, Package (0x04)  // _S5_: S5 System State
+        {
+            Zero, 
+            Zero, 
+            Zero, 
+            Zero
+        })
+    }
+
+    Scope (\_SB.PCI0)
+    {
+        Device (FWCF)
+        {
+            Name (_HID, "QEMU0002")  // _HID: Hardware ID
+            Name (_STA, 0x0B)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0510,             // Range Minimum
+                    0x0510,             // Range Maximum
+                    0x01,               // Alignment
+                    0x0C,               // Length
+                    )
+            })
+        }
+    }
+
+    Scope (\_SB)
+    {
+        Scope (PCI0)
+        {
+            Name (BSEL, Zero)
+            Device (S00)
+            {
+                Name (_ADR, Zero)  // _ADR: Address
+            }
+
+            Device (S10)
+            {
+                Name (_ADR, 0x00020000)  // _ADR: Address
+                Method (_S1D, 0, NotSerialized)  // _S1D: S1 Device State
+                {
+                    Return (Zero)
+                }
+
+                Method (_S2D, 0, NotSerialized)  // _S2D: S2 Device State
+                {
+                    Return (Zero)
+                }
+
+                Method (_S3D, 0, NotSerialized)  // _S3D: S3 Device State
+                {
+                    Return (Zero)
+                }
+            }
+
+            Device (S18)
+            {
+                Name (_SUN, 0x03)  // _SUN: Slot User Number
+                Name (_ADR, 0x00030000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S20)
+            {
+                Name (_SUN, 0x04)  // _SUN: Slot User Number
+                Name (_ADR, 0x00040000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S28)
+            {
+                Name (_SUN, 0x05)  // _SUN: Slot User Number
+                Name (_ADR, 0x00050000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S30)
+            {
+                Name (_SUN, 0x06)  // _SUN: Slot User Number
+                Name (_ADR, 0x00060000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S38)
+            {
+                Name (_SUN, 0x07)  // _SUN: Slot User Number
+                Name (_ADR, 0x00070000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S40)
+            {
+                Name (_SUN, 0x08)  // _SUN: Slot User Number
+                Name (_ADR, 0x00080000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S48)
+            {
+                Name (_SUN, 0x09)  // _SUN: Slot User Number
+                Name (_ADR, 0x00090000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S50)
+            {
+                Name (_SUN, 0x0A)  // _SUN: Slot User Number
+                Name (_ADR, 0x000A0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S58)
+            {
+                Name (_SUN, 0x0B)  // _SUN: Slot User Number
+                Name (_ADR, 0x000B0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S60)
+            {
+                Name (_SUN, 0x0C)  // _SUN: Slot User Number
+                Name (_ADR, 0x000C0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S68)
+            {
+                Name (_SUN, 0x0D)  // _SUN: Slot User Number
+                Name (_ADR, 0x000D0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S70)
+            {
+                Name (_SUN, 0x0E)  // _SUN: Slot User Number
+                Name (_ADR, 0x000E0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S78)
+            {
+                Name (_SUN, 0x0F)  // _SUN: Slot User Number
+                Name (_ADR, 0x000F0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S80)
+            {
+                Name (_SUN, 0x10)  // _SUN: Slot User Number
+                Name (_ADR, 0x00100000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S88)
+            {
+                Name (_SUN, 0x11)  // _SUN: Slot User Number
+                Name (_ADR, 0x00110000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S90)
+            {
+                Name (_SUN, 0x12)  // _SUN: Slot User Number
+                Name (_ADR, 0x00120000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S98)
+            {
+                Name (_SUN, 0x13)  // _SUN: Slot User Number
+                Name (_ADR, 0x00130000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SA0)
+            {
+                Name (_SUN, 0x14)  // _SUN: Slot User Number
+                Name (_ADR, 0x00140000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SA8)
+            {
+                Name (_SUN, 0x15)  // _SUN: Slot User Number
+                Name (_ADR, 0x00150000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SB0)
+            {
+                Name (_SUN, 0x16)  // _SUN: Slot User Number
+                Name (_ADR, 0x00160000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SB8)
+            {
+                Name (_SUN, 0x17)  // _SUN: Slot User Number
+                Name (_ADR, 0x00170000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SC0)
+            {
+                Name (_SUN, 0x18)  // _SUN: Slot User Number
+                Name (_ADR, 0x00180000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SC8)
+            {
+                Name (_SUN, 0x19)  // _SUN: Slot User Number
+                Name (_ADR, 0x00190000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SD0)
+            {
+                Name (_SUN, 0x1A)  // _SUN: Slot User Number
+                Name (_ADR, 0x001A0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SD8)
+            {
+                Name (_SUN, 0x1B)  // _SUN: Slot User Number
+                Name (_ADR, 0x001B0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SE0)
+            {
+                Name (_SUN, 0x1C)  // _SUN: Slot User Number
+                Name (_ADR, 0x001C0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SE8)
+            {
+                Name (_SUN, 0x1D)  // _SUN: Slot User Number
+                Name (_ADR, 0x001D0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SF0)
+            {
+                Name (_SUN, 0x1E)  // _SUN: Slot User Number
+                Name (_ADR, 0x001E0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SF8)
+            {
+                Name (_SUN, 0x1F)  // _SUN: Slot User Number
+                Name (_ADR, 0x001F0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Method (DVNT, 2, NotSerialized)
+            {
+                If ((Arg0 & 0x08))
+                {
+                    Notify (S18, Arg1)
+                }
+
+                If ((Arg0 & 0x10))
+                {
+                    Notify (S20, Arg1)
+                }
+
+                If ((Arg0 & 0x20))
+                {
+                    Notify (S28, Arg1)
+                }
+
+                If ((Arg0 & 0x40))
+                {
+                    Notify (S30, Arg1)
+                }
+
+                If ((Arg0 & 0x80))
+                {
+                    Notify (S38, Arg1)
+                }
+
+                If ((Arg0 & 0x0100))
+                {
+                    Notify (S40, Arg1)
+                }
+
+                If ((Arg0 & 0x0200))
+                {
+                    Notify (S48, Arg1)
+                }
+
+                If ((Arg0 & 0x0400))
+                {
+                    Notify (S50, Arg1)
+                }
+
+                If ((Arg0 & 0x0800))
+                {
+                    Notify (S58, Arg1)
+                }
+
+                If ((Arg0 & 0x1000))
+                {
+                    Notify (S60, Arg1)
+                }
+
+                If ((Arg0 & 0x2000))
+                {
+                    Notify (S68, Arg1)
+                }
+
+                If ((Arg0 & 0x4000))
+                {
+                    Notify (S70, Arg1)
+                }
+
+                If ((Arg0 & 0x8000))
+                {
+                    Notify (S78, Arg1)
+                }
+
+                If ((Arg0 & 0x00010000))
+                {
+                    Notify (S80, Arg1)
+                }
+
+                If ((Arg0 & 0x00020000))
+                {
+                    Notify (S88, Arg1)
+                }
+
+                If ((Arg0 & 0x00040000))
+                {
+                    Notify (S90, Arg1)
+                }
+
+                If ((Arg0 & 0x00080000))
+                {
+                    Notify (S98, Arg1)
+                }
+
+                If ((Arg0 & 0x00100000))
+                {
+                    Notify (SA0, Arg1)
+                }
+
+                If ((Arg0 & 0x00200000))
+                {
+                    Notify (SA8, Arg1)
+                }
+
+                If ((Arg0 & 0x00400000))
+                {
+                    Notify (SB0, Arg1)
+                }
+
+                If ((Arg0 & 0x00800000))
+                {
+                    Notify (SB8, Arg1)
+                }
+
+                If ((Arg0 & 0x01000000))
+                {
+                    Notify (SC0, Arg1)
+                }
+
+                If ((Arg0 & 0x02000000))
+                {
+                    Notify (SC8, Arg1)
+                }
+
+                If ((Arg0 & 0x04000000))
+                {
+                    Notify (SD0, Arg1)
+                }
+
+                If ((Arg0 & 0x08000000))
+                {
+                    Notify (SD8, Arg1)
+                }
+
+                If ((Arg0 & 0x10000000))
+                {
+                    Notify (SE0, Arg1)
+                }
+
+                If ((Arg0 & 0x20000000))
+                {
+                    Notify (SE8, Arg1)
+                }
+
+                If ((Arg0 & 0x40000000))
+                {
+                    Notify (SF0, Arg1)
+                }
+
+                If ((Arg0 & 0x80000000))
+                {
+                    Notify (SF8, Arg1)
+                }
+            }
+
+            Method (PCNT, 0, NotSerialized)
+            {
+                BNUM = Zero
+                DVNT (PCIU, One)
+                DVNT (PCID, 0x03)
+            }
+        }
+    }
+}
+
diff --git a/tests/data/acpi/pc/DSDT.memhp.dsl b/tests/data/acpi/pc/DSDT.memhp.dsl
new file mode 100644
index 0000000000..299315051e
--- /dev/null
+++ b/tests/data/acpi/pc/DSDT.memhp.dsl
@@ -0,0 +1,1625 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembling to symbolic ASL+ operators
+ *
+ * Disassembly of tests/data/acpi/pc/DSDT.memhp, Tue Aug  4 11:14:15 2020
+ *
+ * Original Table Header:
+ *     Signature        "DSDT"
+ *     Length           0x00001895 (6293)
+ *     Revision         0x01 **** 32-bit table (V1), no 64-bit math support
+ *     Checksum         0xB2
+ *     OEM ID           "BOCHS "
+ *     OEM Table ID     "BXPCDSDT"
+ *     OEM Revision     0x00000001 (1)
+ *     Compiler ID      "BXPC"
+ *     Compiler Version 0x00000001 (1)
+ */
+DefinitionBlock ("", "DSDT", 1, "BOCHS ", "BXPCDSDT", 0x00000001)
+{
+    Scope (\)
+    {
+        OperationRegion (DBG, SystemIO, 0x0402, One)
+        Field (DBG, ByteAcc, NoLock, Preserve)
+        {
+            DBGB,   8
+        }
+
+        Method (DBUG, 1, NotSerialized)
+        {
+            ToHexString (Arg0, Local0)
+            ToBuffer (Local0, Local0)
+            Local1 = (SizeOf (Local0) - One)
+            Local2 = Zero
+            While ((Local2 < Local1))
+            {
+                DBGB = DerefOf (Local0 [Local2])
+                Local2++
+            }
+
+            DBGB = 0x0A
+        }
+    }
+
+    Scope (_SB)
+    {
+        Device (PCI0)
+        {
+            Name (_HID, EisaId ("PNP0A03") /* PCI Bus */)  // _HID: Hardware ID
+            Name (_ADR, Zero)  // _ADR: Address
+            Name (_UID, Zero)  // _UID: Unique ID
+        }
+    }
+
+    Scope (_SB)
+    {
+        Device (HPET)
+        {
+            Name (_HID, EisaId ("PNP0103") /* HPET System Timer */)  // _HID: Hardware ID
+            Name (_UID, Zero)  // _UID: Unique ID
+            OperationRegion (HPTM, SystemMemory, 0xFED00000, 0x0400)
+            Field (HPTM, DWordAcc, Lock, Preserve)
+            {
+                VEND,   32, 
+                PRD,    32
+            }
+
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Local0 = VEND /* \_SB_.HPET.VEND */
+                Local1 = PRD /* \_SB_.HPET.PRD_ */
+                Local0 >>= 0x10
+                If (((Local0 == Zero) || (Local0 == 0xFFFF)))
+                {
+                    Return (Zero)
+                }
+
+                If (((Local1 == Zero) || (Local1 > 0x05F5E100)))
+                {
+                    Return (Zero)
+                }
+
+                Return (0x0F)
+            }
+
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadOnly,
+                    0xFED00000,         // Address Base
+                    0x00000400,         // Address Length
+                    )
+            })
+        }
+    }
+
+    Scope (_SB.PCI0)
+    {
+        Device (ISA)
+        {
+            Name (_ADR, 0x00010000)  // _ADR: Address
+            OperationRegion (P40C, PCI_Config, 0x60, 0x04)
+        }
+    }
+
+    Scope (_SB.PCI0.ISA)
+    {
+        Device (KBD)
+        {
+            Name (_HID, EisaId ("PNP0303") /* IBM Enhanced Keyboard (101/102-key, PS/2 Mouse) */)  // _HID: Hardware ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0060,             // Range Minimum
+                    0x0060,             // Range Maximum
+                    0x01,               // Alignment
+                    0x01,               // Length
+                    )
+                IO (Decode16,
+                    0x0064,             // Range Minimum
+                    0x0064,             // Range Maximum
+                    0x01,               // Alignment
+                    0x01,               // Length
+                    )
+                IRQNoFlags ()
+                    {1}
+            })
+        }
+
+        Device (MOU)
+        {
+            Name (_HID, EisaId ("PNP0F13") /* PS/2 Mouse */)  // _HID: Hardware ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IRQNoFlags ()
+                    {12}
+            })
+        }
+
+        Device (FDC0)
+        {
+            Name (_HID, EisaId ("PNP0700"))  // _HID: Hardware ID
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x03F2,             // Range Minimum
+                    0x03F2,             // Range Maximum
+                    0x00,               // Alignment
+                    0x04,               // Length
+                    )
+                IO (Decode16,
+                    0x03F7,             // Range Minimum
+                    0x03F7,             // Range Maximum
+                    0x00,               // Alignment
+                    0x01,               // Length
+                    )
+                IRQNoFlags ()
+                    {6}
+                DMA (Compatibility, NotBusMaster, Transfer8, )
+                    {2}
+            })
+            Device (FLPA)
+            {
+                Name (_ADR, Zero)  // _ADR: Address
+                Name (_FDI, Package (0x10)  // _FDI: Floppy Drive Information
+                {
+                    Zero, 
+                    0x05, 
+                    0x4F, 
+                    0x30, 
+                    One, 
+                    0xAF, 
+                    0x02, 
+                    0x25, 
+                    0x02, 
+                    0x12, 
+                    0x1B, 
+                    0xFF, 
+                    0x6C, 
+                    0xF6, 
+                    0x0F, 
+                    0x08
+                })
+            }
+
+            Name (_FDE, Buffer (0x14)  // _FDE: Floppy Disk Enumerate
+            {
+                /* 0000 */  0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
+                /* 0008 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
+                /* 0010 */  0x02, 0x00, 0x00, 0x00                           // ....
+            })
+        }
+
+        Device (LPT1)
+        {
+            Name (_HID, EisaId ("PNP0400") /* Standard LPT Parallel Port */)  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0378,             // Range Minimum
+                    0x0378,             // Range Maximum
+                    0x08,               // Alignment
+                    0x08,               // Length
+                    )
+                IRQNoFlags ()
+                    {7}
+            })
+        }
+
+        Device (COM1)
+        {
+            Name (_HID, EisaId ("PNP0501") /* 16550A-compatible COM Serial Port */)  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x03F8,             // Range Minimum
+                    0x03F8,             // Range Maximum
+                    0x00,               // Alignment
+                    0x08,               // Length
+                    )
+                IRQNoFlags ()
+                    {4}
+            })
+        }
+
+        Device (RTC)
+        {
+            Name (_HID, EisaId ("PNP0B00") /* AT Real-Time Clock */)  // _HID: Hardware ID
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0070,             // Range Minimum
+                    0x0070,             // Range Maximum
+                    0x01,               // Alignment
+                    0x08,               // Length
+                    )
+                IRQNoFlags ()
+                    {8}
+            })
+        }
+    }
+
+    Scope (_SB.PCI0)
+    {
+        OperationRegion (PCST, SystemIO, 0xAE00, 0x08)
+        Field (PCST, DWordAcc, NoLock, WriteAsZeros)
+        {
+            PCIU,   32, 
+            PCID,   32
+        }
+
+        OperationRegion (SEJ, SystemIO, 0xAE08, 0x04)
+        Field (SEJ, DWordAcc, NoLock, WriteAsZeros)
+        {
+            B0EJ,   32
+        }
+
+        OperationRegion (BNMR, SystemIO, 0xAE10, 0x04)
+        Field (BNMR, DWordAcc, NoLock, WriteAsZeros)
+        {
+            BNUM,   32
+        }
+
+        Mutex (BLCK, 0x00)
+        Method (PCEJ, 2, NotSerialized)
+        {
+            Acquire (BLCK, 0xFFFF)
+            BNUM = Arg0
+            B0EJ = (One << Arg1)
+            Release (BLCK)
+            Return (Zero)
+        }
+    }
+
+    Scope (_SB)
+    {
+        Scope (PCI0)
+        {
+            Method (_PRT, 0, NotSerialized)  // _PRT: PCI Routing Table
+            {
+                Local0 = Package (0x80){}
+                Local1 = Zero
+                While ((Local1 < 0x80))
+                {
+                    Local2 = (Local1 >> 0x02)
+                    Local3 = ((Local1 + Local2) & 0x03)
+                    If ((Local3 == Zero))
+                    {
+                        Local4 = Package (0x04)
+                            {
+                                Zero, 
+                                Zero, 
+                                LNKD, 
+                                Zero
+                            }
+                    }
+
+                    If ((Local3 == One))
+                    {
+                        If ((Local1 == 0x04))
+                        {
+                            Local4 = Package (0x04)
+                                {
+                                    Zero, 
+                                    Zero, 
+                                    LNKS, 
+                                    Zero
+                                }
+                        }
+                        Else
+                        {
+                            Local4 = Package (0x04)
+                                {
+                                    Zero, 
+                                    Zero, 
+                                    LNKA, 
+                                    Zero
+                                }
+                        }
+                    }
+
+                    If ((Local3 == 0x02))
+                    {
+                        Local4 = Package (0x04)
+                            {
+                                Zero, 
+                                Zero, 
+                                LNKB, 
+                                Zero
+                            }
+                    }
+
+                    If ((Local3 == 0x03))
+                    {
+                        Local4 = Package (0x04)
+                            {
+                                Zero, 
+                                Zero, 
+                                LNKC, 
+                                Zero
+                            }
+                    }
+
+                    Local4 [Zero] = ((Local2 << 0x10) | 0xFFFF)
+                    Local4 [One] = (Local1 & 0x03)
+                    Local0 [Local1] = Local4
+                    Local1++
+                }
+
+                Return (Local0)
+            }
+        }
+
+        Field (PCI0.ISA.P40C, ByteAcc, NoLock, Preserve)
+        {
+            PRQ0,   8, 
+            PRQ1,   8, 
+            PRQ2,   8, 
+            PRQ3,   8
+        }
+
+        Method (IQST, 1, NotSerialized)
+        {
+            If ((0x80 & Arg0))
+            {
+                Return (0x09)
+            }
+
+            Return (0x0B)
+        }
+
+        Method (IQCR, 1, Serialized)
+        {
+            Name (PRR0, ResourceTemplate ()
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, _Y00)
+                {
+                    0x00000000,
+                }
+            })
+            CreateDWordField (PRR0, \_SB.IQCR._Y00._INT, PRRI)  // _INT: Interrupts
+            If ((Arg0 < 0x80))
+            {
+                PRRI = Arg0
+            }
+
+            Return (PRR0) /* \_SB_.IQCR.PRR0 */
+        }
+
+        Device (LNKA)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, Zero)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQ0))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQ0 |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQ0))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQ0 = PRRI /* \_SB_.LNKA._SRS.PRRI */
+            }
+        }
+
+        Device (LNKB)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQ1))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQ1 |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQ1))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQ1 = PRRI /* \_SB_.LNKB._SRS.PRRI */
+            }
+        }
+
+        Device (LNKC)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x02)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQ2))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQ2 |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQ2))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQ2 = PRRI /* \_SB_.LNKC._SRS.PRRI */
+            }
+        }
+
+        Device (LNKD)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x03)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQ3))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQ3 |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQ3))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQ3 = PRRI /* \_SB_.LNKD._SRS.PRRI */
+            }
+        }
+
+        Device (LNKS)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x04)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000009,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (0x0B)
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (_PRS) /* \_SB_.LNKS._PRS */
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+    }
+
+    Scope (_SB)
+    {
+        Device (\_SB.PCI0.PRES)
+        {
+            Name (_HID, EisaId ("PNP0A06") /* Generic Container Device */)  // _HID: Hardware ID
+            Name (_UID, "CPU Hotplug resources")  // _UID: Unique ID
+            Mutex (CPLK, 0x00)
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0xAF00,             // Range Minimum
+                    0xAF00,             // Range Maximum
+                    0x01,               // Alignment
+                    0x0C,               // Length
+                    )
+            })
+            OperationRegion (PRST, SystemIO, 0xAF00, 0x0C)
+            Field (PRST, ByteAcc, NoLock, WriteAsZeros)
+            {
+                Offset (0x04), 
+                CPEN,   1, 
+                CINS,   1, 
+                CRMV,   1, 
+                CEJ0,   1, 
+                Offset (0x05), 
+                CCMD,   8
+            }
+
+            Field (PRST, DWordAcc, NoLock, Preserve)
+            {
+                CSEL,   32, 
+                Offset (0x08), 
+                CDAT,   32
+            }
+
+            Method (_INI, 0, Serialized)  // _INI: Initialize
+            {
+                CSEL = Zero
+            }
+        }
+
+        Device (\_SB.CPUS)
+        {
+            Name (_HID, "ACPI0010" /* Processor Container Device */)  // _HID: Hardware ID
+            Name (_CID, EisaId ("PNP0A05") /* Generic Container Device */)  // _CID: Compatible ID
+            Method (CTFY, 2, NotSerialized)
+            {
+                If ((Arg0 == Zero))
+                {
+                    Notify (C000, Arg1)
+                }
+            }
+
+            Method (CSTA, 1, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                \_SB.PCI0.PRES.CSEL = Arg0
+                Local0 = Zero
+                If ((\_SB.PCI0.PRES.CPEN == One))
+                {
+                    Local0 = 0x0F
+                }
+
+                Release (\_SB.PCI0.PRES.CPLK)
+                Return (Local0)
+            }
+
+            Method (CEJ0, 1, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                \_SB.PCI0.PRES.CSEL = Arg0
+                \_SB.PCI0.PRES.CEJ0 = One
+                Release (\_SB.PCI0.PRES.CPLK)
+            }
+
+            Method (CSCN, 0, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                Local0 = One
+                While ((Local0 == One))
+                {
+                    Local0 = Zero
+                    \_SB.PCI0.PRES.CCMD = Zero
+                    If ((\_SB.PCI0.PRES.CINS == One))
+                    {
+                        CTFY (\_SB.PCI0.PRES.CDAT, One)
+                        \_SB.PCI0.PRES.CINS = One
+                        Local0 = One
+                    }
+                    ElseIf ((\_SB.PCI0.PRES.CRMV == One))
+                    {
+                        CTFY (\_SB.PCI0.PRES.CDAT, 0x03)
+                        \_SB.PCI0.PRES.CRMV = One
+                        Local0 = One
+                    }
+                }
+
+                Release (\_SB.PCI0.PRES.CPLK)
+            }
+
+            Method (COST, 4, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                \_SB.PCI0.PRES.CSEL = Arg0
+                \_SB.PCI0.PRES.CCMD = One
+                \_SB.PCI0.PRES.CDAT = Arg1
+                \_SB.PCI0.PRES.CCMD = 0x02
+                \_SB.PCI0.PRES.CDAT = Arg2
+                Release (\_SB.PCI0.PRES.CPLK)
+            }
+
+            Processor (C000, 0x00, 0x00000000, 0x00)
+            {
+                Method (_STA, 0, Serialized)  // _STA: Status
+                {
+                    Return (CSTA (Zero))
+                }
+
+                Name (_MAT, Buffer (0x08)  // _MAT: Multiple APIC Table Entry
+                {
+                     0x00, 0x08, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00   // ........
+                })
+                Method (_OST, 3, Serialized)  // _OST: OSPM Status Indication
+                {
+                    COST (Zero, Arg0, Arg1, Arg2)
+                }
+
+                Name (_PXM, Zero)  // _PXM: Device Proximity
+            }
+        }
+    }
+
+    Method (\_GPE._E02, 0, NotSerialized)  // _Exx: Edge-Triggered GPE, xx=0x00-0xFF
+    {
+        \_SB.CPUS.CSCN ()
+    }
+
+    Device (\_SB.PCI0.MHPD)
+    {
+        Name (_HID, "PNP0A06" /* Generic Container Device */)  // _HID: Hardware ID
+        Name (_UID, "Memory hotplug resources")  // _UID: Unique ID
+        Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+        {
+            IO (Decode16,
+                0x0A00,             // Range Minimum
+                0x0A00,             // Range Maximum
+                0x00,               // Alignment
+                0x18,               // Length
+                )
+        })
+        OperationRegion (HPMR, SystemIO, 0x0A00, 0x18)
+    }
+
+    Device (\_SB.MHPC)
+    {
+        Name (_HID, "PNP0A06" /* Generic Container Device */)  // _HID: Hardware ID
+        Name (_UID, "DIMM devices")  // _UID: Unique ID
+        Name (MDNR, 0x03)
+        Field (\_SB.PCI0.MHPD.HPMR, DWordAcc, NoLock, Preserve)
+        {
+            MRBL,   32, 
+            MRBH,   32, 
+            MRLL,   32, 
+            MRLH,   32, 
+            MPX,    32
+        }
+
+        Field (\_SB.PCI0.MHPD.HPMR, ByteAcc, NoLock, WriteAsZeros)
+        {
+            Offset (0x14), 
+            MES,    1, 
+            MINS,   1, 
+            MRMV,   1, 
+            MEJ,    1
+        }
+
+        Field (\_SB.PCI0.MHPD.HPMR, DWordAcc, NoLock, Preserve)
+        {
+            MSEL,   32, 
+            MOEV,   32, 
+            MOSC,   32
+        }
+
+        Method (_STA, 0, NotSerialized)  // _STA: Status
+        {
+            If ((MDNR == Zero))
+            {
+                Return (Zero)
+            }
+
+            Return (0x0B)
+        }
+
+        Mutex (MLCK, 0x00)
+        Method (MSCN, 0, NotSerialized)
+        {
+            If ((MDNR == Zero))
+            {
+                Return (Zero)
+            }
+
+            Local0 = Zero
+            Acquire (MLCK, 0xFFFF)
+            While ((Local0 < MDNR))
+            {
+                MSEL = Local0
+                If ((MINS == One))
+                {
+                    MTFY (Local0, One)
+                    MINS = One
+                }
+                ElseIf ((MRMV == One))
+                {
+                    MTFY (Local0, 0x03)
+                    MRMV = One
+                }
+
+                Local0 += One
+            }
+
+            Release (MLCK)
+            Return (One)
+        }
+
+        Method (MRST, 1, NotSerialized)
+        {
+            Local0 = Zero
+            Acquire (MLCK, 0xFFFF)
+            MSEL = ToInteger (Arg0)
+            If ((MES == One))
+            {
+                Local0 = 0x0F
+            }
+
+            Release (MLCK)
+            Return (Local0)
+        }
+
+        Method (MCRS, 1, Serialized)
+        {
+            Acquire (MLCK, 0xFFFF)
+            MSEL = ToInteger (Arg0)
+            Name (MR64, ResourceTemplate ()
+            {
+                QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
+                    0x0000000000000000, // Granularity
+                    0x0000000000000000, // Range Minimum
+                    0xFFFFFFFFFFFFFFFE, // Range Maximum
+                    0x0000000000000000, // Translation Offset
+                    0xFFFFFFFFFFFFFFFF, // Length
+                    ,, _Y01, AddressRangeMemory, TypeStatic)
+            })
+            CreateDWordField (MR64, \_SB.MHPC.MCRS._Y01._MIN, MINL)  // _MIN: Minimum Base Address
+            CreateDWordField (MR64, 0x12, MINH)
+            CreateDWordField (MR64, \_SB.MHPC.MCRS._Y01._LEN, LENL)  // _LEN: Length
+            CreateDWordField (MR64, 0x2A, LENH)
+            CreateDWordField (MR64, \_SB.MHPC.MCRS._Y01._MAX, MAXL)  // _MAX: Maximum Base Address
+            CreateDWordField (MR64, 0x1A, MAXH)
+            MINH = MRBH /* \_SB_.MHPC.MRBH */
+            MINL = MRBL /* \_SB_.MHPC.MRBL */
+            LENH = MRLH /* \_SB_.MHPC.MRLH */
+            LENL = MRLL /* \_SB_.MHPC.MRLL */
+            MAXL = (MINL + LENL) /* \_SB_.MHPC.MCRS.LENL */
+            MAXH = (MINH + LENH) /* \_SB_.MHPC.MCRS.LENH */
+            If ((MAXL < MINL))
+            {
+                MAXH += One
+            }
+
+            If ((MAXL < One))
+            {
+                MAXH -= One
+            }
+
+            MAXL -= One
+            If ((MAXH == Zero))
+            {
+                Name (MR32, ResourceTemplate ()
+                {
+                    DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
+                        0x00000000,         // Granularity
+                        0x00000000,         // Range Minimum
+                        0xFFFFFFFE,         // Range Maximum
+                        0x00000000,         // Translation Offset
+                        0xFFFFFFFF,         // Length
+                        ,, _Y02, AddressRangeMemory, TypeStatic)
+                })
+                CreateDWordField (MR32, \_SB.MHPC.MCRS._Y02._MIN, MIN)  // _MIN: Minimum Base Address
+                CreateDWordField (MR32, \_SB.MHPC.MCRS._Y02._MAX, MAX)  // _MAX: Maximum Base Address
+                CreateDWordField (MR32, \_SB.MHPC.MCRS._Y02._LEN, LEN)  // _LEN: Length
+                MIN = MINL /* \_SB_.MHPC.MCRS.MINL */
+                MAX = MAXL /* \_SB_.MHPC.MCRS.MAXL */
+                LEN = LENL /* \_SB_.MHPC.MCRS.LENL */
+                Release (MLCK)
+                Return (MR32) /* \_SB_.MHPC.MCRS.MR32 */
+            }
+
+            Release (MLCK)
+            Return (MR64) /* \_SB_.MHPC.MCRS.MR64 */
+        }
+
+        Method (MPXM, 1, NotSerialized)
+        {
+            Acquire (MLCK, 0xFFFF)
+            MSEL = ToInteger (Arg0)
+            Local0 = MPX /* \_SB_.MHPC.MPX_ */
+            Release (MLCK)
+            Return (Local0)
+        }
+
+        Method (MOST, 4, NotSerialized)
+        {
+            Acquire (MLCK, 0xFFFF)
+            MSEL = ToInteger (Arg0)
+            MOEV = Arg1
+            MOSC = Arg2
+            Release (MLCK)
+        }
+
+        Method (MEJ0, 2, NotSerialized)
+        {
+            Acquire (MLCK, 0xFFFF)
+            MSEL = ToInteger (Arg0)
+            MEJ = One
+            Release (MLCK)
+        }
+
+        Device (MP00)
+        {
+            Name (_UID, "0x00")  // _UID: Unique ID
+            Name (_HID, EisaId ("PNP0C80") /* Memory Device */)  // _HID: Hardware ID
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (MCRS (_UID))
+            }
+
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (MRST (_UID))
+            }
+
+            Method (_PXM, 0, NotSerialized)  // _PXM: Device Proximity
+            {
+                Return (MPXM (_UID))
+            }
+
+            Method (_OST, 3, NotSerialized)  // _OST: OSPM Status Indication
+            {
+                MOST (_UID, Arg0, Arg1, Arg2)
+            }
+
+            Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+            {
+                MEJ0 (_UID, Arg0)
+            }
+        }
+
+        Device (MP01)
+        {
+            Name (_UID, "0x01")  // _UID: Unique ID
+            Name (_HID, EisaId ("PNP0C80") /* Memory Device */)  // _HID: Hardware ID
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (MCRS (_UID))
+            }
+
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (MRST (_UID))
+            }
+
+            Method (_PXM, 0, NotSerialized)  // _PXM: Device Proximity
+            {
+                Return (MPXM (_UID))
+            }
+
+            Method (_OST, 3, NotSerialized)  // _OST: OSPM Status Indication
+            {
+                MOST (_UID, Arg0, Arg1, Arg2)
+            }
+
+            Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+            {
+                MEJ0 (_UID, Arg0)
+            }
+        }
+
+        Device (MP02)
+        {
+            Name (_UID, "0x02")  // _UID: Unique ID
+            Name (_HID, EisaId ("PNP0C80") /* Memory Device */)  // _HID: Hardware ID
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (MCRS (_UID))
+            }
+
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (MRST (_UID))
+            }
+
+            Method (_PXM, 0, NotSerialized)  // _PXM: Device Proximity
+            {
+                Return (MPXM (_UID))
+            }
+
+            Method (_OST, 3, NotSerialized)  // _OST: OSPM Status Indication
+            {
+                MOST (_UID, Arg0, Arg1, Arg2)
+            }
+
+            Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+            {
+                MEJ0 (_UID, Arg0)
+            }
+        }
+
+        Method (MTFY, 2, NotSerialized)
+        {
+            If ((Arg0 == Zero))
+            {
+                Notify (MP00, Arg1)
+            }
+
+            If ((Arg0 == One))
+            {
+                Notify (MP01, Arg1)
+            }
+
+            If ((Arg0 == 0x02))
+            {
+                Notify (MP02, Arg1)
+            }
+        }
+    }
+
+    Method (\_GPE._E03, 0, NotSerialized)  // _Exx: Edge-Triggered GPE, xx=0x00-0xFF
+    {
+        \_SB.MHPC.MSCN ()
+    }
+
+    Scope (_GPE)
+    {
+        Name (_HID, "ACPI0006" /* GPE Block Device */)  // _HID: Hardware ID
+        Method (_E01, 0, NotSerialized)  // _Exx: Edge-Triggered GPE, xx=0x00-0xFF
+        {
+            Acquire (\_SB.PCI0.BLCK, 0xFFFF)
+            \_SB.PCI0.PCNT ()
+            Release (\_SB.PCI0.BLCK)
+        }
+    }
+
+    Scope (\_SB.PCI0)
+    {
+        Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+        {
+            WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
+                0x0000,             // Granularity
+                0x0000,             // Range Minimum
+                0x00FF,             // Range Maximum
+                0x0000,             // Translation Offset
+                0x0100,             // Length
+                ,, )
+            IO (Decode16,
+                0x0CF8,             // Range Minimum
+                0x0CF8,             // Range Maximum
+                0x01,               // Alignment
+                0x08,               // Length
+                )
+            WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
+                0x0000,             // Granularity
+                0x0000,             // Range Minimum
+                0x0CF7,             // Range Maximum
+                0x0000,             // Translation Offset
+                0x0CF8,             // Length
+                ,, , TypeStatic, DenseTranslation)
+            WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
+                0x0000,             // Granularity
+                0x0D00,             // Range Minimum
+                0xFFFF,             // Range Maximum
+                0x0000,             // Translation Offset
+                0xF300,             // Length
+                ,, , TypeStatic, DenseTranslation)
+            DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
+                0x00000000,         // Granularity
+                0x000A0000,         // Range Minimum
+                0x000BFFFF,         // Range Maximum
+                0x00000000,         // Translation Offset
+                0x00020000,         // Length
+                ,, , AddressRangeMemory, TypeStatic)
+            DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
+                0x00000000,         // Granularity
+                0x08000000,         // Range Minimum
+                0xFEBFFFFF,         // Range Maximum
+                0x00000000,         // Translation Offset
+                0xF6C00000,         // Length
+                ,, , AddressRangeMemory, TypeStatic)
+            QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
+                0x0000000000000000, // Granularity
+                0x0000000200000000, // Range Minimum
+                0x000000027FFFFFFF, // Range Maximum
+                0x0000000000000000, // Translation Offset
+                0x0000000080000000, // Length
+                ,, , AddressRangeMemory, TypeStatic)
+        })
+        Device (GPE0)
+        {
+            Name (_HID, "PNP0A06" /* Generic Container Device */)  // _HID: Hardware ID
+            Name (_UID, "GPE0 resources")  // _UID: Unique ID
+            Name (_STA, 0x0B)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0xAFE0,             // Range Minimum
+                    0xAFE0,             // Range Maximum
+                    0x01,               // Alignment
+                    0x04,               // Length
+                    )
+            })
+        }
+
+        Device (PHPR)
+        {
+            Name (_HID, "PNP0A06" /* Generic Container Device */)  // _HID: Hardware ID
+            Name (_UID, "PCI Hotplug resources")  // _UID: Unique ID
+            Name (_STA, 0x0B)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0xAE00,             // Range Minimum
+                    0xAE00,             // Range Maximum
+                    0x01,               // Alignment
+                    0x14,               // Length
+                    )
+            })
+        }
+    }
+
+    Scope (\)
+    {
+        Name (_S3, Package (0x04)  // _S3_: S3 System State
+        {
+            One, 
+            One, 
+            Zero, 
+            Zero
+        })
+        Name (_S4, Package (0x04)  // _S4_: S4 System State
+        {
+            0x02, 
+            0x02, 
+            Zero, 
+            Zero
+        })
+        Name (_S5, Package (0x04)  // _S5_: S5 System State
+        {
+            Zero, 
+            Zero, 
+            Zero, 
+            Zero
+        })
+    }
+
+    Scope (\_SB.PCI0)
+    {
+        Device (FWCF)
+        {
+            Name (_HID, "QEMU0002")  // _HID: Hardware ID
+            Name (_STA, 0x0B)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0510,             // Range Minimum
+                    0x0510,             // Range Maximum
+                    0x01,               // Alignment
+                    0x0C,               // Length
+                    )
+            })
+        }
+    }
+
+    Scope (\_SB)
+    {
+        Scope (PCI0)
+        {
+            Name (BSEL, Zero)
+            Device (S00)
+            {
+                Name (_ADR, Zero)  // _ADR: Address
+            }
+
+            Device (S10)
+            {
+                Name (_ADR, 0x00020000)  // _ADR: Address
+                Method (_S1D, 0, NotSerialized)  // _S1D: S1 Device State
+                {
+                    Return (Zero)
+                }
+
+                Method (_S2D, 0, NotSerialized)  // _S2D: S2 Device State
+                {
+                    Return (Zero)
+                }
+
+                Method (_S3D, 0, NotSerialized)  // _S3D: S3 Device State
+                {
+                    Return (Zero)
+                }
+            }
+
+            Device (S18)
+            {
+                Name (_SUN, 0x03)  // _SUN: Slot User Number
+                Name (_ADR, 0x00030000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S20)
+            {
+                Name (_SUN, 0x04)  // _SUN: Slot User Number
+                Name (_ADR, 0x00040000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S28)
+            {
+                Name (_SUN, 0x05)  // _SUN: Slot User Number
+                Name (_ADR, 0x00050000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S30)
+            {
+                Name (_SUN, 0x06)  // _SUN: Slot User Number
+                Name (_ADR, 0x00060000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S38)
+            {
+                Name (_SUN, 0x07)  // _SUN: Slot User Number
+                Name (_ADR, 0x00070000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S40)
+            {
+                Name (_SUN, 0x08)  // _SUN: Slot User Number
+                Name (_ADR, 0x00080000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S48)
+            {
+                Name (_SUN, 0x09)  // _SUN: Slot User Number
+                Name (_ADR, 0x00090000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S50)
+            {
+                Name (_SUN, 0x0A)  // _SUN: Slot User Number
+                Name (_ADR, 0x000A0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S58)
+            {
+                Name (_SUN, 0x0B)  // _SUN: Slot User Number
+                Name (_ADR, 0x000B0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S60)
+            {
+                Name (_SUN, 0x0C)  // _SUN: Slot User Number
+                Name (_ADR, 0x000C0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S68)
+            {
+                Name (_SUN, 0x0D)  // _SUN: Slot User Number
+                Name (_ADR, 0x000D0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S70)
+            {
+                Name (_SUN, 0x0E)  // _SUN: Slot User Number
+                Name (_ADR, 0x000E0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S78)
+            {
+                Name (_SUN, 0x0F)  // _SUN: Slot User Number
+                Name (_ADR, 0x000F0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S80)
+            {
+                Name (_SUN, 0x10)  // _SUN: Slot User Number
+                Name (_ADR, 0x00100000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S88)
+            {
+                Name (_SUN, 0x11)  // _SUN: Slot User Number
+                Name (_ADR, 0x00110000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S90)
+            {
+                Name (_SUN, 0x12)  // _SUN: Slot User Number
+                Name (_ADR, 0x00120000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S98)
+            {
+                Name (_SUN, 0x13)  // _SUN: Slot User Number
+                Name (_ADR, 0x00130000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SA0)
+            {
+                Name (_SUN, 0x14)  // _SUN: Slot User Number
+                Name (_ADR, 0x00140000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SA8)
+            {
+                Name (_SUN, 0x15)  // _SUN: Slot User Number
+                Name (_ADR, 0x00150000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SB0)
+            {
+                Name (_SUN, 0x16)  // _SUN: Slot User Number
+                Name (_ADR, 0x00160000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SB8)
+            {
+                Name (_SUN, 0x17)  // _SUN: Slot User Number
+                Name (_ADR, 0x00170000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SC0)
+            {
+                Name (_SUN, 0x18)  // _SUN: Slot User Number
+                Name (_ADR, 0x00180000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SC8)
+            {
+                Name (_SUN, 0x19)  // _SUN: Slot User Number
+                Name (_ADR, 0x00190000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SD0)
+            {
+                Name (_SUN, 0x1A)  // _SUN: Slot User Number
+                Name (_ADR, 0x001A0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SD8)
+            {
+                Name (_SUN, 0x1B)  // _SUN: Slot User Number
+                Name (_ADR, 0x001B0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SE0)
+            {
+                Name (_SUN, 0x1C)  // _SUN: Slot User Number
+                Name (_ADR, 0x001C0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SE8)
+            {
+                Name (_SUN, 0x1D)  // _SUN: Slot User Number
+                Name (_ADR, 0x001D0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SF0)
+            {
+                Name (_SUN, 0x1E)  // _SUN: Slot User Number
+                Name (_ADR, 0x001E0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SF8)
+            {
+                Name (_SUN, 0x1F)  // _SUN: Slot User Number
+                Name (_ADR, 0x001F0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Method (DVNT, 2, NotSerialized)
+            {
+                If ((Arg0 & 0x08))
+                {
+                    Notify (S18, Arg1)
+                }
+
+                If ((Arg0 & 0x10))
+                {
+                    Notify (S20, Arg1)
+                }
+
+                If ((Arg0 & 0x20))
+                {
+                    Notify (S28, Arg1)
+                }
+
+                If ((Arg0 & 0x40))
+                {
+                    Notify (S30, Arg1)
+                }
+
+                If ((Arg0 & 0x80))
+                {
+                    Notify (S38, Arg1)
+                }
+
+                If ((Arg0 & 0x0100))
+                {
+                    Notify (S40, Arg1)
+                }
+
+                If ((Arg0 & 0x0200))
+                {
+                    Notify (S48, Arg1)
+                }
+
+                If ((Arg0 & 0x0400))
+                {
+                    Notify (S50, Arg1)
+                }
+
+                If ((Arg0 & 0x0800))
+                {
+                    Notify (S58, Arg1)
+                }
+
+                If ((Arg0 & 0x1000))
+                {
+                    Notify (S60, Arg1)
+                }
+
+                If ((Arg0 & 0x2000))
+                {
+                    Notify (S68, Arg1)
+                }
+
+                If ((Arg0 & 0x4000))
+                {
+                    Notify (S70, Arg1)
+                }
+
+                If ((Arg0 & 0x8000))
+                {
+                    Notify (S78, Arg1)
+                }
+
+                If ((Arg0 & 0x00010000))
+                {
+                    Notify (S80, Arg1)
+                }
+
+                If ((Arg0 & 0x00020000))
+                {
+                    Notify (S88, Arg1)
+                }
+
+                If ((Arg0 & 0x00040000))
+                {
+                    Notify (S90, Arg1)
+                }
+
+                If ((Arg0 & 0x00080000))
+                {
+                    Notify (S98, Arg1)
+                }
+
+                If ((Arg0 & 0x00100000))
+                {
+                    Notify (SA0, Arg1)
+                }
+
+                If ((Arg0 & 0x00200000))
+                {
+                    Notify (SA8, Arg1)
+                }
+
+                If ((Arg0 & 0x00400000))
+                {
+                    Notify (SB0, Arg1)
+                }
+
+                If ((Arg0 & 0x00800000))
+                {
+                    Notify (SB8, Arg1)
+                }
+
+                If ((Arg0 & 0x01000000))
+                {
+                    Notify (SC0, Arg1)
+                }
+
+                If ((Arg0 & 0x02000000))
+                {
+                    Notify (SC8, Arg1)
+                }
+
+                If ((Arg0 & 0x04000000))
+                {
+                    Notify (SD0, Arg1)
+                }
+
+                If ((Arg0 & 0x08000000))
+                {
+                    Notify (SD8, Arg1)
+                }
+
+                If ((Arg0 & 0x10000000))
+                {
+                    Notify (SE0, Arg1)
+                }
+
+                If ((Arg0 & 0x20000000))
+                {
+                    Notify (SE8, Arg1)
+                }
+
+                If ((Arg0 & 0x40000000))
+                {
+                    Notify (SF0, Arg1)
+                }
+
+                If ((Arg0 & 0x80000000))
+                {
+                    Notify (SF8, Arg1)
+                }
+            }
+
+            Method (PCNT, 0, NotSerialized)
+            {
+                BNUM = Zero
+                DVNT (PCIU, One)
+                DVNT (PCID, 0x03)
+            }
+        }
+    }
+}
+
diff --git a/tests/data/acpi/pc/DSDT.numamem.dsl b/tests/data/acpi/pc/DSDT.numamem.dsl
new file mode 100644
index 0000000000..3d08447f1e
--- /dev/null
+++ b/tests/data/acpi/pc/DSDT.numamem.dsl
@@ -0,0 +1,1321 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembling to symbolic ASL+ operators
+ *
+ * Disassembly of tests/data/acpi/pc/DSDT.numamem, Tue Aug  4 11:14:15 2020
+ *
+ * Original Table Header:
+ *     Signature        "DSDT"
+ *     Length           0x0000134C (4940)
+ *     Revision         0x01 **** 32-bit table (V1), no 64-bit math support
+ *     Checksum         0x6A
+ *     OEM ID           "BOCHS "
+ *     OEM Table ID     "BXPCDSDT"
+ *     OEM Revision     0x00000001 (1)
+ *     Compiler ID      "BXPC"
+ *     Compiler Version 0x00000001 (1)
+ */
+DefinitionBlock ("", "DSDT", 1, "BOCHS ", "BXPCDSDT", 0x00000001)
+{
+    Scope (\)
+    {
+        OperationRegion (DBG, SystemIO, 0x0402, One)
+        Field (DBG, ByteAcc, NoLock, Preserve)
+        {
+            DBGB,   8
+        }
+
+        Method (DBUG, 1, NotSerialized)
+        {
+            ToHexString (Arg0, Local0)
+            ToBuffer (Local0, Local0)
+            Local1 = (SizeOf (Local0) - One)
+            Local2 = Zero
+            While ((Local2 < Local1))
+            {
+                DBGB = DerefOf (Local0 [Local2])
+                Local2++
+            }
+
+            DBGB = 0x0A
+        }
+    }
+
+    Scope (_SB)
+    {
+        Device (PCI0)
+        {
+            Name (_HID, EisaId ("PNP0A03") /* PCI Bus */)  // _HID: Hardware ID
+            Name (_ADR, Zero)  // _ADR: Address
+            Name (_UID, Zero)  // _UID: Unique ID
+        }
+    }
+
+    Scope (_SB)
+    {
+        Device (HPET)
+        {
+            Name (_HID, EisaId ("PNP0103") /* HPET System Timer */)  // _HID: Hardware ID
+            Name (_UID, Zero)  // _UID: Unique ID
+            OperationRegion (HPTM, SystemMemory, 0xFED00000, 0x0400)
+            Field (HPTM, DWordAcc, Lock, Preserve)
+            {
+                VEND,   32, 
+                PRD,    32
+            }
+
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Local0 = VEND /* \_SB_.HPET.VEND */
+                Local1 = PRD /* \_SB_.HPET.PRD_ */
+                Local0 >>= 0x10
+                If (((Local0 == Zero) || (Local0 == 0xFFFF)))
+                {
+                    Return (Zero)
+                }
+
+                If (((Local1 == Zero) || (Local1 > 0x05F5E100)))
+                {
+                    Return (Zero)
+                }
+
+                Return (0x0F)
+            }
+
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadOnly,
+                    0xFED00000,         // Address Base
+                    0x00000400,         // Address Length
+                    )
+            })
+        }
+    }
+
+    Scope (_SB.PCI0)
+    {
+        Device (ISA)
+        {
+            Name (_ADR, 0x00010000)  // _ADR: Address
+            OperationRegion (P40C, PCI_Config, 0x60, 0x04)
+        }
+    }
+
+    Scope (_SB.PCI0.ISA)
+    {
+        Device (KBD)
+        {
+            Name (_HID, EisaId ("PNP0303") /* IBM Enhanced Keyboard (101/102-key, PS/2 Mouse) */)  // _HID: Hardware ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0060,             // Range Minimum
+                    0x0060,             // Range Maximum
+                    0x01,               // Alignment
+                    0x01,               // Length
+                    )
+                IO (Decode16,
+                    0x0064,             // Range Minimum
+                    0x0064,             // Range Maximum
+                    0x01,               // Alignment
+                    0x01,               // Length
+                    )
+                IRQNoFlags ()
+                    {1}
+            })
+        }
+
+        Device (MOU)
+        {
+            Name (_HID, EisaId ("PNP0F13") /* PS/2 Mouse */)  // _HID: Hardware ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IRQNoFlags ()
+                    {12}
+            })
+        }
+
+        Device (FDC0)
+        {
+            Name (_HID, EisaId ("PNP0700"))  // _HID: Hardware ID
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x03F2,             // Range Minimum
+                    0x03F2,             // Range Maximum
+                    0x00,               // Alignment
+                    0x04,               // Length
+                    )
+                IO (Decode16,
+                    0x03F7,             // Range Minimum
+                    0x03F7,             // Range Maximum
+                    0x00,               // Alignment
+                    0x01,               // Length
+                    )
+                IRQNoFlags ()
+                    {6}
+                DMA (Compatibility, NotBusMaster, Transfer8, )
+                    {2}
+            })
+            Device (FLPA)
+            {
+                Name (_ADR, Zero)  // _ADR: Address
+                Name (_FDI, Package (0x10)  // _FDI: Floppy Drive Information
+                {
+                    Zero, 
+                    0x05, 
+                    0x4F, 
+                    0x30, 
+                    One, 
+                    0xAF, 
+                    0x02, 
+                    0x25, 
+                    0x02, 
+                    0x12, 
+                    0x1B, 
+                    0xFF, 
+                    0x6C, 
+                    0xF6, 
+                    0x0F, 
+                    0x08
+                })
+            }
+
+            Name (_FDE, Buffer (0x14)  // _FDE: Floppy Disk Enumerate
+            {
+                /* 0000 */  0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
+                /* 0008 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
+                /* 0010 */  0x02, 0x00, 0x00, 0x00                           // ....
+            })
+        }
+
+        Device (LPT1)
+        {
+            Name (_HID, EisaId ("PNP0400") /* Standard LPT Parallel Port */)  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0378,             // Range Minimum
+                    0x0378,             // Range Maximum
+                    0x08,               // Alignment
+                    0x08,               // Length
+                    )
+                IRQNoFlags ()
+                    {7}
+            })
+        }
+
+        Device (COM1)
+        {
+            Name (_HID, EisaId ("PNP0501") /* 16550A-compatible COM Serial Port */)  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x03F8,             // Range Minimum
+                    0x03F8,             // Range Maximum
+                    0x00,               // Alignment
+                    0x08,               // Length
+                    )
+                IRQNoFlags ()
+                    {4}
+            })
+        }
+
+        Device (RTC)
+        {
+            Name (_HID, EisaId ("PNP0B00") /* AT Real-Time Clock */)  // _HID: Hardware ID
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0070,             // Range Minimum
+                    0x0070,             // Range Maximum
+                    0x01,               // Alignment
+                    0x08,               // Length
+                    )
+                IRQNoFlags ()
+                    {8}
+            })
+        }
+    }
+
+    Scope (_SB.PCI0)
+    {
+        OperationRegion (PCST, SystemIO, 0xAE00, 0x08)
+        Field (PCST, DWordAcc, NoLock, WriteAsZeros)
+        {
+            PCIU,   32, 
+            PCID,   32
+        }
+
+        OperationRegion (SEJ, SystemIO, 0xAE08, 0x04)
+        Field (SEJ, DWordAcc, NoLock, WriteAsZeros)
+        {
+            B0EJ,   32
+        }
+
+        OperationRegion (BNMR, SystemIO, 0xAE10, 0x04)
+        Field (BNMR, DWordAcc, NoLock, WriteAsZeros)
+        {
+            BNUM,   32
+        }
+
+        Mutex (BLCK, 0x00)
+        Method (PCEJ, 2, NotSerialized)
+        {
+            Acquire (BLCK, 0xFFFF)
+            BNUM = Arg0
+            B0EJ = (One << Arg1)
+            Release (BLCK)
+            Return (Zero)
+        }
+    }
+
+    Scope (_SB)
+    {
+        Scope (PCI0)
+        {
+            Method (_PRT, 0, NotSerialized)  // _PRT: PCI Routing Table
+            {
+                Local0 = Package (0x80){}
+                Local1 = Zero
+                While ((Local1 < 0x80))
+                {
+                    Local2 = (Local1 >> 0x02)
+                    Local3 = ((Local1 + Local2) & 0x03)
+                    If ((Local3 == Zero))
+                    {
+                        Local4 = Package (0x04)
+                            {
+                                Zero, 
+                                Zero, 
+                                LNKD, 
+                                Zero
+                            }
+                    }
+
+                    If ((Local3 == One))
+                    {
+                        If ((Local1 == 0x04))
+                        {
+                            Local4 = Package (0x04)
+                                {
+                                    Zero, 
+                                    Zero, 
+                                    LNKS, 
+                                    Zero
+                                }
+                        }
+                        Else
+                        {
+                            Local4 = Package (0x04)
+                                {
+                                    Zero, 
+                                    Zero, 
+                                    LNKA, 
+                                    Zero
+                                }
+                        }
+                    }
+
+                    If ((Local3 == 0x02))
+                    {
+                        Local4 = Package (0x04)
+                            {
+                                Zero, 
+                                Zero, 
+                                LNKB, 
+                                Zero
+                            }
+                    }
+
+                    If ((Local3 == 0x03))
+                    {
+                        Local4 = Package (0x04)
+                            {
+                                Zero, 
+                                Zero, 
+                                LNKC, 
+                                Zero
+                            }
+                    }
+
+                    Local4 [Zero] = ((Local2 << 0x10) | 0xFFFF)
+                    Local4 [One] = (Local1 & 0x03)
+                    Local0 [Local1] = Local4
+                    Local1++
+                }
+
+                Return (Local0)
+            }
+        }
+
+        Field (PCI0.ISA.P40C, ByteAcc, NoLock, Preserve)
+        {
+            PRQ0,   8, 
+            PRQ1,   8, 
+            PRQ2,   8, 
+            PRQ3,   8
+        }
+
+        Method (IQST, 1, NotSerialized)
+        {
+            If ((0x80 & Arg0))
+            {
+                Return (0x09)
+            }
+
+            Return (0x0B)
+        }
+
+        Method (IQCR, 1, Serialized)
+        {
+            Name (PRR0, ResourceTemplate ()
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, _Y00)
+                {
+                    0x00000000,
+                }
+            })
+            CreateDWordField (PRR0, \_SB.IQCR._Y00._INT, PRRI)  // _INT: Interrupts
+            If ((Arg0 < 0x80))
+            {
+                PRRI = Arg0
+            }
+
+            Return (PRR0) /* \_SB_.IQCR.PRR0 */
+        }
+
+        Device (LNKA)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, Zero)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQ0))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQ0 |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQ0))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQ0 = PRRI /* \_SB_.LNKA._SRS.PRRI */
+            }
+        }
+
+        Device (LNKB)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQ1))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQ1 |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQ1))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQ1 = PRRI /* \_SB_.LNKB._SRS.PRRI */
+            }
+        }
+
+        Device (LNKC)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x02)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQ2))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQ2 |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQ2))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQ2 = PRRI /* \_SB_.LNKC._SRS.PRRI */
+            }
+        }
+
+        Device (LNKD)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x03)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQ3))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQ3 |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQ3))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQ3 = PRRI /* \_SB_.LNKD._SRS.PRRI */
+            }
+        }
+
+        Device (LNKS)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x04)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000009,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (0x0B)
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (_PRS) /* \_SB_.LNKS._PRS */
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+    }
+
+    Scope (_SB)
+    {
+        Device (\_SB.PCI0.PRES)
+        {
+            Name (_HID, EisaId ("PNP0A06") /* Generic Container Device */)  // _HID: Hardware ID
+            Name (_UID, "CPU Hotplug resources")  // _UID: Unique ID
+            Mutex (CPLK, 0x00)
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0xAF00,             // Range Minimum
+                    0xAF00,             // Range Maximum
+                    0x01,               // Alignment
+                    0x0C,               // Length
+                    )
+            })
+            OperationRegion (PRST, SystemIO, 0xAF00, 0x0C)
+            Field (PRST, ByteAcc, NoLock, WriteAsZeros)
+            {
+                Offset (0x04), 
+                CPEN,   1, 
+                CINS,   1, 
+                CRMV,   1, 
+                CEJ0,   1, 
+                Offset (0x05), 
+                CCMD,   8
+            }
+
+            Field (PRST, DWordAcc, NoLock, Preserve)
+            {
+                CSEL,   32, 
+                Offset (0x08), 
+                CDAT,   32
+            }
+
+            Method (_INI, 0, Serialized)  // _INI: Initialize
+            {
+                CSEL = Zero
+            }
+        }
+
+        Device (\_SB.CPUS)
+        {
+            Name (_HID, "ACPI0010" /* Processor Container Device */)  // _HID: Hardware ID
+            Name (_CID, EisaId ("PNP0A05") /* Generic Container Device */)  // _CID: Compatible ID
+            Method (CTFY, 2, NotSerialized)
+            {
+                If ((Arg0 == Zero))
+                {
+                    Notify (C000, Arg1)
+                }
+            }
+
+            Method (CSTA, 1, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                \_SB.PCI0.PRES.CSEL = Arg0
+                Local0 = Zero
+                If ((\_SB.PCI0.PRES.CPEN == One))
+                {
+                    Local0 = 0x0F
+                }
+
+                Release (\_SB.PCI0.PRES.CPLK)
+                Return (Local0)
+            }
+
+            Method (CEJ0, 1, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                \_SB.PCI0.PRES.CSEL = Arg0
+                \_SB.PCI0.PRES.CEJ0 = One
+                Release (\_SB.PCI0.PRES.CPLK)
+            }
+
+            Method (CSCN, 0, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                Local0 = One
+                While ((Local0 == One))
+                {
+                    Local0 = Zero
+                    \_SB.PCI0.PRES.CCMD = Zero
+                    If ((\_SB.PCI0.PRES.CINS == One))
+                    {
+                        CTFY (\_SB.PCI0.PRES.CDAT, One)
+                        \_SB.PCI0.PRES.CINS = One
+                        Local0 = One
+                    }
+                    ElseIf ((\_SB.PCI0.PRES.CRMV == One))
+                    {
+                        CTFY (\_SB.PCI0.PRES.CDAT, 0x03)
+                        \_SB.PCI0.PRES.CRMV = One
+                        Local0 = One
+                    }
+                }
+
+                Release (\_SB.PCI0.PRES.CPLK)
+            }
+
+            Method (COST, 4, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                \_SB.PCI0.PRES.CSEL = Arg0
+                \_SB.PCI0.PRES.CCMD = One
+                \_SB.PCI0.PRES.CDAT = Arg1
+                \_SB.PCI0.PRES.CCMD = 0x02
+                \_SB.PCI0.PRES.CDAT = Arg2
+                Release (\_SB.PCI0.PRES.CPLK)
+            }
+
+            Processor (C000, 0x00, 0x00000000, 0x00)
+            {
+                Method (_STA, 0, Serialized)  // _STA: Status
+                {
+                    Return (CSTA (Zero))
+                }
+
+                Name (_MAT, Buffer (0x08)  // _MAT: Multiple APIC Table Entry
+                {
+                     0x00, 0x08, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00   // ........
+                })
+                Method (_OST, 3, Serialized)  // _OST: OSPM Status Indication
+                {
+                    COST (Zero, Arg0, Arg1, Arg2)
+                }
+
+                Name (_PXM, Zero)  // _PXM: Device Proximity
+            }
+        }
+    }
+
+    Method (\_GPE._E02, 0, NotSerialized)  // _Exx: Edge-Triggered GPE, xx=0x00-0xFF
+    {
+        \_SB.CPUS.CSCN ()
+    }
+
+    Scope (_GPE)
+    {
+        Name (_HID, "ACPI0006" /* GPE Block Device */)  // _HID: Hardware ID
+        Method (_E01, 0, NotSerialized)  // _Exx: Edge-Triggered GPE, xx=0x00-0xFF
+        {
+            Acquire (\_SB.PCI0.BLCK, 0xFFFF)
+            \_SB.PCI0.PCNT ()
+            Release (\_SB.PCI0.BLCK)
+        }
+    }
+
+    Scope (\_SB.PCI0)
+    {
+        Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+        {
+            WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
+                0x0000,             // Granularity
+                0x0000,             // Range Minimum
+                0x00FF,             // Range Maximum
+                0x0000,             // Translation Offset
+                0x0100,             // Length
+                ,, )
+            IO (Decode16,
+                0x0CF8,             // Range Minimum
+                0x0CF8,             // Range Maximum
+                0x01,               // Alignment
+                0x08,               // Length
+                )
+            WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
+                0x0000,             // Granularity
+                0x0000,             // Range Minimum
+                0x0CF7,             // Range Maximum
+                0x0000,             // Translation Offset
+                0x0CF8,             // Length
+                ,, , TypeStatic, DenseTranslation)
+            WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
+                0x0000,             // Granularity
+                0x0D00,             // Range Minimum
+                0xFFFF,             // Range Maximum
+                0x0000,             // Translation Offset
+                0xF300,             // Length
+                ,, , TypeStatic, DenseTranslation)
+            DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
+                0x00000000,         // Granularity
+                0x000A0000,         // Range Minimum
+                0x000BFFFF,         // Range Maximum
+                0x00000000,         // Translation Offset
+                0x00020000,         // Length
+                ,, , AddressRangeMemory, TypeStatic)
+            DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
+                0x00000000,         // Granularity
+                0x08000000,         // Range Minimum
+                0xFEBFFFFF,         // Range Maximum
+                0x00000000,         // Translation Offset
+                0xF6C00000,         // Length
+                ,, , AddressRangeMemory, TypeStatic)
+            QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
+                0x0000000000000000, // Granularity
+                0x0000000100000000, // Range Minimum
+                0x000000017FFFFFFF, // Range Maximum
+                0x0000000000000000, // Translation Offset
+                0x0000000080000000, // Length
+                ,, , AddressRangeMemory, TypeStatic)
+        })
+        Device (GPE0)
+        {
+            Name (_HID, "PNP0A06" /* Generic Container Device */)  // _HID: Hardware ID
+            Name (_UID, "GPE0 resources")  // _UID: Unique ID
+            Name (_STA, 0x0B)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0xAFE0,             // Range Minimum
+                    0xAFE0,             // Range Maximum
+                    0x01,               // Alignment
+                    0x04,               // Length
+                    )
+            })
+        }
+
+        Device (PHPR)
+        {
+            Name (_HID, "PNP0A06" /* Generic Container Device */)  // _HID: Hardware ID
+            Name (_UID, "PCI Hotplug resources")  // _UID: Unique ID
+            Name (_STA, 0x0B)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0xAE00,             // Range Minimum
+                    0xAE00,             // Range Maximum
+                    0x01,               // Alignment
+                    0x14,               // Length
+                    )
+            })
+        }
+    }
+
+    Scope (\)
+    {
+        Name (_S3, Package (0x04)  // _S3_: S3 System State
+        {
+            One, 
+            One, 
+            Zero, 
+            Zero
+        })
+        Name (_S4, Package (0x04)  // _S4_: S4 System State
+        {
+            0x02, 
+            0x02, 
+            Zero, 
+            Zero
+        })
+        Name (_S5, Package (0x04)  // _S5_: S5 System State
+        {
+            Zero, 
+            Zero, 
+            Zero, 
+            Zero
+        })
+    }
+
+    Scope (\_SB.PCI0)
+    {
+        Device (FWCF)
+        {
+            Name (_HID, "QEMU0002")  // _HID: Hardware ID
+            Name (_STA, 0x0B)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0510,             // Range Minimum
+                    0x0510,             // Range Maximum
+                    0x01,               // Alignment
+                    0x0C,               // Length
+                    )
+            })
+        }
+    }
+
+    Scope (\_SB)
+    {
+        Scope (PCI0)
+        {
+            Name (BSEL, Zero)
+            Device (S00)
+            {
+                Name (_ADR, Zero)  // _ADR: Address
+            }
+
+            Device (S10)
+            {
+                Name (_ADR, 0x00020000)  // _ADR: Address
+                Method (_S1D, 0, NotSerialized)  // _S1D: S1 Device State
+                {
+                    Return (Zero)
+                }
+
+                Method (_S2D, 0, NotSerialized)  // _S2D: S2 Device State
+                {
+                    Return (Zero)
+                }
+
+                Method (_S3D, 0, NotSerialized)  // _S3D: S3 Device State
+                {
+                    Return (Zero)
+                }
+            }
+
+            Device (S18)
+            {
+                Name (_SUN, 0x03)  // _SUN: Slot User Number
+                Name (_ADR, 0x00030000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S20)
+            {
+                Name (_SUN, 0x04)  // _SUN: Slot User Number
+                Name (_ADR, 0x00040000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S28)
+            {
+                Name (_SUN, 0x05)  // _SUN: Slot User Number
+                Name (_ADR, 0x00050000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S30)
+            {
+                Name (_SUN, 0x06)  // _SUN: Slot User Number
+                Name (_ADR, 0x00060000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S38)
+            {
+                Name (_SUN, 0x07)  // _SUN: Slot User Number
+                Name (_ADR, 0x00070000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S40)
+            {
+                Name (_SUN, 0x08)  // _SUN: Slot User Number
+                Name (_ADR, 0x00080000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S48)
+            {
+                Name (_SUN, 0x09)  // _SUN: Slot User Number
+                Name (_ADR, 0x00090000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S50)
+            {
+                Name (_SUN, 0x0A)  // _SUN: Slot User Number
+                Name (_ADR, 0x000A0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S58)
+            {
+                Name (_SUN, 0x0B)  // _SUN: Slot User Number
+                Name (_ADR, 0x000B0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S60)
+            {
+                Name (_SUN, 0x0C)  // _SUN: Slot User Number
+                Name (_ADR, 0x000C0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S68)
+            {
+                Name (_SUN, 0x0D)  // _SUN: Slot User Number
+                Name (_ADR, 0x000D0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S70)
+            {
+                Name (_SUN, 0x0E)  // _SUN: Slot User Number
+                Name (_ADR, 0x000E0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S78)
+            {
+                Name (_SUN, 0x0F)  // _SUN: Slot User Number
+                Name (_ADR, 0x000F0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S80)
+            {
+                Name (_SUN, 0x10)  // _SUN: Slot User Number
+                Name (_ADR, 0x00100000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S88)
+            {
+                Name (_SUN, 0x11)  // _SUN: Slot User Number
+                Name (_ADR, 0x00110000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S90)
+            {
+                Name (_SUN, 0x12)  // _SUN: Slot User Number
+                Name (_ADR, 0x00120000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (S98)
+            {
+                Name (_SUN, 0x13)  // _SUN: Slot User Number
+                Name (_ADR, 0x00130000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SA0)
+            {
+                Name (_SUN, 0x14)  // _SUN: Slot User Number
+                Name (_ADR, 0x00140000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SA8)
+            {
+                Name (_SUN, 0x15)  // _SUN: Slot User Number
+                Name (_ADR, 0x00150000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SB0)
+            {
+                Name (_SUN, 0x16)  // _SUN: Slot User Number
+                Name (_ADR, 0x00160000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SB8)
+            {
+                Name (_SUN, 0x17)  // _SUN: Slot User Number
+                Name (_ADR, 0x00170000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SC0)
+            {
+                Name (_SUN, 0x18)  // _SUN: Slot User Number
+                Name (_ADR, 0x00180000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SC8)
+            {
+                Name (_SUN, 0x19)  // _SUN: Slot User Number
+                Name (_ADR, 0x00190000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SD0)
+            {
+                Name (_SUN, 0x1A)  // _SUN: Slot User Number
+                Name (_ADR, 0x001A0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SD8)
+            {
+                Name (_SUN, 0x1B)  // _SUN: Slot User Number
+                Name (_ADR, 0x001B0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SE0)
+            {
+                Name (_SUN, 0x1C)  // _SUN: Slot User Number
+                Name (_ADR, 0x001C0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SE8)
+            {
+                Name (_SUN, 0x1D)  // _SUN: Slot User Number
+                Name (_ADR, 0x001D0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SF0)
+            {
+                Name (_SUN, 0x1E)  // _SUN: Slot User Number
+                Name (_ADR, 0x001E0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Device (SF8)
+            {
+                Name (_SUN, 0x1F)  // _SUN: Slot User Number
+                Name (_ADR, 0x001F0000)  // _ADR: Address
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    PCEJ (BSEL, _SUN)
+                }
+            }
+
+            Method (DVNT, 2, NotSerialized)
+            {
+                If ((Arg0 & 0x08))
+                {
+                    Notify (S18, Arg1)
+                }
+
+                If ((Arg0 & 0x10))
+                {
+                    Notify (S20, Arg1)
+                }
+
+                If ((Arg0 & 0x20))
+                {
+                    Notify (S28, Arg1)
+                }
+
+                If ((Arg0 & 0x40))
+                {
+                    Notify (S30, Arg1)
+                }
+
+                If ((Arg0 & 0x80))
+                {
+                    Notify (S38, Arg1)
+                }
+
+                If ((Arg0 & 0x0100))
+                {
+                    Notify (S40, Arg1)
+                }
+
+                If ((Arg0 & 0x0200))
+                {
+                    Notify (S48, Arg1)
+                }
+
+                If ((Arg0 & 0x0400))
+                {
+                    Notify (S50, Arg1)
+                }
+
+                If ((Arg0 & 0x0800))
+                {
+                    Notify (S58, Arg1)
+                }
+
+                If ((Arg0 & 0x1000))
+                {
+                    Notify (S60, Arg1)
+                }
+
+                If ((Arg0 & 0x2000))
+                {
+                    Notify (S68, Arg1)
+                }
+
+                If ((Arg0 & 0x4000))
+                {
+                    Notify (S70, Arg1)
+                }
+
+                If ((Arg0 & 0x8000))
+                {
+                    Notify (S78, Arg1)
+                }
+
+                If ((Arg0 & 0x00010000))
+                {
+                    Notify (S80, Arg1)
+                }
+
+                If ((Arg0 & 0x00020000))
+                {
+                    Notify (S88, Arg1)
+                }
+
+                If ((Arg0 & 0x00040000))
+                {
+                    Notify (S90, Arg1)
+                }
+
+                If ((Arg0 & 0x00080000))
+                {
+                    Notify (S98, Arg1)
+                }
+
+                If ((Arg0 & 0x00100000))
+                {
+                    Notify (SA0, Arg1)
+                }
+
+                If ((Arg0 & 0x00200000))
+                {
+                    Notify (SA8, Arg1)
+                }
+
+                If ((Arg0 & 0x00400000))
+                {
+                    Notify (SB0, Arg1)
+                }
+
+                If ((Arg0 & 0x00800000))
+                {
+                    Notify (SB8, Arg1)
+                }
+
+                If ((Arg0 & 0x01000000))
+                {
+                    Notify (SC0, Arg1)
+                }
+
+                If ((Arg0 & 0x02000000))
+                {
+                    Notify (SC8, Arg1)
+                }
+
+                If ((Arg0 & 0x04000000))
+                {
+                    Notify (SD0, Arg1)
+                }
+
+                If ((Arg0 & 0x08000000))
+                {
+                    Notify (SD8, Arg1)
+                }
+
+                If ((Arg0 & 0x10000000))
+                {
+                    Notify (SE0, Arg1)
+                }
+
+                If ((Arg0 & 0x20000000))
+                {
+                    Notify (SE8, Arg1)
+                }
+
+                If ((Arg0 & 0x40000000))
+                {
+                    Notify (SF0, Arg1)
+                }
+
+                If ((Arg0 & 0x80000000))
+                {
+                    Notify (SF8, Arg1)
+                }
+            }
+
+            Method (PCNT, 0, NotSerialized)
+            {
+                BNUM = Zero
+                DVNT (PCIU, One)
+                DVNT (PCID, 0x03)
+            }
+        }
+    }
+}
+
diff --git a/tests/data/acpi/pc/DSDT.roothp b/tests/data/acpi/pc/DSDT.roothp
index 886a5e6952f6f034bdd80d44d43de5975a1a4b0f..18caa0765fc10adb29e01717390ead6c63cd0f3c 100644
GIT binary patch
delta 323
zcmeCu=+NYH33dtT5Mf|o{Irp43mcP{-Q)votC@U_C+D*NWpWdnoWmhg&*ALn8ZN~2
zzkngRfH7r}i_qj0#sY?v0>*>_hQviaJQF4-FiuSd3MCXI$LO=f2Rp?FIC~ld1i1z~
z2fO+dFrW)M`?@R;pNcN(;uw;=bOGn&M6UlpYnB$k<m+K(ffOuInG6$$348hlGZrLw
zfE<~~P?`vI)<W|IrWneCe8U)>L);>hxtI$W(aiu#0`-+97ce9(a%GvClvvOVHZX}H
e*_j)p31~yKVL|d_9S&7ipoOJLn{7GIasdD>6JkmL

delta 193
zcmeCs?9$+J33dtL5@BFqe72Em3mcP<+2jLktC{?@C+D*NW%A&goWmi*SHPIC$dP+;
z0%HL~LIJ~MLoQ*z1@0`9WAs_#gPr07oIMQ!f?R{0J^g|iokQFr(ZyXHLl_Gf(M5r(
lf#xpsW?A6DGTDYxQWsqTP#YIBroJHGFrdE8yE)Ht0RUaLHR}KX

diff --git a/tests/data/acpi/pc/FACP.acpihmat b/tests/data/acpi/pc/FACP.acpihmat
new file mode 100644
index 0000000000000000000000000000000000000000..261ebdc5d1c3bdf18fb7935314a04fd7f6f92a7a
GIT binary patch
literal 116
zcmZ>BbPgzCU|?We=;ZJ05v<@85#a0w6k`O6f!H7#1{fJQ88!hqA3p#IHi#$-lm_uQ
ffb0kBq2f#oEG$6gfBygc5D^9jBOqgG0|Ns9?p_Z8

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/pc/FACP.acpihmat.dsl b/tests/data/acpi/pc/FACP.acpihmat.dsl
new file mode 100644
index 0000000000..226fd58ec9
--- /dev/null
+++ b/tests/data/acpi/pc/FACP.acpihmat.dsl
@@ -0,0 +1,99 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/pc/FACP.acpihmat, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [FACP]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "FACP"    [Fixed ACPI Description Table (FADT)]
+[004h 0004   4]                 Table Length : 00000074
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : A1
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCFACP"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]                 FACS Address : 00000000
+[028h 0040   4]                 DSDT Address : 00000000
+[02Ch 0044   1]                        Model : 01
+[02Dh 0045   1]                   PM Profile : 00 [Unspecified]
+[02Eh 0046   2]                SCI Interrupt : 0009
+[030h 0048   4]             SMI Command Port : 000000B2
+[034h 0052   1]            ACPI Enable Value : F1
+[035h 0053   1]           ACPI Disable Value : F0
+[036h 0054   1]               S4BIOS Command : 00
+[037h 0055   1]              P-State Control : 00
+[038h 0056   4]     PM1A Event Block Address : 00000600
+[03Ch 0060   4]     PM1B Event Block Address : 00000000
+[040h 0064   4]   PM1A Control Block Address : 00000604
+[044h 0068   4]   PM1B Control Block Address : 00000000
+[048h 0072   4]    PM2 Control Block Address : 00000000
+[04Ch 0076   4]       PM Timer Block Address : 00000608
+[050h 0080   4]           GPE0 Block Address : 0000AFE0
+[054h 0084   4]           GPE1 Block Address : 00000000
+[058h 0088   1]       PM1 Event Block Length : 04
+[059h 0089   1]     PM1 Control Block Length : 02
+[05Ah 0090   1]     PM2 Control Block Length : 00
+[05Bh 0091   1]        PM Timer Block Length : 04
+[05Ch 0092   1]            GPE0 Block Length : 04
+[05Dh 0093   1]            GPE1 Block Length : 00
+[05Eh 0094   1]             GPE1 Base Offset : 00
+[05Fh 0095   1]                 _CST Support : 00
+[060h 0096   2]                   C2 Latency : 0FFF
+[062h 0098   2]                   C3 Latency : 0FFF
+[064h 0100   2]               CPU Cache Size : 0000
+[066h 0102   2]           Cache Flush Stride : 0000
+[068h 0104   1]            Duty Cycle Offset : 00
+[069h 0105   1]             Duty Cycle Width : 00
+[06Ah 0106   1]          RTC Day Alarm Index : 00
+[06Bh 0107   1]        RTC Month Alarm Index : 00
+[06Ch 0108   1]            RTC Century Index : 32
+[06Dh 0109   2]   Boot Flags (decoded below) : 0000
+               Legacy Devices Supported (V2) : 0
+            8042 Present on ports 60/64 (V2) : 0
+                        VGA Not Present (V4) : 0
+                      MSI Not Supported (V4) : 0
+                PCIe ASPM Not Supported (V4) : 0
+                   CMOS RTC Not Present (V5) : 0
+[06Fh 0111   1]                     Reserved : 00
+[070h 0112   4]        Flags (decoded below) : 000080A5
+      WBINVD instruction is operational (V1) : 1
+              WBINVD flushes all caches (V1) : 0
+                    All CPUs support C1 (V1) : 1
+                  C2 works on MP system (V1) : 0
+            Control Method Power Button (V1) : 0
+            Control Method Sleep Button (V1) : 1
+        RTC wake not in fixed reg space (V1) : 0
+            RTC can wake system from S4 (V1) : 1
+                        32-bit PM Timer (V1) : 0
+                      Docking Supported (V1) : 0
+               Reset Register Supported (V2) : 0
+                            Sealed Case (V3) : 0
+                    Headless - No Video (V3) : 0
+        Use native instr after SLP_TYPx (V3) : 0
+              PCIEXP_WAK Bits Supported (V4) : 0
+                     Use Platform Timer (V4) : 1
+               RTC_STS valid on S4 wake (V4) : 0
+                Remote Power-on capable (V4) : 0
+                 Use APIC Cluster Model (V4) : 0
+     Use APIC Physical Destination Mode (V4) : 0
+                       Hardware Reduced (V5) : 0
+                      Low Power S0 Idle (V5) : 0
+
+Raw Table Data: Length 116 (0x74)
+
+    0000: 46 41 43 50 74 00 00 00 01 A1 42 4F 43 48 53 20  // FACPt.....BOCHS 
+    0010: 42 58 50 43 46 41 43 50 01 00 00 00 42 58 50 43  // BXPCFACP....BXPC
+    0020: 01 00 00 00 00 00 00 00 00 00 00 00 01 00 09 00  // ................
+    0030: B2 00 00 00 F1 F0 00 00 00 06 00 00 00 00 00 00  // ................
+    0040: 04 06 00 00 00 00 00 00 00 00 00 00 08 06 00 00  // ................
+    0050: E0 AF 00 00 00 00 00 00 04 02 00 04 04 00 00 00  // ................
+    0060: FF 0F FF 0F 00 00 00 00 00 00 00 00 32 00 00 00  // ............2...
+    0070: A5 80 00 00                                      // ....
diff --git a/tests/data/acpi/pc/FACP.bridge b/tests/data/acpi/pc/FACP.bridge
new file mode 100644
index 0000000000000000000000000000000000000000..261ebdc5d1c3bdf18fb7935314a04fd7f6f92a7a
GIT binary patch
literal 116
zcmZ>BbPgzCU|?We=;ZJ05v<@85#a0w6k`O6f!H7#1{fJQ88!hqA3p#IHi#$-lm_uQ
ffb0kBq2f#oEG$6gfBygc5D^9jBOqgG0|Ns9?p_Z8

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/pc/FACP.bridge.dsl b/tests/data/acpi/pc/FACP.bridge.dsl
new file mode 100644
index 0000000000..11b371812d
--- /dev/null
+++ b/tests/data/acpi/pc/FACP.bridge.dsl
@@ -0,0 +1,99 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/pc/FACP.bridge, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [FACP]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "FACP"    [Fixed ACPI Description Table (FADT)]
+[004h 0004   4]                 Table Length : 00000074
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : A1
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCFACP"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]                 FACS Address : 00000000
+[028h 0040   4]                 DSDT Address : 00000000
+[02Ch 0044   1]                        Model : 01
+[02Dh 0045   1]                   PM Profile : 00 [Unspecified]
+[02Eh 0046   2]                SCI Interrupt : 0009
+[030h 0048   4]             SMI Command Port : 000000B2
+[034h 0052   1]            ACPI Enable Value : F1
+[035h 0053   1]           ACPI Disable Value : F0
+[036h 0054   1]               S4BIOS Command : 00
+[037h 0055   1]              P-State Control : 00
+[038h 0056   4]     PM1A Event Block Address : 00000600
+[03Ch 0060   4]     PM1B Event Block Address : 00000000
+[040h 0064   4]   PM1A Control Block Address : 00000604
+[044h 0068   4]   PM1B Control Block Address : 00000000
+[048h 0072   4]    PM2 Control Block Address : 00000000
+[04Ch 0076   4]       PM Timer Block Address : 00000608
+[050h 0080   4]           GPE0 Block Address : 0000AFE0
+[054h 0084   4]           GPE1 Block Address : 00000000
+[058h 0088   1]       PM1 Event Block Length : 04
+[059h 0089   1]     PM1 Control Block Length : 02
+[05Ah 0090   1]     PM2 Control Block Length : 00
+[05Bh 0091   1]        PM Timer Block Length : 04
+[05Ch 0092   1]            GPE0 Block Length : 04
+[05Dh 0093   1]            GPE1 Block Length : 00
+[05Eh 0094   1]             GPE1 Base Offset : 00
+[05Fh 0095   1]                 _CST Support : 00
+[060h 0096   2]                   C2 Latency : 0FFF
+[062h 0098   2]                   C3 Latency : 0FFF
+[064h 0100   2]               CPU Cache Size : 0000
+[066h 0102   2]           Cache Flush Stride : 0000
+[068h 0104   1]            Duty Cycle Offset : 00
+[069h 0105   1]             Duty Cycle Width : 00
+[06Ah 0106   1]          RTC Day Alarm Index : 00
+[06Bh 0107   1]        RTC Month Alarm Index : 00
+[06Ch 0108   1]            RTC Century Index : 32
+[06Dh 0109   2]   Boot Flags (decoded below) : 0000
+               Legacy Devices Supported (V2) : 0
+            8042 Present on ports 60/64 (V2) : 0
+                        VGA Not Present (V4) : 0
+                      MSI Not Supported (V4) : 0
+                PCIe ASPM Not Supported (V4) : 0
+                   CMOS RTC Not Present (V5) : 0
+[06Fh 0111   1]                     Reserved : 00
+[070h 0112   4]        Flags (decoded below) : 000080A5
+      WBINVD instruction is operational (V1) : 1
+              WBINVD flushes all caches (V1) : 0
+                    All CPUs support C1 (V1) : 1
+                  C2 works on MP system (V1) : 0
+            Control Method Power Button (V1) : 0
+            Control Method Sleep Button (V1) : 1
+        RTC wake not in fixed reg space (V1) : 0
+            RTC can wake system from S4 (V1) : 1
+                        32-bit PM Timer (V1) : 0
+                      Docking Supported (V1) : 0
+               Reset Register Supported (V2) : 0
+                            Sealed Case (V3) : 0
+                    Headless - No Video (V3) : 0
+        Use native instr after SLP_TYPx (V3) : 0
+              PCIEXP_WAK Bits Supported (V4) : 0
+                     Use Platform Timer (V4) : 1
+               RTC_STS valid on S4 wake (V4) : 0
+                Remote Power-on capable (V4) : 0
+                 Use APIC Cluster Model (V4) : 0
+     Use APIC Physical Destination Mode (V4) : 0
+                       Hardware Reduced (V5) : 0
+                      Low Power S0 Idle (V5) : 0
+
+Raw Table Data: Length 116 (0x74)
+
+    0000: 46 41 43 50 74 00 00 00 01 A1 42 4F 43 48 53 20  // FACPt.....BOCHS 
+    0010: 42 58 50 43 46 41 43 50 01 00 00 00 42 58 50 43  // BXPCFACP....BXPC
+    0020: 01 00 00 00 00 00 00 00 00 00 00 00 01 00 09 00  // ................
+    0030: B2 00 00 00 F1 F0 00 00 00 06 00 00 00 00 00 00  // ................
+    0040: 04 06 00 00 00 00 00 00 00 00 00 00 08 06 00 00  // ................
+    0050: E0 AF 00 00 00 00 00 00 04 02 00 04 04 00 00 00  // ................
+    0060: FF 0F FF 0F 00 00 00 00 00 00 00 00 32 00 00 00  // ............2...
+    0070: A5 80 00 00                                      // ....
diff --git a/tests/data/acpi/pc/FACP.cphp b/tests/data/acpi/pc/FACP.cphp
new file mode 100644
index 0000000000000000000000000000000000000000..261ebdc5d1c3bdf18fb7935314a04fd7f6f92a7a
GIT binary patch
literal 116
zcmZ>BbPgzCU|?We=;ZJ05v<@85#a0w6k`O6f!H7#1{fJQ88!hqA3p#IHi#$-lm_uQ
ffb0kBq2f#oEG$6gfBygc5D^9jBOqgG0|Ns9?p_Z8

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/pc/FACP.cphp.dsl b/tests/data/acpi/pc/FACP.cphp.dsl
new file mode 100644
index 0000000000..affffe9b64
--- /dev/null
+++ b/tests/data/acpi/pc/FACP.cphp.dsl
@@ -0,0 +1,99 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/pc/FACP.cphp, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [FACP]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "FACP"    [Fixed ACPI Description Table (FADT)]
+[004h 0004   4]                 Table Length : 00000074
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : A1
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCFACP"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]                 FACS Address : 00000000
+[028h 0040   4]                 DSDT Address : 00000000
+[02Ch 0044   1]                        Model : 01
+[02Dh 0045   1]                   PM Profile : 00 [Unspecified]
+[02Eh 0046   2]                SCI Interrupt : 0009
+[030h 0048   4]             SMI Command Port : 000000B2
+[034h 0052   1]            ACPI Enable Value : F1
+[035h 0053   1]           ACPI Disable Value : F0
+[036h 0054   1]               S4BIOS Command : 00
+[037h 0055   1]              P-State Control : 00
+[038h 0056   4]     PM1A Event Block Address : 00000600
+[03Ch 0060   4]     PM1B Event Block Address : 00000000
+[040h 0064   4]   PM1A Control Block Address : 00000604
+[044h 0068   4]   PM1B Control Block Address : 00000000
+[048h 0072   4]    PM2 Control Block Address : 00000000
+[04Ch 0076   4]       PM Timer Block Address : 00000608
+[050h 0080   4]           GPE0 Block Address : 0000AFE0
+[054h 0084   4]           GPE1 Block Address : 00000000
+[058h 0088   1]       PM1 Event Block Length : 04
+[059h 0089   1]     PM1 Control Block Length : 02
+[05Ah 0090   1]     PM2 Control Block Length : 00
+[05Bh 0091   1]        PM Timer Block Length : 04
+[05Ch 0092   1]            GPE0 Block Length : 04
+[05Dh 0093   1]            GPE1 Block Length : 00
+[05Eh 0094   1]             GPE1 Base Offset : 00
+[05Fh 0095   1]                 _CST Support : 00
+[060h 0096   2]                   C2 Latency : 0FFF
+[062h 0098   2]                   C3 Latency : 0FFF
+[064h 0100   2]               CPU Cache Size : 0000
+[066h 0102   2]           Cache Flush Stride : 0000
+[068h 0104   1]            Duty Cycle Offset : 00
+[069h 0105   1]             Duty Cycle Width : 00
+[06Ah 0106   1]          RTC Day Alarm Index : 00
+[06Bh 0107   1]        RTC Month Alarm Index : 00
+[06Ch 0108   1]            RTC Century Index : 32
+[06Dh 0109   2]   Boot Flags (decoded below) : 0000
+               Legacy Devices Supported (V2) : 0
+            8042 Present on ports 60/64 (V2) : 0
+                        VGA Not Present (V4) : 0
+                      MSI Not Supported (V4) : 0
+                PCIe ASPM Not Supported (V4) : 0
+                   CMOS RTC Not Present (V5) : 0
+[06Fh 0111   1]                     Reserved : 00
+[070h 0112   4]        Flags (decoded below) : 000080A5
+      WBINVD instruction is operational (V1) : 1
+              WBINVD flushes all caches (V1) : 0
+                    All CPUs support C1 (V1) : 1
+                  C2 works on MP system (V1) : 0
+            Control Method Power Button (V1) : 0
+            Control Method Sleep Button (V1) : 1
+        RTC wake not in fixed reg space (V1) : 0
+            RTC can wake system from S4 (V1) : 1
+                        32-bit PM Timer (V1) : 0
+                      Docking Supported (V1) : 0
+               Reset Register Supported (V2) : 0
+                            Sealed Case (V3) : 0
+                    Headless - No Video (V3) : 0
+        Use native instr after SLP_TYPx (V3) : 0
+              PCIEXP_WAK Bits Supported (V4) : 0
+                     Use Platform Timer (V4) : 1
+               RTC_STS valid on S4 wake (V4) : 0
+                Remote Power-on capable (V4) : 0
+                 Use APIC Cluster Model (V4) : 0
+     Use APIC Physical Destination Mode (V4) : 0
+                       Hardware Reduced (V5) : 0
+                      Low Power S0 Idle (V5) : 0
+
+Raw Table Data: Length 116 (0x74)
+
+    0000: 46 41 43 50 74 00 00 00 01 A1 42 4F 43 48 53 20  // FACPt.....BOCHS 
+    0010: 42 58 50 43 46 41 43 50 01 00 00 00 42 58 50 43  // BXPCFACP....BXPC
+    0020: 01 00 00 00 00 00 00 00 00 00 00 00 01 00 09 00  // ................
+    0030: B2 00 00 00 F1 F0 00 00 00 06 00 00 00 00 00 00  // ................
+    0040: 04 06 00 00 00 00 00 00 00 00 00 00 08 06 00 00  // ................
+    0050: E0 AF 00 00 00 00 00 00 04 02 00 04 04 00 00 00  // ................
+    0060: FF 0F FF 0F 00 00 00 00 00 00 00 00 32 00 00 00  // ............2...
+    0070: A5 80 00 00                                      // ....
diff --git a/tests/data/acpi/pc/FACP.dimmpxm b/tests/data/acpi/pc/FACP.dimmpxm
new file mode 100644
index 0000000000000000000000000000000000000000..261ebdc5d1c3bdf18fb7935314a04fd7f6f92a7a
GIT binary patch
literal 116
zcmZ>BbPgzCU|?We=;ZJ05v<@85#a0w6k`O6f!H7#1{fJQ88!hqA3p#IHi#$-lm_uQ
ffb0kBq2f#oEG$6gfBygc5D^9jBOqgG0|Ns9?p_Z8

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/pc/FACP.dimmpxm.dsl b/tests/data/acpi/pc/FACP.dimmpxm.dsl
new file mode 100644
index 0000000000..fd5a5ef375
--- /dev/null
+++ b/tests/data/acpi/pc/FACP.dimmpxm.dsl
@@ -0,0 +1,99 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/pc/FACP.dimmpxm, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [FACP]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "FACP"    [Fixed ACPI Description Table (FADT)]
+[004h 0004   4]                 Table Length : 00000074
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : A1
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCFACP"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]                 FACS Address : 00000000
+[028h 0040   4]                 DSDT Address : 00000000
+[02Ch 0044   1]                        Model : 01
+[02Dh 0045   1]                   PM Profile : 00 [Unspecified]
+[02Eh 0046   2]                SCI Interrupt : 0009
+[030h 0048   4]             SMI Command Port : 000000B2
+[034h 0052   1]            ACPI Enable Value : F1
+[035h 0053   1]           ACPI Disable Value : F0
+[036h 0054   1]               S4BIOS Command : 00
+[037h 0055   1]              P-State Control : 00
+[038h 0056   4]     PM1A Event Block Address : 00000600
+[03Ch 0060   4]     PM1B Event Block Address : 00000000
+[040h 0064   4]   PM1A Control Block Address : 00000604
+[044h 0068   4]   PM1B Control Block Address : 00000000
+[048h 0072   4]    PM2 Control Block Address : 00000000
+[04Ch 0076   4]       PM Timer Block Address : 00000608
+[050h 0080   4]           GPE0 Block Address : 0000AFE0
+[054h 0084   4]           GPE1 Block Address : 00000000
+[058h 0088   1]       PM1 Event Block Length : 04
+[059h 0089   1]     PM1 Control Block Length : 02
+[05Ah 0090   1]     PM2 Control Block Length : 00
+[05Bh 0091   1]        PM Timer Block Length : 04
+[05Ch 0092   1]            GPE0 Block Length : 04
+[05Dh 0093   1]            GPE1 Block Length : 00
+[05Eh 0094   1]             GPE1 Base Offset : 00
+[05Fh 0095   1]                 _CST Support : 00
+[060h 0096   2]                   C2 Latency : 0FFF
+[062h 0098   2]                   C3 Latency : 0FFF
+[064h 0100   2]               CPU Cache Size : 0000
+[066h 0102   2]           Cache Flush Stride : 0000
+[068h 0104   1]            Duty Cycle Offset : 00
+[069h 0105   1]             Duty Cycle Width : 00
+[06Ah 0106   1]          RTC Day Alarm Index : 00
+[06Bh 0107   1]        RTC Month Alarm Index : 00
+[06Ch 0108   1]            RTC Century Index : 32
+[06Dh 0109   2]   Boot Flags (decoded below) : 0000
+               Legacy Devices Supported (V2) : 0
+            8042 Present on ports 60/64 (V2) : 0
+                        VGA Not Present (V4) : 0
+                      MSI Not Supported (V4) : 0
+                PCIe ASPM Not Supported (V4) : 0
+                   CMOS RTC Not Present (V5) : 0
+[06Fh 0111   1]                     Reserved : 00
+[070h 0112   4]        Flags (decoded below) : 000080A5
+      WBINVD instruction is operational (V1) : 1
+              WBINVD flushes all caches (V1) : 0
+                    All CPUs support C1 (V1) : 1
+                  C2 works on MP system (V1) : 0
+            Control Method Power Button (V1) : 0
+            Control Method Sleep Button (V1) : 1
+        RTC wake not in fixed reg space (V1) : 0
+            RTC can wake system from S4 (V1) : 1
+                        32-bit PM Timer (V1) : 0
+                      Docking Supported (V1) : 0
+               Reset Register Supported (V2) : 0
+                            Sealed Case (V3) : 0
+                    Headless - No Video (V3) : 0
+        Use native instr after SLP_TYPx (V3) : 0
+              PCIEXP_WAK Bits Supported (V4) : 0
+                     Use Platform Timer (V4) : 1
+               RTC_STS valid on S4 wake (V4) : 0
+                Remote Power-on capable (V4) : 0
+                 Use APIC Cluster Model (V4) : 0
+     Use APIC Physical Destination Mode (V4) : 0
+                       Hardware Reduced (V5) : 0
+                      Low Power S0 Idle (V5) : 0
+
+Raw Table Data: Length 116 (0x74)
+
+    0000: 46 41 43 50 74 00 00 00 01 A1 42 4F 43 48 53 20  // FACPt.....BOCHS 
+    0010: 42 58 50 43 46 41 43 50 01 00 00 00 42 58 50 43  // BXPCFACP....BXPC
+    0020: 01 00 00 00 00 00 00 00 00 00 00 00 01 00 09 00  // ................
+    0030: B2 00 00 00 F1 F0 00 00 00 06 00 00 00 00 00 00  // ................
+    0040: 04 06 00 00 00 00 00 00 00 00 00 00 08 06 00 00  // ................
+    0050: E0 AF 00 00 00 00 00 00 04 02 00 04 04 00 00 00  // ................
+    0060: FF 0F FF 0F 00 00 00 00 00 00 00 00 32 00 00 00  // ............2...
+    0070: A5 80 00 00                                      // ....
diff --git a/tests/data/acpi/pc/FACP.dsl b/tests/data/acpi/pc/FACP.dsl
new file mode 100644
index 0000000000..c5e3718772
--- /dev/null
+++ b/tests/data/acpi/pc/FACP.dsl
@@ -0,0 +1,99 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/pc/FACP.roothp, Mon Sep 28 17:24:38 2020
+ *
+ * ACPI Data Table [FACP]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "FACP"    [Fixed ACPI Description Table (FADT)]
+[004h 0004   4]                 Table Length : 00000074
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : A1
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCFACP"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]                 FACS Address : 00000000
+[028h 0040   4]                 DSDT Address : 00000000
+[02Ch 0044   1]                        Model : 01
+[02Dh 0045   1]                   PM Profile : 00 [Unspecified]
+[02Eh 0046   2]                SCI Interrupt : 0009
+[030h 0048   4]             SMI Command Port : 000000B2
+[034h 0052   1]            ACPI Enable Value : F1
+[035h 0053   1]           ACPI Disable Value : F0
+[036h 0054   1]               S4BIOS Command : 00
+[037h 0055   1]              P-State Control : 00
+[038h 0056   4]     PM1A Event Block Address : 00000600
+[03Ch 0060   4]     PM1B Event Block Address : 00000000
+[040h 0064   4]   PM1A Control Block Address : 00000604
+[044h 0068   4]   PM1B Control Block Address : 00000000
+[048h 0072   4]    PM2 Control Block Address : 00000000
+[04Ch 0076   4]       PM Timer Block Address : 00000608
+[050h 0080   4]           GPE0 Block Address : 0000AFE0
+[054h 0084   4]           GPE1 Block Address : 00000000
+[058h 0088   1]       PM1 Event Block Length : 04
+[059h 0089   1]     PM1 Control Block Length : 02
+[05Ah 0090   1]     PM2 Control Block Length : 00
+[05Bh 0091   1]        PM Timer Block Length : 04
+[05Ch 0092   1]            GPE0 Block Length : 04
+[05Dh 0093   1]            GPE1 Block Length : 00
+[05Eh 0094   1]             GPE1 Base Offset : 00
+[05Fh 0095   1]                 _CST Support : 00
+[060h 0096   2]                   C2 Latency : 0FFF
+[062h 0098   2]                   C3 Latency : 0FFF
+[064h 0100   2]               CPU Cache Size : 0000
+[066h 0102   2]           Cache Flush Stride : 0000
+[068h 0104   1]            Duty Cycle Offset : 00
+[069h 0105   1]             Duty Cycle Width : 00
+[06Ah 0106   1]          RTC Day Alarm Index : 00
+[06Bh 0107   1]        RTC Month Alarm Index : 00
+[06Ch 0108   1]            RTC Century Index : 32
+[06Dh 0109   2]   Boot Flags (decoded below) : 0000
+               Legacy Devices Supported (V2) : 0
+            8042 Present on ports 60/64 (V2) : 0
+                        VGA Not Present (V4) : 0
+                      MSI Not Supported (V4) : 0
+                PCIe ASPM Not Supported (V4) : 0
+                   CMOS RTC Not Present (V5) : 0
+[06Fh 0111   1]                     Reserved : 00
+[070h 0112   4]        Flags (decoded below) : 000080A5
+      WBINVD instruction is operational (V1) : 1
+              WBINVD flushes all caches (V1) : 0
+                    All CPUs support C1 (V1) : 1
+                  C2 works on MP system (V1) : 0
+            Control Method Power Button (V1) : 0
+            Control Method Sleep Button (V1) : 1
+        RTC wake not in fixed reg space (V1) : 0
+            RTC can wake system from S4 (V1) : 1
+                        32-bit PM Timer (V1) : 0
+                      Docking Supported (V1) : 0
+               Reset Register Supported (V2) : 0
+                            Sealed Case (V3) : 0
+                    Headless - No Video (V3) : 0
+        Use native instr after SLP_TYPx (V3) : 0
+              PCIEXP_WAK Bits Supported (V4) : 0
+                     Use Platform Timer (V4) : 1
+               RTC_STS valid on S4 wake (V4) : 0
+                Remote Power-on capable (V4) : 0
+                 Use APIC Cluster Model (V4) : 0
+     Use APIC Physical Destination Mode (V4) : 0
+                       Hardware Reduced (V5) : 0
+                      Low Power S0 Idle (V5) : 0
+
+Raw Table Data: Length 116 (0x74)
+
+    0000: 46 41 43 50 74 00 00 00 01 A1 42 4F 43 48 53 20  // FACPt.....BOCHS 
+    0010: 42 58 50 43 46 41 43 50 01 00 00 00 42 58 50 43  // BXPCFACP....BXPC
+    0020: 01 00 00 00 00 00 00 00 00 00 00 00 01 00 09 00  // ................
+    0030: B2 00 00 00 F1 F0 00 00 00 06 00 00 00 00 00 00  // ................
+    0040: 04 06 00 00 00 00 00 00 00 00 00 00 08 06 00 00  // ................
+    0050: E0 AF 00 00 00 00 00 00 04 02 00 04 04 00 00 00  // ................
+    0060: FF 0F FF 0F 00 00 00 00 00 00 00 00 32 00 00 00  // ............2...
+    0070: A5 80 00 00                                      // ....
diff --git a/tests/data/acpi/pc/FACP.hpbridge b/tests/data/acpi/pc/FACP.hpbridge
new file mode 100644
index 0000000000000000000000000000000000000000..261ebdc5d1c3bdf18fb7935314a04fd7f6f92a7a
GIT binary patch
literal 116
zcmZ>BbPgzCU|?We=;ZJ05v<@85#a0w6k`O6f!H7#1{fJQ88!hqA3p#IHi#$-lm_uQ
ffb0kBq2f#oEG$6gfBygc5D^9jBOqgG0|Ns9?p_Z8

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/pc/FACP.ipmikcs b/tests/data/acpi/pc/FACP.ipmikcs
new file mode 100644
index 0000000000000000000000000000000000000000..261ebdc5d1c3bdf18fb7935314a04fd7f6f92a7a
GIT binary patch
literal 116
zcmZ>BbPgzCU|?We=;ZJ05v<@85#a0w6k`O6f!H7#1{fJQ88!hqA3p#IHi#$-lm_uQ
ffb0kBq2f#oEG$6gfBygc5D^9jBOqgG0|Ns9?p_Z8

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/pc/FACP.ipmikcs.dsl b/tests/data/acpi/pc/FACP.ipmikcs.dsl
new file mode 100644
index 0000000000..3f1dd018da
--- /dev/null
+++ b/tests/data/acpi/pc/FACP.ipmikcs.dsl
@@ -0,0 +1,99 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/pc/FACP.ipmikcs, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [FACP]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "FACP"    [Fixed ACPI Description Table (FADT)]
+[004h 0004   4]                 Table Length : 00000074
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : A1
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCFACP"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]                 FACS Address : 00000000
+[028h 0040   4]                 DSDT Address : 00000000
+[02Ch 0044   1]                        Model : 01
+[02Dh 0045   1]                   PM Profile : 00 [Unspecified]
+[02Eh 0046   2]                SCI Interrupt : 0009
+[030h 0048   4]             SMI Command Port : 000000B2
+[034h 0052   1]            ACPI Enable Value : F1
+[035h 0053   1]           ACPI Disable Value : F0
+[036h 0054   1]               S4BIOS Command : 00
+[037h 0055   1]              P-State Control : 00
+[038h 0056   4]     PM1A Event Block Address : 00000600
+[03Ch 0060   4]     PM1B Event Block Address : 00000000
+[040h 0064   4]   PM1A Control Block Address : 00000604
+[044h 0068   4]   PM1B Control Block Address : 00000000
+[048h 0072   4]    PM2 Control Block Address : 00000000
+[04Ch 0076   4]       PM Timer Block Address : 00000608
+[050h 0080   4]           GPE0 Block Address : 0000AFE0
+[054h 0084   4]           GPE1 Block Address : 00000000
+[058h 0088   1]       PM1 Event Block Length : 04
+[059h 0089   1]     PM1 Control Block Length : 02
+[05Ah 0090   1]     PM2 Control Block Length : 00
+[05Bh 0091   1]        PM Timer Block Length : 04
+[05Ch 0092   1]            GPE0 Block Length : 04
+[05Dh 0093   1]            GPE1 Block Length : 00
+[05Eh 0094   1]             GPE1 Base Offset : 00
+[05Fh 0095   1]                 _CST Support : 00
+[060h 0096   2]                   C2 Latency : 0FFF
+[062h 0098   2]                   C3 Latency : 0FFF
+[064h 0100   2]               CPU Cache Size : 0000
+[066h 0102   2]           Cache Flush Stride : 0000
+[068h 0104   1]            Duty Cycle Offset : 00
+[069h 0105   1]             Duty Cycle Width : 00
+[06Ah 0106   1]          RTC Day Alarm Index : 00
+[06Bh 0107   1]        RTC Month Alarm Index : 00
+[06Ch 0108   1]            RTC Century Index : 32
+[06Dh 0109   2]   Boot Flags (decoded below) : 0000
+               Legacy Devices Supported (V2) : 0
+            8042 Present on ports 60/64 (V2) : 0
+                        VGA Not Present (V4) : 0
+                      MSI Not Supported (V4) : 0
+                PCIe ASPM Not Supported (V4) : 0
+                   CMOS RTC Not Present (V5) : 0
+[06Fh 0111   1]                     Reserved : 00
+[070h 0112   4]        Flags (decoded below) : 000080A5
+      WBINVD instruction is operational (V1) : 1
+              WBINVD flushes all caches (V1) : 0
+                    All CPUs support C1 (V1) : 1
+                  C2 works on MP system (V1) : 0
+            Control Method Power Button (V1) : 0
+            Control Method Sleep Button (V1) : 1
+        RTC wake not in fixed reg space (V1) : 0
+            RTC can wake system from S4 (V1) : 1
+                        32-bit PM Timer (V1) : 0
+                      Docking Supported (V1) : 0
+               Reset Register Supported (V2) : 0
+                            Sealed Case (V3) : 0
+                    Headless - No Video (V3) : 0
+        Use native instr after SLP_TYPx (V3) : 0
+              PCIEXP_WAK Bits Supported (V4) : 0
+                     Use Platform Timer (V4) : 1
+               RTC_STS valid on S4 wake (V4) : 0
+                Remote Power-on capable (V4) : 0
+                 Use APIC Cluster Model (V4) : 0
+     Use APIC Physical Destination Mode (V4) : 0
+                       Hardware Reduced (V5) : 0
+                      Low Power S0 Idle (V5) : 0
+
+Raw Table Data: Length 116 (0x74)
+
+    0000: 46 41 43 50 74 00 00 00 01 A1 42 4F 43 48 53 20  // FACPt.....BOCHS 
+    0010: 42 58 50 43 46 41 43 50 01 00 00 00 42 58 50 43  // BXPCFACP....BXPC
+    0020: 01 00 00 00 00 00 00 00 00 00 00 00 01 00 09 00  // ................
+    0030: B2 00 00 00 F1 F0 00 00 00 06 00 00 00 00 00 00  // ................
+    0040: 04 06 00 00 00 00 00 00 00 00 00 00 08 06 00 00  // ................
+    0050: E0 AF 00 00 00 00 00 00 04 02 00 04 04 00 00 00  // ................
+    0060: FF 0F FF 0F 00 00 00 00 00 00 00 00 32 00 00 00  // ............2...
+    0070: A5 80 00 00                                      // ....
diff --git a/tests/data/acpi/pc/FACP.memhp b/tests/data/acpi/pc/FACP.memhp
new file mode 100644
index 0000000000000000000000000000000000000000..261ebdc5d1c3bdf18fb7935314a04fd7f6f92a7a
GIT binary patch
literal 116
zcmZ>BbPgzCU|?We=;ZJ05v<@85#a0w6k`O6f!H7#1{fJQ88!hqA3p#IHi#$-lm_uQ
ffb0kBq2f#oEG$6gfBygc5D^9jBOqgG0|Ns9?p_Z8

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/pc/FACP.memhp.dsl b/tests/data/acpi/pc/FACP.memhp.dsl
new file mode 100644
index 0000000000..b2c466e989
--- /dev/null
+++ b/tests/data/acpi/pc/FACP.memhp.dsl
@@ -0,0 +1,99 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/pc/FACP.memhp, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [FACP]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "FACP"    [Fixed ACPI Description Table (FADT)]
+[004h 0004   4]                 Table Length : 00000074
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : A1
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCFACP"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]                 FACS Address : 00000000
+[028h 0040   4]                 DSDT Address : 00000000
+[02Ch 0044   1]                        Model : 01
+[02Dh 0045   1]                   PM Profile : 00 [Unspecified]
+[02Eh 0046   2]                SCI Interrupt : 0009
+[030h 0048   4]             SMI Command Port : 000000B2
+[034h 0052   1]            ACPI Enable Value : F1
+[035h 0053   1]           ACPI Disable Value : F0
+[036h 0054   1]               S4BIOS Command : 00
+[037h 0055   1]              P-State Control : 00
+[038h 0056   4]     PM1A Event Block Address : 00000600
+[03Ch 0060   4]     PM1B Event Block Address : 00000000
+[040h 0064   4]   PM1A Control Block Address : 00000604
+[044h 0068   4]   PM1B Control Block Address : 00000000
+[048h 0072   4]    PM2 Control Block Address : 00000000
+[04Ch 0076   4]       PM Timer Block Address : 00000608
+[050h 0080   4]           GPE0 Block Address : 0000AFE0
+[054h 0084   4]           GPE1 Block Address : 00000000
+[058h 0088   1]       PM1 Event Block Length : 04
+[059h 0089   1]     PM1 Control Block Length : 02
+[05Ah 0090   1]     PM2 Control Block Length : 00
+[05Bh 0091   1]        PM Timer Block Length : 04
+[05Ch 0092   1]            GPE0 Block Length : 04
+[05Dh 0093   1]            GPE1 Block Length : 00
+[05Eh 0094   1]             GPE1 Base Offset : 00
+[05Fh 0095   1]                 _CST Support : 00
+[060h 0096   2]                   C2 Latency : 0FFF
+[062h 0098   2]                   C3 Latency : 0FFF
+[064h 0100   2]               CPU Cache Size : 0000
+[066h 0102   2]           Cache Flush Stride : 0000
+[068h 0104   1]            Duty Cycle Offset : 00
+[069h 0105   1]             Duty Cycle Width : 00
+[06Ah 0106   1]          RTC Day Alarm Index : 00
+[06Bh 0107   1]        RTC Month Alarm Index : 00
+[06Ch 0108   1]            RTC Century Index : 32
+[06Dh 0109   2]   Boot Flags (decoded below) : 0000
+               Legacy Devices Supported (V2) : 0
+            8042 Present on ports 60/64 (V2) : 0
+                        VGA Not Present (V4) : 0
+                      MSI Not Supported (V4) : 0
+                PCIe ASPM Not Supported (V4) : 0
+                   CMOS RTC Not Present (V5) : 0
+[06Fh 0111   1]                     Reserved : 00
+[070h 0112   4]        Flags (decoded below) : 000080A5
+      WBINVD instruction is operational (V1) : 1
+              WBINVD flushes all caches (V1) : 0
+                    All CPUs support C1 (V1) : 1
+                  C2 works on MP system (V1) : 0
+            Control Method Power Button (V1) : 0
+            Control Method Sleep Button (V1) : 1
+        RTC wake not in fixed reg space (V1) : 0
+            RTC can wake system from S4 (V1) : 1
+                        32-bit PM Timer (V1) : 0
+                      Docking Supported (V1) : 0
+               Reset Register Supported (V2) : 0
+                            Sealed Case (V3) : 0
+                    Headless - No Video (V3) : 0
+        Use native instr after SLP_TYPx (V3) : 0
+              PCIEXP_WAK Bits Supported (V4) : 0
+                     Use Platform Timer (V4) : 1
+               RTC_STS valid on S4 wake (V4) : 0
+                Remote Power-on capable (V4) : 0
+                 Use APIC Cluster Model (V4) : 0
+     Use APIC Physical Destination Mode (V4) : 0
+                       Hardware Reduced (V5) : 0
+                      Low Power S0 Idle (V5) : 0
+
+Raw Table Data: Length 116 (0x74)
+
+    0000: 46 41 43 50 74 00 00 00 01 A1 42 4F 43 48 53 20  // FACPt.....BOCHS 
+    0010: 42 58 50 43 46 41 43 50 01 00 00 00 42 58 50 43  // BXPCFACP....BXPC
+    0020: 01 00 00 00 00 00 00 00 00 00 00 00 01 00 09 00  // ................
+    0030: B2 00 00 00 F1 F0 00 00 00 06 00 00 00 00 00 00  // ................
+    0040: 04 06 00 00 00 00 00 00 00 00 00 00 08 06 00 00  // ................
+    0050: E0 AF 00 00 00 00 00 00 04 02 00 04 04 00 00 00  // ................
+    0060: FF 0F FF 0F 00 00 00 00 00 00 00 00 32 00 00 00  // ............2...
+    0070: A5 80 00 00                                      // ....
diff --git a/tests/data/acpi/pc/FACP.numamem b/tests/data/acpi/pc/FACP.numamem
new file mode 100644
index 0000000000000000000000000000000000000000..261ebdc5d1c3bdf18fb7935314a04fd7f6f92a7a
GIT binary patch
literal 116
zcmZ>BbPgzCU|?We=;ZJ05v<@85#a0w6k`O6f!H7#1{fJQ88!hqA3p#IHi#$-lm_uQ
ffb0kBq2f#oEG$6gfBygc5D^9jBOqgG0|Ns9?p_Z8

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/pc/FACP.numamem.dsl b/tests/data/acpi/pc/FACP.numamem.dsl
new file mode 100644
index 0000000000..34ed95d536
--- /dev/null
+++ b/tests/data/acpi/pc/FACP.numamem.dsl
@@ -0,0 +1,99 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/pc/FACP.numamem, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [FACP]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "FACP"    [Fixed ACPI Description Table (FADT)]
+[004h 0004   4]                 Table Length : 00000074
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : A1
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCFACP"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]                 FACS Address : 00000000
+[028h 0040   4]                 DSDT Address : 00000000
+[02Ch 0044   1]                        Model : 01
+[02Dh 0045   1]                   PM Profile : 00 [Unspecified]
+[02Eh 0046   2]                SCI Interrupt : 0009
+[030h 0048   4]             SMI Command Port : 000000B2
+[034h 0052   1]            ACPI Enable Value : F1
+[035h 0053   1]           ACPI Disable Value : F0
+[036h 0054   1]               S4BIOS Command : 00
+[037h 0055   1]              P-State Control : 00
+[038h 0056   4]     PM1A Event Block Address : 00000600
+[03Ch 0060   4]     PM1B Event Block Address : 00000000
+[040h 0064   4]   PM1A Control Block Address : 00000604
+[044h 0068   4]   PM1B Control Block Address : 00000000
+[048h 0072   4]    PM2 Control Block Address : 00000000
+[04Ch 0076   4]       PM Timer Block Address : 00000608
+[050h 0080   4]           GPE0 Block Address : 0000AFE0
+[054h 0084   4]           GPE1 Block Address : 00000000
+[058h 0088   1]       PM1 Event Block Length : 04
+[059h 0089   1]     PM1 Control Block Length : 02
+[05Ah 0090   1]     PM2 Control Block Length : 00
+[05Bh 0091   1]        PM Timer Block Length : 04
+[05Ch 0092   1]            GPE0 Block Length : 04
+[05Dh 0093   1]            GPE1 Block Length : 00
+[05Eh 0094   1]             GPE1 Base Offset : 00
+[05Fh 0095   1]                 _CST Support : 00
+[060h 0096   2]                   C2 Latency : 0FFF
+[062h 0098   2]                   C3 Latency : 0FFF
+[064h 0100   2]               CPU Cache Size : 0000
+[066h 0102   2]           Cache Flush Stride : 0000
+[068h 0104   1]            Duty Cycle Offset : 00
+[069h 0105   1]             Duty Cycle Width : 00
+[06Ah 0106   1]          RTC Day Alarm Index : 00
+[06Bh 0107   1]        RTC Month Alarm Index : 00
+[06Ch 0108   1]            RTC Century Index : 32
+[06Dh 0109   2]   Boot Flags (decoded below) : 0000
+               Legacy Devices Supported (V2) : 0
+            8042 Present on ports 60/64 (V2) : 0
+                        VGA Not Present (V4) : 0
+                      MSI Not Supported (V4) : 0
+                PCIe ASPM Not Supported (V4) : 0
+                   CMOS RTC Not Present (V5) : 0
+[06Fh 0111   1]                     Reserved : 00
+[070h 0112   4]        Flags (decoded below) : 000080A5
+      WBINVD instruction is operational (V1) : 1
+              WBINVD flushes all caches (V1) : 0
+                    All CPUs support C1 (V1) : 1
+                  C2 works on MP system (V1) : 0
+            Control Method Power Button (V1) : 0
+            Control Method Sleep Button (V1) : 1
+        RTC wake not in fixed reg space (V1) : 0
+            RTC can wake system from S4 (V1) : 1
+                        32-bit PM Timer (V1) : 0
+                      Docking Supported (V1) : 0
+               Reset Register Supported (V2) : 0
+                            Sealed Case (V3) : 0
+                    Headless - No Video (V3) : 0
+        Use native instr after SLP_TYPx (V3) : 0
+              PCIEXP_WAK Bits Supported (V4) : 0
+                     Use Platform Timer (V4) : 1
+               RTC_STS valid on S4 wake (V4) : 0
+                Remote Power-on capable (V4) : 0
+                 Use APIC Cluster Model (V4) : 0
+     Use APIC Physical Destination Mode (V4) : 0
+                       Hardware Reduced (V5) : 0
+                      Low Power S0 Idle (V5) : 0
+
+Raw Table Data: Length 116 (0x74)
+
+    0000: 46 41 43 50 74 00 00 00 01 A1 42 4F 43 48 53 20  // FACPt.....BOCHS 
+    0010: 42 58 50 43 46 41 43 50 01 00 00 00 42 58 50 43  // BXPCFACP....BXPC
+    0020: 01 00 00 00 00 00 00 00 00 00 00 00 01 00 09 00  // ................
+    0030: B2 00 00 00 F1 F0 00 00 00 06 00 00 00 00 00 00  // ................
+    0040: 04 06 00 00 00 00 00 00 00 00 00 00 08 06 00 00  // ................
+    0050: E0 AF 00 00 00 00 00 00 04 02 00 04 04 00 00 00  // ................
+    0060: FF 0F FF 0F 00 00 00 00 00 00 00 00 32 00 00 00  // ............2...
+    0070: A5 80 00 00                                      // ....
diff --git a/tests/data/acpi/pc/FACP.roothp b/tests/data/acpi/pc/FACP.roothp
new file mode 100644
index 0000000000000000000000000000000000000000..261ebdc5d1c3bdf18fb7935314a04fd7f6f92a7a
GIT binary patch
literal 116
zcmZ>BbPgzCU|?We=;ZJ05v<@85#a0w6k`O6f!H7#1{fJQ88!hqA3p#IHi#$-lm_uQ
ffb0kBq2f#oEG$6gfBygc5D^9jBOqgG0|Ns9?p_Z8

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/pc/FACS.acpihmat b/tests/data/acpi/pc/FACS.acpihmat
new file mode 100644
index 0000000000000000000000000000000000000000..fc67ecc40782bd7fe8921e430d7de67f0bfaad93
GIT binary patch
literal 64
PcmZ>BbPjf4ARhn#RKNjV

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/pc/FACS.acpihmat.dsl b/tests/data/acpi/pc/FACS.acpihmat.dsl
new file mode 100644
index 0000000000..bff165ba4e
--- /dev/null
+++ b/tests/data/acpi/pc/FACS.acpihmat.dsl
@@ -0,0 +1,32 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/pc/FACS.acpihmat, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [FACS]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "FACS"
+[004h 0004   4]                       Length : 00000040
+[008h 0008   4]           Hardware Signature : 00000000
+[00Ch 0012   4]    32 Firmware Waking Vector : 00000000
+[010h 0016   4]                  Global Lock : 00000000
+[014h 0020   4]        Flags (decoded below) : 00000000
+                      S4BIOS Support Present : 0
+                  64-bit Wake Supported (V2) : 0
+[018h 0024   8]    64 Firmware Waking Vector : 0000000000000000
+[020h 0032   1]                      Version : 00
+[021h 0033   3]                     Reserved : 000000
+[024h 0036   4]    OspmFlags (decoded below) : 00000000
+               64-bit Wake Env Required (V2) : 0
+
+Raw Table Data: Length 64 (0x40)
+
+    0000: 46 41 43 53 40 00 00 00 00 00 00 00 00 00 00 00  // FACS@...........
+    0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
diff --git a/tests/data/acpi/pc/FACS.bridge b/tests/data/acpi/pc/FACS.bridge
new file mode 100644
index 0000000000000000000000000000000000000000..fc67ecc40782bd7fe8921e430d7de67f0bfaad93
GIT binary patch
literal 64
PcmZ>BbPjf4ARhn#RKNjV

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/pc/FACS.bridge.dsl b/tests/data/acpi/pc/FACS.bridge.dsl
new file mode 100644
index 0000000000..981354f0f3
--- /dev/null
+++ b/tests/data/acpi/pc/FACS.bridge.dsl
@@ -0,0 +1,32 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/pc/FACS.bridge, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [FACS]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "FACS"
+[004h 0004   4]                       Length : 00000040
+[008h 0008   4]           Hardware Signature : 00000000
+[00Ch 0012   4]    32 Firmware Waking Vector : 00000000
+[010h 0016   4]                  Global Lock : 00000000
+[014h 0020   4]        Flags (decoded below) : 00000000
+                      S4BIOS Support Present : 0
+                  64-bit Wake Supported (V2) : 0
+[018h 0024   8]    64 Firmware Waking Vector : 0000000000000000
+[020h 0032   1]                      Version : 00
+[021h 0033   3]                     Reserved : 000000
+[024h 0036   4]    OspmFlags (decoded below) : 00000000
+               64-bit Wake Env Required (V2) : 0
+
+Raw Table Data: Length 64 (0x40)
+
+    0000: 46 41 43 53 40 00 00 00 00 00 00 00 00 00 00 00  // FACS@...........
+    0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
diff --git a/tests/data/acpi/pc/FACS.cphp b/tests/data/acpi/pc/FACS.cphp
new file mode 100644
index 0000000000000000000000000000000000000000..fc67ecc40782bd7fe8921e430d7de67f0bfaad93
GIT binary patch
literal 64
PcmZ>BbPjf4ARhn#RKNjV

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/pc/FACS.cphp.dsl b/tests/data/acpi/pc/FACS.cphp.dsl
new file mode 100644
index 0000000000..bb44e525b9
--- /dev/null
+++ b/tests/data/acpi/pc/FACS.cphp.dsl
@@ -0,0 +1,32 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/pc/FACS.cphp, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [FACS]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "FACS"
+[004h 0004   4]                       Length : 00000040
+[008h 0008   4]           Hardware Signature : 00000000
+[00Ch 0012   4]    32 Firmware Waking Vector : 00000000
+[010h 0016   4]                  Global Lock : 00000000
+[014h 0020   4]        Flags (decoded below) : 00000000
+                      S4BIOS Support Present : 0
+                  64-bit Wake Supported (V2) : 0
+[018h 0024   8]    64 Firmware Waking Vector : 0000000000000000
+[020h 0032   1]                      Version : 00
+[021h 0033   3]                     Reserved : 000000
+[024h 0036   4]    OspmFlags (decoded below) : 00000000
+               64-bit Wake Env Required (V2) : 0
+
+Raw Table Data: Length 64 (0x40)
+
+    0000: 46 41 43 53 40 00 00 00 00 00 00 00 00 00 00 00  // FACS@...........
+    0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
diff --git a/tests/data/acpi/pc/FACS.dimmpxm b/tests/data/acpi/pc/FACS.dimmpxm
new file mode 100644
index 0000000000000000000000000000000000000000..fc67ecc40782bd7fe8921e430d7de67f0bfaad93
GIT binary patch
literal 64
PcmZ>BbPjf4ARhn#RKNjV

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/pc/FACS.dimmpxm.dsl b/tests/data/acpi/pc/FACS.dimmpxm.dsl
new file mode 100644
index 0000000000..e7586d3236
--- /dev/null
+++ b/tests/data/acpi/pc/FACS.dimmpxm.dsl
@@ -0,0 +1,32 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/pc/FACS.dimmpxm, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [FACS]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "FACS"
+[004h 0004   4]                       Length : 00000040
+[008h 0008   4]           Hardware Signature : 00000000
+[00Ch 0012   4]    32 Firmware Waking Vector : 00000000
+[010h 0016   4]                  Global Lock : 00000000
+[014h 0020   4]        Flags (decoded below) : 00000000
+                      S4BIOS Support Present : 0
+                  64-bit Wake Supported (V2) : 0
+[018h 0024   8]    64 Firmware Waking Vector : 0000000000000000
+[020h 0032   1]                      Version : 00
+[021h 0033   3]                     Reserved : 000000
+[024h 0036   4]    OspmFlags (decoded below) : 00000000
+               64-bit Wake Env Required (V2) : 0
+
+Raw Table Data: Length 64 (0x40)
+
+    0000: 46 41 43 53 40 00 00 00 00 00 00 00 00 00 00 00  // FACS@...........
+    0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
diff --git a/tests/data/acpi/pc/FACS.dsl b/tests/data/acpi/pc/FACS.dsl
new file mode 100644
index 0000000000..11d622cdf7
--- /dev/null
+++ b/tests/data/acpi/pc/FACS.dsl
@@ -0,0 +1,32 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/pc/FACS.roothp, Mon Sep 28 17:24:38 2020
+ *
+ * ACPI Data Table [FACS]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "FACS"
+[004h 0004   4]                       Length : 00000040
+[008h 0008   4]           Hardware Signature : 00000000
+[00Ch 0012   4]    32 Firmware Waking Vector : 00000000
+[010h 0016   4]                  Global Lock : 00000000
+[014h 0020   4]        Flags (decoded below) : 00000000
+                      S4BIOS Support Present : 0
+                  64-bit Wake Supported (V2) : 0
+[018h 0024   8]    64 Firmware Waking Vector : 0000000000000000
+[020h 0032   1]                      Version : 00
+[021h 0033   3]                     Reserved : 000000
+[024h 0036   4]    OspmFlags (decoded below) : 00000000
+               64-bit Wake Env Required (V2) : 0
+
+Raw Table Data: Length 64 (0x40)
+
+    0000: 46 41 43 53 40 00 00 00 00 00 00 00 00 00 00 00  // FACS@...........
+    0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
diff --git a/tests/data/acpi/pc/FACS.hpbridge b/tests/data/acpi/pc/FACS.hpbridge
new file mode 100644
index 0000000000000000000000000000000000000000..fc67ecc40782bd7fe8921e430d7de67f0bfaad93
GIT binary patch
literal 64
PcmZ>BbPjf4ARhn#RKNjV

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/pc/FACS.ipmikcs b/tests/data/acpi/pc/FACS.ipmikcs
new file mode 100644
index 0000000000000000000000000000000000000000..fc67ecc40782bd7fe8921e430d7de67f0bfaad93
GIT binary patch
literal 64
PcmZ>BbPjf4ARhn#RKNjV

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/pc/FACS.ipmikcs.dsl b/tests/data/acpi/pc/FACS.ipmikcs.dsl
new file mode 100644
index 0000000000..f4b7c9718c
--- /dev/null
+++ b/tests/data/acpi/pc/FACS.ipmikcs.dsl
@@ -0,0 +1,32 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/pc/FACS.ipmikcs, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [FACS]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "FACS"
+[004h 0004   4]                       Length : 00000040
+[008h 0008   4]           Hardware Signature : 00000000
+[00Ch 0012   4]    32 Firmware Waking Vector : 00000000
+[010h 0016   4]                  Global Lock : 00000000
+[014h 0020   4]        Flags (decoded below) : 00000000
+                      S4BIOS Support Present : 0
+                  64-bit Wake Supported (V2) : 0
+[018h 0024   8]    64 Firmware Waking Vector : 0000000000000000
+[020h 0032   1]                      Version : 00
+[021h 0033   3]                     Reserved : 000000
+[024h 0036   4]    OspmFlags (decoded below) : 00000000
+               64-bit Wake Env Required (V2) : 0
+
+Raw Table Data: Length 64 (0x40)
+
+    0000: 46 41 43 53 40 00 00 00 00 00 00 00 00 00 00 00  // FACS@...........
+    0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
diff --git a/tests/data/acpi/pc/FACS.memhp b/tests/data/acpi/pc/FACS.memhp
new file mode 100644
index 0000000000000000000000000000000000000000..fc67ecc40782bd7fe8921e430d7de67f0bfaad93
GIT binary patch
literal 64
PcmZ>BbPjf4ARhn#RKNjV

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/pc/FACS.memhp.dsl b/tests/data/acpi/pc/FACS.memhp.dsl
new file mode 100644
index 0000000000..da2e230a62
--- /dev/null
+++ b/tests/data/acpi/pc/FACS.memhp.dsl
@@ -0,0 +1,32 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/pc/FACS.memhp, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [FACS]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "FACS"
+[004h 0004   4]                       Length : 00000040
+[008h 0008   4]           Hardware Signature : 00000000
+[00Ch 0012   4]    32 Firmware Waking Vector : 00000000
+[010h 0016   4]                  Global Lock : 00000000
+[014h 0020   4]        Flags (decoded below) : 00000000
+                      S4BIOS Support Present : 0
+                  64-bit Wake Supported (V2) : 0
+[018h 0024   8]    64 Firmware Waking Vector : 0000000000000000
+[020h 0032   1]                      Version : 00
+[021h 0033   3]                     Reserved : 000000
+[024h 0036   4]    OspmFlags (decoded below) : 00000000
+               64-bit Wake Env Required (V2) : 0
+
+Raw Table Data: Length 64 (0x40)
+
+    0000: 46 41 43 53 40 00 00 00 00 00 00 00 00 00 00 00  // FACS@...........
+    0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
diff --git a/tests/data/acpi/pc/FACS.numamem b/tests/data/acpi/pc/FACS.numamem
new file mode 100644
index 0000000000000000000000000000000000000000..fc67ecc40782bd7fe8921e430d7de67f0bfaad93
GIT binary patch
literal 64
PcmZ>BbPjf4ARhn#RKNjV

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/pc/FACS.numamem.dsl b/tests/data/acpi/pc/FACS.numamem.dsl
new file mode 100644
index 0000000000..c856f8b230
--- /dev/null
+++ b/tests/data/acpi/pc/FACS.numamem.dsl
@@ -0,0 +1,32 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/pc/FACS.numamem, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [FACS]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "FACS"
+[004h 0004   4]                       Length : 00000040
+[008h 0008   4]           Hardware Signature : 00000000
+[00Ch 0012   4]    32 Firmware Waking Vector : 00000000
+[010h 0016   4]                  Global Lock : 00000000
+[014h 0020   4]        Flags (decoded below) : 00000000
+                      S4BIOS Support Present : 0
+                  64-bit Wake Supported (V2) : 0
+[018h 0024   8]    64 Firmware Waking Vector : 0000000000000000
+[020h 0032   1]                      Version : 00
+[021h 0033   3]                     Reserved : 000000
+[024h 0036   4]    OspmFlags (decoded below) : 00000000
+               64-bit Wake Env Required (V2) : 0
+
+Raw Table Data: Length 64 (0x40)
+
+    0000: 46 41 43 53 40 00 00 00 00 00 00 00 00 00 00 00  // FACS@...........
+    0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
diff --git a/tests/data/acpi/pc/FACS.roothp b/tests/data/acpi/pc/FACS.roothp
new file mode 100644
index 0000000000000000000000000000000000000000..fc67ecc40782bd7fe8921e430d7de67f0bfaad93
GIT binary patch
literal 64
PcmZ>BbPjf4ARhn#RKNjV

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/pc/HMAT.acpihmat.dsl b/tests/data/acpi/pc/HMAT.acpihmat.dsl
new file mode 100644
index 0000000000..b55564d383
--- /dev/null
+++ b/tests/data/acpi/pc/HMAT.acpihmat.dsl
@@ -0,0 +1,132 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/pc/HMAT.acpihmat, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [HMAT]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "HMAT"    [Heterogeneous Memory Attributes Table]
+[004h 0004   4]                 Table Length : 00000118
+[008h 0008   1]                     Revision : 02
+[009h 0009   1]                     Checksum : 98
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCHMAT"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]                     Reserved : 00000000
+
+[028h 0040   2]               Structure Type : 0000 [Memory Proximity Domain Attributes]
+[02Ah 0042   2]                     Reserved : 0000
+[02Ch 0044   4]                       Length : 00000028
+[030h 0048   2]        Flags (decoded below) : 0001
+            Processor Proximity Domain Valid : 1
+[032h 0050   2]                    Reserved1 : 0000
+[034h 0052   4]   Processor Proximity Domain : 00000000
+[038h 0056   4]      Memory Proximity Domain : 00000000
+[03Ch 0060   4]                    Reserved2 : 00000000
+[040h 0064   8]                    Reserved3 : 0000000000000000
+[048h 0072   8]                    Reserved4 : 0000000000000000
+
+[050h 0080   2]               Structure Type : 0000 [Memory Proximity Domain Attributes]
+[052h 0082   2]                     Reserved : 0000
+[054h 0084   4]                       Length : 00000028
+[058h 0088   2]        Flags (decoded below) : 0001
+            Processor Proximity Domain Valid : 1
+[05Ah 0090   2]                    Reserved1 : 0000
+[05Ch 0092   4]   Processor Proximity Domain : 00000000
+[060h 0096   4]      Memory Proximity Domain : 00000001
+[064h 0100   4]                    Reserved2 : 00000000
+[068h 0104   8]                    Reserved3 : 0000000000000000
+[070h 0112   8]                    Reserved4 : 0000000000000000
+
+[078h 0120   2]               Structure Type : 0001 [System Locality Latency and Bandwidth Information]
+[07Ah 0122   2]                     Reserved : 0000
+[07Ch 0124   4]                       Length : 00000030
+[080h 0128   1]        Flags (decoded below) : 00
+                            Memory Hierarchy : 0
+[081h 0129   1]                    Data Type : 00
+[082h 0130   2]                    Reserved1 : 0000
+[084h 0132   4] Initiator Proximity Domains # : 00000001
+[088h 0136   4]   Target Proximity Domains # : 00000002
+[08Ch 0140   4]                    Reserved2 : 00000000
+[090h 0144   8]              Entry Base Unit : 00000000000003E8
+[098h 0152   4] Initiator Proximity Domain List : 00000000
+[09Ch 0156   4] Target Proximity Domain List : 00000000
+[0A0h 0160   4] Target Proximity Domain List : 00000001
+[0A4h 0164   2]                        Entry : 0001
+[0A6h 0166   2]                        Entry : FFFE
+
+[0A8h 0168   2]               Structure Type : 0001 [System Locality Latency and Bandwidth Information]
+[0AAh 0170   2]                     Reserved : 0000
+[0ACh 0172   4]                       Length : 00000030
+[0B0h 0176   1]        Flags (decoded below) : 00
+                            Memory Hierarchy : 0
+[0B1h 0177   1]                    Data Type : 03
+[0B2h 0178   2]                    Reserved1 : 0000
+[0B4h 0180   4] Initiator Proximity Domains # : 00000001
+[0B8h 0184   4]   Target Proximity Domains # : 00000002
+[0BCh 0188   4]                    Reserved2 : 00000000
+[0C0h 0192   8]              Entry Base Unit : 0000000000000001
+[0C8h 0200   4] Initiator Proximity Domain List : 00000000
+[0CCh 0204   4] Target Proximity Domain List : 00000000
+[0D0h 0208   4] Target Proximity Domain List : 00000001
+[0D4h 0212   2]                        Entry : FFFE
+[0D6h 0214   2]                        Entry : 7FFF
+
+[0D8h 0216   2]               Structure Type : 0002 [Memory Side Cache Information]
+[0DAh 0218   2]                     Reserved : 0000
+[0DCh 0220   4]                       Length : 00000020
+[0E0h 0224   4]      Memory Proximity Domain : 00000000
+[0E4h 0228   4]                    Reserved1 : 00000000
+[0E8h 0232   8]       Memory Side Cache Size : 0000000000002800
+[0F0h 0240   4] Cache Attributes (decoded below) : 00081111
+                          Total Cache Levels : 1
+                                 Cache Level : 1
+                         Cache Associativity : 1
+                                Write Policy : 1
+                             Cache Line Size : 0008
+[0F4h 0244   2]                    Reserved2 : 0000
+[0F6h 0246   2]              SMBIOS Handle # : 0000
+
+[0F8h 0248   2]               Structure Type : 0002 [Memory Side Cache Information]
+[0FAh 0250   2]                     Reserved : 0000
+[0FCh 0252   4]                       Length : 00000020
+[100h 0256   4]      Memory Proximity Domain : 00000001
+[104h 0260   4]                    Reserved1 : 00000000
+[108h 0264   8]       Memory Side Cache Size : 0000000000002800
+[110h 0272   4] Cache Attributes (decoded below) : 00081111
+                          Total Cache Levels : 1
+                                 Cache Level : 1
+                         Cache Associativity : 1
+                                Write Policy : 1
+                             Cache Line Size : 0008
+[114h 0276   2]                    Reserved2 : 0000
+[116h 0278   2]              SMBIOS Handle # : 0000
+
+Raw Table Data: Length 280 (0x118)
+
+    0000: 48 4D 41 54 18 01 00 00 02 98 42 4F 43 48 53 20  // HMAT......BOCHS 
+    0010: 42 58 50 43 48 4D 41 54 01 00 00 00 42 58 50 43  // BXPCHMAT....BXPC
+    0020: 01 00 00 00 00 00 00 00 00 00 00 00 28 00 00 00  // ............(...
+    0030: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0040: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0050: 00 00 00 00 28 00 00 00 01 00 00 00 00 00 00 00  // ....(...........
+    0060: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0070: 00 00 00 00 00 00 00 00 01 00 00 00 30 00 00 00  // ............0...
+    0080: 00 00 00 00 01 00 00 00 02 00 00 00 00 00 00 00  // ................
+    0090: E8 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00A0: 01 00 00 00 01 00 FE FF 01 00 00 00 30 00 00 00  // ............0...
+    00B0: 00 03 00 00 01 00 00 00 02 00 00 00 00 00 00 00  // ................
+    00C0: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00D0: 01 00 00 00 FE FF FF 7F 02 00 00 00 20 00 00 00  // ............ ...
+    00E0: 00 00 00 00 00 00 00 00 00 28 00 00 00 00 00 00  // .........(......
+    00F0: 11 11 08 00 00 00 00 00 02 00 00 00 20 00 00 00  // ............ ...
+    0100: 01 00 00 00 00 00 00 00 00 28 00 00 00 00 00 00  // .........(......
+    0110: 11 11 08 00 00 00 00 00                          // ........
diff --git a/tests/data/acpi/pc/HMAT.dsl b/tests/data/acpi/pc/HMAT.dsl
new file mode 100644
index 0000000000..8031f62433
--- /dev/null
+++ b/tests/data/acpi/pc/HMAT.dsl
@@ -0,0 +1,132 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/pc/HMAT.acpihmat, Mon Sep 28 17:24:38 2020
+ *
+ * ACPI Data Table [HMAT]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "HMAT"    [Heterogeneous Memory Attributes Table]
+[004h 0004   4]                 Table Length : 00000118
+[008h 0008   1]                     Revision : 02
+[009h 0009   1]                     Checksum : 98
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCHMAT"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]                     Reserved : 00000000
+
+[028h 0040   2]               Structure Type : 0000 [Memory Proximity Domain Attributes]
+[02Ah 0042   2]                     Reserved : 0000
+[02Ch 0044   4]                       Length : 00000028
+[030h 0048   2]        Flags (decoded below) : 0001
+            Processor Proximity Domain Valid : 1
+[032h 0050   2]                    Reserved1 : 0000
+[034h 0052   4]   Processor Proximity Domain : 00000000
+[038h 0056   4]      Memory Proximity Domain : 00000000
+[03Ch 0060   4]                    Reserved2 : 00000000
+[040h 0064   8]                    Reserved3 : 0000000000000000
+[048h 0072   8]                    Reserved4 : 0000000000000000
+
+[050h 0080   2]               Structure Type : 0000 [Memory Proximity Domain Attributes]
+[052h 0082   2]                     Reserved : 0000
+[054h 0084   4]                       Length : 00000028
+[058h 0088   2]        Flags (decoded below) : 0001
+            Processor Proximity Domain Valid : 1
+[05Ah 0090   2]                    Reserved1 : 0000
+[05Ch 0092   4]   Processor Proximity Domain : 00000000
+[060h 0096   4]      Memory Proximity Domain : 00000001
+[064h 0100   4]                    Reserved2 : 00000000
+[068h 0104   8]                    Reserved3 : 0000000000000000
+[070h 0112   8]                    Reserved4 : 0000000000000000
+
+[078h 0120   2]               Structure Type : 0001 [System Locality Latency and Bandwidth Information]
+[07Ah 0122   2]                     Reserved : 0000
+[07Ch 0124   4]                       Length : 00000030
+[080h 0128   1]        Flags (decoded below) : 00
+                            Memory Hierarchy : 0
+[081h 0129   1]                    Data Type : 00
+[082h 0130   2]                    Reserved1 : 0000
+[084h 0132   4] Initiator Proximity Domains # : 00000001
+[088h 0136   4]   Target Proximity Domains # : 00000002
+[08Ch 0140   4]                    Reserved2 : 00000000
+[090h 0144   8]              Entry Base Unit : 00000000000003E8
+[098h 0152   4] Initiator Proximity Domain List : 00000000
+[09Ch 0156   4] Target Proximity Domain List : 00000000
+[0A0h 0160   4] Target Proximity Domain List : 00000001
+[0A4h 0164   2]                        Entry : 0001
+[0A6h 0166   2]                        Entry : FFFE
+
+[0A8h 0168   2]               Structure Type : 0001 [System Locality Latency and Bandwidth Information]
+[0AAh 0170   2]                     Reserved : 0000
+[0ACh 0172   4]                       Length : 00000030
+[0B0h 0176   1]        Flags (decoded below) : 00
+                            Memory Hierarchy : 0
+[0B1h 0177   1]                    Data Type : 03
+[0B2h 0178   2]                    Reserved1 : 0000
+[0B4h 0180   4] Initiator Proximity Domains # : 00000001
+[0B8h 0184   4]   Target Proximity Domains # : 00000002
+[0BCh 0188   4]                    Reserved2 : 00000000
+[0C0h 0192   8]              Entry Base Unit : 0000000000000001
+[0C8h 0200   4] Initiator Proximity Domain List : 00000000
+[0CCh 0204   4] Target Proximity Domain List : 00000000
+[0D0h 0208   4] Target Proximity Domain List : 00000001
+[0D4h 0212   2]                        Entry : FFFE
+[0D6h 0214   2]                        Entry : 7FFF
+
+[0D8h 0216   2]               Structure Type : 0002 [Memory Side Cache Information]
+[0DAh 0218   2]                     Reserved : 0000
+[0DCh 0220   4]                       Length : 00000020
+[0E0h 0224   4]      Memory Proximity Domain : 00000000
+[0E4h 0228   4]                    Reserved1 : 00000000
+[0E8h 0232   8]       Memory Side Cache Size : 0000000000002800
+[0F0h 0240   4] Cache Attributes (decoded below) : 00081111
+                          Total Cache Levels : 1
+                                 Cache Level : 1
+                         Cache Associativity : 1
+                                Write Policy : 1
+                             Cache Line Size : 0008
+[0F4h 0244   2]                    Reserved2 : 0000
+[0F6h 0246   2]              SMBIOS Handle # : 0000
+
+[0F8h 0248   2]               Structure Type : 0002 [Memory Side Cache Information]
+[0FAh 0250   2]                     Reserved : 0000
+[0FCh 0252   4]                       Length : 00000020
+[100h 0256   4]      Memory Proximity Domain : 00000001
+[104h 0260   4]                    Reserved1 : 00000000
+[108h 0264   8]       Memory Side Cache Size : 0000000000002800
+[110h 0272   4] Cache Attributes (decoded below) : 00081111
+                          Total Cache Levels : 1
+                                 Cache Level : 1
+                         Cache Associativity : 1
+                                Write Policy : 1
+                             Cache Line Size : 0008
+[114h 0276   2]                    Reserved2 : 0000
+[116h 0278   2]              SMBIOS Handle # : 0000
+
+Raw Table Data: Length 280 (0x118)
+
+    0000: 48 4D 41 54 18 01 00 00 02 98 42 4F 43 48 53 20  // HMAT......BOCHS 
+    0010: 42 58 50 43 48 4D 41 54 01 00 00 00 42 58 50 43  // BXPCHMAT....BXPC
+    0020: 01 00 00 00 00 00 00 00 00 00 00 00 28 00 00 00  // ............(...
+    0030: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0040: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0050: 00 00 00 00 28 00 00 00 01 00 00 00 00 00 00 00  // ....(...........
+    0060: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0070: 00 00 00 00 00 00 00 00 01 00 00 00 30 00 00 00  // ............0...
+    0080: 00 00 00 00 01 00 00 00 02 00 00 00 00 00 00 00  // ................
+    0090: E8 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00A0: 01 00 00 00 01 00 FE FF 01 00 00 00 30 00 00 00  // ............0...
+    00B0: 00 03 00 00 01 00 00 00 02 00 00 00 00 00 00 00  // ................
+    00C0: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00D0: 01 00 00 00 FE FF FF 7F 02 00 00 00 20 00 00 00  // ............ ...
+    00E0: 00 00 00 00 00 00 00 00 00 28 00 00 00 00 00 00  // .........(......
+    00F0: 11 11 08 00 00 00 00 00 02 00 00 00 20 00 00 00  // ............ ...
+    0100: 01 00 00 00 00 00 00 00 00 28 00 00 00 00 00 00  // .........(......
+    0110: 11 11 08 00 00 00 00 00                          // ........
diff --git a/tests/data/acpi/pc/HPET.acpihmat b/tests/data/acpi/pc/HPET.acpihmat
new file mode 100644
index 0000000000000000000000000000000000000000..df689b8f99c1c43cfd7d63bdede3bcdfd23b7de1
GIT binary patch
literal 56
xcmeYWa1F6wU|?WmcJg=j2v%^42ypfQiZKGkKx`1rxTviGNCClxe-N610RT2D3IPBB

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/pc/HPET.acpihmat.dsl b/tests/data/acpi/pc/HPET.acpihmat.dsl
new file mode 100644
index 0000000000..9029afb2a2
--- /dev/null
+++ b/tests/data/acpi/pc/HPET.acpihmat.dsl
@@ -0,0 +1,43 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/pc/HPET.acpihmat, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [HPET]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "HPET"    [High Precision Event Timer table]
+[004h 0004   4]                 Table Length : 00000038
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 03
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCHPET"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]            Hardware Block ID : 8086A201
+
+[028h 0040  12]         Timer Block Register : [Generic Address Structure]
+[028h 0040   1]                     Space ID : 00 [SystemMemory]
+[029h 0041   1]                    Bit Width : 00
+[02Ah 0042   1]                   Bit Offset : 00
+[02Bh 0043   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[02Ch 0044   8]                      Address : 00000000FED00000
+
+[034h 0052   1]              Sequence Number : 00
+[035h 0053   2]          Minimum Clock Ticks : 0000
+[037h 0055   1]        Flags (decoded below) : 00
+                             4K Page Protect : 0
+                            64K Page Protect : 0
+
+Raw Table Data: Length 56 (0x38)
+
+    0000: 48 50 45 54 38 00 00 00 01 03 42 4F 43 48 53 20  // HPET8.....BOCHS 
+    0010: 42 58 50 43 48 50 45 54 01 00 00 00 42 58 50 43  // BXPCHPET....BXPC
+    0020: 01 00 00 00 01 A2 86 80 00 00 00 00 00 00 D0 FE  // ................
+    0030: 00 00 00 00 00 00 00 00                          // ........
diff --git a/tests/data/acpi/pc/HPET.bridge b/tests/data/acpi/pc/HPET.bridge
new file mode 100644
index 0000000000000000000000000000000000000000..df689b8f99c1c43cfd7d63bdede3bcdfd23b7de1
GIT binary patch
literal 56
xcmeYWa1F6wU|?WmcJg=j2v%^42ypfQiZKGkKx`1rxTviGNCClxe-N610RT2D3IPBB

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/pc/HPET.bridge.dsl b/tests/data/acpi/pc/HPET.bridge.dsl
new file mode 100644
index 0000000000..936616faa8
--- /dev/null
+++ b/tests/data/acpi/pc/HPET.bridge.dsl
@@ -0,0 +1,43 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/pc/HPET.bridge, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [HPET]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "HPET"    [High Precision Event Timer table]
+[004h 0004   4]                 Table Length : 00000038
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 03
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCHPET"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]            Hardware Block ID : 8086A201
+
+[028h 0040  12]         Timer Block Register : [Generic Address Structure]
+[028h 0040   1]                     Space ID : 00 [SystemMemory]
+[029h 0041   1]                    Bit Width : 00
+[02Ah 0042   1]                   Bit Offset : 00
+[02Bh 0043   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[02Ch 0044   8]                      Address : 00000000FED00000
+
+[034h 0052   1]              Sequence Number : 00
+[035h 0053   2]          Minimum Clock Ticks : 0000
+[037h 0055   1]        Flags (decoded below) : 00
+                             4K Page Protect : 0
+                            64K Page Protect : 0
+
+Raw Table Data: Length 56 (0x38)
+
+    0000: 48 50 45 54 38 00 00 00 01 03 42 4F 43 48 53 20  // HPET8.....BOCHS 
+    0010: 42 58 50 43 48 50 45 54 01 00 00 00 42 58 50 43  // BXPCHPET....BXPC
+    0020: 01 00 00 00 01 A2 86 80 00 00 00 00 00 00 D0 FE  // ................
+    0030: 00 00 00 00 00 00 00 00                          // ........
diff --git a/tests/data/acpi/pc/HPET.cphp b/tests/data/acpi/pc/HPET.cphp
new file mode 100644
index 0000000000000000000000000000000000000000..df689b8f99c1c43cfd7d63bdede3bcdfd23b7de1
GIT binary patch
literal 56
xcmeYWa1F6wU|?WmcJg=j2v%^42ypfQiZKGkKx`1rxTviGNCClxe-N610RT2D3IPBB

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/pc/HPET.cphp.dsl b/tests/data/acpi/pc/HPET.cphp.dsl
new file mode 100644
index 0000000000..e095a43ee7
--- /dev/null
+++ b/tests/data/acpi/pc/HPET.cphp.dsl
@@ -0,0 +1,43 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/pc/HPET.cphp, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [HPET]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "HPET"    [High Precision Event Timer table]
+[004h 0004   4]                 Table Length : 00000038
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 03
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCHPET"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]            Hardware Block ID : 8086A201
+
+[028h 0040  12]         Timer Block Register : [Generic Address Structure]
+[028h 0040   1]                     Space ID : 00 [SystemMemory]
+[029h 0041   1]                    Bit Width : 00
+[02Ah 0042   1]                   Bit Offset : 00
+[02Bh 0043   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[02Ch 0044   8]                      Address : 00000000FED00000
+
+[034h 0052   1]              Sequence Number : 00
+[035h 0053   2]          Minimum Clock Ticks : 0000
+[037h 0055   1]        Flags (decoded below) : 00
+                             4K Page Protect : 0
+                            64K Page Protect : 0
+
+Raw Table Data: Length 56 (0x38)
+
+    0000: 48 50 45 54 38 00 00 00 01 03 42 4F 43 48 53 20  // HPET8.....BOCHS 
+    0010: 42 58 50 43 48 50 45 54 01 00 00 00 42 58 50 43  // BXPCHPET....BXPC
+    0020: 01 00 00 00 01 A2 86 80 00 00 00 00 00 00 D0 FE  // ................
+    0030: 00 00 00 00 00 00 00 00                          // ........
diff --git a/tests/data/acpi/pc/HPET.dimmpxm b/tests/data/acpi/pc/HPET.dimmpxm
new file mode 100644
index 0000000000000000000000000000000000000000..df689b8f99c1c43cfd7d63bdede3bcdfd23b7de1
GIT binary patch
literal 56
xcmeYWa1F6wU|?WmcJg=j2v%^42ypfQiZKGkKx`1rxTviGNCClxe-N610RT2D3IPBB

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/pc/HPET.dimmpxm.dsl b/tests/data/acpi/pc/HPET.dimmpxm.dsl
new file mode 100644
index 0000000000..84ce218492
--- /dev/null
+++ b/tests/data/acpi/pc/HPET.dimmpxm.dsl
@@ -0,0 +1,43 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/pc/HPET.dimmpxm, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [HPET]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "HPET"    [High Precision Event Timer table]
+[004h 0004   4]                 Table Length : 00000038
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 03
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCHPET"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]            Hardware Block ID : 8086A201
+
+[028h 0040  12]         Timer Block Register : [Generic Address Structure]
+[028h 0040   1]                     Space ID : 00 [SystemMemory]
+[029h 0041   1]                    Bit Width : 00
+[02Ah 0042   1]                   Bit Offset : 00
+[02Bh 0043   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[02Ch 0044   8]                      Address : 00000000FED00000
+
+[034h 0052   1]              Sequence Number : 00
+[035h 0053   2]          Minimum Clock Ticks : 0000
+[037h 0055   1]        Flags (decoded below) : 00
+                             4K Page Protect : 0
+                            64K Page Protect : 0
+
+Raw Table Data: Length 56 (0x38)
+
+    0000: 48 50 45 54 38 00 00 00 01 03 42 4F 43 48 53 20  // HPET8.....BOCHS 
+    0010: 42 58 50 43 48 50 45 54 01 00 00 00 42 58 50 43  // BXPCHPET....BXPC
+    0020: 01 00 00 00 01 A2 86 80 00 00 00 00 00 00 D0 FE  // ................
+    0030: 00 00 00 00 00 00 00 00                          // ........
diff --git a/tests/data/acpi/pc/HPET.dsl b/tests/data/acpi/pc/HPET.dsl
new file mode 100644
index 0000000000..b392de5c95
--- /dev/null
+++ b/tests/data/acpi/pc/HPET.dsl
@@ -0,0 +1,43 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/pc/HPET.roothp, Mon Sep 28 17:24:38 2020
+ *
+ * ACPI Data Table [HPET]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "HPET"    [High Precision Event Timer table]
+[004h 0004   4]                 Table Length : 00000038
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 03
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCHPET"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]            Hardware Block ID : 8086A201
+
+[028h 0040  12]         Timer Block Register : [Generic Address Structure]
+[028h 0040   1]                     Space ID : 00 [SystemMemory]
+[029h 0041   1]                    Bit Width : 00
+[02Ah 0042   1]                   Bit Offset : 00
+[02Bh 0043   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[02Ch 0044   8]                      Address : 00000000FED00000
+
+[034h 0052   1]              Sequence Number : 00
+[035h 0053   2]          Minimum Clock Ticks : 0000
+[037h 0055   1]        Flags (decoded below) : 00
+                             4K Page Protect : 0
+                            64K Page Protect : 0
+
+Raw Table Data: Length 56 (0x38)
+
+    0000: 48 50 45 54 38 00 00 00 01 03 42 4F 43 48 53 20  // HPET8.....BOCHS 
+    0010: 42 58 50 43 48 50 45 54 01 00 00 00 42 58 50 43  // BXPCHPET....BXPC
+    0020: 01 00 00 00 01 A2 86 80 00 00 00 00 00 00 D0 FE  // ................
+    0030: 00 00 00 00 00 00 00 00                          // ........
diff --git a/tests/data/acpi/pc/HPET.hpbridge b/tests/data/acpi/pc/HPET.hpbridge
new file mode 100644
index 0000000000000000000000000000000000000000..df689b8f99c1c43cfd7d63bdede3bcdfd23b7de1
GIT binary patch
literal 56
xcmeYWa1F6wU|?WmcJg=j2v%^42ypfQiZKGkKx`1rxTviGNCClxe-N610RT2D3IPBB

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/pc/HPET.ipmikcs b/tests/data/acpi/pc/HPET.ipmikcs
new file mode 100644
index 0000000000000000000000000000000000000000..df689b8f99c1c43cfd7d63bdede3bcdfd23b7de1
GIT binary patch
literal 56
xcmeYWa1F6wU|?WmcJg=j2v%^42ypfQiZKGkKx`1rxTviGNCClxe-N610RT2D3IPBB

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/pc/HPET.ipmikcs.dsl b/tests/data/acpi/pc/HPET.ipmikcs.dsl
new file mode 100644
index 0000000000..34d10927dc
--- /dev/null
+++ b/tests/data/acpi/pc/HPET.ipmikcs.dsl
@@ -0,0 +1,43 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/pc/HPET.ipmikcs, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [HPET]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "HPET"    [High Precision Event Timer table]
+[004h 0004   4]                 Table Length : 00000038
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 03
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCHPET"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]            Hardware Block ID : 8086A201
+
+[028h 0040  12]         Timer Block Register : [Generic Address Structure]
+[028h 0040   1]                     Space ID : 00 [SystemMemory]
+[029h 0041   1]                    Bit Width : 00
+[02Ah 0042   1]                   Bit Offset : 00
+[02Bh 0043   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[02Ch 0044   8]                      Address : 00000000FED00000
+
+[034h 0052   1]              Sequence Number : 00
+[035h 0053   2]          Minimum Clock Ticks : 0000
+[037h 0055   1]        Flags (decoded below) : 00
+                             4K Page Protect : 0
+                            64K Page Protect : 0
+
+Raw Table Data: Length 56 (0x38)
+
+    0000: 48 50 45 54 38 00 00 00 01 03 42 4F 43 48 53 20  // HPET8.....BOCHS 
+    0010: 42 58 50 43 48 50 45 54 01 00 00 00 42 58 50 43  // BXPCHPET....BXPC
+    0020: 01 00 00 00 01 A2 86 80 00 00 00 00 00 00 D0 FE  // ................
+    0030: 00 00 00 00 00 00 00 00                          // ........
diff --git a/tests/data/acpi/pc/HPET.memhp b/tests/data/acpi/pc/HPET.memhp
new file mode 100644
index 0000000000000000000000000000000000000000..df689b8f99c1c43cfd7d63bdede3bcdfd23b7de1
GIT binary patch
literal 56
xcmeYWa1F6wU|?WmcJg=j2v%^42ypfQiZKGkKx`1rxTviGNCClxe-N610RT2D3IPBB

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/pc/HPET.memhp.dsl b/tests/data/acpi/pc/HPET.memhp.dsl
new file mode 100644
index 0000000000..f9f62dd9c8
--- /dev/null
+++ b/tests/data/acpi/pc/HPET.memhp.dsl
@@ -0,0 +1,43 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/pc/HPET.memhp, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [HPET]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "HPET"    [High Precision Event Timer table]
+[004h 0004   4]                 Table Length : 00000038
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 03
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCHPET"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]            Hardware Block ID : 8086A201
+
+[028h 0040  12]         Timer Block Register : [Generic Address Structure]
+[028h 0040   1]                     Space ID : 00 [SystemMemory]
+[029h 0041   1]                    Bit Width : 00
+[02Ah 0042   1]                   Bit Offset : 00
+[02Bh 0043   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[02Ch 0044   8]                      Address : 00000000FED00000
+
+[034h 0052   1]              Sequence Number : 00
+[035h 0053   2]          Minimum Clock Ticks : 0000
+[037h 0055   1]        Flags (decoded below) : 00
+                             4K Page Protect : 0
+                            64K Page Protect : 0
+
+Raw Table Data: Length 56 (0x38)
+
+    0000: 48 50 45 54 38 00 00 00 01 03 42 4F 43 48 53 20  // HPET8.....BOCHS 
+    0010: 42 58 50 43 48 50 45 54 01 00 00 00 42 58 50 43  // BXPCHPET....BXPC
+    0020: 01 00 00 00 01 A2 86 80 00 00 00 00 00 00 D0 FE  // ................
+    0030: 00 00 00 00 00 00 00 00                          // ........
diff --git a/tests/data/acpi/pc/HPET.numamem b/tests/data/acpi/pc/HPET.numamem
new file mode 100644
index 0000000000000000000000000000000000000000..df689b8f99c1c43cfd7d63bdede3bcdfd23b7de1
GIT binary patch
literal 56
xcmeYWa1F6wU|?WmcJg=j2v%^42ypfQiZKGkKx`1rxTviGNCClxe-N610RT2D3IPBB

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/pc/HPET.numamem.dsl b/tests/data/acpi/pc/HPET.numamem.dsl
new file mode 100644
index 0000000000..1f51efad19
--- /dev/null
+++ b/tests/data/acpi/pc/HPET.numamem.dsl
@@ -0,0 +1,43 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/pc/HPET.numamem, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [HPET]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "HPET"    [High Precision Event Timer table]
+[004h 0004   4]                 Table Length : 00000038
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 03
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCHPET"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]            Hardware Block ID : 8086A201
+
+[028h 0040  12]         Timer Block Register : [Generic Address Structure]
+[028h 0040   1]                     Space ID : 00 [SystemMemory]
+[029h 0041   1]                    Bit Width : 00
+[02Ah 0042   1]                   Bit Offset : 00
+[02Bh 0043   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[02Ch 0044   8]                      Address : 00000000FED00000
+
+[034h 0052   1]              Sequence Number : 00
+[035h 0053   2]          Minimum Clock Ticks : 0000
+[037h 0055   1]        Flags (decoded below) : 00
+                             4K Page Protect : 0
+                            64K Page Protect : 0
+
+Raw Table Data: Length 56 (0x38)
+
+    0000: 48 50 45 54 38 00 00 00 01 03 42 4F 43 48 53 20  // HPET8.....BOCHS 
+    0010: 42 58 50 43 48 50 45 54 01 00 00 00 42 58 50 43  // BXPCHPET....BXPC
+    0020: 01 00 00 00 01 A2 86 80 00 00 00 00 00 00 D0 FE  // ................
+    0030: 00 00 00 00 00 00 00 00                          // ........
diff --git a/tests/data/acpi/pc/HPET.roothp b/tests/data/acpi/pc/HPET.roothp
new file mode 100644
index 0000000000000000000000000000000000000000..df689b8f99c1c43cfd7d63bdede3bcdfd23b7de1
GIT binary patch
literal 56
xcmeYWa1F6wU|?WmcJg=j2v%^42ypfQiZKGkKx`1rxTviGNCClxe-N610RT2D3IPBB

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/pc/NFIT.dimmpxm.dsl b/tests/data/acpi/pc/NFIT.dimmpxm.dsl
new file mode 100644
index 0000000000..33212b0a17
--- /dev/null
+++ b/tests/data/acpi/pc/NFIT.dimmpxm.dsl
@@ -0,0 +1,115 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/pc/NFIT.dimmpxm, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [NFIT]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "NFIT"    [NVDIMM Firmware Interface Table]
+[004h 0004   4]                 Table Length : 000000F0
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 24
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCNFIT"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]                     Reserved : 00000000
+
+[028h 0040   2]                Subtable Type : 0000 [System Physical Address Range]
+[02Ah 0042   2]                       Length : 0038
+
+[02Ch 0044   2]                  Range Index : 0004
+[02Eh 0046   2]        Flags (decoded below) : 0003
+                   Add/Online Operation Only : 1
+                      Proximity Domain Valid : 1
+[030h 0048   4]                     Reserved : 00000000
+[034h 0052   4]             Proximity Domain : 00000002
+[038h 0056  16]             Region Type GUID : 66F0D379-B4F3-4074-AC43-0D3318B78CDB
+[048h 0072   8]           Address Range Base : 0000000108000000
+[050h 0080   8]         Address Range Length : 0000000008000000
+[058h 0088   8]         Memory Map Attribute : 0000000000008008
+
+[060h 0096   2]                Subtable Type : 0001 [Memory Range Map]
+[062h 0098   2]                       Length : 0030
+
+[064h 0100   4]                Device Handle : 00000002
+[068h 0104   2]                  Physical Id : 0000
+[06Ah 0106   2]                    Region Id : 0000
+[06Ch 0108   2]                  Range Index : 0004
+[06Eh 0110   2]         Control Region Index : 0005
+[070h 0112   8]                  Region Size : 0000000008000000
+[078h 0120   8]                Region Offset : 0000000000000000
+[080h 0128   8]          Address Region Base : 0000000000000000
+[088h 0136   2]             Interleave Index : 0000
+[08Ah 0138   2]              Interleave Ways : 0001
+[08Ch 0140   2]                        Flags : 0000
+                       Save to device failed : 0
+                  Restore from device failed : 0
+                       Platform flush failed : 0
+                            Device not armed : 0
+                      Health events observed : 0
+                       Health events enabled : 0
+                              Mapping failed : 0
+[08Eh 0142   2]                     Reserved : 0000
+
+[090h 0144   2]                Subtable Type : 0004 [NVDIMM Control Region]
+[092h 0146   2]                       Length : 0050
+
+[094h 0148   2]                 Region Index : 0005
+[096h 0150   2]                    Vendor Id : 8086
+[098h 0152   2]                    Device Id : 0001
+[09Ah 0154   2]                  Revision Id : 0001
+[09Ch 0156   2]          Subsystem Vendor Id : 0000
+[09Eh 0158   2]          Subsystem Device Id : 0000
+[0A0h 0160   2]        Subsystem Revision Id : 0000
+[0A2h 0162   1]                 Valid Fields : 00
+[0A3h 0163   1]       Manufacturing Location : 00
+[0A4h 0164   2]           Manufacturing Date : 0000
+[0A6h 0166   2]                     Reserved : 0000
+[0A8h 0168   4]                Serial Number : 00123457
+[0ACh 0172   2]                         Code : 0301
+[0AEh 0174   2]                 Window Count : 0000
+[0B0h 0176   8]                  Window Size : 0000000000000000
+[0B8h 0184   8]               Command Offset : 0000000000000000
+[0C0h 0192   8]                 Command Size : 0000000000000000
+[0C8h 0200   8]                Status Offset : 0000000000000000
+[0D0h 0208   8]                  Status Size : 0000000000000000
+[0D8h 0216   2]                        Flags : 0000
+                            Windows buffered : 0
+[0DAh 0218   6]                    Reserved1 : 000000000000
+
+[0E0h 0224   2]                Subtable Type : 0007 [Platform Capabilities]
+[0E2h 0226   2]                       Length : 0010
+
+[0E4h 0228   1]           Highest Capability : 01
+[0E5h 0229   3]                     Reserved : 000000
+[0E8h 0232   4] Capabilities (decoded below) : 00000003
+                       Cache Flush to NVDIMM : 1
+                      Memory Flush to NVDIMM : 1
+                            Memory Mirroring : 0
+[0ECh 0236   4]                     Reserved : 00000000
+
+Raw Table Data: Length 240 (0xF0)
+
+    0000: 4E 46 49 54 F0 00 00 00 01 24 42 4F 43 48 53 20  // NFIT.....$BOCHS 
+    0010: 42 58 50 43 4E 46 49 54 01 00 00 00 42 58 50 43  // BXPCNFIT....BXPC
+    0020: 01 00 00 00 00 00 00 00 00 00 38 00 04 00 03 00  // ..........8.....
+    0030: 00 00 00 00 02 00 00 00 79 D3 F0 66 F3 B4 74 40  // ........y..f..t@
+    0040: AC 43 0D 33 18 B7 8C DB 00 00 00 08 01 00 00 00  // .C.3............
+    0050: 00 00 00 08 00 00 00 00 08 80 00 00 00 00 00 00  // ................
+    0060: 01 00 30 00 02 00 00 00 00 00 00 00 04 00 05 00  // ..0.............
+    0070: 00 00 00 08 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0080: 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00  // ................
+    0090: 04 00 50 00 05 00 86 80 01 00 01 00 00 00 00 00  // ..P.............
+    00A0: 00 00 00 00 00 00 00 00 57 34 12 00 01 03 00 00  // ........W4......
+    00B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00E0: 07 00 10 00 01 00 00 00 03 00 00 00 00 00 00 00  // ................
diff --git a/tests/data/acpi/pc/NFIT.dsl b/tests/data/acpi/pc/NFIT.dsl
new file mode 100644
index 0000000000..f4a8034f87
--- /dev/null
+++ b/tests/data/acpi/pc/NFIT.dsl
@@ -0,0 +1,115 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/pc/NFIT.dimmpxm, Mon Sep 28 17:24:38 2020
+ *
+ * ACPI Data Table [NFIT]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "NFIT"    [NVDIMM Firmware Interface Table]
+[004h 0004   4]                 Table Length : 000000F0
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 24
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCNFIT"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]                     Reserved : 00000000
+
+[028h 0040   2]                Subtable Type : 0000 [System Physical Address Range]
+[02Ah 0042   2]                       Length : 0038
+
+[02Ch 0044   2]                  Range Index : 0004
+[02Eh 0046   2]        Flags (decoded below) : 0003
+                   Add/Online Operation Only : 1
+                      Proximity Domain Valid : 1
+[030h 0048   4]                     Reserved : 00000000
+[034h 0052   4]             Proximity Domain : 00000002
+[038h 0056  16]             Region Type GUID : 66F0D379-B4F3-4074-AC43-0D3318B78CDB
+[048h 0072   8]           Address Range Base : 0000000108000000
+[050h 0080   8]         Address Range Length : 0000000008000000
+[058h 0088   8]         Memory Map Attribute : 0000000000008008
+
+[060h 0096   2]                Subtable Type : 0001 [Memory Range Map]
+[062h 0098   2]                       Length : 0030
+
+[064h 0100   4]                Device Handle : 00000002
+[068h 0104   2]                  Physical Id : 0000
+[06Ah 0106   2]                    Region Id : 0000
+[06Ch 0108   2]                  Range Index : 0004
+[06Eh 0110   2]         Control Region Index : 0005
+[070h 0112   8]                  Region Size : 0000000008000000
+[078h 0120   8]                Region Offset : 0000000000000000
+[080h 0128   8]          Address Region Base : 0000000000000000
+[088h 0136   2]             Interleave Index : 0000
+[08Ah 0138   2]              Interleave Ways : 0001
+[08Ch 0140   2]                        Flags : 0000
+                       Save to device failed : 0
+                  Restore from device failed : 0
+                       Platform flush failed : 0
+                            Device not armed : 0
+                      Health events observed : 0
+                       Health events enabled : 0
+                              Mapping failed : 0
+[08Eh 0142   2]                     Reserved : 0000
+
+[090h 0144   2]                Subtable Type : 0004 [NVDIMM Control Region]
+[092h 0146   2]                       Length : 0050
+
+[094h 0148   2]                 Region Index : 0005
+[096h 0150   2]                    Vendor Id : 8086
+[098h 0152   2]                    Device Id : 0001
+[09Ah 0154   2]                  Revision Id : 0001
+[09Ch 0156   2]          Subsystem Vendor Id : 0000
+[09Eh 0158   2]          Subsystem Device Id : 0000
+[0A0h 0160   2]        Subsystem Revision Id : 0000
+[0A2h 0162   1]                 Valid Fields : 00
+[0A3h 0163   1]       Manufacturing Location : 00
+[0A4h 0164   2]           Manufacturing Date : 0000
+[0A6h 0166   2]                     Reserved : 0000
+[0A8h 0168   4]                Serial Number : 00123457
+[0ACh 0172   2]                         Code : 0301
+[0AEh 0174   2]                 Window Count : 0000
+[0B0h 0176   8]                  Window Size : 0000000000000000
+[0B8h 0184   8]               Command Offset : 0000000000000000
+[0C0h 0192   8]                 Command Size : 0000000000000000
+[0C8h 0200   8]                Status Offset : 0000000000000000
+[0D0h 0208   8]                  Status Size : 0000000000000000
+[0D8h 0216   2]                        Flags : 0000
+                            Windows buffered : 0
+[0DAh 0218   6]                    Reserved1 : 000000000000
+
+[0E0h 0224   2]                Subtable Type : 0007 [Platform Capabilities]
+[0E2h 0226   2]                       Length : 0010
+
+[0E4h 0228   1]           Highest Capability : 01
+[0E5h 0229   3]                     Reserved : 000000
+[0E8h 0232   4] Capabilities (decoded below) : 00000003
+                       Cache Flush to NVDIMM : 1
+                      Memory Flush to NVDIMM : 1
+                            Memory Mirroring : 0
+[0ECh 0236   4]                     Reserved : 00000000
+
+Raw Table Data: Length 240 (0xF0)
+
+    0000: 4E 46 49 54 F0 00 00 00 01 24 42 4F 43 48 53 20  // NFIT.....$BOCHS 
+    0010: 42 58 50 43 4E 46 49 54 01 00 00 00 42 58 50 43  // BXPCNFIT....BXPC
+    0020: 01 00 00 00 00 00 00 00 00 00 38 00 04 00 03 00  // ..........8.....
+    0030: 00 00 00 00 02 00 00 00 79 D3 F0 66 F3 B4 74 40  // ........y..f..t@
+    0040: AC 43 0D 33 18 B7 8C DB 00 00 00 08 01 00 00 00  // .C.3............
+    0050: 00 00 00 08 00 00 00 00 08 80 00 00 00 00 00 00  // ................
+    0060: 01 00 30 00 02 00 00 00 00 00 00 00 04 00 05 00  // ..0.............
+    0070: 00 00 00 08 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0080: 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00  // ................
+    0090: 04 00 50 00 05 00 86 80 01 00 01 00 00 00 00 00  // ..P.............
+    00A0: 00 00 00 00 00 00 00 00 57 34 12 00 01 03 00 00  // ........W4......
+    00B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00E0: 07 00 10 00 01 00 00 00 03 00 00 00 00 00 00 00  // ................
diff --git a/tests/data/acpi/pc/SLIT.cphp.dsl b/tests/data/acpi/pc/SLIT.cphp.dsl
new file mode 100644
index 0000000000..20289608db
--- /dev/null
+++ b/tests/data/acpi/pc/SLIT.cphp.dsl
@@ -0,0 +1,31 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/pc/SLIT.cphp, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [SLIT]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "SLIT"    [System Locality Information Table]
+[004h 0004   4]                 Table Length : 00000030
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 2C
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCSLIT"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   8]                   Localities : 0000000000000002
+[02Ch 0044   2]                 Locality   0 : 0A 15
+[02Eh 0046   2]                 Locality   1 : 15 0A
+
+Raw Table Data: Length 48 (0x30)
+
+    0000: 53 4C 49 54 30 00 00 00 01 2C 42 4F 43 48 53 20  // SLIT0....,BOCHS 
+    0010: 42 58 50 43 53 4C 49 54 01 00 00 00 42 58 50 43  // BXPCSLIT....BXPC
+    0020: 01 00 00 00 02 00 00 00 00 00 00 00 0A 15 15 0A  // ................
diff --git a/tests/data/acpi/pc/SLIT.dsl b/tests/data/acpi/pc/SLIT.dsl
new file mode 100644
index 0000000000..8b923249af
--- /dev/null
+++ b/tests/data/acpi/pc/SLIT.dsl
@@ -0,0 +1,31 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/pc/SLIT.memhp, Mon Sep 28 17:24:38 2020
+ *
+ * ACPI Data Table [SLIT]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "SLIT"    [System Locality Information Table]
+[004h 0004   4]                 Table Length : 00000030
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 2C
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCSLIT"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   8]                   Localities : 0000000000000002
+[02Ch 0044   2]                 Locality   0 : 0A 15
+[02Eh 0046   2]                 Locality   1 : 15 0A
+
+Raw Table Data: Length 48 (0x30)
+
+    0000: 53 4C 49 54 30 00 00 00 01 2C 42 4F 43 48 53 20  // SLIT0....,BOCHS 
+    0010: 42 58 50 43 53 4C 49 54 01 00 00 00 42 58 50 43  // BXPCSLIT....BXPC
+    0020: 01 00 00 00 02 00 00 00 00 00 00 00 0A 15 15 0A  // ................
diff --git a/tests/data/acpi/pc/SLIT.memhp.dsl b/tests/data/acpi/pc/SLIT.memhp.dsl
new file mode 100644
index 0000000000..b3a0170144
--- /dev/null
+++ b/tests/data/acpi/pc/SLIT.memhp.dsl
@@ -0,0 +1,31 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/pc/SLIT.memhp, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [SLIT]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "SLIT"    [System Locality Information Table]
+[004h 0004   4]                 Table Length : 00000030
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 2C
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCSLIT"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   8]                   Localities : 0000000000000002
+[02Ch 0044   2]                 Locality   0 : 0A 15
+[02Eh 0046   2]                 Locality   1 : 15 0A
+
+Raw Table Data: Length 48 (0x30)
+
+    0000: 53 4C 49 54 30 00 00 00 01 2C 42 4F 43 48 53 20  // SLIT0....,BOCHS 
+    0010: 42 58 50 43 53 4C 49 54 01 00 00 00 42 58 50 43  // BXPCSLIT....BXPC
+    0020: 01 00 00 00 02 00 00 00 00 00 00 00 0A 15 15 0A  // ................
diff --git a/tests/data/acpi/pc/SRAT.acpihmat.dsl b/tests/data/acpi/pc/SRAT.acpihmat.dsl
new file mode 100644
index 0000000000..e3c788672f
--- /dev/null
+++ b/tests/data/acpi/pc/SRAT.acpihmat.dsl
@@ -0,0 +1,137 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/pc/SRAT.acpihmat, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [SRAT]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "SRAT"    [System Resource Affinity Table]
+[004h 0004   4]                 Table Length : 00000118
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : C0
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCSRAT"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]               Table Revision : 00000001
+[028h 0040   8]                     Reserved : 0000000000000000
+
+[030h 0048   1]                Subtable Type : 00 [Processor Local APIC/SAPIC Affinity]
+[031h 0049   1]                       Length : 10
+
+[032h 0050   1]      Proximity Domain Low(8) : 00
+[033h 0051   1]                      Apic ID : 00
+[034h 0052   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+[038h 0056   1]              Local Sapic EID : 00
+[039h 0057   3]    Proximity Domain High(24) : 000000
+[03Ch 0060   4]                 Clock Domain : 00000000
+
+[040h 0064   1]                Subtable Type : 00 [Processor Local APIC/SAPIC Affinity]
+[041h 0065   1]                       Length : 10
+
+[042h 0066   1]      Proximity Domain Low(8) : 00
+[043h 0067   1]                      Apic ID : 01
+[044h 0068   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+[048h 0072   1]              Local Sapic EID : 00
+[049h 0073   3]    Proximity Domain High(24) : 000000
+[04Ch 0076   4]                 Clock Domain : 00000000
+
+[050h 0080   1]                Subtable Type : 01 [Memory Affinity]
+[051h 0081   1]                       Length : 28
+
+[052h 0082   4]             Proximity Domain : 00000000
+[056h 0086   2]                    Reserved1 : 0000
+[058h 0088   8]                 Base Address : 0000000000000000
+[060h 0096   8]               Address Length : 00000000000A0000
+[068h 0104   4]                    Reserved2 : 00000000
+[06Ch 0108   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[070h 0112   8]                    Reserved3 : 0000000000000000
+
+[078h 0120   1]                Subtable Type : 01 [Memory Affinity]
+[079h 0121   1]                       Length : 28
+
+[07Ah 0122   4]             Proximity Domain : 00000000
+[07Eh 0126   2]                    Reserved1 : 0000
+[080h 0128   8]                 Base Address : 0000000000100000
+[088h 0136   8]               Address Length : 0000000003F00000
+[090h 0144   4]                    Reserved2 : 00000000
+[094h 0148   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[098h 0152   8]                    Reserved3 : 0000000000000000
+
+[0A0h 0160   1]                Subtable Type : 01 [Memory Affinity]
+[0A1h 0161   1]                       Length : 28
+
+[0A2h 0162   4]             Proximity Domain : 00000001
+[0A6h 0166   2]                    Reserved1 : 0000
+[0A8h 0168   8]                 Base Address : 0000000004000000
+[0B0h 0176   8]               Address Length : 0000000004000000
+[0B8h 0184   4]                    Reserved2 : 00000000
+[0BCh 0188   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[0C0h 0192   8]                    Reserved3 : 0000000000000000
+
+[0C8h 0200   1]                Subtable Type : 01 [Memory Affinity]
+[0C9h 0201   1]                       Length : 28
+
+[0CAh 0202   4]             Proximity Domain : 00000000
+[0CEh 0206   2]                    Reserved1 : 0000
+[0D0h 0208   8]                 Base Address : 0000000000000000
+[0D8h 0216   8]               Address Length : 0000000000000000
+[0E0h 0224   4]                    Reserved2 : 00000000
+[0E4h 0228   4]        Flags (decoded below) : 00000000
+                                     Enabled : 0
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[0E8h 0232   8]                    Reserved3 : 0000000000000000
+
+[0F0h 0240   1]                Subtable Type : 01 [Memory Affinity]
+[0F1h 0241   1]                       Length : 28
+
+[0F2h 0242   4]             Proximity Domain : 00000001
+[0F6h 0246   2]                    Reserved1 : 0000
+[0F8h 0248   8]                 Base Address : 0000000100000000
+[100h 0256   8]               Address Length : 00000000B8000000
+[108h 0264   4]                    Reserved2 : 00000000
+[10Ch 0268   4]        Flags (decoded below) : 00000003
+                                     Enabled : 1
+                               Hot Pluggable : 1
+                                Non-Volatile : 0
+[110h 0272   8]                    Reserved3 : 0000000000000000
+
+Raw Table Data: Length 280 (0x118)
+
+    0000: 53 52 41 54 18 01 00 00 01 C0 42 4F 43 48 53 20  // SRAT......BOCHS 
+    0010: 42 58 50 43 53 52 41 54 01 00 00 00 42 58 50 43  // BXPCSRAT....BXPC
+    0020: 01 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0030: 00 10 00 00 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0040: 00 10 00 01 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0050: 01 28 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // .(..............
+    0060: 00 00 0A 00 00 00 00 00 00 00 00 00 01 00 00 00  // ................
+    0070: 00 00 00 00 00 00 00 00 01 28 00 00 00 00 00 00  // .........(......
+    0080: 00 00 10 00 00 00 00 00 00 00 F0 03 00 00 00 00  // ................
+    0090: 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00A0: 01 28 01 00 00 00 00 00 00 00 00 04 00 00 00 00  // .(..............
+    00B0: 00 00 00 04 00 00 00 00 00 00 00 00 01 00 00 00  // ................
+    00C0: 00 00 00 00 00 00 00 00 01 28 00 00 00 00 00 00  // .........(......
+    00D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00F0: 01 28 01 00 00 00 00 00 00 00 00 00 01 00 00 00  // .(..............
+    0100: 00 00 00 B8 00 00 00 00 00 00 00 00 03 00 00 00  // ................
+    0110: 00 00 00 00 00 00 00 00                          // ........
diff --git a/tests/data/acpi/pc/SRAT.cphp.dsl b/tests/data/acpi/pc/SRAT.cphp.dsl
new file mode 100644
index 0000000000..20c38ee3cc
--- /dev/null
+++ b/tests/data/acpi/pc/SRAT.cphp.dsl
@@ -0,0 +1,168 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/pc/SRAT.cphp, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [SRAT]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "SRAT"    [System Resource Affinity Table]
+[004h 0004   4]                 Table Length : 00000130
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 36
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCSRAT"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]               Table Revision : 00000001
+[028h 0040   8]                     Reserved : 0000000000000000
+
+[030h 0048   1]                Subtable Type : 00 [Processor Local APIC/SAPIC Affinity]
+[031h 0049   1]                       Length : 10
+
+[032h 0050   1]      Proximity Domain Low(8) : 00
+[033h 0051   1]                      Apic ID : 00
+[034h 0052   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+[038h 0056   1]              Local Sapic EID : 00
+[039h 0057   3]    Proximity Domain High(24) : 000000
+[03Ch 0060   4]                 Clock Domain : 00000000
+
+[040h 0064   1]                Subtable Type : 00 [Processor Local APIC/SAPIC Affinity]
+[041h 0065   1]                       Length : 10
+
+[042h 0066   1]      Proximity Domain Low(8) : 00
+[043h 0067   1]                      Apic ID : 01
+[044h 0068   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+[048h 0072   1]              Local Sapic EID : 00
+[049h 0073   3]    Proximity Domain High(24) : 000000
+[04Ch 0076   4]                 Clock Domain : 00000000
+
+[050h 0080   1]                Subtable Type : 00 [Processor Local APIC/SAPIC Affinity]
+[051h 0081   1]                       Length : 10
+
+[052h 0082   1]      Proximity Domain Low(8) : 00
+[053h 0083   1]                      Apic ID : 02
+[054h 0084   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+[058h 0088   1]              Local Sapic EID : 00
+[059h 0089   3]    Proximity Domain High(24) : 000000
+[05Ch 0092   4]                 Clock Domain : 00000000
+
+[060h 0096   1]                Subtable Type : 00 [Processor Local APIC/SAPIC Affinity]
+[061h 0097   1]                       Length : 10
+
+[062h 0098   1]      Proximity Domain Low(8) : 01
+[063h 0099   1]                      Apic ID : 04
+[064h 0100   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+[068h 0104   1]              Local Sapic EID : 00
+[069h 0105   3]    Proximity Domain High(24) : 000000
+[06Ch 0108   4]                 Clock Domain : 00000000
+
+[070h 0112   1]                Subtable Type : 00 [Processor Local APIC/SAPIC Affinity]
+[071h 0113   1]                       Length : 10
+
+[072h 0114   1]      Proximity Domain Low(8) : 01
+[073h 0115   1]                      Apic ID : 05
+[074h 0116   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+[078h 0120   1]              Local Sapic EID : 00
+[079h 0121   3]    Proximity Domain High(24) : 000000
+[07Ch 0124   4]                 Clock Domain : 00000000
+
+[080h 0128   1]                Subtable Type : 00 [Processor Local APIC/SAPIC Affinity]
+[081h 0129   1]                       Length : 10
+
+[082h 0130   1]      Proximity Domain Low(8) : 01
+[083h 0131   1]                      Apic ID : 06
+[084h 0132   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+[088h 0136   1]              Local Sapic EID : 00
+[089h 0137   3]    Proximity Domain High(24) : 000000
+[08Ch 0140   4]                 Clock Domain : 00000000
+
+[090h 0144   1]                Subtable Type : 01 [Memory Affinity]
+[091h 0145   1]                       Length : 28
+
+[092h 0146   4]             Proximity Domain : 00000000
+[096h 0150   2]                    Reserved1 : 0000
+[098h 0152   8]                 Base Address : 0000000000000000
+[0A0h 0160   8]               Address Length : 00000000000A0000
+[0A8h 0168   4]                    Reserved2 : 00000000
+[0ACh 0172   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[0B0h 0176   8]                    Reserved3 : 0000000000000000
+
+[0B8h 0184   1]                Subtable Type : 01 [Memory Affinity]
+[0B9h 0185   1]                       Length : 28
+
+[0BAh 0186   4]             Proximity Domain : 00000000
+[0BEh 0190   2]                    Reserved1 : 0000
+[0C0h 0192   8]                 Base Address : 0000000000100000
+[0C8h 0200   8]               Address Length : 0000000003F00000
+[0D0h 0208   4]                    Reserved2 : 00000000
+[0D4h 0212   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[0D8h 0216   8]                    Reserved3 : 0000000000000000
+
+[0E0h 0224   1]                Subtable Type : 01 [Memory Affinity]
+[0E1h 0225   1]                       Length : 28
+
+[0E2h 0226   4]             Proximity Domain : 00000001
+[0E6h 0230   2]                    Reserved1 : 0000
+[0E8h 0232   8]                 Base Address : 0000000004000000
+[0F0h 0240   8]               Address Length : 0000000004000000
+[0F8h 0248   4]                    Reserved2 : 00000000
+[0FCh 0252   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[100h 0256   8]                    Reserved3 : 0000000000000000
+
+[108h 0264   1]                Subtable Type : 01 [Memory Affinity]
+[109h 0265   1]                       Length : 28
+
+[10Ah 0266   4]             Proximity Domain : 00000000
+[10Eh 0270   2]                    Reserved1 : 0000
+[110h 0272   8]                 Base Address : 0000000000000000
+[118h 0280   8]               Address Length : 0000000000000000
+[120h 0288   4]                    Reserved2 : 00000000
+[124h 0292   4]        Flags (decoded below) : 00000000
+                                     Enabled : 0
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[128h 0296   8]                    Reserved3 : 0000000000000000
+
+Raw Table Data: Length 304 (0x130)
+
+    0000: 53 52 41 54 30 01 00 00 01 36 42 4F 43 48 53 20  // SRAT0....6BOCHS 
+    0010: 42 58 50 43 53 52 41 54 01 00 00 00 42 58 50 43  // BXPCSRAT....BXPC
+    0020: 01 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0030: 00 10 00 00 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0040: 00 10 00 01 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0050: 00 10 00 02 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0060: 00 10 01 04 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0070: 00 10 01 05 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0080: 00 10 01 06 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0090: 01 28 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // .(..............
+    00A0: 00 00 0A 00 00 00 00 00 00 00 00 00 01 00 00 00  // ................
+    00B0: 00 00 00 00 00 00 00 00 01 28 00 00 00 00 00 00  // .........(......
+    00C0: 00 00 10 00 00 00 00 00 00 00 F0 03 00 00 00 00  // ................
+    00D0: 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00E0: 01 28 01 00 00 00 00 00 00 00 00 04 00 00 00 00  // .(..............
+    00F0: 00 00 00 04 00 00 00 00 00 00 00 00 01 00 00 00  // ................
+    0100: 00 00 00 00 00 00 00 00 01 28 00 00 00 00 00 00  // .........(......
+    0110: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0120: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
diff --git a/tests/data/acpi/pc/SRAT.dimmpxm.dsl b/tests/data/acpi/pc/SRAT.dimmpxm.dsl
new file mode 100644
index 0000000000..888fef1b5c
--- /dev/null
+++ b/tests/data/acpi/pc/SRAT.dimmpxm.dsl
@@ -0,0 +1,194 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/pc/SRAT.dimmpxm, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [SRAT]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "SRAT"    [System Resource Affinity Table]
+[004h 0004   4]                 Table Length : 00000188
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 68
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCSRAT"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]               Table Revision : 00000001
+[028h 0040   8]                     Reserved : 0000000000000000
+
+[030h 0048   1]                Subtable Type : 00 [Processor Local APIC/SAPIC Affinity]
+[031h 0049   1]                       Length : 10
+
+[032h 0050   1]      Proximity Domain Low(8) : 00
+[033h 0051   1]                      Apic ID : 00
+[034h 0052   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+[038h 0056   1]              Local Sapic EID : 00
+[039h 0057   3]    Proximity Domain High(24) : 000000
+[03Ch 0060   4]                 Clock Domain : 00000000
+
+[040h 0064   1]                Subtable Type : 00 [Processor Local APIC/SAPIC Affinity]
+[041h 0065   1]                       Length : 10
+
+[042h 0066   1]      Proximity Domain Low(8) : 01
+[043h 0067   1]                      Apic ID : 01
+[044h 0068   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+[048h 0072   1]              Local Sapic EID : 00
+[049h 0073   3]    Proximity Domain High(24) : 000000
+[04Ch 0076   4]                 Clock Domain : 00000000
+
+[050h 0080   1]                Subtable Type : 00 [Processor Local APIC/SAPIC Affinity]
+[051h 0081   1]                       Length : 10
+
+[052h 0082   1]      Proximity Domain Low(8) : 02
+[053h 0083   1]                      Apic ID : 02
+[054h 0084   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+[058h 0088   1]              Local Sapic EID : 00
+[059h 0089   3]    Proximity Domain High(24) : 000000
+[05Ch 0092   4]                 Clock Domain : 00000000
+
+[060h 0096   1]                Subtable Type : 00 [Processor Local APIC/SAPIC Affinity]
+[061h 0097   1]                       Length : 10
+
+[062h 0098   1]      Proximity Domain Low(8) : 03
+[063h 0099   1]                      Apic ID : 03
+[064h 0100   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+[068h 0104   1]              Local Sapic EID : 00
+[069h 0105   3]    Proximity Domain High(24) : 000000
+[06Ch 0108   4]                 Clock Domain : 00000000
+
+[070h 0112   1]                Subtable Type : 01 [Memory Affinity]
+[071h 0113   1]                       Length : 28
+
+[072h 0114   4]             Proximity Domain : 00000000
+[076h 0118   2]                    Reserved1 : 0000
+[078h 0120   8]                 Base Address : 0000000000000000
+[080h 0128   8]               Address Length : 00000000000A0000
+[088h 0136   4]                    Reserved2 : 00000000
+[08Ch 0140   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[090h 0144   8]                    Reserved3 : 0000000000000000
+
+[098h 0152   1]                Subtable Type : 01 [Memory Affinity]
+[099h 0153   1]                       Length : 28
+
+[09Ah 0154   4]             Proximity Domain : 00000000
+[09Eh 0158   2]                    Reserved1 : 0000
+[0A0h 0160   8]                 Base Address : 0000000000100000
+[0A8h 0168   8]               Address Length : 0000000001F00000
+[0B0h 0176   4]                    Reserved2 : 00000000
+[0B4h 0180   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[0B8h 0184   8]                    Reserved3 : 0000000000000000
+
+[0C0h 0192   1]                Subtable Type : 01 [Memory Affinity]
+[0C1h 0193   1]                       Length : 28
+
+[0C2h 0194   4]             Proximity Domain : 00000001
+[0C6h 0198   2]                    Reserved1 : 0000
+[0C8h 0200   8]                 Base Address : 0000000002000000
+[0D0h 0208   8]               Address Length : 0000000002000000
+[0D8h 0216   4]                    Reserved2 : 00000000
+[0DCh 0220   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[0E0h 0224   8]                    Reserved3 : 0000000000000000
+
+[0E8h 0232   1]                Subtable Type : 01 [Memory Affinity]
+[0E9h 0233   1]                       Length : 28
+
+[0EAh 0234   4]             Proximity Domain : 00000002
+[0EEh 0238   2]                    Reserved1 : 0000
+[0F0h 0240   8]                 Base Address : 0000000004000000
+[0F8h 0248   8]               Address Length : 0000000002000000
+[100h 0256   4]                    Reserved2 : 00000000
+[104h 0260   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[108h 0264   8]                    Reserved3 : 0000000000000000
+
+[110h 0272   1]                Subtable Type : 01 [Memory Affinity]
+[111h 0273   1]                       Length : 28
+
+[112h 0274   4]             Proximity Domain : 00000003
+[116h 0278   2]                    Reserved1 : 0000
+[118h 0280   8]                 Base Address : 0000000006000000
+[120h 0288   8]               Address Length : 0000000002000000
+[128h 0296   4]                    Reserved2 : 00000000
+[12Ch 0300   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[130h 0304   8]                    Reserved3 : 0000000000000000
+
+[138h 0312   1]                Subtable Type : 01 [Memory Affinity]
+[139h 0313   1]                       Length : 28
+
+[13Ah 0314   4]             Proximity Domain : 00000002
+[13Eh 0318   2]                    Reserved1 : 0000
+[140h 0320   8]                 Base Address : 0000000108000000
+[148h 0328   8]               Address Length : 0000000008000000
+[150h 0336   4]                    Reserved2 : 00000000
+[154h 0340   4]        Flags (decoded below) : 00000005
+                                     Enabled : 1
+                               Hot Pluggable : 0
+                                Non-Volatile : 1
+[158h 0344   8]                    Reserved3 : 0000000000000000
+
+[160h 0352   1]                Subtable Type : 01 [Memory Affinity]
+[161h 0353   1]                       Length : 28
+
+[162h 0354   4]             Proximity Domain : 00000003
+[166h 0358   2]                    Reserved1 : 0000
+[168h 0360   8]                 Base Address : 0000000100000000
+[170h 0368   8]               Address Length : 00000000F8000000
+[178h 0376   4]                    Reserved2 : 00000000
+[17Ch 0380   4]        Flags (decoded below) : 00000003
+                                     Enabled : 1
+                               Hot Pluggable : 1
+                                Non-Volatile : 0
+[180h 0384   8]                    Reserved3 : 0000000000000000
+
+Raw Table Data: Length 392 (0x188)
+
+    0000: 53 52 41 54 88 01 00 00 01 68 42 4F 43 48 53 20  // SRAT.....hBOCHS 
+    0010: 42 58 50 43 53 52 41 54 01 00 00 00 42 58 50 43  // BXPCSRAT....BXPC
+    0020: 01 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0030: 00 10 00 00 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0040: 00 10 01 01 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0050: 00 10 02 02 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0060: 00 10 03 03 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0070: 01 28 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // .(..............
+    0080: 00 00 0A 00 00 00 00 00 00 00 00 00 01 00 00 00  // ................
+    0090: 00 00 00 00 00 00 00 00 01 28 00 00 00 00 00 00  // .........(......
+    00A0: 00 00 10 00 00 00 00 00 00 00 F0 01 00 00 00 00  // ................
+    00B0: 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00C0: 01 28 01 00 00 00 00 00 00 00 00 02 00 00 00 00  // .(..............
+    00D0: 00 00 00 02 00 00 00 00 00 00 00 00 01 00 00 00  // ................
+    00E0: 00 00 00 00 00 00 00 00 01 28 02 00 00 00 00 00  // .........(......
+    00F0: 00 00 00 04 00 00 00 00 00 00 00 02 00 00 00 00  // ................
+    0100: 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0110: 01 28 03 00 00 00 00 00 00 00 00 06 00 00 00 00  // .(..............
+    0120: 00 00 00 02 00 00 00 00 00 00 00 00 01 00 00 00  // ................
+    0130: 00 00 00 00 00 00 00 00 01 28 02 00 00 00 00 00  // .........(......
+    0140: 00 00 00 08 01 00 00 00 00 00 00 08 00 00 00 00  // ................
+    0150: 00 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0160: 01 28 03 00 00 00 00 00 00 00 00 00 01 00 00 00  // .(..............
+    0170: 00 00 00 F8 00 00 00 00 00 00 00 00 03 00 00 00  // ................
+    0180: 00 00 00 00 00 00 00 00                          // ........
diff --git a/tests/data/acpi/pc/SRAT.dsl b/tests/data/acpi/pc/SRAT.dsl
new file mode 100644
index 0000000000..77bbfebc81
--- /dev/null
+++ b/tests/data/acpi/pc/SRAT.dsl
@@ -0,0 +1,108 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/pc/SRAT.numamem, Mon Sep 28 17:24:38 2020
+ *
+ * ACPI Data Table [SRAT]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "SRAT"    [System Resource Affinity Table]
+[004h 0004   4]                 Table Length : 000000E0
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : F5
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCSRAT"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]               Table Revision : 00000001
+[028h 0040   8]                     Reserved : 0000000000000000
+
+[030h 0048   1]                Subtable Type : 00 [Processor Local APIC/SAPIC Affinity]
+[031h 0049   1]                       Length : 10
+
+[032h 0050   1]      Proximity Domain Low(8) : 00
+[033h 0051   1]                      Apic ID : 00
+[034h 0052   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+[038h 0056   1]              Local Sapic EID : 00
+[039h 0057   3]    Proximity Domain High(24) : 000000
+[03Ch 0060   4]                 Clock Domain : 00000000
+
+[040h 0064   1]                Subtable Type : 01 [Memory Affinity]
+[041h 0065   1]                       Length : 28
+
+[042h 0066   4]             Proximity Domain : 00000001
+[046h 0070   2]                    Reserved1 : 0000
+[048h 0072   8]                 Base Address : 0000000000000000
+[050h 0080   8]               Address Length : 00000000000A0000
+[058h 0088   4]                    Reserved2 : 00000000
+[05Ch 0092   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[060h 0096   8]                    Reserved3 : 0000000000000000
+
+[068h 0104   1]                Subtable Type : 01 [Memory Affinity]
+[069h 0105   1]                       Length : 28
+
+[06Ah 0106   4]             Proximity Domain : 00000001
+[06Eh 0110   2]                    Reserved1 : 0000
+[070h 0112   8]                 Base Address : 0000000000100000
+[078h 0120   8]               Address Length : 0000000007F00000
+[080h 0128   4]                    Reserved2 : 00000000
+[084h 0132   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[088h 0136   8]                    Reserved3 : 0000000000000000
+
+[090h 0144   1]                Subtable Type : 01 [Memory Affinity]
+[091h 0145   1]                       Length : 28
+
+[092h 0146   4]             Proximity Domain : 00000000
+[096h 0150   2]                    Reserved1 : 0000
+[098h 0152   8]                 Base Address : 0000000000000000
+[0A0h 0160   8]               Address Length : 0000000000000000
+[0A8h 0168   4]                    Reserved2 : 00000000
+[0ACh 0172   4]        Flags (decoded below) : 00000000
+                                     Enabled : 0
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[0B0h 0176   8]                    Reserved3 : 0000000000000000
+
+[0B8h 0184   1]                Subtable Type : 01 [Memory Affinity]
+[0B9h 0185   1]                       Length : 28
+
+[0BAh 0186   4]             Proximity Domain : 00000000
+[0BEh 0190   2]                    Reserved1 : 0000
+[0C0h 0192   8]                 Base Address : 0000000000000000
+[0C8h 0200   8]               Address Length : 0000000000000000
+[0D0h 0208   4]                    Reserved2 : 00000000
+[0D4h 0212   4]        Flags (decoded below) : 00000000
+                                     Enabled : 0
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[0D8h 0216   8]                    Reserved3 : 0000000000000000
+
+Raw Table Data: Length 224 (0xE0)
+
+    0000: 53 52 41 54 E0 00 00 00 01 F5 42 4F 43 48 53 20  // SRAT......BOCHS 
+    0010: 42 58 50 43 53 52 41 54 01 00 00 00 42 58 50 43  // BXPCSRAT....BXPC
+    0020: 01 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0030: 00 10 00 00 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0040: 01 28 01 00 00 00 00 00 00 00 00 00 00 00 00 00  // .(..............
+    0050: 00 00 0A 00 00 00 00 00 00 00 00 00 01 00 00 00  // ................
+    0060: 00 00 00 00 00 00 00 00 01 28 01 00 00 00 00 00  // .........(......
+    0070: 00 00 10 00 00 00 00 00 00 00 F0 07 00 00 00 00  // ................
+    0080: 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0090: 01 28 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // .(..............
+    00A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00B0: 00 00 00 00 00 00 00 00 01 28 00 00 00 00 00 00  // .........(......
+    00C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
diff --git a/tests/data/acpi/pc/SRAT.memhp.dsl b/tests/data/acpi/pc/SRAT.memhp.dsl
new file mode 100644
index 0000000000..803f9c8f1a
--- /dev/null
+++ b/tests/data/acpi/pc/SRAT.memhp.dsl
@@ -0,0 +1,125 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/pc/SRAT.memhp, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [SRAT]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "SRAT"    [System Resource Affinity Table]
+[004h 0004   4]                 Table Length : 00000108
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : A2
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCSRAT"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]               Table Revision : 00000001
+[028h 0040   8]                     Reserved : 0000000000000000
+
+[030h 0048   1]                Subtable Type : 00 [Processor Local APIC/SAPIC Affinity]
+[031h 0049   1]                       Length : 10
+
+[032h 0050   1]      Proximity Domain Low(8) : 00
+[033h 0051   1]                      Apic ID : 00
+[034h 0052   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+[038h 0056   1]              Local Sapic EID : 00
+[039h 0057   3]    Proximity Domain High(24) : 000000
+[03Ch 0060   4]                 Clock Domain : 00000000
+
+[040h 0064   1]                Subtable Type : 01 [Memory Affinity]
+[041h 0065   1]                       Length : 28
+
+[042h 0066   4]             Proximity Domain : 00000000
+[046h 0070   2]                    Reserved1 : 0000
+[048h 0072   8]                 Base Address : 0000000000000000
+[050h 0080   8]               Address Length : 00000000000A0000
+[058h 0088   4]                    Reserved2 : 00000000
+[05Ch 0092   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[060h 0096   8]                    Reserved3 : 0000000000000000
+
+[068h 0104   1]                Subtable Type : 01 [Memory Affinity]
+[069h 0105   1]                       Length : 28
+
+[06Ah 0106   4]             Proximity Domain : 00000000
+[06Eh 0110   2]                    Reserved1 : 0000
+[070h 0112   8]                 Base Address : 0000000000100000
+[078h 0120   8]               Address Length : 0000000003F00000
+[080h 0128   4]                    Reserved2 : 00000000
+[084h 0132   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[088h 0136   8]                    Reserved3 : 0000000000000000
+
+[090h 0144   1]                Subtable Type : 01 [Memory Affinity]
+[091h 0145   1]                       Length : 28
+
+[092h 0146   4]             Proximity Domain : 00000001
+[096h 0150   2]                    Reserved1 : 0000
+[098h 0152   8]                 Base Address : 0000000004000000
+[0A0h 0160   8]               Address Length : 0000000004000000
+[0A8h 0168   4]                    Reserved2 : 00000000
+[0ACh 0172   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[0B0h 0176   8]                    Reserved3 : 0000000000000000
+
+[0B8h 0184   1]                Subtable Type : 01 [Memory Affinity]
+[0B9h 0185   1]                       Length : 28
+
+[0BAh 0186   4]             Proximity Domain : 00000000
+[0BEh 0190   2]                    Reserved1 : 0000
+[0C0h 0192   8]                 Base Address : 0000000000000000
+[0C8h 0200   8]               Address Length : 0000000000000000
+[0D0h 0208   4]                    Reserved2 : 00000000
+[0D4h 0212   4]        Flags (decoded below) : 00000000
+                                     Enabled : 0
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[0D8h 0216   8]                    Reserved3 : 0000000000000000
+
+[0E0h 0224   1]                Subtable Type : 01 [Memory Affinity]
+[0E1h 0225   1]                       Length : 28
+
+[0E2h 0226   4]             Proximity Domain : 00000001
+[0E6h 0230   2]                    Reserved1 : 0000
+[0E8h 0232   8]                 Base Address : 0000000100000000
+[0F0h 0240   8]               Address Length : 00000000F8000000
+[0F8h 0248   4]                    Reserved2 : 00000000
+[0FCh 0252   4]        Flags (decoded below) : 00000003
+                                     Enabled : 1
+                               Hot Pluggable : 1
+                                Non-Volatile : 0
+[100h 0256   8]                    Reserved3 : 0000000000000000
+
+Raw Table Data: Length 264 (0x108)
+
+    0000: 53 52 41 54 08 01 00 00 01 A2 42 4F 43 48 53 20  // SRAT......BOCHS 
+    0010: 42 58 50 43 53 52 41 54 01 00 00 00 42 58 50 43  // BXPCSRAT....BXPC
+    0020: 01 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0030: 00 10 00 00 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0040: 01 28 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // .(..............
+    0050: 00 00 0A 00 00 00 00 00 00 00 00 00 01 00 00 00  // ................
+    0060: 00 00 00 00 00 00 00 00 01 28 00 00 00 00 00 00  // .........(......
+    0070: 00 00 10 00 00 00 00 00 00 00 F0 03 00 00 00 00  // ................
+    0080: 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0090: 01 28 01 00 00 00 00 00 00 00 00 04 00 00 00 00  // .(..............
+    00A0: 00 00 00 04 00 00 00 00 00 00 00 00 01 00 00 00  // ................
+    00B0: 00 00 00 00 00 00 00 00 01 28 00 00 00 00 00 00  // .........(......
+    00C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00E0: 01 28 01 00 00 00 00 00 00 00 00 00 01 00 00 00  // .(..............
+    00F0: 00 00 00 F8 00 00 00 00 00 00 00 00 03 00 00 00  // ................
+    0100: 00 00 00 00 00 00 00 00                          // ........
diff --git a/tests/data/acpi/pc/SRAT.numamem.dsl b/tests/data/acpi/pc/SRAT.numamem.dsl
new file mode 100644
index 0000000000..74f4382dd1
--- /dev/null
+++ b/tests/data/acpi/pc/SRAT.numamem.dsl
@@ -0,0 +1,108 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/pc/SRAT.numamem, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [SRAT]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "SRAT"    [System Resource Affinity Table]
+[004h 0004   4]                 Table Length : 000000E0
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : F5
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCSRAT"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]               Table Revision : 00000001
+[028h 0040   8]                     Reserved : 0000000000000000
+
+[030h 0048   1]                Subtable Type : 00 [Processor Local APIC/SAPIC Affinity]
+[031h 0049   1]                       Length : 10
+
+[032h 0050   1]      Proximity Domain Low(8) : 00
+[033h 0051   1]                      Apic ID : 00
+[034h 0052   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+[038h 0056   1]              Local Sapic EID : 00
+[039h 0057   3]    Proximity Domain High(24) : 000000
+[03Ch 0060   4]                 Clock Domain : 00000000
+
+[040h 0064   1]                Subtable Type : 01 [Memory Affinity]
+[041h 0065   1]                       Length : 28
+
+[042h 0066   4]             Proximity Domain : 00000001
+[046h 0070   2]                    Reserved1 : 0000
+[048h 0072   8]                 Base Address : 0000000000000000
+[050h 0080   8]               Address Length : 00000000000A0000
+[058h 0088   4]                    Reserved2 : 00000000
+[05Ch 0092   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[060h 0096   8]                    Reserved3 : 0000000000000000
+
+[068h 0104   1]                Subtable Type : 01 [Memory Affinity]
+[069h 0105   1]                       Length : 28
+
+[06Ah 0106   4]             Proximity Domain : 00000001
+[06Eh 0110   2]                    Reserved1 : 0000
+[070h 0112   8]                 Base Address : 0000000000100000
+[078h 0120   8]               Address Length : 0000000007F00000
+[080h 0128   4]                    Reserved2 : 00000000
+[084h 0132   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[088h 0136   8]                    Reserved3 : 0000000000000000
+
+[090h 0144   1]                Subtable Type : 01 [Memory Affinity]
+[091h 0145   1]                       Length : 28
+
+[092h 0146   4]             Proximity Domain : 00000000
+[096h 0150   2]                    Reserved1 : 0000
+[098h 0152   8]                 Base Address : 0000000000000000
+[0A0h 0160   8]               Address Length : 0000000000000000
+[0A8h 0168   4]                    Reserved2 : 00000000
+[0ACh 0172   4]        Flags (decoded below) : 00000000
+                                     Enabled : 0
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[0B0h 0176   8]                    Reserved3 : 0000000000000000
+
+[0B8h 0184   1]                Subtable Type : 01 [Memory Affinity]
+[0B9h 0185   1]                       Length : 28
+
+[0BAh 0186   4]             Proximity Domain : 00000000
+[0BEh 0190   2]                    Reserved1 : 0000
+[0C0h 0192   8]                 Base Address : 0000000000000000
+[0C8h 0200   8]               Address Length : 0000000000000000
+[0D0h 0208   4]                    Reserved2 : 00000000
+[0D4h 0212   4]        Flags (decoded below) : 00000000
+                                     Enabled : 0
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[0D8h 0216   8]                    Reserved3 : 0000000000000000
+
+Raw Table Data: Length 224 (0xE0)
+
+    0000: 53 52 41 54 E0 00 00 00 01 F5 42 4F 43 48 53 20  // SRAT......BOCHS 
+    0010: 42 58 50 43 53 52 41 54 01 00 00 00 42 58 50 43  // BXPCSRAT....BXPC
+    0020: 01 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0030: 00 10 00 00 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0040: 01 28 01 00 00 00 00 00 00 00 00 00 00 00 00 00  // .(..............
+    0050: 00 00 0A 00 00 00 00 00 00 00 00 00 01 00 00 00  // ................
+    0060: 00 00 00 00 00 00 00 00 01 28 01 00 00 00 00 00  // .........(......
+    0070: 00 00 10 00 00 00 00 00 00 00 F0 07 00 00 00 00  // ................
+    0080: 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0090: 01 28 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // .(..............
+    00A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00B0: 00 00 00 00 00 00 00 00 01 28 00 00 00 00 00 00  // .........(......
+    00C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
diff --git a/tests/data/acpi/pc/SSDT.dsl b/tests/data/acpi/pc/SSDT.dsl
new file mode 100644
index 0000000000..abd64f6133
--- /dev/null
+++ b/tests/data/acpi/pc/SSDT.dsl
@@ -0,0 +1,205 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembling to symbolic ASL+ operators
+ *
+ * Disassembly of tests/data/acpi/pc/SSDT.dimmpxm, Mon Sep 28 17:24:38 2020
+ *
+ * Original Table Header:
+ *     Signature        "SSDT"
+ *     Length           0x000002DE (734)
+ *     Revision         0x01
+ *     Checksum         0x56
+ *     OEM ID           "BOCHS "
+ *     OEM Table ID     "NVDIMM"
+ *     OEM Revision     0x00000001 (1)
+ *     Compiler ID      "BXPC"
+ *     Compiler Version 0x00000001 (1)
+ */
+DefinitionBlock ("", "SSDT", 1, "BOCHS ", "NVDIMM", 0x00000001)
+{
+    Scope (\_SB)
+    {
+        Device (NVDR)
+        {
+            Name (_HID, "ACPI0012" /* NVDIMM Root Device */)  // _HID: Hardware ID
+            Method (NCAL, 5, Serialized)
+            {
+                Local6 = MEMA /* \MEMA */
+                OperationRegion (NPIO, SystemIO, 0x0A18, 0x04)
+                OperationRegion (NRAM, SystemMemory, Local6, 0x1000)
+                Field (NPIO, DWordAcc, NoLock, Preserve)
+                {
+                    NTFI,   32
+                }
+
+                Field (NRAM, DWordAcc, NoLock, Preserve)
+                {
+                    HDLE,   32, 
+                    REVS,   32, 
+                    FUNC,   32, 
+                    FARG,   32672
+                }
+
+                Field (NRAM, DWordAcc, NoLock, Preserve)
+                {
+                    RLEN,   32, 
+                    ODAT,   32736
+                }
+
+                If ((Arg4 == Zero))
+                {
+                    Local0 = ToUUID ("2f10e7a4-9e91-11e4-89d3-123b93f75cba")
+                }
+                ElseIf ((Arg4 == 0x00010000))
+                {
+                    Local0 = ToUUID ("648b9cf2-cda1-4312-8ad9-49c4af32bd62")
+                }
+                Else
+                {
+                    Local0 = ToUUID ("4309ac30-0d11-11e4-9191-0800200c9a66")
+                }
+
+                If (((Local6 == Zero) | (Arg0 != Local0)))
+                {
+                    If ((Arg2 == Zero))
+                    {
+                        Return (Buffer (One)
+                        {
+                             0x00                                             // .
+                        })
+                    }
+
+                    Return (Buffer (One)
+                    {
+                         0x01                                             // .
+                    })
+                }
+
+                HDLE = Arg4
+                REVS = Arg1
+                FUNC = Arg2
+                If (((ObjectType (Arg3) == 0x04) & (SizeOf (Arg3) == One)))
+                {
+                    Local2 = Arg3 [Zero]
+                    Local3 = DerefOf (Local2)
+                    FARG = Local3
+                }
+
+                NTFI = Local6
+                Local1 = (RLEN - 0x04)
+                If ((Local1 < 0x08))
+                {
+                    Local2 = Zero
+                    Name (TBUF, Buffer (One)
+                    {
+                         0x00                                             // .
+                    })
+                    Local7 = Buffer (Zero){}
+                    While ((Local2 < Local1))
+                    {
+                        TBUF [Zero] = DerefOf (ODAT [Local2])
+                        Concatenate (Local7, TBUF, Local7)
+                        Local2++
+                    }
+
+                    Return (Local7)
+                }
+
+                Local1 = (Local1 << 0x03)
+                CreateField (ODAT, Zero, Local1, OBUF)
+                Return (OBUF) /* \_SB_.NVDR.NCAL.OBUF */
+            }
+
+            Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
+            {
+                Return (NCAL (Arg0, Arg1, Arg2, Arg3, Zero))
+            }
+
+            Name (RSTA, Zero)
+            Method (RFIT, 1, Serialized)
+            {
+                Name (OFST, Zero)
+                OFST = Arg0
+                Local0 = NCAL (ToUUID ("648b9cf2-cda1-4312-8ad9-49c4af32bd62"), One, One, Package (0x01)
+                        {
+                            OFST
+                        }, 0x00010000)
+                CreateDWordField (Local0, Zero, STAU)
+                RSTA = STAU /* \_SB_.NVDR.RFIT.STAU */
+                If ((Zero != STAU))
+                {
+                    Return (Buffer (Zero){})
+                }
+
+                Local1 = SizeOf (Local0)
+                Local1 -= 0x04
+                If ((Local1 == Zero))
+                {
+                    Return (Buffer (Zero){})
+                }
+
+                CreateField (Local0, 0x20, (Local1 << 0x03), BUFF)
+                Return (BUFF) /* \_SB_.NVDR.RFIT.BUFF */
+            }
+
+            Method (_FIT, 0, Serialized)  // _FIT: Firmware Interface Table
+            {
+                Local2 = Buffer (Zero){}
+                Local3 = Zero
+                While (One)
+                {
+                    Local0 = RFIT (Local3)
+                    Local1 = SizeOf (Local0)
+                    If ((RSTA == 0x0100))
+                    {
+                        Local2 = Buffer (Zero){}
+                        Local3 = Zero
+                    }
+                    Else
+                    {
+                        If ((Local1 == Zero))
+                        {
+                            Return (Local2)
+                        }
+
+                        Local3 += Local1
+                        Concatenate (Local2, Local0, Local2)
+                    }
+                }
+            }
+
+            Device (NV00)
+            {
+                Name (_ADR, One)  // _ADR: Address
+                Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
+                {
+                    Return (NCAL (Arg0, Arg1, Arg2, Arg3, One))
+                }
+            }
+
+            Device (NV01)
+            {
+                Name (_ADR, 0x02)  // _ADR: Address
+                Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
+                {
+                    Return (NCAL (Arg0, Arg1, Arg2, Arg3, 0x02))
+                }
+            }
+
+            Device (NV02)
+            {
+                Name (_ADR, 0x03)  // _ADR: Address
+                Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
+                {
+                    Return (NCAL (Arg0, Arg1, Arg2, Arg3, 0x03))
+                }
+            }
+        }
+    }
+
+    Name (MEMA, 0x07FFE000)
+}
+
diff --git a/tests/data/acpi/pc/WAET.acpihmat b/tests/data/acpi/pc/WAET.acpihmat
new file mode 100644
index 0000000000000000000000000000000000000000..c2240f58dff6b2f765386b5a2e506fda4800be3e
GIT binary patch
literal 40
mcmWG{bPds9U|?YEaPoKd2v%^42yhMuiZKGkKx`1r1jGQWX$JuS

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/pc/WAET.acpihmat.dsl b/tests/data/acpi/pc/WAET.acpihmat.dsl
new file mode 100644
index 0000000000..991c8773b8
--- /dev/null
+++ b/tests/data/acpi/pc/WAET.acpihmat.dsl
@@ -0,0 +1,31 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/pc/WAET.acpihmat, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [WAET]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "WAET"    [Windows ACPI Emulated Devices Table]
+[004h 0004   4]                 Table Length : 00000028
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 88
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCWAET"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]        Flags (decoded below) : 00000002
+                        RTC needs no INT ack : 0
+                     PM timer, one read only : 1
+
+Raw Table Data: Length 40 (0x28)
+
+    0000: 57 41 45 54 28 00 00 00 01 88 42 4F 43 48 53 20  // WAET(.....BOCHS 
+    0010: 42 58 50 43 57 41 45 54 01 00 00 00 42 58 50 43  // BXPCWAET....BXPC
+    0020: 01 00 00 00 02 00 00 00                          // ........
diff --git a/tests/data/acpi/pc/WAET.bridge b/tests/data/acpi/pc/WAET.bridge
new file mode 100644
index 0000000000000000000000000000000000000000..c2240f58dff6b2f765386b5a2e506fda4800be3e
GIT binary patch
literal 40
mcmWG{bPds9U|?YEaPoKd2v%^42yhMuiZKGkKx`1r1jGQWX$JuS

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/pc/WAET.bridge.dsl b/tests/data/acpi/pc/WAET.bridge.dsl
new file mode 100644
index 0000000000..f47dbb17a7
--- /dev/null
+++ b/tests/data/acpi/pc/WAET.bridge.dsl
@@ -0,0 +1,31 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/pc/WAET.bridge, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [WAET]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "WAET"    [Windows ACPI Emulated Devices Table]
+[004h 0004   4]                 Table Length : 00000028
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 88
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCWAET"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]        Flags (decoded below) : 00000002
+                        RTC needs no INT ack : 0
+                     PM timer, one read only : 1
+
+Raw Table Data: Length 40 (0x28)
+
+    0000: 57 41 45 54 28 00 00 00 01 88 42 4F 43 48 53 20  // WAET(.....BOCHS 
+    0010: 42 58 50 43 57 41 45 54 01 00 00 00 42 58 50 43  // BXPCWAET....BXPC
+    0020: 01 00 00 00 02 00 00 00                          // ........
diff --git a/tests/data/acpi/pc/WAET.cphp b/tests/data/acpi/pc/WAET.cphp
new file mode 100644
index 0000000000000000000000000000000000000000..c2240f58dff6b2f765386b5a2e506fda4800be3e
GIT binary patch
literal 40
mcmWG{bPds9U|?YEaPoKd2v%^42yhMuiZKGkKx`1r1jGQWX$JuS

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/pc/WAET.cphp.dsl b/tests/data/acpi/pc/WAET.cphp.dsl
new file mode 100644
index 0000000000..ff077a14eb
--- /dev/null
+++ b/tests/data/acpi/pc/WAET.cphp.dsl
@@ -0,0 +1,31 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/pc/WAET.cphp, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [WAET]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "WAET"    [Windows ACPI Emulated Devices Table]
+[004h 0004   4]                 Table Length : 00000028
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 88
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCWAET"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]        Flags (decoded below) : 00000002
+                        RTC needs no INT ack : 0
+                     PM timer, one read only : 1
+
+Raw Table Data: Length 40 (0x28)
+
+    0000: 57 41 45 54 28 00 00 00 01 88 42 4F 43 48 53 20  // WAET(.....BOCHS 
+    0010: 42 58 50 43 57 41 45 54 01 00 00 00 42 58 50 43  // BXPCWAET....BXPC
+    0020: 01 00 00 00 02 00 00 00                          // ........
diff --git a/tests/data/acpi/pc/WAET.dimmpxm b/tests/data/acpi/pc/WAET.dimmpxm
new file mode 100644
index 0000000000000000000000000000000000000000..c2240f58dff6b2f765386b5a2e506fda4800be3e
GIT binary patch
literal 40
mcmWG{bPds9U|?YEaPoKd2v%^42yhMuiZKGkKx`1r1jGQWX$JuS

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/pc/WAET.dimmpxm.dsl b/tests/data/acpi/pc/WAET.dimmpxm.dsl
new file mode 100644
index 0000000000..b8192c8601
--- /dev/null
+++ b/tests/data/acpi/pc/WAET.dimmpxm.dsl
@@ -0,0 +1,31 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/pc/WAET.dimmpxm, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [WAET]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "WAET"    [Windows ACPI Emulated Devices Table]
+[004h 0004   4]                 Table Length : 00000028
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 88
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCWAET"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]        Flags (decoded below) : 00000002
+                        RTC needs no INT ack : 0
+                     PM timer, one read only : 1
+
+Raw Table Data: Length 40 (0x28)
+
+    0000: 57 41 45 54 28 00 00 00 01 88 42 4F 43 48 53 20  // WAET(.....BOCHS 
+    0010: 42 58 50 43 57 41 45 54 01 00 00 00 42 58 50 43  // BXPCWAET....BXPC
+    0020: 01 00 00 00 02 00 00 00                          // ........
diff --git a/tests/data/acpi/pc/WAET.dsl b/tests/data/acpi/pc/WAET.dsl
new file mode 100644
index 0000000000..53b6c1dc42
--- /dev/null
+++ b/tests/data/acpi/pc/WAET.dsl
@@ -0,0 +1,31 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/pc/WAET.roothp, Mon Sep 28 17:24:38 2020
+ *
+ * ACPI Data Table [WAET]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "WAET"    [Windows ACPI Emulated Devices Table]
+[004h 0004   4]                 Table Length : 00000028
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 88
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCWAET"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]        Flags (decoded below) : 00000002
+                        RTC needs no INT ack : 0
+                     PM timer, one read only : 1
+
+Raw Table Data: Length 40 (0x28)
+
+    0000: 57 41 45 54 28 00 00 00 01 88 42 4F 43 48 53 20  // WAET(.....BOCHS 
+    0010: 42 58 50 43 57 41 45 54 01 00 00 00 42 58 50 43  // BXPCWAET....BXPC
+    0020: 01 00 00 00 02 00 00 00                          // ........
diff --git a/tests/data/acpi/pc/WAET.hpbridge b/tests/data/acpi/pc/WAET.hpbridge
new file mode 100644
index 0000000000000000000000000000000000000000..c2240f58dff6b2f765386b5a2e506fda4800be3e
GIT binary patch
literal 40
mcmWG{bPds9U|?YEaPoKd2v%^42yhMuiZKGkKx`1r1jGQWX$JuS

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/pc/WAET.ipmikcs b/tests/data/acpi/pc/WAET.ipmikcs
new file mode 100644
index 0000000000000000000000000000000000000000..c2240f58dff6b2f765386b5a2e506fda4800be3e
GIT binary patch
literal 40
mcmWG{bPds9U|?YEaPoKd2v%^42yhMuiZKGkKx`1r1jGQWX$JuS

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/pc/WAET.ipmikcs.dsl b/tests/data/acpi/pc/WAET.ipmikcs.dsl
new file mode 100644
index 0000000000..5144bada0f
--- /dev/null
+++ b/tests/data/acpi/pc/WAET.ipmikcs.dsl
@@ -0,0 +1,31 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/pc/WAET.ipmikcs, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [WAET]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "WAET"    [Windows ACPI Emulated Devices Table]
+[004h 0004   4]                 Table Length : 00000028
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 88
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCWAET"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]        Flags (decoded below) : 00000002
+                        RTC needs no INT ack : 0
+                     PM timer, one read only : 1
+
+Raw Table Data: Length 40 (0x28)
+
+    0000: 57 41 45 54 28 00 00 00 01 88 42 4F 43 48 53 20  // WAET(.....BOCHS 
+    0010: 42 58 50 43 57 41 45 54 01 00 00 00 42 58 50 43  // BXPCWAET....BXPC
+    0020: 01 00 00 00 02 00 00 00                          // ........
diff --git a/tests/data/acpi/pc/WAET.memhp b/tests/data/acpi/pc/WAET.memhp
new file mode 100644
index 0000000000000000000000000000000000000000..c2240f58dff6b2f765386b5a2e506fda4800be3e
GIT binary patch
literal 40
mcmWG{bPds9U|?YEaPoKd2v%^42yhMuiZKGkKx`1r1jGQWX$JuS

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/pc/WAET.memhp.dsl b/tests/data/acpi/pc/WAET.memhp.dsl
new file mode 100644
index 0000000000..bfe3a036d7
--- /dev/null
+++ b/tests/data/acpi/pc/WAET.memhp.dsl
@@ -0,0 +1,31 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/pc/WAET.memhp, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [WAET]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "WAET"    [Windows ACPI Emulated Devices Table]
+[004h 0004   4]                 Table Length : 00000028
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 88
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCWAET"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]        Flags (decoded below) : 00000002
+                        RTC needs no INT ack : 0
+                     PM timer, one read only : 1
+
+Raw Table Data: Length 40 (0x28)
+
+    0000: 57 41 45 54 28 00 00 00 01 88 42 4F 43 48 53 20  // WAET(.....BOCHS 
+    0010: 42 58 50 43 57 41 45 54 01 00 00 00 42 58 50 43  // BXPCWAET....BXPC
+    0020: 01 00 00 00 02 00 00 00                          // ........
diff --git a/tests/data/acpi/pc/WAET.numamem b/tests/data/acpi/pc/WAET.numamem
new file mode 100644
index 0000000000000000000000000000000000000000..c2240f58dff6b2f765386b5a2e506fda4800be3e
GIT binary patch
literal 40
mcmWG{bPds9U|?YEaPoKd2v%^42yhMuiZKGkKx`1r1jGQWX$JuS

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/pc/WAET.numamem.dsl b/tests/data/acpi/pc/WAET.numamem.dsl
new file mode 100644
index 0000000000..e4c6cf4bf8
--- /dev/null
+++ b/tests/data/acpi/pc/WAET.numamem.dsl
@@ -0,0 +1,31 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/pc/WAET.numamem, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [WAET]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "WAET"    [Windows ACPI Emulated Devices Table]
+[004h 0004   4]                 Table Length : 00000028
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 88
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCWAET"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]        Flags (decoded below) : 00000002
+                        RTC needs no INT ack : 0
+                     PM timer, one read only : 1
+
+Raw Table Data: Length 40 (0x28)
+
+    0000: 57 41 45 54 28 00 00 00 01 88 42 4F 43 48 53 20  // WAET(.....BOCHS 
+    0010: 42 58 50 43 57 41 45 54 01 00 00 00 42 58 50 43  // BXPCWAET....BXPC
+    0020: 01 00 00 00 02 00 00 00                          // ........
diff --git a/tests/data/acpi/pc/WAET.roothp b/tests/data/acpi/pc/WAET.roothp
new file mode 100644
index 0000000000000000000000000000000000000000..c2240f58dff6b2f765386b5a2e506fda4800be3e
GIT binary patch
literal 40
mcmWG{bPds9U|?YEaPoKd2v%^42yhMuiZKGkKx`1r1jGQWX$JuS

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/q35/APIC.acpihmat.dsl b/tests/data/acpi/q35/APIC.acpihmat.dsl
new file mode 100644
index 0000000000..5fe9fb4669
--- /dev/null
+++ b/tests/data/acpi/q35/APIC.acpihmat.dsl
@@ -0,0 +1,112 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/APIC.acpihmat, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [APIC]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "APIC"    [Multiple APIC Description Table (MADT)]
+[004h 0004   4]                 Table Length : 00000080
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : DA
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCAPIC"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]           Local Apic Address : FEE00000
+[028h 0040   4]        Flags (decoded below) : 00000001
+                         PC-AT Compatibility : 1
+
+[02Ch 0044   1]                Subtable Type : 00 [Processor Local APIC]
+[02Dh 0045   1]                       Length : 08
+[02Eh 0046   1]                 Processor ID : 00
+[02Fh 0047   1]                Local Apic ID : 00
+[030h 0048   4]        Flags (decoded below) : 00000001
+                           Processor Enabled : 1
+                      Runtime Online Capable : 0
+
+[034h 0052   1]                Subtable Type : 00 [Processor Local APIC]
+[035h 0053   1]                       Length : 08
+[036h 0054   1]                 Processor ID : 01
+[037h 0055   1]                Local Apic ID : 01
+[038h 0056   4]        Flags (decoded below) : 00000001
+                           Processor Enabled : 1
+                      Runtime Online Capable : 0
+
+[03Ch 0060   1]                Subtable Type : 01 [I/O APIC]
+[03Dh 0061   1]                       Length : 0C
+[03Eh 0062   1]                  I/O Apic ID : 00
+[03Fh 0063   1]                     Reserved : 00
+[040h 0064   4]                      Address : FEC00000
+[044h 0068   4]                    Interrupt : 00000000
+
+[048h 0072   1]                Subtable Type : 02 [Interrupt Source Override]
+[049h 0073   1]                       Length : 0A
+[04Ah 0074   1]                          Bus : 00
+[04Bh 0075   1]                       Source : 00
+[04Ch 0076   4]                    Interrupt : 00000002
+[050h 0080   2]        Flags (decoded below) : 0000
+                                    Polarity : 0
+                                Trigger Mode : 0
+
+[052h 0082   1]                Subtable Type : 02 [Interrupt Source Override]
+[053h 0083   1]                       Length : 0A
+[054h 0084   1]                          Bus : 00
+[055h 0085   1]                       Source : 05
+[056h 0086   4]                    Interrupt : 00000005
+[05Ah 0090   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[05Ch 0092   1]                Subtable Type : 02 [Interrupt Source Override]
+[05Dh 0093   1]                       Length : 0A
+[05Eh 0094   1]                          Bus : 00
+[05Fh 0095   1]                       Source : 09
+[060h 0096   4]                    Interrupt : 00000009
+[064h 0100   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[066h 0102   1]                Subtable Type : 02 [Interrupt Source Override]
+[067h 0103   1]                       Length : 0A
+[068h 0104   1]                          Bus : 00
+[069h 0105   1]                       Source : 0A
+[06Ah 0106   4]                    Interrupt : 0000000A
+[06Eh 0110   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[070h 0112   1]                Subtable Type : 02 [Interrupt Source Override]
+[071h 0113   1]                       Length : 0A
+[072h 0114   1]                          Bus : 00
+[073h 0115   1]                       Source : 0B
+[074h 0116   4]                    Interrupt : 0000000B
+[078h 0120   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[07Ah 0122   1]                Subtable Type : 04 [Local APIC NMI]
+[07Bh 0123   1]                       Length : 06
+[07Ch 0124   1]                 Processor ID : FF
+[07Dh 0125   2]        Flags (decoded below) : 0000
+                                    Polarity : 0
+                                Trigger Mode : 0
+[07Fh 0127   1]         Interrupt Input LINT : 01
+
+Raw Table Data: Length 128 (0x80)
+
+    0000: 41 50 49 43 80 00 00 00 01 DA 42 4F 43 48 53 20  // APIC......BOCHS 
+    0010: 42 58 50 43 41 50 49 43 01 00 00 00 42 58 50 43  // BXPCAPIC....BXPC
+    0020: 01 00 00 00 00 00 E0 FE 01 00 00 00 00 08 00 00  // ................
+    0030: 01 00 00 00 00 08 01 01 01 00 00 00 01 0C 00 00  // ................
+    0040: 00 00 C0 FE 00 00 00 00 02 0A 00 00 02 00 00 00  // ................
+    0050: 00 00 02 0A 00 05 05 00 00 00 0D 00 02 0A 00 09  // ................
+    0060: 09 00 00 00 0D 00 02 0A 00 0A 0A 00 00 00 0D 00  // ................
+    0070: 02 0A 00 0B 0B 00 00 00 0D 00 04 06 FF 00 00 01  // ................
diff --git a/tests/data/acpi/q35/APIC.bridge b/tests/data/acpi/q35/APIC.bridge
new file mode 100644
index 0000000000000000000000000000000000000000..84509e0ae4cabeb5ead3e42a4edfa50abddbc17d
GIT binary patch
literal 120
zcmZ<^@N}+VU|?W;>*Vk35v<@85#a0y6k`O6f!H9Lf#JbFFwFr}2jnsGfW!{`1CdNz
hKn!AlSgfo-nis_4<b<)ffC?aD+}vOm3)_F75db|X4FLcE

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/q35/APIC.bridge.dsl b/tests/data/acpi/q35/APIC.bridge.dsl
new file mode 100644
index 0000000000..2489067401
--- /dev/null
+++ b/tests/data/acpi/q35/APIC.bridge.dsl
@@ -0,0 +1,104 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/APIC.bridge, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [APIC]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "APIC"    [Multiple APIC Description Table (MADT)]
+[004h 0004   4]                 Table Length : 00000078
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : ED
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCAPIC"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]           Local Apic Address : FEE00000
+[028h 0040   4]        Flags (decoded below) : 00000001
+                         PC-AT Compatibility : 1
+
+[02Ch 0044   1]                Subtable Type : 00 [Processor Local APIC]
+[02Dh 0045   1]                       Length : 08
+[02Eh 0046   1]                 Processor ID : 00
+[02Fh 0047   1]                Local Apic ID : 00
+[030h 0048   4]        Flags (decoded below) : 00000001
+                           Processor Enabled : 1
+                      Runtime Online Capable : 0
+
+[034h 0052   1]                Subtable Type : 01 [I/O APIC]
+[035h 0053   1]                       Length : 0C
+[036h 0054   1]                  I/O Apic ID : 00
+[037h 0055   1]                     Reserved : 00
+[038h 0056   4]                      Address : FEC00000
+[03Ch 0060   4]                    Interrupt : 00000000
+
+[040h 0064   1]                Subtable Type : 02 [Interrupt Source Override]
+[041h 0065   1]                       Length : 0A
+[042h 0066   1]                          Bus : 00
+[043h 0067   1]                       Source : 00
+[044h 0068   4]                    Interrupt : 00000002
+[048h 0072   2]        Flags (decoded below) : 0000
+                                    Polarity : 0
+                                Trigger Mode : 0
+
+[04Ah 0074   1]                Subtable Type : 02 [Interrupt Source Override]
+[04Bh 0075   1]                       Length : 0A
+[04Ch 0076   1]                          Bus : 00
+[04Dh 0077   1]                       Source : 05
+[04Eh 0078   4]                    Interrupt : 00000005
+[052h 0082   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[054h 0084   1]                Subtable Type : 02 [Interrupt Source Override]
+[055h 0085   1]                       Length : 0A
+[056h 0086   1]                          Bus : 00
+[057h 0087   1]                       Source : 09
+[058h 0088   4]                    Interrupt : 00000009
+[05Ch 0092   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[05Eh 0094   1]                Subtable Type : 02 [Interrupt Source Override]
+[05Fh 0095   1]                       Length : 0A
+[060h 0096   1]                          Bus : 00
+[061h 0097   1]                       Source : 0A
+[062h 0098   4]                    Interrupt : 0000000A
+[066h 0102   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[068h 0104   1]                Subtable Type : 02 [Interrupt Source Override]
+[069h 0105   1]                       Length : 0A
+[06Ah 0106   1]                          Bus : 00
+[06Bh 0107   1]                       Source : 0B
+[06Ch 0108   4]                    Interrupt : 0000000B
+[070h 0112   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[072h 0114   1]                Subtable Type : 04 [Local APIC NMI]
+[073h 0115   1]                       Length : 06
+[074h 0116   1]                 Processor ID : FF
+[075h 0117   2]        Flags (decoded below) : 0000
+                                    Polarity : 0
+                                Trigger Mode : 0
+[077h 0119   1]         Interrupt Input LINT : 01
+
+Raw Table Data: Length 120 (0x78)
+
+    0000: 41 50 49 43 78 00 00 00 01 ED 42 4F 43 48 53 20  // APICx.....BOCHS 
+    0010: 42 58 50 43 41 50 49 43 01 00 00 00 42 58 50 43  // BXPCAPIC....BXPC
+    0020: 01 00 00 00 00 00 E0 FE 01 00 00 00 00 08 00 00  // ................
+    0030: 01 00 00 00 01 0C 00 00 00 00 C0 FE 00 00 00 00  // ................
+    0040: 02 0A 00 00 02 00 00 00 00 00 02 0A 00 05 05 00  // ................
+    0050: 00 00 0D 00 02 0A 00 09 09 00 00 00 0D 00 02 0A  // ................
+    0060: 00 0A 0A 00 00 00 0D 00 02 0A 00 0B 0B 00 00 00  // ................
+    0070: 0D 00 04 06 FF 00 00 01                          // ........
diff --git a/tests/data/acpi/q35/APIC.cphp.dsl b/tests/data/acpi/q35/APIC.cphp.dsl
new file mode 100644
index 0000000000..be8daf5f80
--- /dev/null
+++ b/tests/data/acpi/q35/APIC.cphp.dsl
@@ -0,0 +1,146 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/APIC.cphp, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [APIC]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "APIC"    [Multiple APIC Description Table (MADT)]
+[004h 0004   4]                 Table Length : 000000A0
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 7B
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCAPIC"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]           Local Apic Address : FEE00000
+[028h 0040   4]        Flags (decoded below) : 00000001
+                         PC-AT Compatibility : 1
+
+[02Ch 0044   1]                Subtable Type : 00 [Processor Local APIC]
+[02Dh 0045   1]                       Length : 08
+[02Eh 0046   1]                 Processor ID : 00
+[02Fh 0047   1]                Local Apic ID : 00
+[030h 0048   4]        Flags (decoded below) : 00000001
+                           Processor Enabled : 1
+                      Runtime Online Capable : 0
+
+[034h 0052   1]                Subtable Type : 00 [Processor Local APIC]
+[035h 0053   1]                       Length : 08
+[036h 0054   1]                 Processor ID : 01
+[037h 0055   1]                Local Apic ID : 01
+[038h 0056   4]        Flags (decoded below) : 00000001
+                           Processor Enabled : 1
+                      Runtime Online Capable : 0
+
+[03Ch 0060   1]                Subtable Type : 00 [Processor Local APIC]
+[03Dh 0061   1]                       Length : 08
+[03Eh 0062   1]                 Processor ID : 02
+[03Fh 0063   1]                Local Apic ID : 02
+[040h 0064   4]        Flags (decoded below) : 00000000
+                           Processor Enabled : 0
+                      Runtime Online Capable : 0
+
+[044h 0068   1]                Subtable Type : 00 [Processor Local APIC]
+[045h 0069   1]                       Length : 08
+[046h 0070   1]                 Processor ID : 03
+[047h 0071   1]                Local Apic ID : 04
+[048h 0072   4]        Flags (decoded below) : 00000000
+                           Processor Enabled : 0
+                      Runtime Online Capable : 0
+
+[04Ch 0076   1]                Subtable Type : 00 [Processor Local APIC]
+[04Dh 0077   1]                       Length : 08
+[04Eh 0078   1]                 Processor ID : 04
+[04Fh 0079   1]                Local Apic ID : 05
+[050h 0080   4]        Flags (decoded below) : 00000000
+                           Processor Enabled : 0
+                      Runtime Online Capable : 0
+
+[054h 0084   1]                Subtable Type : 00 [Processor Local APIC]
+[055h 0085   1]                       Length : 08
+[056h 0086   1]                 Processor ID : 05
+[057h 0087   1]                Local Apic ID : 06
+[058h 0088   4]        Flags (decoded below) : 00000000
+                           Processor Enabled : 0
+                      Runtime Online Capable : 0
+
+[05Ch 0092   1]                Subtable Type : 01 [I/O APIC]
+[05Dh 0093   1]                       Length : 0C
+[05Eh 0094   1]                  I/O Apic ID : 00
+[05Fh 0095   1]                     Reserved : 00
+[060h 0096   4]                      Address : FEC00000
+[064h 0100   4]                    Interrupt : 00000000
+
+[068h 0104   1]                Subtable Type : 02 [Interrupt Source Override]
+[069h 0105   1]                       Length : 0A
+[06Ah 0106   1]                          Bus : 00
+[06Bh 0107   1]                       Source : 00
+[06Ch 0108   4]                    Interrupt : 00000002
+[070h 0112   2]        Flags (decoded below) : 0000
+                                    Polarity : 0
+                                Trigger Mode : 0
+
+[072h 0114   1]                Subtable Type : 02 [Interrupt Source Override]
+[073h 0115   1]                       Length : 0A
+[074h 0116   1]                          Bus : 00
+[075h 0117   1]                       Source : 05
+[076h 0118   4]                    Interrupt : 00000005
+[07Ah 0122   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[07Ch 0124   1]                Subtable Type : 02 [Interrupt Source Override]
+[07Dh 0125   1]                       Length : 0A
+[07Eh 0126   1]                          Bus : 00
+[07Fh 0127   1]                       Source : 09
+[080h 0128   4]                    Interrupt : 00000009
+[084h 0132   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[086h 0134   1]                Subtable Type : 02 [Interrupt Source Override]
+[087h 0135   1]                       Length : 0A
+[088h 0136   1]                          Bus : 00
+[089h 0137   1]                       Source : 0A
+[08Ah 0138   4]                    Interrupt : 0000000A
+[08Eh 0142   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[090h 0144   1]                Subtable Type : 02 [Interrupt Source Override]
+[091h 0145   1]                       Length : 0A
+[092h 0146   1]                          Bus : 00
+[093h 0147   1]                       Source : 0B
+[094h 0148   4]                    Interrupt : 0000000B
+[098h 0152   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[09Ah 0154   1]                Subtable Type : 04 [Local APIC NMI]
+[09Bh 0155   1]                       Length : 06
+[09Ch 0156   1]                 Processor ID : FF
+[09Dh 0157   2]        Flags (decoded below) : 0000
+                                    Polarity : 0
+                                Trigger Mode : 0
+[09Fh 0159   1]         Interrupt Input LINT : 01
+
+Raw Table Data: Length 160 (0xA0)
+
+    0000: 41 50 49 43 A0 00 00 00 01 7B 42 4F 43 48 53 20  // APIC.....{BOCHS 
+    0010: 42 58 50 43 41 50 49 43 01 00 00 00 42 58 50 43  // BXPCAPIC....BXPC
+    0020: 01 00 00 00 00 00 E0 FE 01 00 00 00 00 08 00 00  // ................
+    0030: 01 00 00 00 00 08 01 01 01 00 00 00 00 08 02 02  // ................
+    0040: 00 00 00 00 00 08 03 04 00 00 00 00 00 08 04 05  // ................
+    0050: 00 00 00 00 00 08 05 06 00 00 00 00 01 0C 00 00  // ................
+    0060: 00 00 C0 FE 00 00 00 00 02 0A 00 00 02 00 00 00  // ................
+    0070: 00 00 02 0A 00 05 05 00 00 00 0D 00 02 0A 00 09  // ................
+    0080: 09 00 00 00 0D 00 02 0A 00 0A 0A 00 00 00 0D 00  // ................
+    0090: 02 0A 00 0B 0B 00 00 00 0D 00 04 06 FF 00 00 01  // ................
diff --git a/tests/data/acpi/q35/APIC.dimmpxm.dsl b/tests/data/acpi/q35/APIC.dimmpxm.dsl
new file mode 100644
index 0000000000..798ab91bed
--- /dev/null
+++ b/tests/data/acpi/q35/APIC.dimmpxm.dsl
@@ -0,0 +1,129 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/APIC.dimmpxm, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [APIC]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "APIC"    [Multiple APIC Description Table (MADT)]
+[004h 0004   4]                 Table Length : 00000090
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : AE
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCAPIC"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]           Local Apic Address : FEE00000
+[028h 0040   4]        Flags (decoded below) : 00000001
+                         PC-AT Compatibility : 1
+
+[02Ch 0044   1]                Subtable Type : 00 [Processor Local APIC]
+[02Dh 0045   1]                       Length : 08
+[02Eh 0046   1]                 Processor ID : 00
+[02Fh 0047   1]                Local Apic ID : 00
+[030h 0048   4]        Flags (decoded below) : 00000001
+                           Processor Enabled : 1
+                      Runtime Online Capable : 0
+
+[034h 0052   1]                Subtable Type : 00 [Processor Local APIC]
+[035h 0053   1]                       Length : 08
+[036h 0054   1]                 Processor ID : 01
+[037h 0055   1]                Local Apic ID : 01
+[038h 0056   4]        Flags (decoded below) : 00000001
+                           Processor Enabled : 1
+                      Runtime Online Capable : 0
+
+[03Ch 0060   1]                Subtable Type : 00 [Processor Local APIC]
+[03Dh 0061   1]                       Length : 08
+[03Eh 0062   1]                 Processor ID : 02
+[03Fh 0063   1]                Local Apic ID : 02
+[040h 0064   4]        Flags (decoded below) : 00000001
+                           Processor Enabled : 1
+                      Runtime Online Capable : 0
+
+[044h 0068   1]                Subtable Type : 00 [Processor Local APIC]
+[045h 0069   1]                       Length : 08
+[046h 0070   1]                 Processor ID : 03
+[047h 0071   1]                Local Apic ID : 03
+[048h 0072   4]        Flags (decoded below) : 00000001
+                           Processor Enabled : 1
+                      Runtime Online Capable : 0
+
+[04Ch 0076   1]                Subtable Type : 01 [I/O APIC]
+[04Dh 0077   1]                       Length : 0C
+[04Eh 0078   1]                  I/O Apic ID : 00
+[04Fh 0079   1]                     Reserved : 00
+[050h 0080   4]                      Address : FEC00000
+[054h 0084   4]                    Interrupt : 00000000
+
+[058h 0088   1]                Subtable Type : 02 [Interrupt Source Override]
+[059h 0089   1]                       Length : 0A
+[05Ah 0090   1]                          Bus : 00
+[05Bh 0091   1]                       Source : 00
+[05Ch 0092   4]                    Interrupt : 00000002
+[060h 0096   2]        Flags (decoded below) : 0000
+                                    Polarity : 0
+                                Trigger Mode : 0
+
+[062h 0098   1]                Subtable Type : 02 [Interrupt Source Override]
+[063h 0099   1]                       Length : 0A
+[064h 0100   1]                          Bus : 00
+[065h 0101   1]                       Source : 05
+[066h 0102   4]                    Interrupt : 00000005
+[06Ah 0106   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[06Ch 0108   1]                Subtable Type : 02 [Interrupt Source Override]
+[06Dh 0109   1]                       Length : 0A
+[06Eh 0110   1]                          Bus : 00
+[06Fh 0111   1]                       Source : 09
+[070h 0112   4]                    Interrupt : 00000009
+[074h 0116   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[076h 0118   1]                Subtable Type : 02 [Interrupt Source Override]
+[077h 0119   1]                       Length : 0A
+[078h 0120   1]                          Bus : 00
+[079h 0121   1]                       Source : 0A
+[07Ah 0122   4]                    Interrupt : 0000000A
+[07Eh 0126   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[080h 0128   1]                Subtable Type : 02 [Interrupt Source Override]
+[081h 0129   1]                       Length : 0A
+[082h 0130   1]                          Bus : 00
+[083h 0131   1]                       Source : 0B
+[084h 0132   4]                    Interrupt : 0000000B
+[088h 0136   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[08Ah 0138   1]                Subtable Type : 04 [Local APIC NMI]
+[08Bh 0139   1]                       Length : 06
+[08Ch 0140   1]                 Processor ID : FF
+[08Dh 0141   2]        Flags (decoded below) : 0000
+                                    Polarity : 0
+                                Trigger Mode : 0
+[08Fh 0143   1]         Interrupt Input LINT : 01
+
+Raw Table Data: Length 144 (0x90)
+
+    0000: 41 50 49 43 90 00 00 00 01 AE 42 4F 43 48 53 20  // APIC......BOCHS 
+    0010: 42 58 50 43 41 50 49 43 01 00 00 00 42 58 50 43  // BXPCAPIC....BXPC
+    0020: 01 00 00 00 00 00 E0 FE 01 00 00 00 00 08 00 00  // ................
+    0030: 01 00 00 00 00 08 01 01 01 00 00 00 00 08 02 02  // ................
+    0040: 01 00 00 00 00 08 03 03 01 00 00 00 01 0C 00 00  // ................
+    0050: 00 00 C0 FE 00 00 00 00 02 0A 00 00 02 00 00 00  // ................
+    0060: 00 00 02 0A 00 05 05 00 00 00 0D 00 02 0A 00 09  // ................
+    0070: 09 00 00 00 0D 00 02 0A 00 0A 0A 00 00 00 0D 00  // ................
+    0080: 02 0A 00 0B 0B 00 00 00 0D 00 04 06 FF 00 00 01  // ................
diff --git a/tests/data/acpi/q35/APIC.dsl b/tests/data/acpi/q35/APIC.dsl
new file mode 100644
index 0000000000..77d2d2c0a5
--- /dev/null
+++ b/tests/data/acpi/q35/APIC.dsl
@@ -0,0 +1,104 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/APIC.tis, Mon Sep 28 17:24:38 2020
+ *
+ * ACPI Data Table [APIC]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "APIC"    [Multiple APIC Description Table (MADT)]
+[004h 0004   4]                 Table Length : 00000078
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : ED
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCAPIC"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]           Local Apic Address : FEE00000
+[028h 0040   4]        Flags (decoded below) : 00000001
+                         PC-AT Compatibility : 1
+
+[02Ch 0044   1]                Subtable Type : 00 [Processor Local APIC]
+[02Dh 0045   1]                       Length : 08
+[02Eh 0046   1]                 Processor ID : 00
+[02Fh 0047   1]                Local Apic ID : 00
+[030h 0048   4]        Flags (decoded below) : 00000001
+                           Processor Enabled : 1
+                      Runtime Online Capable : 0
+
+[034h 0052   1]                Subtable Type : 01 [I/O APIC]
+[035h 0053   1]                       Length : 0C
+[036h 0054   1]                  I/O Apic ID : 00
+[037h 0055   1]                     Reserved : 00
+[038h 0056   4]                      Address : FEC00000
+[03Ch 0060   4]                    Interrupt : 00000000
+
+[040h 0064   1]                Subtable Type : 02 [Interrupt Source Override]
+[041h 0065   1]                       Length : 0A
+[042h 0066   1]                          Bus : 00
+[043h 0067   1]                       Source : 00
+[044h 0068   4]                    Interrupt : 00000002
+[048h 0072   2]        Flags (decoded below) : 0000
+                                    Polarity : 0
+                                Trigger Mode : 0
+
+[04Ah 0074   1]                Subtable Type : 02 [Interrupt Source Override]
+[04Bh 0075   1]                       Length : 0A
+[04Ch 0076   1]                          Bus : 00
+[04Dh 0077   1]                       Source : 05
+[04Eh 0078   4]                    Interrupt : 00000005
+[052h 0082   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[054h 0084   1]                Subtable Type : 02 [Interrupt Source Override]
+[055h 0085   1]                       Length : 0A
+[056h 0086   1]                          Bus : 00
+[057h 0087   1]                       Source : 09
+[058h 0088   4]                    Interrupt : 00000009
+[05Ch 0092   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[05Eh 0094   1]                Subtable Type : 02 [Interrupt Source Override]
+[05Fh 0095   1]                       Length : 0A
+[060h 0096   1]                          Bus : 00
+[061h 0097   1]                       Source : 0A
+[062h 0098   4]                    Interrupt : 0000000A
+[066h 0102   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[068h 0104   1]                Subtable Type : 02 [Interrupt Source Override]
+[069h 0105   1]                       Length : 0A
+[06Ah 0106   1]                          Bus : 00
+[06Bh 0107   1]                       Source : 0B
+[06Ch 0108   4]                    Interrupt : 0000000B
+[070h 0112   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[072h 0114   1]                Subtable Type : 04 [Local APIC NMI]
+[073h 0115   1]                       Length : 06
+[074h 0116   1]                 Processor ID : FF
+[075h 0117   2]        Flags (decoded below) : 0000
+                                    Polarity : 0
+                                Trigger Mode : 0
+[077h 0119   1]         Interrupt Input LINT : 01
+
+Raw Table Data: Length 120 (0x78)
+
+    0000: 41 50 49 43 78 00 00 00 01 ED 42 4F 43 48 53 20  // APICx.....BOCHS 
+    0010: 42 58 50 43 41 50 49 43 01 00 00 00 42 58 50 43  // BXPCAPIC....BXPC
+    0020: 01 00 00 00 00 00 E0 FE 01 00 00 00 00 08 00 00  // ................
+    0030: 01 00 00 00 01 0C 00 00 00 00 C0 FE 00 00 00 00  // ................
+    0040: 02 0A 00 00 02 00 00 00 00 00 02 0A 00 05 05 00  // ................
+    0050: 00 00 0D 00 02 0A 00 09 09 00 00 00 0D 00 02 0A  // ................
+    0060: 00 0A 0A 00 00 00 0D 00 02 0A 00 0B 0B 00 00 00  // ................
+    0070: 0D 00 04 06 FF 00 00 01                          // ........
diff --git a/tests/data/acpi/q35/APIC.ipmibt b/tests/data/acpi/q35/APIC.ipmibt
new file mode 100644
index 0000000000000000000000000000000000000000..84509e0ae4cabeb5ead3e42a4edfa50abddbc17d
GIT binary patch
literal 120
zcmZ<^@N}+VU|?W;>*Vk35v<@85#a0y6k`O6f!H9Lf#JbFFwFr}2jnsGfW!{`1CdNz
hKn!AlSgfo-nis_4<b<)ffC?aD+}vOm3)_F75db|X4FLcE

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/q35/APIC.ipmibt.dsl b/tests/data/acpi/q35/APIC.ipmibt.dsl
new file mode 100644
index 0000000000..127e21e2fe
--- /dev/null
+++ b/tests/data/acpi/q35/APIC.ipmibt.dsl
@@ -0,0 +1,104 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/APIC.ipmibt, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [APIC]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "APIC"    [Multiple APIC Description Table (MADT)]
+[004h 0004   4]                 Table Length : 00000078
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : ED
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCAPIC"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]           Local Apic Address : FEE00000
+[028h 0040   4]        Flags (decoded below) : 00000001
+                         PC-AT Compatibility : 1
+
+[02Ch 0044   1]                Subtable Type : 00 [Processor Local APIC]
+[02Dh 0045   1]                       Length : 08
+[02Eh 0046   1]                 Processor ID : 00
+[02Fh 0047   1]                Local Apic ID : 00
+[030h 0048   4]        Flags (decoded below) : 00000001
+                           Processor Enabled : 1
+                      Runtime Online Capable : 0
+
+[034h 0052   1]                Subtable Type : 01 [I/O APIC]
+[035h 0053   1]                       Length : 0C
+[036h 0054   1]                  I/O Apic ID : 00
+[037h 0055   1]                     Reserved : 00
+[038h 0056   4]                      Address : FEC00000
+[03Ch 0060   4]                    Interrupt : 00000000
+
+[040h 0064   1]                Subtable Type : 02 [Interrupt Source Override]
+[041h 0065   1]                       Length : 0A
+[042h 0066   1]                          Bus : 00
+[043h 0067   1]                       Source : 00
+[044h 0068   4]                    Interrupt : 00000002
+[048h 0072   2]        Flags (decoded below) : 0000
+                                    Polarity : 0
+                                Trigger Mode : 0
+
+[04Ah 0074   1]                Subtable Type : 02 [Interrupt Source Override]
+[04Bh 0075   1]                       Length : 0A
+[04Ch 0076   1]                          Bus : 00
+[04Dh 0077   1]                       Source : 05
+[04Eh 0078   4]                    Interrupt : 00000005
+[052h 0082   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[054h 0084   1]                Subtable Type : 02 [Interrupt Source Override]
+[055h 0085   1]                       Length : 0A
+[056h 0086   1]                          Bus : 00
+[057h 0087   1]                       Source : 09
+[058h 0088   4]                    Interrupt : 00000009
+[05Ch 0092   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[05Eh 0094   1]                Subtable Type : 02 [Interrupt Source Override]
+[05Fh 0095   1]                       Length : 0A
+[060h 0096   1]                          Bus : 00
+[061h 0097   1]                       Source : 0A
+[062h 0098   4]                    Interrupt : 0000000A
+[066h 0102   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[068h 0104   1]                Subtable Type : 02 [Interrupt Source Override]
+[069h 0105   1]                       Length : 0A
+[06Ah 0106   1]                          Bus : 00
+[06Bh 0107   1]                       Source : 0B
+[06Ch 0108   4]                    Interrupt : 0000000B
+[070h 0112   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[072h 0114   1]                Subtable Type : 04 [Local APIC NMI]
+[073h 0115   1]                       Length : 06
+[074h 0116   1]                 Processor ID : FF
+[075h 0117   2]        Flags (decoded below) : 0000
+                                    Polarity : 0
+                                Trigger Mode : 0
+[077h 0119   1]         Interrupt Input LINT : 01
+
+Raw Table Data: Length 120 (0x78)
+
+    0000: 41 50 49 43 78 00 00 00 01 ED 42 4F 43 48 53 20  // APICx.....BOCHS 
+    0010: 42 58 50 43 41 50 49 43 01 00 00 00 42 58 50 43  // BXPCAPIC....BXPC
+    0020: 01 00 00 00 00 00 E0 FE 01 00 00 00 00 08 00 00  // ................
+    0030: 01 00 00 00 01 0C 00 00 00 00 C0 FE 00 00 00 00  // ................
+    0040: 02 0A 00 00 02 00 00 00 00 00 02 0A 00 05 05 00  // ................
+    0050: 00 00 0D 00 02 0A 00 09 09 00 00 00 0D 00 02 0A  // ................
+    0060: 00 0A 0A 00 00 00 0D 00 02 0A 00 0B 0B 00 00 00  // ................
+    0070: 0D 00 04 06 FF 00 00 01                          // ........
diff --git a/tests/data/acpi/q35/APIC.memhp b/tests/data/acpi/q35/APIC.memhp
new file mode 100644
index 0000000000000000000000000000000000000000..84509e0ae4cabeb5ead3e42a4edfa50abddbc17d
GIT binary patch
literal 120
zcmZ<^@N}+VU|?W;>*Vk35v<@85#a0y6k`O6f!H9Lf#JbFFwFr}2jnsGfW!{`1CdNz
hKn!AlSgfo-nis_4<b<)ffC?aD+}vOm3)_F75db|X4FLcE

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/q35/APIC.memhp.dsl b/tests/data/acpi/q35/APIC.memhp.dsl
new file mode 100644
index 0000000000..1c0cb1dad1
--- /dev/null
+++ b/tests/data/acpi/q35/APIC.memhp.dsl
@@ -0,0 +1,104 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/APIC.memhp, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [APIC]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "APIC"    [Multiple APIC Description Table (MADT)]
+[004h 0004   4]                 Table Length : 00000078
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : ED
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCAPIC"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]           Local Apic Address : FEE00000
+[028h 0040   4]        Flags (decoded below) : 00000001
+                         PC-AT Compatibility : 1
+
+[02Ch 0044   1]                Subtable Type : 00 [Processor Local APIC]
+[02Dh 0045   1]                       Length : 08
+[02Eh 0046   1]                 Processor ID : 00
+[02Fh 0047   1]                Local Apic ID : 00
+[030h 0048   4]        Flags (decoded below) : 00000001
+                           Processor Enabled : 1
+                      Runtime Online Capable : 0
+
+[034h 0052   1]                Subtable Type : 01 [I/O APIC]
+[035h 0053   1]                       Length : 0C
+[036h 0054   1]                  I/O Apic ID : 00
+[037h 0055   1]                     Reserved : 00
+[038h 0056   4]                      Address : FEC00000
+[03Ch 0060   4]                    Interrupt : 00000000
+
+[040h 0064   1]                Subtable Type : 02 [Interrupt Source Override]
+[041h 0065   1]                       Length : 0A
+[042h 0066   1]                          Bus : 00
+[043h 0067   1]                       Source : 00
+[044h 0068   4]                    Interrupt : 00000002
+[048h 0072   2]        Flags (decoded below) : 0000
+                                    Polarity : 0
+                                Trigger Mode : 0
+
+[04Ah 0074   1]                Subtable Type : 02 [Interrupt Source Override]
+[04Bh 0075   1]                       Length : 0A
+[04Ch 0076   1]                          Bus : 00
+[04Dh 0077   1]                       Source : 05
+[04Eh 0078   4]                    Interrupt : 00000005
+[052h 0082   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[054h 0084   1]                Subtable Type : 02 [Interrupt Source Override]
+[055h 0085   1]                       Length : 0A
+[056h 0086   1]                          Bus : 00
+[057h 0087   1]                       Source : 09
+[058h 0088   4]                    Interrupt : 00000009
+[05Ch 0092   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[05Eh 0094   1]                Subtable Type : 02 [Interrupt Source Override]
+[05Fh 0095   1]                       Length : 0A
+[060h 0096   1]                          Bus : 00
+[061h 0097   1]                       Source : 0A
+[062h 0098   4]                    Interrupt : 0000000A
+[066h 0102   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[068h 0104   1]                Subtable Type : 02 [Interrupt Source Override]
+[069h 0105   1]                       Length : 0A
+[06Ah 0106   1]                          Bus : 00
+[06Bh 0107   1]                       Source : 0B
+[06Ch 0108   4]                    Interrupt : 0000000B
+[070h 0112   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[072h 0114   1]                Subtable Type : 04 [Local APIC NMI]
+[073h 0115   1]                       Length : 06
+[074h 0116   1]                 Processor ID : FF
+[075h 0117   2]        Flags (decoded below) : 0000
+                                    Polarity : 0
+                                Trigger Mode : 0
+[077h 0119   1]         Interrupt Input LINT : 01
+
+Raw Table Data: Length 120 (0x78)
+
+    0000: 41 50 49 43 78 00 00 00 01 ED 42 4F 43 48 53 20  // APICx.....BOCHS 
+    0010: 42 58 50 43 41 50 49 43 01 00 00 00 42 58 50 43  // BXPCAPIC....BXPC
+    0020: 01 00 00 00 00 00 E0 FE 01 00 00 00 00 08 00 00  // ................
+    0030: 01 00 00 00 01 0C 00 00 00 00 C0 FE 00 00 00 00  // ................
+    0040: 02 0A 00 00 02 00 00 00 00 00 02 0A 00 05 05 00  // ................
+    0050: 00 00 0D 00 02 0A 00 09 09 00 00 00 0D 00 02 0A  // ................
+    0060: 00 0A 0A 00 00 00 0D 00 02 0A 00 0B 0B 00 00 00  // ................
+    0070: 0D 00 04 06 FF 00 00 01                          // ........
diff --git a/tests/data/acpi/q35/APIC.mmio64 b/tests/data/acpi/q35/APIC.mmio64
new file mode 100644
index 0000000000000000000000000000000000000000..84509e0ae4cabeb5ead3e42a4edfa50abddbc17d
GIT binary patch
literal 120
zcmZ<^@N}+VU|?W;>*Vk35v<@85#a0y6k`O6f!H9Lf#JbFFwFr}2jnsGfW!{`1CdNz
hKn!AlSgfo-nis_4<b<)ffC?aD+}vOm3)_F75db|X4FLcE

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/q35/APIC.mmio64.dsl b/tests/data/acpi/q35/APIC.mmio64.dsl
new file mode 100644
index 0000000000..9a3df90766
--- /dev/null
+++ b/tests/data/acpi/q35/APIC.mmio64.dsl
@@ -0,0 +1,104 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/APIC.mmio64, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [APIC]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "APIC"    [Multiple APIC Description Table (MADT)]
+[004h 0004   4]                 Table Length : 00000078
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : ED
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCAPIC"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]           Local Apic Address : FEE00000
+[028h 0040   4]        Flags (decoded below) : 00000001
+                         PC-AT Compatibility : 1
+
+[02Ch 0044   1]                Subtable Type : 00 [Processor Local APIC]
+[02Dh 0045   1]                       Length : 08
+[02Eh 0046   1]                 Processor ID : 00
+[02Fh 0047   1]                Local Apic ID : 00
+[030h 0048   4]        Flags (decoded below) : 00000001
+                           Processor Enabled : 1
+                      Runtime Online Capable : 0
+
+[034h 0052   1]                Subtable Type : 01 [I/O APIC]
+[035h 0053   1]                       Length : 0C
+[036h 0054   1]                  I/O Apic ID : 00
+[037h 0055   1]                     Reserved : 00
+[038h 0056   4]                      Address : FEC00000
+[03Ch 0060   4]                    Interrupt : 00000000
+
+[040h 0064   1]                Subtable Type : 02 [Interrupt Source Override]
+[041h 0065   1]                       Length : 0A
+[042h 0066   1]                          Bus : 00
+[043h 0067   1]                       Source : 00
+[044h 0068   4]                    Interrupt : 00000002
+[048h 0072   2]        Flags (decoded below) : 0000
+                                    Polarity : 0
+                                Trigger Mode : 0
+
+[04Ah 0074   1]                Subtable Type : 02 [Interrupt Source Override]
+[04Bh 0075   1]                       Length : 0A
+[04Ch 0076   1]                          Bus : 00
+[04Dh 0077   1]                       Source : 05
+[04Eh 0078   4]                    Interrupt : 00000005
+[052h 0082   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[054h 0084   1]                Subtable Type : 02 [Interrupt Source Override]
+[055h 0085   1]                       Length : 0A
+[056h 0086   1]                          Bus : 00
+[057h 0087   1]                       Source : 09
+[058h 0088   4]                    Interrupt : 00000009
+[05Ch 0092   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[05Eh 0094   1]                Subtable Type : 02 [Interrupt Source Override]
+[05Fh 0095   1]                       Length : 0A
+[060h 0096   1]                          Bus : 00
+[061h 0097   1]                       Source : 0A
+[062h 0098   4]                    Interrupt : 0000000A
+[066h 0102   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[068h 0104   1]                Subtable Type : 02 [Interrupt Source Override]
+[069h 0105   1]                       Length : 0A
+[06Ah 0106   1]                          Bus : 00
+[06Bh 0107   1]                       Source : 0B
+[06Ch 0108   4]                    Interrupt : 0000000B
+[070h 0112   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[072h 0114   1]                Subtable Type : 04 [Local APIC NMI]
+[073h 0115   1]                       Length : 06
+[074h 0116   1]                 Processor ID : FF
+[075h 0117   2]        Flags (decoded below) : 0000
+                                    Polarity : 0
+                                Trigger Mode : 0
+[077h 0119   1]         Interrupt Input LINT : 01
+
+Raw Table Data: Length 120 (0x78)
+
+    0000: 41 50 49 43 78 00 00 00 01 ED 42 4F 43 48 53 20  // APICx.....BOCHS 
+    0010: 42 58 50 43 41 50 49 43 01 00 00 00 42 58 50 43  // BXPCAPIC....BXPC
+    0020: 01 00 00 00 00 00 E0 FE 01 00 00 00 00 08 00 00  // ................
+    0030: 01 00 00 00 01 0C 00 00 00 00 C0 FE 00 00 00 00  // ................
+    0040: 02 0A 00 00 02 00 00 00 00 00 02 0A 00 05 05 00  // ................
+    0050: 00 00 0D 00 02 0A 00 09 09 00 00 00 0D 00 02 0A  // ................
+    0060: 00 0A 0A 00 00 00 0D 00 02 0A 00 0B 0B 00 00 00  // ................
+    0070: 0D 00 04 06 FF 00 00 01                          // ........
diff --git a/tests/data/acpi/q35/APIC.numamem b/tests/data/acpi/q35/APIC.numamem
new file mode 100644
index 0000000000000000000000000000000000000000..84509e0ae4cabeb5ead3e42a4edfa50abddbc17d
GIT binary patch
literal 120
zcmZ<^@N}+VU|?W;>*Vk35v<@85#a0y6k`O6f!H9Lf#JbFFwFr}2jnsGfW!{`1CdNz
hKn!AlSgfo-nis_4<b<)ffC?aD+}vOm3)_F75db|X4FLcE

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/q35/APIC.numamem.dsl b/tests/data/acpi/q35/APIC.numamem.dsl
new file mode 100644
index 0000000000..f4c5480fd6
--- /dev/null
+++ b/tests/data/acpi/q35/APIC.numamem.dsl
@@ -0,0 +1,104 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/APIC.numamem, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [APIC]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "APIC"    [Multiple APIC Description Table (MADT)]
+[004h 0004   4]                 Table Length : 00000078
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : ED
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCAPIC"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]           Local Apic Address : FEE00000
+[028h 0040   4]        Flags (decoded below) : 00000001
+                         PC-AT Compatibility : 1
+
+[02Ch 0044   1]                Subtable Type : 00 [Processor Local APIC]
+[02Dh 0045   1]                       Length : 08
+[02Eh 0046   1]                 Processor ID : 00
+[02Fh 0047   1]                Local Apic ID : 00
+[030h 0048   4]        Flags (decoded below) : 00000001
+                           Processor Enabled : 1
+                      Runtime Online Capable : 0
+
+[034h 0052   1]                Subtable Type : 01 [I/O APIC]
+[035h 0053   1]                       Length : 0C
+[036h 0054   1]                  I/O Apic ID : 00
+[037h 0055   1]                     Reserved : 00
+[038h 0056   4]                      Address : FEC00000
+[03Ch 0060   4]                    Interrupt : 00000000
+
+[040h 0064   1]                Subtable Type : 02 [Interrupt Source Override]
+[041h 0065   1]                       Length : 0A
+[042h 0066   1]                          Bus : 00
+[043h 0067   1]                       Source : 00
+[044h 0068   4]                    Interrupt : 00000002
+[048h 0072   2]        Flags (decoded below) : 0000
+                                    Polarity : 0
+                                Trigger Mode : 0
+
+[04Ah 0074   1]                Subtable Type : 02 [Interrupt Source Override]
+[04Bh 0075   1]                       Length : 0A
+[04Ch 0076   1]                          Bus : 00
+[04Dh 0077   1]                       Source : 05
+[04Eh 0078   4]                    Interrupt : 00000005
+[052h 0082   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[054h 0084   1]                Subtable Type : 02 [Interrupt Source Override]
+[055h 0085   1]                       Length : 0A
+[056h 0086   1]                          Bus : 00
+[057h 0087   1]                       Source : 09
+[058h 0088   4]                    Interrupt : 00000009
+[05Ch 0092   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[05Eh 0094   1]                Subtable Type : 02 [Interrupt Source Override]
+[05Fh 0095   1]                       Length : 0A
+[060h 0096   1]                          Bus : 00
+[061h 0097   1]                       Source : 0A
+[062h 0098   4]                    Interrupt : 0000000A
+[066h 0102   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[068h 0104   1]                Subtable Type : 02 [Interrupt Source Override]
+[069h 0105   1]                       Length : 0A
+[06Ah 0106   1]                          Bus : 00
+[06Bh 0107   1]                       Source : 0B
+[06Ch 0108   4]                    Interrupt : 0000000B
+[070h 0112   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[072h 0114   1]                Subtable Type : 04 [Local APIC NMI]
+[073h 0115   1]                       Length : 06
+[074h 0116   1]                 Processor ID : FF
+[075h 0117   2]        Flags (decoded below) : 0000
+                                    Polarity : 0
+                                Trigger Mode : 0
+[077h 0119   1]         Interrupt Input LINT : 01
+
+Raw Table Data: Length 120 (0x78)
+
+    0000: 41 50 49 43 78 00 00 00 01 ED 42 4F 43 48 53 20  // APICx.....BOCHS 
+    0010: 42 58 50 43 41 50 49 43 01 00 00 00 42 58 50 43  // BXPCAPIC....BXPC
+    0020: 01 00 00 00 00 00 E0 FE 01 00 00 00 00 08 00 00  // ................
+    0030: 01 00 00 00 01 0C 00 00 00 00 C0 FE 00 00 00 00  // ................
+    0040: 02 0A 00 00 02 00 00 00 00 00 02 0A 00 05 05 00  // ................
+    0050: 00 00 0D 00 02 0A 00 09 09 00 00 00 0D 00 02 0A  // ................
+    0060: 00 0A 0A 00 00 00 0D 00 02 0A 00 0B 0B 00 00 00  // ................
+    0070: 0D 00 04 06 FF 00 00 01                          // ........
diff --git a/tests/data/acpi/q35/APIC.tis b/tests/data/acpi/q35/APIC.tis
new file mode 100644
index 0000000000000000000000000000000000000000..84509e0ae4cabeb5ead3e42a4edfa50abddbc17d
GIT binary patch
literal 120
zcmZ<^@N}+VU|?W;>*Vk35v<@85#a0y6k`O6f!H9Lf#JbFFwFr}2jnsGfW!{`1CdNz
hKn!AlSgfo-nis_4<b<)ffC?aD+}vOm3)_F75db|X4FLcE

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/q35/APIC.tis.dsl b/tests/data/acpi/q35/APIC.tis.dsl
new file mode 100644
index 0000000000..ca2373818e
--- /dev/null
+++ b/tests/data/acpi/q35/APIC.tis.dsl
@@ -0,0 +1,104 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/APIC.tis, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [APIC]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "APIC"    [Multiple APIC Description Table (MADT)]
+[004h 0004   4]                 Table Length : 00000078
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : ED
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCAPIC"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]           Local Apic Address : FEE00000
+[028h 0040   4]        Flags (decoded below) : 00000001
+                         PC-AT Compatibility : 1
+
+[02Ch 0044   1]                Subtable Type : 00 [Processor Local APIC]
+[02Dh 0045   1]                       Length : 08
+[02Eh 0046   1]                 Processor ID : 00
+[02Fh 0047   1]                Local Apic ID : 00
+[030h 0048   4]        Flags (decoded below) : 00000001
+                           Processor Enabled : 1
+                      Runtime Online Capable : 0
+
+[034h 0052   1]                Subtable Type : 01 [I/O APIC]
+[035h 0053   1]                       Length : 0C
+[036h 0054   1]                  I/O Apic ID : 00
+[037h 0055   1]                     Reserved : 00
+[038h 0056   4]                      Address : FEC00000
+[03Ch 0060   4]                    Interrupt : 00000000
+
+[040h 0064   1]                Subtable Type : 02 [Interrupt Source Override]
+[041h 0065   1]                       Length : 0A
+[042h 0066   1]                          Bus : 00
+[043h 0067   1]                       Source : 00
+[044h 0068   4]                    Interrupt : 00000002
+[048h 0072   2]        Flags (decoded below) : 0000
+                                    Polarity : 0
+                                Trigger Mode : 0
+
+[04Ah 0074   1]                Subtable Type : 02 [Interrupt Source Override]
+[04Bh 0075   1]                       Length : 0A
+[04Ch 0076   1]                          Bus : 00
+[04Dh 0077   1]                       Source : 05
+[04Eh 0078   4]                    Interrupt : 00000005
+[052h 0082   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[054h 0084   1]                Subtable Type : 02 [Interrupt Source Override]
+[055h 0085   1]                       Length : 0A
+[056h 0086   1]                          Bus : 00
+[057h 0087   1]                       Source : 09
+[058h 0088   4]                    Interrupt : 00000009
+[05Ch 0092   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[05Eh 0094   1]                Subtable Type : 02 [Interrupt Source Override]
+[05Fh 0095   1]                       Length : 0A
+[060h 0096   1]                          Bus : 00
+[061h 0097   1]                       Source : 0A
+[062h 0098   4]                    Interrupt : 0000000A
+[066h 0102   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[068h 0104   1]                Subtable Type : 02 [Interrupt Source Override]
+[069h 0105   1]                       Length : 0A
+[06Ah 0106   1]                          Bus : 00
+[06Bh 0107   1]                       Source : 0B
+[06Ch 0108   4]                    Interrupt : 0000000B
+[070h 0112   2]        Flags (decoded below) : 000D
+                                    Polarity : 1
+                                Trigger Mode : 3
+
+[072h 0114   1]                Subtable Type : 04 [Local APIC NMI]
+[073h 0115   1]                       Length : 06
+[074h 0116   1]                 Processor ID : FF
+[075h 0117   2]        Flags (decoded below) : 0000
+                                    Polarity : 0
+                                Trigger Mode : 0
+[077h 0119   1]         Interrupt Input LINT : 01
+
+Raw Table Data: Length 120 (0x78)
+
+    0000: 41 50 49 43 78 00 00 00 01 ED 42 4F 43 48 53 20  // APICx.....BOCHS 
+    0010: 42 58 50 43 41 50 49 43 01 00 00 00 42 58 50 43  // BXPCAPIC....BXPC
+    0020: 01 00 00 00 00 00 E0 FE 01 00 00 00 00 08 00 00  // ................
+    0030: 01 00 00 00 01 0C 00 00 00 00 C0 FE 00 00 00 00  // ................
+    0040: 02 0A 00 00 02 00 00 00 00 00 02 0A 00 05 05 00  // ................
+    0050: 00 00 0D 00 02 0A 00 09 09 00 00 00 0D 00 02 0A  // ................
+    0060: 00 0A 0A 00 00 00 0D 00 02 0A 00 0B 0B 00 00 00  // ................
+    0070: 0D 00 04 06 FF 00 00 01                          // ........
diff --git a/tests/data/acpi/q35/DSDT b/tests/data/acpi/q35/DSDT
index d6c26940b1a68d4184f6f2335924099aa28b130a..e7414e78563372fca4d2aab9d16c58c0ff8468f4 100644
GIT binary patch
delta 33
ocmexk^TmeCCD<jTM2>-hQE4NWiX5jKOH6#QQ@nuPWD7Z40H)^%$^ZZW

delta 42
xcmexj^T&qECD<jTMvj4jar;It6*(?HmYDcpr+5K3mdWOFw(KHo0nUCQ3;+zI3ef-n

diff --git a/tests/data/acpi/q35/DSDT.acpihmat b/tests/data/acpi/q35/DSDT.acpihmat
index 2b67045d6add69574499b97d938cca01949231b4..88434da261212b15264c892976775acd5c954aea 100644
GIT binary patch
delta 33
ocmZ4KzR;b^CD<iop)vyl<Nb|Xfy$h2EHUxHPVoYElT(##0jn<wjQ{`u

delta 42
xcmZ4JzS5n`CD<ior7{BpW64IYKxHmJmYDcpr+5K3mdPo~w(KHo0nUCQ3;_Fv3X}i<

diff --git a/tests/data/acpi/q35/DSDT.acpihmat.dsl b/tests/data/acpi/q35/DSDT.acpihmat.dsl
new file mode 100644
index 0000000000..a9e0d4144e
--- /dev/null
+++ b/tests/data/acpi/q35/DSDT.acpihmat.dsl
@@ -0,0 +1,3436 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembling to symbolic ASL+ operators
+ *
+ * Disassembly of tests/data/acpi/q35/DSDT.acpihmat, Tue Aug  4 11:14:15 2020
+ *
+ * Original Table Header:
+ *     Signature        "DSDT"
+ *     Length           0x0000232A (9002)
+ *     Revision         0x01 **** 32-bit table (V1), no 64-bit math support
+ *     Checksum         0x79
+ *     OEM ID           "BOCHS "
+ *     OEM Table ID     "BXPCDSDT"
+ *     OEM Revision     0x00000001 (1)
+ *     Compiler ID      "BXPC"
+ *     Compiler Version 0x00000001 (1)
+ */
+DefinitionBlock ("", "DSDT", 1, "BOCHS ", "BXPCDSDT", 0x00000001)
+{
+    Scope (\)
+    {
+        OperationRegion (DBG, SystemIO, 0x0402, One)
+        Field (DBG, ByteAcc, NoLock, Preserve)
+        {
+            DBGB,   8
+        }
+
+        Method (DBUG, 1, NotSerialized)
+        {
+            ToHexString (Arg0, Local0)
+            ToBuffer (Local0, Local0)
+            Local1 = (SizeOf (Local0) - One)
+            Local2 = Zero
+            While ((Local2 < Local1))
+            {
+                DBGB = DerefOf (Local0 [Local2])
+                Local2++
+            }
+
+            DBGB = 0x0A
+        }
+    }
+
+    Scope (_SB)
+    {
+        Device (PCI0)
+        {
+            Name (_HID, EisaId ("PNP0A08") /* PCI Express Bus */)  // _HID: Hardware ID
+            Name (_CID, EisaId ("PNP0A03") /* PCI Bus */)  // _CID: Compatible ID
+            Name (_ADR, Zero)  // _ADR: Address
+            Name (_UID, Zero)  // _UID: Unique ID
+            Method (_OSC, 4, NotSerialized)  // _OSC: Operating System Capabilities
+            {
+                CreateDWordField (Arg3, Zero, CDW1)
+                If ((Arg0 == ToUUID ("33db4d5b-1ff7-401c-9657-7441c03dd766") /* PCI Host Bridge Device */))
+                {
+                    CreateDWordField (Arg3, 0x04, CDW2)
+                    CreateDWordField (Arg3, 0x08, CDW3)
+                    Local0 = CDW3 /* \_SB_.PCI0._OSC.CDW3 */
+                    Local0 &= 0x1F
+                    If ((Arg1 != One))
+                    {
+                        CDW1 |= 0x08
+                    }
+
+                    If ((CDW3 != Local0))
+                    {
+                        CDW1 |= 0x10
+                    }
+
+                    CDW3 = Local0
+                }
+                Else
+                {
+                    CDW1 |= 0x04
+                }
+
+                Return (Arg3)
+            }
+        }
+    }
+
+    Scope (_SB)
+    {
+        Device (HPET)
+        {
+            Name (_HID, EisaId ("PNP0103") /* HPET System Timer */)  // _HID: Hardware ID
+            Name (_UID, Zero)  // _UID: Unique ID
+            OperationRegion (HPTM, SystemMemory, 0xFED00000, 0x0400)
+            Field (HPTM, DWordAcc, Lock, Preserve)
+            {
+                VEND,   32, 
+                PRD,    32
+            }
+
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Local0 = VEND /* \_SB_.HPET.VEND */
+                Local1 = PRD /* \_SB_.HPET.PRD_ */
+                Local0 >>= 0x10
+                If (((Local0 == Zero) || (Local0 == 0xFFFF)))
+                {
+                    Return (Zero)
+                }
+
+                If (((Local1 == Zero) || (Local1 > 0x05F5E100)))
+                {
+                    Return (Zero)
+                }
+
+                Return (0x0F)
+            }
+
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadOnly,
+                    0xFED00000,         // Address Base
+                    0x00000400,         // Address Length
+                    )
+            })
+        }
+    }
+
+    Scope (_SB.PCI0)
+    {
+        Device (ISA)
+        {
+            Name (_ADR, 0x001F0000)  // _ADR: Address
+            OperationRegion (PIRQ, PCI_Config, 0x60, 0x0C)
+        }
+    }
+
+    Scope (_SB.PCI0.ISA)
+    {
+        Device (KBD)
+        {
+            Name (_HID, EisaId ("PNP0303") /* IBM Enhanced Keyboard (101/102-key, PS/2 Mouse) */)  // _HID: Hardware ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0060,             // Range Minimum
+                    0x0060,             // Range Maximum
+                    0x01,               // Alignment
+                    0x01,               // Length
+                    )
+                IO (Decode16,
+                    0x0064,             // Range Minimum
+                    0x0064,             // Range Maximum
+                    0x01,               // Alignment
+                    0x01,               // Length
+                    )
+                IRQNoFlags ()
+                    {1}
+            })
+        }
+
+        Device (MOU)
+        {
+            Name (_HID, EisaId ("PNP0F13") /* PS/2 Mouse */)  // _HID: Hardware ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IRQNoFlags ()
+                    {12}
+            })
+        }
+
+        Device (LPT1)
+        {
+            Name (_HID, EisaId ("PNP0400") /* Standard LPT Parallel Port */)  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0378,             // Range Minimum
+                    0x0378,             // Range Maximum
+                    0x08,               // Alignment
+                    0x08,               // Length
+                    )
+                IRQNoFlags ()
+                    {7}
+            })
+        }
+
+        Device (COM1)
+        {
+            Name (_HID, EisaId ("PNP0501") /* 16550A-compatible COM Serial Port */)  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x03F8,             // Range Minimum
+                    0x03F8,             // Range Maximum
+                    0x00,               // Alignment
+                    0x08,               // Length
+                    )
+                IRQNoFlags ()
+                    {4}
+            })
+        }
+
+        Device (RTC)
+        {
+            Name (_HID, EisaId ("PNP0B00") /* AT Real-Time Clock */)  // _HID: Hardware ID
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0070,             // Range Minimum
+                    0x0070,             // Range Maximum
+                    0x01,               // Alignment
+                    0x08,               // Length
+                    )
+                IRQNoFlags ()
+                    {8}
+            })
+        }
+    }
+
+    Name (PICF, Zero)
+    Method (_PIC, 1, NotSerialized)  // _PIC: Interrupt Model
+    {
+        PICF = Arg0
+    }
+
+    Scope (_SB)
+    {
+        Scope (PCI0)
+        {
+            Name (PRTP, Package (0x80)
+            {
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }
+            })
+            Name (PRTA, Package (0x80)
+            {
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }
+            })
+            Method (_PRT, 0, NotSerialized)  // _PRT: PCI Routing Table
+            {
+                If ((PICF == Zero))
+                {
+                    Return (PRTP) /* \_SB_.PCI0.PRTP */
+                }
+                Else
+                {
+                    Return (PRTA) /* \_SB_.PCI0.PRTA */
+                }
+            }
+        }
+
+        Field (PCI0.ISA.PIRQ, ByteAcc, NoLock, Preserve)
+        {
+            PRQA,   8, 
+            PRQB,   8, 
+            PRQC,   8, 
+            PRQD,   8, 
+            Offset (0x08), 
+            PRQE,   8, 
+            PRQF,   8, 
+            PRQG,   8, 
+            PRQH,   8
+        }
+
+        Method (IQST, 1, NotSerialized)
+        {
+            If ((0x80 & Arg0))
+            {
+                Return (0x09)
+            }
+
+            Return (0x0B)
+        }
+
+        Method (IQCR, 1, Serialized)
+        {
+            Name (PRR0, ResourceTemplate ()
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, _Y00)
+                {
+                    0x00000000,
+                }
+            })
+            CreateDWordField (PRR0, \_SB.IQCR._Y00._INT, PRRI)  // _INT: Interrupts
+            PRRI = (Arg0 & 0x0F)
+            Return (PRR0) /* \_SB_.IQCR.PRR0 */
+        }
+
+        Device (LNKA)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, Zero)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQA))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQA |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQA))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQA = PRRI /* \_SB_.LNKA._SRS.PRRI */
+            }
+        }
+
+        Device (LNKB)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQB))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQB |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQB))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQB = PRRI /* \_SB_.LNKB._SRS.PRRI */
+            }
+        }
+
+        Device (LNKC)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x02)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQC))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQC |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQC))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQC = PRRI /* \_SB_.LNKC._SRS.PRRI */
+            }
+        }
+
+        Device (LNKD)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x03)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQD))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQD |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQD))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQD = PRRI /* \_SB_.LNKD._SRS.PRRI */
+            }
+        }
+
+        Device (LNKE)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x04)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQE))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQE |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQE))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQE = PRRI /* \_SB_.LNKE._SRS.PRRI */
+            }
+        }
+
+        Device (LNKF)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x05)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQF))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQF |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQF))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQF = PRRI /* \_SB_.LNKF._SRS.PRRI */
+            }
+        }
+
+        Device (LNKG)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x06)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQG))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQG |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQG))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQG = PRRI /* \_SB_.LNKG._SRS.PRRI */
+            }
+        }
+
+        Device (LNKH)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x07)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQH))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQH |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQH))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQH = PRRI /* \_SB_.LNKH._SRS.PRRI */
+            }
+        }
+
+        Device (GSIA)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x10)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000010,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000010,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIB)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x11)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000011,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000011,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIC)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x12)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000012,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000012,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSID)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x13)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000013,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000013,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIE)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x14)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000014,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000014,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIF)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x15)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000015,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000015,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIG)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x16)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000016,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000016,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIH)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x17)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000017,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000017,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+    }
+
+    Scope (_SB.PCI0)
+    {
+        Device (SMB0)
+        {
+            Name (_ADR, 0x001F0003)  // _ADR: Address
+        }
+    }
+
+    Scope (_SB)
+    {
+        Device (\_SB.PCI0.PRES)
+        {
+            Name (_HID, EisaId ("PNP0A06") /* Generic Container Device */)  // _HID: Hardware ID
+            Name (_UID, "CPU Hotplug resources")  // _UID: Unique ID
+            Mutex (CPLK, 0x00)
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0CD8,             // Range Minimum
+                    0x0CD8,             // Range Maximum
+                    0x01,               // Alignment
+                    0x0C,               // Length
+                    )
+            })
+            OperationRegion (PRST, SystemIO, 0x0CD8, 0x0C)
+            Field (PRST, ByteAcc, NoLock, WriteAsZeros)
+            {
+                Offset (0x04), 
+                CPEN,   1, 
+                CINS,   1, 
+                CRMV,   1, 
+                CEJ0,   1, 
+                Offset (0x05), 
+                CCMD,   8
+            }
+
+            Field (PRST, DWordAcc, NoLock, Preserve)
+            {
+                CSEL,   32, 
+                Offset (0x08), 
+                CDAT,   32
+            }
+
+            Method (_INI, 0, Serialized)  // _INI: Initialize
+            {
+                CSEL = Zero
+            }
+        }
+
+        Device (\_SB.CPUS)
+        {
+            Name (_HID, "ACPI0010" /* Processor Container Device */)  // _HID: Hardware ID
+            Name (_CID, EisaId ("PNP0A05") /* Generic Container Device */)  // _CID: Compatible ID
+            Method (CTFY, 2, NotSerialized)
+            {
+                If ((Arg0 == Zero))
+                {
+                    Notify (C000, Arg1)
+                }
+
+                If ((Arg0 == One))
+                {
+                    Notify (C001, Arg1)
+                }
+            }
+
+            Method (CSTA, 1, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                \_SB.PCI0.PRES.CSEL = Arg0
+                Local0 = Zero
+                If ((\_SB.PCI0.PRES.CPEN == One))
+                {
+                    Local0 = 0x0F
+                }
+
+                Release (\_SB.PCI0.PRES.CPLK)
+                Return (Local0)
+            }
+
+            Method (CEJ0, 1, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                \_SB.PCI0.PRES.CSEL = Arg0
+                \_SB.PCI0.PRES.CEJ0 = One
+                Release (\_SB.PCI0.PRES.CPLK)
+            }
+
+            Method (CSCN, 0, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                Local0 = One
+                While ((Local0 == One))
+                {
+                    Local0 = Zero
+                    \_SB.PCI0.PRES.CCMD = Zero
+                    If ((\_SB.PCI0.PRES.CINS == One))
+                    {
+                        CTFY (\_SB.PCI0.PRES.CDAT, One)
+                        \_SB.PCI0.PRES.CINS = One
+                        Local0 = One
+                    }
+                    ElseIf ((\_SB.PCI0.PRES.CRMV == One))
+                    {
+                        CTFY (\_SB.PCI0.PRES.CDAT, 0x03)
+                        \_SB.PCI0.PRES.CRMV = One
+                        Local0 = One
+                    }
+                }
+
+                Release (\_SB.PCI0.PRES.CPLK)
+            }
+
+            Method (COST, 4, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                \_SB.PCI0.PRES.CSEL = Arg0
+                \_SB.PCI0.PRES.CCMD = One
+                \_SB.PCI0.PRES.CDAT = Arg1
+                \_SB.PCI0.PRES.CCMD = 0x02
+                \_SB.PCI0.PRES.CDAT = Arg2
+                Release (\_SB.PCI0.PRES.CPLK)
+            }
+
+            Processor (C000, 0x00, 0x00000000, 0x00)
+            {
+                Method (_STA, 0, Serialized)  // _STA: Status
+                {
+                    Return (CSTA (Zero))
+                }
+
+                Name (_MAT, Buffer (0x08)  // _MAT: Multiple APIC Table Entry
+                {
+                     0x00, 0x08, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00   // ........
+                })
+                Method (_OST, 3, Serialized)  // _OST: OSPM Status Indication
+                {
+                    COST (Zero, Arg0, Arg1, Arg2)
+                }
+
+                Name (_PXM, Zero)  // _PXM: Device Proximity
+            }
+
+            Processor (C001, 0x01, 0x00000000, 0x00)
+            {
+                Method (_STA, 0, Serialized)  // _STA: Status
+                {
+                    Return (CSTA (One))
+                }
+
+                Name (_MAT, Buffer (0x08)  // _MAT: Multiple APIC Table Entry
+                {
+                     0x00, 0x08, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00   // ........
+                })
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    CEJ0 (One)
+                }
+
+                Method (_OST, 3, Serialized)  // _OST: OSPM Status Indication
+                {
+                    COST (One, Arg0, Arg1, Arg2)
+                }
+
+                Name (_PXM, Zero)  // _PXM: Device Proximity
+            }
+        }
+    }
+
+    Method (\_GPE._E02, 0, NotSerialized)  // _Exx: Edge-Triggered GPE, xx=0x00-0xFF
+    {
+        \_SB.CPUS.CSCN ()
+    }
+
+    Device (\_SB.PCI0.MHPD)
+    {
+        Name (_HID, "PNP0A06" /* Generic Container Device */)  // _HID: Hardware ID
+        Name (_UID, "Memory hotplug resources")  // _UID: Unique ID
+        Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+        {
+            IO (Decode16,
+                0x0A00,             // Range Minimum
+                0x0A00,             // Range Maximum
+                0x00,               // Alignment
+                0x18,               // Length
+                )
+        })
+        OperationRegion (HPMR, SystemIO, 0x0A00, 0x18)
+    }
+
+    Device (\_SB.MHPC)
+    {
+        Name (_HID, "PNP0A06" /* Generic Container Device */)  // _HID: Hardware ID
+        Name (_UID, "DIMM devices")  // _UID: Unique ID
+        Name (MDNR, 0x02)
+        Field (\_SB.PCI0.MHPD.HPMR, DWordAcc, NoLock, Preserve)
+        {
+            MRBL,   32, 
+            MRBH,   32, 
+            MRLL,   32, 
+            MRLH,   32, 
+            MPX,    32
+        }
+
+        Field (\_SB.PCI0.MHPD.HPMR, ByteAcc, NoLock, WriteAsZeros)
+        {
+            Offset (0x14), 
+            MES,    1, 
+            MINS,   1, 
+            MRMV,   1, 
+            MEJ,    1
+        }
+
+        Field (\_SB.PCI0.MHPD.HPMR, DWordAcc, NoLock, Preserve)
+        {
+            MSEL,   32, 
+            MOEV,   32, 
+            MOSC,   32
+        }
+
+        Method (_STA, 0, NotSerialized)  // _STA: Status
+        {
+            If ((MDNR == Zero))
+            {
+                Return (Zero)
+            }
+
+            Return (0x0B)
+        }
+
+        Mutex (MLCK, 0x00)
+        Method (MSCN, 0, NotSerialized)
+        {
+            If ((MDNR == Zero))
+            {
+                Return (Zero)
+            }
+
+            Local0 = Zero
+            Acquire (MLCK, 0xFFFF)
+            While ((Local0 < MDNR))
+            {
+                MSEL = Local0
+                If ((MINS == One))
+                {
+                    MTFY (Local0, One)
+                    MINS = One
+                }
+                ElseIf ((MRMV == One))
+                {
+                    MTFY (Local0, 0x03)
+                    MRMV = One
+                }
+
+                Local0 += One
+            }
+
+            Release (MLCK)
+            Return (One)
+        }
+
+        Method (MRST, 1, NotSerialized)
+        {
+            Local0 = Zero
+            Acquire (MLCK, 0xFFFF)
+            MSEL = ToInteger (Arg0)
+            If ((MES == One))
+            {
+                Local0 = 0x0F
+            }
+
+            Release (MLCK)
+            Return (Local0)
+        }
+
+        Method (MCRS, 1, Serialized)
+        {
+            Acquire (MLCK, 0xFFFF)
+            MSEL = ToInteger (Arg0)
+            Name (MR64, ResourceTemplate ()
+            {
+                QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
+                    0x0000000000000000, // Granularity
+                    0x0000000000000000, // Range Minimum
+                    0xFFFFFFFFFFFFFFFE, // Range Maximum
+                    0x0000000000000000, // Translation Offset
+                    0xFFFFFFFFFFFFFFFF, // Length
+                    ,, _Y01, AddressRangeMemory, TypeStatic)
+            })
+            CreateDWordField (MR64, \_SB.MHPC.MCRS._Y01._MIN, MINL)  // _MIN: Minimum Base Address
+            CreateDWordField (MR64, 0x12, MINH)
+            CreateDWordField (MR64, \_SB.MHPC.MCRS._Y01._LEN, LENL)  // _LEN: Length
+            CreateDWordField (MR64, 0x2A, LENH)
+            CreateDWordField (MR64, \_SB.MHPC.MCRS._Y01._MAX, MAXL)  // _MAX: Maximum Base Address
+            CreateDWordField (MR64, 0x1A, MAXH)
+            MINH = MRBH /* \_SB_.MHPC.MRBH */
+            MINL = MRBL /* \_SB_.MHPC.MRBL */
+            LENH = MRLH /* \_SB_.MHPC.MRLH */
+            LENL = MRLL /* \_SB_.MHPC.MRLL */
+            MAXL = (MINL + LENL) /* \_SB_.MHPC.MCRS.LENL */
+            MAXH = (MINH + LENH) /* \_SB_.MHPC.MCRS.LENH */
+            If ((MAXL < MINL))
+            {
+                MAXH += One
+            }
+
+            If ((MAXL < One))
+            {
+                MAXH -= One
+            }
+
+            MAXL -= One
+            If ((MAXH == Zero))
+            {
+                Name (MR32, ResourceTemplate ()
+                {
+                    DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
+                        0x00000000,         // Granularity
+                        0x00000000,         // Range Minimum
+                        0xFFFFFFFE,         // Range Maximum
+                        0x00000000,         // Translation Offset
+                        0xFFFFFFFF,         // Length
+                        ,, _Y02, AddressRangeMemory, TypeStatic)
+                })
+                CreateDWordField (MR32, \_SB.MHPC.MCRS._Y02._MIN, MIN)  // _MIN: Minimum Base Address
+                CreateDWordField (MR32, \_SB.MHPC.MCRS._Y02._MAX, MAX)  // _MAX: Maximum Base Address
+                CreateDWordField (MR32, \_SB.MHPC.MCRS._Y02._LEN, LEN)  // _LEN: Length
+                MIN = MINL /* \_SB_.MHPC.MCRS.MINL */
+                MAX = MAXL /* \_SB_.MHPC.MCRS.MAXL */
+                LEN = LENL /* \_SB_.MHPC.MCRS.LENL */
+                Release (MLCK)
+                Return (MR32) /* \_SB_.MHPC.MCRS.MR32 */
+            }
+
+            Release (MLCK)
+            Return (MR64) /* \_SB_.MHPC.MCRS.MR64 */
+        }
+
+        Method (MPXM, 1, NotSerialized)
+        {
+            Acquire (MLCK, 0xFFFF)
+            MSEL = ToInteger (Arg0)
+            Local0 = MPX /* \_SB_.MHPC.MPX_ */
+            Release (MLCK)
+            Return (Local0)
+        }
+
+        Method (MOST, 4, NotSerialized)
+        {
+            Acquire (MLCK, 0xFFFF)
+            MSEL = ToInteger (Arg0)
+            MOEV = Arg1
+            MOSC = Arg2
+            Release (MLCK)
+        }
+
+        Method (MEJ0, 2, NotSerialized)
+        {
+            Acquire (MLCK, 0xFFFF)
+            MSEL = ToInteger (Arg0)
+            MEJ = One
+            Release (MLCK)
+        }
+
+        Device (MP00)
+        {
+            Name (_UID, "0x00")  // _UID: Unique ID
+            Name (_HID, EisaId ("PNP0C80") /* Memory Device */)  // _HID: Hardware ID
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (MCRS (_UID))
+            }
+
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (MRST (_UID))
+            }
+
+            Method (_PXM, 0, NotSerialized)  // _PXM: Device Proximity
+            {
+                Return (MPXM (_UID))
+            }
+
+            Method (_OST, 3, NotSerialized)  // _OST: OSPM Status Indication
+            {
+                MOST (_UID, Arg0, Arg1, Arg2)
+            }
+
+            Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+            {
+                MEJ0 (_UID, Arg0)
+            }
+        }
+
+        Device (MP01)
+        {
+            Name (_UID, "0x01")  // _UID: Unique ID
+            Name (_HID, EisaId ("PNP0C80") /* Memory Device */)  // _HID: Hardware ID
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (MCRS (_UID))
+            }
+
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (MRST (_UID))
+            }
+
+            Method (_PXM, 0, NotSerialized)  // _PXM: Device Proximity
+            {
+                Return (MPXM (_UID))
+            }
+
+            Method (_OST, 3, NotSerialized)  // _OST: OSPM Status Indication
+            {
+                MOST (_UID, Arg0, Arg1, Arg2)
+            }
+
+            Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+            {
+                MEJ0 (_UID, Arg0)
+            }
+        }
+
+        Method (MTFY, 2, NotSerialized)
+        {
+            If ((Arg0 == Zero))
+            {
+                Notify (MP00, Arg1)
+            }
+
+            If ((Arg0 == One))
+            {
+                Notify (MP01, Arg1)
+            }
+        }
+    }
+
+    Method (\_GPE._E03, 0, NotSerialized)  // _Exx: Edge-Triggered GPE, xx=0x00-0xFF
+    {
+        \_SB.MHPC.MSCN ()
+    }
+
+    Scope (_GPE)
+    {
+        Name (_HID, "ACPI0006" /* GPE Block Device */)  // _HID: Hardware ID
+    }
+
+    Scope (\_SB.PCI0)
+    {
+        Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+        {
+            WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
+                0x0000,             // Granularity
+                0x0000,             // Range Minimum
+                0x00FF,             // Range Maximum
+                0x0000,             // Translation Offset
+                0x0100,             // Length
+                ,, )
+            IO (Decode16,
+                0x0CF8,             // Range Minimum
+                0x0CF8,             // Range Maximum
+                0x01,               // Alignment
+                0x08,               // Length
+                )
+            WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
+                0x0000,             // Granularity
+                0x0000,             // Range Minimum
+                0x0CF7,             // Range Maximum
+                0x0000,             // Translation Offset
+                0x0CF8,             // Length
+                ,, , TypeStatic, DenseTranslation)
+            WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
+                0x0000,             // Granularity
+                0x0D00,             // Range Minimum
+                0xFFFF,             // Range Maximum
+                0x0000,             // Translation Offset
+                0xF300,             // Length
+                ,, , TypeStatic, DenseTranslation)
+            DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
+                0x00000000,         // Granularity
+                0x000A0000,         // Range Minimum
+                0x000BFFFF,         // Range Maximum
+                0x00000000,         // Translation Offset
+                0x00020000,         // Length
+                ,, , AddressRangeMemory, TypeStatic)
+            DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
+                0x00000000,         // Granularity
+                0x08000000,         // Range Minimum
+                0xAFFFFFFF,         // Range Maximum
+                0x00000000,         // Translation Offset
+                0xA8000000,         // Length
+                ,, , AddressRangeMemory, TypeStatic)
+            DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
+                0x00000000,         // Granularity
+                0xC0000000,         // Range Minimum
+                0xFEBFFFFF,         // Range Maximum
+                0x00000000,         // Translation Offset
+                0x3EC00000,         // Length
+                ,, , AddressRangeMemory, TypeStatic)
+            QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
+                0x0000000000000000, // Granularity
+                0x00000001C0000000, // Range Minimum
+                0x00000009BFFFFFFF, // Range Maximum
+                0x0000000000000000, // Translation Offset
+                0x0000000800000000, // Length
+                ,, , AddressRangeMemory, TypeStatic)
+        })
+        Device (GPE0)
+        {
+            Name (_HID, "PNP0A06" /* Generic Container Device */)  // _HID: Hardware ID
+            Name (_UID, "GPE0 resources")  // _UID: Unique ID
+            Name (_STA, 0x0B)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0620,             // Range Minimum
+                    0x0620,             // Range Maximum
+                    0x01,               // Alignment
+                    0x10,               // Length
+                    )
+            })
+        }
+    }
+
+    Scope (\)
+    {
+        Name (_S3, Package (0x04)  // _S3_: S3 System State
+        {
+            One, 
+            One, 
+            Zero, 
+            Zero
+        })
+        Name (_S4, Package (0x04)  // _S4_: S4 System State
+        {
+            0x02, 
+            0x02, 
+            Zero, 
+            Zero
+        })
+        Name (_S5, Package (0x04)  // _S5_: S5 System State
+        {
+            Zero, 
+            Zero, 
+            Zero, 
+            Zero
+        })
+    }
+
+    Scope (\_SB.PCI0)
+    {
+        Device (FWCF)
+        {
+            Name (_HID, "QEMU0002")  // _HID: Hardware ID
+            Name (_STA, 0x0B)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0510,             // Range Minimum
+                    0x0510,             // Range Maximum
+                    0x01,               // Alignment
+                    0x0C,               // Length
+                    )
+            })
+        }
+    }
+
+    Scope (\_SB)
+    {
+        Scope (PCI0)
+        {
+            Device (S00)
+            {
+                Name (_ADR, Zero)  // _ADR: Address
+            }
+
+            Device (S08)
+            {
+                Name (_ADR, 0x00010000)  // _ADR: Address
+                Method (_S1D, 0, NotSerialized)  // _S1D: S1 Device State
+                {
+                    Return (Zero)
+                }
+
+                Method (_S2D, 0, NotSerialized)  // _S2D: S2 Device State
+                {
+                    Return (Zero)
+                }
+
+                Method (_S3D, 0, NotSerialized)  // _S3D: S3 Device State
+                {
+                    Return (Zero)
+                }
+            }
+
+            Method (PCNT, 0, NotSerialized)
+            {
+            }
+        }
+    }
+}
+
diff --git a/tests/data/acpi/q35/DSDT.bridge b/tests/data/acpi/q35/DSDT.bridge
index 0f6c9c68c81cddd2126eea8a7c336b8667202223..118476ff6101e11d6b1f2d3399241d7fd1a6f634 100644
GIT binary patch
delta 33
ocmeCRZL{Ta33dr-lVf0D+`W-YMUK;hH6}jTDPF)~vbmf;0GQ4QumAu6

delta 41
wcmZp(?X~4{33dtTm1AIF4ByD5BFE{^8WSJv6ffXD*<8+_U4$*b*)N0v0NR)dw*UYD

diff --git a/tests/data/acpi/q35/DSDT.bridge.dsl b/tests/data/acpi/q35/DSDT.bridge.dsl
new file mode 100644
index 0000000000..51fbeb729d
--- /dev/null
+++ b/tests/data/acpi/q35/DSDT.bridge.dsl
@@ -0,0 +1,3141 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembling to symbolic ASL+ operators
+ *
+ * Disassembly of tests/data/acpi/q35/DSDT.bridge, Tue Aug  4 11:14:15 2020
+ *
+ * Original Table Header:
+ *     Signature        "DSDT"
+ *     Length           0x00001E0F (7695)
+ *     Revision         0x01 **** 32-bit table (V1), no 64-bit math support
+ *     Checksum         0x4B
+ *     OEM ID           "BOCHS "
+ *     OEM Table ID     "BXPCDSDT"
+ *     OEM Revision     0x00000001 (1)
+ *     Compiler ID      "BXPC"
+ *     Compiler Version 0x00000001 (1)
+ */
+DefinitionBlock ("", "DSDT", 1, "BOCHS ", "BXPCDSDT", 0x00000001)
+{
+    Scope (\)
+    {
+        OperationRegion (DBG, SystemIO, 0x0402, One)
+        Field (DBG, ByteAcc, NoLock, Preserve)
+        {
+            DBGB,   8
+        }
+
+        Method (DBUG, 1, NotSerialized)
+        {
+            ToHexString (Arg0, Local0)
+            ToBuffer (Local0, Local0)
+            Local1 = (SizeOf (Local0) - One)
+            Local2 = Zero
+            While ((Local2 < Local1))
+            {
+                DBGB = DerefOf (Local0 [Local2])
+                Local2++
+            }
+
+            DBGB = 0x0A
+        }
+    }
+
+    Scope (_SB)
+    {
+        Device (PCI0)
+        {
+            Name (_HID, EisaId ("PNP0A08") /* PCI Express Bus */)  // _HID: Hardware ID
+            Name (_CID, EisaId ("PNP0A03") /* PCI Bus */)  // _CID: Compatible ID
+            Name (_ADR, Zero)  // _ADR: Address
+            Name (_UID, Zero)  // _UID: Unique ID
+            Method (_OSC, 4, NotSerialized)  // _OSC: Operating System Capabilities
+            {
+                CreateDWordField (Arg3, Zero, CDW1)
+                If ((Arg0 == ToUUID ("33db4d5b-1ff7-401c-9657-7441c03dd766") /* PCI Host Bridge Device */))
+                {
+                    CreateDWordField (Arg3, 0x04, CDW2)
+                    CreateDWordField (Arg3, 0x08, CDW3)
+                    Local0 = CDW3 /* \_SB_.PCI0._OSC.CDW3 */
+                    Local0 &= 0x1F
+                    If ((Arg1 != One))
+                    {
+                        CDW1 |= 0x08
+                    }
+
+                    If ((CDW3 != Local0))
+                    {
+                        CDW1 |= 0x10
+                    }
+
+                    CDW3 = Local0
+                }
+                Else
+                {
+                    CDW1 |= 0x04
+                }
+
+                Return (Arg3)
+            }
+        }
+    }
+
+    Scope (_SB)
+    {
+        Device (HPET)
+        {
+            Name (_HID, EisaId ("PNP0103") /* HPET System Timer */)  // _HID: Hardware ID
+            Name (_UID, Zero)  // _UID: Unique ID
+            OperationRegion (HPTM, SystemMemory, 0xFED00000, 0x0400)
+            Field (HPTM, DWordAcc, Lock, Preserve)
+            {
+                VEND,   32, 
+                PRD,    32
+            }
+
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Local0 = VEND /* \_SB_.HPET.VEND */
+                Local1 = PRD /* \_SB_.HPET.PRD_ */
+                Local0 >>= 0x10
+                If (((Local0 == Zero) || (Local0 == 0xFFFF)))
+                {
+                    Return (Zero)
+                }
+
+                If (((Local1 == Zero) || (Local1 > 0x05F5E100)))
+                {
+                    Return (Zero)
+                }
+
+                Return (0x0F)
+            }
+
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadOnly,
+                    0xFED00000,         // Address Base
+                    0x00000400,         // Address Length
+                    )
+            })
+        }
+    }
+
+    Scope (_SB.PCI0)
+    {
+        Device (ISA)
+        {
+            Name (_ADR, 0x001F0000)  // _ADR: Address
+            OperationRegion (PIRQ, PCI_Config, 0x60, 0x0C)
+        }
+    }
+
+    Scope (_SB.PCI0.ISA)
+    {
+        Device (KBD)
+        {
+            Name (_HID, EisaId ("PNP0303") /* IBM Enhanced Keyboard (101/102-key, PS/2 Mouse) */)  // _HID: Hardware ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0060,             // Range Minimum
+                    0x0060,             // Range Maximum
+                    0x01,               // Alignment
+                    0x01,               // Length
+                    )
+                IO (Decode16,
+                    0x0064,             // Range Minimum
+                    0x0064,             // Range Maximum
+                    0x01,               // Alignment
+                    0x01,               // Length
+                    )
+                IRQNoFlags ()
+                    {1}
+            })
+        }
+
+        Device (MOU)
+        {
+            Name (_HID, EisaId ("PNP0F13") /* PS/2 Mouse */)  // _HID: Hardware ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IRQNoFlags ()
+                    {12}
+            })
+        }
+
+        Device (LPT1)
+        {
+            Name (_HID, EisaId ("PNP0400") /* Standard LPT Parallel Port */)  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0378,             // Range Minimum
+                    0x0378,             // Range Maximum
+                    0x08,               // Alignment
+                    0x08,               // Length
+                    )
+                IRQNoFlags ()
+                    {7}
+            })
+        }
+
+        Device (COM1)
+        {
+            Name (_HID, EisaId ("PNP0501") /* 16550A-compatible COM Serial Port */)  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x03F8,             // Range Minimum
+                    0x03F8,             // Range Maximum
+                    0x00,               // Alignment
+                    0x08,               // Length
+                    )
+                IRQNoFlags ()
+                    {4}
+            })
+        }
+
+        Device (RTC)
+        {
+            Name (_HID, EisaId ("PNP0B00") /* AT Real-Time Clock */)  // _HID: Hardware ID
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0070,             // Range Minimum
+                    0x0070,             // Range Maximum
+                    0x01,               // Alignment
+                    0x08,               // Length
+                    )
+                IRQNoFlags ()
+                    {8}
+            })
+        }
+    }
+
+    Name (PICF, Zero)
+    Method (_PIC, 1, NotSerialized)  // _PIC: Interrupt Model
+    {
+        PICF = Arg0
+    }
+
+    Scope (_SB)
+    {
+        Scope (PCI0)
+        {
+            Name (PRTP, Package (0x80)
+            {
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }
+            })
+            Name (PRTA, Package (0x80)
+            {
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }
+            })
+            Method (_PRT, 0, NotSerialized)  // _PRT: PCI Routing Table
+            {
+                If ((PICF == Zero))
+                {
+                    Return (PRTP) /* \_SB_.PCI0.PRTP */
+                }
+                Else
+                {
+                    Return (PRTA) /* \_SB_.PCI0.PRTA */
+                }
+            }
+        }
+
+        Field (PCI0.ISA.PIRQ, ByteAcc, NoLock, Preserve)
+        {
+            PRQA,   8, 
+            PRQB,   8, 
+            PRQC,   8, 
+            PRQD,   8, 
+            Offset (0x08), 
+            PRQE,   8, 
+            PRQF,   8, 
+            PRQG,   8, 
+            PRQH,   8
+        }
+
+        Method (IQST, 1, NotSerialized)
+        {
+            If ((0x80 & Arg0))
+            {
+                Return (0x09)
+            }
+
+            Return (0x0B)
+        }
+
+        Method (IQCR, 1, Serialized)
+        {
+            Name (PRR0, ResourceTemplate ()
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, _Y00)
+                {
+                    0x00000000,
+                }
+            })
+            CreateDWordField (PRR0, \_SB.IQCR._Y00._INT, PRRI)  // _INT: Interrupts
+            PRRI = (Arg0 & 0x0F)
+            Return (PRR0) /* \_SB_.IQCR.PRR0 */
+        }
+
+        Device (LNKA)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, Zero)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQA))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQA |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQA))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQA = PRRI /* \_SB_.LNKA._SRS.PRRI */
+            }
+        }
+
+        Device (LNKB)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQB))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQB |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQB))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQB = PRRI /* \_SB_.LNKB._SRS.PRRI */
+            }
+        }
+
+        Device (LNKC)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x02)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQC))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQC |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQC))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQC = PRRI /* \_SB_.LNKC._SRS.PRRI */
+            }
+        }
+
+        Device (LNKD)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x03)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQD))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQD |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQD))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQD = PRRI /* \_SB_.LNKD._SRS.PRRI */
+            }
+        }
+
+        Device (LNKE)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x04)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQE))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQE |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQE))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQE = PRRI /* \_SB_.LNKE._SRS.PRRI */
+            }
+        }
+
+        Device (LNKF)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x05)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQF))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQF |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQF))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQF = PRRI /* \_SB_.LNKF._SRS.PRRI */
+            }
+        }
+
+        Device (LNKG)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x06)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQG))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQG |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQG))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQG = PRRI /* \_SB_.LNKG._SRS.PRRI */
+            }
+        }
+
+        Device (LNKH)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x07)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQH))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQH |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQH))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQH = PRRI /* \_SB_.LNKH._SRS.PRRI */
+            }
+        }
+
+        Device (GSIA)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x10)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000010,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000010,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIB)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x11)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000011,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000011,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIC)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x12)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000012,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000012,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSID)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x13)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000013,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000013,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIE)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x14)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000014,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000014,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIF)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x15)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000015,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000015,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIG)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x16)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000016,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000016,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIH)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x17)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000017,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000017,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+    }
+
+    Scope (_SB.PCI0)
+    {
+        Device (SMB0)
+        {
+            Name (_ADR, 0x001F0003)  // _ADR: Address
+        }
+    }
+
+    Scope (_SB)
+    {
+        Device (\_SB.PCI0.PRES)
+        {
+            Name (_HID, EisaId ("PNP0A06") /* Generic Container Device */)  // _HID: Hardware ID
+            Name (_UID, "CPU Hotplug resources")  // _UID: Unique ID
+            Mutex (CPLK, 0x00)
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0CD8,             // Range Minimum
+                    0x0CD8,             // Range Maximum
+                    0x01,               // Alignment
+                    0x0C,               // Length
+                    )
+            })
+            OperationRegion (PRST, SystemIO, 0x0CD8, 0x0C)
+            Field (PRST, ByteAcc, NoLock, WriteAsZeros)
+            {
+                Offset (0x04), 
+                CPEN,   1, 
+                CINS,   1, 
+                CRMV,   1, 
+                CEJ0,   1, 
+                Offset (0x05), 
+                CCMD,   8
+            }
+
+            Field (PRST, DWordAcc, NoLock, Preserve)
+            {
+                CSEL,   32, 
+                Offset (0x08), 
+                CDAT,   32
+            }
+
+            Method (_INI, 0, Serialized)  // _INI: Initialize
+            {
+                CSEL = Zero
+            }
+        }
+
+        Device (\_SB.CPUS)
+        {
+            Name (_HID, "ACPI0010" /* Processor Container Device */)  // _HID: Hardware ID
+            Name (_CID, EisaId ("PNP0A05") /* Generic Container Device */)  // _CID: Compatible ID
+            Method (CTFY, 2, NotSerialized)
+            {
+                If ((Arg0 == Zero))
+                {
+                    Notify (C000, Arg1)
+                }
+            }
+
+            Method (CSTA, 1, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                \_SB.PCI0.PRES.CSEL = Arg0
+                Local0 = Zero
+                If ((\_SB.PCI0.PRES.CPEN == One))
+                {
+                    Local0 = 0x0F
+                }
+
+                Release (\_SB.PCI0.PRES.CPLK)
+                Return (Local0)
+            }
+
+            Method (CEJ0, 1, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                \_SB.PCI0.PRES.CSEL = Arg0
+                \_SB.PCI0.PRES.CEJ0 = One
+                Release (\_SB.PCI0.PRES.CPLK)
+            }
+
+            Method (CSCN, 0, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                Local0 = One
+                While ((Local0 == One))
+                {
+                    Local0 = Zero
+                    \_SB.PCI0.PRES.CCMD = Zero
+                    If ((\_SB.PCI0.PRES.CINS == One))
+                    {
+                        CTFY (\_SB.PCI0.PRES.CDAT, One)
+                        \_SB.PCI0.PRES.CINS = One
+                        Local0 = One
+                    }
+                    ElseIf ((\_SB.PCI0.PRES.CRMV == One))
+                    {
+                        CTFY (\_SB.PCI0.PRES.CDAT, 0x03)
+                        \_SB.PCI0.PRES.CRMV = One
+                        Local0 = One
+                    }
+                }
+
+                Release (\_SB.PCI0.PRES.CPLK)
+            }
+
+            Method (COST, 4, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                \_SB.PCI0.PRES.CSEL = Arg0
+                \_SB.PCI0.PRES.CCMD = One
+                \_SB.PCI0.PRES.CDAT = Arg1
+                \_SB.PCI0.PRES.CCMD = 0x02
+                \_SB.PCI0.PRES.CDAT = Arg2
+                Release (\_SB.PCI0.PRES.CPLK)
+            }
+
+            Processor (C000, 0x00, 0x00000000, 0x00)
+            {
+                Method (_STA, 0, Serialized)  // _STA: Status
+                {
+                    Return (CSTA (Zero))
+                }
+
+                Name (_MAT, Buffer (0x08)  // _MAT: Multiple APIC Table Entry
+                {
+                     0x00, 0x08, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00   // ........
+                })
+                Method (_OST, 3, Serialized)  // _OST: OSPM Status Indication
+                {
+                    COST (Zero, Arg0, Arg1, Arg2)
+                }
+            }
+        }
+    }
+
+    Method (\_GPE._E02, 0, NotSerialized)  // _Exx: Edge-Triggered GPE, xx=0x00-0xFF
+    {
+        \_SB.CPUS.CSCN ()
+    }
+
+    Scope (_GPE)
+    {
+        Name (_HID, "ACPI0006" /* GPE Block Device */)  // _HID: Hardware ID
+    }
+
+    Scope (\_SB.PCI0)
+    {
+        Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+        {
+            WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
+                0x0000,             // Granularity
+                0x0000,             // Range Minimum
+                0x00FF,             // Range Maximum
+                0x0000,             // Translation Offset
+                0x0100,             // Length
+                ,, )
+            IO (Decode16,
+                0x0CF8,             // Range Minimum
+                0x0CF8,             // Range Maximum
+                0x01,               // Alignment
+                0x08,               // Length
+                )
+            WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
+                0x0000,             // Granularity
+                0x0000,             // Range Minimum
+                0x0CF7,             // Range Maximum
+                0x0000,             // Translation Offset
+                0x0CF8,             // Length
+                ,, , TypeStatic, DenseTranslation)
+            WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
+                0x0000,             // Granularity
+                0x0D00,             // Range Minimum
+                0xFFFF,             // Range Maximum
+                0x0000,             // Translation Offset
+                0xF300,             // Length
+                ,, , TypeStatic, DenseTranslation)
+            DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
+                0x00000000,         // Granularity
+                0x000A0000,         // Range Minimum
+                0x000BFFFF,         // Range Maximum
+                0x00000000,         // Translation Offset
+                0x00020000,         // Length
+                ,, , AddressRangeMemory, TypeStatic)
+            DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
+                0x00000000,         // Granularity
+                0x08000000,         // Range Minimum
+                0xAFFFFFFF,         // Range Maximum
+                0x00000000,         // Translation Offset
+                0xA8000000,         // Length
+                ,, , AddressRangeMemory, TypeStatic)
+            DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
+                0x00000000,         // Granularity
+                0xC0000000,         // Range Minimum
+                0xFEBFFFFF,         // Range Maximum
+                0x00000000,         // Translation Offset
+                0x3EC00000,         // Length
+                ,, , AddressRangeMemory, TypeStatic)
+            QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
+                0x0000000000000000, // Granularity
+                0x0000000100000000, // Range Minimum
+                0x00000008FFFFFFFF, // Range Maximum
+                0x0000000000000000, // Translation Offset
+                0x0000000800000000, // Length
+                ,, , AddressRangeMemory, TypeStatic)
+        })
+        Device (GPE0)
+        {
+            Name (_HID, "PNP0A06" /* Generic Container Device */)  // _HID: Hardware ID
+            Name (_UID, "GPE0 resources")  // _UID: Unique ID
+            Name (_STA, 0x0B)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0620,             // Range Minimum
+                    0x0620,             // Range Maximum
+                    0x01,               // Alignment
+                    0x10,               // Length
+                    )
+            })
+        }
+    }
+
+    Scope (\)
+    {
+        Name (_S3, Package (0x04)  // _S3_: S3 System State
+        {
+            One, 
+            One, 
+            Zero, 
+            Zero
+        })
+        Name (_S4, Package (0x04)  // _S4_: S4 System State
+        {
+            0x02, 
+            0x02, 
+            Zero, 
+            Zero
+        })
+        Name (_S5, Package (0x04)  // _S5_: S5 System State
+        {
+            Zero, 
+            Zero, 
+            Zero, 
+            Zero
+        })
+    }
+
+    Scope (\_SB.PCI0)
+    {
+        Device (FWCF)
+        {
+            Name (_HID, "QEMU0002")  // _HID: Hardware ID
+            Name (_STA, 0x0B)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0510,             // Range Minimum
+                    0x0510,             // Range Maximum
+                    0x01,               // Alignment
+                    0x0C,               // Length
+                    )
+            })
+        }
+    }
+
+    Scope (\_SB)
+    {
+        Scope (PCI0)
+        {
+            Device (S00)
+            {
+                Name (_ADR, Zero)  // _ADR: Address
+            }
+
+            Device (S08)
+            {
+                Name (_ADR, 0x00010000)  // _ADR: Address
+                Method (_S1D, 0, NotSerialized)  // _S1D: S1 Device State
+                {
+                    Return (Zero)
+                }
+
+                Method (_S2D, 0, NotSerialized)  // _S2D: S2 Device State
+                {
+                    Return (Zero)
+                }
+
+                Method (_S3D, 0, NotSerialized)  // _S3D: S3 Device State
+                {
+                    Return (Zero)
+                }
+            }
+
+            Device (S10)
+            {
+                Name (_ADR, 0x00020000)  // _ADR: Address
+            }
+
+            Method (PCNT, 0, NotSerialized)
+            {
+            }
+        }
+    }
+}
+
diff --git a/tests/data/acpi/q35/DSDT.cphp b/tests/data/acpi/q35/DSDT.cphp
index d7bedee7ff638f11b3bb84ef960364b409a49cce..69c5edf620529e995461ccba63b76a083f25b2b6 100644
GIT binary patch
delta 33
ocmX@(aKwSjCD<jzMS+2Vv27#Q7kN%MmYDcpr+5Lo$s7u{0IPfnO8@`>

delta 42
xcmX@&aK?elCD<jzM}dKXQF<fS7kMr}mYDcpr+5K3mdWf2w(KHo0nUCQ3;_Az3Q_<7

diff --git a/tests/data/acpi/q35/DSDT.cphp.dsl b/tests/data/acpi/q35/DSDT.cphp.dsl
new file mode 100644
index 0000000000..d3677e802c
--- /dev/null
+++ b/tests/data/acpi/q35/DSDT.cphp.dsl
@@ -0,0 +1,3283 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembling to symbolic ASL+ operators
+ *
+ * Disassembly of tests/data/acpi/q35/DSDT.cphp, Tue Aug  4 11:14:15 2020
+ *
+ * Original Table Header:
+ *     Signature        "DSDT"
+ *     Length           0x00001FCD (8141)
+ *     Revision         0x01 **** 32-bit table (V1), no 64-bit math support
+ *     Checksum         0x25
+ *     OEM ID           "BOCHS "
+ *     OEM Table ID     "BXPCDSDT"
+ *     OEM Revision     0x00000001 (1)
+ *     Compiler ID      "BXPC"
+ *     Compiler Version 0x00000001 (1)
+ */
+DefinitionBlock ("", "DSDT", 1, "BOCHS ", "BXPCDSDT", 0x00000001)
+{
+    Scope (\)
+    {
+        OperationRegion (DBG, SystemIO, 0x0402, One)
+        Field (DBG, ByteAcc, NoLock, Preserve)
+        {
+            DBGB,   8
+        }
+
+        Method (DBUG, 1, NotSerialized)
+        {
+            ToHexString (Arg0, Local0)
+            ToBuffer (Local0, Local0)
+            Local1 = (SizeOf (Local0) - One)
+            Local2 = Zero
+            While ((Local2 < Local1))
+            {
+                DBGB = DerefOf (Local0 [Local2])
+                Local2++
+            }
+
+            DBGB = 0x0A
+        }
+    }
+
+    Scope (_SB)
+    {
+        Device (PCI0)
+        {
+            Name (_HID, EisaId ("PNP0A08") /* PCI Express Bus */)  // _HID: Hardware ID
+            Name (_CID, EisaId ("PNP0A03") /* PCI Bus */)  // _CID: Compatible ID
+            Name (_ADR, Zero)  // _ADR: Address
+            Name (_UID, Zero)  // _UID: Unique ID
+            Method (_OSC, 4, NotSerialized)  // _OSC: Operating System Capabilities
+            {
+                CreateDWordField (Arg3, Zero, CDW1)
+                If ((Arg0 == ToUUID ("33db4d5b-1ff7-401c-9657-7441c03dd766") /* PCI Host Bridge Device */))
+                {
+                    CreateDWordField (Arg3, 0x04, CDW2)
+                    CreateDWordField (Arg3, 0x08, CDW3)
+                    Local0 = CDW3 /* \_SB_.PCI0._OSC.CDW3 */
+                    Local0 &= 0x1F
+                    If ((Arg1 != One))
+                    {
+                        CDW1 |= 0x08
+                    }
+
+                    If ((CDW3 != Local0))
+                    {
+                        CDW1 |= 0x10
+                    }
+
+                    CDW3 = Local0
+                }
+                Else
+                {
+                    CDW1 |= 0x04
+                }
+
+                Return (Arg3)
+            }
+        }
+    }
+
+    Scope (_SB)
+    {
+        Device (HPET)
+        {
+            Name (_HID, EisaId ("PNP0103") /* HPET System Timer */)  // _HID: Hardware ID
+            Name (_UID, Zero)  // _UID: Unique ID
+            OperationRegion (HPTM, SystemMemory, 0xFED00000, 0x0400)
+            Field (HPTM, DWordAcc, Lock, Preserve)
+            {
+                VEND,   32, 
+                PRD,    32
+            }
+
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Local0 = VEND /* \_SB_.HPET.VEND */
+                Local1 = PRD /* \_SB_.HPET.PRD_ */
+                Local0 >>= 0x10
+                If (((Local0 == Zero) || (Local0 == 0xFFFF)))
+                {
+                    Return (Zero)
+                }
+
+                If (((Local1 == Zero) || (Local1 > 0x05F5E100)))
+                {
+                    Return (Zero)
+                }
+
+                Return (0x0F)
+            }
+
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadOnly,
+                    0xFED00000,         // Address Base
+                    0x00000400,         // Address Length
+                    )
+            })
+        }
+    }
+
+    Scope (_SB.PCI0)
+    {
+        Device (ISA)
+        {
+            Name (_ADR, 0x001F0000)  // _ADR: Address
+            OperationRegion (PIRQ, PCI_Config, 0x60, 0x0C)
+        }
+    }
+
+    Scope (_SB.PCI0.ISA)
+    {
+        Device (KBD)
+        {
+            Name (_HID, EisaId ("PNP0303") /* IBM Enhanced Keyboard (101/102-key, PS/2 Mouse) */)  // _HID: Hardware ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0060,             // Range Minimum
+                    0x0060,             // Range Maximum
+                    0x01,               // Alignment
+                    0x01,               // Length
+                    )
+                IO (Decode16,
+                    0x0064,             // Range Minimum
+                    0x0064,             // Range Maximum
+                    0x01,               // Alignment
+                    0x01,               // Length
+                    )
+                IRQNoFlags ()
+                    {1}
+            })
+        }
+
+        Device (MOU)
+        {
+            Name (_HID, EisaId ("PNP0F13") /* PS/2 Mouse */)  // _HID: Hardware ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IRQNoFlags ()
+                    {12}
+            })
+        }
+
+        Device (LPT1)
+        {
+            Name (_HID, EisaId ("PNP0400") /* Standard LPT Parallel Port */)  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0378,             // Range Minimum
+                    0x0378,             // Range Maximum
+                    0x08,               // Alignment
+                    0x08,               // Length
+                    )
+                IRQNoFlags ()
+                    {7}
+            })
+        }
+
+        Device (COM1)
+        {
+            Name (_HID, EisaId ("PNP0501") /* 16550A-compatible COM Serial Port */)  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x03F8,             // Range Minimum
+                    0x03F8,             // Range Maximum
+                    0x00,               // Alignment
+                    0x08,               // Length
+                    )
+                IRQNoFlags ()
+                    {4}
+            })
+        }
+
+        Device (RTC)
+        {
+            Name (_HID, EisaId ("PNP0B00") /* AT Real-Time Clock */)  // _HID: Hardware ID
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0070,             // Range Minimum
+                    0x0070,             // Range Maximum
+                    0x01,               // Alignment
+                    0x08,               // Length
+                    )
+                IRQNoFlags ()
+                    {8}
+            })
+        }
+    }
+
+    Name (PICF, Zero)
+    Method (_PIC, 1, NotSerialized)  // _PIC: Interrupt Model
+    {
+        PICF = Arg0
+    }
+
+    Scope (_SB)
+    {
+        Scope (PCI0)
+        {
+            Name (PRTP, Package (0x80)
+            {
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }
+            })
+            Name (PRTA, Package (0x80)
+            {
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }
+            })
+            Method (_PRT, 0, NotSerialized)  // _PRT: PCI Routing Table
+            {
+                If ((PICF == Zero))
+                {
+                    Return (PRTP) /* \_SB_.PCI0.PRTP */
+                }
+                Else
+                {
+                    Return (PRTA) /* \_SB_.PCI0.PRTA */
+                }
+            }
+        }
+
+        Field (PCI0.ISA.PIRQ, ByteAcc, NoLock, Preserve)
+        {
+            PRQA,   8, 
+            PRQB,   8, 
+            PRQC,   8, 
+            PRQD,   8, 
+            Offset (0x08), 
+            PRQE,   8, 
+            PRQF,   8, 
+            PRQG,   8, 
+            PRQH,   8
+        }
+
+        Method (IQST, 1, NotSerialized)
+        {
+            If ((0x80 & Arg0))
+            {
+                Return (0x09)
+            }
+
+            Return (0x0B)
+        }
+
+        Method (IQCR, 1, Serialized)
+        {
+            Name (PRR0, ResourceTemplate ()
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, _Y00)
+                {
+                    0x00000000,
+                }
+            })
+            CreateDWordField (PRR0, \_SB.IQCR._Y00._INT, PRRI)  // _INT: Interrupts
+            PRRI = (Arg0 & 0x0F)
+            Return (PRR0) /* \_SB_.IQCR.PRR0 */
+        }
+
+        Device (LNKA)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, Zero)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQA))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQA |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQA))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQA = PRRI /* \_SB_.LNKA._SRS.PRRI */
+            }
+        }
+
+        Device (LNKB)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQB))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQB |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQB))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQB = PRRI /* \_SB_.LNKB._SRS.PRRI */
+            }
+        }
+
+        Device (LNKC)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x02)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQC))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQC |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQC))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQC = PRRI /* \_SB_.LNKC._SRS.PRRI */
+            }
+        }
+
+        Device (LNKD)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x03)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQD))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQD |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQD))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQD = PRRI /* \_SB_.LNKD._SRS.PRRI */
+            }
+        }
+
+        Device (LNKE)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x04)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQE))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQE |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQE))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQE = PRRI /* \_SB_.LNKE._SRS.PRRI */
+            }
+        }
+
+        Device (LNKF)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x05)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQF))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQF |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQF))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQF = PRRI /* \_SB_.LNKF._SRS.PRRI */
+            }
+        }
+
+        Device (LNKG)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x06)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQG))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQG |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQG))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQG = PRRI /* \_SB_.LNKG._SRS.PRRI */
+            }
+        }
+
+        Device (LNKH)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x07)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQH))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQH |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQH))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQH = PRRI /* \_SB_.LNKH._SRS.PRRI */
+            }
+        }
+
+        Device (GSIA)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x10)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000010,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000010,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIB)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x11)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000011,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000011,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIC)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x12)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000012,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000012,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSID)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x13)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000013,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000013,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIE)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x14)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000014,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000014,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIF)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x15)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000015,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000015,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIG)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x16)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000016,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000016,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIH)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x17)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000017,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000017,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+    }
+
+    Scope (_SB.PCI0)
+    {
+        Device (SMB0)
+        {
+            Name (_ADR, 0x001F0003)  // _ADR: Address
+        }
+    }
+
+    Scope (_SB)
+    {
+        Device (\_SB.PCI0.PRES)
+        {
+            Name (_HID, EisaId ("PNP0A06") /* Generic Container Device */)  // _HID: Hardware ID
+            Name (_UID, "CPU Hotplug resources")  // _UID: Unique ID
+            Mutex (CPLK, 0x00)
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0CD8,             // Range Minimum
+                    0x0CD8,             // Range Maximum
+                    0x01,               // Alignment
+                    0x0C,               // Length
+                    )
+            })
+            OperationRegion (PRST, SystemIO, 0x0CD8, 0x0C)
+            Field (PRST, ByteAcc, NoLock, WriteAsZeros)
+            {
+                Offset (0x04), 
+                CPEN,   1, 
+                CINS,   1, 
+                CRMV,   1, 
+                CEJ0,   1, 
+                Offset (0x05), 
+                CCMD,   8
+            }
+
+            Field (PRST, DWordAcc, NoLock, Preserve)
+            {
+                CSEL,   32, 
+                Offset (0x08), 
+                CDAT,   32
+            }
+
+            Method (_INI, 0, Serialized)  // _INI: Initialize
+            {
+                CSEL = Zero
+            }
+        }
+
+        Device (\_SB.CPUS)
+        {
+            Name (_HID, "ACPI0010" /* Processor Container Device */)  // _HID: Hardware ID
+            Name (_CID, EisaId ("PNP0A05") /* Generic Container Device */)  // _CID: Compatible ID
+            Method (CTFY, 2, NotSerialized)
+            {
+                If ((Arg0 == Zero))
+                {
+                    Notify (C000, Arg1)
+                }
+
+                If ((Arg0 == One))
+                {
+                    Notify (C001, Arg1)
+                }
+
+                If ((Arg0 == 0x02))
+                {
+                    Notify (C002, Arg1)
+                }
+
+                If ((Arg0 == 0x03))
+                {
+                    Notify (C003, Arg1)
+                }
+
+                If ((Arg0 == 0x04))
+                {
+                    Notify (C004, Arg1)
+                }
+
+                If ((Arg0 == 0x05))
+                {
+                    Notify (C005, Arg1)
+                }
+            }
+
+            Method (CSTA, 1, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                \_SB.PCI0.PRES.CSEL = Arg0
+                Local0 = Zero
+                If ((\_SB.PCI0.PRES.CPEN == One))
+                {
+                    Local0 = 0x0F
+                }
+
+                Release (\_SB.PCI0.PRES.CPLK)
+                Return (Local0)
+            }
+
+            Method (CEJ0, 1, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                \_SB.PCI0.PRES.CSEL = Arg0
+                \_SB.PCI0.PRES.CEJ0 = One
+                Release (\_SB.PCI0.PRES.CPLK)
+            }
+
+            Method (CSCN, 0, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                Local0 = One
+                While ((Local0 == One))
+                {
+                    Local0 = Zero
+                    \_SB.PCI0.PRES.CCMD = Zero
+                    If ((\_SB.PCI0.PRES.CINS == One))
+                    {
+                        CTFY (\_SB.PCI0.PRES.CDAT, One)
+                        \_SB.PCI0.PRES.CINS = One
+                        Local0 = One
+                    }
+                    ElseIf ((\_SB.PCI0.PRES.CRMV == One))
+                    {
+                        CTFY (\_SB.PCI0.PRES.CDAT, 0x03)
+                        \_SB.PCI0.PRES.CRMV = One
+                        Local0 = One
+                    }
+                }
+
+                Release (\_SB.PCI0.PRES.CPLK)
+            }
+
+            Method (COST, 4, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                \_SB.PCI0.PRES.CSEL = Arg0
+                \_SB.PCI0.PRES.CCMD = One
+                \_SB.PCI0.PRES.CDAT = Arg1
+                \_SB.PCI0.PRES.CCMD = 0x02
+                \_SB.PCI0.PRES.CDAT = Arg2
+                Release (\_SB.PCI0.PRES.CPLK)
+            }
+
+            Processor (C000, 0x00, 0x00000000, 0x00)
+            {
+                Method (_STA, 0, Serialized)  // _STA: Status
+                {
+                    Return (CSTA (Zero))
+                }
+
+                Name (_MAT, Buffer (0x08)  // _MAT: Multiple APIC Table Entry
+                {
+                     0x00, 0x08, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00   // ........
+                })
+                Method (_OST, 3, Serialized)  // _OST: OSPM Status Indication
+                {
+                    COST (Zero, Arg0, Arg1, Arg2)
+                }
+
+                Name (_PXM, Zero)  // _PXM: Device Proximity
+            }
+
+            Processor (C001, 0x01, 0x00000000, 0x00)
+            {
+                Method (_STA, 0, Serialized)  // _STA: Status
+                {
+                    Return (CSTA (One))
+                }
+
+                Name (_MAT, Buffer (0x08)  // _MAT: Multiple APIC Table Entry
+                {
+                     0x00, 0x08, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00   // ........
+                })
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    CEJ0 (One)
+                }
+
+                Method (_OST, 3, Serialized)  // _OST: OSPM Status Indication
+                {
+                    COST (One, Arg0, Arg1, Arg2)
+                }
+
+                Name (_PXM, Zero)  // _PXM: Device Proximity
+            }
+
+            Processor (C002, 0x02, 0x00000000, 0x00)
+            {
+                Method (_STA, 0, Serialized)  // _STA: Status
+                {
+                    Return (CSTA (0x02))
+                }
+
+                Name (_MAT, Buffer (0x08)  // _MAT: Multiple APIC Table Entry
+                {
+                     0x00, 0x08, 0x02, 0x02, 0x01, 0x00, 0x00, 0x00   // ........
+                })
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    CEJ0 (0x02)
+                }
+
+                Method (_OST, 3, Serialized)  // _OST: OSPM Status Indication
+                {
+                    COST (0x02, Arg0, Arg1, Arg2)
+                }
+
+                Name (_PXM, Zero)  // _PXM: Device Proximity
+            }
+
+            Processor (C003, 0x03, 0x00000000, 0x00)
+            {
+                Method (_STA, 0, Serialized)  // _STA: Status
+                {
+                    Return (CSTA (0x03))
+                }
+
+                Name (_MAT, Buffer (0x08)  // _MAT: Multiple APIC Table Entry
+                {
+                     0x00, 0x08, 0x03, 0x04, 0x01, 0x00, 0x00, 0x00   // ........
+                })
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    CEJ0 (0x03)
+                }
+
+                Method (_OST, 3, Serialized)  // _OST: OSPM Status Indication
+                {
+                    COST (0x03, Arg0, Arg1, Arg2)
+                }
+
+                Name (_PXM, One)  // _PXM: Device Proximity
+            }
+
+            Processor (C004, 0x04, 0x00000000, 0x00)
+            {
+                Method (_STA, 0, Serialized)  // _STA: Status
+                {
+                    Return (CSTA (0x04))
+                }
+
+                Name (_MAT, Buffer (0x08)  // _MAT: Multiple APIC Table Entry
+                {
+                     0x00, 0x08, 0x04, 0x05, 0x01, 0x00, 0x00, 0x00   // ........
+                })
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    CEJ0 (0x04)
+                }
+
+                Method (_OST, 3, Serialized)  // _OST: OSPM Status Indication
+                {
+                    COST (0x04, Arg0, Arg1, Arg2)
+                }
+
+                Name (_PXM, One)  // _PXM: Device Proximity
+            }
+
+            Processor (C005, 0x05, 0x00000000, 0x00)
+            {
+                Method (_STA, 0, Serialized)  // _STA: Status
+                {
+                    Return (CSTA (0x05))
+                }
+
+                Name (_MAT, Buffer (0x08)  // _MAT: Multiple APIC Table Entry
+                {
+                     0x00, 0x08, 0x05, 0x06, 0x01, 0x00, 0x00, 0x00   // ........
+                })
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    CEJ0 (0x05)
+                }
+
+                Method (_OST, 3, Serialized)  // _OST: OSPM Status Indication
+                {
+                    COST (0x05, Arg0, Arg1, Arg2)
+                }
+
+                Name (_PXM, One)  // _PXM: Device Proximity
+            }
+        }
+    }
+
+    Method (\_GPE._E02, 0, NotSerialized)  // _Exx: Edge-Triggered GPE, xx=0x00-0xFF
+    {
+        \_SB.CPUS.CSCN ()
+    }
+
+    Scope (_GPE)
+    {
+        Name (_HID, "ACPI0006" /* GPE Block Device */)  // _HID: Hardware ID
+    }
+
+    Scope (\_SB.PCI0)
+    {
+        Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+        {
+            WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
+                0x0000,             // Granularity
+                0x0000,             // Range Minimum
+                0x00FF,             // Range Maximum
+                0x0000,             // Translation Offset
+                0x0100,             // Length
+                ,, )
+            IO (Decode16,
+                0x0CF8,             // Range Minimum
+                0x0CF8,             // Range Maximum
+                0x01,               // Alignment
+                0x08,               // Length
+                )
+            WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
+                0x0000,             // Granularity
+                0x0000,             // Range Minimum
+                0x0CF7,             // Range Maximum
+                0x0000,             // Translation Offset
+                0x0CF8,             // Length
+                ,, , TypeStatic, DenseTranslation)
+            WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
+                0x0000,             // Granularity
+                0x0D00,             // Range Minimum
+                0xFFFF,             // Range Maximum
+                0x0000,             // Translation Offset
+                0xF300,             // Length
+                ,, , TypeStatic, DenseTranslation)
+            DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
+                0x00000000,         // Granularity
+                0x000A0000,         // Range Minimum
+                0x000BFFFF,         // Range Maximum
+                0x00000000,         // Translation Offset
+                0x00020000,         // Length
+                ,, , AddressRangeMemory, TypeStatic)
+            DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
+                0x00000000,         // Granularity
+                0x08000000,         // Range Minimum
+                0xAFFFFFFF,         // Range Maximum
+                0x00000000,         // Translation Offset
+                0xA8000000,         // Length
+                ,, , AddressRangeMemory, TypeStatic)
+            DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
+                0x00000000,         // Granularity
+                0xC0000000,         // Range Minimum
+                0xFEBFFFFF,         // Range Maximum
+                0x00000000,         // Translation Offset
+                0x3EC00000,         // Length
+                ,, , AddressRangeMemory, TypeStatic)
+            QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
+                0x0000000000000000, // Granularity
+                0x0000000100000000, // Range Minimum
+                0x00000008FFFFFFFF, // Range Maximum
+                0x0000000000000000, // Translation Offset
+                0x0000000800000000, // Length
+                ,, , AddressRangeMemory, TypeStatic)
+        })
+        Device (GPE0)
+        {
+            Name (_HID, "PNP0A06" /* Generic Container Device */)  // _HID: Hardware ID
+            Name (_UID, "GPE0 resources")  // _UID: Unique ID
+            Name (_STA, 0x0B)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0620,             // Range Minimum
+                    0x0620,             // Range Maximum
+                    0x01,               // Alignment
+                    0x10,               // Length
+                    )
+            })
+        }
+    }
+
+    Scope (\)
+    {
+        Name (_S3, Package (0x04)  // _S3_: S3 System State
+        {
+            One, 
+            One, 
+            Zero, 
+            Zero
+        })
+        Name (_S4, Package (0x04)  // _S4_: S4 System State
+        {
+            0x02, 
+            0x02, 
+            Zero, 
+            Zero
+        })
+        Name (_S5, Package (0x04)  // _S5_: S5 System State
+        {
+            Zero, 
+            Zero, 
+            Zero, 
+            Zero
+        })
+    }
+
+    Scope (\_SB.PCI0)
+    {
+        Device (FWCF)
+        {
+            Name (_HID, "QEMU0002")  // _HID: Hardware ID
+            Name (_STA, 0x0B)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0510,             // Range Minimum
+                    0x0510,             // Range Maximum
+                    0x01,               // Alignment
+                    0x0C,               // Length
+                    )
+            })
+        }
+    }
+
+    Scope (\_SB)
+    {
+        Scope (PCI0)
+        {
+            Device (S00)
+            {
+                Name (_ADR, Zero)  // _ADR: Address
+            }
+
+            Device (S08)
+            {
+                Name (_ADR, 0x00010000)  // _ADR: Address
+                Method (_S1D, 0, NotSerialized)  // _S1D: S1 Device State
+                {
+                    Return (Zero)
+                }
+
+                Method (_S2D, 0, NotSerialized)  // _S2D: S2 Device State
+                {
+                    Return (Zero)
+                }
+
+                Method (_S3D, 0, NotSerialized)  // _S3D: S3 Device State
+                {
+                    Return (Zero)
+                }
+            }
+
+            Method (PCNT, 0, NotSerialized)
+            {
+            }
+        }
+    }
+}
+
diff --git a/tests/data/acpi/q35/DSDT.dimmpxm b/tests/data/acpi/q35/DSDT.dimmpxm
index 13e80ae2e5c7606a7260d4cb3ab776488d0697d6..af41acba6e0117191ad8495a30ded7b0acc4d2ca 100644
GIT binary patch
delta 33
pcmez5`O1^aCD<k8l?np`W6(yfSt^`vEHUxHPVoYElh>)(0sz0?3UmMf

delta 42
ycmaFm`N@;ZCD<k8lL`X^<MWMNvsAeJSYqOXo#F-DSSGJkv1J!w3vl)eVE_O$8Vq{?

diff --git a/tests/data/acpi/q35/DSDT.dimmpxm.dsl b/tests/data/acpi/q35/DSDT.dimmpxm.dsl
new file mode 100644
index 0000000000..9cab76729e
--- /dev/null
+++ b/tests/data/acpi/q35/DSDT.dimmpxm.dsl
@@ -0,0 +1,3535 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembling to symbolic ASL+ operators
+ *
+ * Disassembly of tests/data/acpi/q35/DSDT.dimmpxm, Tue Aug  4 11:14:15 2020
+ *
+ * Original Table Header:
+ *     Signature        "DSDT"
+ *     Length           0x00002473 (9331)
+ *     Revision         0x01 **** 32-bit table (V1), no 64-bit math support
+ *     Checksum         0xEE
+ *     OEM ID           "BOCHS "
+ *     OEM Table ID     "BXPCDSDT"
+ *     OEM Revision     0x00000001 (1)
+ *     Compiler ID      "BXPC"
+ *     Compiler Version 0x00000001 (1)
+ */
+DefinitionBlock ("", "DSDT", 1, "BOCHS ", "BXPCDSDT", 0x00000001)
+{
+    External (_SB_.NVDR, UnknownObj)
+
+    Scope (\)
+    {
+        OperationRegion (DBG, SystemIO, 0x0402, One)
+        Field (DBG, ByteAcc, NoLock, Preserve)
+        {
+            DBGB,   8
+        }
+
+        Method (DBUG, 1, NotSerialized)
+        {
+            ToHexString (Arg0, Local0)
+            ToBuffer (Local0, Local0)
+            Local1 = (SizeOf (Local0) - One)
+            Local2 = Zero
+            While ((Local2 < Local1))
+            {
+                DBGB = DerefOf (Local0 [Local2])
+                Local2++
+            }
+
+            DBGB = 0x0A
+        }
+    }
+
+    Scope (_SB)
+    {
+        Device (PCI0)
+        {
+            Name (_HID, EisaId ("PNP0A08") /* PCI Express Bus */)  // _HID: Hardware ID
+            Name (_CID, EisaId ("PNP0A03") /* PCI Bus */)  // _CID: Compatible ID
+            Name (_ADR, Zero)  // _ADR: Address
+            Name (_UID, Zero)  // _UID: Unique ID
+            Method (_OSC, 4, NotSerialized)  // _OSC: Operating System Capabilities
+            {
+                CreateDWordField (Arg3, Zero, CDW1)
+                If ((Arg0 == ToUUID ("33db4d5b-1ff7-401c-9657-7441c03dd766") /* PCI Host Bridge Device */))
+                {
+                    CreateDWordField (Arg3, 0x04, CDW2)
+                    CreateDWordField (Arg3, 0x08, CDW3)
+                    Local0 = CDW3 /* \_SB_.PCI0._OSC.CDW3 */
+                    Local0 &= 0x1F
+                    If ((Arg1 != One))
+                    {
+                        CDW1 |= 0x08
+                    }
+
+                    If ((CDW3 != Local0))
+                    {
+                        CDW1 |= 0x10
+                    }
+
+                    CDW3 = Local0
+                }
+                Else
+                {
+                    CDW1 |= 0x04
+                }
+
+                Return (Arg3)
+            }
+        }
+    }
+
+    Scope (_SB)
+    {
+        Device (HPET)
+        {
+            Name (_HID, EisaId ("PNP0103") /* HPET System Timer */)  // _HID: Hardware ID
+            Name (_UID, Zero)  // _UID: Unique ID
+            OperationRegion (HPTM, SystemMemory, 0xFED00000, 0x0400)
+            Field (HPTM, DWordAcc, Lock, Preserve)
+            {
+                VEND,   32, 
+                PRD,    32
+            }
+
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Local0 = VEND /* \_SB_.HPET.VEND */
+                Local1 = PRD /* \_SB_.HPET.PRD_ */
+                Local0 >>= 0x10
+                If (((Local0 == Zero) || (Local0 == 0xFFFF)))
+                {
+                    Return (Zero)
+                }
+
+                If (((Local1 == Zero) || (Local1 > 0x05F5E100)))
+                {
+                    Return (Zero)
+                }
+
+                Return (0x0F)
+            }
+
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadOnly,
+                    0xFED00000,         // Address Base
+                    0x00000400,         // Address Length
+                    )
+            })
+        }
+    }
+
+    Scope (_SB.PCI0)
+    {
+        Device (ISA)
+        {
+            Name (_ADR, 0x001F0000)  // _ADR: Address
+            OperationRegion (PIRQ, PCI_Config, 0x60, 0x0C)
+        }
+    }
+
+    Scope (_SB.PCI0.ISA)
+    {
+        Device (KBD)
+        {
+            Name (_HID, EisaId ("PNP0303") /* IBM Enhanced Keyboard (101/102-key, PS/2 Mouse) */)  // _HID: Hardware ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0060,             // Range Minimum
+                    0x0060,             // Range Maximum
+                    0x01,               // Alignment
+                    0x01,               // Length
+                    )
+                IO (Decode16,
+                    0x0064,             // Range Minimum
+                    0x0064,             // Range Maximum
+                    0x01,               // Alignment
+                    0x01,               // Length
+                    )
+                IRQNoFlags ()
+                    {1}
+            })
+        }
+
+        Device (MOU)
+        {
+            Name (_HID, EisaId ("PNP0F13") /* PS/2 Mouse */)  // _HID: Hardware ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IRQNoFlags ()
+                    {12}
+            })
+        }
+
+        Device (LPT1)
+        {
+            Name (_HID, EisaId ("PNP0400") /* Standard LPT Parallel Port */)  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0378,             // Range Minimum
+                    0x0378,             // Range Maximum
+                    0x08,               // Alignment
+                    0x08,               // Length
+                    )
+                IRQNoFlags ()
+                    {7}
+            })
+        }
+
+        Device (COM1)
+        {
+            Name (_HID, EisaId ("PNP0501") /* 16550A-compatible COM Serial Port */)  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x03F8,             // Range Minimum
+                    0x03F8,             // Range Maximum
+                    0x00,               // Alignment
+                    0x08,               // Length
+                    )
+                IRQNoFlags ()
+                    {4}
+            })
+        }
+
+        Device (RTC)
+        {
+            Name (_HID, EisaId ("PNP0B00") /* AT Real-Time Clock */)  // _HID: Hardware ID
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0070,             // Range Minimum
+                    0x0070,             // Range Maximum
+                    0x01,               // Alignment
+                    0x08,               // Length
+                    )
+                IRQNoFlags ()
+                    {8}
+            })
+        }
+    }
+
+    Name (PICF, Zero)
+    Method (_PIC, 1, NotSerialized)  // _PIC: Interrupt Model
+    {
+        PICF = Arg0
+    }
+
+    Scope (_SB)
+    {
+        Scope (PCI0)
+        {
+            Name (PRTP, Package (0x80)
+            {
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }
+            })
+            Name (PRTA, Package (0x80)
+            {
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }
+            })
+            Method (_PRT, 0, NotSerialized)  // _PRT: PCI Routing Table
+            {
+                If ((PICF == Zero))
+                {
+                    Return (PRTP) /* \_SB_.PCI0.PRTP */
+                }
+                Else
+                {
+                    Return (PRTA) /* \_SB_.PCI0.PRTA */
+                }
+            }
+        }
+
+        Field (PCI0.ISA.PIRQ, ByteAcc, NoLock, Preserve)
+        {
+            PRQA,   8, 
+            PRQB,   8, 
+            PRQC,   8, 
+            PRQD,   8, 
+            Offset (0x08), 
+            PRQE,   8, 
+            PRQF,   8, 
+            PRQG,   8, 
+            PRQH,   8
+        }
+
+        Method (IQST, 1, NotSerialized)
+        {
+            If ((0x80 & Arg0))
+            {
+                Return (0x09)
+            }
+
+            Return (0x0B)
+        }
+
+        Method (IQCR, 1, Serialized)
+        {
+            Name (PRR0, ResourceTemplate ()
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, _Y00)
+                {
+                    0x00000000,
+                }
+            })
+            CreateDWordField (PRR0, \_SB.IQCR._Y00._INT, PRRI)  // _INT: Interrupts
+            PRRI = (Arg0 & 0x0F)
+            Return (PRR0) /* \_SB_.IQCR.PRR0 */
+        }
+
+        Device (LNKA)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, Zero)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQA))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQA |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQA))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQA = PRRI /* \_SB_.LNKA._SRS.PRRI */
+            }
+        }
+
+        Device (LNKB)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQB))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQB |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQB))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQB = PRRI /* \_SB_.LNKB._SRS.PRRI */
+            }
+        }
+
+        Device (LNKC)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x02)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQC))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQC |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQC))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQC = PRRI /* \_SB_.LNKC._SRS.PRRI */
+            }
+        }
+
+        Device (LNKD)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x03)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQD))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQD |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQD))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQD = PRRI /* \_SB_.LNKD._SRS.PRRI */
+            }
+        }
+
+        Device (LNKE)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x04)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQE))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQE |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQE))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQE = PRRI /* \_SB_.LNKE._SRS.PRRI */
+            }
+        }
+
+        Device (LNKF)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x05)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQF))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQF |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQF))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQF = PRRI /* \_SB_.LNKF._SRS.PRRI */
+            }
+        }
+
+        Device (LNKG)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x06)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQG))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQG |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQG))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQG = PRRI /* \_SB_.LNKG._SRS.PRRI */
+            }
+        }
+
+        Device (LNKH)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x07)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQH))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQH |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQH))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQH = PRRI /* \_SB_.LNKH._SRS.PRRI */
+            }
+        }
+
+        Device (GSIA)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x10)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000010,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000010,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIB)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x11)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000011,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000011,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIC)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x12)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000012,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000012,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSID)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x13)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000013,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000013,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIE)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x14)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000014,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000014,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIF)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x15)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000015,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000015,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIG)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x16)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000016,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000016,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIH)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x17)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000017,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000017,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+    }
+
+    Scope (_SB.PCI0)
+    {
+        Device (SMB0)
+        {
+            Name (_ADR, 0x001F0003)  // _ADR: Address
+        }
+    }
+
+    Scope (_SB)
+    {
+        Device (\_SB.PCI0.PRES)
+        {
+            Name (_HID, EisaId ("PNP0A06") /* Generic Container Device */)  // _HID: Hardware ID
+            Name (_UID, "CPU Hotplug resources")  // _UID: Unique ID
+            Mutex (CPLK, 0x00)
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0CD8,             // Range Minimum
+                    0x0CD8,             // Range Maximum
+                    0x01,               // Alignment
+                    0x0C,               // Length
+                    )
+            })
+            OperationRegion (PRST, SystemIO, 0x0CD8, 0x0C)
+            Field (PRST, ByteAcc, NoLock, WriteAsZeros)
+            {
+                Offset (0x04), 
+                CPEN,   1, 
+                CINS,   1, 
+                CRMV,   1, 
+                CEJ0,   1, 
+                Offset (0x05), 
+                CCMD,   8
+            }
+
+            Field (PRST, DWordAcc, NoLock, Preserve)
+            {
+                CSEL,   32, 
+                Offset (0x08), 
+                CDAT,   32
+            }
+
+            Method (_INI, 0, Serialized)  // _INI: Initialize
+            {
+                CSEL = Zero
+            }
+        }
+
+        Device (\_SB.CPUS)
+        {
+            Name (_HID, "ACPI0010" /* Processor Container Device */)  // _HID: Hardware ID
+            Name (_CID, EisaId ("PNP0A05") /* Generic Container Device */)  // _CID: Compatible ID
+            Method (CTFY, 2, NotSerialized)
+            {
+                If ((Arg0 == Zero))
+                {
+                    Notify (C000, Arg1)
+                }
+
+                If ((Arg0 == One))
+                {
+                    Notify (C001, Arg1)
+                }
+
+                If ((Arg0 == 0x02))
+                {
+                    Notify (C002, Arg1)
+                }
+
+                If ((Arg0 == 0x03))
+                {
+                    Notify (C003, Arg1)
+                }
+            }
+
+            Method (CSTA, 1, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                \_SB.PCI0.PRES.CSEL = Arg0
+                Local0 = Zero
+                If ((\_SB.PCI0.PRES.CPEN == One))
+                {
+                    Local0 = 0x0F
+                }
+
+                Release (\_SB.PCI0.PRES.CPLK)
+                Return (Local0)
+            }
+
+            Method (CEJ0, 1, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                \_SB.PCI0.PRES.CSEL = Arg0
+                \_SB.PCI0.PRES.CEJ0 = One
+                Release (\_SB.PCI0.PRES.CPLK)
+            }
+
+            Method (CSCN, 0, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                Local0 = One
+                While ((Local0 == One))
+                {
+                    Local0 = Zero
+                    \_SB.PCI0.PRES.CCMD = Zero
+                    If ((\_SB.PCI0.PRES.CINS == One))
+                    {
+                        CTFY (\_SB.PCI0.PRES.CDAT, One)
+                        \_SB.PCI0.PRES.CINS = One
+                        Local0 = One
+                    }
+                    ElseIf ((\_SB.PCI0.PRES.CRMV == One))
+                    {
+                        CTFY (\_SB.PCI0.PRES.CDAT, 0x03)
+                        \_SB.PCI0.PRES.CRMV = One
+                        Local0 = One
+                    }
+                }
+
+                Release (\_SB.PCI0.PRES.CPLK)
+            }
+
+            Method (COST, 4, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                \_SB.PCI0.PRES.CSEL = Arg0
+                \_SB.PCI0.PRES.CCMD = One
+                \_SB.PCI0.PRES.CDAT = Arg1
+                \_SB.PCI0.PRES.CCMD = 0x02
+                \_SB.PCI0.PRES.CDAT = Arg2
+                Release (\_SB.PCI0.PRES.CPLK)
+            }
+
+            Processor (C000, 0x00, 0x00000000, 0x00)
+            {
+                Method (_STA, 0, Serialized)  // _STA: Status
+                {
+                    Return (CSTA (Zero))
+                }
+
+                Name (_MAT, Buffer (0x08)  // _MAT: Multiple APIC Table Entry
+                {
+                     0x00, 0x08, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00   // ........
+                })
+                Method (_OST, 3, Serialized)  // _OST: OSPM Status Indication
+                {
+                    COST (Zero, Arg0, Arg1, Arg2)
+                }
+
+                Name (_PXM, Zero)  // _PXM: Device Proximity
+            }
+
+            Processor (C001, 0x01, 0x00000000, 0x00)
+            {
+                Method (_STA, 0, Serialized)  // _STA: Status
+                {
+                    Return (CSTA (One))
+                }
+
+                Name (_MAT, Buffer (0x08)  // _MAT: Multiple APIC Table Entry
+                {
+                     0x00, 0x08, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00   // ........
+                })
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    CEJ0 (One)
+                }
+
+                Method (_OST, 3, Serialized)  // _OST: OSPM Status Indication
+                {
+                    COST (One, Arg0, Arg1, Arg2)
+                }
+
+                Name (_PXM, One)  // _PXM: Device Proximity
+            }
+
+            Processor (C002, 0x02, 0x00000000, 0x00)
+            {
+                Method (_STA, 0, Serialized)  // _STA: Status
+                {
+                    Return (CSTA (0x02))
+                }
+
+                Name (_MAT, Buffer (0x08)  // _MAT: Multiple APIC Table Entry
+                {
+                     0x00, 0x08, 0x02, 0x02, 0x01, 0x00, 0x00, 0x00   // ........
+                })
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    CEJ0 (0x02)
+                }
+
+                Method (_OST, 3, Serialized)  // _OST: OSPM Status Indication
+                {
+                    COST (0x02, Arg0, Arg1, Arg2)
+                }
+
+                Name (_PXM, 0x02)  // _PXM: Device Proximity
+            }
+
+            Processor (C003, 0x03, 0x00000000, 0x00)
+            {
+                Method (_STA, 0, Serialized)  // _STA: Status
+                {
+                    Return (CSTA (0x03))
+                }
+
+                Name (_MAT, Buffer (0x08)  // _MAT: Multiple APIC Table Entry
+                {
+                     0x00, 0x08, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00   // ........
+                })
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    CEJ0 (0x03)
+                }
+
+                Method (_OST, 3, Serialized)  // _OST: OSPM Status Indication
+                {
+                    COST (0x03, Arg0, Arg1, Arg2)
+                }
+
+                Name (_PXM, 0x03)  // _PXM: Device Proximity
+            }
+        }
+    }
+
+    Method (\_GPE._E02, 0, NotSerialized)  // _Exx: Edge-Triggered GPE, xx=0x00-0xFF
+    {
+        \_SB.CPUS.CSCN ()
+    }
+
+    Device (\_SB.PCI0.MHPD)
+    {
+        Name (_HID, "PNP0A06" /* Generic Container Device */)  // _HID: Hardware ID
+        Name (_UID, "Memory hotplug resources")  // _UID: Unique ID
+        Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+        {
+            IO (Decode16,
+                0x0A00,             // Range Minimum
+                0x0A00,             // Range Maximum
+                0x00,               // Alignment
+                0x18,               // Length
+                )
+        })
+        OperationRegion (HPMR, SystemIO, 0x0A00, 0x18)
+    }
+
+    Device (\_SB.MHPC)
+    {
+        Name (_HID, "PNP0A06" /* Generic Container Device */)  // _HID: Hardware ID
+        Name (_UID, "DIMM devices")  // _UID: Unique ID
+        Name (MDNR, 0x03)
+        Field (\_SB.PCI0.MHPD.HPMR, DWordAcc, NoLock, Preserve)
+        {
+            MRBL,   32, 
+            MRBH,   32, 
+            MRLL,   32, 
+            MRLH,   32, 
+            MPX,    32
+        }
+
+        Field (\_SB.PCI0.MHPD.HPMR, ByteAcc, NoLock, WriteAsZeros)
+        {
+            Offset (0x14), 
+            MES,    1, 
+            MINS,   1, 
+            MRMV,   1, 
+            MEJ,    1
+        }
+
+        Field (\_SB.PCI0.MHPD.HPMR, DWordAcc, NoLock, Preserve)
+        {
+            MSEL,   32, 
+            MOEV,   32, 
+            MOSC,   32
+        }
+
+        Method (_STA, 0, NotSerialized)  // _STA: Status
+        {
+            If ((MDNR == Zero))
+            {
+                Return (Zero)
+            }
+
+            Return (0x0B)
+        }
+
+        Mutex (MLCK, 0x00)
+        Method (MSCN, 0, NotSerialized)
+        {
+            If ((MDNR == Zero))
+            {
+                Return (Zero)
+            }
+
+            Local0 = Zero
+            Acquire (MLCK, 0xFFFF)
+            While ((Local0 < MDNR))
+            {
+                MSEL = Local0
+                If ((MINS == One))
+                {
+                    MTFY (Local0, One)
+                    MINS = One
+                }
+                ElseIf ((MRMV == One))
+                {
+                    MTFY (Local0, 0x03)
+                    MRMV = One
+                }
+
+                Local0 += One
+            }
+
+            Release (MLCK)
+            Return (One)
+        }
+
+        Method (MRST, 1, NotSerialized)
+        {
+            Local0 = Zero
+            Acquire (MLCK, 0xFFFF)
+            MSEL = ToInteger (Arg0)
+            If ((MES == One))
+            {
+                Local0 = 0x0F
+            }
+
+            Release (MLCK)
+            Return (Local0)
+        }
+
+        Method (MCRS, 1, Serialized)
+        {
+            Acquire (MLCK, 0xFFFF)
+            MSEL = ToInteger (Arg0)
+            Name (MR64, ResourceTemplate ()
+            {
+                QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
+                    0x0000000000000000, // Granularity
+                    0x0000000000000000, // Range Minimum
+                    0xFFFFFFFFFFFFFFFE, // Range Maximum
+                    0x0000000000000000, // Translation Offset
+                    0xFFFFFFFFFFFFFFFF, // Length
+                    ,, _Y01, AddressRangeMemory, TypeStatic)
+            })
+            CreateDWordField (MR64, \_SB.MHPC.MCRS._Y01._MIN, MINL)  // _MIN: Minimum Base Address
+            CreateDWordField (MR64, 0x12, MINH)
+            CreateDWordField (MR64, \_SB.MHPC.MCRS._Y01._LEN, LENL)  // _LEN: Length
+            CreateDWordField (MR64, 0x2A, LENH)
+            CreateDWordField (MR64, \_SB.MHPC.MCRS._Y01._MAX, MAXL)  // _MAX: Maximum Base Address
+            CreateDWordField (MR64, 0x1A, MAXH)
+            MINH = MRBH /* \_SB_.MHPC.MRBH */
+            MINL = MRBL /* \_SB_.MHPC.MRBL */
+            LENH = MRLH /* \_SB_.MHPC.MRLH */
+            LENL = MRLL /* \_SB_.MHPC.MRLL */
+            MAXL = (MINL + LENL) /* \_SB_.MHPC.MCRS.LENL */
+            MAXH = (MINH + LENH) /* \_SB_.MHPC.MCRS.LENH */
+            If ((MAXL < MINL))
+            {
+                MAXH += One
+            }
+
+            If ((MAXL < One))
+            {
+                MAXH -= One
+            }
+
+            MAXL -= One
+            If ((MAXH == Zero))
+            {
+                Name (MR32, ResourceTemplate ()
+                {
+                    DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
+                        0x00000000,         // Granularity
+                        0x00000000,         // Range Minimum
+                        0xFFFFFFFE,         // Range Maximum
+                        0x00000000,         // Translation Offset
+                        0xFFFFFFFF,         // Length
+                        ,, _Y02, AddressRangeMemory, TypeStatic)
+                })
+                CreateDWordField (MR32, \_SB.MHPC.MCRS._Y02._MIN, MIN)  // _MIN: Minimum Base Address
+                CreateDWordField (MR32, \_SB.MHPC.MCRS._Y02._MAX, MAX)  // _MAX: Maximum Base Address
+                CreateDWordField (MR32, \_SB.MHPC.MCRS._Y02._LEN, LEN)  // _LEN: Length
+                MIN = MINL /* \_SB_.MHPC.MCRS.MINL */
+                MAX = MAXL /* \_SB_.MHPC.MCRS.MAXL */
+                LEN = LENL /* \_SB_.MHPC.MCRS.LENL */
+                Release (MLCK)
+                Return (MR32) /* \_SB_.MHPC.MCRS.MR32 */
+            }
+
+            Release (MLCK)
+            Return (MR64) /* \_SB_.MHPC.MCRS.MR64 */
+        }
+
+        Method (MPXM, 1, NotSerialized)
+        {
+            Acquire (MLCK, 0xFFFF)
+            MSEL = ToInteger (Arg0)
+            Local0 = MPX /* \_SB_.MHPC.MPX_ */
+            Release (MLCK)
+            Return (Local0)
+        }
+
+        Method (MOST, 4, NotSerialized)
+        {
+            Acquire (MLCK, 0xFFFF)
+            MSEL = ToInteger (Arg0)
+            MOEV = Arg1
+            MOSC = Arg2
+            Release (MLCK)
+        }
+
+        Method (MEJ0, 2, NotSerialized)
+        {
+            Acquire (MLCK, 0xFFFF)
+            MSEL = ToInteger (Arg0)
+            MEJ = One
+            Release (MLCK)
+        }
+
+        Device (MP00)
+        {
+            Name (_UID, "0x00")  // _UID: Unique ID
+            Name (_HID, EisaId ("PNP0C80") /* Memory Device */)  // _HID: Hardware ID
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (MCRS (_UID))
+            }
+
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (MRST (_UID))
+            }
+
+            Method (_PXM, 0, NotSerialized)  // _PXM: Device Proximity
+            {
+                Return (MPXM (_UID))
+            }
+
+            Method (_OST, 3, NotSerialized)  // _OST: OSPM Status Indication
+            {
+                MOST (_UID, Arg0, Arg1, Arg2)
+            }
+
+            Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+            {
+                MEJ0 (_UID, Arg0)
+            }
+        }
+
+        Device (MP01)
+        {
+            Name (_UID, "0x01")  // _UID: Unique ID
+            Name (_HID, EisaId ("PNP0C80") /* Memory Device */)  // _HID: Hardware ID
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (MCRS (_UID))
+            }
+
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (MRST (_UID))
+            }
+
+            Method (_PXM, 0, NotSerialized)  // _PXM: Device Proximity
+            {
+                Return (MPXM (_UID))
+            }
+
+            Method (_OST, 3, NotSerialized)  // _OST: OSPM Status Indication
+            {
+                MOST (_UID, Arg0, Arg1, Arg2)
+            }
+
+            Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+            {
+                MEJ0 (_UID, Arg0)
+            }
+        }
+
+        Device (MP02)
+        {
+            Name (_UID, "0x02")  // _UID: Unique ID
+            Name (_HID, EisaId ("PNP0C80") /* Memory Device */)  // _HID: Hardware ID
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (MCRS (_UID))
+            }
+
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (MRST (_UID))
+            }
+
+            Method (_PXM, 0, NotSerialized)  // _PXM: Device Proximity
+            {
+                Return (MPXM (_UID))
+            }
+
+            Method (_OST, 3, NotSerialized)  // _OST: OSPM Status Indication
+            {
+                MOST (_UID, Arg0, Arg1, Arg2)
+            }
+
+            Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+            {
+                MEJ0 (_UID, Arg0)
+            }
+        }
+
+        Method (MTFY, 2, NotSerialized)
+        {
+            If ((Arg0 == Zero))
+            {
+                Notify (MP00, Arg1)
+            }
+
+            If ((Arg0 == One))
+            {
+                Notify (MP01, Arg1)
+            }
+
+            If ((Arg0 == 0x02))
+            {
+                Notify (MP02, Arg1)
+            }
+        }
+    }
+
+    Method (\_GPE._E03, 0, NotSerialized)  // _Exx: Edge-Triggered GPE, xx=0x00-0xFF
+    {
+        \_SB.MHPC.MSCN ()
+    }
+
+    Scope (_GPE)
+    {
+        Name (_HID, "ACPI0006" /* GPE Block Device */)  // _HID: Hardware ID
+        Method (_E04, 0, NotSerialized)  // _Exx: Edge-Triggered GPE, xx=0x00-0xFF
+        {
+            Notify (\_SB.NVDR, 0x80) // Status Change
+        }
+    }
+
+    Scope (\_SB.PCI0)
+    {
+        Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+        {
+            WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
+                0x0000,             // Granularity
+                0x0000,             // Range Minimum
+                0x00FF,             // Range Maximum
+                0x0000,             // Translation Offset
+                0x0100,             // Length
+                ,, )
+            IO (Decode16,
+                0x0CF8,             // Range Minimum
+                0x0CF8,             // Range Maximum
+                0x01,               // Alignment
+                0x08,               // Length
+                )
+            WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
+                0x0000,             // Granularity
+                0x0000,             // Range Minimum
+                0x0CF7,             // Range Maximum
+                0x0000,             // Translation Offset
+                0x0CF8,             // Length
+                ,, , TypeStatic, DenseTranslation)
+            WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
+                0x0000,             // Granularity
+                0x0D00,             // Range Minimum
+                0xFFFF,             // Range Maximum
+                0x0000,             // Translation Offset
+                0xF300,             // Length
+                ,, , TypeStatic, DenseTranslation)
+            DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
+                0x00000000,         // Granularity
+                0x000A0000,         // Range Minimum
+                0x000BFFFF,         // Range Maximum
+                0x00000000,         // Translation Offset
+                0x00020000,         // Length
+                ,, , AddressRangeMemory, TypeStatic)
+            DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
+                0x00000000,         // Granularity
+                0x08000000,         // Range Minimum
+                0xAFFFFFFF,         // Range Maximum
+                0x00000000,         // Translation Offset
+                0xA8000000,         // Length
+                ,, , AddressRangeMemory, TypeStatic)
+            DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
+                0x00000000,         // Granularity
+                0xC0000000,         // Range Minimum
+                0xFEBFFFFF,         // Range Maximum
+                0x00000000,         // Translation Offset
+                0x3EC00000,         // Length
+                ,, , AddressRangeMemory, TypeStatic)
+            QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
+                0x0000000000000000, // Granularity
+                0x0000000200000000, // Range Minimum
+                0x00000009FFFFFFFF, // Range Maximum
+                0x0000000000000000, // Translation Offset
+                0x0000000800000000, // Length
+                ,, , AddressRangeMemory, TypeStatic)
+        })
+        Device (GPE0)
+        {
+            Name (_HID, "PNP0A06" /* Generic Container Device */)  // _HID: Hardware ID
+            Name (_UID, "GPE0 resources")  // _UID: Unique ID
+            Name (_STA, 0x0B)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0620,             // Range Minimum
+                    0x0620,             // Range Maximum
+                    0x01,               // Alignment
+                    0x10,               // Length
+                    )
+            })
+        }
+    }
+
+    Scope (\)
+    {
+        Name (_S3, Package (0x04)  // _S3_: S3 System State
+        {
+            One, 
+            One, 
+            Zero, 
+            Zero
+        })
+        Name (_S4, Package (0x04)  // _S4_: S4 System State
+        {
+            0x02, 
+            0x02, 
+            Zero, 
+            Zero
+        })
+        Name (_S5, Package (0x04)  // _S5_: S5 System State
+        {
+            Zero, 
+            Zero, 
+            Zero, 
+            Zero
+        })
+    }
+
+    Scope (\_SB.PCI0)
+    {
+        Device (FWCF)
+        {
+            Name (_HID, "QEMU0002")  // _HID: Hardware ID
+            Name (_STA, 0x0B)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0510,             // Range Minimum
+                    0x0510,             // Range Maximum
+                    0x01,               // Alignment
+                    0x0C,               // Length
+                    )
+            })
+        }
+    }
+
+    Scope (\_SB)
+    {
+        Scope (PCI0)
+        {
+            Device (S00)
+            {
+                Name (_ADR, Zero)  // _ADR: Address
+            }
+
+            Device (S08)
+            {
+                Name (_ADR, 0x00010000)  // _ADR: Address
+                Method (_S1D, 0, NotSerialized)  // _S1D: S1 Device State
+                {
+                    Return (Zero)
+                }
+
+                Method (_S2D, 0, NotSerialized)  // _S2D: S2 Device State
+                {
+                    Return (Zero)
+                }
+
+                Method (_S3D, 0, NotSerialized)  // _S3D: S3 Device State
+                {
+                    Return (Zero)
+                }
+            }
+
+            Method (PCNT, 0, NotSerialized)
+            {
+            }
+        }
+    }
+}
+
diff --git a/tests/data/acpi/q35/DSDT.dsl b/tests/data/acpi/q35/DSDT.dsl
new file mode 100644
index 0000000000..5adfe001c7
--- /dev/null
+++ b/tests/data/acpi/q35/DSDT.dsl
@@ -0,0 +1,3351 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembling to symbolic ASL+ operators
+ *
+ * Disassembly of tests/data/acpi/q35/DSDT.tis, Mon Sep 28 17:24:38 2020
+ *
+ * Original Table Header:
+ *     Signature        "DSDT"
+ *     Length           0x000020D2 (8402)
+ *     Revision         0x01 **** 32-bit table (V1), no 64-bit math support
+ *     Checksum         0xF4
+ *     OEM ID           "BOCHS "
+ *     OEM Table ID     "BXPCDSDT"
+ *     OEM Revision     0x00000001 (1)
+ *     Compiler ID      "BXPC"
+ *     Compiler Version 0x00000001 (1)
+ */
+DefinitionBlock ("", "DSDT", 1, "BOCHS ", "BXPCDSDT", 0x00000001)
+{
+    Scope (\)
+    {
+        OperationRegion (DBG, SystemIO, 0x0402, One)
+        Field (DBG, ByteAcc, NoLock, Preserve)
+        {
+            DBGB,   8
+        }
+
+        Method (DBUG, 1, NotSerialized)
+        {
+            ToHexString (Arg0, Local0)
+            ToBuffer (Local0, Local0)
+            Local1 = (SizeOf (Local0) - One)
+            Local2 = Zero
+            While ((Local2 < Local1))
+            {
+                DBGB = DerefOf (Local0 [Local2])
+                Local2++
+            }
+
+            DBGB = 0x0A
+        }
+    }
+
+    Scope (_SB)
+    {
+        Device (PCI0)
+        {
+            Name (_HID, EisaId ("PNP0A08") /* PCI Express Bus */)  // _HID: Hardware ID
+            Name (_CID, EisaId ("PNP0A03") /* PCI Bus */)  // _CID: Compatible ID
+            Name (_ADR, Zero)  // _ADR: Address
+            Name (_UID, Zero)  // _UID: Unique ID
+            Method (_OSC, 4, NotSerialized)  // _OSC: Operating System Capabilities
+            {
+                CreateDWordField (Arg3, Zero, CDW1)
+                If ((Arg0 == ToUUID ("33db4d5b-1ff7-401c-9657-7441c03dd766") /* PCI Host Bridge Device */))
+                {
+                    CreateDWordField (Arg3, 0x04, CDW2)
+                    CreateDWordField (Arg3, 0x08, CDW3)
+                    Local0 = CDW3 /* \_SB_.PCI0._OSC.CDW3 */
+                    Local0 &= 0x1F
+                    If ((Arg1 != One))
+                    {
+                        CDW1 |= 0x08
+                    }
+
+                    If ((CDW3 != Local0))
+                    {
+                        CDW1 |= 0x10
+                    }
+
+                    CDW3 = Local0
+                }
+                Else
+                {
+                    CDW1 |= 0x04
+                }
+
+                Return (Arg3)
+            }
+        }
+    }
+
+    Scope (_SB)
+    {
+        Device (HPET)
+        {
+            Name (_HID, EisaId ("PNP0103") /* HPET System Timer */)  // _HID: Hardware ID
+            Name (_UID, Zero)  // _UID: Unique ID
+            OperationRegion (HPTM, SystemMemory, 0xFED00000, 0x0400)
+            Field (HPTM, DWordAcc, Lock, Preserve)
+            {
+                VEND,   32, 
+                PRD,    32
+            }
+
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Local0 = VEND /* \_SB_.HPET.VEND */
+                Local1 = PRD /* \_SB_.HPET.PRD_ */
+                Local0 >>= 0x10
+                If (((Local0 == Zero) || (Local0 == 0xFFFF)))
+                {
+                    Return (Zero)
+                }
+
+                If (((Local1 == Zero) || (Local1 > 0x05F5E100)))
+                {
+                    Return (Zero)
+                }
+
+                Return (0x0F)
+            }
+
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadOnly,
+                    0xFED00000,         // Address Base
+                    0x00000400,         // Address Length
+                    )
+            })
+        }
+    }
+
+    Scope (_SB.PCI0)
+    {
+        Device (ISA)
+        {
+            Name (_ADR, 0x001F0000)  // _ADR: Address
+            OperationRegion (PIRQ, PCI_Config, 0x60, 0x0C)
+        }
+    }
+
+    Scope (_SB.PCI0.ISA)
+    {
+        Device (KBD)
+        {
+            Name (_HID, EisaId ("PNP0303") /* IBM Enhanced Keyboard (101/102-key, PS/2 Mouse) */)  // _HID: Hardware ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0060,             // Range Minimum
+                    0x0060,             // Range Maximum
+                    0x01,               // Alignment
+                    0x01,               // Length
+                    )
+                IO (Decode16,
+                    0x0064,             // Range Minimum
+                    0x0064,             // Range Maximum
+                    0x01,               // Alignment
+                    0x01,               // Length
+                    )
+                IRQNoFlags ()
+                    {1}
+            })
+        }
+
+        Device (MOU)
+        {
+            Name (_HID, EisaId ("PNP0F13") /* PS/2 Mouse */)  // _HID: Hardware ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IRQNoFlags ()
+                    {12}
+            })
+        }
+
+        Device (LPT1)
+        {
+            Name (_HID, EisaId ("PNP0400") /* Standard LPT Parallel Port */)  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0378,             // Range Minimum
+                    0x0378,             // Range Maximum
+                    0x08,               // Alignment
+                    0x08,               // Length
+                    )
+                IRQNoFlags ()
+                    {7}
+            })
+        }
+
+        Device (COM1)
+        {
+            Name (_HID, EisaId ("PNP0501") /* 16550A-compatible COM Serial Port */)  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x03F8,             // Range Minimum
+                    0x03F8,             // Range Maximum
+                    0x00,               // Alignment
+                    0x08,               // Length
+                    )
+                IRQNoFlags ()
+                    {4}
+            })
+        }
+
+        Device (RTC)
+        {
+            Name (_HID, EisaId ("PNP0B00") /* AT Real-Time Clock */)  // _HID: Hardware ID
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0070,             // Range Minimum
+                    0x0070,             // Range Maximum
+                    0x01,               // Alignment
+                    0x08,               // Length
+                    )
+                IRQNoFlags ()
+                    {8}
+            })
+        }
+    }
+
+    Name (PICF, Zero)
+    Method (_PIC, 1, NotSerialized)  // _PIC: Interrupt Model
+    {
+        PICF = Arg0
+    }
+
+    Scope (_SB)
+    {
+        Scope (PCI0)
+        {
+            Name (PRTP, Package (0x80)
+            {
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }
+            })
+            Name (PRTA, Package (0x80)
+            {
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }
+            })
+            Method (_PRT, 0, NotSerialized)  // _PRT: PCI Routing Table
+            {
+                If ((PICF == Zero))
+                {
+                    Return (PRTP) /* \_SB_.PCI0.PRTP */
+                }
+                Else
+                {
+                    Return (PRTA) /* \_SB_.PCI0.PRTA */
+                }
+            }
+        }
+
+        Field (PCI0.ISA.PIRQ, ByteAcc, NoLock, Preserve)
+        {
+            PRQA,   8, 
+            PRQB,   8, 
+            PRQC,   8, 
+            PRQD,   8, 
+            Offset (0x08), 
+            PRQE,   8, 
+            PRQF,   8, 
+            PRQG,   8, 
+            PRQH,   8
+        }
+
+        Method (IQST, 1, NotSerialized)
+        {
+            If ((0x80 & Arg0))
+            {
+                Return (0x09)
+            }
+
+            Return (0x0B)
+        }
+
+        Method (IQCR, 1, Serialized)
+        {
+            Name (PRR0, ResourceTemplate ()
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, _Y00)
+                {
+                    0x00000000,
+                }
+            })
+            CreateDWordField (PRR0, \_SB.IQCR._Y00._INT, PRRI)  // _INT: Interrupts
+            PRRI = (Arg0 & 0x0F)
+            Return (PRR0) /* \_SB_.IQCR.PRR0 */
+        }
+
+        Device (LNKA)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, Zero)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQA))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQA |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQA))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQA = PRRI /* \_SB_.LNKA._SRS.PRRI */
+            }
+        }
+
+        Device (LNKB)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQB))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQB |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQB))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQB = PRRI /* \_SB_.LNKB._SRS.PRRI */
+            }
+        }
+
+        Device (LNKC)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x02)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQC))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQC |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQC))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQC = PRRI /* \_SB_.LNKC._SRS.PRRI */
+            }
+        }
+
+        Device (LNKD)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x03)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQD))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQD |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQD))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQD = PRRI /* \_SB_.LNKD._SRS.PRRI */
+            }
+        }
+
+        Device (LNKE)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x04)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQE))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQE |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQE))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQE = PRRI /* \_SB_.LNKE._SRS.PRRI */
+            }
+        }
+
+        Device (LNKF)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x05)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQF))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQF |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQF))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQF = PRRI /* \_SB_.LNKF._SRS.PRRI */
+            }
+        }
+
+        Device (LNKG)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x06)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQG))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQG |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQG))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQG = PRRI /* \_SB_.LNKG._SRS.PRRI */
+            }
+        }
+
+        Device (LNKH)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x07)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQH))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQH |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQH))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQH = PRRI /* \_SB_.LNKH._SRS.PRRI */
+            }
+        }
+
+        Device (GSIA)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x10)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000010,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000010,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIB)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x11)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000011,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000011,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIC)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x12)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000012,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000012,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSID)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x13)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000013,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000013,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIE)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x14)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000014,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000014,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIF)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x15)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000015,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000015,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIG)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x16)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000016,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000016,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIH)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x17)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000017,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000017,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+    }
+
+    Scope (_SB.PCI0)
+    {
+        Device (SMB0)
+        {
+            Name (_ADR, 0x001F0003)  // _ADR: Address
+        }
+    }
+
+    Scope (_SB)
+    {
+        Device (\_SB.PCI0.PRES)
+        {
+            Name (_HID, EisaId ("PNP0A06") /* Generic Container Device */)  // _HID: Hardware ID
+            Name (_UID, "CPU Hotplug resources")  // _UID: Unique ID
+            Mutex (CPLK, 0x00)
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0CD8,             // Range Minimum
+                    0x0CD8,             // Range Maximum
+                    0x01,               // Alignment
+                    0x0C,               // Length
+                    )
+            })
+            OperationRegion (PRST, SystemIO, 0x0CD8, 0x0C)
+            Field (PRST, ByteAcc, NoLock, WriteAsZeros)
+            {
+                Offset (0x04), 
+                CPEN,   1, 
+                CINS,   1, 
+                CRMV,   1, 
+                CEJ0,   1, 
+                Offset (0x05), 
+                CCMD,   8
+            }
+
+            Field (PRST, DWordAcc, NoLock, Preserve)
+            {
+                CSEL,   32, 
+                Offset (0x08), 
+                CDAT,   32
+            }
+
+            Method (_INI, 0, Serialized)  // _INI: Initialize
+            {
+                CSEL = Zero
+            }
+        }
+
+        Device (\_SB.CPUS)
+        {
+            Name (_HID, "ACPI0010" /* Processor Container Device */)  // _HID: Hardware ID
+            Name (_CID, EisaId ("PNP0A05") /* Generic Container Device */)  // _CID: Compatible ID
+            Method (CTFY, 2, NotSerialized)
+            {
+                If ((Arg0 == Zero))
+                {
+                    Notify (C000, Arg1)
+                }
+            }
+
+            Method (CSTA, 1, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                \_SB.PCI0.PRES.CSEL = Arg0
+                Local0 = Zero
+                If ((\_SB.PCI0.PRES.CPEN == One))
+                {
+                    Local0 = 0x0F
+                }
+
+                Release (\_SB.PCI0.PRES.CPLK)
+                Return (Local0)
+            }
+
+            Method (CEJ0, 1, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                \_SB.PCI0.PRES.CSEL = Arg0
+                \_SB.PCI0.PRES.CEJ0 = One
+                Release (\_SB.PCI0.PRES.CPLK)
+            }
+
+            Method (CSCN, 0, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                Name (CNEW, Package (0xFF){})
+                Local3 = Zero
+                Local4 = One
+                While ((Local4 == One))
+                {
+                    Local4 = Zero
+                    Local0 = One
+                    Local1 = Zero
+                    While (((Local0 == One) && (Local3 < One)))
+                    {
+                        Local0 = Zero
+                        \_SB.PCI0.PRES.CSEL = Local3
+                        \_SB.PCI0.PRES.CCMD = Zero
+                        If ((\_SB.PCI0.PRES.CDAT < Local3))
+                        {
+                            Break
+                        }
+
+                        If ((Local1 == 0xFF))
+                        {
+                            Local4 = One
+                            Break
+                        }
+
+                        Local3 = \_SB.PCI0.PRES.CDAT
+                        If ((\_SB.PCI0.PRES.CINS == One))
+                        {
+                            CNEW [Local1] = Local3
+                            Local1++
+                            Local0 = One
+                        }
+                        ElseIf ((\_SB.PCI0.PRES.CRMV == One))
+                        {
+                            CTFY (Local3, 0x03)
+                            \_SB.PCI0.PRES.CRMV = One
+                            Local0 = One
+                        }
+
+                        Local3++
+                    }
+
+                    Local2 = Zero
+                    While ((Local2 < Local1))
+                    {
+                        Local3 = DerefOf (CNEW [Local2])
+                        CTFY (Local3, One)
+                        Debug = Local3
+                        \_SB.PCI0.PRES.CSEL = Local3
+                        \_SB.PCI0.PRES.CINS = One
+                        Local2++
+                    }
+                }
+
+                Release (\_SB.PCI0.PRES.CPLK)
+            }
+
+            Method (COST, 4, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                \_SB.PCI0.PRES.CSEL = Arg0
+                \_SB.PCI0.PRES.CCMD = One
+                \_SB.PCI0.PRES.CDAT = Arg1
+                \_SB.PCI0.PRES.CCMD = 0x02
+                \_SB.PCI0.PRES.CDAT = Arg2
+                Release (\_SB.PCI0.PRES.CPLK)
+            }
+
+            Processor (C000, 0x00, 0x00000000, 0x00)
+            {
+                Method (_STA, 0, Serialized)  // _STA: Status
+                {
+                    Return (CSTA (Zero))
+                }
+
+                Name (_MAT, Buffer (0x08)  // _MAT: Multiple APIC Table Entry
+                {
+                     0x00, 0x08, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00   // ........
+                })
+                Method (_OST, 3, Serialized)  // _OST: OSPM Status Indication
+                {
+                    COST (Zero, Arg0, Arg1, Arg2)
+                }
+            }
+        }
+    }
+
+    Method (\_GPE._E02, 0, NotSerialized)  // _Exx: Edge-Triggered GPE, xx=0x00-0xFF
+    {
+        \_SB.CPUS.CSCN ()
+    }
+
+    Scope (_GPE)
+    {
+        Name (_HID, "ACPI0006" /* GPE Block Device */)  // _HID: Hardware ID
+    }
+
+    Scope (\_SB.PCI0)
+    {
+        Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+        {
+            WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
+                0x0000,             // Granularity
+                0x0000,             // Range Minimum
+                0x00FF,             // Range Maximum
+                0x0000,             // Translation Offset
+                0x0100,             // Length
+                ,, )
+            IO (Decode16,
+                0x0CF8,             // Range Minimum
+                0x0CF8,             // Range Maximum
+                0x01,               // Alignment
+                0x08,               // Length
+                )
+            WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
+                0x0000,             // Granularity
+                0x0000,             // Range Minimum
+                0x0CF7,             // Range Maximum
+                0x0000,             // Translation Offset
+                0x0CF8,             // Length
+                ,, , TypeStatic, DenseTranslation)
+            WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
+                0x0000,             // Granularity
+                0x0D00,             // Range Minimum
+                0xFFFF,             // Range Maximum
+                0x0000,             // Translation Offset
+                0xF300,             // Length
+                ,, , TypeStatic, DenseTranslation)
+            DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
+                0x00000000,         // Granularity
+                0x000A0000,         // Range Minimum
+                0x000BFFFF,         // Range Maximum
+                0x00000000,         // Translation Offset
+                0x00020000,         // Length
+                ,, , AddressRangeMemory, TypeStatic)
+            DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
+                0x00000000,         // Granularity
+                0x08000000,         // Range Minimum
+                0xAFFFFFFF,         // Range Maximum
+                0x00000000,         // Translation Offset
+                0xA8000000,         // Length
+                ,, , AddressRangeMemory, TypeStatic)
+            DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
+                0x00000000,         // Granularity
+                0xC0000000,         // Range Minimum
+                0xFEBFFFFF,         // Range Maximum
+                0x00000000,         // Translation Offset
+                0x3EC00000,         // Length
+                ,, , AddressRangeMemory, TypeStatic)
+            QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
+                0x0000000000000000, // Granularity
+                0x0000000100000000, // Range Minimum
+                0x00000008FFFFFFFF, // Range Maximum
+                0x0000000000000000, // Translation Offset
+                0x0000000800000000, // Length
+                ,, , AddressRangeMemory, TypeStatic)
+            Memory32Fixed (ReadWrite,
+                0xFED40000,         // Address Base
+                0x00005000,         // Address Length
+                )
+        })
+        Device (GPE0)
+        {
+            Name (_HID, "PNP0A06" /* Generic Container Device */)  // _HID: Hardware ID
+            Name (_UID, "GPE0 resources")  // _UID: Unique ID
+            Name (_STA, 0x0B)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0620,             // Range Minimum
+                    0x0620,             // Range Maximum
+                    0x01,               // Alignment
+                    0x10,               // Length
+                    )
+            })
+        }
+    }
+
+    Scope (\)
+    {
+        Name (_S3, Package (0x04)  // _S3_: S3 System State
+        {
+            One, 
+            One, 
+            Zero, 
+            Zero
+        })
+        Name (_S4, Package (0x04)  // _S4_: S4 System State
+        {
+            0x02, 
+            0x02, 
+            Zero, 
+            Zero
+        })
+        Name (_S5, Package (0x04)  // _S5_: S5 System State
+        {
+            Zero, 
+            Zero, 
+            Zero, 
+            Zero
+        })
+    }
+
+    Scope (\_SB.PCI0)
+    {
+        Device (FWCF)
+        {
+            Name (_HID, "QEMU0002")  // _HID: Hardware ID
+            Name (_STA, 0x0B)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0510,             // Range Minimum
+                    0x0510,             // Range Maximum
+                    0x01,               // Alignment
+                    0x0C,               // Length
+                    )
+            })
+        }
+    }
+
+    Scope (\_SB)
+    {
+        Scope (PCI0)
+        {
+            Device (S00)
+            {
+                Name (_ADR, Zero)  // _ADR: Address
+            }
+
+            Device (S08)
+            {
+                Name (_ADR, 0x00010000)  // _ADR: Address
+                Method (_S1D, 0, NotSerialized)  // _S1D: S1 Device State
+                {
+                    Return (Zero)
+                }
+
+                Method (_S2D, 0, NotSerialized)  // _S2D: S2 Device State
+                {
+                    Return (Zero)
+                }
+
+                Method (_S3D, 0, NotSerialized)  // _S3D: S3 Device State
+                {
+                    Return (Zero)
+                }
+            }
+
+            Device (TPM)
+            {
+                Name (_HID, "MSFT0101" /* TPM 2.0 Security Device */)  // _HID: Hardware ID
+                Name (_STA, 0x0F)  // _STA: Status
+                Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+                {
+                    Memory32Fixed (ReadWrite,
+                        0xFED40000,         // Address Base
+                        0x00005000,         // Address Length
+                        )
+                })
+                OperationRegion (TPP2, SystemMemory, 0xFED45100, 0x5A)
+                Field (TPP2, AnyAcc, NoLock, Preserve)
+                {
+                    PPIN,   8, 
+                    PPIP,   32, 
+                    PPRP,   32, 
+                    PPRQ,   32, 
+                    PPRM,   32, 
+                    LPPR,   32
+                }
+
+                OperationRegion (TPP3, SystemMemory, 0xFED4515A, One)
+                Field (TPP3, ByteAcc, NoLock, Preserve)
+                {
+                    MOVV,   8
+                }
+
+                Method (TPFN, 1, Serialized)
+                {
+                    If ((Arg0 >= 0x0100))
+                    {
+                        Return (Zero)
+                    }
+
+                    OperationRegion (TPP1, SystemMemory, (0xFED45000 + Arg0), One)
+                    Field (TPP1, ByteAcc, NoLock, Preserve)
+                    {
+                        TPPF,   8
+                    }
+
+                    Return (TPPF) /* \_SB_.PCI0.TPM_.TPFN.TPPF */
+                }
+
+                Name (TPM2, Package (0x02)
+                {
+                    Zero, 
+                    Zero
+                })
+                Name (TPM3, Package (0x03)
+                {
+                    Zero, 
+                    Zero, 
+                    Zero
+                })
+                Method (_DSM, 4, Serialized)  // _DSM: Device-Specific Method
+                {
+                    If ((Arg0 == ToUUID ("3dddfaa6-361b-4eb4-a424-8d10089d1653") /* Physical Presence Interface */))
+                    {
+                        If ((Arg2 == Zero))
+                        {
+                            Return (Buffer (0x02)
+                            {
+                                 0xFF, 0x01                                       // ..
+                            })
+                        }
+
+                        If ((Arg2 == One))
+                        {
+                            Return ("1.3")
+                        }
+
+                        If ((Arg2 == 0x02))
+                        {
+                            Local0 = DerefOf (Arg3 [Zero])
+                            Local1 = TPFN (Local0)
+                            If (((Local1 & 0x07) == Zero))
+                            {
+                                Return (One)
+                            }
+
+                            PPRQ = Local0
+                            PPRM = Zero
+                            Return (Zero)
+                        }
+
+                        If ((Arg2 == 0x03))
+                        {
+                            If ((Arg1 == One))
+                            {
+                                TPM2 [One] = PPRQ /* \_SB_.PCI0.TPM_.PPRQ */
+                                Return (TPM2) /* \_SB_.PCI0.TPM_.TPM2 */
+                            }
+
+                            If ((Arg1 == 0x02))
+                            {
+                                TPM3 [One] = PPRQ /* \_SB_.PCI0.TPM_.PPRQ */
+                                TPM3 [0x02] = PPRM /* \_SB_.PCI0.TPM_.PPRM */
+                                Return (TPM3) /* \_SB_.PCI0.TPM_.TPM3 */
+                            }
+                        }
+
+                        If ((Arg2 == 0x04))
+                        {
+                            Return (0x02)
+                        }
+
+                        If ((Arg2 == 0x05))
+                        {
+                            TPM3 [One] = LPPR /* \_SB_.PCI0.TPM_.LPPR */
+                            TPM3 [0x02] = PPRP /* \_SB_.PCI0.TPM_.PPRP */
+                            Return (TPM3) /* \_SB_.PCI0.TPM_.TPM3 */
+                        }
+
+                        If ((Arg2 == 0x06))
+                        {
+                            Return (0x03)
+                        }
+
+                        If ((Arg2 == 0x07))
+                        {
+                            Local0 = DerefOf (Arg3 [Zero])
+                            Local1 = TPFN (Local0)
+                            If (((Local1 & 0x07) == Zero))
+                            {
+                                Return (One)
+                            }
+
+                            If (((Local1 & 0x07) == 0x02))
+                            {
+                                Return (0x03)
+                            }
+
+                            If ((Arg1 == One))
+                            {
+                                PPRQ = Local0
+                                PPRM = Zero
+                            }
+
+                            If ((Arg1 == 0x02))
+                            {
+                                PPRQ = Local0
+                                PPRM = DerefOf (Arg3 [One])
+                            }
+
+                            Return (Zero)
+                        }
+
+                        If ((Arg2 == 0x08))
+                        {
+                            Local0 = DerefOf (Arg3 [Zero])
+                            Local1 = TPFN (Local0)
+                            Return ((Local1 & 0x07))
+                        }
+
+                        Return (Buffer (One)
+                        {
+                             0x00                                             // .
+                        })
+                    }
+
+                    If ((Arg0 == ToUUID ("376054ed-cc13-4675-901c-4756d7f2d45d")))
+                    {
+                        If ((Arg2 == Zero))
+                        {
+                            Return (Buffer (One)
+                            {
+                                 0x03                                             // .
+                            })
+                        }
+
+                        If ((Arg2 == One))
+                        {
+                            Local0 = DerefOf (Arg3 [Zero])
+                            MOVV = Local0
+                            Return (Zero)
+                        }
+                    }
+                }
+            }
+        }
+    }
+}
+
diff --git a/tests/data/acpi/q35/DSDT.ipmibt b/tests/data/acpi/q35/DSDT.ipmibt
index 9a1b635dab776fb25e378a00e6ca0cadf9902c25..a650c3041ab9d6688eda843a6a2ab418e1a7ce9b 100644
GIT binary patch
delta 33
ocmX?ZyWf_}CD<iozZ?StW7tNnd^t`xmYDcpr+5Lo$<1=M0IFIEcK`qY

delta 42
xcmdmQd)$`GCD<k8xEuom<LixF`Ep!-EHUxHPVoY6ER&n$Y}rNF0-XIq7yuRF3w{6q

diff --git a/tests/data/acpi/q35/DSDT.ipmibt.dsl b/tests/data/acpi/q35/DSDT.ipmibt.dsl
new file mode 100644
index 0000000000..63c1140a61
--- /dev/null
+++ b/tests/data/acpi/q35/DSDT.ipmibt.dsl
@@ -0,0 +1,3156 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembling to symbolic ASL+ operators
+ *
+ * Disassembly of tests/data/acpi/q35/DSDT.ipmibt, Tue Aug  4 11:14:15 2020
+ *
+ * Original Table Header:
+ *     Signature        "DSDT"
+ *     Length           0x00001E49 (7753)
+ *     Revision         0x01 **** 32-bit table (V1), no 64-bit math support
+ *     Checksum         0xDF
+ *     OEM ID           "BOCHS "
+ *     OEM Table ID     "BXPCDSDT"
+ *     OEM Revision     0x00000001 (1)
+ *     Compiler ID      "BXPC"
+ *     Compiler Version 0x00000001 (1)
+ */
+DefinitionBlock ("", "DSDT", 1, "BOCHS ", "BXPCDSDT", 0x00000001)
+{
+    Scope (\)
+    {
+        OperationRegion (DBG, SystemIO, 0x0402, One)
+        Field (DBG, ByteAcc, NoLock, Preserve)
+        {
+            DBGB,   8
+        }
+
+        Method (DBUG, 1, NotSerialized)
+        {
+            ToHexString (Arg0, Local0)
+            ToBuffer (Local0, Local0)
+            Local1 = (SizeOf (Local0) - One)
+            Local2 = Zero
+            While ((Local2 < Local1))
+            {
+                DBGB = DerefOf (Local0 [Local2])
+                Local2++
+            }
+
+            DBGB = 0x0A
+        }
+    }
+
+    Scope (_SB)
+    {
+        Device (PCI0)
+        {
+            Name (_HID, EisaId ("PNP0A08") /* PCI Express Bus */)  // _HID: Hardware ID
+            Name (_CID, EisaId ("PNP0A03") /* PCI Bus */)  // _CID: Compatible ID
+            Name (_ADR, Zero)  // _ADR: Address
+            Name (_UID, Zero)  // _UID: Unique ID
+            Method (_OSC, 4, NotSerialized)  // _OSC: Operating System Capabilities
+            {
+                CreateDWordField (Arg3, Zero, CDW1)
+                If ((Arg0 == ToUUID ("33db4d5b-1ff7-401c-9657-7441c03dd766") /* PCI Host Bridge Device */))
+                {
+                    CreateDWordField (Arg3, 0x04, CDW2)
+                    CreateDWordField (Arg3, 0x08, CDW3)
+                    Local0 = CDW3 /* \_SB_.PCI0._OSC.CDW3 */
+                    Local0 &= 0x1F
+                    If ((Arg1 != One))
+                    {
+                        CDW1 |= 0x08
+                    }
+
+                    If ((CDW3 != Local0))
+                    {
+                        CDW1 |= 0x10
+                    }
+
+                    CDW3 = Local0
+                }
+                Else
+                {
+                    CDW1 |= 0x04
+                }
+
+                Return (Arg3)
+            }
+        }
+    }
+
+    Scope (_SB)
+    {
+        Device (HPET)
+        {
+            Name (_HID, EisaId ("PNP0103") /* HPET System Timer */)  // _HID: Hardware ID
+            Name (_UID, Zero)  // _UID: Unique ID
+            OperationRegion (HPTM, SystemMemory, 0xFED00000, 0x0400)
+            Field (HPTM, DWordAcc, Lock, Preserve)
+            {
+                VEND,   32, 
+                PRD,    32
+            }
+
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Local0 = VEND /* \_SB_.HPET.VEND */
+                Local1 = PRD /* \_SB_.HPET.PRD_ */
+                Local0 >>= 0x10
+                If (((Local0 == Zero) || (Local0 == 0xFFFF)))
+                {
+                    Return (Zero)
+                }
+
+                If (((Local1 == Zero) || (Local1 > 0x05F5E100)))
+                {
+                    Return (Zero)
+                }
+
+                Return (0x0F)
+            }
+
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadOnly,
+                    0xFED00000,         // Address Base
+                    0x00000400,         // Address Length
+                    )
+            })
+        }
+    }
+
+    Scope (_SB.PCI0)
+    {
+        Device (ISA)
+        {
+            Name (_ADR, 0x001F0000)  // _ADR: Address
+            OperationRegion (PIRQ, PCI_Config, 0x60, 0x0C)
+        }
+    }
+
+    Scope (_SB.PCI0.ISA)
+    {
+        Device (MI1)
+        {
+            Name (_HID, EisaId ("IPI0001"))  // _HID: Hardware ID
+            Name (_STR, "ipmi_bt")  // _STR: Description String
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x00E4,             // Range Minimum
+                    0x00E6,             // Range Maximum
+                    0x01,               // Alignment
+                    0x03,               // Length
+                    )
+                IRQNoFlags ()
+                    {5}
+            })
+            Name (_IFT, 0x03)  // _IFT: IPMI Interface Type
+            Name (_SRV, 0x0200)  // _SRV: IPMI Spec Revision
+        }
+
+        Device (KBD)
+        {
+            Name (_HID, EisaId ("PNP0303") /* IBM Enhanced Keyboard (101/102-key, PS/2 Mouse) */)  // _HID: Hardware ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0060,             // Range Minimum
+                    0x0060,             // Range Maximum
+                    0x01,               // Alignment
+                    0x01,               // Length
+                    )
+                IO (Decode16,
+                    0x0064,             // Range Minimum
+                    0x0064,             // Range Maximum
+                    0x01,               // Alignment
+                    0x01,               // Length
+                    )
+                IRQNoFlags ()
+                    {1}
+            })
+        }
+
+        Device (MOU)
+        {
+            Name (_HID, EisaId ("PNP0F13") /* PS/2 Mouse */)  // _HID: Hardware ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IRQNoFlags ()
+                    {12}
+            })
+        }
+
+        Device (LPT1)
+        {
+            Name (_HID, EisaId ("PNP0400") /* Standard LPT Parallel Port */)  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0378,             // Range Minimum
+                    0x0378,             // Range Maximum
+                    0x08,               // Alignment
+                    0x08,               // Length
+                    )
+                IRQNoFlags ()
+                    {7}
+            })
+        }
+
+        Device (COM1)
+        {
+            Name (_HID, EisaId ("PNP0501") /* 16550A-compatible COM Serial Port */)  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x03F8,             // Range Minimum
+                    0x03F8,             // Range Maximum
+                    0x00,               // Alignment
+                    0x08,               // Length
+                    )
+                IRQNoFlags ()
+                    {4}
+            })
+        }
+
+        Device (RTC)
+        {
+            Name (_HID, EisaId ("PNP0B00") /* AT Real-Time Clock */)  // _HID: Hardware ID
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0070,             // Range Minimum
+                    0x0070,             // Range Maximum
+                    0x01,               // Alignment
+                    0x08,               // Length
+                    )
+                IRQNoFlags ()
+                    {8}
+            })
+        }
+    }
+
+    Name (PICF, Zero)
+    Method (_PIC, 1, NotSerialized)  // _PIC: Interrupt Model
+    {
+        PICF = Arg0
+    }
+
+    Scope (_SB)
+    {
+        Scope (PCI0)
+        {
+            Name (PRTP, Package (0x80)
+            {
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }
+            })
+            Name (PRTA, Package (0x80)
+            {
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }
+            })
+            Method (_PRT, 0, NotSerialized)  // _PRT: PCI Routing Table
+            {
+                If ((PICF == Zero))
+                {
+                    Return (PRTP) /* \_SB_.PCI0.PRTP */
+                }
+                Else
+                {
+                    Return (PRTA) /* \_SB_.PCI0.PRTA */
+                }
+            }
+        }
+
+        Field (PCI0.ISA.PIRQ, ByteAcc, NoLock, Preserve)
+        {
+            PRQA,   8, 
+            PRQB,   8, 
+            PRQC,   8, 
+            PRQD,   8, 
+            Offset (0x08), 
+            PRQE,   8, 
+            PRQF,   8, 
+            PRQG,   8, 
+            PRQH,   8
+        }
+
+        Method (IQST, 1, NotSerialized)
+        {
+            If ((0x80 & Arg0))
+            {
+                Return (0x09)
+            }
+
+            Return (0x0B)
+        }
+
+        Method (IQCR, 1, Serialized)
+        {
+            Name (PRR0, ResourceTemplate ()
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, _Y00)
+                {
+                    0x00000000,
+                }
+            })
+            CreateDWordField (PRR0, \_SB.IQCR._Y00._INT, PRRI)  // _INT: Interrupts
+            PRRI = (Arg0 & 0x0F)
+            Return (PRR0) /* \_SB_.IQCR.PRR0 */
+        }
+
+        Device (LNKA)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, Zero)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQA))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQA |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQA))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQA = PRRI /* \_SB_.LNKA._SRS.PRRI */
+            }
+        }
+
+        Device (LNKB)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQB))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQB |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQB))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQB = PRRI /* \_SB_.LNKB._SRS.PRRI */
+            }
+        }
+
+        Device (LNKC)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x02)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQC))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQC |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQC))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQC = PRRI /* \_SB_.LNKC._SRS.PRRI */
+            }
+        }
+
+        Device (LNKD)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x03)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQD))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQD |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQD))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQD = PRRI /* \_SB_.LNKD._SRS.PRRI */
+            }
+        }
+
+        Device (LNKE)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x04)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQE))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQE |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQE))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQE = PRRI /* \_SB_.LNKE._SRS.PRRI */
+            }
+        }
+
+        Device (LNKF)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x05)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQF))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQF |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQF))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQF = PRRI /* \_SB_.LNKF._SRS.PRRI */
+            }
+        }
+
+        Device (LNKG)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x06)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQG))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQG |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQG))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQG = PRRI /* \_SB_.LNKG._SRS.PRRI */
+            }
+        }
+
+        Device (LNKH)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x07)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQH))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQH |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQH))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQH = PRRI /* \_SB_.LNKH._SRS.PRRI */
+            }
+        }
+
+        Device (GSIA)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x10)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000010,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000010,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIB)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x11)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000011,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000011,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIC)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x12)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000012,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000012,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSID)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x13)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000013,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000013,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIE)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x14)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000014,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000014,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIF)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x15)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000015,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000015,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIG)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x16)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000016,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000016,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIH)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x17)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000017,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000017,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+    }
+
+    Scope (_SB.PCI0)
+    {
+        Device (SMB0)
+        {
+            Name (_ADR, 0x001F0003)  // _ADR: Address
+        }
+    }
+
+    Scope (_SB)
+    {
+        Device (\_SB.PCI0.PRES)
+        {
+            Name (_HID, EisaId ("PNP0A06") /* Generic Container Device */)  // _HID: Hardware ID
+            Name (_UID, "CPU Hotplug resources")  // _UID: Unique ID
+            Mutex (CPLK, 0x00)
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0CD8,             // Range Minimum
+                    0x0CD8,             // Range Maximum
+                    0x01,               // Alignment
+                    0x0C,               // Length
+                    )
+            })
+            OperationRegion (PRST, SystemIO, 0x0CD8, 0x0C)
+            Field (PRST, ByteAcc, NoLock, WriteAsZeros)
+            {
+                Offset (0x04), 
+                CPEN,   1, 
+                CINS,   1, 
+                CRMV,   1, 
+                CEJ0,   1, 
+                Offset (0x05), 
+                CCMD,   8
+            }
+
+            Field (PRST, DWordAcc, NoLock, Preserve)
+            {
+                CSEL,   32, 
+                Offset (0x08), 
+                CDAT,   32
+            }
+
+            Method (_INI, 0, Serialized)  // _INI: Initialize
+            {
+                CSEL = Zero
+            }
+        }
+
+        Device (\_SB.CPUS)
+        {
+            Name (_HID, "ACPI0010" /* Processor Container Device */)  // _HID: Hardware ID
+            Name (_CID, EisaId ("PNP0A05") /* Generic Container Device */)  // _CID: Compatible ID
+            Method (CTFY, 2, NotSerialized)
+            {
+                If ((Arg0 == Zero))
+                {
+                    Notify (C000, Arg1)
+                }
+            }
+
+            Method (CSTA, 1, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                \_SB.PCI0.PRES.CSEL = Arg0
+                Local0 = Zero
+                If ((\_SB.PCI0.PRES.CPEN == One))
+                {
+                    Local0 = 0x0F
+                }
+
+                Release (\_SB.PCI0.PRES.CPLK)
+                Return (Local0)
+            }
+
+            Method (CEJ0, 1, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                \_SB.PCI0.PRES.CSEL = Arg0
+                \_SB.PCI0.PRES.CEJ0 = One
+                Release (\_SB.PCI0.PRES.CPLK)
+            }
+
+            Method (CSCN, 0, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                Local0 = One
+                While ((Local0 == One))
+                {
+                    Local0 = Zero
+                    \_SB.PCI0.PRES.CCMD = Zero
+                    If ((\_SB.PCI0.PRES.CINS == One))
+                    {
+                        CTFY (\_SB.PCI0.PRES.CDAT, One)
+                        \_SB.PCI0.PRES.CINS = One
+                        Local0 = One
+                    }
+                    ElseIf ((\_SB.PCI0.PRES.CRMV == One))
+                    {
+                        CTFY (\_SB.PCI0.PRES.CDAT, 0x03)
+                        \_SB.PCI0.PRES.CRMV = One
+                        Local0 = One
+                    }
+                }
+
+                Release (\_SB.PCI0.PRES.CPLK)
+            }
+
+            Method (COST, 4, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                \_SB.PCI0.PRES.CSEL = Arg0
+                \_SB.PCI0.PRES.CCMD = One
+                \_SB.PCI0.PRES.CDAT = Arg1
+                \_SB.PCI0.PRES.CCMD = 0x02
+                \_SB.PCI0.PRES.CDAT = Arg2
+                Release (\_SB.PCI0.PRES.CPLK)
+            }
+
+            Processor (C000, 0x00, 0x00000000, 0x00)
+            {
+                Method (_STA, 0, Serialized)  // _STA: Status
+                {
+                    Return (CSTA (Zero))
+                }
+
+                Name (_MAT, Buffer (0x08)  // _MAT: Multiple APIC Table Entry
+                {
+                     0x00, 0x08, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00   // ........
+                })
+                Method (_OST, 3, Serialized)  // _OST: OSPM Status Indication
+                {
+                    COST (Zero, Arg0, Arg1, Arg2)
+                }
+            }
+        }
+    }
+
+    Method (\_GPE._E02, 0, NotSerialized)  // _Exx: Edge-Triggered GPE, xx=0x00-0xFF
+    {
+        \_SB.CPUS.CSCN ()
+    }
+
+    Scope (_GPE)
+    {
+        Name (_HID, "ACPI0006" /* GPE Block Device */)  // _HID: Hardware ID
+    }
+
+    Scope (\_SB.PCI0)
+    {
+        Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+        {
+            WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
+                0x0000,             // Granularity
+                0x0000,             // Range Minimum
+                0x00FF,             // Range Maximum
+                0x0000,             // Translation Offset
+                0x0100,             // Length
+                ,, )
+            IO (Decode16,
+                0x0CF8,             // Range Minimum
+                0x0CF8,             // Range Maximum
+                0x01,               // Alignment
+                0x08,               // Length
+                )
+            WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
+                0x0000,             // Granularity
+                0x0000,             // Range Minimum
+                0x0CF7,             // Range Maximum
+                0x0000,             // Translation Offset
+                0x0CF8,             // Length
+                ,, , TypeStatic, DenseTranslation)
+            WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
+                0x0000,             // Granularity
+                0x0D00,             // Range Minimum
+                0xFFFF,             // Range Maximum
+                0x0000,             // Translation Offset
+                0xF300,             // Length
+                ,, , TypeStatic, DenseTranslation)
+            DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
+                0x00000000,         // Granularity
+                0x000A0000,         // Range Minimum
+                0x000BFFFF,         // Range Maximum
+                0x00000000,         // Translation Offset
+                0x00020000,         // Length
+                ,, , AddressRangeMemory, TypeStatic)
+            DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
+                0x00000000,         // Granularity
+                0x08000000,         // Range Minimum
+                0xAFFFFFFF,         // Range Maximum
+                0x00000000,         // Translation Offset
+                0xA8000000,         // Length
+                ,, , AddressRangeMemory, TypeStatic)
+            DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
+                0x00000000,         // Granularity
+                0xC0000000,         // Range Minimum
+                0xFEBFFFFF,         // Range Maximum
+                0x00000000,         // Translation Offset
+                0x3EC00000,         // Length
+                ,, , AddressRangeMemory, TypeStatic)
+            QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
+                0x0000000000000000, // Granularity
+                0x0000000100000000, // Range Minimum
+                0x00000008FFFFFFFF, // Range Maximum
+                0x0000000000000000, // Translation Offset
+                0x0000000800000000, // Length
+                ,, , AddressRangeMemory, TypeStatic)
+        })
+        Device (GPE0)
+        {
+            Name (_HID, "PNP0A06" /* Generic Container Device */)  // _HID: Hardware ID
+            Name (_UID, "GPE0 resources")  // _UID: Unique ID
+            Name (_STA, 0x0B)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0620,             // Range Minimum
+                    0x0620,             // Range Maximum
+                    0x01,               // Alignment
+                    0x10,               // Length
+                    )
+            })
+        }
+    }
+
+    Scope (\)
+    {
+        Name (_S3, Package (0x04)  // _S3_: S3 System State
+        {
+            One, 
+            One, 
+            Zero, 
+            Zero
+        })
+        Name (_S4, Package (0x04)  // _S4_: S4 System State
+        {
+            0x02, 
+            0x02, 
+            Zero, 
+            Zero
+        })
+        Name (_S5, Package (0x04)  // _S5_: S5 System State
+        {
+            Zero, 
+            Zero, 
+            Zero, 
+            Zero
+        })
+    }
+
+    Scope (\_SB.PCI0)
+    {
+        Device (FWCF)
+        {
+            Name (_HID, "QEMU0002")  // _HID: Hardware ID
+            Name (_STA, 0x0B)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0510,             // Range Minimum
+                    0x0510,             // Range Maximum
+                    0x01,               // Alignment
+                    0x0C,               // Length
+                    )
+            })
+        }
+    }
+
+    Scope (\_SB)
+    {
+        Scope (PCI0)
+        {
+            Device (S00)
+            {
+                Name (_ADR, Zero)  // _ADR: Address
+            }
+
+            Device (S08)
+            {
+                Name (_ADR, 0x00010000)  // _ADR: Address
+                Method (_S1D, 0, NotSerialized)  // _S1D: S1 Device State
+                {
+                    Return (Zero)
+                }
+
+                Method (_S2D, 0, NotSerialized)  // _S2D: S2 Device State
+                {
+                    Return (Zero)
+                }
+
+                Method (_S3D, 0, NotSerialized)  // _S3D: S3 Device State
+                {
+                    Return (Zero)
+                }
+            }
+
+            Method (PCNT, 0, NotSerialized)
+            {
+            }
+        }
+    }
+}
+
diff --git a/tests/data/acpi/q35/DSDT.memhp b/tests/data/acpi/q35/DSDT.memhp
index 55ce4e2293624c2c0725c3bbaaa7ec29acfccfc9..85598ca3f68f437e8d5048e2cb9815f20b332152 100644
GIT binary patch
delta 33
ocmX@@e%PJMCD<k8urdP!qsT_CVr5P@mYDcpr+5Lo$?eLv0IF08YybcN

delta 42
xcmX@?e%hVOCD<k8v@!z&<I0U(#mZcMEHUxHPVoY6ER)-mZP`WG0-XIq7yuP-3v&Pf

diff --git a/tests/data/acpi/q35/DSDT.memhp.dsl b/tests/data/acpi/q35/DSDT.memhp.dsl
new file mode 100644
index 0000000000..18cea090e6
--- /dev/null
+++ b/tests/data/acpi/q35/DSDT.memhp.dsl
@@ -0,0 +1,3442 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembling to symbolic ASL+ operators
+ *
+ * Disassembly of tests/data/acpi/q35/DSDT.memhp, Tue Aug  4 11:14:15 2020
+ *
+ * Original Table Header:
+ *     Signature        "DSDT"
+ *     Length           0x0000234D (9037)
+ *     Revision         0x01 **** 32-bit table (V1), no 64-bit math support
+ *     Checksum         0x9D
+ *     OEM ID           "BOCHS "
+ *     OEM Table ID     "BXPCDSDT"
+ *     OEM Revision     0x00000001 (1)
+ *     Compiler ID      "BXPC"
+ *     Compiler Version 0x00000001 (1)
+ */
+DefinitionBlock ("", "DSDT", 1, "BOCHS ", "BXPCDSDT", 0x00000001)
+{
+    Scope (\)
+    {
+        OperationRegion (DBG, SystemIO, 0x0402, One)
+        Field (DBG, ByteAcc, NoLock, Preserve)
+        {
+            DBGB,   8
+        }
+
+        Method (DBUG, 1, NotSerialized)
+        {
+            ToHexString (Arg0, Local0)
+            ToBuffer (Local0, Local0)
+            Local1 = (SizeOf (Local0) - One)
+            Local2 = Zero
+            While ((Local2 < Local1))
+            {
+                DBGB = DerefOf (Local0 [Local2])
+                Local2++
+            }
+
+            DBGB = 0x0A
+        }
+    }
+
+    Scope (_SB)
+    {
+        Device (PCI0)
+        {
+            Name (_HID, EisaId ("PNP0A08") /* PCI Express Bus */)  // _HID: Hardware ID
+            Name (_CID, EisaId ("PNP0A03") /* PCI Bus */)  // _CID: Compatible ID
+            Name (_ADR, Zero)  // _ADR: Address
+            Name (_UID, Zero)  // _UID: Unique ID
+            Method (_OSC, 4, NotSerialized)  // _OSC: Operating System Capabilities
+            {
+                CreateDWordField (Arg3, Zero, CDW1)
+                If ((Arg0 == ToUUID ("33db4d5b-1ff7-401c-9657-7441c03dd766") /* PCI Host Bridge Device */))
+                {
+                    CreateDWordField (Arg3, 0x04, CDW2)
+                    CreateDWordField (Arg3, 0x08, CDW3)
+                    Local0 = CDW3 /* \_SB_.PCI0._OSC.CDW3 */
+                    Local0 &= 0x1F
+                    If ((Arg1 != One))
+                    {
+                        CDW1 |= 0x08
+                    }
+
+                    If ((CDW3 != Local0))
+                    {
+                        CDW1 |= 0x10
+                    }
+
+                    CDW3 = Local0
+                }
+                Else
+                {
+                    CDW1 |= 0x04
+                }
+
+                Return (Arg3)
+            }
+        }
+    }
+
+    Scope (_SB)
+    {
+        Device (HPET)
+        {
+            Name (_HID, EisaId ("PNP0103") /* HPET System Timer */)  // _HID: Hardware ID
+            Name (_UID, Zero)  // _UID: Unique ID
+            OperationRegion (HPTM, SystemMemory, 0xFED00000, 0x0400)
+            Field (HPTM, DWordAcc, Lock, Preserve)
+            {
+                VEND,   32, 
+                PRD,    32
+            }
+
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Local0 = VEND /* \_SB_.HPET.VEND */
+                Local1 = PRD /* \_SB_.HPET.PRD_ */
+                Local0 >>= 0x10
+                If (((Local0 == Zero) || (Local0 == 0xFFFF)))
+                {
+                    Return (Zero)
+                }
+
+                If (((Local1 == Zero) || (Local1 > 0x05F5E100)))
+                {
+                    Return (Zero)
+                }
+
+                Return (0x0F)
+            }
+
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadOnly,
+                    0xFED00000,         // Address Base
+                    0x00000400,         // Address Length
+                    )
+            })
+        }
+    }
+
+    Scope (_SB.PCI0)
+    {
+        Device (ISA)
+        {
+            Name (_ADR, 0x001F0000)  // _ADR: Address
+            OperationRegion (PIRQ, PCI_Config, 0x60, 0x0C)
+        }
+    }
+
+    Scope (_SB.PCI0.ISA)
+    {
+        Device (KBD)
+        {
+            Name (_HID, EisaId ("PNP0303") /* IBM Enhanced Keyboard (101/102-key, PS/2 Mouse) */)  // _HID: Hardware ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0060,             // Range Minimum
+                    0x0060,             // Range Maximum
+                    0x01,               // Alignment
+                    0x01,               // Length
+                    )
+                IO (Decode16,
+                    0x0064,             // Range Minimum
+                    0x0064,             // Range Maximum
+                    0x01,               // Alignment
+                    0x01,               // Length
+                    )
+                IRQNoFlags ()
+                    {1}
+            })
+        }
+
+        Device (MOU)
+        {
+            Name (_HID, EisaId ("PNP0F13") /* PS/2 Mouse */)  // _HID: Hardware ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IRQNoFlags ()
+                    {12}
+            })
+        }
+
+        Device (LPT1)
+        {
+            Name (_HID, EisaId ("PNP0400") /* Standard LPT Parallel Port */)  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0378,             // Range Minimum
+                    0x0378,             // Range Maximum
+                    0x08,               // Alignment
+                    0x08,               // Length
+                    )
+                IRQNoFlags ()
+                    {7}
+            })
+        }
+
+        Device (COM1)
+        {
+            Name (_HID, EisaId ("PNP0501") /* 16550A-compatible COM Serial Port */)  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x03F8,             // Range Minimum
+                    0x03F8,             // Range Maximum
+                    0x00,               // Alignment
+                    0x08,               // Length
+                    )
+                IRQNoFlags ()
+                    {4}
+            })
+        }
+
+        Device (RTC)
+        {
+            Name (_HID, EisaId ("PNP0B00") /* AT Real-Time Clock */)  // _HID: Hardware ID
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0070,             // Range Minimum
+                    0x0070,             // Range Maximum
+                    0x01,               // Alignment
+                    0x08,               // Length
+                    )
+                IRQNoFlags ()
+                    {8}
+            })
+        }
+    }
+
+    Name (PICF, Zero)
+    Method (_PIC, 1, NotSerialized)  // _PIC: Interrupt Model
+    {
+        PICF = Arg0
+    }
+
+    Scope (_SB)
+    {
+        Scope (PCI0)
+        {
+            Name (PRTP, Package (0x80)
+            {
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }
+            })
+            Name (PRTA, Package (0x80)
+            {
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }
+            })
+            Method (_PRT, 0, NotSerialized)  // _PRT: PCI Routing Table
+            {
+                If ((PICF == Zero))
+                {
+                    Return (PRTP) /* \_SB_.PCI0.PRTP */
+                }
+                Else
+                {
+                    Return (PRTA) /* \_SB_.PCI0.PRTA */
+                }
+            }
+        }
+
+        Field (PCI0.ISA.PIRQ, ByteAcc, NoLock, Preserve)
+        {
+            PRQA,   8, 
+            PRQB,   8, 
+            PRQC,   8, 
+            PRQD,   8, 
+            Offset (0x08), 
+            PRQE,   8, 
+            PRQF,   8, 
+            PRQG,   8, 
+            PRQH,   8
+        }
+
+        Method (IQST, 1, NotSerialized)
+        {
+            If ((0x80 & Arg0))
+            {
+                Return (0x09)
+            }
+
+            Return (0x0B)
+        }
+
+        Method (IQCR, 1, Serialized)
+        {
+            Name (PRR0, ResourceTemplate ()
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, _Y00)
+                {
+                    0x00000000,
+                }
+            })
+            CreateDWordField (PRR0, \_SB.IQCR._Y00._INT, PRRI)  // _INT: Interrupts
+            PRRI = (Arg0 & 0x0F)
+            Return (PRR0) /* \_SB_.IQCR.PRR0 */
+        }
+
+        Device (LNKA)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, Zero)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQA))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQA |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQA))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQA = PRRI /* \_SB_.LNKA._SRS.PRRI */
+            }
+        }
+
+        Device (LNKB)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQB))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQB |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQB))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQB = PRRI /* \_SB_.LNKB._SRS.PRRI */
+            }
+        }
+
+        Device (LNKC)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x02)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQC))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQC |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQC))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQC = PRRI /* \_SB_.LNKC._SRS.PRRI */
+            }
+        }
+
+        Device (LNKD)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x03)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQD))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQD |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQD))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQD = PRRI /* \_SB_.LNKD._SRS.PRRI */
+            }
+        }
+
+        Device (LNKE)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x04)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQE))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQE |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQE))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQE = PRRI /* \_SB_.LNKE._SRS.PRRI */
+            }
+        }
+
+        Device (LNKF)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x05)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQF))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQF |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQF))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQF = PRRI /* \_SB_.LNKF._SRS.PRRI */
+            }
+        }
+
+        Device (LNKG)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x06)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQG))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQG |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQG))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQG = PRRI /* \_SB_.LNKG._SRS.PRRI */
+            }
+        }
+
+        Device (LNKH)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x07)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQH))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQH |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQH))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQH = PRRI /* \_SB_.LNKH._SRS.PRRI */
+            }
+        }
+
+        Device (GSIA)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x10)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000010,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000010,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIB)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x11)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000011,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000011,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIC)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x12)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000012,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000012,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSID)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x13)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000013,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000013,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIE)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x14)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000014,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000014,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIF)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x15)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000015,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000015,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIG)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x16)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000016,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000016,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIH)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x17)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000017,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000017,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+    }
+
+    Scope (_SB.PCI0)
+    {
+        Device (SMB0)
+        {
+            Name (_ADR, 0x001F0003)  // _ADR: Address
+        }
+    }
+
+    Scope (_SB)
+    {
+        Device (\_SB.PCI0.PRES)
+        {
+            Name (_HID, EisaId ("PNP0A06") /* Generic Container Device */)  // _HID: Hardware ID
+            Name (_UID, "CPU Hotplug resources")  // _UID: Unique ID
+            Mutex (CPLK, 0x00)
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0CD8,             // Range Minimum
+                    0x0CD8,             // Range Maximum
+                    0x01,               // Alignment
+                    0x0C,               // Length
+                    )
+            })
+            OperationRegion (PRST, SystemIO, 0x0CD8, 0x0C)
+            Field (PRST, ByteAcc, NoLock, WriteAsZeros)
+            {
+                Offset (0x04), 
+                CPEN,   1, 
+                CINS,   1, 
+                CRMV,   1, 
+                CEJ0,   1, 
+                Offset (0x05), 
+                CCMD,   8
+            }
+
+            Field (PRST, DWordAcc, NoLock, Preserve)
+            {
+                CSEL,   32, 
+                Offset (0x08), 
+                CDAT,   32
+            }
+
+            Method (_INI, 0, Serialized)  // _INI: Initialize
+            {
+                CSEL = Zero
+            }
+        }
+
+        Device (\_SB.CPUS)
+        {
+            Name (_HID, "ACPI0010" /* Processor Container Device */)  // _HID: Hardware ID
+            Name (_CID, EisaId ("PNP0A05") /* Generic Container Device */)  // _CID: Compatible ID
+            Method (CTFY, 2, NotSerialized)
+            {
+                If ((Arg0 == Zero))
+                {
+                    Notify (C000, Arg1)
+                }
+            }
+
+            Method (CSTA, 1, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                \_SB.PCI0.PRES.CSEL = Arg0
+                Local0 = Zero
+                If ((\_SB.PCI0.PRES.CPEN == One))
+                {
+                    Local0 = 0x0F
+                }
+
+                Release (\_SB.PCI0.PRES.CPLK)
+                Return (Local0)
+            }
+
+            Method (CEJ0, 1, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                \_SB.PCI0.PRES.CSEL = Arg0
+                \_SB.PCI0.PRES.CEJ0 = One
+                Release (\_SB.PCI0.PRES.CPLK)
+            }
+
+            Method (CSCN, 0, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                Local0 = One
+                While ((Local0 == One))
+                {
+                    Local0 = Zero
+                    \_SB.PCI0.PRES.CCMD = Zero
+                    If ((\_SB.PCI0.PRES.CINS == One))
+                    {
+                        CTFY (\_SB.PCI0.PRES.CDAT, One)
+                        \_SB.PCI0.PRES.CINS = One
+                        Local0 = One
+                    }
+                    ElseIf ((\_SB.PCI0.PRES.CRMV == One))
+                    {
+                        CTFY (\_SB.PCI0.PRES.CDAT, 0x03)
+                        \_SB.PCI0.PRES.CRMV = One
+                        Local0 = One
+                    }
+                }
+
+                Release (\_SB.PCI0.PRES.CPLK)
+            }
+
+            Method (COST, 4, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                \_SB.PCI0.PRES.CSEL = Arg0
+                \_SB.PCI0.PRES.CCMD = One
+                \_SB.PCI0.PRES.CDAT = Arg1
+                \_SB.PCI0.PRES.CCMD = 0x02
+                \_SB.PCI0.PRES.CDAT = Arg2
+                Release (\_SB.PCI0.PRES.CPLK)
+            }
+
+            Processor (C000, 0x00, 0x00000000, 0x00)
+            {
+                Method (_STA, 0, Serialized)  // _STA: Status
+                {
+                    Return (CSTA (Zero))
+                }
+
+                Name (_MAT, Buffer (0x08)  // _MAT: Multiple APIC Table Entry
+                {
+                     0x00, 0x08, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00   // ........
+                })
+                Method (_OST, 3, Serialized)  // _OST: OSPM Status Indication
+                {
+                    COST (Zero, Arg0, Arg1, Arg2)
+                }
+
+                Name (_PXM, Zero)  // _PXM: Device Proximity
+            }
+        }
+    }
+
+    Method (\_GPE._E02, 0, NotSerialized)  // _Exx: Edge-Triggered GPE, xx=0x00-0xFF
+    {
+        \_SB.CPUS.CSCN ()
+    }
+
+    Device (\_SB.PCI0.MHPD)
+    {
+        Name (_HID, "PNP0A06" /* Generic Container Device */)  // _HID: Hardware ID
+        Name (_UID, "Memory hotplug resources")  // _UID: Unique ID
+        Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+        {
+            IO (Decode16,
+                0x0A00,             // Range Minimum
+                0x0A00,             // Range Maximum
+                0x00,               // Alignment
+                0x18,               // Length
+                )
+        })
+        OperationRegion (HPMR, SystemIO, 0x0A00, 0x18)
+    }
+
+    Device (\_SB.MHPC)
+    {
+        Name (_HID, "PNP0A06" /* Generic Container Device */)  // _HID: Hardware ID
+        Name (_UID, "DIMM devices")  // _UID: Unique ID
+        Name (MDNR, 0x03)
+        Field (\_SB.PCI0.MHPD.HPMR, DWordAcc, NoLock, Preserve)
+        {
+            MRBL,   32, 
+            MRBH,   32, 
+            MRLL,   32, 
+            MRLH,   32, 
+            MPX,    32
+        }
+
+        Field (\_SB.PCI0.MHPD.HPMR, ByteAcc, NoLock, WriteAsZeros)
+        {
+            Offset (0x14), 
+            MES,    1, 
+            MINS,   1, 
+            MRMV,   1, 
+            MEJ,    1
+        }
+
+        Field (\_SB.PCI0.MHPD.HPMR, DWordAcc, NoLock, Preserve)
+        {
+            MSEL,   32, 
+            MOEV,   32, 
+            MOSC,   32
+        }
+
+        Method (_STA, 0, NotSerialized)  // _STA: Status
+        {
+            If ((MDNR == Zero))
+            {
+                Return (Zero)
+            }
+
+            Return (0x0B)
+        }
+
+        Mutex (MLCK, 0x00)
+        Method (MSCN, 0, NotSerialized)
+        {
+            If ((MDNR == Zero))
+            {
+                Return (Zero)
+            }
+
+            Local0 = Zero
+            Acquire (MLCK, 0xFFFF)
+            While ((Local0 < MDNR))
+            {
+                MSEL = Local0
+                If ((MINS == One))
+                {
+                    MTFY (Local0, One)
+                    MINS = One
+                }
+                ElseIf ((MRMV == One))
+                {
+                    MTFY (Local0, 0x03)
+                    MRMV = One
+                }
+
+                Local0 += One
+            }
+
+            Release (MLCK)
+            Return (One)
+        }
+
+        Method (MRST, 1, NotSerialized)
+        {
+            Local0 = Zero
+            Acquire (MLCK, 0xFFFF)
+            MSEL = ToInteger (Arg0)
+            If ((MES == One))
+            {
+                Local0 = 0x0F
+            }
+
+            Release (MLCK)
+            Return (Local0)
+        }
+
+        Method (MCRS, 1, Serialized)
+        {
+            Acquire (MLCK, 0xFFFF)
+            MSEL = ToInteger (Arg0)
+            Name (MR64, ResourceTemplate ()
+            {
+                QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
+                    0x0000000000000000, // Granularity
+                    0x0000000000000000, // Range Minimum
+                    0xFFFFFFFFFFFFFFFE, // Range Maximum
+                    0x0000000000000000, // Translation Offset
+                    0xFFFFFFFFFFFFFFFF, // Length
+                    ,, _Y01, AddressRangeMemory, TypeStatic)
+            })
+            CreateDWordField (MR64, \_SB.MHPC.MCRS._Y01._MIN, MINL)  // _MIN: Minimum Base Address
+            CreateDWordField (MR64, 0x12, MINH)
+            CreateDWordField (MR64, \_SB.MHPC.MCRS._Y01._LEN, LENL)  // _LEN: Length
+            CreateDWordField (MR64, 0x2A, LENH)
+            CreateDWordField (MR64, \_SB.MHPC.MCRS._Y01._MAX, MAXL)  // _MAX: Maximum Base Address
+            CreateDWordField (MR64, 0x1A, MAXH)
+            MINH = MRBH /* \_SB_.MHPC.MRBH */
+            MINL = MRBL /* \_SB_.MHPC.MRBL */
+            LENH = MRLH /* \_SB_.MHPC.MRLH */
+            LENL = MRLL /* \_SB_.MHPC.MRLL */
+            MAXL = (MINL + LENL) /* \_SB_.MHPC.MCRS.LENL */
+            MAXH = (MINH + LENH) /* \_SB_.MHPC.MCRS.LENH */
+            If ((MAXL < MINL))
+            {
+                MAXH += One
+            }
+
+            If ((MAXL < One))
+            {
+                MAXH -= One
+            }
+
+            MAXL -= One
+            If ((MAXH == Zero))
+            {
+                Name (MR32, ResourceTemplate ()
+                {
+                    DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
+                        0x00000000,         // Granularity
+                        0x00000000,         // Range Minimum
+                        0xFFFFFFFE,         // Range Maximum
+                        0x00000000,         // Translation Offset
+                        0xFFFFFFFF,         // Length
+                        ,, _Y02, AddressRangeMemory, TypeStatic)
+                })
+                CreateDWordField (MR32, \_SB.MHPC.MCRS._Y02._MIN, MIN)  // _MIN: Minimum Base Address
+                CreateDWordField (MR32, \_SB.MHPC.MCRS._Y02._MAX, MAX)  // _MAX: Maximum Base Address
+                CreateDWordField (MR32, \_SB.MHPC.MCRS._Y02._LEN, LEN)  // _LEN: Length
+                MIN = MINL /* \_SB_.MHPC.MCRS.MINL */
+                MAX = MAXL /* \_SB_.MHPC.MCRS.MAXL */
+                LEN = LENL /* \_SB_.MHPC.MCRS.LENL */
+                Release (MLCK)
+                Return (MR32) /* \_SB_.MHPC.MCRS.MR32 */
+            }
+
+            Release (MLCK)
+            Return (MR64) /* \_SB_.MHPC.MCRS.MR64 */
+        }
+
+        Method (MPXM, 1, NotSerialized)
+        {
+            Acquire (MLCK, 0xFFFF)
+            MSEL = ToInteger (Arg0)
+            Local0 = MPX /* \_SB_.MHPC.MPX_ */
+            Release (MLCK)
+            Return (Local0)
+        }
+
+        Method (MOST, 4, NotSerialized)
+        {
+            Acquire (MLCK, 0xFFFF)
+            MSEL = ToInteger (Arg0)
+            MOEV = Arg1
+            MOSC = Arg2
+            Release (MLCK)
+        }
+
+        Method (MEJ0, 2, NotSerialized)
+        {
+            Acquire (MLCK, 0xFFFF)
+            MSEL = ToInteger (Arg0)
+            MEJ = One
+            Release (MLCK)
+        }
+
+        Device (MP00)
+        {
+            Name (_UID, "0x00")  // _UID: Unique ID
+            Name (_HID, EisaId ("PNP0C80") /* Memory Device */)  // _HID: Hardware ID
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (MCRS (_UID))
+            }
+
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (MRST (_UID))
+            }
+
+            Method (_PXM, 0, NotSerialized)  // _PXM: Device Proximity
+            {
+                Return (MPXM (_UID))
+            }
+
+            Method (_OST, 3, NotSerialized)  // _OST: OSPM Status Indication
+            {
+                MOST (_UID, Arg0, Arg1, Arg2)
+            }
+
+            Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+            {
+                MEJ0 (_UID, Arg0)
+            }
+        }
+
+        Device (MP01)
+        {
+            Name (_UID, "0x01")  // _UID: Unique ID
+            Name (_HID, EisaId ("PNP0C80") /* Memory Device */)  // _HID: Hardware ID
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (MCRS (_UID))
+            }
+
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (MRST (_UID))
+            }
+
+            Method (_PXM, 0, NotSerialized)  // _PXM: Device Proximity
+            {
+                Return (MPXM (_UID))
+            }
+
+            Method (_OST, 3, NotSerialized)  // _OST: OSPM Status Indication
+            {
+                MOST (_UID, Arg0, Arg1, Arg2)
+            }
+
+            Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+            {
+                MEJ0 (_UID, Arg0)
+            }
+        }
+
+        Device (MP02)
+        {
+            Name (_UID, "0x02")  // _UID: Unique ID
+            Name (_HID, EisaId ("PNP0C80") /* Memory Device */)  // _HID: Hardware ID
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (MCRS (_UID))
+            }
+
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (MRST (_UID))
+            }
+
+            Method (_PXM, 0, NotSerialized)  // _PXM: Device Proximity
+            {
+                Return (MPXM (_UID))
+            }
+
+            Method (_OST, 3, NotSerialized)  // _OST: OSPM Status Indication
+            {
+                MOST (_UID, Arg0, Arg1, Arg2)
+            }
+
+            Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+            {
+                MEJ0 (_UID, Arg0)
+            }
+        }
+
+        Method (MTFY, 2, NotSerialized)
+        {
+            If ((Arg0 == Zero))
+            {
+                Notify (MP00, Arg1)
+            }
+
+            If ((Arg0 == One))
+            {
+                Notify (MP01, Arg1)
+            }
+
+            If ((Arg0 == 0x02))
+            {
+                Notify (MP02, Arg1)
+            }
+        }
+    }
+
+    Method (\_GPE._E03, 0, NotSerialized)  // _Exx: Edge-Triggered GPE, xx=0x00-0xFF
+    {
+        \_SB.MHPC.MSCN ()
+    }
+
+    Scope (_GPE)
+    {
+        Name (_HID, "ACPI0006" /* GPE Block Device */)  // _HID: Hardware ID
+    }
+
+    Scope (\_SB.PCI0)
+    {
+        Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+        {
+            WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
+                0x0000,             // Granularity
+                0x0000,             // Range Minimum
+                0x00FF,             // Range Maximum
+                0x0000,             // Translation Offset
+                0x0100,             // Length
+                ,, )
+            IO (Decode16,
+                0x0CF8,             // Range Minimum
+                0x0CF8,             // Range Maximum
+                0x01,               // Alignment
+                0x08,               // Length
+                )
+            WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
+                0x0000,             // Granularity
+                0x0000,             // Range Minimum
+                0x0CF7,             // Range Maximum
+                0x0000,             // Translation Offset
+                0x0CF8,             // Length
+                ,, , TypeStatic, DenseTranslation)
+            WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
+                0x0000,             // Granularity
+                0x0D00,             // Range Minimum
+                0xFFFF,             // Range Maximum
+                0x0000,             // Translation Offset
+                0xF300,             // Length
+                ,, , TypeStatic, DenseTranslation)
+            DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
+                0x00000000,         // Granularity
+                0x000A0000,         // Range Minimum
+                0x000BFFFF,         // Range Maximum
+                0x00000000,         // Translation Offset
+                0x00020000,         // Length
+                ,, , AddressRangeMemory, TypeStatic)
+            DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
+                0x00000000,         // Granularity
+                0x08000000,         // Range Minimum
+                0xAFFFFFFF,         // Range Maximum
+                0x00000000,         // Translation Offset
+                0xA8000000,         // Length
+                ,, , AddressRangeMemory, TypeStatic)
+            DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
+                0x00000000,         // Granularity
+                0xC0000000,         // Range Minimum
+                0xFEBFFFFF,         // Range Maximum
+                0x00000000,         // Translation Offset
+                0x3EC00000,         // Length
+                ,, , AddressRangeMemory, TypeStatic)
+            QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
+                0x0000000000000000, // Granularity
+                0x0000000200000000, // Range Minimum
+                0x00000009FFFFFFFF, // Range Maximum
+                0x0000000000000000, // Translation Offset
+                0x0000000800000000, // Length
+                ,, , AddressRangeMemory, TypeStatic)
+        })
+        Device (GPE0)
+        {
+            Name (_HID, "PNP0A06" /* Generic Container Device */)  // _HID: Hardware ID
+            Name (_UID, "GPE0 resources")  // _UID: Unique ID
+            Name (_STA, 0x0B)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0620,             // Range Minimum
+                    0x0620,             // Range Maximum
+                    0x01,               // Alignment
+                    0x10,               // Length
+                    )
+            })
+        }
+    }
+
+    Scope (\)
+    {
+        Name (_S3, Package (0x04)  // _S3_: S3 System State
+        {
+            One, 
+            One, 
+            Zero, 
+            Zero
+        })
+        Name (_S4, Package (0x04)  // _S4_: S4 System State
+        {
+            0x02, 
+            0x02, 
+            Zero, 
+            Zero
+        })
+        Name (_S5, Package (0x04)  // _S5_: S5 System State
+        {
+            Zero, 
+            Zero, 
+            Zero, 
+            Zero
+        })
+    }
+
+    Scope (\_SB.PCI0)
+    {
+        Device (FWCF)
+        {
+            Name (_HID, "QEMU0002")  // _HID: Hardware ID
+            Name (_STA, 0x0B)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0510,             // Range Minimum
+                    0x0510,             // Range Maximum
+                    0x01,               // Alignment
+                    0x0C,               // Length
+                    )
+            })
+        }
+    }
+
+    Scope (\_SB)
+    {
+        Scope (PCI0)
+        {
+            Device (S00)
+            {
+                Name (_ADR, Zero)  // _ADR: Address
+            }
+
+            Device (S08)
+            {
+                Name (_ADR, 0x00010000)  // _ADR: Address
+                Method (_S1D, 0, NotSerialized)  // _S1D: S1 Device State
+                {
+                    Return (Zero)
+                }
+
+                Method (_S2D, 0, NotSerialized)  // _S2D: S2 Device State
+                {
+                    Return (Zero)
+                }
+
+                Method (_S3D, 0, NotSerialized)  // _S3D: S3 Device State
+                {
+                    Return (Zero)
+                }
+            }
+
+            Method (PCNT, 0, NotSerialized)
+            {
+            }
+        }
+    }
+}
+
diff --git a/tests/data/acpi/q35/DSDT.mmio64 b/tests/data/acpi/q35/DSDT.mmio64
index 99b7b2ae4ba36b8ca7901626c1561d29100087d2..092fdc32628f5a145b510c2a46de8b02222b1951 100644
GIT binary patch
delta 33
pcmaFndf%1HCD<k8z7hii<H?O&wMv{GtTFMyPVoW`lP4(o0|3FB3YP!?

delta 41
wcmccb`plKfCD<k8nGyp7W9mk(S|v_@)|mKUr+5MP$rF_P*+tj_oc%%=01~VVo&W#<

diff --git a/tests/data/acpi/q35/DSDT.mmio64.dsl b/tests/data/acpi/q35/DSDT.mmio64.dsl
new file mode 100644
index 0000000000..a724c886e8
--- /dev/null
+++ b/tests/data/acpi/q35/DSDT.mmio64.dsl
@@ -0,0 +1,3377 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembling to symbolic ASL+ operators
+ *
+ * Disassembly of tests/data/acpi/q35/DSDT.mmio64, Tue Aug  4 11:14:15 2020
+ *
+ * Original Table Header:
+ *     Signature        "DSDT"
+ *     Length           0x00002268 (8808)
+ *     Revision         0x01 **** 32-bit table (V1), no 64-bit math support
+ *     Checksum         0x59
+ *     OEM ID           "BOCHS "
+ *     OEM Table ID     "BXPCDSDT"
+ *     OEM Revision     0x00000001 (1)
+ *     Compiler ID      "BXPC"
+ *     Compiler Version 0x00000001 (1)
+ */
+DefinitionBlock ("", "DSDT", 1, "BOCHS ", "BXPCDSDT", 0x00000001)
+{
+    Scope (\)
+    {
+        OperationRegion (DBG, SystemIO, 0x0402, One)
+        Field (DBG, ByteAcc, NoLock, Preserve)
+        {
+            DBGB,   8
+        }
+
+        Method (DBUG, 1, NotSerialized)
+        {
+            ToHexString (Arg0, Local0)
+            ToBuffer (Local0, Local0)
+            Local1 = (SizeOf (Local0) - One)
+            Local2 = Zero
+            While ((Local2 < Local1))
+            {
+                DBGB = DerefOf (Local0 [Local2])
+                Local2++
+            }
+
+            DBGB = 0x0A
+        }
+    }
+
+    Scope (_SB)
+    {
+        Device (PCI0)
+        {
+            Name (_HID, EisaId ("PNP0A08") /* PCI Express Bus */)  // _HID: Hardware ID
+            Name (_CID, EisaId ("PNP0A03") /* PCI Bus */)  // _CID: Compatible ID
+            Name (_ADR, Zero)  // _ADR: Address
+            Name (_UID, Zero)  // _UID: Unique ID
+            Method (_OSC, 4, NotSerialized)  // _OSC: Operating System Capabilities
+            {
+                CreateDWordField (Arg3, Zero, CDW1)
+                If ((Arg0 == ToUUID ("33db4d5b-1ff7-401c-9657-7441c03dd766") /* PCI Host Bridge Device */))
+                {
+                    CreateDWordField (Arg3, 0x04, CDW2)
+                    CreateDWordField (Arg3, 0x08, CDW3)
+                    Local0 = CDW3 /* \_SB_.PCI0._OSC.CDW3 */
+                    Local0 &= 0x1F
+                    If ((Arg1 != One))
+                    {
+                        CDW1 |= 0x08
+                    }
+
+                    If ((CDW3 != Local0))
+                    {
+                        CDW1 |= 0x10
+                    }
+
+                    CDW3 = Local0
+                }
+                Else
+                {
+                    CDW1 |= 0x04
+                }
+
+                Return (Arg3)
+            }
+        }
+    }
+
+    Scope (_SB)
+    {
+        Device (HPET)
+        {
+            Name (_HID, EisaId ("PNP0103") /* HPET System Timer */)  // _HID: Hardware ID
+            Name (_UID, Zero)  // _UID: Unique ID
+            OperationRegion (HPTM, SystemMemory, 0xFED00000, 0x0400)
+            Field (HPTM, DWordAcc, Lock, Preserve)
+            {
+                VEND,   32, 
+                PRD,    32
+            }
+
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Local0 = VEND /* \_SB_.HPET.VEND */
+                Local1 = PRD /* \_SB_.HPET.PRD_ */
+                Local0 >>= 0x10
+                If (((Local0 == Zero) || (Local0 == 0xFFFF)))
+                {
+                    Return (Zero)
+                }
+
+                If (((Local1 == Zero) || (Local1 > 0x05F5E100)))
+                {
+                    Return (Zero)
+                }
+
+                Return (0x0F)
+            }
+
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadOnly,
+                    0xFED00000,         // Address Base
+                    0x00000400,         // Address Length
+                    )
+            })
+        }
+    }
+
+    Scope (_SB.PCI0)
+    {
+        Device (ISA)
+        {
+            Name (_ADR, 0x001F0000)  // _ADR: Address
+            OperationRegion (PIRQ, PCI_Config, 0x60, 0x0C)
+        }
+    }
+
+    Scope (_SB.PCI0.ISA)
+    {
+        Device (KBD)
+        {
+            Name (_HID, EisaId ("PNP0303") /* IBM Enhanced Keyboard (101/102-key, PS/2 Mouse) */)  // _HID: Hardware ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0060,             // Range Minimum
+                    0x0060,             // Range Maximum
+                    0x01,               // Alignment
+                    0x01,               // Length
+                    )
+                IO (Decode16,
+                    0x0064,             // Range Minimum
+                    0x0064,             // Range Maximum
+                    0x01,               // Alignment
+                    0x01,               // Length
+                    )
+                IRQNoFlags ()
+                    {1}
+            })
+        }
+
+        Device (MOU)
+        {
+            Name (_HID, EisaId ("PNP0F13") /* PS/2 Mouse */)  // _HID: Hardware ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IRQNoFlags ()
+                    {12}
+            })
+        }
+
+        Device (LPT1)
+        {
+            Name (_HID, EisaId ("PNP0400") /* Standard LPT Parallel Port */)  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0378,             // Range Minimum
+                    0x0378,             // Range Maximum
+                    0x08,               // Alignment
+                    0x08,               // Length
+                    )
+                IRQNoFlags ()
+                    {7}
+            })
+        }
+
+        Device (COM1)
+        {
+            Name (_HID, EisaId ("PNP0501") /* 16550A-compatible COM Serial Port */)  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x03F8,             // Range Minimum
+                    0x03F8,             // Range Maximum
+                    0x00,               // Alignment
+                    0x08,               // Length
+                    )
+                IRQNoFlags ()
+                    {4}
+            })
+        }
+
+        Device (RTC)
+        {
+            Name (_HID, EisaId ("PNP0B00") /* AT Real-Time Clock */)  // _HID: Hardware ID
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0070,             // Range Minimum
+                    0x0070,             // Range Maximum
+                    0x01,               // Alignment
+                    0x08,               // Length
+                    )
+                IRQNoFlags ()
+                    {8}
+            })
+        }
+    }
+
+    Name (PICF, Zero)
+    Method (_PIC, 1, NotSerialized)  // _PIC: Interrupt Model
+    {
+        PICF = Arg0
+    }
+
+    Scope (_SB)
+    {
+        Scope (PCI0)
+        {
+            Name (PRTP, Package (0x80)
+            {
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }
+            })
+            Name (PRTA, Package (0x80)
+            {
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }
+            })
+            Method (_PRT, 0, NotSerialized)  // _PRT: PCI Routing Table
+            {
+                If ((PICF == Zero))
+                {
+                    Return (PRTP) /* \_SB_.PCI0.PRTP */
+                }
+                Else
+                {
+                    Return (PRTA) /* \_SB_.PCI0.PRTA */
+                }
+            }
+        }
+
+        Field (PCI0.ISA.PIRQ, ByteAcc, NoLock, Preserve)
+        {
+            PRQA,   8, 
+            PRQB,   8, 
+            PRQC,   8, 
+            PRQD,   8, 
+            Offset (0x08), 
+            PRQE,   8, 
+            PRQF,   8, 
+            PRQG,   8, 
+            PRQH,   8
+        }
+
+        Method (IQST, 1, NotSerialized)
+        {
+            If ((0x80 & Arg0))
+            {
+                Return (0x09)
+            }
+
+            Return (0x0B)
+        }
+
+        Method (IQCR, 1, Serialized)
+        {
+            Name (PRR0, ResourceTemplate ()
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, _Y00)
+                {
+                    0x00000000,
+                }
+            })
+            CreateDWordField (PRR0, \_SB.IQCR._Y00._INT, PRRI)  // _INT: Interrupts
+            PRRI = (Arg0 & 0x0F)
+            Return (PRR0) /* \_SB_.IQCR.PRR0 */
+        }
+
+        Device (LNKA)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, Zero)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQA))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQA |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQA))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQA = PRRI /* \_SB_.LNKA._SRS.PRRI */
+            }
+        }
+
+        Device (LNKB)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQB))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQB |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQB))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQB = PRRI /* \_SB_.LNKB._SRS.PRRI */
+            }
+        }
+
+        Device (LNKC)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x02)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQC))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQC |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQC))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQC = PRRI /* \_SB_.LNKC._SRS.PRRI */
+            }
+        }
+
+        Device (LNKD)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x03)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQD))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQD |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQD))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQD = PRRI /* \_SB_.LNKD._SRS.PRRI */
+            }
+        }
+
+        Device (LNKE)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x04)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQE))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQE |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQE))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQE = PRRI /* \_SB_.LNKE._SRS.PRRI */
+            }
+        }
+
+        Device (LNKF)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x05)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQF))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQF |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQF))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQF = PRRI /* \_SB_.LNKF._SRS.PRRI */
+            }
+        }
+
+        Device (LNKG)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x06)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQG))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQG |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQG))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQG = PRRI /* \_SB_.LNKG._SRS.PRRI */
+            }
+        }
+
+        Device (LNKH)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x07)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQH))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQH |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQH))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQH = PRRI /* \_SB_.LNKH._SRS.PRRI */
+            }
+        }
+
+        Device (GSIA)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x10)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000010,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000010,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIB)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x11)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000011,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000011,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIC)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x12)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000012,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000012,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSID)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x13)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000013,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000013,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIE)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x14)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000014,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000014,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIF)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x15)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000015,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000015,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIG)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x16)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000016,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000016,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIH)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x17)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000017,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000017,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+    }
+
+    Scope (_SB.PCI0)
+    {
+        Device (SMB0)
+        {
+            Name (_ADR, 0x001F0003)  // _ADR: Address
+        }
+    }
+
+    Scope (_SB)
+    {
+        Device (\_SB.PCI0.PRES)
+        {
+            Name (_HID, EisaId ("PNP0A06") /* Generic Container Device */)  // _HID: Hardware ID
+            Name (_UID, "CPU Hotplug resources")  // _UID: Unique ID
+            Mutex (CPLK, 0x00)
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0CD8,             // Range Minimum
+                    0x0CD8,             // Range Maximum
+                    0x01,               // Alignment
+                    0x0C,               // Length
+                    )
+            })
+            OperationRegion (PRST, SystemIO, 0x0CD8, 0x0C)
+            Field (PRST, ByteAcc, NoLock, WriteAsZeros)
+            {
+                Offset (0x04), 
+                CPEN,   1, 
+                CINS,   1, 
+                CRMV,   1, 
+                CEJ0,   1, 
+                Offset (0x05), 
+                CCMD,   8
+            }
+
+            Field (PRST, DWordAcc, NoLock, Preserve)
+            {
+                CSEL,   32, 
+                Offset (0x08), 
+                CDAT,   32
+            }
+
+            Method (_INI, 0, Serialized)  // _INI: Initialize
+            {
+                CSEL = Zero
+            }
+        }
+
+        Device (\_SB.CPUS)
+        {
+            Name (_HID, "ACPI0010" /* Processor Container Device */)  // _HID: Hardware ID
+            Name (_CID, EisaId ("PNP0A05") /* Generic Container Device */)  // _CID: Compatible ID
+            Method (CTFY, 2, NotSerialized)
+            {
+                If ((Arg0 == Zero))
+                {
+                    Notify (C000, Arg1)
+                }
+            }
+
+            Method (CSTA, 1, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                \_SB.PCI0.PRES.CSEL = Arg0
+                Local0 = Zero
+                If ((\_SB.PCI0.PRES.CPEN == One))
+                {
+                    Local0 = 0x0F
+                }
+
+                Release (\_SB.PCI0.PRES.CPLK)
+                Return (Local0)
+            }
+
+            Method (CEJ0, 1, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                \_SB.PCI0.PRES.CSEL = Arg0
+                \_SB.PCI0.PRES.CEJ0 = One
+                Release (\_SB.PCI0.PRES.CPLK)
+            }
+
+            Method (CSCN, 0, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                Local0 = One
+                While ((Local0 == One))
+                {
+                    Local0 = Zero
+                    \_SB.PCI0.PRES.CCMD = Zero
+                    If ((\_SB.PCI0.PRES.CINS == One))
+                    {
+                        CTFY (\_SB.PCI0.PRES.CDAT, One)
+                        \_SB.PCI0.PRES.CINS = One
+                        Local0 = One
+                    }
+                    ElseIf ((\_SB.PCI0.PRES.CRMV == One))
+                    {
+                        CTFY (\_SB.PCI0.PRES.CDAT, 0x03)
+                        \_SB.PCI0.PRES.CRMV = One
+                        Local0 = One
+                    }
+                }
+
+                Release (\_SB.PCI0.PRES.CPLK)
+            }
+
+            Method (COST, 4, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                \_SB.PCI0.PRES.CSEL = Arg0
+                \_SB.PCI0.PRES.CCMD = One
+                \_SB.PCI0.PRES.CDAT = Arg1
+                \_SB.PCI0.PRES.CCMD = 0x02
+                \_SB.PCI0.PRES.CDAT = Arg2
+                Release (\_SB.PCI0.PRES.CPLK)
+            }
+
+            Processor (C000, 0x00, 0x00000000, 0x00)
+            {
+                Method (_STA, 0, Serialized)  // _STA: Status
+                {
+                    Return (CSTA (Zero))
+                }
+
+                Name (_MAT, Buffer (0x08)  // _MAT: Multiple APIC Table Entry
+                {
+                     0x00, 0x08, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00   // ........
+                })
+                Method (_OST, 3, Serialized)  // _OST: OSPM Status Indication
+                {
+                    COST (Zero, Arg0, Arg1, Arg2)
+                }
+
+                Name (_PXM, Zero)  // _PXM: Device Proximity
+            }
+        }
+    }
+
+    Method (\_GPE._E02, 0, NotSerialized)  // _Exx: Edge-Triggered GPE, xx=0x00-0xFF
+    {
+        \_SB.CPUS.CSCN ()
+    }
+
+    Device (\_SB.PCI0.MHPD)
+    {
+        Name (_HID, "PNP0A06" /* Generic Container Device */)  // _HID: Hardware ID
+        Name (_UID, "Memory hotplug resources")  // _UID: Unique ID
+        Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+        {
+            IO (Decode16,
+                0x0A00,             // Range Minimum
+                0x0A00,             // Range Maximum
+                0x00,               // Alignment
+                0x18,               // Length
+                )
+        })
+        OperationRegion (HPMR, SystemIO, 0x0A00, 0x18)
+    }
+
+    Device (\_SB.MHPC)
+    {
+        Name (_HID, "PNP0A06" /* Generic Container Device */)  // _HID: Hardware ID
+        Name (_UID, "DIMM devices")  // _UID: Unique ID
+        Name (MDNR, One)
+        Field (\_SB.PCI0.MHPD.HPMR, DWordAcc, NoLock, Preserve)
+        {
+            MRBL,   32, 
+            MRBH,   32, 
+            MRLL,   32, 
+            MRLH,   32, 
+            MPX,    32
+        }
+
+        Field (\_SB.PCI0.MHPD.HPMR, ByteAcc, NoLock, WriteAsZeros)
+        {
+            Offset (0x14), 
+            MES,    1, 
+            MINS,   1, 
+            MRMV,   1, 
+            MEJ,    1
+        }
+
+        Field (\_SB.PCI0.MHPD.HPMR, DWordAcc, NoLock, Preserve)
+        {
+            MSEL,   32, 
+            MOEV,   32, 
+            MOSC,   32
+        }
+
+        Method (_STA, 0, NotSerialized)  // _STA: Status
+        {
+            If ((MDNR == Zero))
+            {
+                Return (Zero)
+            }
+
+            Return (0x0B)
+        }
+
+        Mutex (MLCK, 0x00)
+        Method (MSCN, 0, NotSerialized)
+        {
+            If ((MDNR == Zero))
+            {
+                Return (Zero)
+            }
+
+            Local0 = Zero
+            Acquire (MLCK, 0xFFFF)
+            While ((Local0 < MDNR))
+            {
+                MSEL = Local0
+                If ((MINS == One))
+                {
+                    MTFY (Local0, One)
+                    MINS = One
+                }
+                ElseIf ((MRMV == One))
+                {
+                    MTFY (Local0, 0x03)
+                    MRMV = One
+                }
+
+                Local0 += One
+            }
+
+            Release (MLCK)
+            Return (One)
+        }
+
+        Method (MRST, 1, NotSerialized)
+        {
+            Local0 = Zero
+            Acquire (MLCK, 0xFFFF)
+            MSEL = ToInteger (Arg0)
+            If ((MES == One))
+            {
+                Local0 = 0x0F
+            }
+
+            Release (MLCK)
+            Return (Local0)
+        }
+
+        Method (MCRS, 1, Serialized)
+        {
+            Acquire (MLCK, 0xFFFF)
+            MSEL = ToInteger (Arg0)
+            Name (MR64, ResourceTemplate ()
+            {
+                QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
+                    0x0000000000000000, // Granularity
+                    0x0000000000000000, // Range Minimum
+                    0xFFFFFFFFFFFFFFFE, // Range Maximum
+                    0x0000000000000000, // Translation Offset
+                    0xFFFFFFFFFFFFFFFF, // Length
+                    ,, _Y01, AddressRangeMemory, TypeStatic)
+            })
+            CreateDWordField (MR64, \_SB.MHPC.MCRS._Y01._MIN, MINL)  // _MIN: Minimum Base Address
+            CreateDWordField (MR64, 0x12, MINH)
+            CreateDWordField (MR64, \_SB.MHPC.MCRS._Y01._LEN, LENL)  // _LEN: Length
+            CreateDWordField (MR64, 0x2A, LENH)
+            CreateDWordField (MR64, \_SB.MHPC.MCRS._Y01._MAX, MAXL)  // _MAX: Maximum Base Address
+            CreateDWordField (MR64, 0x1A, MAXH)
+            MINH = MRBH /* \_SB_.MHPC.MRBH */
+            MINL = MRBL /* \_SB_.MHPC.MRBL */
+            LENH = MRLH /* \_SB_.MHPC.MRLH */
+            LENL = MRLL /* \_SB_.MHPC.MRLL */
+            MAXL = (MINL + LENL) /* \_SB_.MHPC.MCRS.LENL */
+            MAXH = (MINH + LENH) /* \_SB_.MHPC.MCRS.LENH */
+            If ((MAXL < MINL))
+            {
+                MAXH += One
+            }
+
+            If ((MAXL < One))
+            {
+                MAXH -= One
+            }
+
+            MAXL -= One
+            If ((MAXH == Zero))
+            {
+                Name (MR32, ResourceTemplate ()
+                {
+                    DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
+                        0x00000000,         // Granularity
+                        0x00000000,         // Range Minimum
+                        0xFFFFFFFE,         // Range Maximum
+                        0x00000000,         // Translation Offset
+                        0xFFFFFFFF,         // Length
+                        ,, _Y02, AddressRangeMemory, TypeStatic)
+                })
+                CreateDWordField (MR32, \_SB.MHPC.MCRS._Y02._MIN, MIN)  // _MIN: Minimum Base Address
+                CreateDWordField (MR32, \_SB.MHPC.MCRS._Y02._MAX, MAX)  // _MAX: Maximum Base Address
+                CreateDWordField (MR32, \_SB.MHPC.MCRS._Y02._LEN, LEN)  // _LEN: Length
+                MIN = MINL /* \_SB_.MHPC.MCRS.MINL */
+                MAX = MAXL /* \_SB_.MHPC.MCRS.MAXL */
+                LEN = LENL /* \_SB_.MHPC.MCRS.LENL */
+                Release (MLCK)
+                Return (MR32) /* \_SB_.MHPC.MCRS.MR32 */
+            }
+
+            Release (MLCK)
+            Return (MR64) /* \_SB_.MHPC.MCRS.MR64 */
+        }
+
+        Method (MPXM, 1, NotSerialized)
+        {
+            Acquire (MLCK, 0xFFFF)
+            MSEL = ToInteger (Arg0)
+            Local0 = MPX /* \_SB_.MHPC.MPX_ */
+            Release (MLCK)
+            Return (Local0)
+        }
+
+        Method (MOST, 4, NotSerialized)
+        {
+            Acquire (MLCK, 0xFFFF)
+            MSEL = ToInteger (Arg0)
+            MOEV = Arg1
+            MOSC = Arg2
+            Release (MLCK)
+        }
+
+        Method (MEJ0, 2, NotSerialized)
+        {
+            Acquire (MLCK, 0xFFFF)
+            MSEL = ToInteger (Arg0)
+            MEJ = One
+            Release (MLCK)
+        }
+
+        Device (MP00)
+        {
+            Name (_UID, "0x00")  // _UID: Unique ID
+            Name (_HID, EisaId ("PNP0C80") /* Memory Device */)  // _HID: Hardware ID
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (MCRS (_UID))
+            }
+
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (MRST (_UID))
+            }
+
+            Method (_PXM, 0, NotSerialized)  // _PXM: Device Proximity
+            {
+                Return (MPXM (_UID))
+            }
+
+            Method (_OST, 3, NotSerialized)  // _OST: OSPM Status Indication
+            {
+                MOST (_UID, Arg0, Arg1, Arg2)
+            }
+
+            Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+            {
+                MEJ0 (_UID, Arg0)
+            }
+        }
+
+        Method (MTFY, 2, NotSerialized)
+        {
+            If ((Arg0 == Zero))
+            {
+                Notify (MP00, Arg1)
+            }
+        }
+    }
+
+    Method (\_GPE._E03, 0, NotSerialized)  // _Exx: Edge-Triggered GPE, xx=0x00-0xFF
+    {
+        \_SB.MHPC.MSCN ()
+    }
+
+    Scope (_GPE)
+    {
+        Name (_HID, "ACPI0006" /* GPE Block Device */)  // _HID: Hardware ID
+    }
+
+    Scope (\_SB.PCI0)
+    {
+        Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+        {
+            WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
+                0x0000,             // Granularity
+                0x0000,             // Range Minimum
+                0x00FF,             // Range Maximum
+                0x0000,             // Translation Offset
+                0x0100,             // Length
+                ,, )
+            IO (Decode16,
+                0x0CF8,             // Range Minimum
+                0x0CF8,             // Range Maximum
+                0x01,               // Alignment
+                0x08,               // Length
+                )
+            WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
+                0x0000,             // Granularity
+                0x0000,             // Range Minimum
+                0x0CF7,             // Range Maximum
+                0x0000,             // Translation Offset
+                0x0CF8,             // Length
+                ,, , TypeStatic, DenseTranslation)
+            WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
+                0x0000,             // Granularity
+                0x0D00,             // Range Minimum
+                0xFFFF,             // Range Maximum
+                0x0000,             // Translation Offset
+                0xF300,             // Length
+                ,, , TypeStatic, DenseTranslation)
+            DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
+                0x00000000,         // Granularity
+                0x000A0000,         // Range Minimum
+                0x000BFFFF,         // Range Maximum
+                0x00000000,         // Translation Offset
+                0x00020000,         // Length
+                ,, , AddressRangeMemory, TypeStatic)
+            DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
+                0x00000000,         // Granularity
+                0x08000000,         // Range Minimum
+                0xAFFFFFFF,         // Range Maximum
+                0x00000000,         // Translation Offset
+                0xA8000000,         // Length
+                ,, , AddressRangeMemory, TypeStatic)
+            DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
+                0x00000000,         // Granularity
+                0xC0000000,         // Range Minimum
+                0xFEBFFFFF,         // Range Maximum
+                0x00000000,         // Translation Offset
+                0x3EC00000,         // Length
+                ,, , AddressRangeMemory, TypeStatic)
+            QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
+                0x0000000000000000, // Granularity
+                0x0000000200000000, // Range Minimum
+                0x00000009FFFFFFFF, // Range Maximum
+                0x0000000000000000, // Translation Offset
+                0x0000000800000000, // Length
+                ,, , AddressRangeMemory, TypeStatic)
+        })
+        Device (GPE0)
+        {
+            Name (_HID, "PNP0A06" /* Generic Container Device */)  // _HID: Hardware ID
+            Name (_UID, "GPE0 resources")  // _UID: Unique ID
+            Name (_STA, 0x0B)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0620,             // Range Minimum
+                    0x0620,             // Range Maximum
+                    0x01,               // Alignment
+                    0x10,               // Length
+                    )
+            })
+        }
+    }
+
+    Scope (\)
+    {
+        Name (_S3, Package (0x04)  // _S3_: S3 System State
+        {
+            One, 
+            One, 
+            Zero, 
+            Zero
+        })
+        Name (_S4, Package (0x04)  // _S4_: S4 System State
+        {
+            0x02, 
+            0x02, 
+            Zero, 
+            Zero
+        })
+        Name (_S5, Package (0x04)  // _S5_: S5 System State
+        {
+            Zero, 
+            Zero, 
+            Zero, 
+            Zero
+        })
+    }
+
+    Scope (\_SB.PCI0)
+    {
+        Device (FWCF)
+        {
+            Name (_HID, "QEMU0002")  // _HID: Hardware ID
+            Name (_STA, 0x0B)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0510,             // Range Minimum
+                    0x0510,             // Range Maximum
+                    0x01,               // Alignment
+                    0x0C,               // Length
+                    )
+            })
+        }
+    }
+
+    Scope (\_SB)
+    {
+        Scope (PCI0)
+        {
+            Device (S00)
+            {
+                Name (_ADR, Zero)  // _ADR: Address
+            }
+
+            Device (S08)
+            {
+                Name (_ADR, 0x00010000)  // _ADR: Address
+                Method (_S1D, 0, NotSerialized)  // _S1D: S1 Device State
+                {
+                    Return (Zero)
+                }
+
+                Method (_S2D, 0, NotSerialized)  // _S2D: S2 Device State
+                {
+                    Return (Zero)
+                }
+
+                Method (_S3D, 0, NotSerialized)  // _S3D: S3 Device State
+                {
+                    Return (Zero)
+                }
+            }
+
+            Device (S10)
+            {
+                Name (_ADR, 0x00020000)  // _ADR: Address
+            }
+
+            Method (PCNT, 0, NotSerialized)
+            {
+            }
+        }
+    }
+}
+
diff --git a/tests/data/acpi/q35/DSDT.numamem b/tests/data/acpi/q35/DSDT.numamem
index 2b2433cc13ec3110abbc8440a0b1ad8c487edb6c..899946255b9111e077e06c5f78be860e863911b9 100644
GIT binary patch
delta 33
ocmZp&{bj@D66_LECC9+PcxEG)mK>)WOH6#QQ@nuPWIH)q0Hvo16951J

delta 42
xcmexm(`3u#66_MvB*(zOn7ENkOODHrB_=-DDPF*hWwNcDExQO?fU{o+0|4^g3K{?a

diff --git a/tests/data/acpi/q35/DSDT.numamem.dsl b/tests/data/acpi/q35/DSDT.numamem.dsl
new file mode 100644
index 0000000000..e76de462f0
--- /dev/null
+++ b/tests/data/acpi/q35/DSDT.numamem.dsl
@@ -0,0 +1,3138 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembling to symbolic ASL+ operators
+ *
+ * Disassembly of tests/data/acpi/q35/DSDT.numamem, Tue Aug  4 11:14:15 2020
+ *
+ * Original Table Header:
+ *     Signature        "DSDT"
+ *     Length           0x00001E04 (7684)
+ *     Revision         0x01 **** 32-bit table (V1), no 64-bit math support
+ *     Checksum         0x55
+ *     OEM ID           "BOCHS "
+ *     OEM Table ID     "BXPCDSDT"
+ *     OEM Revision     0x00000001 (1)
+ *     Compiler ID      "BXPC"
+ *     Compiler Version 0x00000001 (1)
+ */
+DefinitionBlock ("", "DSDT", 1, "BOCHS ", "BXPCDSDT", 0x00000001)
+{
+    Scope (\)
+    {
+        OperationRegion (DBG, SystemIO, 0x0402, One)
+        Field (DBG, ByteAcc, NoLock, Preserve)
+        {
+            DBGB,   8
+        }
+
+        Method (DBUG, 1, NotSerialized)
+        {
+            ToHexString (Arg0, Local0)
+            ToBuffer (Local0, Local0)
+            Local1 = (SizeOf (Local0) - One)
+            Local2 = Zero
+            While ((Local2 < Local1))
+            {
+                DBGB = DerefOf (Local0 [Local2])
+                Local2++
+            }
+
+            DBGB = 0x0A
+        }
+    }
+
+    Scope (_SB)
+    {
+        Device (PCI0)
+        {
+            Name (_HID, EisaId ("PNP0A08") /* PCI Express Bus */)  // _HID: Hardware ID
+            Name (_CID, EisaId ("PNP0A03") /* PCI Bus */)  // _CID: Compatible ID
+            Name (_ADR, Zero)  // _ADR: Address
+            Name (_UID, Zero)  // _UID: Unique ID
+            Method (_OSC, 4, NotSerialized)  // _OSC: Operating System Capabilities
+            {
+                CreateDWordField (Arg3, Zero, CDW1)
+                If ((Arg0 == ToUUID ("33db4d5b-1ff7-401c-9657-7441c03dd766") /* PCI Host Bridge Device */))
+                {
+                    CreateDWordField (Arg3, 0x04, CDW2)
+                    CreateDWordField (Arg3, 0x08, CDW3)
+                    Local0 = CDW3 /* \_SB_.PCI0._OSC.CDW3 */
+                    Local0 &= 0x1F
+                    If ((Arg1 != One))
+                    {
+                        CDW1 |= 0x08
+                    }
+
+                    If ((CDW3 != Local0))
+                    {
+                        CDW1 |= 0x10
+                    }
+
+                    CDW3 = Local0
+                }
+                Else
+                {
+                    CDW1 |= 0x04
+                }
+
+                Return (Arg3)
+            }
+        }
+    }
+
+    Scope (_SB)
+    {
+        Device (HPET)
+        {
+            Name (_HID, EisaId ("PNP0103") /* HPET System Timer */)  // _HID: Hardware ID
+            Name (_UID, Zero)  // _UID: Unique ID
+            OperationRegion (HPTM, SystemMemory, 0xFED00000, 0x0400)
+            Field (HPTM, DWordAcc, Lock, Preserve)
+            {
+                VEND,   32, 
+                PRD,    32
+            }
+
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Local0 = VEND /* \_SB_.HPET.VEND */
+                Local1 = PRD /* \_SB_.HPET.PRD_ */
+                Local0 >>= 0x10
+                If (((Local0 == Zero) || (Local0 == 0xFFFF)))
+                {
+                    Return (Zero)
+                }
+
+                If (((Local1 == Zero) || (Local1 > 0x05F5E100)))
+                {
+                    Return (Zero)
+                }
+
+                Return (0x0F)
+            }
+
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadOnly,
+                    0xFED00000,         // Address Base
+                    0x00000400,         // Address Length
+                    )
+            })
+        }
+    }
+
+    Scope (_SB.PCI0)
+    {
+        Device (ISA)
+        {
+            Name (_ADR, 0x001F0000)  // _ADR: Address
+            OperationRegion (PIRQ, PCI_Config, 0x60, 0x0C)
+        }
+    }
+
+    Scope (_SB.PCI0.ISA)
+    {
+        Device (KBD)
+        {
+            Name (_HID, EisaId ("PNP0303") /* IBM Enhanced Keyboard (101/102-key, PS/2 Mouse) */)  // _HID: Hardware ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0060,             // Range Minimum
+                    0x0060,             // Range Maximum
+                    0x01,               // Alignment
+                    0x01,               // Length
+                    )
+                IO (Decode16,
+                    0x0064,             // Range Minimum
+                    0x0064,             // Range Maximum
+                    0x01,               // Alignment
+                    0x01,               // Length
+                    )
+                IRQNoFlags ()
+                    {1}
+            })
+        }
+
+        Device (MOU)
+        {
+            Name (_HID, EisaId ("PNP0F13") /* PS/2 Mouse */)  // _HID: Hardware ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IRQNoFlags ()
+                    {12}
+            })
+        }
+
+        Device (LPT1)
+        {
+            Name (_HID, EisaId ("PNP0400") /* Standard LPT Parallel Port */)  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0378,             // Range Minimum
+                    0x0378,             // Range Maximum
+                    0x08,               // Alignment
+                    0x08,               // Length
+                    )
+                IRQNoFlags ()
+                    {7}
+            })
+        }
+
+        Device (COM1)
+        {
+            Name (_HID, EisaId ("PNP0501") /* 16550A-compatible COM Serial Port */)  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x03F8,             // Range Minimum
+                    0x03F8,             // Range Maximum
+                    0x00,               // Alignment
+                    0x08,               // Length
+                    )
+                IRQNoFlags ()
+                    {4}
+            })
+        }
+
+        Device (RTC)
+        {
+            Name (_HID, EisaId ("PNP0B00") /* AT Real-Time Clock */)  // _HID: Hardware ID
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0070,             // Range Minimum
+                    0x0070,             // Range Maximum
+                    0x01,               // Alignment
+                    0x08,               // Length
+                    )
+                IRQNoFlags ()
+                    {8}
+            })
+        }
+    }
+
+    Name (PICF, Zero)
+    Method (_PIC, 1, NotSerialized)  // _PIC: Interrupt Model
+    {
+        PICF = Arg0
+    }
+
+    Scope (_SB)
+    {
+        Scope (PCI0)
+        {
+            Name (PRTP, Package (0x80)
+            {
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }
+            })
+            Name (PRTA, Package (0x80)
+            {
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }
+            })
+            Method (_PRT, 0, NotSerialized)  // _PRT: PCI Routing Table
+            {
+                If ((PICF == Zero))
+                {
+                    Return (PRTP) /* \_SB_.PCI0.PRTP */
+                }
+                Else
+                {
+                    Return (PRTA) /* \_SB_.PCI0.PRTA */
+                }
+            }
+        }
+
+        Field (PCI0.ISA.PIRQ, ByteAcc, NoLock, Preserve)
+        {
+            PRQA,   8, 
+            PRQB,   8, 
+            PRQC,   8, 
+            PRQD,   8, 
+            Offset (0x08), 
+            PRQE,   8, 
+            PRQF,   8, 
+            PRQG,   8, 
+            PRQH,   8
+        }
+
+        Method (IQST, 1, NotSerialized)
+        {
+            If ((0x80 & Arg0))
+            {
+                Return (0x09)
+            }
+
+            Return (0x0B)
+        }
+
+        Method (IQCR, 1, Serialized)
+        {
+            Name (PRR0, ResourceTemplate ()
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, _Y00)
+                {
+                    0x00000000,
+                }
+            })
+            CreateDWordField (PRR0, \_SB.IQCR._Y00._INT, PRRI)  // _INT: Interrupts
+            PRRI = (Arg0 & 0x0F)
+            Return (PRR0) /* \_SB_.IQCR.PRR0 */
+        }
+
+        Device (LNKA)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, Zero)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQA))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQA |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQA))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQA = PRRI /* \_SB_.LNKA._SRS.PRRI */
+            }
+        }
+
+        Device (LNKB)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQB))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQB |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQB))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQB = PRRI /* \_SB_.LNKB._SRS.PRRI */
+            }
+        }
+
+        Device (LNKC)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x02)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQC))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQC |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQC))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQC = PRRI /* \_SB_.LNKC._SRS.PRRI */
+            }
+        }
+
+        Device (LNKD)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x03)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQD))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQD |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQD))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQD = PRRI /* \_SB_.LNKD._SRS.PRRI */
+            }
+        }
+
+        Device (LNKE)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x04)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQE))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQE |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQE))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQE = PRRI /* \_SB_.LNKE._SRS.PRRI */
+            }
+        }
+
+        Device (LNKF)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x05)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQF))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQF |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQF))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQF = PRRI /* \_SB_.LNKF._SRS.PRRI */
+            }
+        }
+
+        Device (LNKG)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x06)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQG))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQG |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQG))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQG = PRRI /* \_SB_.LNKG._SRS.PRRI */
+            }
+        }
+
+        Device (LNKH)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x07)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQH))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQH |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQH))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQH = PRRI /* \_SB_.LNKH._SRS.PRRI */
+            }
+        }
+
+        Device (GSIA)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x10)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000010,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000010,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIB)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x11)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000011,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000011,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIC)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x12)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000012,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000012,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSID)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x13)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000013,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000013,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIE)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x14)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000014,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000014,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIF)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x15)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000015,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000015,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIG)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x16)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000016,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000016,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIH)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x17)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000017,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000017,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+    }
+
+    Scope (_SB.PCI0)
+    {
+        Device (SMB0)
+        {
+            Name (_ADR, 0x001F0003)  // _ADR: Address
+        }
+    }
+
+    Scope (_SB)
+    {
+        Device (\_SB.PCI0.PRES)
+        {
+            Name (_HID, EisaId ("PNP0A06") /* Generic Container Device */)  // _HID: Hardware ID
+            Name (_UID, "CPU Hotplug resources")  // _UID: Unique ID
+            Mutex (CPLK, 0x00)
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0CD8,             // Range Minimum
+                    0x0CD8,             // Range Maximum
+                    0x01,               // Alignment
+                    0x0C,               // Length
+                    )
+            })
+            OperationRegion (PRST, SystemIO, 0x0CD8, 0x0C)
+            Field (PRST, ByteAcc, NoLock, WriteAsZeros)
+            {
+                Offset (0x04), 
+                CPEN,   1, 
+                CINS,   1, 
+                CRMV,   1, 
+                CEJ0,   1, 
+                Offset (0x05), 
+                CCMD,   8
+            }
+
+            Field (PRST, DWordAcc, NoLock, Preserve)
+            {
+                CSEL,   32, 
+                Offset (0x08), 
+                CDAT,   32
+            }
+
+            Method (_INI, 0, Serialized)  // _INI: Initialize
+            {
+                CSEL = Zero
+            }
+        }
+
+        Device (\_SB.CPUS)
+        {
+            Name (_HID, "ACPI0010" /* Processor Container Device */)  // _HID: Hardware ID
+            Name (_CID, EisaId ("PNP0A05") /* Generic Container Device */)  // _CID: Compatible ID
+            Method (CTFY, 2, NotSerialized)
+            {
+                If ((Arg0 == Zero))
+                {
+                    Notify (C000, Arg1)
+                }
+            }
+
+            Method (CSTA, 1, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                \_SB.PCI0.PRES.CSEL = Arg0
+                Local0 = Zero
+                If ((\_SB.PCI0.PRES.CPEN == One))
+                {
+                    Local0 = 0x0F
+                }
+
+                Release (\_SB.PCI0.PRES.CPLK)
+                Return (Local0)
+            }
+
+            Method (CEJ0, 1, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                \_SB.PCI0.PRES.CSEL = Arg0
+                \_SB.PCI0.PRES.CEJ0 = One
+                Release (\_SB.PCI0.PRES.CPLK)
+            }
+
+            Method (CSCN, 0, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                Local0 = One
+                While ((Local0 == One))
+                {
+                    Local0 = Zero
+                    \_SB.PCI0.PRES.CCMD = Zero
+                    If ((\_SB.PCI0.PRES.CINS == One))
+                    {
+                        CTFY (\_SB.PCI0.PRES.CDAT, One)
+                        \_SB.PCI0.PRES.CINS = One
+                        Local0 = One
+                    }
+                    ElseIf ((\_SB.PCI0.PRES.CRMV == One))
+                    {
+                        CTFY (\_SB.PCI0.PRES.CDAT, 0x03)
+                        \_SB.PCI0.PRES.CRMV = One
+                        Local0 = One
+                    }
+                }
+
+                Release (\_SB.PCI0.PRES.CPLK)
+            }
+
+            Method (COST, 4, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                \_SB.PCI0.PRES.CSEL = Arg0
+                \_SB.PCI0.PRES.CCMD = One
+                \_SB.PCI0.PRES.CDAT = Arg1
+                \_SB.PCI0.PRES.CCMD = 0x02
+                \_SB.PCI0.PRES.CDAT = Arg2
+                Release (\_SB.PCI0.PRES.CPLK)
+            }
+
+            Processor (C000, 0x00, 0x00000000, 0x00)
+            {
+                Method (_STA, 0, Serialized)  // _STA: Status
+                {
+                    Return (CSTA (Zero))
+                }
+
+                Name (_MAT, Buffer (0x08)  // _MAT: Multiple APIC Table Entry
+                {
+                     0x00, 0x08, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00   // ........
+                })
+                Method (_OST, 3, Serialized)  // _OST: OSPM Status Indication
+                {
+                    COST (Zero, Arg0, Arg1, Arg2)
+                }
+
+                Name (_PXM, Zero)  // _PXM: Device Proximity
+            }
+        }
+    }
+
+    Method (\_GPE._E02, 0, NotSerialized)  // _Exx: Edge-Triggered GPE, xx=0x00-0xFF
+    {
+        \_SB.CPUS.CSCN ()
+    }
+
+    Scope (_GPE)
+    {
+        Name (_HID, "ACPI0006" /* GPE Block Device */)  // _HID: Hardware ID
+    }
+
+    Scope (\_SB.PCI0)
+    {
+        Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+        {
+            WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
+                0x0000,             // Granularity
+                0x0000,             // Range Minimum
+                0x00FF,             // Range Maximum
+                0x0000,             // Translation Offset
+                0x0100,             // Length
+                ,, )
+            IO (Decode16,
+                0x0CF8,             // Range Minimum
+                0x0CF8,             // Range Maximum
+                0x01,               // Alignment
+                0x08,               // Length
+                )
+            WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
+                0x0000,             // Granularity
+                0x0000,             // Range Minimum
+                0x0CF7,             // Range Maximum
+                0x0000,             // Translation Offset
+                0x0CF8,             // Length
+                ,, , TypeStatic, DenseTranslation)
+            WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
+                0x0000,             // Granularity
+                0x0D00,             // Range Minimum
+                0xFFFF,             // Range Maximum
+                0x0000,             // Translation Offset
+                0xF300,             // Length
+                ,, , TypeStatic, DenseTranslation)
+            DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
+                0x00000000,         // Granularity
+                0x000A0000,         // Range Minimum
+                0x000BFFFF,         // Range Maximum
+                0x00000000,         // Translation Offset
+                0x00020000,         // Length
+                ,, , AddressRangeMemory, TypeStatic)
+            DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
+                0x00000000,         // Granularity
+                0x08000000,         // Range Minimum
+                0xAFFFFFFF,         // Range Maximum
+                0x00000000,         // Translation Offset
+                0xA8000000,         // Length
+                ,, , AddressRangeMemory, TypeStatic)
+            DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
+                0x00000000,         // Granularity
+                0xC0000000,         // Range Minimum
+                0xFEBFFFFF,         // Range Maximum
+                0x00000000,         // Translation Offset
+                0x3EC00000,         // Length
+                ,, , AddressRangeMemory, TypeStatic)
+            QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
+                0x0000000000000000, // Granularity
+                0x0000000100000000, // Range Minimum
+                0x00000008FFFFFFFF, // Range Maximum
+                0x0000000000000000, // Translation Offset
+                0x0000000800000000, // Length
+                ,, , AddressRangeMemory, TypeStatic)
+        })
+        Device (GPE0)
+        {
+            Name (_HID, "PNP0A06" /* Generic Container Device */)  // _HID: Hardware ID
+            Name (_UID, "GPE0 resources")  // _UID: Unique ID
+            Name (_STA, 0x0B)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0620,             // Range Minimum
+                    0x0620,             // Range Maximum
+                    0x01,               // Alignment
+                    0x10,               // Length
+                    )
+            })
+        }
+    }
+
+    Scope (\)
+    {
+        Name (_S3, Package (0x04)  // _S3_: S3 System State
+        {
+            One, 
+            One, 
+            Zero, 
+            Zero
+        })
+        Name (_S4, Package (0x04)  // _S4_: S4 System State
+        {
+            0x02, 
+            0x02, 
+            Zero, 
+            Zero
+        })
+        Name (_S5, Package (0x04)  // _S5_: S5 System State
+        {
+            Zero, 
+            Zero, 
+            Zero, 
+            Zero
+        })
+    }
+
+    Scope (\_SB.PCI0)
+    {
+        Device (FWCF)
+        {
+            Name (_HID, "QEMU0002")  // _HID: Hardware ID
+            Name (_STA, 0x0B)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0510,             // Range Minimum
+                    0x0510,             // Range Maximum
+                    0x01,               // Alignment
+                    0x0C,               // Length
+                    )
+            })
+        }
+    }
+
+    Scope (\_SB)
+    {
+        Scope (PCI0)
+        {
+            Device (S00)
+            {
+                Name (_ADR, Zero)  // _ADR: Address
+            }
+
+            Device (S08)
+            {
+                Name (_ADR, 0x00010000)  // _ADR: Address
+                Method (_S1D, 0, NotSerialized)  // _S1D: S1 Device State
+                {
+                    Return (Zero)
+                }
+
+                Method (_S2D, 0, NotSerialized)  // _S2D: S2 Device State
+                {
+                    Return (Zero)
+                }
+
+                Method (_S3D, 0, NotSerialized)  // _S3D: S3 Device State
+                {
+                    Return (Zero)
+                }
+            }
+
+            Method (PCNT, 0, NotSerialized)
+            {
+            }
+        }
+    }
+}
+
diff --git a/tests/data/acpi/q35/DSDT.tis b/tests/data/acpi/q35/DSDT.tis
index dd06ee4c348930b0684827ca05747b4f65dbd6b2..08802fbd12eae6ad99f03a8db9a0bc7f95e77cb4 100644
GIT binary patch
delta 38
ucmccVc*&8=CD<k8k^%z*<Cl$G26CJpnlbUgPVoW`lbz-4Hh0JcG64Ydc?+%p

delta 45
zcmccQc+-)~CD<k8rUC;4<AjY|26CMKnlbUgPVoZnlbz-4*hJU@oc%&JH^>Ds0RTDD
B46OhF

diff --git a/tests/data/acpi/q35/DSDT.tis.dsl b/tests/data/acpi/q35/DSDT.tis.dsl
new file mode 100644
index 0000000000..a43e36bfe3
--- /dev/null
+++ b/tests/data/acpi/q35/DSDT.tis.dsl
@@ -0,0 +1,3321 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembling to symbolic ASL+ operators
+ *
+ * Disassembly of tests/data/acpi/q35/DSDT.tis, Tue Aug  4 11:14:15 2020
+ *
+ * Original Table Header:
+ *     Signature        "DSDT"
+ *     Length           0x0000205B (8283)
+ *     Revision         0x01 **** 32-bit table (V1), no 64-bit math support
+ *     Checksum         0x84
+ *     OEM ID           "BOCHS "
+ *     OEM Table ID     "BXPCDSDT"
+ *     OEM Revision     0x00000001 (1)
+ *     Compiler ID      "BXPC"
+ *     Compiler Version 0x00000001 (1)
+ */
+DefinitionBlock ("", "DSDT", 1, "BOCHS ", "BXPCDSDT", 0x00000001)
+{
+    Scope (\)
+    {
+        OperationRegion (DBG, SystemIO, 0x0402, One)
+        Field (DBG, ByteAcc, NoLock, Preserve)
+        {
+            DBGB,   8
+        }
+
+        Method (DBUG, 1, NotSerialized)
+        {
+            ToHexString (Arg0, Local0)
+            ToBuffer (Local0, Local0)
+            Local1 = (SizeOf (Local0) - One)
+            Local2 = Zero
+            While ((Local2 < Local1))
+            {
+                DBGB = DerefOf (Local0 [Local2])
+                Local2++
+            }
+
+            DBGB = 0x0A
+        }
+    }
+
+    Scope (_SB)
+    {
+        Device (PCI0)
+        {
+            Name (_HID, EisaId ("PNP0A08") /* PCI Express Bus */)  // _HID: Hardware ID
+            Name (_CID, EisaId ("PNP0A03") /* PCI Bus */)  // _CID: Compatible ID
+            Name (_ADR, Zero)  // _ADR: Address
+            Name (_UID, Zero)  // _UID: Unique ID
+            Method (_OSC, 4, NotSerialized)  // _OSC: Operating System Capabilities
+            {
+                CreateDWordField (Arg3, Zero, CDW1)
+                If ((Arg0 == ToUUID ("33db4d5b-1ff7-401c-9657-7441c03dd766") /* PCI Host Bridge Device */))
+                {
+                    CreateDWordField (Arg3, 0x04, CDW2)
+                    CreateDWordField (Arg3, 0x08, CDW3)
+                    Local0 = CDW3 /* \_SB_.PCI0._OSC.CDW3 */
+                    Local0 &= 0x1F
+                    If ((Arg1 != One))
+                    {
+                        CDW1 |= 0x08
+                    }
+
+                    If ((CDW3 != Local0))
+                    {
+                        CDW1 |= 0x10
+                    }
+
+                    CDW3 = Local0
+                }
+                Else
+                {
+                    CDW1 |= 0x04
+                }
+
+                Return (Arg3)
+            }
+        }
+    }
+
+    Scope (_SB)
+    {
+        Device (HPET)
+        {
+            Name (_HID, EisaId ("PNP0103") /* HPET System Timer */)  // _HID: Hardware ID
+            Name (_UID, Zero)  // _UID: Unique ID
+            OperationRegion (HPTM, SystemMemory, 0xFED00000, 0x0400)
+            Field (HPTM, DWordAcc, Lock, Preserve)
+            {
+                VEND,   32, 
+                PRD,    32
+            }
+
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Local0 = VEND /* \_SB_.HPET.VEND */
+                Local1 = PRD /* \_SB_.HPET.PRD_ */
+                Local0 >>= 0x10
+                If (((Local0 == Zero) || (Local0 == 0xFFFF)))
+                {
+                    Return (Zero)
+                }
+
+                If (((Local1 == Zero) || (Local1 > 0x05F5E100)))
+                {
+                    Return (Zero)
+                }
+
+                Return (0x0F)
+            }
+
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadOnly,
+                    0xFED00000,         // Address Base
+                    0x00000400,         // Address Length
+                    )
+            })
+        }
+    }
+
+    Scope (_SB.PCI0)
+    {
+        Device (ISA)
+        {
+            Name (_ADR, 0x001F0000)  // _ADR: Address
+            OperationRegion (PIRQ, PCI_Config, 0x60, 0x0C)
+        }
+    }
+
+    Scope (_SB.PCI0.ISA)
+    {
+        Device (KBD)
+        {
+            Name (_HID, EisaId ("PNP0303") /* IBM Enhanced Keyboard (101/102-key, PS/2 Mouse) */)  // _HID: Hardware ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0060,             // Range Minimum
+                    0x0060,             // Range Maximum
+                    0x01,               // Alignment
+                    0x01,               // Length
+                    )
+                IO (Decode16,
+                    0x0064,             // Range Minimum
+                    0x0064,             // Range Maximum
+                    0x01,               // Alignment
+                    0x01,               // Length
+                    )
+                IRQNoFlags ()
+                    {1}
+            })
+        }
+
+        Device (MOU)
+        {
+            Name (_HID, EisaId ("PNP0F13") /* PS/2 Mouse */)  // _HID: Hardware ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IRQNoFlags ()
+                    {12}
+            })
+        }
+
+        Device (LPT1)
+        {
+            Name (_HID, EisaId ("PNP0400") /* Standard LPT Parallel Port */)  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0378,             // Range Minimum
+                    0x0378,             // Range Maximum
+                    0x08,               // Alignment
+                    0x08,               // Length
+                    )
+                IRQNoFlags ()
+                    {7}
+            })
+        }
+
+        Device (COM1)
+        {
+            Name (_HID, EisaId ("PNP0501") /* 16550A-compatible COM Serial Port */)  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_STA, 0x0F)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x03F8,             // Range Minimum
+                    0x03F8,             // Range Maximum
+                    0x00,               // Alignment
+                    0x08,               // Length
+                    )
+                IRQNoFlags ()
+                    {4}
+            })
+        }
+
+        Device (RTC)
+        {
+            Name (_HID, EisaId ("PNP0B00") /* AT Real-Time Clock */)  // _HID: Hardware ID
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0070,             // Range Minimum
+                    0x0070,             // Range Maximum
+                    0x01,               // Alignment
+                    0x08,               // Length
+                    )
+                IRQNoFlags ()
+                    {8}
+            })
+        }
+    }
+
+    Name (PICF, Zero)
+    Method (_PIC, 1, NotSerialized)  // _PIC: Interrupt Model
+    {
+        PICF = Arg0
+    }
+
+    Scope (_SB)
+    {
+        Scope (PCI0)
+        {
+            Name (PRTP, Package (0x80)
+            {
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    Zero, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    One, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    0x02, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    0x03, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    Zero, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    One, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    0x02, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    0x03, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    Zero, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    One, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    0x02, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    0x03, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    Zero, 
+                    LNKE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    One, 
+                    LNKF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    0x02, 
+                    LNKG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    0x03, 
+                    LNKH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    Zero, 
+                    LNKA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    One, 
+                    LNKB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    0x02, 
+                    LNKC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    0x03, 
+                    LNKD, 
+                    Zero
+                }
+            })
+            Name (PRTA, Package (0x80)
+            {
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    Zero, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    One, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    0x02, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    0x03, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    Zero, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    One, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    0x02, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    0x03, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    Zero, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    One, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    0x02, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    0x03, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    Zero, 
+                    GSIE, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    One, 
+                    GSIF, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    0x02, 
+                    GSIG, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    0x03, 
+                    GSIH, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    Zero, 
+                    GSIA, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    One, 
+                    GSIB, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    0x02, 
+                    GSIC, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    0x03, 
+                    GSID, 
+                    Zero
+                }
+            })
+            Method (_PRT, 0, NotSerialized)  // _PRT: PCI Routing Table
+            {
+                If ((PICF == Zero))
+                {
+                    Return (PRTP) /* \_SB_.PCI0.PRTP */
+                }
+                Else
+                {
+                    Return (PRTA) /* \_SB_.PCI0.PRTA */
+                }
+            }
+        }
+
+        Field (PCI0.ISA.PIRQ, ByteAcc, NoLock, Preserve)
+        {
+            PRQA,   8, 
+            PRQB,   8, 
+            PRQC,   8, 
+            PRQD,   8, 
+            Offset (0x08), 
+            PRQE,   8, 
+            PRQF,   8, 
+            PRQG,   8, 
+            PRQH,   8
+        }
+
+        Method (IQST, 1, NotSerialized)
+        {
+            If ((0x80 & Arg0))
+            {
+                Return (0x09)
+            }
+
+            Return (0x0B)
+        }
+
+        Method (IQCR, 1, Serialized)
+        {
+            Name (PRR0, ResourceTemplate ()
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, _Y00)
+                {
+                    0x00000000,
+                }
+            })
+            CreateDWordField (PRR0, \_SB.IQCR._Y00._INT, PRRI)  // _INT: Interrupts
+            PRRI = (Arg0 & 0x0F)
+            Return (PRR0) /* \_SB_.IQCR.PRR0 */
+        }
+
+        Device (LNKA)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, Zero)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQA))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQA |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQA))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQA = PRRI /* \_SB_.LNKA._SRS.PRRI */
+            }
+        }
+
+        Device (LNKB)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQB))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQB |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQB))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQB = PRRI /* \_SB_.LNKB._SRS.PRRI */
+            }
+        }
+
+        Device (LNKC)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x02)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQC))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQC |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQC))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQC = PRRI /* \_SB_.LNKC._SRS.PRRI */
+            }
+        }
+
+        Device (LNKD)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x03)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQD))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQD |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQD))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQD = PRRI /* \_SB_.LNKD._SRS.PRRI */
+            }
+        }
+
+        Device (LNKE)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x04)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQE))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQE |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQE))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQE = PRRI /* \_SB_.LNKE._SRS.PRRI */
+            }
+        }
+
+        Device (LNKF)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x05)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQF))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQF |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQF))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQF = PRRI /* \_SB_.LNKF._SRS.PRRI */
+            }
+        }
+
+        Device (LNKG)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x06)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQG))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQG |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQG))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQG = PRRI /* \_SB_.LNKG._SRS.PRRI */
+            }
+        }
+
+        Device (LNKH)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x07)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000005,
+                    0x0000000A,
+                    0x0000000B,
+                }
+            })
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                Return (IQST (PRQH))
+            }
+
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+                PRQH |= 0x80
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (IQCR (PRQH))
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+                CreateDWordField (Arg0, 0x05, PRRI)
+                PRQH = PRRI /* \_SB_.LNKH._SRS.PRRI */
+            }
+        }
+
+        Device (GSIA)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x10)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000010,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000010,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIB)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x11)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000011,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000011,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIC)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x12)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000012,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000012,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSID)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x13)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000013,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000013,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIE)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x14)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000014,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000014,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIF)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x15)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000015,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000015,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIG)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x16)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000016,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000016,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+
+        Device (GSIH)
+        {
+            Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+            Name (_UID, 0x17)  // _UID: Unique ID
+            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000017,
+                }
+            })
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
+                {
+                    0x00000017,
+                }
+            })
+            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
+            {
+            }
+
+            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+            {
+            }
+        }
+    }
+
+    Scope (_SB.PCI0)
+    {
+        Device (SMB0)
+        {
+            Name (_ADR, 0x001F0003)  // _ADR: Address
+        }
+    }
+
+    Scope (_SB)
+    {
+        Device (\_SB.PCI0.PRES)
+        {
+            Name (_HID, EisaId ("PNP0A06") /* Generic Container Device */)  // _HID: Hardware ID
+            Name (_UID, "CPU Hotplug resources")  // _UID: Unique ID
+            Mutex (CPLK, 0x00)
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0CD8,             // Range Minimum
+                    0x0CD8,             // Range Maximum
+                    0x01,               // Alignment
+                    0x0C,               // Length
+                    )
+            })
+            OperationRegion (PRST, SystemIO, 0x0CD8, 0x0C)
+            Field (PRST, ByteAcc, NoLock, WriteAsZeros)
+            {
+                Offset (0x04), 
+                CPEN,   1, 
+                CINS,   1, 
+                CRMV,   1, 
+                CEJ0,   1, 
+                Offset (0x05), 
+                CCMD,   8
+            }
+
+            Field (PRST, DWordAcc, NoLock, Preserve)
+            {
+                CSEL,   32, 
+                Offset (0x08), 
+                CDAT,   32
+            }
+
+            Method (_INI, 0, Serialized)  // _INI: Initialize
+            {
+                CSEL = Zero
+            }
+        }
+
+        Device (\_SB.CPUS)
+        {
+            Name (_HID, "ACPI0010" /* Processor Container Device */)  // _HID: Hardware ID
+            Name (_CID, EisaId ("PNP0A05") /* Generic Container Device */)  // _CID: Compatible ID
+            Method (CTFY, 2, NotSerialized)
+            {
+                If ((Arg0 == Zero))
+                {
+                    Notify (C000, Arg1)
+                }
+            }
+
+            Method (CSTA, 1, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                \_SB.PCI0.PRES.CSEL = Arg0
+                Local0 = Zero
+                If ((\_SB.PCI0.PRES.CPEN == One))
+                {
+                    Local0 = 0x0F
+                }
+
+                Release (\_SB.PCI0.PRES.CPLK)
+                Return (Local0)
+            }
+
+            Method (CEJ0, 1, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                \_SB.PCI0.PRES.CSEL = Arg0
+                \_SB.PCI0.PRES.CEJ0 = One
+                Release (\_SB.PCI0.PRES.CPLK)
+            }
+
+            Method (CSCN, 0, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                Local0 = One
+                While ((Local0 == One))
+                {
+                    Local0 = Zero
+                    \_SB.PCI0.PRES.CCMD = Zero
+                    If ((\_SB.PCI0.PRES.CINS == One))
+                    {
+                        CTFY (\_SB.PCI0.PRES.CDAT, One)
+                        \_SB.PCI0.PRES.CINS = One
+                        Local0 = One
+                    }
+                    ElseIf ((\_SB.PCI0.PRES.CRMV == One))
+                    {
+                        CTFY (\_SB.PCI0.PRES.CDAT, 0x03)
+                        \_SB.PCI0.PRES.CRMV = One
+                        Local0 = One
+                    }
+                }
+
+                Release (\_SB.PCI0.PRES.CPLK)
+            }
+
+            Method (COST, 4, Serialized)
+            {
+                Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
+                \_SB.PCI0.PRES.CSEL = Arg0
+                \_SB.PCI0.PRES.CCMD = One
+                \_SB.PCI0.PRES.CDAT = Arg1
+                \_SB.PCI0.PRES.CCMD = 0x02
+                \_SB.PCI0.PRES.CDAT = Arg2
+                Release (\_SB.PCI0.PRES.CPLK)
+            }
+
+            Processor (C000, 0x00, 0x00000000, 0x00)
+            {
+                Method (_STA, 0, Serialized)  // _STA: Status
+                {
+                    Return (CSTA (Zero))
+                }
+
+                Name (_MAT, Buffer (0x08)  // _MAT: Multiple APIC Table Entry
+                {
+                     0x00, 0x08, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00   // ........
+                })
+                Method (_OST, 3, Serialized)  // _OST: OSPM Status Indication
+                {
+                    COST (Zero, Arg0, Arg1, Arg2)
+                }
+            }
+        }
+    }
+
+    Method (\_GPE._E02, 0, NotSerialized)  // _Exx: Edge-Triggered GPE, xx=0x00-0xFF
+    {
+        \_SB.CPUS.CSCN ()
+    }
+
+    Scope (_GPE)
+    {
+        Name (_HID, "ACPI0006" /* GPE Block Device */)  // _HID: Hardware ID
+    }
+
+    Scope (\_SB.PCI0)
+    {
+        Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+        {
+            WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
+                0x0000,             // Granularity
+                0x0000,             // Range Minimum
+                0x00FF,             // Range Maximum
+                0x0000,             // Translation Offset
+                0x0100,             // Length
+                ,, )
+            IO (Decode16,
+                0x0CF8,             // Range Minimum
+                0x0CF8,             // Range Maximum
+                0x01,               // Alignment
+                0x08,               // Length
+                )
+            WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
+                0x0000,             // Granularity
+                0x0000,             // Range Minimum
+                0x0CF7,             // Range Maximum
+                0x0000,             // Translation Offset
+                0x0CF8,             // Length
+                ,, , TypeStatic, DenseTranslation)
+            WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
+                0x0000,             // Granularity
+                0x0D00,             // Range Minimum
+                0xFFFF,             // Range Maximum
+                0x0000,             // Translation Offset
+                0xF300,             // Length
+                ,, , TypeStatic, DenseTranslation)
+            DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
+                0x00000000,         // Granularity
+                0x000A0000,         // Range Minimum
+                0x000BFFFF,         // Range Maximum
+                0x00000000,         // Translation Offset
+                0x00020000,         // Length
+                ,, , AddressRangeMemory, TypeStatic)
+            DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
+                0x00000000,         // Granularity
+                0x08000000,         // Range Minimum
+                0xAFFFFFFF,         // Range Maximum
+                0x00000000,         // Translation Offset
+                0xA8000000,         // Length
+                ,, , AddressRangeMemory, TypeStatic)
+            DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
+                0x00000000,         // Granularity
+                0xC0000000,         // Range Minimum
+                0xFEBFFFFF,         // Range Maximum
+                0x00000000,         // Translation Offset
+                0x3EC00000,         // Length
+                ,, , AddressRangeMemory, TypeStatic)
+            QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
+                0x0000000000000000, // Granularity
+                0x0000000100000000, // Range Minimum
+                0x00000008FFFFFFFF, // Range Maximum
+                0x0000000000000000, // Translation Offset
+                0x0000000800000000, // Length
+                ,, , AddressRangeMemory, TypeStatic)
+            Memory32Fixed (ReadWrite,
+                0xFED40000,         // Address Base
+                0x00005000,         // Address Length
+                )
+        })
+        Device (GPE0)
+        {
+            Name (_HID, "PNP0A06" /* Generic Container Device */)  // _HID: Hardware ID
+            Name (_UID, "GPE0 resources")  // _UID: Unique ID
+            Name (_STA, 0x0B)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0620,             // Range Minimum
+                    0x0620,             // Range Maximum
+                    0x01,               // Alignment
+                    0x10,               // Length
+                    )
+            })
+        }
+    }
+
+    Scope (\)
+    {
+        Name (_S3, Package (0x04)  // _S3_: S3 System State
+        {
+            One, 
+            One, 
+            Zero, 
+            Zero
+        })
+        Name (_S4, Package (0x04)  // _S4_: S4 System State
+        {
+            0x02, 
+            0x02, 
+            Zero, 
+            Zero
+        })
+        Name (_S5, Package (0x04)  // _S5_: S5 System State
+        {
+            Zero, 
+            Zero, 
+            Zero, 
+            Zero
+        })
+    }
+
+    Scope (\_SB.PCI0)
+    {
+        Device (FWCF)
+        {
+            Name (_HID, "QEMU0002")  // _HID: Hardware ID
+            Name (_STA, 0x0B)  // _STA: Status
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                IO (Decode16,
+                    0x0510,             // Range Minimum
+                    0x0510,             // Range Maximum
+                    0x01,               // Alignment
+                    0x0C,               // Length
+                    )
+            })
+        }
+    }
+
+    Scope (\_SB)
+    {
+        Scope (PCI0)
+        {
+            Device (S00)
+            {
+                Name (_ADR, Zero)  // _ADR: Address
+            }
+
+            Device (S08)
+            {
+                Name (_ADR, 0x00010000)  // _ADR: Address
+                Method (_S1D, 0, NotSerialized)  // _S1D: S1 Device State
+                {
+                    Return (Zero)
+                }
+
+                Method (_S2D, 0, NotSerialized)  // _S2D: S2 Device State
+                {
+                    Return (Zero)
+                }
+
+                Method (_S3D, 0, NotSerialized)  // _S3D: S3 Device State
+                {
+                    Return (Zero)
+                }
+            }
+
+            Method (PCNT, 0, NotSerialized)
+            {
+            }
+
+            Device (TPM)
+            {
+                Name (_HID, "MSFT0101" /* TPM 2.0 Security Device */)  // _HID: Hardware ID
+                Name (_STA, 0x0F)  // _STA: Status
+                Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+                {
+                    Memory32Fixed (ReadWrite,
+                        0xFED40000,         // Address Base
+                        0x00005000,         // Address Length
+                        )
+                })
+                OperationRegion (TPP2, SystemMemory, 0xFED45100, 0x5A)
+                Field (TPP2, AnyAcc, NoLock, Preserve)
+                {
+                    PPIN,   8, 
+                    PPIP,   32, 
+                    PPRP,   32, 
+                    PPRQ,   32, 
+                    PPRM,   32, 
+                    LPPR,   32
+                }
+
+                OperationRegion (TPP3, SystemMemory, 0xFED4515A, One)
+                Field (TPP3, ByteAcc, NoLock, Preserve)
+                {
+                    MOVV,   8
+                }
+
+                Method (TPFN, 1, Serialized)
+                {
+                    If ((Arg0 >= 0x0100))
+                    {
+                        Return (Zero)
+                    }
+
+                    OperationRegion (TPP1, SystemMemory, (0xFED45000 + Arg0), One)
+                    Field (TPP1, ByteAcc, NoLock, Preserve)
+                    {
+                        TPPF,   8
+                    }
+
+                    Return (TPPF) /* \_SB_.PCI0.TPM_.TPFN.TPPF */
+                }
+
+                Name (TPM2, Package (0x02)
+                {
+                    Zero, 
+                    Zero
+                })
+                Name (TPM3, Package (0x03)
+                {
+                    Zero, 
+                    Zero, 
+                    Zero
+                })
+                Method (_DSM, 4, Serialized)  // _DSM: Device-Specific Method
+                {
+                    If ((Arg0 == ToUUID ("3dddfaa6-361b-4eb4-a424-8d10089d1653") /* Physical Presence Interface */))
+                    {
+                        If ((Arg2 == Zero))
+                        {
+                            Return (Buffer (0x02)
+                            {
+                                 0xFF, 0x01                                       // ..
+                            })
+                        }
+
+                        If ((Arg2 == One))
+                        {
+                            Return ("1.3")
+                        }
+
+                        If ((Arg2 == 0x02))
+                        {
+                            Local0 = DerefOf (Arg3 [Zero])
+                            Local1 = TPFN (Local0)
+                            If (((Local1 & 0x07) == Zero))
+                            {
+                                Return (One)
+                            }
+
+                            PPRQ = Local0
+                            PPRM = Zero
+                            Return (Zero)
+                        }
+
+                        If ((Arg2 == 0x03))
+                        {
+                            If ((Arg1 == One))
+                            {
+                                TPM2 [One] = PPRQ /* \_SB_.PCI0.TPM_.PPRQ */
+                                Return (TPM2) /* \_SB_.PCI0.TPM_.TPM2 */
+                            }
+
+                            If ((Arg1 == 0x02))
+                            {
+                                TPM3 [One] = PPRQ /* \_SB_.PCI0.TPM_.PPRQ */
+                                TPM3 [0x02] = PPRM /* \_SB_.PCI0.TPM_.PPRM */
+                                Return (TPM3) /* \_SB_.PCI0.TPM_.TPM3 */
+                            }
+                        }
+
+                        If ((Arg2 == 0x04))
+                        {
+                            Return (0x02)
+                        }
+
+                        If ((Arg2 == 0x05))
+                        {
+                            TPM3 [One] = LPPR /* \_SB_.PCI0.TPM_.LPPR */
+                            TPM3 [0x02] = PPRP /* \_SB_.PCI0.TPM_.PPRP */
+                            Return (TPM3) /* \_SB_.PCI0.TPM_.TPM3 */
+                        }
+
+                        If ((Arg2 == 0x06))
+                        {
+                            Return (0x03)
+                        }
+
+                        If ((Arg2 == 0x07))
+                        {
+                            Local0 = DerefOf (Arg3 [Zero])
+                            Local1 = TPFN (Local0)
+                            If (((Local1 & 0x07) == Zero))
+                            {
+                                Return (One)
+                            }
+
+                            If (((Local1 & 0x07) == 0x02))
+                            {
+                                Return (0x03)
+                            }
+
+                            If ((Arg1 == One))
+                            {
+                                PPRQ = Local0
+                                PPRM = Zero
+                            }
+
+                            If ((Arg1 == 0x02))
+                            {
+                                PPRQ = Local0
+                                PPRM = DerefOf (Arg3 [One])
+                            }
+
+                            Return (Zero)
+                        }
+
+                        If ((Arg2 == 0x08))
+                        {
+                            Local0 = DerefOf (Arg3 [Zero])
+                            Local1 = TPFN (Local0)
+                            Return ((Local1 & 0x07))
+                        }
+
+                        Return (Buffer (One)
+                        {
+                             0x00                                             // .
+                        })
+                    }
+
+                    If ((Arg0 == ToUUID ("376054ed-cc13-4675-901c-4756d7f2d45d")))
+                    {
+                        If ((Arg2 == Zero))
+                        {
+                            Return (Buffer (One)
+                            {
+                                 0x03                                             // .
+                            })
+                        }
+
+                        If ((Arg2 == One))
+                        {
+                            Local0 = DerefOf (Arg3 [Zero])
+                            MOVV = Local0
+                            Return (Zero)
+                        }
+                    }
+                }
+            }
+        }
+    }
+}
+
diff --git a/tests/data/acpi/q35/FACP.acpihmat b/tests/data/acpi/q35/FACP.acpihmat
new file mode 100644
index 0000000000000000000000000000000000000000..72c9d97902a4bbf14896023d9ba78e0899d6517b
GIT binary patch
literal 244
zcmZ>BbPo8!z`(#P@8s|75v<@85#a0w6k`O6f!H7#1{fJQ88!hqOw2%n4I;_{r9nIn
zAX@<@&cwhX02KSr|DPYCl7Ybp$XMFKz`)4C!0?j?A_|v;DFV`r3P1wMTp$k&7=Z>N
X+XoXzrWq9=?f{7~HXz&s;==#{<X{c~

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/q35/FACP.acpihmat.dsl b/tests/data/acpi/q35/FACP.acpihmat.dsl
new file mode 100644
index 0000000000..29466227a1
--- /dev/null
+++ b/tests/data/acpi/q35/FACP.acpihmat.dsl
@@ -0,0 +1,179 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/FACP.acpihmat, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [FACP]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "FACP"    [Fixed ACPI Description Table (FADT)]
+[004h 0004   4]                 Table Length : 000000F4
+[008h 0008   1]                     Revision : 03
+[009h 0009   1]                     Checksum : 1F
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCFACP"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]                 FACS Address : 00000000
+[028h 0040   4]                 DSDT Address : 00000000
+[02Ch 0044   1]                        Model : 01
+[02Dh 0045   1]                   PM Profile : 00 [Unspecified]
+[02Eh 0046   2]                SCI Interrupt : 0009
+[030h 0048   4]             SMI Command Port : 000000B2
+[034h 0052   1]            ACPI Enable Value : 02
+[035h 0053   1]           ACPI Disable Value : 03
+[036h 0054   1]               S4BIOS Command : 00
+[037h 0055   1]              P-State Control : 00
+[038h 0056   4]     PM1A Event Block Address : 00000600
+[03Ch 0060   4]     PM1B Event Block Address : 00000000
+[040h 0064   4]   PM1A Control Block Address : 00000604
+[044h 0068   4]   PM1B Control Block Address : 00000000
+[048h 0072   4]    PM2 Control Block Address : 00000000
+[04Ch 0076   4]       PM Timer Block Address : 00000608
+[050h 0080   4]           GPE0 Block Address : 00000620
+[054h 0084   4]           GPE1 Block Address : 00000000
+[058h 0088   1]       PM1 Event Block Length : 04
+[059h 0089   1]     PM1 Control Block Length : 02
+[05Ah 0090   1]     PM2 Control Block Length : 00
+[05Bh 0091   1]        PM Timer Block Length : 04
+[05Ch 0092   1]            GPE0 Block Length : 10
+[05Dh 0093   1]            GPE1 Block Length : 00
+[05Eh 0094   1]             GPE1 Base Offset : 00
+[05Fh 0095   1]                 _CST Support : 00
+[060h 0096   2]                   C2 Latency : 0FFF
+[062h 0098   2]                   C3 Latency : 0FFF
+[064h 0100   2]               CPU Cache Size : 0000
+[066h 0102   2]           Cache Flush Stride : 0000
+[068h 0104   1]            Duty Cycle Offset : 00
+[069h 0105   1]             Duty Cycle Width : 00
+[06Ah 0106   1]          RTC Day Alarm Index : 00
+[06Bh 0107   1]        RTC Month Alarm Index : 00
+[06Ch 0108   1]            RTC Century Index : 32
+[06Dh 0109   2]   Boot Flags (decoded below) : 0000
+               Legacy Devices Supported (V2) : 0
+            8042 Present on ports 60/64 (V2) : 0
+                        VGA Not Present (V4) : 0
+                      MSI Not Supported (V4) : 0
+                PCIe ASPM Not Supported (V4) : 0
+                   CMOS RTC Not Present (V5) : 0
+[06Fh 0111   1]                     Reserved : 00
+[070h 0112   4]        Flags (decoded below) : 000084A5
+      WBINVD instruction is operational (V1) : 1
+              WBINVD flushes all caches (V1) : 0
+                    All CPUs support C1 (V1) : 1
+                  C2 works on MP system (V1) : 0
+            Control Method Power Button (V1) : 0
+            Control Method Sleep Button (V1) : 1
+        RTC wake not in fixed reg space (V1) : 0
+            RTC can wake system from S4 (V1) : 1
+                        32-bit PM Timer (V1) : 0
+                      Docking Supported (V1) : 0
+               Reset Register Supported (V2) : 1
+                            Sealed Case (V3) : 0
+                    Headless - No Video (V3) : 0
+        Use native instr after SLP_TYPx (V3) : 0
+              PCIEXP_WAK Bits Supported (V4) : 0
+                     Use Platform Timer (V4) : 1
+               RTC_STS valid on S4 wake (V4) : 0
+                Remote Power-on capable (V4) : 0
+                 Use APIC Cluster Model (V4) : 0
+     Use APIC Physical Destination Mode (V4) : 0
+                       Hardware Reduced (V5) : 0
+                      Low Power S0 Idle (V5) : 0
+
+[074h 0116  12]               Reset Register : [Generic Address Structure]
+[074h 0116   1]                     Space ID : 01 [SystemIO]
+[075h 0117   1]                    Bit Width : 08
+[076h 0118   1]                   Bit Offset : 00
+[077h 0119   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[078h 0120   8]                      Address : 0000000000000CF9
+
+[080h 0128   1]         Value to cause reset : 0F
+[081h 0129   2]    ARM Flags (decoded below) : 0000
+                              PSCI Compliant : 0
+                       Must use HVC for PSCI : 0
+
+[083h 0131   1]          FADT Minor Revision : 00
+[084h 0132   8]                 FACS Address : 0000000000000000
+[08Ch 0140   8]                 DSDT Address : 0000000000000000
+[094h 0148  12]             PM1A Event Block : [Generic Address Structure]
+[094h 0148   1]                     Space ID : 01 [SystemIO]
+[095h 0149   1]                    Bit Width : 20
+[096h 0150   1]                   Bit Offset : 00
+[097h 0151   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[098h 0152   8]                      Address : 0000000000000600
+
+[0A0h 0160  12]             PM1B Event Block : [Generic Address Structure]
+[0A0h 0160   1]                     Space ID : 00 [SystemMemory]
+[0A1h 0161   1]                    Bit Width : 00
+[0A2h 0162   1]                   Bit Offset : 00
+[0A3h 0163   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0A4h 0164   8]                      Address : 0000000000000000
+
+[0ACh 0172  12]           PM1A Control Block : [Generic Address Structure]
+[0ACh 0172   1]                     Space ID : 01 [SystemIO]
+[0ADh 0173   1]                    Bit Width : 10
+[0AEh 0174   1]                   Bit Offset : 00
+[0AFh 0175   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0B0h 0176   8]                      Address : 0000000000000604
+
+[0B8h 0184  12]           PM1B Control Block : [Generic Address Structure]
+[0B8h 0184   1]                     Space ID : 00 [SystemMemory]
+[0B9h 0185   1]                    Bit Width : 00
+[0BAh 0186   1]                   Bit Offset : 00
+[0BBh 0187   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0BCh 0188   8]                      Address : 0000000000000000
+
+[0C4h 0196  12]            PM2 Control Block : [Generic Address Structure]
+[0C4h 0196   1]                     Space ID : 00 [SystemMemory]
+[0C5h 0197   1]                    Bit Width : 00
+[0C6h 0198   1]                   Bit Offset : 00
+[0C7h 0199   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0C8h 0200   8]                      Address : 0000000000000000
+
+[0D0h 0208  12]               PM Timer Block : [Generic Address Structure]
+[0D0h 0208   1]                     Space ID : 01 [SystemIO]
+[0D1h 0209   1]                    Bit Width : 20
+[0D2h 0210   1]                   Bit Offset : 00
+[0D3h 0211   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0D4h 0212   8]                      Address : 0000000000000608
+
+[0DCh 0220  12]                   GPE0 Block : [Generic Address Structure]
+[0DCh 0220   1]                     Space ID : 01 [SystemIO]
+[0DDh 0221   1]                    Bit Width : 80
+[0DEh 0222   1]                   Bit Offset : 00
+[0DFh 0223   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0E0h 0224   8]                      Address : 0000000000000620
+
+[0E8h 0232  12]                   GPE1 Block : [Generic Address Structure]
+[0E8h 0232   1]                     Space ID : 00 [SystemMemory]
+[0E9h 0233   1]                    Bit Width : 00
+[0EAh 0234   1]                   Bit Offset : 00
+[0EBh 0235   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0ECh 0236   8]                      Address : 0000000000000000
+
+
+Raw Table Data: Length 244 (0xF4)
+
+    0000: 46 41 43 50 F4 00 00 00 03 1F 42 4F 43 48 53 20  // FACP......BOCHS 
+    0010: 42 58 50 43 46 41 43 50 01 00 00 00 42 58 50 43  // BXPCFACP....BXPC
+    0020: 01 00 00 00 00 00 00 00 00 00 00 00 01 00 09 00  // ................
+    0030: B2 00 00 00 02 03 00 00 00 06 00 00 00 00 00 00  // ................
+    0040: 04 06 00 00 00 00 00 00 00 00 00 00 08 06 00 00  // ................
+    0050: 20 06 00 00 00 00 00 00 04 02 00 04 10 00 00 00  //  ...............
+    0060: FF 0F FF 0F 00 00 00 00 00 00 00 00 32 00 00 00  // ............2...
+    0070: A5 84 00 00 01 08 00 00 F9 0C 00 00 00 00 00 00  // ................
+    0080: 0F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0090: 00 00 00 00 01 20 00 00 00 06 00 00 00 00 00 00  // ..... ..........
+    00A0: 00 00 00 00 00 00 00 00 00 00 00 00 01 10 00 00  // ................
+    00B0: 04 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00D0: 01 20 00 00 08 06 00 00 00 00 00 00 01 80 00 00  // . ..............
+    00E0: 20 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00  //  ...............
+    00F0: 00 00 00 00                                      // ....
diff --git a/tests/data/acpi/q35/FACP.bridge b/tests/data/acpi/q35/FACP.bridge
new file mode 100644
index 0000000000000000000000000000000000000000..72c9d97902a4bbf14896023d9ba78e0899d6517b
GIT binary patch
literal 244
zcmZ>BbPo8!z`(#P@8s|75v<@85#a0w6k`O6f!H7#1{fJQ88!hqOw2%n4I;_{r9nIn
zAX@<@&cwhX02KSr|DPYCl7Ybp$XMFKz`)4C!0?j?A_|v;DFV`r3P1wMTp$k&7=Z>N
X+XoXzrWq9=?f{7~HXz&s;==#{<X{c~

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/q35/FACP.bridge.dsl b/tests/data/acpi/q35/FACP.bridge.dsl
new file mode 100644
index 0000000000..2416f4391a
--- /dev/null
+++ b/tests/data/acpi/q35/FACP.bridge.dsl
@@ -0,0 +1,179 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/FACP.bridge, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [FACP]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "FACP"    [Fixed ACPI Description Table (FADT)]
+[004h 0004   4]                 Table Length : 000000F4
+[008h 0008   1]                     Revision : 03
+[009h 0009   1]                     Checksum : 1F
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCFACP"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]                 FACS Address : 00000000
+[028h 0040   4]                 DSDT Address : 00000000
+[02Ch 0044   1]                        Model : 01
+[02Dh 0045   1]                   PM Profile : 00 [Unspecified]
+[02Eh 0046   2]                SCI Interrupt : 0009
+[030h 0048   4]             SMI Command Port : 000000B2
+[034h 0052   1]            ACPI Enable Value : 02
+[035h 0053   1]           ACPI Disable Value : 03
+[036h 0054   1]               S4BIOS Command : 00
+[037h 0055   1]              P-State Control : 00
+[038h 0056   4]     PM1A Event Block Address : 00000600
+[03Ch 0060   4]     PM1B Event Block Address : 00000000
+[040h 0064   4]   PM1A Control Block Address : 00000604
+[044h 0068   4]   PM1B Control Block Address : 00000000
+[048h 0072   4]    PM2 Control Block Address : 00000000
+[04Ch 0076   4]       PM Timer Block Address : 00000608
+[050h 0080   4]           GPE0 Block Address : 00000620
+[054h 0084   4]           GPE1 Block Address : 00000000
+[058h 0088   1]       PM1 Event Block Length : 04
+[059h 0089   1]     PM1 Control Block Length : 02
+[05Ah 0090   1]     PM2 Control Block Length : 00
+[05Bh 0091   1]        PM Timer Block Length : 04
+[05Ch 0092   1]            GPE0 Block Length : 10
+[05Dh 0093   1]            GPE1 Block Length : 00
+[05Eh 0094   1]             GPE1 Base Offset : 00
+[05Fh 0095   1]                 _CST Support : 00
+[060h 0096   2]                   C2 Latency : 0FFF
+[062h 0098   2]                   C3 Latency : 0FFF
+[064h 0100   2]               CPU Cache Size : 0000
+[066h 0102   2]           Cache Flush Stride : 0000
+[068h 0104   1]            Duty Cycle Offset : 00
+[069h 0105   1]             Duty Cycle Width : 00
+[06Ah 0106   1]          RTC Day Alarm Index : 00
+[06Bh 0107   1]        RTC Month Alarm Index : 00
+[06Ch 0108   1]            RTC Century Index : 32
+[06Dh 0109   2]   Boot Flags (decoded below) : 0000
+               Legacy Devices Supported (V2) : 0
+            8042 Present on ports 60/64 (V2) : 0
+                        VGA Not Present (V4) : 0
+                      MSI Not Supported (V4) : 0
+                PCIe ASPM Not Supported (V4) : 0
+                   CMOS RTC Not Present (V5) : 0
+[06Fh 0111   1]                     Reserved : 00
+[070h 0112   4]        Flags (decoded below) : 000084A5
+      WBINVD instruction is operational (V1) : 1
+              WBINVD flushes all caches (V1) : 0
+                    All CPUs support C1 (V1) : 1
+                  C2 works on MP system (V1) : 0
+            Control Method Power Button (V1) : 0
+            Control Method Sleep Button (V1) : 1
+        RTC wake not in fixed reg space (V1) : 0
+            RTC can wake system from S4 (V1) : 1
+                        32-bit PM Timer (V1) : 0
+                      Docking Supported (V1) : 0
+               Reset Register Supported (V2) : 1
+                            Sealed Case (V3) : 0
+                    Headless - No Video (V3) : 0
+        Use native instr after SLP_TYPx (V3) : 0
+              PCIEXP_WAK Bits Supported (V4) : 0
+                     Use Platform Timer (V4) : 1
+               RTC_STS valid on S4 wake (V4) : 0
+                Remote Power-on capable (V4) : 0
+                 Use APIC Cluster Model (V4) : 0
+     Use APIC Physical Destination Mode (V4) : 0
+                       Hardware Reduced (V5) : 0
+                      Low Power S0 Idle (V5) : 0
+
+[074h 0116  12]               Reset Register : [Generic Address Structure]
+[074h 0116   1]                     Space ID : 01 [SystemIO]
+[075h 0117   1]                    Bit Width : 08
+[076h 0118   1]                   Bit Offset : 00
+[077h 0119   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[078h 0120   8]                      Address : 0000000000000CF9
+
+[080h 0128   1]         Value to cause reset : 0F
+[081h 0129   2]    ARM Flags (decoded below) : 0000
+                              PSCI Compliant : 0
+                       Must use HVC for PSCI : 0
+
+[083h 0131   1]          FADT Minor Revision : 00
+[084h 0132   8]                 FACS Address : 0000000000000000
+[08Ch 0140   8]                 DSDT Address : 0000000000000000
+[094h 0148  12]             PM1A Event Block : [Generic Address Structure]
+[094h 0148   1]                     Space ID : 01 [SystemIO]
+[095h 0149   1]                    Bit Width : 20
+[096h 0150   1]                   Bit Offset : 00
+[097h 0151   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[098h 0152   8]                      Address : 0000000000000600
+
+[0A0h 0160  12]             PM1B Event Block : [Generic Address Structure]
+[0A0h 0160   1]                     Space ID : 00 [SystemMemory]
+[0A1h 0161   1]                    Bit Width : 00
+[0A2h 0162   1]                   Bit Offset : 00
+[0A3h 0163   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0A4h 0164   8]                      Address : 0000000000000000
+
+[0ACh 0172  12]           PM1A Control Block : [Generic Address Structure]
+[0ACh 0172   1]                     Space ID : 01 [SystemIO]
+[0ADh 0173   1]                    Bit Width : 10
+[0AEh 0174   1]                   Bit Offset : 00
+[0AFh 0175   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0B0h 0176   8]                      Address : 0000000000000604
+
+[0B8h 0184  12]           PM1B Control Block : [Generic Address Structure]
+[0B8h 0184   1]                     Space ID : 00 [SystemMemory]
+[0B9h 0185   1]                    Bit Width : 00
+[0BAh 0186   1]                   Bit Offset : 00
+[0BBh 0187   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0BCh 0188   8]                      Address : 0000000000000000
+
+[0C4h 0196  12]            PM2 Control Block : [Generic Address Structure]
+[0C4h 0196   1]                     Space ID : 00 [SystemMemory]
+[0C5h 0197   1]                    Bit Width : 00
+[0C6h 0198   1]                   Bit Offset : 00
+[0C7h 0199   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0C8h 0200   8]                      Address : 0000000000000000
+
+[0D0h 0208  12]               PM Timer Block : [Generic Address Structure]
+[0D0h 0208   1]                     Space ID : 01 [SystemIO]
+[0D1h 0209   1]                    Bit Width : 20
+[0D2h 0210   1]                   Bit Offset : 00
+[0D3h 0211   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0D4h 0212   8]                      Address : 0000000000000608
+
+[0DCh 0220  12]                   GPE0 Block : [Generic Address Structure]
+[0DCh 0220   1]                     Space ID : 01 [SystemIO]
+[0DDh 0221   1]                    Bit Width : 80
+[0DEh 0222   1]                   Bit Offset : 00
+[0DFh 0223   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0E0h 0224   8]                      Address : 0000000000000620
+
+[0E8h 0232  12]                   GPE1 Block : [Generic Address Structure]
+[0E8h 0232   1]                     Space ID : 00 [SystemMemory]
+[0E9h 0233   1]                    Bit Width : 00
+[0EAh 0234   1]                   Bit Offset : 00
+[0EBh 0235   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0ECh 0236   8]                      Address : 0000000000000000
+
+
+Raw Table Data: Length 244 (0xF4)
+
+    0000: 46 41 43 50 F4 00 00 00 03 1F 42 4F 43 48 53 20  // FACP......BOCHS 
+    0010: 42 58 50 43 46 41 43 50 01 00 00 00 42 58 50 43  // BXPCFACP....BXPC
+    0020: 01 00 00 00 00 00 00 00 00 00 00 00 01 00 09 00  // ................
+    0030: B2 00 00 00 02 03 00 00 00 06 00 00 00 00 00 00  // ................
+    0040: 04 06 00 00 00 00 00 00 00 00 00 00 08 06 00 00  // ................
+    0050: 20 06 00 00 00 00 00 00 04 02 00 04 10 00 00 00  //  ...............
+    0060: FF 0F FF 0F 00 00 00 00 00 00 00 00 32 00 00 00  // ............2...
+    0070: A5 84 00 00 01 08 00 00 F9 0C 00 00 00 00 00 00  // ................
+    0080: 0F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0090: 00 00 00 00 01 20 00 00 00 06 00 00 00 00 00 00  // ..... ..........
+    00A0: 00 00 00 00 00 00 00 00 00 00 00 00 01 10 00 00  // ................
+    00B0: 04 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00D0: 01 20 00 00 08 06 00 00 00 00 00 00 01 80 00 00  // . ..............
+    00E0: 20 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00  //  ...............
+    00F0: 00 00 00 00                                      // ....
diff --git a/tests/data/acpi/q35/FACP.cphp b/tests/data/acpi/q35/FACP.cphp
new file mode 100644
index 0000000000000000000000000000000000000000..72c9d97902a4bbf14896023d9ba78e0899d6517b
GIT binary patch
literal 244
zcmZ>BbPo8!z`(#P@8s|75v<@85#a0w6k`O6f!H7#1{fJQ88!hqOw2%n4I;_{r9nIn
zAX@<@&cwhX02KSr|DPYCl7Ybp$XMFKz`)4C!0?j?A_|v;DFV`r3P1wMTp$k&7=Z>N
X+XoXzrWq9=?f{7~HXz&s;==#{<X{c~

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/q35/FACP.cphp.dsl b/tests/data/acpi/q35/FACP.cphp.dsl
new file mode 100644
index 0000000000..96ee322b53
--- /dev/null
+++ b/tests/data/acpi/q35/FACP.cphp.dsl
@@ -0,0 +1,179 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/FACP.cphp, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [FACP]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "FACP"    [Fixed ACPI Description Table (FADT)]
+[004h 0004   4]                 Table Length : 000000F4
+[008h 0008   1]                     Revision : 03
+[009h 0009   1]                     Checksum : 1F
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCFACP"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]                 FACS Address : 00000000
+[028h 0040   4]                 DSDT Address : 00000000
+[02Ch 0044   1]                        Model : 01
+[02Dh 0045   1]                   PM Profile : 00 [Unspecified]
+[02Eh 0046   2]                SCI Interrupt : 0009
+[030h 0048   4]             SMI Command Port : 000000B2
+[034h 0052   1]            ACPI Enable Value : 02
+[035h 0053   1]           ACPI Disable Value : 03
+[036h 0054   1]               S4BIOS Command : 00
+[037h 0055   1]              P-State Control : 00
+[038h 0056   4]     PM1A Event Block Address : 00000600
+[03Ch 0060   4]     PM1B Event Block Address : 00000000
+[040h 0064   4]   PM1A Control Block Address : 00000604
+[044h 0068   4]   PM1B Control Block Address : 00000000
+[048h 0072   4]    PM2 Control Block Address : 00000000
+[04Ch 0076   4]       PM Timer Block Address : 00000608
+[050h 0080   4]           GPE0 Block Address : 00000620
+[054h 0084   4]           GPE1 Block Address : 00000000
+[058h 0088   1]       PM1 Event Block Length : 04
+[059h 0089   1]     PM1 Control Block Length : 02
+[05Ah 0090   1]     PM2 Control Block Length : 00
+[05Bh 0091   1]        PM Timer Block Length : 04
+[05Ch 0092   1]            GPE0 Block Length : 10
+[05Dh 0093   1]            GPE1 Block Length : 00
+[05Eh 0094   1]             GPE1 Base Offset : 00
+[05Fh 0095   1]                 _CST Support : 00
+[060h 0096   2]                   C2 Latency : 0FFF
+[062h 0098   2]                   C3 Latency : 0FFF
+[064h 0100   2]               CPU Cache Size : 0000
+[066h 0102   2]           Cache Flush Stride : 0000
+[068h 0104   1]            Duty Cycle Offset : 00
+[069h 0105   1]             Duty Cycle Width : 00
+[06Ah 0106   1]          RTC Day Alarm Index : 00
+[06Bh 0107   1]        RTC Month Alarm Index : 00
+[06Ch 0108   1]            RTC Century Index : 32
+[06Dh 0109   2]   Boot Flags (decoded below) : 0000
+               Legacy Devices Supported (V2) : 0
+            8042 Present on ports 60/64 (V2) : 0
+                        VGA Not Present (V4) : 0
+                      MSI Not Supported (V4) : 0
+                PCIe ASPM Not Supported (V4) : 0
+                   CMOS RTC Not Present (V5) : 0
+[06Fh 0111   1]                     Reserved : 00
+[070h 0112   4]        Flags (decoded below) : 000084A5
+      WBINVD instruction is operational (V1) : 1
+              WBINVD flushes all caches (V1) : 0
+                    All CPUs support C1 (V1) : 1
+                  C2 works on MP system (V1) : 0
+            Control Method Power Button (V1) : 0
+            Control Method Sleep Button (V1) : 1
+        RTC wake not in fixed reg space (V1) : 0
+            RTC can wake system from S4 (V1) : 1
+                        32-bit PM Timer (V1) : 0
+                      Docking Supported (V1) : 0
+               Reset Register Supported (V2) : 1
+                            Sealed Case (V3) : 0
+                    Headless - No Video (V3) : 0
+        Use native instr after SLP_TYPx (V3) : 0
+              PCIEXP_WAK Bits Supported (V4) : 0
+                     Use Platform Timer (V4) : 1
+               RTC_STS valid on S4 wake (V4) : 0
+                Remote Power-on capable (V4) : 0
+                 Use APIC Cluster Model (V4) : 0
+     Use APIC Physical Destination Mode (V4) : 0
+                       Hardware Reduced (V5) : 0
+                      Low Power S0 Idle (V5) : 0
+
+[074h 0116  12]               Reset Register : [Generic Address Structure]
+[074h 0116   1]                     Space ID : 01 [SystemIO]
+[075h 0117   1]                    Bit Width : 08
+[076h 0118   1]                   Bit Offset : 00
+[077h 0119   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[078h 0120   8]                      Address : 0000000000000CF9
+
+[080h 0128   1]         Value to cause reset : 0F
+[081h 0129   2]    ARM Flags (decoded below) : 0000
+                              PSCI Compliant : 0
+                       Must use HVC for PSCI : 0
+
+[083h 0131   1]          FADT Minor Revision : 00
+[084h 0132   8]                 FACS Address : 0000000000000000
+[08Ch 0140   8]                 DSDT Address : 0000000000000000
+[094h 0148  12]             PM1A Event Block : [Generic Address Structure]
+[094h 0148   1]                     Space ID : 01 [SystemIO]
+[095h 0149   1]                    Bit Width : 20
+[096h 0150   1]                   Bit Offset : 00
+[097h 0151   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[098h 0152   8]                      Address : 0000000000000600
+
+[0A0h 0160  12]             PM1B Event Block : [Generic Address Structure]
+[0A0h 0160   1]                     Space ID : 00 [SystemMemory]
+[0A1h 0161   1]                    Bit Width : 00
+[0A2h 0162   1]                   Bit Offset : 00
+[0A3h 0163   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0A4h 0164   8]                      Address : 0000000000000000
+
+[0ACh 0172  12]           PM1A Control Block : [Generic Address Structure]
+[0ACh 0172   1]                     Space ID : 01 [SystemIO]
+[0ADh 0173   1]                    Bit Width : 10
+[0AEh 0174   1]                   Bit Offset : 00
+[0AFh 0175   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0B0h 0176   8]                      Address : 0000000000000604
+
+[0B8h 0184  12]           PM1B Control Block : [Generic Address Structure]
+[0B8h 0184   1]                     Space ID : 00 [SystemMemory]
+[0B9h 0185   1]                    Bit Width : 00
+[0BAh 0186   1]                   Bit Offset : 00
+[0BBh 0187   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0BCh 0188   8]                      Address : 0000000000000000
+
+[0C4h 0196  12]            PM2 Control Block : [Generic Address Structure]
+[0C4h 0196   1]                     Space ID : 00 [SystemMemory]
+[0C5h 0197   1]                    Bit Width : 00
+[0C6h 0198   1]                   Bit Offset : 00
+[0C7h 0199   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0C8h 0200   8]                      Address : 0000000000000000
+
+[0D0h 0208  12]               PM Timer Block : [Generic Address Structure]
+[0D0h 0208   1]                     Space ID : 01 [SystemIO]
+[0D1h 0209   1]                    Bit Width : 20
+[0D2h 0210   1]                   Bit Offset : 00
+[0D3h 0211   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0D4h 0212   8]                      Address : 0000000000000608
+
+[0DCh 0220  12]                   GPE0 Block : [Generic Address Structure]
+[0DCh 0220   1]                     Space ID : 01 [SystemIO]
+[0DDh 0221   1]                    Bit Width : 80
+[0DEh 0222   1]                   Bit Offset : 00
+[0DFh 0223   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0E0h 0224   8]                      Address : 0000000000000620
+
+[0E8h 0232  12]                   GPE1 Block : [Generic Address Structure]
+[0E8h 0232   1]                     Space ID : 00 [SystemMemory]
+[0E9h 0233   1]                    Bit Width : 00
+[0EAh 0234   1]                   Bit Offset : 00
+[0EBh 0235   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0ECh 0236   8]                      Address : 0000000000000000
+
+
+Raw Table Data: Length 244 (0xF4)
+
+    0000: 46 41 43 50 F4 00 00 00 03 1F 42 4F 43 48 53 20  // FACP......BOCHS 
+    0010: 42 58 50 43 46 41 43 50 01 00 00 00 42 58 50 43  // BXPCFACP....BXPC
+    0020: 01 00 00 00 00 00 00 00 00 00 00 00 01 00 09 00  // ................
+    0030: B2 00 00 00 02 03 00 00 00 06 00 00 00 00 00 00  // ................
+    0040: 04 06 00 00 00 00 00 00 00 00 00 00 08 06 00 00  // ................
+    0050: 20 06 00 00 00 00 00 00 04 02 00 04 10 00 00 00  //  ...............
+    0060: FF 0F FF 0F 00 00 00 00 00 00 00 00 32 00 00 00  // ............2...
+    0070: A5 84 00 00 01 08 00 00 F9 0C 00 00 00 00 00 00  // ................
+    0080: 0F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0090: 00 00 00 00 01 20 00 00 00 06 00 00 00 00 00 00  // ..... ..........
+    00A0: 00 00 00 00 00 00 00 00 00 00 00 00 01 10 00 00  // ................
+    00B0: 04 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00D0: 01 20 00 00 08 06 00 00 00 00 00 00 01 80 00 00  // . ..............
+    00E0: 20 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00  //  ...............
+    00F0: 00 00 00 00                                      // ....
diff --git a/tests/data/acpi/q35/FACP.dimmpxm b/tests/data/acpi/q35/FACP.dimmpxm
new file mode 100644
index 0000000000000000000000000000000000000000..72c9d97902a4bbf14896023d9ba78e0899d6517b
GIT binary patch
literal 244
zcmZ>BbPo8!z`(#P@8s|75v<@85#a0w6k`O6f!H7#1{fJQ88!hqOw2%n4I;_{r9nIn
zAX@<@&cwhX02KSr|DPYCl7Ybp$XMFKz`)4C!0?j?A_|v;DFV`r3P1wMTp$k&7=Z>N
X+XoXzrWq9=?f{7~HXz&s;==#{<X{c~

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/q35/FACP.dimmpxm.dsl b/tests/data/acpi/q35/FACP.dimmpxm.dsl
new file mode 100644
index 0000000000..14f7c181b8
--- /dev/null
+++ b/tests/data/acpi/q35/FACP.dimmpxm.dsl
@@ -0,0 +1,179 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/FACP.dimmpxm, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [FACP]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "FACP"    [Fixed ACPI Description Table (FADT)]
+[004h 0004   4]                 Table Length : 000000F4
+[008h 0008   1]                     Revision : 03
+[009h 0009   1]                     Checksum : 1F
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCFACP"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]                 FACS Address : 00000000
+[028h 0040   4]                 DSDT Address : 00000000
+[02Ch 0044   1]                        Model : 01
+[02Dh 0045   1]                   PM Profile : 00 [Unspecified]
+[02Eh 0046   2]                SCI Interrupt : 0009
+[030h 0048   4]             SMI Command Port : 000000B2
+[034h 0052   1]            ACPI Enable Value : 02
+[035h 0053   1]           ACPI Disable Value : 03
+[036h 0054   1]               S4BIOS Command : 00
+[037h 0055   1]              P-State Control : 00
+[038h 0056   4]     PM1A Event Block Address : 00000600
+[03Ch 0060   4]     PM1B Event Block Address : 00000000
+[040h 0064   4]   PM1A Control Block Address : 00000604
+[044h 0068   4]   PM1B Control Block Address : 00000000
+[048h 0072   4]    PM2 Control Block Address : 00000000
+[04Ch 0076   4]       PM Timer Block Address : 00000608
+[050h 0080   4]           GPE0 Block Address : 00000620
+[054h 0084   4]           GPE1 Block Address : 00000000
+[058h 0088   1]       PM1 Event Block Length : 04
+[059h 0089   1]     PM1 Control Block Length : 02
+[05Ah 0090   1]     PM2 Control Block Length : 00
+[05Bh 0091   1]        PM Timer Block Length : 04
+[05Ch 0092   1]            GPE0 Block Length : 10
+[05Dh 0093   1]            GPE1 Block Length : 00
+[05Eh 0094   1]             GPE1 Base Offset : 00
+[05Fh 0095   1]                 _CST Support : 00
+[060h 0096   2]                   C2 Latency : 0FFF
+[062h 0098   2]                   C3 Latency : 0FFF
+[064h 0100   2]               CPU Cache Size : 0000
+[066h 0102   2]           Cache Flush Stride : 0000
+[068h 0104   1]            Duty Cycle Offset : 00
+[069h 0105   1]             Duty Cycle Width : 00
+[06Ah 0106   1]          RTC Day Alarm Index : 00
+[06Bh 0107   1]        RTC Month Alarm Index : 00
+[06Ch 0108   1]            RTC Century Index : 32
+[06Dh 0109   2]   Boot Flags (decoded below) : 0000
+               Legacy Devices Supported (V2) : 0
+            8042 Present on ports 60/64 (V2) : 0
+                        VGA Not Present (V4) : 0
+                      MSI Not Supported (V4) : 0
+                PCIe ASPM Not Supported (V4) : 0
+                   CMOS RTC Not Present (V5) : 0
+[06Fh 0111   1]                     Reserved : 00
+[070h 0112   4]        Flags (decoded below) : 000084A5
+      WBINVD instruction is operational (V1) : 1
+              WBINVD flushes all caches (V1) : 0
+                    All CPUs support C1 (V1) : 1
+                  C2 works on MP system (V1) : 0
+            Control Method Power Button (V1) : 0
+            Control Method Sleep Button (V1) : 1
+        RTC wake not in fixed reg space (V1) : 0
+            RTC can wake system from S4 (V1) : 1
+                        32-bit PM Timer (V1) : 0
+                      Docking Supported (V1) : 0
+               Reset Register Supported (V2) : 1
+                            Sealed Case (V3) : 0
+                    Headless - No Video (V3) : 0
+        Use native instr after SLP_TYPx (V3) : 0
+              PCIEXP_WAK Bits Supported (V4) : 0
+                     Use Platform Timer (V4) : 1
+               RTC_STS valid on S4 wake (V4) : 0
+                Remote Power-on capable (V4) : 0
+                 Use APIC Cluster Model (V4) : 0
+     Use APIC Physical Destination Mode (V4) : 0
+                       Hardware Reduced (V5) : 0
+                      Low Power S0 Idle (V5) : 0
+
+[074h 0116  12]               Reset Register : [Generic Address Structure]
+[074h 0116   1]                     Space ID : 01 [SystemIO]
+[075h 0117   1]                    Bit Width : 08
+[076h 0118   1]                   Bit Offset : 00
+[077h 0119   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[078h 0120   8]                      Address : 0000000000000CF9
+
+[080h 0128   1]         Value to cause reset : 0F
+[081h 0129   2]    ARM Flags (decoded below) : 0000
+                              PSCI Compliant : 0
+                       Must use HVC for PSCI : 0
+
+[083h 0131   1]          FADT Minor Revision : 00
+[084h 0132   8]                 FACS Address : 0000000000000000
+[08Ch 0140   8]                 DSDT Address : 0000000000000000
+[094h 0148  12]             PM1A Event Block : [Generic Address Structure]
+[094h 0148   1]                     Space ID : 01 [SystemIO]
+[095h 0149   1]                    Bit Width : 20
+[096h 0150   1]                   Bit Offset : 00
+[097h 0151   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[098h 0152   8]                      Address : 0000000000000600
+
+[0A0h 0160  12]             PM1B Event Block : [Generic Address Structure]
+[0A0h 0160   1]                     Space ID : 00 [SystemMemory]
+[0A1h 0161   1]                    Bit Width : 00
+[0A2h 0162   1]                   Bit Offset : 00
+[0A3h 0163   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0A4h 0164   8]                      Address : 0000000000000000
+
+[0ACh 0172  12]           PM1A Control Block : [Generic Address Structure]
+[0ACh 0172   1]                     Space ID : 01 [SystemIO]
+[0ADh 0173   1]                    Bit Width : 10
+[0AEh 0174   1]                   Bit Offset : 00
+[0AFh 0175   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0B0h 0176   8]                      Address : 0000000000000604
+
+[0B8h 0184  12]           PM1B Control Block : [Generic Address Structure]
+[0B8h 0184   1]                     Space ID : 00 [SystemMemory]
+[0B9h 0185   1]                    Bit Width : 00
+[0BAh 0186   1]                   Bit Offset : 00
+[0BBh 0187   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0BCh 0188   8]                      Address : 0000000000000000
+
+[0C4h 0196  12]            PM2 Control Block : [Generic Address Structure]
+[0C4h 0196   1]                     Space ID : 00 [SystemMemory]
+[0C5h 0197   1]                    Bit Width : 00
+[0C6h 0198   1]                   Bit Offset : 00
+[0C7h 0199   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0C8h 0200   8]                      Address : 0000000000000000
+
+[0D0h 0208  12]               PM Timer Block : [Generic Address Structure]
+[0D0h 0208   1]                     Space ID : 01 [SystemIO]
+[0D1h 0209   1]                    Bit Width : 20
+[0D2h 0210   1]                   Bit Offset : 00
+[0D3h 0211   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0D4h 0212   8]                      Address : 0000000000000608
+
+[0DCh 0220  12]                   GPE0 Block : [Generic Address Structure]
+[0DCh 0220   1]                     Space ID : 01 [SystemIO]
+[0DDh 0221   1]                    Bit Width : 80
+[0DEh 0222   1]                   Bit Offset : 00
+[0DFh 0223   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0E0h 0224   8]                      Address : 0000000000000620
+
+[0E8h 0232  12]                   GPE1 Block : [Generic Address Structure]
+[0E8h 0232   1]                     Space ID : 00 [SystemMemory]
+[0E9h 0233   1]                    Bit Width : 00
+[0EAh 0234   1]                   Bit Offset : 00
+[0EBh 0235   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0ECh 0236   8]                      Address : 0000000000000000
+
+
+Raw Table Data: Length 244 (0xF4)
+
+    0000: 46 41 43 50 F4 00 00 00 03 1F 42 4F 43 48 53 20  // FACP......BOCHS 
+    0010: 42 58 50 43 46 41 43 50 01 00 00 00 42 58 50 43  // BXPCFACP....BXPC
+    0020: 01 00 00 00 00 00 00 00 00 00 00 00 01 00 09 00  // ................
+    0030: B2 00 00 00 02 03 00 00 00 06 00 00 00 00 00 00  // ................
+    0040: 04 06 00 00 00 00 00 00 00 00 00 00 08 06 00 00  // ................
+    0050: 20 06 00 00 00 00 00 00 04 02 00 04 10 00 00 00  //  ...............
+    0060: FF 0F FF 0F 00 00 00 00 00 00 00 00 32 00 00 00  // ............2...
+    0070: A5 84 00 00 01 08 00 00 F9 0C 00 00 00 00 00 00  // ................
+    0080: 0F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0090: 00 00 00 00 01 20 00 00 00 06 00 00 00 00 00 00  // ..... ..........
+    00A0: 00 00 00 00 00 00 00 00 00 00 00 00 01 10 00 00  // ................
+    00B0: 04 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00D0: 01 20 00 00 08 06 00 00 00 00 00 00 01 80 00 00  // . ..............
+    00E0: 20 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00  //  ...............
+    00F0: 00 00 00 00                                      // ....
diff --git a/tests/data/acpi/q35/FACP.dsl b/tests/data/acpi/q35/FACP.dsl
new file mode 100644
index 0000000000..1a8893b320
--- /dev/null
+++ b/tests/data/acpi/q35/FACP.dsl
@@ -0,0 +1,179 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/FACP.tis, Mon Sep 28 17:24:38 2020
+ *
+ * ACPI Data Table [FACP]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "FACP"    [Fixed ACPI Description Table (FADT)]
+[004h 0004   4]                 Table Length : 000000F4
+[008h 0008   1]                     Revision : 03
+[009h 0009   1]                     Checksum : 1F
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCFACP"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]                 FACS Address : 00000000
+[028h 0040   4]                 DSDT Address : 00000000
+[02Ch 0044   1]                        Model : 01
+[02Dh 0045   1]                   PM Profile : 00 [Unspecified]
+[02Eh 0046   2]                SCI Interrupt : 0009
+[030h 0048   4]             SMI Command Port : 000000B2
+[034h 0052   1]            ACPI Enable Value : 02
+[035h 0053   1]           ACPI Disable Value : 03
+[036h 0054   1]               S4BIOS Command : 00
+[037h 0055   1]              P-State Control : 00
+[038h 0056   4]     PM1A Event Block Address : 00000600
+[03Ch 0060   4]     PM1B Event Block Address : 00000000
+[040h 0064   4]   PM1A Control Block Address : 00000604
+[044h 0068   4]   PM1B Control Block Address : 00000000
+[048h 0072   4]    PM2 Control Block Address : 00000000
+[04Ch 0076   4]       PM Timer Block Address : 00000608
+[050h 0080   4]           GPE0 Block Address : 00000620
+[054h 0084   4]           GPE1 Block Address : 00000000
+[058h 0088   1]       PM1 Event Block Length : 04
+[059h 0089   1]     PM1 Control Block Length : 02
+[05Ah 0090   1]     PM2 Control Block Length : 00
+[05Bh 0091   1]        PM Timer Block Length : 04
+[05Ch 0092   1]            GPE0 Block Length : 10
+[05Dh 0093   1]            GPE1 Block Length : 00
+[05Eh 0094   1]             GPE1 Base Offset : 00
+[05Fh 0095   1]                 _CST Support : 00
+[060h 0096   2]                   C2 Latency : 0FFF
+[062h 0098   2]                   C3 Latency : 0FFF
+[064h 0100   2]               CPU Cache Size : 0000
+[066h 0102   2]           Cache Flush Stride : 0000
+[068h 0104   1]            Duty Cycle Offset : 00
+[069h 0105   1]             Duty Cycle Width : 00
+[06Ah 0106   1]          RTC Day Alarm Index : 00
+[06Bh 0107   1]        RTC Month Alarm Index : 00
+[06Ch 0108   1]            RTC Century Index : 32
+[06Dh 0109   2]   Boot Flags (decoded below) : 0000
+               Legacy Devices Supported (V2) : 0
+            8042 Present on ports 60/64 (V2) : 0
+                        VGA Not Present (V4) : 0
+                      MSI Not Supported (V4) : 0
+                PCIe ASPM Not Supported (V4) : 0
+                   CMOS RTC Not Present (V5) : 0
+[06Fh 0111   1]                     Reserved : 00
+[070h 0112   4]        Flags (decoded below) : 000084A5
+      WBINVD instruction is operational (V1) : 1
+              WBINVD flushes all caches (V1) : 0
+                    All CPUs support C1 (V1) : 1
+                  C2 works on MP system (V1) : 0
+            Control Method Power Button (V1) : 0
+            Control Method Sleep Button (V1) : 1
+        RTC wake not in fixed reg space (V1) : 0
+            RTC can wake system from S4 (V1) : 1
+                        32-bit PM Timer (V1) : 0
+                      Docking Supported (V1) : 0
+               Reset Register Supported (V2) : 1
+                            Sealed Case (V3) : 0
+                    Headless - No Video (V3) : 0
+        Use native instr after SLP_TYPx (V3) : 0
+              PCIEXP_WAK Bits Supported (V4) : 0
+                     Use Platform Timer (V4) : 1
+               RTC_STS valid on S4 wake (V4) : 0
+                Remote Power-on capable (V4) : 0
+                 Use APIC Cluster Model (V4) : 0
+     Use APIC Physical Destination Mode (V4) : 0
+                       Hardware Reduced (V5) : 0
+                      Low Power S0 Idle (V5) : 0
+
+[074h 0116  12]               Reset Register : [Generic Address Structure]
+[074h 0116   1]                     Space ID : 01 [SystemIO]
+[075h 0117   1]                    Bit Width : 08
+[076h 0118   1]                   Bit Offset : 00
+[077h 0119   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[078h 0120   8]                      Address : 0000000000000CF9
+
+[080h 0128   1]         Value to cause reset : 0F
+[081h 0129   2]    ARM Flags (decoded below) : 0000
+                              PSCI Compliant : 0
+                       Must use HVC for PSCI : 0
+
+[083h 0131   1]          FADT Minor Revision : 00
+[084h 0132   8]                 FACS Address : 0000000000000000
+[08Ch 0140   8]                 DSDT Address : 0000000000000000
+[094h 0148  12]             PM1A Event Block : [Generic Address Structure]
+[094h 0148   1]                     Space ID : 01 [SystemIO]
+[095h 0149   1]                    Bit Width : 20
+[096h 0150   1]                   Bit Offset : 00
+[097h 0151   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[098h 0152   8]                      Address : 0000000000000600
+
+[0A0h 0160  12]             PM1B Event Block : [Generic Address Structure]
+[0A0h 0160   1]                     Space ID : 00 [SystemMemory]
+[0A1h 0161   1]                    Bit Width : 00
+[0A2h 0162   1]                   Bit Offset : 00
+[0A3h 0163   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0A4h 0164   8]                      Address : 0000000000000000
+
+[0ACh 0172  12]           PM1A Control Block : [Generic Address Structure]
+[0ACh 0172   1]                     Space ID : 01 [SystemIO]
+[0ADh 0173   1]                    Bit Width : 10
+[0AEh 0174   1]                   Bit Offset : 00
+[0AFh 0175   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0B0h 0176   8]                      Address : 0000000000000604
+
+[0B8h 0184  12]           PM1B Control Block : [Generic Address Structure]
+[0B8h 0184   1]                     Space ID : 00 [SystemMemory]
+[0B9h 0185   1]                    Bit Width : 00
+[0BAh 0186   1]                   Bit Offset : 00
+[0BBh 0187   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0BCh 0188   8]                      Address : 0000000000000000
+
+[0C4h 0196  12]            PM2 Control Block : [Generic Address Structure]
+[0C4h 0196   1]                     Space ID : 00 [SystemMemory]
+[0C5h 0197   1]                    Bit Width : 00
+[0C6h 0198   1]                   Bit Offset : 00
+[0C7h 0199   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0C8h 0200   8]                      Address : 0000000000000000
+
+[0D0h 0208  12]               PM Timer Block : [Generic Address Structure]
+[0D0h 0208   1]                     Space ID : 01 [SystemIO]
+[0D1h 0209   1]                    Bit Width : 20
+[0D2h 0210   1]                   Bit Offset : 00
+[0D3h 0211   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0D4h 0212   8]                      Address : 0000000000000608
+
+[0DCh 0220  12]                   GPE0 Block : [Generic Address Structure]
+[0DCh 0220   1]                     Space ID : 01 [SystemIO]
+[0DDh 0221   1]                    Bit Width : 80
+[0DEh 0222   1]                   Bit Offset : 00
+[0DFh 0223   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0E0h 0224   8]                      Address : 0000000000000620
+
+[0E8h 0232  12]                   GPE1 Block : [Generic Address Structure]
+[0E8h 0232   1]                     Space ID : 00 [SystemMemory]
+[0E9h 0233   1]                    Bit Width : 00
+[0EAh 0234   1]                   Bit Offset : 00
+[0EBh 0235   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0ECh 0236   8]                      Address : 0000000000000000
+
+
+Raw Table Data: Length 244 (0xF4)
+
+    0000: 46 41 43 50 F4 00 00 00 03 1F 42 4F 43 48 53 20  // FACP......BOCHS 
+    0010: 42 58 50 43 46 41 43 50 01 00 00 00 42 58 50 43  // BXPCFACP....BXPC
+    0020: 01 00 00 00 00 00 00 00 00 00 00 00 01 00 09 00  // ................
+    0030: B2 00 00 00 02 03 00 00 00 06 00 00 00 00 00 00  // ................
+    0040: 04 06 00 00 00 00 00 00 00 00 00 00 08 06 00 00  // ................
+    0050: 20 06 00 00 00 00 00 00 04 02 00 04 10 00 00 00  //  ...............
+    0060: FF 0F FF 0F 00 00 00 00 00 00 00 00 32 00 00 00  // ............2...
+    0070: A5 84 00 00 01 08 00 00 F9 0C 00 00 00 00 00 00  // ................
+    0080: 0F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0090: 00 00 00 00 01 20 00 00 00 06 00 00 00 00 00 00  // ..... ..........
+    00A0: 00 00 00 00 00 00 00 00 00 00 00 00 01 10 00 00  // ................
+    00B0: 04 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00D0: 01 20 00 00 08 06 00 00 00 00 00 00 01 80 00 00  // . ..............
+    00E0: 20 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00  //  ...............
+    00F0: 00 00 00 00                                      // ....
diff --git a/tests/data/acpi/q35/FACP.ipmibt b/tests/data/acpi/q35/FACP.ipmibt
new file mode 100644
index 0000000000000000000000000000000000000000..72c9d97902a4bbf14896023d9ba78e0899d6517b
GIT binary patch
literal 244
zcmZ>BbPo8!z`(#P@8s|75v<@85#a0w6k`O6f!H7#1{fJQ88!hqOw2%n4I;_{r9nIn
zAX@<@&cwhX02KSr|DPYCl7Ybp$XMFKz`)4C!0?j?A_|v;DFV`r3P1wMTp$k&7=Z>N
X+XoXzrWq9=?f{7~HXz&s;==#{<X{c~

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/q35/FACP.ipmibt.dsl b/tests/data/acpi/q35/FACP.ipmibt.dsl
new file mode 100644
index 0000000000..b6e56c5af2
--- /dev/null
+++ b/tests/data/acpi/q35/FACP.ipmibt.dsl
@@ -0,0 +1,179 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/FACP.ipmibt, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [FACP]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "FACP"    [Fixed ACPI Description Table (FADT)]
+[004h 0004   4]                 Table Length : 000000F4
+[008h 0008   1]                     Revision : 03
+[009h 0009   1]                     Checksum : 1F
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCFACP"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]                 FACS Address : 00000000
+[028h 0040   4]                 DSDT Address : 00000000
+[02Ch 0044   1]                        Model : 01
+[02Dh 0045   1]                   PM Profile : 00 [Unspecified]
+[02Eh 0046   2]                SCI Interrupt : 0009
+[030h 0048   4]             SMI Command Port : 000000B2
+[034h 0052   1]            ACPI Enable Value : 02
+[035h 0053   1]           ACPI Disable Value : 03
+[036h 0054   1]               S4BIOS Command : 00
+[037h 0055   1]              P-State Control : 00
+[038h 0056   4]     PM1A Event Block Address : 00000600
+[03Ch 0060   4]     PM1B Event Block Address : 00000000
+[040h 0064   4]   PM1A Control Block Address : 00000604
+[044h 0068   4]   PM1B Control Block Address : 00000000
+[048h 0072   4]    PM2 Control Block Address : 00000000
+[04Ch 0076   4]       PM Timer Block Address : 00000608
+[050h 0080   4]           GPE0 Block Address : 00000620
+[054h 0084   4]           GPE1 Block Address : 00000000
+[058h 0088   1]       PM1 Event Block Length : 04
+[059h 0089   1]     PM1 Control Block Length : 02
+[05Ah 0090   1]     PM2 Control Block Length : 00
+[05Bh 0091   1]        PM Timer Block Length : 04
+[05Ch 0092   1]            GPE0 Block Length : 10
+[05Dh 0093   1]            GPE1 Block Length : 00
+[05Eh 0094   1]             GPE1 Base Offset : 00
+[05Fh 0095   1]                 _CST Support : 00
+[060h 0096   2]                   C2 Latency : 0FFF
+[062h 0098   2]                   C3 Latency : 0FFF
+[064h 0100   2]               CPU Cache Size : 0000
+[066h 0102   2]           Cache Flush Stride : 0000
+[068h 0104   1]            Duty Cycle Offset : 00
+[069h 0105   1]             Duty Cycle Width : 00
+[06Ah 0106   1]          RTC Day Alarm Index : 00
+[06Bh 0107   1]        RTC Month Alarm Index : 00
+[06Ch 0108   1]            RTC Century Index : 32
+[06Dh 0109   2]   Boot Flags (decoded below) : 0000
+               Legacy Devices Supported (V2) : 0
+            8042 Present on ports 60/64 (V2) : 0
+                        VGA Not Present (V4) : 0
+                      MSI Not Supported (V4) : 0
+                PCIe ASPM Not Supported (V4) : 0
+                   CMOS RTC Not Present (V5) : 0
+[06Fh 0111   1]                     Reserved : 00
+[070h 0112   4]        Flags (decoded below) : 000084A5
+      WBINVD instruction is operational (V1) : 1
+              WBINVD flushes all caches (V1) : 0
+                    All CPUs support C1 (V1) : 1
+                  C2 works on MP system (V1) : 0
+            Control Method Power Button (V1) : 0
+            Control Method Sleep Button (V1) : 1
+        RTC wake not in fixed reg space (V1) : 0
+            RTC can wake system from S4 (V1) : 1
+                        32-bit PM Timer (V1) : 0
+                      Docking Supported (V1) : 0
+               Reset Register Supported (V2) : 1
+                            Sealed Case (V3) : 0
+                    Headless - No Video (V3) : 0
+        Use native instr after SLP_TYPx (V3) : 0
+              PCIEXP_WAK Bits Supported (V4) : 0
+                     Use Platform Timer (V4) : 1
+               RTC_STS valid on S4 wake (V4) : 0
+                Remote Power-on capable (V4) : 0
+                 Use APIC Cluster Model (V4) : 0
+     Use APIC Physical Destination Mode (V4) : 0
+                       Hardware Reduced (V5) : 0
+                      Low Power S0 Idle (V5) : 0
+
+[074h 0116  12]               Reset Register : [Generic Address Structure]
+[074h 0116   1]                     Space ID : 01 [SystemIO]
+[075h 0117   1]                    Bit Width : 08
+[076h 0118   1]                   Bit Offset : 00
+[077h 0119   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[078h 0120   8]                      Address : 0000000000000CF9
+
+[080h 0128   1]         Value to cause reset : 0F
+[081h 0129   2]    ARM Flags (decoded below) : 0000
+                              PSCI Compliant : 0
+                       Must use HVC for PSCI : 0
+
+[083h 0131   1]          FADT Minor Revision : 00
+[084h 0132   8]                 FACS Address : 0000000000000000
+[08Ch 0140   8]                 DSDT Address : 0000000000000000
+[094h 0148  12]             PM1A Event Block : [Generic Address Structure]
+[094h 0148   1]                     Space ID : 01 [SystemIO]
+[095h 0149   1]                    Bit Width : 20
+[096h 0150   1]                   Bit Offset : 00
+[097h 0151   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[098h 0152   8]                      Address : 0000000000000600
+
+[0A0h 0160  12]             PM1B Event Block : [Generic Address Structure]
+[0A0h 0160   1]                     Space ID : 00 [SystemMemory]
+[0A1h 0161   1]                    Bit Width : 00
+[0A2h 0162   1]                   Bit Offset : 00
+[0A3h 0163   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0A4h 0164   8]                      Address : 0000000000000000
+
+[0ACh 0172  12]           PM1A Control Block : [Generic Address Structure]
+[0ACh 0172   1]                     Space ID : 01 [SystemIO]
+[0ADh 0173   1]                    Bit Width : 10
+[0AEh 0174   1]                   Bit Offset : 00
+[0AFh 0175   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0B0h 0176   8]                      Address : 0000000000000604
+
+[0B8h 0184  12]           PM1B Control Block : [Generic Address Structure]
+[0B8h 0184   1]                     Space ID : 00 [SystemMemory]
+[0B9h 0185   1]                    Bit Width : 00
+[0BAh 0186   1]                   Bit Offset : 00
+[0BBh 0187   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0BCh 0188   8]                      Address : 0000000000000000
+
+[0C4h 0196  12]            PM2 Control Block : [Generic Address Structure]
+[0C4h 0196   1]                     Space ID : 00 [SystemMemory]
+[0C5h 0197   1]                    Bit Width : 00
+[0C6h 0198   1]                   Bit Offset : 00
+[0C7h 0199   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0C8h 0200   8]                      Address : 0000000000000000
+
+[0D0h 0208  12]               PM Timer Block : [Generic Address Structure]
+[0D0h 0208   1]                     Space ID : 01 [SystemIO]
+[0D1h 0209   1]                    Bit Width : 20
+[0D2h 0210   1]                   Bit Offset : 00
+[0D3h 0211   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0D4h 0212   8]                      Address : 0000000000000608
+
+[0DCh 0220  12]                   GPE0 Block : [Generic Address Structure]
+[0DCh 0220   1]                     Space ID : 01 [SystemIO]
+[0DDh 0221   1]                    Bit Width : 80
+[0DEh 0222   1]                   Bit Offset : 00
+[0DFh 0223   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0E0h 0224   8]                      Address : 0000000000000620
+
+[0E8h 0232  12]                   GPE1 Block : [Generic Address Structure]
+[0E8h 0232   1]                     Space ID : 00 [SystemMemory]
+[0E9h 0233   1]                    Bit Width : 00
+[0EAh 0234   1]                   Bit Offset : 00
+[0EBh 0235   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0ECh 0236   8]                      Address : 0000000000000000
+
+
+Raw Table Data: Length 244 (0xF4)
+
+    0000: 46 41 43 50 F4 00 00 00 03 1F 42 4F 43 48 53 20  // FACP......BOCHS 
+    0010: 42 58 50 43 46 41 43 50 01 00 00 00 42 58 50 43  // BXPCFACP....BXPC
+    0020: 01 00 00 00 00 00 00 00 00 00 00 00 01 00 09 00  // ................
+    0030: B2 00 00 00 02 03 00 00 00 06 00 00 00 00 00 00  // ................
+    0040: 04 06 00 00 00 00 00 00 00 00 00 00 08 06 00 00  // ................
+    0050: 20 06 00 00 00 00 00 00 04 02 00 04 10 00 00 00  //  ...............
+    0060: FF 0F FF 0F 00 00 00 00 00 00 00 00 32 00 00 00  // ............2...
+    0070: A5 84 00 00 01 08 00 00 F9 0C 00 00 00 00 00 00  // ................
+    0080: 0F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0090: 00 00 00 00 01 20 00 00 00 06 00 00 00 00 00 00  // ..... ..........
+    00A0: 00 00 00 00 00 00 00 00 00 00 00 00 01 10 00 00  // ................
+    00B0: 04 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00D0: 01 20 00 00 08 06 00 00 00 00 00 00 01 80 00 00  // . ..............
+    00E0: 20 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00  //  ...............
+    00F0: 00 00 00 00                                      // ....
diff --git a/tests/data/acpi/q35/FACP.memhp b/tests/data/acpi/q35/FACP.memhp
new file mode 100644
index 0000000000000000000000000000000000000000..72c9d97902a4bbf14896023d9ba78e0899d6517b
GIT binary patch
literal 244
zcmZ>BbPo8!z`(#P@8s|75v<@85#a0w6k`O6f!H7#1{fJQ88!hqOw2%n4I;_{r9nIn
zAX@<@&cwhX02KSr|DPYCl7Ybp$XMFKz`)4C!0?j?A_|v;DFV`r3P1wMTp$k&7=Z>N
X+XoXzrWq9=?f{7~HXz&s;==#{<X{c~

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/q35/FACP.memhp.dsl b/tests/data/acpi/q35/FACP.memhp.dsl
new file mode 100644
index 0000000000..2405fcdca8
--- /dev/null
+++ b/tests/data/acpi/q35/FACP.memhp.dsl
@@ -0,0 +1,179 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/FACP.memhp, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [FACP]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "FACP"    [Fixed ACPI Description Table (FADT)]
+[004h 0004   4]                 Table Length : 000000F4
+[008h 0008   1]                     Revision : 03
+[009h 0009   1]                     Checksum : 1F
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCFACP"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]                 FACS Address : 00000000
+[028h 0040   4]                 DSDT Address : 00000000
+[02Ch 0044   1]                        Model : 01
+[02Dh 0045   1]                   PM Profile : 00 [Unspecified]
+[02Eh 0046   2]                SCI Interrupt : 0009
+[030h 0048   4]             SMI Command Port : 000000B2
+[034h 0052   1]            ACPI Enable Value : 02
+[035h 0053   1]           ACPI Disable Value : 03
+[036h 0054   1]               S4BIOS Command : 00
+[037h 0055   1]              P-State Control : 00
+[038h 0056   4]     PM1A Event Block Address : 00000600
+[03Ch 0060   4]     PM1B Event Block Address : 00000000
+[040h 0064   4]   PM1A Control Block Address : 00000604
+[044h 0068   4]   PM1B Control Block Address : 00000000
+[048h 0072   4]    PM2 Control Block Address : 00000000
+[04Ch 0076   4]       PM Timer Block Address : 00000608
+[050h 0080   4]           GPE0 Block Address : 00000620
+[054h 0084   4]           GPE1 Block Address : 00000000
+[058h 0088   1]       PM1 Event Block Length : 04
+[059h 0089   1]     PM1 Control Block Length : 02
+[05Ah 0090   1]     PM2 Control Block Length : 00
+[05Bh 0091   1]        PM Timer Block Length : 04
+[05Ch 0092   1]            GPE0 Block Length : 10
+[05Dh 0093   1]            GPE1 Block Length : 00
+[05Eh 0094   1]             GPE1 Base Offset : 00
+[05Fh 0095   1]                 _CST Support : 00
+[060h 0096   2]                   C2 Latency : 0FFF
+[062h 0098   2]                   C3 Latency : 0FFF
+[064h 0100   2]               CPU Cache Size : 0000
+[066h 0102   2]           Cache Flush Stride : 0000
+[068h 0104   1]            Duty Cycle Offset : 00
+[069h 0105   1]             Duty Cycle Width : 00
+[06Ah 0106   1]          RTC Day Alarm Index : 00
+[06Bh 0107   1]        RTC Month Alarm Index : 00
+[06Ch 0108   1]            RTC Century Index : 32
+[06Dh 0109   2]   Boot Flags (decoded below) : 0000
+               Legacy Devices Supported (V2) : 0
+            8042 Present on ports 60/64 (V2) : 0
+                        VGA Not Present (V4) : 0
+                      MSI Not Supported (V4) : 0
+                PCIe ASPM Not Supported (V4) : 0
+                   CMOS RTC Not Present (V5) : 0
+[06Fh 0111   1]                     Reserved : 00
+[070h 0112   4]        Flags (decoded below) : 000084A5
+      WBINVD instruction is operational (V1) : 1
+              WBINVD flushes all caches (V1) : 0
+                    All CPUs support C1 (V1) : 1
+                  C2 works on MP system (V1) : 0
+            Control Method Power Button (V1) : 0
+            Control Method Sleep Button (V1) : 1
+        RTC wake not in fixed reg space (V1) : 0
+            RTC can wake system from S4 (V1) : 1
+                        32-bit PM Timer (V1) : 0
+                      Docking Supported (V1) : 0
+               Reset Register Supported (V2) : 1
+                            Sealed Case (V3) : 0
+                    Headless - No Video (V3) : 0
+        Use native instr after SLP_TYPx (V3) : 0
+              PCIEXP_WAK Bits Supported (V4) : 0
+                     Use Platform Timer (V4) : 1
+               RTC_STS valid on S4 wake (V4) : 0
+                Remote Power-on capable (V4) : 0
+                 Use APIC Cluster Model (V4) : 0
+     Use APIC Physical Destination Mode (V4) : 0
+                       Hardware Reduced (V5) : 0
+                      Low Power S0 Idle (V5) : 0
+
+[074h 0116  12]               Reset Register : [Generic Address Structure]
+[074h 0116   1]                     Space ID : 01 [SystemIO]
+[075h 0117   1]                    Bit Width : 08
+[076h 0118   1]                   Bit Offset : 00
+[077h 0119   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[078h 0120   8]                      Address : 0000000000000CF9
+
+[080h 0128   1]         Value to cause reset : 0F
+[081h 0129   2]    ARM Flags (decoded below) : 0000
+                              PSCI Compliant : 0
+                       Must use HVC for PSCI : 0
+
+[083h 0131   1]          FADT Minor Revision : 00
+[084h 0132   8]                 FACS Address : 0000000000000000
+[08Ch 0140   8]                 DSDT Address : 0000000000000000
+[094h 0148  12]             PM1A Event Block : [Generic Address Structure]
+[094h 0148   1]                     Space ID : 01 [SystemIO]
+[095h 0149   1]                    Bit Width : 20
+[096h 0150   1]                   Bit Offset : 00
+[097h 0151   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[098h 0152   8]                      Address : 0000000000000600
+
+[0A0h 0160  12]             PM1B Event Block : [Generic Address Structure]
+[0A0h 0160   1]                     Space ID : 00 [SystemMemory]
+[0A1h 0161   1]                    Bit Width : 00
+[0A2h 0162   1]                   Bit Offset : 00
+[0A3h 0163   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0A4h 0164   8]                      Address : 0000000000000000
+
+[0ACh 0172  12]           PM1A Control Block : [Generic Address Structure]
+[0ACh 0172   1]                     Space ID : 01 [SystemIO]
+[0ADh 0173   1]                    Bit Width : 10
+[0AEh 0174   1]                   Bit Offset : 00
+[0AFh 0175   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0B0h 0176   8]                      Address : 0000000000000604
+
+[0B8h 0184  12]           PM1B Control Block : [Generic Address Structure]
+[0B8h 0184   1]                     Space ID : 00 [SystemMemory]
+[0B9h 0185   1]                    Bit Width : 00
+[0BAh 0186   1]                   Bit Offset : 00
+[0BBh 0187   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0BCh 0188   8]                      Address : 0000000000000000
+
+[0C4h 0196  12]            PM2 Control Block : [Generic Address Structure]
+[0C4h 0196   1]                     Space ID : 00 [SystemMemory]
+[0C5h 0197   1]                    Bit Width : 00
+[0C6h 0198   1]                   Bit Offset : 00
+[0C7h 0199   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0C8h 0200   8]                      Address : 0000000000000000
+
+[0D0h 0208  12]               PM Timer Block : [Generic Address Structure]
+[0D0h 0208   1]                     Space ID : 01 [SystemIO]
+[0D1h 0209   1]                    Bit Width : 20
+[0D2h 0210   1]                   Bit Offset : 00
+[0D3h 0211   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0D4h 0212   8]                      Address : 0000000000000608
+
+[0DCh 0220  12]                   GPE0 Block : [Generic Address Structure]
+[0DCh 0220   1]                     Space ID : 01 [SystemIO]
+[0DDh 0221   1]                    Bit Width : 80
+[0DEh 0222   1]                   Bit Offset : 00
+[0DFh 0223   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0E0h 0224   8]                      Address : 0000000000000620
+
+[0E8h 0232  12]                   GPE1 Block : [Generic Address Structure]
+[0E8h 0232   1]                     Space ID : 00 [SystemMemory]
+[0E9h 0233   1]                    Bit Width : 00
+[0EAh 0234   1]                   Bit Offset : 00
+[0EBh 0235   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0ECh 0236   8]                      Address : 0000000000000000
+
+
+Raw Table Data: Length 244 (0xF4)
+
+    0000: 46 41 43 50 F4 00 00 00 03 1F 42 4F 43 48 53 20  // FACP......BOCHS 
+    0010: 42 58 50 43 46 41 43 50 01 00 00 00 42 58 50 43  // BXPCFACP....BXPC
+    0020: 01 00 00 00 00 00 00 00 00 00 00 00 01 00 09 00  // ................
+    0030: B2 00 00 00 02 03 00 00 00 06 00 00 00 00 00 00  // ................
+    0040: 04 06 00 00 00 00 00 00 00 00 00 00 08 06 00 00  // ................
+    0050: 20 06 00 00 00 00 00 00 04 02 00 04 10 00 00 00  //  ...............
+    0060: FF 0F FF 0F 00 00 00 00 00 00 00 00 32 00 00 00  // ............2...
+    0070: A5 84 00 00 01 08 00 00 F9 0C 00 00 00 00 00 00  // ................
+    0080: 0F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0090: 00 00 00 00 01 20 00 00 00 06 00 00 00 00 00 00  // ..... ..........
+    00A0: 00 00 00 00 00 00 00 00 00 00 00 00 01 10 00 00  // ................
+    00B0: 04 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00D0: 01 20 00 00 08 06 00 00 00 00 00 00 01 80 00 00  // . ..............
+    00E0: 20 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00  //  ...............
+    00F0: 00 00 00 00                                      // ....
diff --git a/tests/data/acpi/q35/FACP.mmio64 b/tests/data/acpi/q35/FACP.mmio64
new file mode 100644
index 0000000000000000000000000000000000000000..72c9d97902a4bbf14896023d9ba78e0899d6517b
GIT binary patch
literal 244
zcmZ>BbPo8!z`(#P@8s|75v<@85#a0w6k`O6f!H7#1{fJQ88!hqOw2%n4I;_{r9nIn
zAX@<@&cwhX02KSr|DPYCl7Ybp$XMFKz`)4C!0?j?A_|v;DFV`r3P1wMTp$k&7=Z>N
X+XoXzrWq9=?f{7~HXz&s;==#{<X{c~

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/q35/FACP.mmio64.dsl b/tests/data/acpi/q35/FACP.mmio64.dsl
new file mode 100644
index 0000000000..9f51c42156
--- /dev/null
+++ b/tests/data/acpi/q35/FACP.mmio64.dsl
@@ -0,0 +1,179 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/FACP.mmio64, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [FACP]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "FACP"    [Fixed ACPI Description Table (FADT)]
+[004h 0004   4]                 Table Length : 000000F4
+[008h 0008   1]                     Revision : 03
+[009h 0009   1]                     Checksum : 1F
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCFACP"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]                 FACS Address : 00000000
+[028h 0040   4]                 DSDT Address : 00000000
+[02Ch 0044   1]                        Model : 01
+[02Dh 0045   1]                   PM Profile : 00 [Unspecified]
+[02Eh 0046   2]                SCI Interrupt : 0009
+[030h 0048   4]             SMI Command Port : 000000B2
+[034h 0052   1]            ACPI Enable Value : 02
+[035h 0053   1]           ACPI Disable Value : 03
+[036h 0054   1]               S4BIOS Command : 00
+[037h 0055   1]              P-State Control : 00
+[038h 0056   4]     PM1A Event Block Address : 00000600
+[03Ch 0060   4]     PM1B Event Block Address : 00000000
+[040h 0064   4]   PM1A Control Block Address : 00000604
+[044h 0068   4]   PM1B Control Block Address : 00000000
+[048h 0072   4]    PM2 Control Block Address : 00000000
+[04Ch 0076   4]       PM Timer Block Address : 00000608
+[050h 0080   4]           GPE0 Block Address : 00000620
+[054h 0084   4]           GPE1 Block Address : 00000000
+[058h 0088   1]       PM1 Event Block Length : 04
+[059h 0089   1]     PM1 Control Block Length : 02
+[05Ah 0090   1]     PM2 Control Block Length : 00
+[05Bh 0091   1]        PM Timer Block Length : 04
+[05Ch 0092   1]            GPE0 Block Length : 10
+[05Dh 0093   1]            GPE1 Block Length : 00
+[05Eh 0094   1]             GPE1 Base Offset : 00
+[05Fh 0095   1]                 _CST Support : 00
+[060h 0096   2]                   C2 Latency : 0FFF
+[062h 0098   2]                   C3 Latency : 0FFF
+[064h 0100   2]               CPU Cache Size : 0000
+[066h 0102   2]           Cache Flush Stride : 0000
+[068h 0104   1]            Duty Cycle Offset : 00
+[069h 0105   1]             Duty Cycle Width : 00
+[06Ah 0106   1]          RTC Day Alarm Index : 00
+[06Bh 0107   1]        RTC Month Alarm Index : 00
+[06Ch 0108   1]            RTC Century Index : 32
+[06Dh 0109   2]   Boot Flags (decoded below) : 0000
+               Legacy Devices Supported (V2) : 0
+            8042 Present on ports 60/64 (V2) : 0
+                        VGA Not Present (V4) : 0
+                      MSI Not Supported (V4) : 0
+                PCIe ASPM Not Supported (V4) : 0
+                   CMOS RTC Not Present (V5) : 0
+[06Fh 0111   1]                     Reserved : 00
+[070h 0112   4]        Flags (decoded below) : 000084A5
+      WBINVD instruction is operational (V1) : 1
+              WBINVD flushes all caches (V1) : 0
+                    All CPUs support C1 (V1) : 1
+                  C2 works on MP system (V1) : 0
+            Control Method Power Button (V1) : 0
+            Control Method Sleep Button (V1) : 1
+        RTC wake not in fixed reg space (V1) : 0
+            RTC can wake system from S4 (V1) : 1
+                        32-bit PM Timer (V1) : 0
+                      Docking Supported (V1) : 0
+               Reset Register Supported (V2) : 1
+                            Sealed Case (V3) : 0
+                    Headless - No Video (V3) : 0
+        Use native instr after SLP_TYPx (V3) : 0
+              PCIEXP_WAK Bits Supported (V4) : 0
+                     Use Platform Timer (V4) : 1
+               RTC_STS valid on S4 wake (V4) : 0
+                Remote Power-on capable (V4) : 0
+                 Use APIC Cluster Model (V4) : 0
+     Use APIC Physical Destination Mode (V4) : 0
+                       Hardware Reduced (V5) : 0
+                      Low Power S0 Idle (V5) : 0
+
+[074h 0116  12]               Reset Register : [Generic Address Structure]
+[074h 0116   1]                     Space ID : 01 [SystemIO]
+[075h 0117   1]                    Bit Width : 08
+[076h 0118   1]                   Bit Offset : 00
+[077h 0119   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[078h 0120   8]                      Address : 0000000000000CF9
+
+[080h 0128   1]         Value to cause reset : 0F
+[081h 0129   2]    ARM Flags (decoded below) : 0000
+                              PSCI Compliant : 0
+                       Must use HVC for PSCI : 0
+
+[083h 0131   1]          FADT Minor Revision : 00
+[084h 0132   8]                 FACS Address : 0000000000000000
+[08Ch 0140   8]                 DSDT Address : 0000000000000000
+[094h 0148  12]             PM1A Event Block : [Generic Address Structure]
+[094h 0148   1]                     Space ID : 01 [SystemIO]
+[095h 0149   1]                    Bit Width : 20
+[096h 0150   1]                   Bit Offset : 00
+[097h 0151   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[098h 0152   8]                      Address : 0000000000000600
+
+[0A0h 0160  12]             PM1B Event Block : [Generic Address Structure]
+[0A0h 0160   1]                     Space ID : 00 [SystemMemory]
+[0A1h 0161   1]                    Bit Width : 00
+[0A2h 0162   1]                   Bit Offset : 00
+[0A3h 0163   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0A4h 0164   8]                      Address : 0000000000000000
+
+[0ACh 0172  12]           PM1A Control Block : [Generic Address Structure]
+[0ACh 0172   1]                     Space ID : 01 [SystemIO]
+[0ADh 0173   1]                    Bit Width : 10
+[0AEh 0174   1]                   Bit Offset : 00
+[0AFh 0175   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0B0h 0176   8]                      Address : 0000000000000604
+
+[0B8h 0184  12]           PM1B Control Block : [Generic Address Structure]
+[0B8h 0184   1]                     Space ID : 00 [SystemMemory]
+[0B9h 0185   1]                    Bit Width : 00
+[0BAh 0186   1]                   Bit Offset : 00
+[0BBh 0187   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0BCh 0188   8]                      Address : 0000000000000000
+
+[0C4h 0196  12]            PM2 Control Block : [Generic Address Structure]
+[0C4h 0196   1]                     Space ID : 00 [SystemMemory]
+[0C5h 0197   1]                    Bit Width : 00
+[0C6h 0198   1]                   Bit Offset : 00
+[0C7h 0199   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0C8h 0200   8]                      Address : 0000000000000000
+
+[0D0h 0208  12]               PM Timer Block : [Generic Address Structure]
+[0D0h 0208   1]                     Space ID : 01 [SystemIO]
+[0D1h 0209   1]                    Bit Width : 20
+[0D2h 0210   1]                   Bit Offset : 00
+[0D3h 0211   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0D4h 0212   8]                      Address : 0000000000000608
+
+[0DCh 0220  12]                   GPE0 Block : [Generic Address Structure]
+[0DCh 0220   1]                     Space ID : 01 [SystemIO]
+[0DDh 0221   1]                    Bit Width : 80
+[0DEh 0222   1]                   Bit Offset : 00
+[0DFh 0223   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0E0h 0224   8]                      Address : 0000000000000620
+
+[0E8h 0232  12]                   GPE1 Block : [Generic Address Structure]
+[0E8h 0232   1]                     Space ID : 00 [SystemMemory]
+[0E9h 0233   1]                    Bit Width : 00
+[0EAh 0234   1]                   Bit Offset : 00
+[0EBh 0235   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0ECh 0236   8]                      Address : 0000000000000000
+
+
+Raw Table Data: Length 244 (0xF4)
+
+    0000: 46 41 43 50 F4 00 00 00 03 1F 42 4F 43 48 53 20  // FACP......BOCHS 
+    0010: 42 58 50 43 46 41 43 50 01 00 00 00 42 58 50 43  // BXPCFACP....BXPC
+    0020: 01 00 00 00 00 00 00 00 00 00 00 00 01 00 09 00  // ................
+    0030: B2 00 00 00 02 03 00 00 00 06 00 00 00 00 00 00  // ................
+    0040: 04 06 00 00 00 00 00 00 00 00 00 00 08 06 00 00  // ................
+    0050: 20 06 00 00 00 00 00 00 04 02 00 04 10 00 00 00  //  ...............
+    0060: FF 0F FF 0F 00 00 00 00 00 00 00 00 32 00 00 00  // ............2...
+    0070: A5 84 00 00 01 08 00 00 F9 0C 00 00 00 00 00 00  // ................
+    0080: 0F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0090: 00 00 00 00 01 20 00 00 00 06 00 00 00 00 00 00  // ..... ..........
+    00A0: 00 00 00 00 00 00 00 00 00 00 00 00 01 10 00 00  // ................
+    00B0: 04 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00D0: 01 20 00 00 08 06 00 00 00 00 00 00 01 80 00 00  // . ..............
+    00E0: 20 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00  //  ...............
+    00F0: 00 00 00 00                                      // ....
diff --git a/tests/data/acpi/q35/FACP.numamem b/tests/data/acpi/q35/FACP.numamem
new file mode 100644
index 0000000000000000000000000000000000000000..72c9d97902a4bbf14896023d9ba78e0899d6517b
GIT binary patch
literal 244
zcmZ>BbPo8!z`(#P@8s|75v<@85#a0w6k`O6f!H7#1{fJQ88!hqOw2%n4I;_{r9nIn
zAX@<@&cwhX02KSr|DPYCl7Ybp$XMFKz`)4C!0?j?A_|v;DFV`r3P1wMTp$k&7=Z>N
X+XoXzrWq9=?f{7~HXz&s;==#{<X{c~

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/q35/FACP.numamem.dsl b/tests/data/acpi/q35/FACP.numamem.dsl
new file mode 100644
index 0000000000..a5854c1a69
--- /dev/null
+++ b/tests/data/acpi/q35/FACP.numamem.dsl
@@ -0,0 +1,179 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/FACP.numamem, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [FACP]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "FACP"    [Fixed ACPI Description Table (FADT)]
+[004h 0004   4]                 Table Length : 000000F4
+[008h 0008   1]                     Revision : 03
+[009h 0009   1]                     Checksum : 1F
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCFACP"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]                 FACS Address : 00000000
+[028h 0040   4]                 DSDT Address : 00000000
+[02Ch 0044   1]                        Model : 01
+[02Dh 0045   1]                   PM Profile : 00 [Unspecified]
+[02Eh 0046   2]                SCI Interrupt : 0009
+[030h 0048   4]             SMI Command Port : 000000B2
+[034h 0052   1]            ACPI Enable Value : 02
+[035h 0053   1]           ACPI Disable Value : 03
+[036h 0054   1]               S4BIOS Command : 00
+[037h 0055   1]              P-State Control : 00
+[038h 0056   4]     PM1A Event Block Address : 00000600
+[03Ch 0060   4]     PM1B Event Block Address : 00000000
+[040h 0064   4]   PM1A Control Block Address : 00000604
+[044h 0068   4]   PM1B Control Block Address : 00000000
+[048h 0072   4]    PM2 Control Block Address : 00000000
+[04Ch 0076   4]       PM Timer Block Address : 00000608
+[050h 0080   4]           GPE0 Block Address : 00000620
+[054h 0084   4]           GPE1 Block Address : 00000000
+[058h 0088   1]       PM1 Event Block Length : 04
+[059h 0089   1]     PM1 Control Block Length : 02
+[05Ah 0090   1]     PM2 Control Block Length : 00
+[05Bh 0091   1]        PM Timer Block Length : 04
+[05Ch 0092   1]            GPE0 Block Length : 10
+[05Dh 0093   1]            GPE1 Block Length : 00
+[05Eh 0094   1]             GPE1 Base Offset : 00
+[05Fh 0095   1]                 _CST Support : 00
+[060h 0096   2]                   C2 Latency : 0FFF
+[062h 0098   2]                   C3 Latency : 0FFF
+[064h 0100   2]               CPU Cache Size : 0000
+[066h 0102   2]           Cache Flush Stride : 0000
+[068h 0104   1]            Duty Cycle Offset : 00
+[069h 0105   1]             Duty Cycle Width : 00
+[06Ah 0106   1]          RTC Day Alarm Index : 00
+[06Bh 0107   1]        RTC Month Alarm Index : 00
+[06Ch 0108   1]            RTC Century Index : 32
+[06Dh 0109   2]   Boot Flags (decoded below) : 0000
+               Legacy Devices Supported (V2) : 0
+            8042 Present on ports 60/64 (V2) : 0
+                        VGA Not Present (V4) : 0
+                      MSI Not Supported (V4) : 0
+                PCIe ASPM Not Supported (V4) : 0
+                   CMOS RTC Not Present (V5) : 0
+[06Fh 0111   1]                     Reserved : 00
+[070h 0112   4]        Flags (decoded below) : 000084A5
+      WBINVD instruction is operational (V1) : 1
+              WBINVD flushes all caches (V1) : 0
+                    All CPUs support C1 (V1) : 1
+                  C2 works on MP system (V1) : 0
+            Control Method Power Button (V1) : 0
+            Control Method Sleep Button (V1) : 1
+        RTC wake not in fixed reg space (V1) : 0
+            RTC can wake system from S4 (V1) : 1
+                        32-bit PM Timer (V1) : 0
+                      Docking Supported (V1) : 0
+               Reset Register Supported (V2) : 1
+                            Sealed Case (V3) : 0
+                    Headless - No Video (V3) : 0
+        Use native instr after SLP_TYPx (V3) : 0
+              PCIEXP_WAK Bits Supported (V4) : 0
+                     Use Platform Timer (V4) : 1
+               RTC_STS valid on S4 wake (V4) : 0
+                Remote Power-on capable (V4) : 0
+                 Use APIC Cluster Model (V4) : 0
+     Use APIC Physical Destination Mode (V4) : 0
+                       Hardware Reduced (V5) : 0
+                      Low Power S0 Idle (V5) : 0
+
+[074h 0116  12]               Reset Register : [Generic Address Structure]
+[074h 0116   1]                     Space ID : 01 [SystemIO]
+[075h 0117   1]                    Bit Width : 08
+[076h 0118   1]                   Bit Offset : 00
+[077h 0119   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[078h 0120   8]                      Address : 0000000000000CF9
+
+[080h 0128   1]         Value to cause reset : 0F
+[081h 0129   2]    ARM Flags (decoded below) : 0000
+                              PSCI Compliant : 0
+                       Must use HVC for PSCI : 0
+
+[083h 0131   1]          FADT Minor Revision : 00
+[084h 0132   8]                 FACS Address : 0000000000000000
+[08Ch 0140   8]                 DSDT Address : 0000000000000000
+[094h 0148  12]             PM1A Event Block : [Generic Address Structure]
+[094h 0148   1]                     Space ID : 01 [SystemIO]
+[095h 0149   1]                    Bit Width : 20
+[096h 0150   1]                   Bit Offset : 00
+[097h 0151   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[098h 0152   8]                      Address : 0000000000000600
+
+[0A0h 0160  12]             PM1B Event Block : [Generic Address Structure]
+[0A0h 0160   1]                     Space ID : 00 [SystemMemory]
+[0A1h 0161   1]                    Bit Width : 00
+[0A2h 0162   1]                   Bit Offset : 00
+[0A3h 0163   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0A4h 0164   8]                      Address : 0000000000000000
+
+[0ACh 0172  12]           PM1A Control Block : [Generic Address Structure]
+[0ACh 0172   1]                     Space ID : 01 [SystemIO]
+[0ADh 0173   1]                    Bit Width : 10
+[0AEh 0174   1]                   Bit Offset : 00
+[0AFh 0175   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0B0h 0176   8]                      Address : 0000000000000604
+
+[0B8h 0184  12]           PM1B Control Block : [Generic Address Structure]
+[0B8h 0184   1]                     Space ID : 00 [SystemMemory]
+[0B9h 0185   1]                    Bit Width : 00
+[0BAh 0186   1]                   Bit Offset : 00
+[0BBh 0187   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0BCh 0188   8]                      Address : 0000000000000000
+
+[0C4h 0196  12]            PM2 Control Block : [Generic Address Structure]
+[0C4h 0196   1]                     Space ID : 00 [SystemMemory]
+[0C5h 0197   1]                    Bit Width : 00
+[0C6h 0198   1]                   Bit Offset : 00
+[0C7h 0199   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0C8h 0200   8]                      Address : 0000000000000000
+
+[0D0h 0208  12]               PM Timer Block : [Generic Address Structure]
+[0D0h 0208   1]                     Space ID : 01 [SystemIO]
+[0D1h 0209   1]                    Bit Width : 20
+[0D2h 0210   1]                   Bit Offset : 00
+[0D3h 0211   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0D4h 0212   8]                      Address : 0000000000000608
+
+[0DCh 0220  12]                   GPE0 Block : [Generic Address Structure]
+[0DCh 0220   1]                     Space ID : 01 [SystemIO]
+[0DDh 0221   1]                    Bit Width : 80
+[0DEh 0222   1]                   Bit Offset : 00
+[0DFh 0223   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0E0h 0224   8]                      Address : 0000000000000620
+
+[0E8h 0232  12]                   GPE1 Block : [Generic Address Structure]
+[0E8h 0232   1]                     Space ID : 00 [SystemMemory]
+[0E9h 0233   1]                    Bit Width : 00
+[0EAh 0234   1]                   Bit Offset : 00
+[0EBh 0235   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0ECh 0236   8]                      Address : 0000000000000000
+
+
+Raw Table Data: Length 244 (0xF4)
+
+    0000: 46 41 43 50 F4 00 00 00 03 1F 42 4F 43 48 53 20  // FACP......BOCHS 
+    0010: 42 58 50 43 46 41 43 50 01 00 00 00 42 58 50 43  // BXPCFACP....BXPC
+    0020: 01 00 00 00 00 00 00 00 00 00 00 00 01 00 09 00  // ................
+    0030: B2 00 00 00 02 03 00 00 00 06 00 00 00 00 00 00  // ................
+    0040: 04 06 00 00 00 00 00 00 00 00 00 00 08 06 00 00  // ................
+    0050: 20 06 00 00 00 00 00 00 04 02 00 04 10 00 00 00  //  ...............
+    0060: FF 0F FF 0F 00 00 00 00 00 00 00 00 32 00 00 00  // ............2...
+    0070: A5 84 00 00 01 08 00 00 F9 0C 00 00 00 00 00 00  // ................
+    0080: 0F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0090: 00 00 00 00 01 20 00 00 00 06 00 00 00 00 00 00  // ..... ..........
+    00A0: 00 00 00 00 00 00 00 00 00 00 00 00 01 10 00 00  // ................
+    00B0: 04 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00D0: 01 20 00 00 08 06 00 00 00 00 00 00 01 80 00 00  // . ..............
+    00E0: 20 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00  //  ...............
+    00F0: 00 00 00 00                                      // ....
diff --git a/tests/data/acpi/q35/FACP.tis b/tests/data/acpi/q35/FACP.tis
new file mode 100644
index 0000000000000000000000000000000000000000..72c9d97902a4bbf14896023d9ba78e0899d6517b
GIT binary patch
literal 244
zcmZ>BbPo8!z`(#P@8s|75v<@85#a0w6k`O6f!H7#1{fJQ88!hqOw2%n4I;_{r9nIn
zAX@<@&cwhX02KSr|DPYCl7Ybp$XMFKz`)4C!0?j?A_|v;DFV`r3P1wMTp$k&7=Z>N
X+XoXzrWq9=?f{7~HXz&s;==#{<X{c~

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/q35/FACP.tis.dsl b/tests/data/acpi/q35/FACP.tis.dsl
new file mode 100644
index 0000000000..22f6a34466
--- /dev/null
+++ b/tests/data/acpi/q35/FACP.tis.dsl
@@ -0,0 +1,179 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/FACP.tis, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [FACP]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "FACP"    [Fixed ACPI Description Table (FADT)]
+[004h 0004   4]                 Table Length : 000000F4
+[008h 0008   1]                     Revision : 03
+[009h 0009   1]                     Checksum : 1F
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCFACP"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]                 FACS Address : 00000000
+[028h 0040   4]                 DSDT Address : 00000000
+[02Ch 0044   1]                        Model : 01
+[02Dh 0045   1]                   PM Profile : 00 [Unspecified]
+[02Eh 0046   2]                SCI Interrupt : 0009
+[030h 0048   4]             SMI Command Port : 000000B2
+[034h 0052   1]            ACPI Enable Value : 02
+[035h 0053   1]           ACPI Disable Value : 03
+[036h 0054   1]               S4BIOS Command : 00
+[037h 0055   1]              P-State Control : 00
+[038h 0056   4]     PM1A Event Block Address : 00000600
+[03Ch 0060   4]     PM1B Event Block Address : 00000000
+[040h 0064   4]   PM1A Control Block Address : 00000604
+[044h 0068   4]   PM1B Control Block Address : 00000000
+[048h 0072   4]    PM2 Control Block Address : 00000000
+[04Ch 0076   4]       PM Timer Block Address : 00000608
+[050h 0080   4]           GPE0 Block Address : 00000620
+[054h 0084   4]           GPE1 Block Address : 00000000
+[058h 0088   1]       PM1 Event Block Length : 04
+[059h 0089   1]     PM1 Control Block Length : 02
+[05Ah 0090   1]     PM2 Control Block Length : 00
+[05Bh 0091   1]        PM Timer Block Length : 04
+[05Ch 0092   1]            GPE0 Block Length : 10
+[05Dh 0093   1]            GPE1 Block Length : 00
+[05Eh 0094   1]             GPE1 Base Offset : 00
+[05Fh 0095   1]                 _CST Support : 00
+[060h 0096   2]                   C2 Latency : 0FFF
+[062h 0098   2]                   C3 Latency : 0FFF
+[064h 0100   2]               CPU Cache Size : 0000
+[066h 0102   2]           Cache Flush Stride : 0000
+[068h 0104   1]            Duty Cycle Offset : 00
+[069h 0105   1]             Duty Cycle Width : 00
+[06Ah 0106   1]          RTC Day Alarm Index : 00
+[06Bh 0107   1]        RTC Month Alarm Index : 00
+[06Ch 0108   1]            RTC Century Index : 32
+[06Dh 0109   2]   Boot Flags (decoded below) : 0000
+               Legacy Devices Supported (V2) : 0
+            8042 Present on ports 60/64 (V2) : 0
+                        VGA Not Present (V4) : 0
+                      MSI Not Supported (V4) : 0
+                PCIe ASPM Not Supported (V4) : 0
+                   CMOS RTC Not Present (V5) : 0
+[06Fh 0111   1]                     Reserved : 00
+[070h 0112   4]        Flags (decoded below) : 000084A5
+      WBINVD instruction is operational (V1) : 1
+              WBINVD flushes all caches (V1) : 0
+                    All CPUs support C1 (V1) : 1
+                  C2 works on MP system (V1) : 0
+            Control Method Power Button (V1) : 0
+            Control Method Sleep Button (V1) : 1
+        RTC wake not in fixed reg space (V1) : 0
+            RTC can wake system from S4 (V1) : 1
+                        32-bit PM Timer (V1) : 0
+                      Docking Supported (V1) : 0
+               Reset Register Supported (V2) : 1
+                            Sealed Case (V3) : 0
+                    Headless - No Video (V3) : 0
+        Use native instr after SLP_TYPx (V3) : 0
+              PCIEXP_WAK Bits Supported (V4) : 0
+                     Use Platform Timer (V4) : 1
+               RTC_STS valid on S4 wake (V4) : 0
+                Remote Power-on capable (V4) : 0
+                 Use APIC Cluster Model (V4) : 0
+     Use APIC Physical Destination Mode (V4) : 0
+                       Hardware Reduced (V5) : 0
+                      Low Power S0 Idle (V5) : 0
+
+[074h 0116  12]               Reset Register : [Generic Address Structure]
+[074h 0116   1]                     Space ID : 01 [SystemIO]
+[075h 0117   1]                    Bit Width : 08
+[076h 0118   1]                   Bit Offset : 00
+[077h 0119   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[078h 0120   8]                      Address : 0000000000000CF9
+
+[080h 0128   1]         Value to cause reset : 0F
+[081h 0129   2]    ARM Flags (decoded below) : 0000
+                              PSCI Compliant : 0
+                       Must use HVC for PSCI : 0
+
+[083h 0131   1]          FADT Minor Revision : 00
+[084h 0132   8]                 FACS Address : 0000000000000000
+[08Ch 0140   8]                 DSDT Address : 0000000000000000
+[094h 0148  12]             PM1A Event Block : [Generic Address Structure]
+[094h 0148   1]                     Space ID : 01 [SystemIO]
+[095h 0149   1]                    Bit Width : 20
+[096h 0150   1]                   Bit Offset : 00
+[097h 0151   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[098h 0152   8]                      Address : 0000000000000600
+
+[0A0h 0160  12]             PM1B Event Block : [Generic Address Structure]
+[0A0h 0160   1]                     Space ID : 00 [SystemMemory]
+[0A1h 0161   1]                    Bit Width : 00
+[0A2h 0162   1]                   Bit Offset : 00
+[0A3h 0163   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0A4h 0164   8]                      Address : 0000000000000000
+
+[0ACh 0172  12]           PM1A Control Block : [Generic Address Structure]
+[0ACh 0172   1]                     Space ID : 01 [SystemIO]
+[0ADh 0173   1]                    Bit Width : 10
+[0AEh 0174   1]                   Bit Offset : 00
+[0AFh 0175   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0B0h 0176   8]                      Address : 0000000000000604
+
+[0B8h 0184  12]           PM1B Control Block : [Generic Address Structure]
+[0B8h 0184   1]                     Space ID : 00 [SystemMemory]
+[0B9h 0185   1]                    Bit Width : 00
+[0BAh 0186   1]                   Bit Offset : 00
+[0BBh 0187   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0BCh 0188   8]                      Address : 0000000000000000
+
+[0C4h 0196  12]            PM2 Control Block : [Generic Address Structure]
+[0C4h 0196   1]                     Space ID : 00 [SystemMemory]
+[0C5h 0197   1]                    Bit Width : 00
+[0C6h 0198   1]                   Bit Offset : 00
+[0C7h 0199   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0C8h 0200   8]                      Address : 0000000000000000
+
+[0D0h 0208  12]               PM Timer Block : [Generic Address Structure]
+[0D0h 0208   1]                     Space ID : 01 [SystemIO]
+[0D1h 0209   1]                    Bit Width : 20
+[0D2h 0210   1]                   Bit Offset : 00
+[0D3h 0211   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0D4h 0212   8]                      Address : 0000000000000608
+
+[0DCh 0220  12]                   GPE0 Block : [Generic Address Structure]
+[0DCh 0220   1]                     Space ID : 01 [SystemIO]
+[0DDh 0221   1]                    Bit Width : 80
+[0DEh 0222   1]                   Bit Offset : 00
+[0DFh 0223   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0E0h 0224   8]                      Address : 0000000000000620
+
+[0E8h 0232  12]                   GPE1 Block : [Generic Address Structure]
+[0E8h 0232   1]                     Space ID : 00 [SystemMemory]
+[0E9h 0233   1]                    Bit Width : 00
+[0EAh 0234   1]                   Bit Offset : 00
+[0EBh 0235   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0ECh 0236   8]                      Address : 0000000000000000
+
+
+Raw Table Data: Length 244 (0xF4)
+
+    0000: 46 41 43 50 F4 00 00 00 03 1F 42 4F 43 48 53 20  // FACP......BOCHS 
+    0010: 42 58 50 43 46 41 43 50 01 00 00 00 42 58 50 43  // BXPCFACP....BXPC
+    0020: 01 00 00 00 00 00 00 00 00 00 00 00 01 00 09 00  // ................
+    0030: B2 00 00 00 02 03 00 00 00 06 00 00 00 00 00 00  // ................
+    0040: 04 06 00 00 00 00 00 00 00 00 00 00 08 06 00 00  // ................
+    0050: 20 06 00 00 00 00 00 00 04 02 00 04 10 00 00 00  //  ...............
+    0060: FF 0F FF 0F 00 00 00 00 00 00 00 00 32 00 00 00  // ............2...
+    0070: A5 84 00 00 01 08 00 00 F9 0C 00 00 00 00 00 00  // ................
+    0080: 0F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0090: 00 00 00 00 01 20 00 00 00 06 00 00 00 00 00 00  // ..... ..........
+    00A0: 00 00 00 00 00 00 00 00 00 00 00 00 01 10 00 00  // ................
+    00B0: 04 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00D0: 01 20 00 00 08 06 00 00 00 00 00 00 01 80 00 00  // . ..............
+    00E0: 20 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00  //  ...............
+    00F0: 00 00 00 00                                      // ....
diff --git a/tests/data/acpi/q35/FACS.acpihmat b/tests/data/acpi/q35/FACS.acpihmat
new file mode 100644
index 0000000000000000000000000000000000000000..fc67ecc40782bd7fe8921e430d7de67f0bfaad93
GIT binary patch
literal 64
PcmZ>BbPjf4ARhn#RKNjV

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/q35/FACS.acpihmat.dsl b/tests/data/acpi/q35/FACS.acpihmat.dsl
new file mode 100644
index 0000000000..0bd98653ce
--- /dev/null
+++ b/tests/data/acpi/q35/FACS.acpihmat.dsl
@@ -0,0 +1,32 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/FACS.acpihmat, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [FACS]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "FACS"
+[004h 0004   4]                       Length : 00000040
+[008h 0008   4]           Hardware Signature : 00000000
+[00Ch 0012   4]    32 Firmware Waking Vector : 00000000
+[010h 0016   4]                  Global Lock : 00000000
+[014h 0020   4]        Flags (decoded below) : 00000000
+                      S4BIOS Support Present : 0
+                  64-bit Wake Supported (V2) : 0
+[018h 0024   8]    64 Firmware Waking Vector : 0000000000000000
+[020h 0032   1]                      Version : 00
+[021h 0033   3]                     Reserved : 000000
+[024h 0036   4]    OspmFlags (decoded below) : 00000000
+               64-bit Wake Env Required (V2) : 0
+
+Raw Table Data: Length 64 (0x40)
+
+    0000: 46 41 43 53 40 00 00 00 00 00 00 00 00 00 00 00  // FACS@...........
+    0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
diff --git a/tests/data/acpi/q35/FACS.bridge b/tests/data/acpi/q35/FACS.bridge
new file mode 100644
index 0000000000000000000000000000000000000000..fc67ecc40782bd7fe8921e430d7de67f0bfaad93
GIT binary patch
literal 64
PcmZ>BbPjf4ARhn#RKNjV

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/q35/FACS.bridge.dsl b/tests/data/acpi/q35/FACS.bridge.dsl
new file mode 100644
index 0000000000..116dce1f2d
--- /dev/null
+++ b/tests/data/acpi/q35/FACS.bridge.dsl
@@ -0,0 +1,32 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/FACS.bridge, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [FACS]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "FACS"
+[004h 0004   4]                       Length : 00000040
+[008h 0008   4]           Hardware Signature : 00000000
+[00Ch 0012   4]    32 Firmware Waking Vector : 00000000
+[010h 0016   4]                  Global Lock : 00000000
+[014h 0020   4]        Flags (decoded below) : 00000000
+                      S4BIOS Support Present : 0
+                  64-bit Wake Supported (V2) : 0
+[018h 0024   8]    64 Firmware Waking Vector : 0000000000000000
+[020h 0032   1]                      Version : 00
+[021h 0033   3]                     Reserved : 000000
+[024h 0036   4]    OspmFlags (decoded below) : 00000000
+               64-bit Wake Env Required (V2) : 0
+
+Raw Table Data: Length 64 (0x40)
+
+    0000: 46 41 43 53 40 00 00 00 00 00 00 00 00 00 00 00  // FACS@...........
+    0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
diff --git a/tests/data/acpi/q35/FACS.cphp b/tests/data/acpi/q35/FACS.cphp
new file mode 100644
index 0000000000000000000000000000000000000000..fc67ecc40782bd7fe8921e430d7de67f0bfaad93
GIT binary patch
literal 64
PcmZ>BbPjf4ARhn#RKNjV

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/q35/FACS.cphp.dsl b/tests/data/acpi/q35/FACS.cphp.dsl
new file mode 100644
index 0000000000..580d502491
--- /dev/null
+++ b/tests/data/acpi/q35/FACS.cphp.dsl
@@ -0,0 +1,32 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/FACS.cphp, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [FACS]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "FACS"
+[004h 0004   4]                       Length : 00000040
+[008h 0008   4]           Hardware Signature : 00000000
+[00Ch 0012   4]    32 Firmware Waking Vector : 00000000
+[010h 0016   4]                  Global Lock : 00000000
+[014h 0020   4]        Flags (decoded below) : 00000000
+                      S4BIOS Support Present : 0
+                  64-bit Wake Supported (V2) : 0
+[018h 0024   8]    64 Firmware Waking Vector : 0000000000000000
+[020h 0032   1]                      Version : 00
+[021h 0033   3]                     Reserved : 000000
+[024h 0036   4]    OspmFlags (decoded below) : 00000000
+               64-bit Wake Env Required (V2) : 0
+
+Raw Table Data: Length 64 (0x40)
+
+    0000: 46 41 43 53 40 00 00 00 00 00 00 00 00 00 00 00  // FACS@...........
+    0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
diff --git a/tests/data/acpi/q35/FACS.dimmpxm b/tests/data/acpi/q35/FACS.dimmpxm
new file mode 100644
index 0000000000000000000000000000000000000000..fc67ecc40782bd7fe8921e430d7de67f0bfaad93
GIT binary patch
literal 64
PcmZ>BbPjf4ARhn#RKNjV

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/q35/FACS.dimmpxm.dsl b/tests/data/acpi/q35/FACS.dimmpxm.dsl
new file mode 100644
index 0000000000..4106387866
--- /dev/null
+++ b/tests/data/acpi/q35/FACS.dimmpxm.dsl
@@ -0,0 +1,32 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/FACS.dimmpxm, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [FACS]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "FACS"
+[004h 0004   4]                       Length : 00000040
+[008h 0008   4]           Hardware Signature : 00000000
+[00Ch 0012   4]    32 Firmware Waking Vector : 00000000
+[010h 0016   4]                  Global Lock : 00000000
+[014h 0020   4]        Flags (decoded below) : 00000000
+                      S4BIOS Support Present : 0
+                  64-bit Wake Supported (V2) : 0
+[018h 0024   8]    64 Firmware Waking Vector : 0000000000000000
+[020h 0032   1]                      Version : 00
+[021h 0033   3]                     Reserved : 000000
+[024h 0036   4]    OspmFlags (decoded below) : 00000000
+               64-bit Wake Env Required (V2) : 0
+
+Raw Table Data: Length 64 (0x40)
+
+    0000: 46 41 43 53 40 00 00 00 00 00 00 00 00 00 00 00  // FACS@...........
+    0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
diff --git a/tests/data/acpi/q35/FACS.dsl b/tests/data/acpi/q35/FACS.dsl
new file mode 100644
index 0000000000..0595b4ddb9
--- /dev/null
+++ b/tests/data/acpi/q35/FACS.dsl
@@ -0,0 +1,32 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/FACS.tis, Mon Sep 28 17:24:38 2020
+ *
+ * ACPI Data Table [FACS]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "FACS"
+[004h 0004   4]                       Length : 00000040
+[008h 0008   4]           Hardware Signature : 00000000
+[00Ch 0012   4]    32 Firmware Waking Vector : 00000000
+[010h 0016   4]                  Global Lock : 00000000
+[014h 0020   4]        Flags (decoded below) : 00000000
+                      S4BIOS Support Present : 0
+                  64-bit Wake Supported (V2) : 0
+[018h 0024   8]    64 Firmware Waking Vector : 0000000000000000
+[020h 0032   1]                      Version : 00
+[021h 0033   3]                     Reserved : 000000
+[024h 0036   4]    OspmFlags (decoded below) : 00000000
+               64-bit Wake Env Required (V2) : 0
+
+Raw Table Data: Length 64 (0x40)
+
+    0000: 46 41 43 53 40 00 00 00 00 00 00 00 00 00 00 00  // FACS@...........
+    0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
diff --git a/tests/data/acpi/q35/FACS.ipmibt b/tests/data/acpi/q35/FACS.ipmibt
new file mode 100644
index 0000000000000000000000000000000000000000..fc67ecc40782bd7fe8921e430d7de67f0bfaad93
GIT binary patch
literal 64
PcmZ>BbPjf4ARhn#RKNjV

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/q35/FACS.ipmibt.dsl b/tests/data/acpi/q35/FACS.ipmibt.dsl
new file mode 100644
index 0000000000..8c019f3475
--- /dev/null
+++ b/tests/data/acpi/q35/FACS.ipmibt.dsl
@@ -0,0 +1,32 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/FACS.ipmibt, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [FACS]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "FACS"
+[004h 0004   4]                       Length : 00000040
+[008h 0008   4]           Hardware Signature : 00000000
+[00Ch 0012   4]    32 Firmware Waking Vector : 00000000
+[010h 0016   4]                  Global Lock : 00000000
+[014h 0020   4]        Flags (decoded below) : 00000000
+                      S4BIOS Support Present : 0
+                  64-bit Wake Supported (V2) : 0
+[018h 0024   8]    64 Firmware Waking Vector : 0000000000000000
+[020h 0032   1]                      Version : 00
+[021h 0033   3]                     Reserved : 000000
+[024h 0036   4]    OspmFlags (decoded below) : 00000000
+               64-bit Wake Env Required (V2) : 0
+
+Raw Table Data: Length 64 (0x40)
+
+    0000: 46 41 43 53 40 00 00 00 00 00 00 00 00 00 00 00  // FACS@...........
+    0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
diff --git a/tests/data/acpi/q35/FACS.memhp b/tests/data/acpi/q35/FACS.memhp
new file mode 100644
index 0000000000000000000000000000000000000000..fc67ecc40782bd7fe8921e430d7de67f0bfaad93
GIT binary patch
literal 64
PcmZ>BbPjf4ARhn#RKNjV

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/q35/FACS.memhp.dsl b/tests/data/acpi/q35/FACS.memhp.dsl
new file mode 100644
index 0000000000..fb6d84c152
--- /dev/null
+++ b/tests/data/acpi/q35/FACS.memhp.dsl
@@ -0,0 +1,32 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/FACS.memhp, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [FACS]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "FACS"
+[004h 0004   4]                       Length : 00000040
+[008h 0008   4]           Hardware Signature : 00000000
+[00Ch 0012   4]    32 Firmware Waking Vector : 00000000
+[010h 0016   4]                  Global Lock : 00000000
+[014h 0020   4]        Flags (decoded below) : 00000000
+                      S4BIOS Support Present : 0
+                  64-bit Wake Supported (V2) : 0
+[018h 0024   8]    64 Firmware Waking Vector : 0000000000000000
+[020h 0032   1]                      Version : 00
+[021h 0033   3]                     Reserved : 000000
+[024h 0036   4]    OspmFlags (decoded below) : 00000000
+               64-bit Wake Env Required (V2) : 0
+
+Raw Table Data: Length 64 (0x40)
+
+    0000: 46 41 43 53 40 00 00 00 00 00 00 00 00 00 00 00  // FACS@...........
+    0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
diff --git a/tests/data/acpi/q35/FACS.mmio64 b/tests/data/acpi/q35/FACS.mmio64
new file mode 100644
index 0000000000000000000000000000000000000000..fc67ecc40782bd7fe8921e430d7de67f0bfaad93
GIT binary patch
literal 64
PcmZ>BbPjf4ARhn#RKNjV

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/q35/FACS.mmio64.dsl b/tests/data/acpi/q35/FACS.mmio64.dsl
new file mode 100644
index 0000000000..1a20060749
--- /dev/null
+++ b/tests/data/acpi/q35/FACS.mmio64.dsl
@@ -0,0 +1,32 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/FACS.mmio64, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [FACS]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "FACS"
+[004h 0004   4]                       Length : 00000040
+[008h 0008   4]           Hardware Signature : 00000000
+[00Ch 0012   4]    32 Firmware Waking Vector : 00000000
+[010h 0016   4]                  Global Lock : 00000000
+[014h 0020   4]        Flags (decoded below) : 00000000
+                      S4BIOS Support Present : 0
+                  64-bit Wake Supported (V2) : 0
+[018h 0024   8]    64 Firmware Waking Vector : 0000000000000000
+[020h 0032   1]                      Version : 00
+[021h 0033   3]                     Reserved : 000000
+[024h 0036   4]    OspmFlags (decoded below) : 00000000
+               64-bit Wake Env Required (V2) : 0
+
+Raw Table Data: Length 64 (0x40)
+
+    0000: 46 41 43 53 40 00 00 00 00 00 00 00 00 00 00 00  // FACS@...........
+    0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
diff --git a/tests/data/acpi/q35/FACS.numamem b/tests/data/acpi/q35/FACS.numamem
new file mode 100644
index 0000000000000000000000000000000000000000..fc67ecc40782bd7fe8921e430d7de67f0bfaad93
GIT binary patch
literal 64
PcmZ>BbPjf4ARhn#RKNjV

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/q35/FACS.numamem.dsl b/tests/data/acpi/q35/FACS.numamem.dsl
new file mode 100644
index 0000000000..740e0bca9a
--- /dev/null
+++ b/tests/data/acpi/q35/FACS.numamem.dsl
@@ -0,0 +1,32 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/FACS.numamem, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [FACS]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "FACS"
+[004h 0004   4]                       Length : 00000040
+[008h 0008   4]           Hardware Signature : 00000000
+[00Ch 0012   4]    32 Firmware Waking Vector : 00000000
+[010h 0016   4]                  Global Lock : 00000000
+[014h 0020   4]        Flags (decoded below) : 00000000
+                      S4BIOS Support Present : 0
+                  64-bit Wake Supported (V2) : 0
+[018h 0024   8]    64 Firmware Waking Vector : 0000000000000000
+[020h 0032   1]                      Version : 00
+[021h 0033   3]                     Reserved : 000000
+[024h 0036   4]    OspmFlags (decoded below) : 00000000
+               64-bit Wake Env Required (V2) : 0
+
+Raw Table Data: Length 64 (0x40)
+
+    0000: 46 41 43 53 40 00 00 00 00 00 00 00 00 00 00 00  // FACS@...........
+    0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
diff --git a/tests/data/acpi/q35/FACS.tis b/tests/data/acpi/q35/FACS.tis
new file mode 100644
index 0000000000000000000000000000000000000000..fc67ecc40782bd7fe8921e430d7de67f0bfaad93
GIT binary patch
literal 64
PcmZ>BbPjf4ARhn#RKNjV

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/q35/FACS.tis.dsl b/tests/data/acpi/q35/FACS.tis.dsl
new file mode 100644
index 0000000000..cb35bde06c
--- /dev/null
+++ b/tests/data/acpi/q35/FACS.tis.dsl
@@ -0,0 +1,32 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/FACS.tis, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [FACS]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "FACS"
+[004h 0004   4]                       Length : 00000040
+[008h 0008   4]           Hardware Signature : 00000000
+[00Ch 0012   4]    32 Firmware Waking Vector : 00000000
+[010h 0016   4]                  Global Lock : 00000000
+[014h 0020   4]        Flags (decoded below) : 00000000
+                      S4BIOS Support Present : 0
+                  64-bit Wake Supported (V2) : 0
+[018h 0024   8]    64 Firmware Waking Vector : 0000000000000000
+[020h 0032   1]                      Version : 00
+[021h 0033   3]                     Reserved : 000000
+[024h 0036   4]    OspmFlags (decoded below) : 00000000
+               64-bit Wake Env Required (V2) : 0
+
+Raw Table Data: Length 64 (0x40)
+
+    0000: 46 41 43 53 40 00 00 00 00 00 00 00 00 00 00 00  // FACS@...........
+    0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
diff --git a/tests/data/acpi/q35/HMAT.acpihmat.dsl b/tests/data/acpi/q35/HMAT.acpihmat.dsl
new file mode 100644
index 0000000000..4abaa94f78
--- /dev/null
+++ b/tests/data/acpi/q35/HMAT.acpihmat.dsl
@@ -0,0 +1,132 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/HMAT.acpihmat, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [HMAT]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "HMAT"    [Heterogeneous Memory Attributes Table]
+[004h 0004   4]                 Table Length : 00000118
+[008h 0008   1]                     Revision : 02
+[009h 0009   1]                     Checksum : 98
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCHMAT"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]                     Reserved : 00000000
+
+[028h 0040   2]               Structure Type : 0000 [Memory Proximity Domain Attributes]
+[02Ah 0042   2]                     Reserved : 0000
+[02Ch 0044   4]                       Length : 00000028
+[030h 0048   2]        Flags (decoded below) : 0001
+            Processor Proximity Domain Valid : 1
+[032h 0050   2]                    Reserved1 : 0000
+[034h 0052   4]   Processor Proximity Domain : 00000000
+[038h 0056   4]      Memory Proximity Domain : 00000000
+[03Ch 0060   4]                    Reserved2 : 00000000
+[040h 0064   8]                    Reserved3 : 0000000000000000
+[048h 0072   8]                    Reserved4 : 0000000000000000
+
+[050h 0080   2]               Structure Type : 0000 [Memory Proximity Domain Attributes]
+[052h 0082   2]                     Reserved : 0000
+[054h 0084   4]                       Length : 00000028
+[058h 0088   2]        Flags (decoded below) : 0001
+            Processor Proximity Domain Valid : 1
+[05Ah 0090   2]                    Reserved1 : 0000
+[05Ch 0092   4]   Processor Proximity Domain : 00000000
+[060h 0096   4]      Memory Proximity Domain : 00000001
+[064h 0100   4]                    Reserved2 : 00000000
+[068h 0104   8]                    Reserved3 : 0000000000000000
+[070h 0112   8]                    Reserved4 : 0000000000000000
+
+[078h 0120   2]               Structure Type : 0001 [System Locality Latency and Bandwidth Information]
+[07Ah 0122   2]                     Reserved : 0000
+[07Ch 0124   4]                       Length : 00000030
+[080h 0128   1]        Flags (decoded below) : 00
+                            Memory Hierarchy : 0
+[081h 0129   1]                    Data Type : 00
+[082h 0130   2]                    Reserved1 : 0000
+[084h 0132   4] Initiator Proximity Domains # : 00000001
+[088h 0136   4]   Target Proximity Domains # : 00000002
+[08Ch 0140   4]                    Reserved2 : 00000000
+[090h 0144   8]              Entry Base Unit : 00000000000003E8
+[098h 0152   4] Initiator Proximity Domain List : 00000000
+[09Ch 0156   4] Target Proximity Domain List : 00000000
+[0A0h 0160   4] Target Proximity Domain List : 00000001
+[0A4h 0164   2]                        Entry : 0001
+[0A6h 0166   2]                        Entry : FFFE
+
+[0A8h 0168   2]               Structure Type : 0001 [System Locality Latency and Bandwidth Information]
+[0AAh 0170   2]                     Reserved : 0000
+[0ACh 0172   4]                       Length : 00000030
+[0B0h 0176   1]        Flags (decoded below) : 00
+                            Memory Hierarchy : 0
+[0B1h 0177   1]                    Data Type : 03
+[0B2h 0178   2]                    Reserved1 : 0000
+[0B4h 0180   4] Initiator Proximity Domains # : 00000001
+[0B8h 0184   4]   Target Proximity Domains # : 00000002
+[0BCh 0188   4]                    Reserved2 : 00000000
+[0C0h 0192   8]              Entry Base Unit : 0000000000000001
+[0C8h 0200   4] Initiator Proximity Domain List : 00000000
+[0CCh 0204   4] Target Proximity Domain List : 00000000
+[0D0h 0208   4] Target Proximity Domain List : 00000001
+[0D4h 0212   2]                        Entry : FFFE
+[0D6h 0214   2]                        Entry : 7FFF
+
+[0D8h 0216   2]               Structure Type : 0002 [Memory Side Cache Information]
+[0DAh 0218   2]                     Reserved : 0000
+[0DCh 0220   4]                       Length : 00000020
+[0E0h 0224   4]      Memory Proximity Domain : 00000000
+[0E4h 0228   4]                    Reserved1 : 00000000
+[0E8h 0232   8]       Memory Side Cache Size : 0000000000002800
+[0F0h 0240   4] Cache Attributes (decoded below) : 00081111
+                          Total Cache Levels : 1
+                                 Cache Level : 1
+                         Cache Associativity : 1
+                                Write Policy : 1
+                             Cache Line Size : 0008
+[0F4h 0244   2]                    Reserved2 : 0000
+[0F6h 0246   2]              SMBIOS Handle # : 0000
+
+[0F8h 0248   2]               Structure Type : 0002 [Memory Side Cache Information]
+[0FAh 0250   2]                     Reserved : 0000
+[0FCh 0252   4]                       Length : 00000020
+[100h 0256   4]      Memory Proximity Domain : 00000001
+[104h 0260   4]                    Reserved1 : 00000000
+[108h 0264   8]       Memory Side Cache Size : 0000000000002800
+[110h 0272   4] Cache Attributes (decoded below) : 00081111
+                          Total Cache Levels : 1
+                                 Cache Level : 1
+                         Cache Associativity : 1
+                                Write Policy : 1
+                             Cache Line Size : 0008
+[114h 0276   2]                    Reserved2 : 0000
+[116h 0278   2]              SMBIOS Handle # : 0000
+
+Raw Table Data: Length 280 (0x118)
+
+    0000: 48 4D 41 54 18 01 00 00 02 98 42 4F 43 48 53 20  // HMAT......BOCHS 
+    0010: 42 58 50 43 48 4D 41 54 01 00 00 00 42 58 50 43  // BXPCHMAT....BXPC
+    0020: 01 00 00 00 00 00 00 00 00 00 00 00 28 00 00 00  // ............(...
+    0030: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0040: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0050: 00 00 00 00 28 00 00 00 01 00 00 00 00 00 00 00  // ....(...........
+    0060: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0070: 00 00 00 00 00 00 00 00 01 00 00 00 30 00 00 00  // ............0...
+    0080: 00 00 00 00 01 00 00 00 02 00 00 00 00 00 00 00  // ................
+    0090: E8 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00A0: 01 00 00 00 01 00 FE FF 01 00 00 00 30 00 00 00  // ............0...
+    00B0: 00 03 00 00 01 00 00 00 02 00 00 00 00 00 00 00  // ................
+    00C0: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00D0: 01 00 00 00 FE FF FF 7F 02 00 00 00 20 00 00 00  // ............ ...
+    00E0: 00 00 00 00 00 00 00 00 00 28 00 00 00 00 00 00  // .........(......
+    00F0: 11 11 08 00 00 00 00 00 02 00 00 00 20 00 00 00  // ............ ...
+    0100: 01 00 00 00 00 00 00 00 00 28 00 00 00 00 00 00  // .........(......
+    0110: 11 11 08 00 00 00 00 00                          // ........
diff --git a/tests/data/acpi/q35/HMAT.dsl b/tests/data/acpi/q35/HMAT.dsl
new file mode 100644
index 0000000000..43bc9adc98
--- /dev/null
+++ b/tests/data/acpi/q35/HMAT.dsl
@@ -0,0 +1,132 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/HMAT.acpihmat, Mon Sep 28 17:24:38 2020
+ *
+ * ACPI Data Table [HMAT]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "HMAT"    [Heterogeneous Memory Attributes Table]
+[004h 0004   4]                 Table Length : 00000118
+[008h 0008   1]                     Revision : 02
+[009h 0009   1]                     Checksum : 98
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCHMAT"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]                     Reserved : 00000000
+
+[028h 0040   2]               Structure Type : 0000 [Memory Proximity Domain Attributes]
+[02Ah 0042   2]                     Reserved : 0000
+[02Ch 0044   4]                       Length : 00000028
+[030h 0048   2]        Flags (decoded below) : 0001
+            Processor Proximity Domain Valid : 1
+[032h 0050   2]                    Reserved1 : 0000
+[034h 0052   4]   Processor Proximity Domain : 00000000
+[038h 0056   4]      Memory Proximity Domain : 00000000
+[03Ch 0060   4]                    Reserved2 : 00000000
+[040h 0064   8]                    Reserved3 : 0000000000000000
+[048h 0072   8]                    Reserved4 : 0000000000000000
+
+[050h 0080   2]               Structure Type : 0000 [Memory Proximity Domain Attributes]
+[052h 0082   2]                     Reserved : 0000
+[054h 0084   4]                       Length : 00000028
+[058h 0088   2]        Flags (decoded below) : 0001
+            Processor Proximity Domain Valid : 1
+[05Ah 0090   2]                    Reserved1 : 0000
+[05Ch 0092   4]   Processor Proximity Domain : 00000000
+[060h 0096   4]      Memory Proximity Domain : 00000001
+[064h 0100   4]                    Reserved2 : 00000000
+[068h 0104   8]                    Reserved3 : 0000000000000000
+[070h 0112   8]                    Reserved4 : 0000000000000000
+
+[078h 0120   2]               Structure Type : 0001 [System Locality Latency and Bandwidth Information]
+[07Ah 0122   2]                     Reserved : 0000
+[07Ch 0124   4]                       Length : 00000030
+[080h 0128   1]        Flags (decoded below) : 00
+                            Memory Hierarchy : 0
+[081h 0129   1]                    Data Type : 00
+[082h 0130   2]                    Reserved1 : 0000
+[084h 0132   4] Initiator Proximity Domains # : 00000001
+[088h 0136   4]   Target Proximity Domains # : 00000002
+[08Ch 0140   4]                    Reserved2 : 00000000
+[090h 0144   8]              Entry Base Unit : 00000000000003E8
+[098h 0152   4] Initiator Proximity Domain List : 00000000
+[09Ch 0156   4] Target Proximity Domain List : 00000000
+[0A0h 0160   4] Target Proximity Domain List : 00000001
+[0A4h 0164   2]                        Entry : 0001
+[0A6h 0166   2]                        Entry : FFFE
+
+[0A8h 0168   2]               Structure Type : 0001 [System Locality Latency and Bandwidth Information]
+[0AAh 0170   2]                     Reserved : 0000
+[0ACh 0172   4]                       Length : 00000030
+[0B0h 0176   1]        Flags (decoded below) : 00
+                            Memory Hierarchy : 0
+[0B1h 0177   1]                    Data Type : 03
+[0B2h 0178   2]                    Reserved1 : 0000
+[0B4h 0180   4] Initiator Proximity Domains # : 00000001
+[0B8h 0184   4]   Target Proximity Domains # : 00000002
+[0BCh 0188   4]                    Reserved2 : 00000000
+[0C0h 0192   8]              Entry Base Unit : 0000000000000001
+[0C8h 0200   4] Initiator Proximity Domain List : 00000000
+[0CCh 0204   4] Target Proximity Domain List : 00000000
+[0D0h 0208   4] Target Proximity Domain List : 00000001
+[0D4h 0212   2]                        Entry : FFFE
+[0D6h 0214   2]                        Entry : 7FFF
+
+[0D8h 0216   2]               Structure Type : 0002 [Memory Side Cache Information]
+[0DAh 0218   2]                     Reserved : 0000
+[0DCh 0220   4]                       Length : 00000020
+[0E0h 0224   4]      Memory Proximity Domain : 00000000
+[0E4h 0228   4]                    Reserved1 : 00000000
+[0E8h 0232   8]       Memory Side Cache Size : 0000000000002800
+[0F0h 0240   4] Cache Attributes (decoded below) : 00081111
+                          Total Cache Levels : 1
+                                 Cache Level : 1
+                         Cache Associativity : 1
+                                Write Policy : 1
+                             Cache Line Size : 0008
+[0F4h 0244   2]                    Reserved2 : 0000
+[0F6h 0246   2]              SMBIOS Handle # : 0000
+
+[0F8h 0248   2]               Structure Type : 0002 [Memory Side Cache Information]
+[0FAh 0250   2]                     Reserved : 0000
+[0FCh 0252   4]                       Length : 00000020
+[100h 0256   4]      Memory Proximity Domain : 00000001
+[104h 0260   4]                    Reserved1 : 00000000
+[108h 0264   8]       Memory Side Cache Size : 0000000000002800
+[110h 0272   4] Cache Attributes (decoded below) : 00081111
+                          Total Cache Levels : 1
+                                 Cache Level : 1
+                         Cache Associativity : 1
+                                Write Policy : 1
+                             Cache Line Size : 0008
+[114h 0276   2]                    Reserved2 : 0000
+[116h 0278   2]              SMBIOS Handle # : 0000
+
+Raw Table Data: Length 280 (0x118)
+
+    0000: 48 4D 41 54 18 01 00 00 02 98 42 4F 43 48 53 20  // HMAT......BOCHS 
+    0010: 42 58 50 43 48 4D 41 54 01 00 00 00 42 58 50 43  // BXPCHMAT....BXPC
+    0020: 01 00 00 00 00 00 00 00 00 00 00 00 28 00 00 00  // ............(...
+    0030: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0040: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0050: 00 00 00 00 28 00 00 00 01 00 00 00 00 00 00 00  // ....(...........
+    0060: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0070: 00 00 00 00 00 00 00 00 01 00 00 00 30 00 00 00  // ............0...
+    0080: 00 00 00 00 01 00 00 00 02 00 00 00 00 00 00 00  // ................
+    0090: E8 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00A0: 01 00 00 00 01 00 FE FF 01 00 00 00 30 00 00 00  // ............0...
+    00B0: 00 03 00 00 01 00 00 00 02 00 00 00 00 00 00 00  // ................
+    00C0: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00D0: 01 00 00 00 FE FF FF 7F 02 00 00 00 20 00 00 00  // ............ ...
+    00E0: 00 00 00 00 00 00 00 00 00 28 00 00 00 00 00 00  // .........(......
+    00F0: 11 11 08 00 00 00 00 00 02 00 00 00 20 00 00 00  // ............ ...
+    0100: 01 00 00 00 00 00 00 00 00 28 00 00 00 00 00 00  // .........(......
+    0110: 11 11 08 00 00 00 00 00                          // ........
diff --git a/tests/data/acpi/q35/HPET.acpihmat b/tests/data/acpi/q35/HPET.acpihmat
new file mode 100644
index 0000000000000000000000000000000000000000..df689b8f99c1c43cfd7d63bdede3bcdfd23b7de1
GIT binary patch
literal 56
xcmeYWa1F6wU|?WmcJg=j2v%^42ypfQiZKGkKx`1rxTviGNCClxe-N610RT2D3IPBB

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/q35/HPET.acpihmat.dsl b/tests/data/acpi/q35/HPET.acpihmat.dsl
new file mode 100644
index 0000000000..9806b81069
--- /dev/null
+++ b/tests/data/acpi/q35/HPET.acpihmat.dsl
@@ -0,0 +1,43 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/HPET.acpihmat, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [HPET]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "HPET"    [High Precision Event Timer table]
+[004h 0004   4]                 Table Length : 00000038
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 03
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCHPET"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]            Hardware Block ID : 8086A201
+
+[028h 0040  12]         Timer Block Register : [Generic Address Structure]
+[028h 0040   1]                     Space ID : 00 [SystemMemory]
+[029h 0041   1]                    Bit Width : 00
+[02Ah 0042   1]                   Bit Offset : 00
+[02Bh 0043   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[02Ch 0044   8]                      Address : 00000000FED00000
+
+[034h 0052   1]              Sequence Number : 00
+[035h 0053   2]          Minimum Clock Ticks : 0000
+[037h 0055   1]        Flags (decoded below) : 00
+                             4K Page Protect : 0
+                            64K Page Protect : 0
+
+Raw Table Data: Length 56 (0x38)
+
+    0000: 48 50 45 54 38 00 00 00 01 03 42 4F 43 48 53 20  // HPET8.....BOCHS 
+    0010: 42 58 50 43 48 50 45 54 01 00 00 00 42 58 50 43  // BXPCHPET....BXPC
+    0020: 01 00 00 00 01 A2 86 80 00 00 00 00 00 00 D0 FE  // ................
+    0030: 00 00 00 00 00 00 00 00                          // ........
diff --git a/tests/data/acpi/q35/HPET.bridge b/tests/data/acpi/q35/HPET.bridge
new file mode 100644
index 0000000000000000000000000000000000000000..df689b8f99c1c43cfd7d63bdede3bcdfd23b7de1
GIT binary patch
literal 56
xcmeYWa1F6wU|?WmcJg=j2v%^42ypfQiZKGkKx`1rxTviGNCClxe-N610RT2D3IPBB

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/q35/HPET.bridge.dsl b/tests/data/acpi/q35/HPET.bridge.dsl
new file mode 100644
index 0000000000..817040df23
--- /dev/null
+++ b/tests/data/acpi/q35/HPET.bridge.dsl
@@ -0,0 +1,43 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/HPET.bridge, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [HPET]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "HPET"    [High Precision Event Timer table]
+[004h 0004   4]                 Table Length : 00000038
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 03
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCHPET"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]            Hardware Block ID : 8086A201
+
+[028h 0040  12]         Timer Block Register : [Generic Address Structure]
+[028h 0040   1]                     Space ID : 00 [SystemMemory]
+[029h 0041   1]                    Bit Width : 00
+[02Ah 0042   1]                   Bit Offset : 00
+[02Bh 0043   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[02Ch 0044   8]                      Address : 00000000FED00000
+
+[034h 0052   1]              Sequence Number : 00
+[035h 0053   2]          Minimum Clock Ticks : 0000
+[037h 0055   1]        Flags (decoded below) : 00
+                             4K Page Protect : 0
+                            64K Page Protect : 0
+
+Raw Table Data: Length 56 (0x38)
+
+    0000: 48 50 45 54 38 00 00 00 01 03 42 4F 43 48 53 20  // HPET8.....BOCHS 
+    0010: 42 58 50 43 48 50 45 54 01 00 00 00 42 58 50 43  // BXPCHPET....BXPC
+    0020: 01 00 00 00 01 A2 86 80 00 00 00 00 00 00 D0 FE  // ................
+    0030: 00 00 00 00 00 00 00 00                          // ........
diff --git a/tests/data/acpi/q35/HPET.cphp b/tests/data/acpi/q35/HPET.cphp
new file mode 100644
index 0000000000000000000000000000000000000000..df689b8f99c1c43cfd7d63bdede3bcdfd23b7de1
GIT binary patch
literal 56
xcmeYWa1F6wU|?WmcJg=j2v%^42ypfQiZKGkKx`1rxTviGNCClxe-N610RT2D3IPBB

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/q35/HPET.cphp.dsl b/tests/data/acpi/q35/HPET.cphp.dsl
new file mode 100644
index 0000000000..4134b96873
--- /dev/null
+++ b/tests/data/acpi/q35/HPET.cphp.dsl
@@ -0,0 +1,43 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/HPET.cphp, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [HPET]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "HPET"    [High Precision Event Timer table]
+[004h 0004   4]                 Table Length : 00000038
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 03
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCHPET"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]            Hardware Block ID : 8086A201
+
+[028h 0040  12]         Timer Block Register : [Generic Address Structure]
+[028h 0040   1]                     Space ID : 00 [SystemMemory]
+[029h 0041   1]                    Bit Width : 00
+[02Ah 0042   1]                   Bit Offset : 00
+[02Bh 0043   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[02Ch 0044   8]                      Address : 00000000FED00000
+
+[034h 0052   1]              Sequence Number : 00
+[035h 0053   2]          Minimum Clock Ticks : 0000
+[037h 0055   1]        Flags (decoded below) : 00
+                             4K Page Protect : 0
+                            64K Page Protect : 0
+
+Raw Table Data: Length 56 (0x38)
+
+    0000: 48 50 45 54 38 00 00 00 01 03 42 4F 43 48 53 20  // HPET8.....BOCHS 
+    0010: 42 58 50 43 48 50 45 54 01 00 00 00 42 58 50 43  // BXPCHPET....BXPC
+    0020: 01 00 00 00 01 A2 86 80 00 00 00 00 00 00 D0 FE  // ................
+    0030: 00 00 00 00 00 00 00 00                          // ........
diff --git a/tests/data/acpi/q35/HPET.dimmpxm b/tests/data/acpi/q35/HPET.dimmpxm
new file mode 100644
index 0000000000000000000000000000000000000000..df689b8f99c1c43cfd7d63bdede3bcdfd23b7de1
GIT binary patch
literal 56
xcmeYWa1F6wU|?WmcJg=j2v%^42ypfQiZKGkKx`1rxTviGNCClxe-N610RT2D3IPBB

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/q35/HPET.dimmpxm.dsl b/tests/data/acpi/q35/HPET.dimmpxm.dsl
new file mode 100644
index 0000000000..42a7cc5fd6
--- /dev/null
+++ b/tests/data/acpi/q35/HPET.dimmpxm.dsl
@@ -0,0 +1,43 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/HPET.dimmpxm, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [HPET]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "HPET"    [High Precision Event Timer table]
+[004h 0004   4]                 Table Length : 00000038
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 03
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCHPET"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]            Hardware Block ID : 8086A201
+
+[028h 0040  12]         Timer Block Register : [Generic Address Structure]
+[028h 0040   1]                     Space ID : 00 [SystemMemory]
+[029h 0041   1]                    Bit Width : 00
+[02Ah 0042   1]                   Bit Offset : 00
+[02Bh 0043   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[02Ch 0044   8]                      Address : 00000000FED00000
+
+[034h 0052   1]              Sequence Number : 00
+[035h 0053   2]          Minimum Clock Ticks : 0000
+[037h 0055   1]        Flags (decoded below) : 00
+                             4K Page Protect : 0
+                            64K Page Protect : 0
+
+Raw Table Data: Length 56 (0x38)
+
+    0000: 48 50 45 54 38 00 00 00 01 03 42 4F 43 48 53 20  // HPET8.....BOCHS 
+    0010: 42 58 50 43 48 50 45 54 01 00 00 00 42 58 50 43  // BXPCHPET....BXPC
+    0020: 01 00 00 00 01 A2 86 80 00 00 00 00 00 00 D0 FE  // ................
+    0030: 00 00 00 00 00 00 00 00                          // ........
diff --git a/tests/data/acpi/q35/HPET.dsl b/tests/data/acpi/q35/HPET.dsl
new file mode 100644
index 0000000000..42c40fd653
--- /dev/null
+++ b/tests/data/acpi/q35/HPET.dsl
@@ -0,0 +1,43 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/HPET.tis, Mon Sep 28 17:24:38 2020
+ *
+ * ACPI Data Table [HPET]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "HPET"    [High Precision Event Timer table]
+[004h 0004   4]                 Table Length : 00000038
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 03
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCHPET"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]            Hardware Block ID : 8086A201
+
+[028h 0040  12]         Timer Block Register : [Generic Address Structure]
+[028h 0040   1]                     Space ID : 00 [SystemMemory]
+[029h 0041   1]                    Bit Width : 00
+[02Ah 0042   1]                   Bit Offset : 00
+[02Bh 0043   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[02Ch 0044   8]                      Address : 00000000FED00000
+
+[034h 0052   1]              Sequence Number : 00
+[035h 0053   2]          Minimum Clock Ticks : 0000
+[037h 0055   1]        Flags (decoded below) : 00
+                             4K Page Protect : 0
+                            64K Page Protect : 0
+
+Raw Table Data: Length 56 (0x38)
+
+    0000: 48 50 45 54 38 00 00 00 01 03 42 4F 43 48 53 20  // HPET8.....BOCHS 
+    0010: 42 58 50 43 48 50 45 54 01 00 00 00 42 58 50 43  // BXPCHPET....BXPC
+    0020: 01 00 00 00 01 A2 86 80 00 00 00 00 00 00 D0 FE  // ................
+    0030: 00 00 00 00 00 00 00 00                          // ........
diff --git a/tests/data/acpi/q35/HPET.ipmibt b/tests/data/acpi/q35/HPET.ipmibt
new file mode 100644
index 0000000000000000000000000000000000000000..df689b8f99c1c43cfd7d63bdede3bcdfd23b7de1
GIT binary patch
literal 56
xcmeYWa1F6wU|?WmcJg=j2v%^42ypfQiZKGkKx`1rxTviGNCClxe-N610RT2D3IPBB

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/q35/HPET.ipmibt.dsl b/tests/data/acpi/q35/HPET.ipmibt.dsl
new file mode 100644
index 0000000000..9637f4cf81
--- /dev/null
+++ b/tests/data/acpi/q35/HPET.ipmibt.dsl
@@ -0,0 +1,43 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/HPET.ipmibt, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [HPET]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "HPET"    [High Precision Event Timer table]
+[004h 0004   4]                 Table Length : 00000038
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 03
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCHPET"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]            Hardware Block ID : 8086A201
+
+[028h 0040  12]         Timer Block Register : [Generic Address Structure]
+[028h 0040   1]                     Space ID : 00 [SystemMemory]
+[029h 0041   1]                    Bit Width : 00
+[02Ah 0042   1]                   Bit Offset : 00
+[02Bh 0043   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[02Ch 0044   8]                      Address : 00000000FED00000
+
+[034h 0052   1]              Sequence Number : 00
+[035h 0053   2]          Minimum Clock Ticks : 0000
+[037h 0055   1]        Flags (decoded below) : 00
+                             4K Page Protect : 0
+                            64K Page Protect : 0
+
+Raw Table Data: Length 56 (0x38)
+
+    0000: 48 50 45 54 38 00 00 00 01 03 42 4F 43 48 53 20  // HPET8.....BOCHS 
+    0010: 42 58 50 43 48 50 45 54 01 00 00 00 42 58 50 43  // BXPCHPET....BXPC
+    0020: 01 00 00 00 01 A2 86 80 00 00 00 00 00 00 D0 FE  // ................
+    0030: 00 00 00 00 00 00 00 00                          // ........
diff --git a/tests/data/acpi/q35/HPET.memhp b/tests/data/acpi/q35/HPET.memhp
new file mode 100644
index 0000000000000000000000000000000000000000..df689b8f99c1c43cfd7d63bdede3bcdfd23b7de1
GIT binary patch
literal 56
xcmeYWa1F6wU|?WmcJg=j2v%^42ypfQiZKGkKx`1rxTviGNCClxe-N610RT2D3IPBB

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/q35/HPET.memhp.dsl b/tests/data/acpi/q35/HPET.memhp.dsl
new file mode 100644
index 0000000000..2efab15846
--- /dev/null
+++ b/tests/data/acpi/q35/HPET.memhp.dsl
@@ -0,0 +1,43 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/HPET.memhp, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [HPET]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "HPET"    [High Precision Event Timer table]
+[004h 0004   4]                 Table Length : 00000038
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 03
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCHPET"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]            Hardware Block ID : 8086A201
+
+[028h 0040  12]         Timer Block Register : [Generic Address Structure]
+[028h 0040   1]                     Space ID : 00 [SystemMemory]
+[029h 0041   1]                    Bit Width : 00
+[02Ah 0042   1]                   Bit Offset : 00
+[02Bh 0043   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[02Ch 0044   8]                      Address : 00000000FED00000
+
+[034h 0052   1]              Sequence Number : 00
+[035h 0053   2]          Minimum Clock Ticks : 0000
+[037h 0055   1]        Flags (decoded below) : 00
+                             4K Page Protect : 0
+                            64K Page Protect : 0
+
+Raw Table Data: Length 56 (0x38)
+
+    0000: 48 50 45 54 38 00 00 00 01 03 42 4F 43 48 53 20  // HPET8.....BOCHS 
+    0010: 42 58 50 43 48 50 45 54 01 00 00 00 42 58 50 43  // BXPCHPET....BXPC
+    0020: 01 00 00 00 01 A2 86 80 00 00 00 00 00 00 D0 FE  // ................
+    0030: 00 00 00 00 00 00 00 00                          // ........
diff --git a/tests/data/acpi/q35/HPET.mmio64 b/tests/data/acpi/q35/HPET.mmio64
new file mode 100644
index 0000000000000000000000000000000000000000..df689b8f99c1c43cfd7d63bdede3bcdfd23b7de1
GIT binary patch
literal 56
xcmeYWa1F6wU|?WmcJg=j2v%^42ypfQiZKGkKx`1rxTviGNCClxe-N610RT2D3IPBB

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/q35/HPET.mmio64.dsl b/tests/data/acpi/q35/HPET.mmio64.dsl
new file mode 100644
index 0000000000..dba0368678
--- /dev/null
+++ b/tests/data/acpi/q35/HPET.mmio64.dsl
@@ -0,0 +1,43 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/HPET.mmio64, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [HPET]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "HPET"    [High Precision Event Timer table]
+[004h 0004   4]                 Table Length : 00000038
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 03
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCHPET"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]            Hardware Block ID : 8086A201
+
+[028h 0040  12]         Timer Block Register : [Generic Address Structure]
+[028h 0040   1]                     Space ID : 00 [SystemMemory]
+[029h 0041   1]                    Bit Width : 00
+[02Ah 0042   1]                   Bit Offset : 00
+[02Bh 0043   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[02Ch 0044   8]                      Address : 00000000FED00000
+
+[034h 0052   1]              Sequence Number : 00
+[035h 0053   2]          Minimum Clock Ticks : 0000
+[037h 0055   1]        Flags (decoded below) : 00
+                             4K Page Protect : 0
+                            64K Page Protect : 0
+
+Raw Table Data: Length 56 (0x38)
+
+    0000: 48 50 45 54 38 00 00 00 01 03 42 4F 43 48 53 20  // HPET8.....BOCHS 
+    0010: 42 58 50 43 48 50 45 54 01 00 00 00 42 58 50 43  // BXPCHPET....BXPC
+    0020: 01 00 00 00 01 A2 86 80 00 00 00 00 00 00 D0 FE  // ................
+    0030: 00 00 00 00 00 00 00 00                          // ........
diff --git a/tests/data/acpi/q35/HPET.numamem b/tests/data/acpi/q35/HPET.numamem
new file mode 100644
index 0000000000000000000000000000000000000000..df689b8f99c1c43cfd7d63bdede3bcdfd23b7de1
GIT binary patch
literal 56
xcmeYWa1F6wU|?WmcJg=j2v%^42ypfQiZKGkKx`1rxTviGNCClxe-N610RT2D3IPBB

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/q35/HPET.numamem.dsl b/tests/data/acpi/q35/HPET.numamem.dsl
new file mode 100644
index 0000000000..e9d18a59fd
--- /dev/null
+++ b/tests/data/acpi/q35/HPET.numamem.dsl
@@ -0,0 +1,43 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/HPET.numamem, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [HPET]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "HPET"    [High Precision Event Timer table]
+[004h 0004   4]                 Table Length : 00000038
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 03
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCHPET"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]            Hardware Block ID : 8086A201
+
+[028h 0040  12]         Timer Block Register : [Generic Address Structure]
+[028h 0040   1]                     Space ID : 00 [SystemMemory]
+[029h 0041   1]                    Bit Width : 00
+[02Ah 0042   1]                   Bit Offset : 00
+[02Bh 0043   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[02Ch 0044   8]                      Address : 00000000FED00000
+
+[034h 0052   1]              Sequence Number : 00
+[035h 0053   2]          Minimum Clock Ticks : 0000
+[037h 0055   1]        Flags (decoded below) : 00
+                             4K Page Protect : 0
+                            64K Page Protect : 0
+
+Raw Table Data: Length 56 (0x38)
+
+    0000: 48 50 45 54 38 00 00 00 01 03 42 4F 43 48 53 20  // HPET8.....BOCHS 
+    0010: 42 58 50 43 48 50 45 54 01 00 00 00 42 58 50 43  // BXPCHPET....BXPC
+    0020: 01 00 00 00 01 A2 86 80 00 00 00 00 00 00 D0 FE  // ................
+    0030: 00 00 00 00 00 00 00 00                          // ........
diff --git a/tests/data/acpi/q35/HPET.tis b/tests/data/acpi/q35/HPET.tis
new file mode 100644
index 0000000000000000000000000000000000000000..df689b8f99c1c43cfd7d63bdede3bcdfd23b7de1
GIT binary patch
literal 56
xcmeYWa1F6wU|?WmcJg=j2v%^42ypfQiZKGkKx`1rxTviGNCClxe-N610RT2D3IPBB

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/q35/HPET.tis.dsl b/tests/data/acpi/q35/HPET.tis.dsl
new file mode 100644
index 0000000000..471cb5b940
--- /dev/null
+++ b/tests/data/acpi/q35/HPET.tis.dsl
@@ -0,0 +1,43 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/HPET.tis, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [HPET]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "HPET"    [High Precision Event Timer table]
+[004h 0004   4]                 Table Length : 00000038
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 03
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCHPET"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]            Hardware Block ID : 8086A201
+
+[028h 0040  12]         Timer Block Register : [Generic Address Structure]
+[028h 0040   1]                     Space ID : 00 [SystemMemory]
+[029h 0041   1]                    Bit Width : 00
+[02Ah 0042   1]                   Bit Offset : 00
+[02Bh 0043   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[02Ch 0044   8]                      Address : 00000000FED00000
+
+[034h 0052   1]              Sequence Number : 00
+[035h 0053   2]          Minimum Clock Ticks : 0000
+[037h 0055   1]        Flags (decoded below) : 00
+                             4K Page Protect : 0
+                            64K Page Protect : 0
+
+Raw Table Data: Length 56 (0x38)
+
+    0000: 48 50 45 54 38 00 00 00 01 03 42 4F 43 48 53 20  // HPET8.....BOCHS 
+    0010: 42 58 50 43 48 50 45 54 01 00 00 00 42 58 50 43  // BXPCHPET....BXPC
+    0020: 01 00 00 00 01 A2 86 80 00 00 00 00 00 00 D0 FE  // ................
+    0030: 00 00 00 00 00 00 00 00                          // ........
diff --git a/tests/data/acpi/q35/MCFG.acpihmat b/tests/data/acpi/q35/MCFG.acpihmat
new file mode 100644
index 0000000000000000000000000000000000000000..79ceb27a038c6e29d098b98dda2e229495f96b7c
GIT binary patch
literal 60
rcmeZuc5}C3U|?W;@8s|75v<@85#a0#6k`O6f!H7#32cC}|AS}%SE304

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/q35/MCFG.acpihmat.dsl b/tests/data/acpi/q35/MCFG.acpihmat.dsl
new file mode 100644
index 0000000000..8d07f64e9d
--- /dev/null
+++ b/tests/data/acpi/q35/MCFG.acpihmat.dsl
@@ -0,0 +1,36 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/MCFG.acpihmat, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [MCFG]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "MCFG"    [Memory Mapped Configuration table]
+[004h 0004   4]                 Table Length : 0000003C
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : EF
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCMCFG"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   8]                     Reserved : 0000000000000000
+
+[02Ch 0044   8]                 Base Address : 00000000B0000000
+[034h 0052   2]         Segment Group Number : 0000
+[036h 0054   1]             Start Bus Number : 00
+[037h 0055   1]               End Bus Number : FF
+[038h 0056   4]                     Reserved : 00000000
+
+Raw Table Data: Length 60 (0x3C)
+
+    0000: 4D 43 46 47 3C 00 00 00 01 EF 42 4F 43 48 53 20  // MCFG<.....BOCHS 
+    0010: 42 58 50 43 4D 43 46 47 01 00 00 00 42 58 50 43  // BXPCMCFG....BXPC
+    0020: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 B0  // ................
+    0030: 00 00 00 00 00 00 00 FF 00 00 00 00              // ............
diff --git a/tests/data/acpi/q35/MCFG.bridge b/tests/data/acpi/q35/MCFG.bridge
new file mode 100644
index 0000000000000000000000000000000000000000..79ceb27a038c6e29d098b98dda2e229495f96b7c
GIT binary patch
literal 60
rcmeZuc5}C3U|?W;@8s|75v<@85#a0#6k`O6f!H7#32cC}|AS}%SE304

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/q35/MCFG.bridge.dsl b/tests/data/acpi/q35/MCFG.bridge.dsl
new file mode 100644
index 0000000000..6ce54d7228
--- /dev/null
+++ b/tests/data/acpi/q35/MCFG.bridge.dsl
@@ -0,0 +1,36 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/MCFG.bridge, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [MCFG]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "MCFG"    [Memory Mapped Configuration table]
+[004h 0004   4]                 Table Length : 0000003C
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : EF
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCMCFG"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   8]                     Reserved : 0000000000000000
+
+[02Ch 0044   8]                 Base Address : 00000000B0000000
+[034h 0052   2]         Segment Group Number : 0000
+[036h 0054   1]             Start Bus Number : 00
+[037h 0055   1]               End Bus Number : FF
+[038h 0056   4]                     Reserved : 00000000
+
+Raw Table Data: Length 60 (0x3C)
+
+    0000: 4D 43 46 47 3C 00 00 00 01 EF 42 4F 43 48 53 20  // MCFG<.....BOCHS 
+    0010: 42 58 50 43 4D 43 46 47 01 00 00 00 42 58 50 43  // BXPCMCFG....BXPC
+    0020: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 B0  // ................
+    0030: 00 00 00 00 00 00 00 FF 00 00 00 00              // ............
diff --git a/tests/data/acpi/q35/MCFG.cphp b/tests/data/acpi/q35/MCFG.cphp
new file mode 100644
index 0000000000000000000000000000000000000000..79ceb27a038c6e29d098b98dda2e229495f96b7c
GIT binary patch
literal 60
rcmeZuc5}C3U|?W;@8s|75v<@85#a0#6k`O6f!H7#32cC}|AS}%SE304

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/q35/MCFG.cphp.dsl b/tests/data/acpi/q35/MCFG.cphp.dsl
new file mode 100644
index 0000000000..7ffd7f30db
--- /dev/null
+++ b/tests/data/acpi/q35/MCFG.cphp.dsl
@@ -0,0 +1,36 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/MCFG.cphp, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [MCFG]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "MCFG"    [Memory Mapped Configuration table]
+[004h 0004   4]                 Table Length : 0000003C
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : EF
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCMCFG"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   8]                     Reserved : 0000000000000000
+
+[02Ch 0044   8]                 Base Address : 00000000B0000000
+[034h 0052   2]         Segment Group Number : 0000
+[036h 0054   1]             Start Bus Number : 00
+[037h 0055   1]               End Bus Number : FF
+[038h 0056   4]                     Reserved : 00000000
+
+Raw Table Data: Length 60 (0x3C)
+
+    0000: 4D 43 46 47 3C 00 00 00 01 EF 42 4F 43 48 53 20  // MCFG<.....BOCHS 
+    0010: 42 58 50 43 4D 43 46 47 01 00 00 00 42 58 50 43  // BXPCMCFG....BXPC
+    0020: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 B0  // ................
+    0030: 00 00 00 00 00 00 00 FF 00 00 00 00              // ............
diff --git a/tests/data/acpi/q35/MCFG.dimmpxm b/tests/data/acpi/q35/MCFG.dimmpxm
new file mode 100644
index 0000000000000000000000000000000000000000..79ceb27a038c6e29d098b98dda2e229495f96b7c
GIT binary patch
literal 60
rcmeZuc5}C3U|?W;@8s|75v<@85#a0#6k`O6f!H7#32cC}|AS}%SE304

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/q35/MCFG.dimmpxm.dsl b/tests/data/acpi/q35/MCFG.dimmpxm.dsl
new file mode 100644
index 0000000000..dd7373b692
--- /dev/null
+++ b/tests/data/acpi/q35/MCFG.dimmpxm.dsl
@@ -0,0 +1,36 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/MCFG.dimmpxm, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [MCFG]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "MCFG"    [Memory Mapped Configuration table]
+[004h 0004   4]                 Table Length : 0000003C
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : EF
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCMCFG"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   8]                     Reserved : 0000000000000000
+
+[02Ch 0044   8]                 Base Address : 00000000B0000000
+[034h 0052   2]         Segment Group Number : 0000
+[036h 0054   1]             Start Bus Number : 00
+[037h 0055   1]               End Bus Number : FF
+[038h 0056   4]                     Reserved : 00000000
+
+Raw Table Data: Length 60 (0x3C)
+
+    0000: 4D 43 46 47 3C 00 00 00 01 EF 42 4F 43 48 53 20  // MCFG<.....BOCHS 
+    0010: 42 58 50 43 4D 43 46 47 01 00 00 00 42 58 50 43  // BXPCMCFG....BXPC
+    0020: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 B0  // ................
+    0030: 00 00 00 00 00 00 00 FF 00 00 00 00              // ............
diff --git a/tests/data/acpi/q35/MCFG.dsl b/tests/data/acpi/q35/MCFG.dsl
new file mode 100644
index 0000000000..5179d6d707
--- /dev/null
+++ b/tests/data/acpi/q35/MCFG.dsl
@@ -0,0 +1,36 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/MCFG.tis, Mon Sep 28 17:24:38 2020
+ *
+ * ACPI Data Table [MCFG]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "MCFG"    [Memory Mapped Configuration table]
+[004h 0004   4]                 Table Length : 0000003C
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : EF
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCMCFG"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   8]                     Reserved : 0000000000000000
+
+[02Ch 0044   8]                 Base Address : 00000000B0000000
+[034h 0052   2]         Segment Group Number : 0000
+[036h 0054   1]             Start Bus Number : 00
+[037h 0055   1]               End Bus Number : FF
+[038h 0056   4]                     Reserved : 00000000
+
+Raw Table Data: Length 60 (0x3C)
+
+    0000: 4D 43 46 47 3C 00 00 00 01 EF 42 4F 43 48 53 20  // MCFG<.....BOCHS 
+    0010: 42 58 50 43 4D 43 46 47 01 00 00 00 42 58 50 43  // BXPCMCFG....BXPC
+    0020: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 B0  // ................
+    0030: 00 00 00 00 00 00 00 FF 00 00 00 00              // ............
diff --git a/tests/data/acpi/q35/MCFG.ipmibt b/tests/data/acpi/q35/MCFG.ipmibt
new file mode 100644
index 0000000000000000000000000000000000000000..79ceb27a038c6e29d098b98dda2e229495f96b7c
GIT binary patch
literal 60
rcmeZuc5}C3U|?W;@8s|75v<@85#a0#6k`O6f!H7#32cC}|AS}%SE304

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/q35/MCFG.ipmibt.dsl b/tests/data/acpi/q35/MCFG.ipmibt.dsl
new file mode 100644
index 0000000000..80c372162c
--- /dev/null
+++ b/tests/data/acpi/q35/MCFG.ipmibt.dsl
@@ -0,0 +1,36 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/MCFG.ipmibt, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [MCFG]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "MCFG"    [Memory Mapped Configuration table]
+[004h 0004   4]                 Table Length : 0000003C
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : EF
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCMCFG"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   8]                     Reserved : 0000000000000000
+
+[02Ch 0044   8]                 Base Address : 00000000B0000000
+[034h 0052   2]         Segment Group Number : 0000
+[036h 0054   1]             Start Bus Number : 00
+[037h 0055   1]               End Bus Number : FF
+[038h 0056   4]                     Reserved : 00000000
+
+Raw Table Data: Length 60 (0x3C)
+
+    0000: 4D 43 46 47 3C 00 00 00 01 EF 42 4F 43 48 53 20  // MCFG<.....BOCHS 
+    0010: 42 58 50 43 4D 43 46 47 01 00 00 00 42 58 50 43  // BXPCMCFG....BXPC
+    0020: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 B0  // ................
+    0030: 00 00 00 00 00 00 00 FF 00 00 00 00              // ............
diff --git a/tests/data/acpi/q35/MCFG.memhp b/tests/data/acpi/q35/MCFG.memhp
new file mode 100644
index 0000000000000000000000000000000000000000..79ceb27a038c6e29d098b98dda2e229495f96b7c
GIT binary patch
literal 60
rcmeZuc5}C3U|?W;@8s|75v<@85#a0#6k`O6f!H7#32cC}|AS}%SE304

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/q35/MCFG.memhp.dsl b/tests/data/acpi/q35/MCFG.memhp.dsl
new file mode 100644
index 0000000000..1b1f666833
--- /dev/null
+++ b/tests/data/acpi/q35/MCFG.memhp.dsl
@@ -0,0 +1,36 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/MCFG.memhp, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [MCFG]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "MCFG"    [Memory Mapped Configuration table]
+[004h 0004   4]                 Table Length : 0000003C
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : EF
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCMCFG"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   8]                     Reserved : 0000000000000000
+
+[02Ch 0044   8]                 Base Address : 00000000B0000000
+[034h 0052   2]         Segment Group Number : 0000
+[036h 0054   1]             Start Bus Number : 00
+[037h 0055   1]               End Bus Number : FF
+[038h 0056   4]                     Reserved : 00000000
+
+Raw Table Data: Length 60 (0x3C)
+
+    0000: 4D 43 46 47 3C 00 00 00 01 EF 42 4F 43 48 53 20  // MCFG<.....BOCHS 
+    0010: 42 58 50 43 4D 43 46 47 01 00 00 00 42 58 50 43  // BXPCMCFG....BXPC
+    0020: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 B0  // ................
+    0030: 00 00 00 00 00 00 00 FF 00 00 00 00              // ............
diff --git a/tests/data/acpi/q35/MCFG.mmio64 b/tests/data/acpi/q35/MCFG.mmio64
new file mode 100644
index 0000000000000000000000000000000000000000..79ceb27a038c6e29d098b98dda2e229495f96b7c
GIT binary patch
literal 60
rcmeZuc5}C3U|?W;@8s|75v<@85#a0#6k`O6f!H7#32cC}|AS}%SE304

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/q35/MCFG.mmio64.dsl b/tests/data/acpi/q35/MCFG.mmio64.dsl
new file mode 100644
index 0000000000..79be440f72
--- /dev/null
+++ b/tests/data/acpi/q35/MCFG.mmio64.dsl
@@ -0,0 +1,36 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/MCFG.mmio64, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [MCFG]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "MCFG"    [Memory Mapped Configuration table]
+[004h 0004   4]                 Table Length : 0000003C
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : EF
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCMCFG"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   8]                     Reserved : 0000000000000000
+
+[02Ch 0044   8]                 Base Address : 00000000B0000000
+[034h 0052   2]         Segment Group Number : 0000
+[036h 0054   1]             Start Bus Number : 00
+[037h 0055   1]               End Bus Number : FF
+[038h 0056   4]                     Reserved : 00000000
+
+Raw Table Data: Length 60 (0x3C)
+
+    0000: 4D 43 46 47 3C 00 00 00 01 EF 42 4F 43 48 53 20  // MCFG<.....BOCHS 
+    0010: 42 58 50 43 4D 43 46 47 01 00 00 00 42 58 50 43  // BXPCMCFG....BXPC
+    0020: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 B0  // ................
+    0030: 00 00 00 00 00 00 00 FF 00 00 00 00              // ............
diff --git a/tests/data/acpi/q35/MCFG.numamem b/tests/data/acpi/q35/MCFG.numamem
new file mode 100644
index 0000000000000000000000000000000000000000..79ceb27a038c6e29d098b98dda2e229495f96b7c
GIT binary patch
literal 60
rcmeZuc5}C3U|?W;@8s|75v<@85#a0#6k`O6f!H7#32cC}|AS}%SE304

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/q35/MCFG.numamem.dsl b/tests/data/acpi/q35/MCFG.numamem.dsl
new file mode 100644
index 0000000000..30b37074d3
--- /dev/null
+++ b/tests/data/acpi/q35/MCFG.numamem.dsl
@@ -0,0 +1,36 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/MCFG.numamem, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [MCFG]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "MCFG"    [Memory Mapped Configuration table]
+[004h 0004   4]                 Table Length : 0000003C
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : EF
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCMCFG"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   8]                     Reserved : 0000000000000000
+
+[02Ch 0044   8]                 Base Address : 00000000B0000000
+[034h 0052   2]         Segment Group Number : 0000
+[036h 0054   1]             Start Bus Number : 00
+[037h 0055   1]               End Bus Number : FF
+[038h 0056   4]                     Reserved : 00000000
+
+Raw Table Data: Length 60 (0x3C)
+
+    0000: 4D 43 46 47 3C 00 00 00 01 EF 42 4F 43 48 53 20  // MCFG<.....BOCHS 
+    0010: 42 58 50 43 4D 43 46 47 01 00 00 00 42 58 50 43  // BXPCMCFG....BXPC
+    0020: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 B0  // ................
+    0030: 00 00 00 00 00 00 00 FF 00 00 00 00              // ............
diff --git a/tests/data/acpi/q35/MCFG.tis b/tests/data/acpi/q35/MCFG.tis
new file mode 100644
index 0000000000000000000000000000000000000000..79ceb27a038c6e29d098b98dda2e229495f96b7c
GIT binary patch
literal 60
rcmeZuc5}C3U|?W;@8s|75v<@85#a0#6k`O6f!H7#32cC}|AS}%SE304

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/q35/MCFG.tis.dsl b/tests/data/acpi/q35/MCFG.tis.dsl
new file mode 100644
index 0000000000..0a92d698e9
--- /dev/null
+++ b/tests/data/acpi/q35/MCFG.tis.dsl
@@ -0,0 +1,36 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/MCFG.tis, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [MCFG]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "MCFG"    [Memory Mapped Configuration table]
+[004h 0004   4]                 Table Length : 0000003C
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : EF
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCMCFG"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   8]                     Reserved : 0000000000000000
+
+[02Ch 0044   8]                 Base Address : 00000000B0000000
+[034h 0052   2]         Segment Group Number : 0000
+[036h 0054   1]             Start Bus Number : 00
+[037h 0055   1]               End Bus Number : FF
+[038h 0056   4]                     Reserved : 00000000
+
+Raw Table Data: Length 60 (0x3C)
+
+    0000: 4D 43 46 47 3C 00 00 00 01 EF 42 4F 43 48 53 20  // MCFG<.....BOCHS 
+    0010: 42 58 50 43 4D 43 46 47 01 00 00 00 42 58 50 43  // BXPCMCFG....BXPC
+    0020: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 B0  // ................
+    0030: 00 00 00 00 00 00 00 FF 00 00 00 00              // ............
diff --git a/tests/data/acpi/q35/NFIT.dimmpxm.dsl b/tests/data/acpi/q35/NFIT.dimmpxm.dsl
new file mode 100644
index 0000000000..e29b770dca
--- /dev/null
+++ b/tests/data/acpi/q35/NFIT.dimmpxm.dsl
@@ -0,0 +1,115 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/NFIT.dimmpxm, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [NFIT]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "NFIT"    [NVDIMM Firmware Interface Table]
+[004h 0004   4]                 Table Length : 000000F0
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 24
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCNFIT"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]                     Reserved : 00000000
+
+[028h 0040   2]                Subtable Type : 0000 [System Physical Address Range]
+[02Ah 0042   2]                       Length : 0038
+
+[02Ch 0044   2]                  Range Index : 0004
+[02Eh 0046   2]        Flags (decoded below) : 0003
+                   Add/Online Operation Only : 1
+                      Proximity Domain Valid : 1
+[030h 0048   4]                     Reserved : 00000000
+[034h 0052   4]             Proximity Domain : 00000002
+[038h 0056  16]             Region Type GUID : 66F0D379-B4F3-4074-AC43-0D3318B78CDB
+[048h 0072   8]           Address Range Base : 0000000108000000
+[050h 0080   8]         Address Range Length : 0000000008000000
+[058h 0088   8]         Memory Map Attribute : 0000000000008008
+
+[060h 0096   2]                Subtable Type : 0001 [Memory Range Map]
+[062h 0098   2]                       Length : 0030
+
+[064h 0100   4]                Device Handle : 00000002
+[068h 0104   2]                  Physical Id : 0000
+[06Ah 0106   2]                    Region Id : 0000
+[06Ch 0108   2]                  Range Index : 0004
+[06Eh 0110   2]         Control Region Index : 0005
+[070h 0112   8]                  Region Size : 0000000008000000
+[078h 0120   8]                Region Offset : 0000000000000000
+[080h 0128   8]          Address Region Base : 0000000000000000
+[088h 0136   2]             Interleave Index : 0000
+[08Ah 0138   2]              Interleave Ways : 0001
+[08Ch 0140   2]                        Flags : 0000
+                       Save to device failed : 0
+                  Restore from device failed : 0
+                       Platform flush failed : 0
+                            Device not armed : 0
+                      Health events observed : 0
+                       Health events enabled : 0
+                              Mapping failed : 0
+[08Eh 0142   2]                     Reserved : 0000
+
+[090h 0144   2]                Subtable Type : 0004 [NVDIMM Control Region]
+[092h 0146   2]                       Length : 0050
+
+[094h 0148   2]                 Region Index : 0005
+[096h 0150   2]                    Vendor Id : 8086
+[098h 0152   2]                    Device Id : 0001
+[09Ah 0154   2]                  Revision Id : 0001
+[09Ch 0156   2]          Subsystem Vendor Id : 0000
+[09Eh 0158   2]          Subsystem Device Id : 0000
+[0A0h 0160   2]        Subsystem Revision Id : 0000
+[0A2h 0162   1]                 Valid Fields : 00
+[0A3h 0163   1]       Manufacturing Location : 00
+[0A4h 0164   2]           Manufacturing Date : 0000
+[0A6h 0166   2]                     Reserved : 0000
+[0A8h 0168   4]                Serial Number : 00123457
+[0ACh 0172   2]                         Code : 0301
+[0AEh 0174   2]                 Window Count : 0000
+[0B0h 0176   8]                  Window Size : 0000000000000000
+[0B8h 0184   8]               Command Offset : 0000000000000000
+[0C0h 0192   8]                 Command Size : 0000000000000000
+[0C8h 0200   8]                Status Offset : 0000000000000000
+[0D0h 0208   8]                  Status Size : 0000000000000000
+[0D8h 0216   2]                        Flags : 0000
+                            Windows buffered : 0
+[0DAh 0218   6]                    Reserved1 : 000000000000
+
+[0E0h 0224   2]                Subtable Type : 0007 [Platform Capabilities]
+[0E2h 0226   2]                       Length : 0010
+
+[0E4h 0228   1]           Highest Capability : 01
+[0E5h 0229   3]                     Reserved : 000000
+[0E8h 0232   4] Capabilities (decoded below) : 00000003
+                       Cache Flush to NVDIMM : 1
+                      Memory Flush to NVDIMM : 1
+                            Memory Mirroring : 0
+[0ECh 0236   4]                     Reserved : 00000000
+
+Raw Table Data: Length 240 (0xF0)
+
+    0000: 4E 46 49 54 F0 00 00 00 01 24 42 4F 43 48 53 20  // NFIT.....$BOCHS 
+    0010: 42 58 50 43 4E 46 49 54 01 00 00 00 42 58 50 43  // BXPCNFIT....BXPC
+    0020: 01 00 00 00 00 00 00 00 00 00 38 00 04 00 03 00  // ..........8.....
+    0030: 00 00 00 00 02 00 00 00 79 D3 F0 66 F3 B4 74 40  // ........y..f..t@
+    0040: AC 43 0D 33 18 B7 8C DB 00 00 00 08 01 00 00 00  // .C.3............
+    0050: 00 00 00 08 00 00 00 00 08 80 00 00 00 00 00 00  // ................
+    0060: 01 00 30 00 02 00 00 00 00 00 00 00 04 00 05 00  // ..0.............
+    0070: 00 00 00 08 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0080: 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00  // ................
+    0090: 04 00 50 00 05 00 86 80 01 00 01 00 00 00 00 00  // ..P.............
+    00A0: 00 00 00 00 00 00 00 00 57 34 12 00 01 03 00 00  // ........W4......
+    00B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00E0: 07 00 10 00 01 00 00 00 03 00 00 00 00 00 00 00  // ................
diff --git a/tests/data/acpi/q35/NFIT.dsl b/tests/data/acpi/q35/NFIT.dsl
new file mode 100644
index 0000000000..8da7718431
--- /dev/null
+++ b/tests/data/acpi/q35/NFIT.dsl
@@ -0,0 +1,115 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/NFIT.dimmpxm, Mon Sep 28 17:24:38 2020
+ *
+ * ACPI Data Table [NFIT]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "NFIT"    [NVDIMM Firmware Interface Table]
+[004h 0004   4]                 Table Length : 000000F0
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 24
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCNFIT"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]                     Reserved : 00000000
+
+[028h 0040   2]                Subtable Type : 0000 [System Physical Address Range]
+[02Ah 0042   2]                       Length : 0038
+
+[02Ch 0044   2]                  Range Index : 0004
+[02Eh 0046   2]        Flags (decoded below) : 0003
+                   Add/Online Operation Only : 1
+                      Proximity Domain Valid : 1
+[030h 0048   4]                     Reserved : 00000000
+[034h 0052   4]             Proximity Domain : 00000002
+[038h 0056  16]             Region Type GUID : 66F0D379-B4F3-4074-AC43-0D3318B78CDB
+[048h 0072   8]           Address Range Base : 0000000108000000
+[050h 0080   8]         Address Range Length : 0000000008000000
+[058h 0088   8]         Memory Map Attribute : 0000000000008008
+
+[060h 0096   2]                Subtable Type : 0001 [Memory Range Map]
+[062h 0098   2]                       Length : 0030
+
+[064h 0100   4]                Device Handle : 00000002
+[068h 0104   2]                  Physical Id : 0000
+[06Ah 0106   2]                    Region Id : 0000
+[06Ch 0108   2]                  Range Index : 0004
+[06Eh 0110   2]         Control Region Index : 0005
+[070h 0112   8]                  Region Size : 0000000008000000
+[078h 0120   8]                Region Offset : 0000000000000000
+[080h 0128   8]          Address Region Base : 0000000000000000
+[088h 0136   2]             Interleave Index : 0000
+[08Ah 0138   2]              Interleave Ways : 0001
+[08Ch 0140   2]                        Flags : 0000
+                       Save to device failed : 0
+                  Restore from device failed : 0
+                       Platform flush failed : 0
+                            Device not armed : 0
+                      Health events observed : 0
+                       Health events enabled : 0
+                              Mapping failed : 0
+[08Eh 0142   2]                     Reserved : 0000
+
+[090h 0144   2]                Subtable Type : 0004 [NVDIMM Control Region]
+[092h 0146   2]                       Length : 0050
+
+[094h 0148   2]                 Region Index : 0005
+[096h 0150   2]                    Vendor Id : 8086
+[098h 0152   2]                    Device Id : 0001
+[09Ah 0154   2]                  Revision Id : 0001
+[09Ch 0156   2]          Subsystem Vendor Id : 0000
+[09Eh 0158   2]          Subsystem Device Id : 0000
+[0A0h 0160   2]        Subsystem Revision Id : 0000
+[0A2h 0162   1]                 Valid Fields : 00
+[0A3h 0163   1]       Manufacturing Location : 00
+[0A4h 0164   2]           Manufacturing Date : 0000
+[0A6h 0166   2]                     Reserved : 0000
+[0A8h 0168   4]                Serial Number : 00123457
+[0ACh 0172   2]                         Code : 0301
+[0AEh 0174   2]                 Window Count : 0000
+[0B0h 0176   8]                  Window Size : 0000000000000000
+[0B8h 0184   8]               Command Offset : 0000000000000000
+[0C0h 0192   8]                 Command Size : 0000000000000000
+[0C8h 0200   8]                Status Offset : 0000000000000000
+[0D0h 0208   8]                  Status Size : 0000000000000000
+[0D8h 0216   2]                        Flags : 0000
+                            Windows buffered : 0
+[0DAh 0218   6]                    Reserved1 : 000000000000
+
+[0E0h 0224   2]                Subtable Type : 0007 [Platform Capabilities]
+[0E2h 0226   2]                       Length : 0010
+
+[0E4h 0228   1]           Highest Capability : 01
+[0E5h 0229   3]                     Reserved : 000000
+[0E8h 0232   4] Capabilities (decoded below) : 00000003
+                       Cache Flush to NVDIMM : 1
+                      Memory Flush to NVDIMM : 1
+                            Memory Mirroring : 0
+[0ECh 0236   4]                     Reserved : 00000000
+
+Raw Table Data: Length 240 (0xF0)
+
+    0000: 4E 46 49 54 F0 00 00 00 01 24 42 4F 43 48 53 20  // NFIT.....$BOCHS 
+    0010: 42 58 50 43 4E 46 49 54 01 00 00 00 42 58 50 43  // BXPCNFIT....BXPC
+    0020: 01 00 00 00 00 00 00 00 00 00 38 00 04 00 03 00  // ..........8.....
+    0030: 00 00 00 00 02 00 00 00 79 D3 F0 66 F3 B4 74 40  // ........y..f..t@
+    0040: AC 43 0D 33 18 B7 8C DB 00 00 00 08 01 00 00 00  // .C.3............
+    0050: 00 00 00 08 00 00 00 00 08 80 00 00 00 00 00 00  // ................
+    0060: 01 00 30 00 02 00 00 00 00 00 00 00 04 00 05 00  // ..0.............
+    0070: 00 00 00 08 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0080: 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00  // ................
+    0090: 04 00 50 00 05 00 86 80 01 00 01 00 00 00 00 00  // ..P.............
+    00A0: 00 00 00 00 00 00 00 00 57 34 12 00 01 03 00 00  // ........W4......
+    00B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00E0: 07 00 10 00 01 00 00 00 03 00 00 00 00 00 00 00  // ................
diff --git a/tests/data/acpi/q35/SLIT.cphp.dsl b/tests/data/acpi/q35/SLIT.cphp.dsl
new file mode 100644
index 0000000000..cb7347fbd4
--- /dev/null
+++ b/tests/data/acpi/q35/SLIT.cphp.dsl
@@ -0,0 +1,31 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/SLIT.cphp, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [SLIT]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "SLIT"    [System Locality Information Table]
+[004h 0004   4]                 Table Length : 00000030
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 2C
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCSLIT"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   8]                   Localities : 0000000000000002
+[02Ch 0044   2]                 Locality   0 : 0A 15
+[02Eh 0046   2]                 Locality   1 : 15 0A
+
+Raw Table Data: Length 48 (0x30)
+
+    0000: 53 4C 49 54 30 00 00 00 01 2C 42 4F 43 48 53 20  // SLIT0....,BOCHS 
+    0010: 42 58 50 43 53 4C 49 54 01 00 00 00 42 58 50 43  // BXPCSLIT....BXPC
+    0020: 01 00 00 00 02 00 00 00 00 00 00 00 0A 15 15 0A  // ................
diff --git a/tests/data/acpi/q35/SLIT.dsl b/tests/data/acpi/q35/SLIT.dsl
new file mode 100644
index 0000000000..89c381bdd0
--- /dev/null
+++ b/tests/data/acpi/q35/SLIT.dsl
@@ -0,0 +1,31 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/SLIT.memhp, Mon Sep 28 17:24:38 2020
+ *
+ * ACPI Data Table [SLIT]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "SLIT"    [System Locality Information Table]
+[004h 0004   4]                 Table Length : 00000030
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 2C
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCSLIT"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   8]                   Localities : 0000000000000002
+[02Ch 0044   2]                 Locality   0 : 0A 15
+[02Eh 0046   2]                 Locality   1 : 15 0A
+
+Raw Table Data: Length 48 (0x30)
+
+    0000: 53 4C 49 54 30 00 00 00 01 2C 42 4F 43 48 53 20  // SLIT0....,BOCHS 
+    0010: 42 58 50 43 53 4C 49 54 01 00 00 00 42 58 50 43  // BXPCSLIT....BXPC
+    0020: 01 00 00 00 02 00 00 00 00 00 00 00 0A 15 15 0A  // ................
diff --git a/tests/data/acpi/q35/SLIT.memhp.dsl b/tests/data/acpi/q35/SLIT.memhp.dsl
new file mode 100644
index 0000000000..70b233c0e6
--- /dev/null
+++ b/tests/data/acpi/q35/SLIT.memhp.dsl
@@ -0,0 +1,31 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/SLIT.memhp, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [SLIT]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "SLIT"    [System Locality Information Table]
+[004h 0004   4]                 Table Length : 00000030
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 2C
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCSLIT"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   8]                   Localities : 0000000000000002
+[02Ch 0044   2]                 Locality   0 : 0A 15
+[02Eh 0046   2]                 Locality   1 : 15 0A
+
+Raw Table Data: Length 48 (0x30)
+
+    0000: 53 4C 49 54 30 00 00 00 01 2C 42 4F 43 48 53 20  // SLIT0....,BOCHS 
+    0010: 42 58 50 43 53 4C 49 54 01 00 00 00 42 58 50 43  // BXPCSLIT....BXPC
+    0020: 01 00 00 00 02 00 00 00 00 00 00 00 0A 15 15 0A  // ................
diff --git a/tests/data/acpi/q35/SRAT.acpihmat.dsl b/tests/data/acpi/q35/SRAT.acpihmat.dsl
new file mode 100644
index 0000000000..8a1b47e6b0
--- /dev/null
+++ b/tests/data/acpi/q35/SRAT.acpihmat.dsl
@@ -0,0 +1,137 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/SRAT.acpihmat, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [SRAT]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "SRAT"    [System Resource Affinity Table]
+[004h 0004   4]                 Table Length : 00000118
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : C0
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCSRAT"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]               Table Revision : 00000001
+[028h 0040   8]                     Reserved : 0000000000000000
+
+[030h 0048   1]                Subtable Type : 00 [Processor Local APIC/SAPIC Affinity]
+[031h 0049   1]                       Length : 10
+
+[032h 0050   1]      Proximity Domain Low(8) : 00
+[033h 0051   1]                      Apic ID : 00
+[034h 0052   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+[038h 0056   1]              Local Sapic EID : 00
+[039h 0057   3]    Proximity Domain High(24) : 000000
+[03Ch 0060   4]                 Clock Domain : 00000000
+
+[040h 0064   1]                Subtable Type : 00 [Processor Local APIC/SAPIC Affinity]
+[041h 0065   1]                       Length : 10
+
+[042h 0066   1]      Proximity Domain Low(8) : 00
+[043h 0067   1]                      Apic ID : 01
+[044h 0068   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+[048h 0072   1]              Local Sapic EID : 00
+[049h 0073   3]    Proximity Domain High(24) : 000000
+[04Ch 0076   4]                 Clock Domain : 00000000
+
+[050h 0080   1]                Subtable Type : 01 [Memory Affinity]
+[051h 0081   1]                       Length : 28
+
+[052h 0082   4]             Proximity Domain : 00000000
+[056h 0086   2]                    Reserved1 : 0000
+[058h 0088   8]                 Base Address : 0000000000000000
+[060h 0096   8]               Address Length : 00000000000A0000
+[068h 0104   4]                    Reserved2 : 00000000
+[06Ch 0108   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[070h 0112   8]                    Reserved3 : 0000000000000000
+
+[078h 0120   1]                Subtable Type : 01 [Memory Affinity]
+[079h 0121   1]                       Length : 28
+
+[07Ah 0122   4]             Proximity Domain : 00000000
+[07Eh 0126   2]                    Reserved1 : 0000
+[080h 0128   8]                 Base Address : 0000000000100000
+[088h 0136   8]               Address Length : 0000000003F00000
+[090h 0144   4]                    Reserved2 : 00000000
+[094h 0148   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[098h 0152   8]                    Reserved3 : 0000000000000000
+
+[0A0h 0160   1]                Subtable Type : 01 [Memory Affinity]
+[0A1h 0161   1]                       Length : 28
+
+[0A2h 0162   4]             Proximity Domain : 00000001
+[0A6h 0166   2]                    Reserved1 : 0000
+[0A8h 0168   8]                 Base Address : 0000000004000000
+[0B0h 0176   8]               Address Length : 0000000004000000
+[0B8h 0184   4]                    Reserved2 : 00000000
+[0BCh 0188   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[0C0h 0192   8]                    Reserved3 : 0000000000000000
+
+[0C8h 0200   1]                Subtable Type : 01 [Memory Affinity]
+[0C9h 0201   1]                       Length : 28
+
+[0CAh 0202   4]             Proximity Domain : 00000000
+[0CEh 0206   2]                    Reserved1 : 0000
+[0D0h 0208   8]                 Base Address : 0000000000000000
+[0D8h 0216   8]               Address Length : 0000000000000000
+[0E0h 0224   4]                    Reserved2 : 00000000
+[0E4h 0228   4]        Flags (decoded below) : 00000000
+                                     Enabled : 0
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[0E8h 0232   8]                    Reserved3 : 0000000000000000
+
+[0F0h 0240   1]                Subtable Type : 01 [Memory Affinity]
+[0F1h 0241   1]                       Length : 28
+
+[0F2h 0242   4]             Proximity Domain : 00000001
+[0F6h 0246   2]                    Reserved1 : 0000
+[0F8h 0248   8]                 Base Address : 0000000100000000
+[100h 0256   8]               Address Length : 00000000B8000000
+[108h 0264   4]                    Reserved2 : 00000000
+[10Ch 0268   4]        Flags (decoded below) : 00000003
+                                     Enabled : 1
+                               Hot Pluggable : 1
+                                Non-Volatile : 0
+[110h 0272   8]                    Reserved3 : 0000000000000000
+
+Raw Table Data: Length 280 (0x118)
+
+    0000: 53 52 41 54 18 01 00 00 01 C0 42 4F 43 48 53 20  // SRAT......BOCHS 
+    0010: 42 58 50 43 53 52 41 54 01 00 00 00 42 58 50 43  // BXPCSRAT....BXPC
+    0020: 01 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0030: 00 10 00 00 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0040: 00 10 00 01 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0050: 01 28 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // .(..............
+    0060: 00 00 0A 00 00 00 00 00 00 00 00 00 01 00 00 00  // ................
+    0070: 00 00 00 00 00 00 00 00 01 28 00 00 00 00 00 00  // .........(......
+    0080: 00 00 10 00 00 00 00 00 00 00 F0 03 00 00 00 00  // ................
+    0090: 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00A0: 01 28 01 00 00 00 00 00 00 00 00 04 00 00 00 00  // .(..............
+    00B0: 00 00 00 04 00 00 00 00 00 00 00 00 01 00 00 00  // ................
+    00C0: 00 00 00 00 00 00 00 00 01 28 00 00 00 00 00 00  // .........(......
+    00D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00F0: 01 28 01 00 00 00 00 00 00 00 00 00 01 00 00 00  // .(..............
+    0100: 00 00 00 B8 00 00 00 00 00 00 00 00 03 00 00 00  // ................
+    0110: 00 00 00 00 00 00 00 00                          // ........
diff --git a/tests/data/acpi/q35/SRAT.cphp.dsl b/tests/data/acpi/q35/SRAT.cphp.dsl
new file mode 100644
index 0000000000..f0023db38d
--- /dev/null
+++ b/tests/data/acpi/q35/SRAT.cphp.dsl
@@ -0,0 +1,168 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/SRAT.cphp, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [SRAT]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "SRAT"    [System Resource Affinity Table]
+[004h 0004   4]                 Table Length : 00000130
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 36
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCSRAT"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]               Table Revision : 00000001
+[028h 0040   8]                     Reserved : 0000000000000000
+
+[030h 0048   1]                Subtable Type : 00 [Processor Local APIC/SAPIC Affinity]
+[031h 0049   1]                       Length : 10
+
+[032h 0050   1]      Proximity Domain Low(8) : 00
+[033h 0051   1]                      Apic ID : 00
+[034h 0052   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+[038h 0056   1]              Local Sapic EID : 00
+[039h 0057   3]    Proximity Domain High(24) : 000000
+[03Ch 0060   4]                 Clock Domain : 00000000
+
+[040h 0064   1]                Subtable Type : 00 [Processor Local APIC/SAPIC Affinity]
+[041h 0065   1]                       Length : 10
+
+[042h 0066   1]      Proximity Domain Low(8) : 00
+[043h 0067   1]                      Apic ID : 01
+[044h 0068   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+[048h 0072   1]              Local Sapic EID : 00
+[049h 0073   3]    Proximity Domain High(24) : 000000
+[04Ch 0076   4]                 Clock Domain : 00000000
+
+[050h 0080   1]                Subtable Type : 00 [Processor Local APIC/SAPIC Affinity]
+[051h 0081   1]                       Length : 10
+
+[052h 0082   1]      Proximity Domain Low(8) : 00
+[053h 0083   1]                      Apic ID : 02
+[054h 0084   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+[058h 0088   1]              Local Sapic EID : 00
+[059h 0089   3]    Proximity Domain High(24) : 000000
+[05Ch 0092   4]                 Clock Domain : 00000000
+
+[060h 0096   1]                Subtable Type : 00 [Processor Local APIC/SAPIC Affinity]
+[061h 0097   1]                       Length : 10
+
+[062h 0098   1]      Proximity Domain Low(8) : 01
+[063h 0099   1]                      Apic ID : 04
+[064h 0100   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+[068h 0104   1]              Local Sapic EID : 00
+[069h 0105   3]    Proximity Domain High(24) : 000000
+[06Ch 0108   4]                 Clock Domain : 00000000
+
+[070h 0112   1]                Subtable Type : 00 [Processor Local APIC/SAPIC Affinity]
+[071h 0113   1]                       Length : 10
+
+[072h 0114   1]      Proximity Domain Low(8) : 01
+[073h 0115   1]                      Apic ID : 05
+[074h 0116   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+[078h 0120   1]              Local Sapic EID : 00
+[079h 0121   3]    Proximity Domain High(24) : 000000
+[07Ch 0124   4]                 Clock Domain : 00000000
+
+[080h 0128   1]                Subtable Type : 00 [Processor Local APIC/SAPIC Affinity]
+[081h 0129   1]                       Length : 10
+
+[082h 0130   1]      Proximity Domain Low(8) : 01
+[083h 0131   1]                      Apic ID : 06
+[084h 0132   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+[088h 0136   1]              Local Sapic EID : 00
+[089h 0137   3]    Proximity Domain High(24) : 000000
+[08Ch 0140   4]                 Clock Domain : 00000000
+
+[090h 0144   1]                Subtable Type : 01 [Memory Affinity]
+[091h 0145   1]                       Length : 28
+
+[092h 0146   4]             Proximity Domain : 00000000
+[096h 0150   2]                    Reserved1 : 0000
+[098h 0152   8]                 Base Address : 0000000000000000
+[0A0h 0160   8]               Address Length : 00000000000A0000
+[0A8h 0168   4]                    Reserved2 : 00000000
+[0ACh 0172   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[0B0h 0176   8]                    Reserved3 : 0000000000000000
+
+[0B8h 0184   1]                Subtable Type : 01 [Memory Affinity]
+[0B9h 0185   1]                       Length : 28
+
+[0BAh 0186   4]             Proximity Domain : 00000000
+[0BEh 0190   2]                    Reserved1 : 0000
+[0C0h 0192   8]                 Base Address : 0000000000100000
+[0C8h 0200   8]               Address Length : 0000000003F00000
+[0D0h 0208   4]                    Reserved2 : 00000000
+[0D4h 0212   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[0D8h 0216   8]                    Reserved3 : 0000000000000000
+
+[0E0h 0224   1]                Subtable Type : 01 [Memory Affinity]
+[0E1h 0225   1]                       Length : 28
+
+[0E2h 0226   4]             Proximity Domain : 00000001
+[0E6h 0230   2]                    Reserved1 : 0000
+[0E8h 0232   8]                 Base Address : 0000000004000000
+[0F0h 0240   8]               Address Length : 0000000004000000
+[0F8h 0248   4]                    Reserved2 : 00000000
+[0FCh 0252   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[100h 0256   8]                    Reserved3 : 0000000000000000
+
+[108h 0264   1]                Subtable Type : 01 [Memory Affinity]
+[109h 0265   1]                       Length : 28
+
+[10Ah 0266   4]             Proximity Domain : 00000000
+[10Eh 0270   2]                    Reserved1 : 0000
+[110h 0272   8]                 Base Address : 0000000000000000
+[118h 0280   8]               Address Length : 0000000000000000
+[120h 0288   4]                    Reserved2 : 00000000
+[124h 0292   4]        Flags (decoded below) : 00000000
+                                     Enabled : 0
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[128h 0296   8]                    Reserved3 : 0000000000000000
+
+Raw Table Data: Length 304 (0x130)
+
+    0000: 53 52 41 54 30 01 00 00 01 36 42 4F 43 48 53 20  // SRAT0....6BOCHS 
+    0010: 42 58 50 43 53 52 41 54 01 00 00 00 42 58 50 43  // BXPCSRAT....BXPC
+    0020: 01 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0030: 00 10 00 00 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0040: 00 10 00 01 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0050: 00 10 00 02 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0060: 00 10 01 04 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0070: 00 10 01 05 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0080: 00 10 01 06 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0090: 01 28 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // .(..............
+    00A0: 00 00 0A 00 00 00 00 00 00 00 00 00 01 00 00 00  // ................
+    00B0: 00 00 00 00 00 00 00 00 01 28 00 00 00 00 00 00  // .........(......
+    00C0: 00 00 10 00 00 00 00 00 00 00 F0 03 00 00 00 00  // ................
+    00D0: 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00E0: 01 28 01 00 00 00 00 00 00 00 00 04 00 00 00 00  // .(..............
+    00F0: 00 00 00 04 00 00 00 00 00 00 00 00 01 00 00 00  // ................
+    0100: 00 00 00 00 00 00 00 00 01 28 00 00 00 00 00 00  // .........(......
+    0110: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0120: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
diff --git a/tests/data/acpi/q35/SRAT.dimmpxm.dsl b/tests/data/acpi/q35/SRAT.dimmpxm.dsl
new file mode 100644
index 0000000000..2cfe6994f5
--- /dev/null
+++ b/tests/data/acpi/q35/SRAT.dimmpxm.dsl
@@ -0,0 +1,194 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/SRAT.dimmpxm, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [SRAT]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "SRAT"    [System Resource Affinity Table]
+[004h 0004   4]                 Table Length : 00000188
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 68
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCSRAT"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]               Table Revision : 00000001
+[028h 0040   8]                     Reserved : 0000000000000000
+
+[030h 0048   1]                Subtable Type : 00 [Processor Local APIC/SAPIC Affinity]
+[031h 0049   1]                       Length : 10
+
+[032h 0050   1]      Proximity Domain Low(8) : 00
+[033h 0051   1]                      Apic ID : 00
+[034h 0052   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+[038h 0056   1]              Local Sapic EID : 00
+[039h 0057   3]    Proximity Domain High(24) : 000000
+[03Ch 0060   4]                 Clock Domain : 00000000
+
+[040h 0064   1]                Subtable Type : 00 [Processor Local APIC/SAPIC Affinity]
+[041h 0065   1]                       Length : 10
+
+[042h 0066   1]      Proximity Domain Low(8) : 01
+[043h 0067   1]                      Apic ID : 01
+[044h 0068   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+[048h 0072   1]              Local Sapic EID : 00
+[049h 0073   3]    Proximity Domain High(24) : 000000
+[04Ch 0076   4]                 Clock Domain : 00000000
+
+[050h 0080   1]                Subtable Type : 00 [Processor Local APIC/SAPIC Affinity]
+[051h 0081   1]                       Length : 10
+
+[052h 0082   1]      Proximity Domain Low(8) : 02
+[053h 0083   1]                      Apic ID : 02
+[054h 0084   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+[058h 0088   1]              Local Sapic EID : 00
+[059h 0089   3]    Proximity Domain High(24) : 000000
+[05Ch 0092   4]                 Clock Domain : 00000000
+
+[060h 0096   1]                Subtable Type : 00 [Processor Local APIC/SAPIC Affinity]
+[061h 0097   1]                       Length : 10
+
+[062h 0098   1]      Proximity Domain Low(8) : 03
+[063h 0099   1]                      Apic ID : 03
+[064h 0100   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+[068h 0104   1]              Local Sapic EID : 00
+[069h 0105   3]    Proximity Domain High(24) : 000000
+[06Ch 0108   4]                 Clock Domain : 00000000
+
+[070h 0112   1]                Subtable Type : 01 [Memory Affinity]
+[071h 0113   1]                       Length : 28
+
+[072h 0114   4]             Proximity Domain : 00000000
+[076h 0118   2]                    Reserved1 : 0000
+[078h 0120   8]                 Base Address : 0000000000000000
+[080h 0128   8]               Address Length : 00000000000A0000
+[088h 0136   4]                    Reserved2 : 00000000
+[08Ch 0140   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[090h 0144   8]                    Reserved3 : 0000000000000000
+
+[098h 0152   1]                Subtable Type : 01 [Memory Affinity]
+[099h 0153   1]                       Length : 28
+
+[09Ah 0154   4]             Proximity Domain : 00000000
+[09Eh 0158   2]                    Reserved1 : 0000
+[0A0h 0160   8]                 Base Address : 0000000000100000
+[0A8h 0168   8]               Address Length : 0000000001F00000
+[0B0h 0176   4]                    Reserved2 : 00000000
+[0B4h 0180   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[0B8h 0184   8]                    Reserved3 : 0000000000000000
+
+[0C0h 0192   1]                Subtable Type : 01 [Memory Affinity]
+[0C1h 0193   1]                       Length : 28
+
+[0C2h 0194   4]             Proximity Domain : 00000001
+[0C6h 0198   2]                    Reserved1 : 0000
+[0C8h 0200   8]                 Base Address : 0000000002000000
+[0D0h 0208   8]               Address Length : 0000000002000000
+[0D8h 0216   4]                    Reserved2 : 00000000
+[0DCh 0220   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[0E0h 0224   8]                    Reserved3 : 0000000000000000
+
+[0E8h 0232   1]                Subtable Type : 01 [Memory Affinity]
+[0E9h 0233   1]                       Length : 28
+
+[0EAh 0234   4]             Proximity Domain : 00000002
+[0EEh 0238   2]                    Reserved1 : 0000
+[0F0h 0240   8]                 Base Address : 0000000004000000
+[0F8h 0248   8]               Address Length : 0000000002000000
+[100h 0256   4]                    Reserved2 : 00000000
+[104h 0260   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[108h 0264   8]                    Reserved3 : 0000000000000000
+
+[110h 0272   1]                Subtable Type : 01 [Memory Affinity]
+[111h 0273   1]                       Length : 28
+
+[112h 0274   4]             Proximity Domain : 00000003
+[116h 0278   2]                    Reserved1 : 0000
+[118h 0280   8]                 Base Address : 0000000006000000
+[120h 0288   8]               Address Length : 0000000002000000
+[128h 0296   4]                    Reserved2 : 00000000
+[12Ch 0300   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[130h 0304   8]                    Reserved3 : 0000000000000000
+
+[138h 0312   1]                Subtable Type : 01 [Memory Affinity]
+[139h 0313   1]                       Length : 28
+
+[13Ah 0314   4]             Proximity Domain : 00000002
+[13Eh 0318   2]                    Reserved1 : 0000
+[140h 0320   8]                 Base Address : 0000000108000000
+[148h 0328   8]               Address Length : 0000000008000000
+[150h 0336   4]                    Reserved2 : 00000000
+[154h 0340   4]        Flags (decoded below) : 00000005
+                                     Enabled : 1
+                               Hot Pluggable : 0
+                                Non-Volatile : 1
+[158h 0344   8]                    Reserved3 : 0000000000000000
+
+[160h 0352   1]                Subtable Type : 01 [Memory Affinity]
+[161h 0353   1]                       Length : 28
+
+[162h 0354   4]             Proximity Domain : 00000003
+[166h 0358   2]                    Reserved1 : 0000
+[168h 0360   8]                 Base Address : 0000000100000000
+[170h 0368   8]               Address Length : 00000000F8000000
+[178h 0376   4]                    Reserved2 : 00000000
+[17Ch 0380   4]        Flags (decoded below) : 00000003
+                                     Enabled : 1
+                               Hot Pluggable : 1
+                                Non-Volatile : 0
+[180h 0384   8]                    Reserved3 : 0000000000000000
+
+Raw Table Data: Length 392 (0x188)
+
+    0000: 53 52 41 54 88 01 00 00 01 68 42 4F 43 48 53 20  // SRAT.....hBOCHS 
+    0010: 42 58 50 43 53 52 41 54 01 00 00 00 42 58 50 43  // BXPCSRAT....BXPC
+    0020: 01 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0030: 00 10 00 00 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0040: 00 10 01 01 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0050: 00 10 02 02 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0060: 00 10 03 03 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0070: 01 28 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // .(..............
+    0080: 00 00 0A 00 00 00 00 00 00 00 00 00 01 00 00 00  // ................
+    0090: 00 00 00 00 00 00 00 00 01 28 00 00 00 00 00 00  // .........(......
+    00A0: 00 00 10 00 00 00 00 00 00 00 F0 01 00 00 00 00  // ................
+    00B0: 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00C0: 01 28 01 00 00 00 00 00 00 00 00 02 00 00 00 00  // .(..............
+    00D0: 00 00 00 02 00 00 00 00 00 00 00 00 01 00 00 00  // ................
+    00E0: 00 00 00 00 00 00 00 00 01 28 02 00 00 00 00 00  // .........(......
+    00F0: 00 00 00 04 00 00 00 00 00 00 00 02 00 00 00 00  // ................
+    0100: 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0110: 01 28 03 00 00 00 00 00 00 00 00 06 00 00 00 00  // .(..............
+    0120: 00 00 00 02 00 00 00 00 00 00 00 00 01 00 00 00  // ................
+    0130: 00 00 00 00 00 00 00 00 01 28 02 00 00 00 00 00  // .........(......
+    0140: 00 00 00 08 01 00 00 00 00 00 00 08 00 00 00 00  // ................
+    0150: 00 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0160: 01 28 03 00 00 00 00 00 00 00 00 00 01 00 00 00  // .(..............
+    0170: 00 00 00 F8 00 00 00 00 00 00 00 00 03 00 00 00  // ................
+    0180: 00 00 00 00 00 00 00 00                          // ........
diff --git a/tests/data/acpi/q35/SRAT.dsl b/tests/data/acpi/q35/SRAT.dsl
new file mode 100644
index 0000000000..5f4278994e
--- /dev/null
+++ b/tests/data/acpi/q35/SRAT.dsl
@@ -0,0 +1,108 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/SRAT.numamem, Mon Sep 28 17:24:38 2020
+ *
+ * ACPI Data Table [SRAT]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "SRAT"    [System Resource Affinity Table]
+[004h 0004   4]                 Table Length : 000000E0
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : F5
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCSRAT"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]               Table Revision : 00000001
+[028h 0040   8]                     Reserved : 0000000000000000
+
+[030h 0048   1]                Subtable Type : 00 [Processor Local APIC/SAPIC Affinity]
+[031h 0049   1]                       Length : 10
+
+[032h 0050   1]      Proximity Domain Low(8) : 00
+[033h 0051   1]                      Apic ID : 00
+[034h 0052   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+[038h 0056   1]              Local Sapic EID : 00
+[039h 0057   3]    Proximity Domain High(24) : 000000
+[03Ch 0060   4]                 Clock Domain : 00000000
+
+[040h 0064   1]                Subtable Type : 01 [Memory Affinity]
+[041h 0065   1]                       Length : 28
+
+[042h 0066   4]             Proximity Domain : 00000001
+[046h 0070   2]                    Reserved1 : 0000
+[048h 0072   8]                 Base Address : 0000000000000000
+[050h 0080   8]               Address Length : 00000000000A0000
+[058h 0088   4]                    Reserved2 : 00000000
+[05Ch 0092   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[060h 0096   8]                    Reserved3 : 0000000000000000
+
+[068h 0104   1]                Subtable Type : 01 [Memory Affinity]
+[069h 0105   1]                       Length : 28
+
+[06Ah 0106   4]             Proximity Domain : 00000001
+[06Eh 0110   2]                    Reserved1 : 0000
+[070h 0112   8]                 Base Address : 0000000000100000
+[078h 0120   8]               Address Length : 0000000007F00000
+[080h 0128   4]                    Reserved2 : 00000000
+[084h 0132   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[088h 0136   8]                    Reserved3 : 0000000000000000
+
+[090h 0144   1]                Subtable Type : 01 [Memory Affinity]
+[091h 0145   1]                       Length : 28
+
+[092h 0146   4]             Proximity Domain : 00000000
+[096h 0150   2]                    Reserved1 : 0000
+[098h 0152   8]                 Base Address : 0000000000000000
+[0A0h 0160   8]               Address Length : 0000000000000000
+[0A8h 0168   4]                    Reserved2 : 00000000
+[0ACh 0172   4]        Flags (decoded below) : 00000000
+                                     Enabled : 0
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[0B0h 0176   8]                    Reserved3 : 0000000000000000
+
+[0B8h 0184   1]                Subtable Type : 01 [Memory Affinity]
+[0B9h 0185   1]                       Length : 28
+
+[0BAh 0186   4]             Proximity Domain : 00000000
+[0BEh 0190   2]                    Reserved1 : 0000
+[0C0h 0192   8]                 Base Address : 0000000000000000
+[0C8h 0200   8]               Address Length : 0000000000000000
+[0D0h 0208   4]                    Reserved2 : 00000000
+[0D4h 0212   4]        Flags (decoded below) : 00000000
+                                     Enabled : 0
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[0D8h 0216   8]                    Reserved3 : 0000000000000000
+
+Raw Table Data: Length 224 (0xE0)
+
+    0000: 53 52 41 54 E0 00 00 00 01 F5 42 4F 43 48 53 20  // SRAT......BOCHS 
+    0010: 42 58 50 43 53 52 41 54 01 00 00 00 42 58 50 43  // BXPCSRAT....BXPC
+    0020: 01 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0030: 00 10 00 00 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0040: 01 28 01 00 00 00 00 00 00 00 00 00 00 00 00 00  // .(..............
+    0050: 00 00 0A 00 00 00 00 00 00 00 00 00 01 00 00 00  // ................
+    0060: 00 00 00 00 00 00 00 00 01 28 01 00 00 00 00 00  // .........(......
+    0070: 00 00 10 00 00 00 00 00 00 00 F0 07 00 00 00 00  // ................
+    0080: 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0090: 01 28 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // .(..............
+    00A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00B0: 00 00 00 00 00 00 00 00 01 28 00 00 00 00 00 00  // .........(......
+    00C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
diff --git a/tests/data/acpi/q35/SRAT.memhp.dsl b/tests/data/acpi/q35/SRAT.memhp.dsl
new file mode 100644
index 0000000000..a5f27214eb
--- /dev/null
+++ b/tests/data/acpi/q35/SRAT.memhp.dsl
@@ -0,0 +1,125 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/SRAT.memhp, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [SRAT]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "SRAT"    [System Resource Affinity Table]
+[004h 0004   4]                 Table Length : 00000108
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : A2
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCSRAT"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]               Table Revision : 00000001
+[028h 0040   8]                     Reserved : 0000000000000000
+
+[030h 0048   1]                Subtable Type : 00 [Processor Local APIC/SAPIC Affinity]
+[031h 0049   1]                       Length : 10
+
+[032h 0050   1]      Proximity Domain Low(8) : 00
+[033h 0051   1]                      Apic ID : 00
+[034h 0052   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+[038h 0056   1]              Local Sapic EID : 00
+[039h 0057   3]    Proximity Domain High(24) : 000000
+[03Ch 0060   4]                 Clock Domain : 00000000
+
+[040h 0064   1]                Subtable Type : 01 [Memory Affinity]
+[041h 0065   1]                       Length : 28
+
+[042h 0066   4]             Proximity Domain : 00000000
+[046h 0070   2]                    Reserved1 : 0000
+[048h 0072   8]                 Base Address : 0000000000000000
+[050h 0080   8]               Address Length : 00000000000A0000
+[058h 0088   4]                    Reserved2 : 00000000
+[05Ch 0092   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[060h 0096   8]                    Reserved3 : 0000000000000000
+
+[068h 0104   1]                Subtable Type : 01 [Memory Affinity]
+[069h 0105   1]                       Length : 28
+
+[06Ah 0106   4]             Proximity Domain : 00000000
+[06Eh 0110   2]                    Reserved1 : 0000
+[070h 0112   8]                 Base Address : 0000000000100000
+[078h 0120   8]               Address Length : 0000000003F00000
+[080h 0128   4]                    Reserved2 : 00000000
+[084h 0132   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[088h 0136   8]                    Reserved3 : 0000000000000000
+
+[090h 0144   1]                Subtable Type : 01 [Memory Affinity]
+[091h 0145   1]                       Length : 28
+
+[092h 0146   4]             Proximity Domain : 00000001
+[096h 0150   2]                    Reserved1 : 0000
+[098h 0152   8]                 Base Address : 0000000004000000
+[0A0h 0160   8]               Address Length : 0000000004000000
+[0A8h 0168   4]                    Reserved2 : 00000000
+[0ACh 0172   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[0B0h 0176   8]                    Reserved3 : 0000000000000000
+
+[0B8h 0184   1]                Subtable Type : 01 [Memory Affinity]
+[0B9h 0185   1]                       Length : 28
+
+[0BAh 0186   4]             Proximity Domain : 00000000
+[0BEh 0190   2]                    Reserved1 : 0000
+[0C0h 0192   8]                 Base Address : 0000000000000000
+[0C8h 0200   8]               Address Length : 0000000000000000
+[0D0h 0208   4]                    Reserved2 : 00000000
+[0D4h 0212   4]        Flags (decoded below) : 00000000
+                                     Enabled : 0
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[0D8h 0216   8]                    Reserved3 : 0000000000000000
+
+[0E0h 0224   1]                Subtable Type : 01 [Memory Affinity]
+[0E1h 0225   1]                       Length : 28
+
+[0E2h 0226   4]             Proximity Domain : 00000001
+[0E6h 0230   2]                    Reserved1 : 0000
+[0E8h 0232   8]                 Base Address : 0000000100000000
+[0F0h 0240   8]               Address Length : 00000000F8000000
+[0F8h 0248   4]                    Reserved2 : 00000000
+[0FCh 0252   4]        Flags (decoded below) : 00000003
+                                     Enabled : 1
+                               Hot Pluggable : 1
+                                Non-Volatile : 0
+[100h 0256   8]                    Reserved3 : 0000000000000000
+
+Raw Table Data: Length 264 (0x108)
+
+    0000: 53 52 41 54 08 01 00 00 01 A2 42 4F 43 48 53 20  // SRAT......BOCHS 
+    0010: 42 58 50 43 53 52 41 54 01 00 00 00 42 58 50 43  // BXPCSRAT....BXPC
+    0020: 01 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0030: 00 10 00 00 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0040: 01 28 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // .(..............
+    0050: 00 00 0A 00 00 00 00 00 00 00 00 00 01 00 00 00  // ................
+    0060: 00 00 00 00 00 00 00 00 01 28 00 00 00 00 00 00  // .........(......
+    0070: 00 00 10 00 00 00 00 00 00 00 F0 03 00 00 00 00  // ................
+    0080: 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0090: 01 28 01 00 00 00 00 00 00 00 00 04 00 00 00 00  // .(..............
+    00A0: 00 00 00 04 00 00 00 00 00 00 00 00 01 00 00 00  // ................
+    00B0: 00 00 00 00 00 00 00 00 01 28 00 00 00 00 00 00  // .........(......
+    00C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00E0: 01 28 01 00 00 00 00 00 00 00 00 00 01 00 00 00  // .(..............
+    00F0: 00 00 00 F8 00 00 00 00 00 00 00 00 03 00 00 00  // ................
+    0100: 00 00 00 00 00 00 00 00                          // ........
diff --git a/tests/data/acpi/q35/SRAT.mmio64.dsl b/tests/data/acpi/q35/SRAT.mmio64.dsl
new file mode 100644
index 0000000000..0065c21de4
--- /dev/null
+++ b/tests/data/acpi/q35/SRAT.mmio64.dsl
@@ -0,0 +1,108 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/SRAT.mmio64, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [SRAT]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "SRAT"    [System Resource Affinity Table]
+[004h 0004   4]                 Table Length : 000000E0
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 3B
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCSRAT"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]               Table Revision : 00000001
+[028h 0040   8]                     Reserved : 0000000000000000
+
+[030h 0048   1]                Subtable Type : 00 [Processor Local APIC/SAPIC Affinity]
+[031h 0049   1]                       Length : 10
+
+[032h 0050   1]      Proximity Domain Low(8) : 00
+[033h 0051   1]                      Apic ID : 00
+[034h 0052   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+[038h 0056   1]              Local Sapic EID : 00
+[039h 0057   3]    Proximity Domain High(24) : 000000
+[03Ch 0060   4]                 Clock Domain : 00000000
+
+[040h 0064   1]                Subtable Type : 01 [Memory Affinity]
+[041h 0065   1]                       Length : 28
+
+[042h 0066   4]             Proximity Domain : 00000000
+[046h 0070   2]                    Reserved1 : 0000
+[048h 0072   8]                 Base Address : 0000000000000000
+[050h 0080   8]               Address Length : 00000000000A0000
+[058h 0088   4]                    Reserved2 : 00000000
+[05Ch 0092   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[060h 0096   8]                    Reserved3 : 0000000000000000
+
+[068h 0104   1]                Subtable Type : 01 [Memory Affinity]
+[069h 0105   1]                       Length : 28
+
+[06Ah 0106   4]             Proximity Domain : 00000000
+[06Eh 0110   2]                    Reserved1 : 0000
+[070h 0112   8]                 Base Address : 0000000000100000
+[078h 0120   8]               Address Length : 0000000007F00000
+[080h 0128   4]                    Reserved2 : 00000000
+[084h 0132   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[088h 0136   8]                    Reserved3 : 0000000000000000
+
+[090h 0144   1]                Subtable Type : 01 [Memory Affinity]
+[091h 0145   1]                       Length : 28
+
+[092h 0146   4]             Proximity Domain : 00000000
+[096h 0150   2]                    Reserved1 : 0000
+[098h 0152   8]                 Base Address : 0000000000000000
+[0A0h 0160   8]               Address Length : 0000000000000000
+[0A8h 0168   4]                    Reserved2 : 00000000
+[0ACh 0172   4]        Flags (decoded below) : 00000000
+                                     Enabled : 0
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[0B0h 0176   8]                    Reserved3 : 0000000000000000
+
+[0B8h 0184   1]                Subtable Type : 01 [Memory Affinity]
+[0B9h 0185   1]                       Length : 28
+
+[0BAh 0186   4]             Proximity Domain : 00000000
+[0BEh 0190   2]                    Reserved1 : 0000
+[0C0h 0192   8]                 Base Address : 0000000100000000
+[0C8h 0200   8]               Address Length : 00000000B8000000
+[0D0h 0208   4]                    Reserved2 : 00000000
+[0D4h 0212   4]        Flags (decoded below) : 00000003
+                                     Enabled : 1
+                               Hot Pluggable : 1
+                                Non-Volatile : 0
+[0D8h 0216   8]                    Reserved3 : 0000000000000000
+
+Raw Table Data: Length 224 (0xE0)
+
+    0000: 53 52 41 54 E0 00 00 00 01 3B 42 4F 43 48 53 20  // SRAT.....;BOCHS 
+    0010: 42 58 50 43 53 52 41 54 01 00 00 00 42 58 50 43  // BXPCSRAT....BXPC
+    0020: 01 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0030: 00 10 00 00 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0040: 01 28 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // .(..............
+    0050: 00 00 0A 00 00 00 00 00 00 00 00 00 01 00 00 00  // ................
+    0060: 00 00 00 00 00 00 00 00 01 28 00 00 00 00 00 00  // .........(......
+    0070: 00 00 10 00 00 00 00 00 00 00 F0 07 00 00 00 00  // ................
+    0080: 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0090: 01 28 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // .(..............
+    00A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00B0: 00 00 00 00 00 00 00 00 01 28 00 00 00 00 00 00  // .........(......
+    00C0: 00 00 00 00 01 00 00 00 00 00 00 B8 00 00 00 00  // ................
+    00D0: 00 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00  // ................
diff --git a/tests/data/acpi/q35/SRAT.numamem.dsl b/tests/data/acpi/q35/SRAT.numamem.dsl
new file mode 100644
index 0000000000..e8de953ae2
--- /dev/null
+++ b/tests/data/acpi/q35/SRAT.numamem.dsl
@@ -0,0 +1,108 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/SRAT.numamem, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [SRAT]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "SRAT"    [System Resource Affinity Table]
+[004h 0004   4]                 Table Length : 000000E0
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : F5
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCSRAT"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]               Table Revision : 00000001
+[028h 0040   8]                     Reserved : 0000000000000000
+
+[030h 0048   1]                Subtable Type : 00 [Processor Local APIC/SAPIC Affinity]
+[031h 0049   1]                       Length : 10
+
+[032h 0050   1]      Proximity Domain Low(8) : 00
+[033h 0051   1]                      Apic ID : 00
+[034h 0052   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+[038h 0056   1]              Local Sapic EID : 00
+[039h 0057   3]    Proximity Domain High(24) : 000000
+[03Ch 0060   4]                 Clock Domain : 00000000
+
+[040h 0064   1]                Subtable Type : 01 [Memory Affinity]
+[041h 0065   1]                       Length : 28
+
+[042h 0066   4]             Proximity Domain : 00000001
+[046h 0070   2]                    Reserved1 : 0000
+[048h 0072   8]                 Base Address : 0000000000000000
+[050h 0080   8]               Address Length : 00000000000A0000
+[058h 0088   4]                    Reserved2 : 00000000
+[05Ch 0092   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[060h 0096   8]                    Reserved3 : 0000000000000000
+
+[068h 0104   1]                Subtable Type : 01 [Memory Affinity]
+[069h 0105   1]                       Length : 28
+
+[06Ah 0106   4]             Proximity Domain : 00000001
+[06Eh 0110   2]                    Reserved1 : 0000
+[070h 0112   8]                 Base Address : 0000000000100000
+[078h 0120   8]               Address Length : 0000000007F00000
+[080h 0128   4]                    Reserved2 : 00000000
+[084h 0132   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[088h 0136   8]                    Reserved3 : 0000000000000000
+
+[090h 0144   1]                Subtable Type : 01 [Memory Affinity]
+[091h 0145   1]                       Length : 28
+
+[092h 0146   4]             Proximity Domain : 00000000
+[096h 0150   2]                    Reserved1 : 0000
+[098h 0152   8]                 Base Address : 0000000000000000
+[0A0h 0160   8]               Address Length : 0000000000000000
+[0A8h 0168   4]                    Reserved2 : 00000000
+[0ACh 0172   4]        Flags (decoded below) : 00000000
+                                     Enabled : 0
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[0B0h 0176   8]                    Reserved3 : 0000000000000000
+
+[0B8h 0184   1]                Subtable Type : 01 [Memory Affinity]
+[0B9h 0185   1]                       Length : 28
+
+[0BAh 0186   4]             Proximity Domain : 00000000
+[0BEh 0190   2]                    Reserved1 : 0000
+[0C0h 0192   8]                 Base Address : 0000000000000000
+[0C8h 0200   8]               Address Length : 0000000000000000
+[0D0h 0208   4]                    Reserved2 : 00000000
+[0D4h 0212   4]        Flags (decoded below) : 00000000
+                                     Enabled : 0
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[0D8h 0216   8]                    Reserved3 : 0000000000000000
+
+Raw Table Data: Length 224 (0xE0)
+
+    0000: 53 52 41 54 E0 00 00 00 01 F5 42 4F 43 48 53 20  // SRAT......BOCHS 
+    0010: 42 58 50 43 53 52 41 54 01 00 00 00 42 58 50 43  // BXPCSRAT....BXPC
+    0020: 01 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0030: 00 10 00 00 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0040: 01 28 01 00 00 00 00 00 00 00 00 00 00 00 00 00  // .(..............
+    0050: 00 00 0A 00 00 00 00 00 00 00 00 00 01 00 00 00  // ................
+    0060: 00 00 00 00 00 00 00 00 01 28 01 00 00 00 00 00  // .........(......
+    0070: 00 00 10 00 00 00 00 00 00 00 F0 07 00 00 00 00  // ................
+    0080: 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0090: 01 28 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // .(..............
+    00A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00B0: 00 00 00 00 00 00 00 00 01 28 00 00 00 00 00 00  // .........(......
+    00C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
diff --git a/tests/data/acpi/q35/SSDT.dsl b/tests/data/acpi/q35/SSDT.dsl
new file mode 100644
index 0000000000..49df22f93d
--- /dev/null
+++ b/tests/data/acpi/q35/SSDT.dsl
@@ -0,0 +1,205 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembling to symbolic ASL+ operators
+ *
+ * Disassembly of tests/data/acpi/q35/SSDT.dimmpxm, Mon Sep 28 17:24:38 2020
+ *
+ * Original Table Header:
+ *     Signature        "SSDT"
+ *     Length           0x000002DE (734)
+ *     Revision         0x01
+ *     Checksum         0x46
+ *     OEM ID           "BOCHS "
+ *     OEM Table ID     "NVDIMM"
+ *     OEM Revision     0x00000001 (1)
+ *     Compiler ID      "BXPC"
+ *     Compiler Version 0x00000001 (1)
+ */
+DefinitionBlock ("", "SSDT", 1, "BOCHS ", "NVDIMM", 0x00000001)
+{
+    Scope (\_SB)
+    {
+        Device (NVDR)
+        {
+            Name (_HID, "ACPI0012" /* NVDIMM Root Device */)  // _HID: Hardware ID
+            Method (NCAL, 5, Serialized)
+            {
+                Local6 = MEMA /* \MEMA */
+                OperationRegion (NPIO, SystemIO, 0x0A18, 0x04)
+                OperationRegion (NRAM, SystemMemory, Local6, 0x1000)
+                Field (NPIO, DWordAcc, NoLock, Preserve)
+                {
+                    NTFI,   32
+                }
+
+                Field (NRAM, DWordAcc, NoLock, Preserve)
+                {
+                    HDLE,   32, 
+                    REVS,   32, 
+                    FUNC,   32, 
+                    FARG,   32672
+                }
+
+                Field (NRAM, DWordAcc, NoLock, Preserve)
+                {
+                    RLEN,   32, 
+                    ODAT,   32736
+                }
+
+                If ((Arg4 == Zero))
+                {
+                    Local0 = ToUUID ("2f10e7a4-9e91-11e4-89d3-123b93f75cba")
+                }
+                ElseIf ((Arg4 == 0x00010000))
+                {
+                    Local0 = ToUUID ("648b9cf2-cda1-4312-8ad9-49c4af32bd62")
+                }
+                Else
+                {
+                    Local0 = ToUUID ("4309ac30-0d11-11e4-9191-0800200c9a66")
+                }
+
+                If (((Local6 == Zero) | (Arg0 != Local0)))
+                {
+                    If ((Arg2 == Zero))
+                    {
+                        Return (Buffer (One)
+                        {
+                             0x00                                             // .
+                        })
+                    }
+
+                    Return (Buffer (One)
+                    {
+                         0x01                                             // .
+                    })
+                }
+
+                HDLE = Arg4
+                REVS = Arg1
+                FUNC = Arg2
+                If (((ObjectType (Arg3) == 0x04) & (SizeOf (Arg3) == One)))
+                {
+                    Local2 = Arg3 [Zero]
+                    Local3 = DerefOf (Local2)
+                    FARG = Local3
+                }
+
+                NTFI = Local6
+                Local1 = (RLEN - 0x04)
+                If ((Local1 < 0x08))
+                {
+                    Local2 = Zero
+                    Name (TBUF, Buffer (One)
+                    {
+                         0x00                                             // .
+                    })
+                    Local7 = Buffer (Zero){}
+                    While ((Local2 < Local1))
+                    {
+                        TBUF [Zero] = DerefOf (ODAT [Local2])
+                        Concatenate (Local7, TBUF, Local7)
+                        Local2++
+                    }
+
+                    Return (Local7)
+                }
+
+                Local1 = (Local1 << 0x03)
+                CreateField (ODAT, Zero, Local1, OBUF)
+                Return (OBUF) /* \_SB_.NVDR.NCAL.OBUF */
+            }
+
+            Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
+            {
+                Return (NCAL (Arg0, Arg1, Arg2, Arg3, Zero))
+            }
+
+            Name (RSTA, Zero)
+            Method (RFIT, 1, Serialized)
+            {
+                Name (OFST, Zero)
+                OFST = Arg0
+                Local0 = NCAL (ToUUID ("648b9cf2-cda1-4312-8ad9-49c4af32bd62"), One, One, Package (0x01)
+                        {
+                            OFST
+                        }, 0x00010000)
+                CreateDWordField (Local0, Zero, STAU)
+                RSTA = STAU /* \_SB_.NVDR.RFIT.STAU */
+                If ((Zero != STAU))
+                {
+                    Return (Buffer (Zero){})
+                }
+
+                Local1 = SizeOf (Local0)
+                Local1 -= 0x04
+                If ((Local1 == Zero))
+                {
+                    Return (Buffer (Zero){})
+                }
+
+                CreateField (Local0, 0x20, (Local1 << 0x03), BUFF)
+                Return (BUFF) /* \_SB_.NVDR.RFIT.BUFF */
+            }
+
+            Method (_FIT, 0, Serialized)  // _FIT: Firmware Interface Table
+            {
+                Local2 = Buffer (Zero){}
+                Local3 = Zero
+                While (One)
+                {
+                    Local0 = RFIT (Local3)
+                    Local1 = SizeOf (Local0)
+                    If ((RSTA == 0x0100))
+                    {
+                        Local2 = Buffer (Zero){}
+                        Local3 = Zero
+                    }
+                    Else
+                    {
+                        If ((Local1 == Zero))
+                        {
+                            Return (Local2)
+                        }
+
+                        Local3 += Local1
+                        Concatenate (Local2, Local0, Local2)
+                    }
+                }
+            }
+
+            Device (NV00)
+            {
+                Name (_ADR, One)  // _ADR: Address
+                Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
+                {
+                    Return (NCAL (Arg0, Arg1, Arg2, Arg3, One))
+                }
+            }
+
+            Device (NV01)
+            {
+                Name (_ADR, 0x02)  // _ADR: Address
+                Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
+                {
+                    Return (NCAL (Arg0, Arg1, Arg2, Arg3, 0x02))
+                }
+            }
+
+            Device (NV02)
+            {
+                Name (_ADR, 0x03)  // _ADR: Address
+                Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
+                {
+                    Return (NCAL (Arg0, Arg1, Arg2, Arg3, 0x03))
+                }
+            }
+        }
+    }
+
+    Name (MEMA, 0x07FFF000)
+}
+
diff --git a/tests/data/acpi/q35/TPM2.dsl b/tests/data/acpi/q35/TPM2.dsl
new file mode 100644
index 0000000000..8568152ccf
--- /dev/null
+++ b/tests/data/acpi/q35/TPM2.dsl
@@ -0,0 +1,38 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/TPM2.tis, Mon Sep 28 17:24:38 2020
+ *
+ * ACPI Data Table [TPM2]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "TPM2"    [Trusted Platform Module hardware interface table]
+[004h 0004   4]                 Table Length : 0000004C
+[008h 0008   1]                     Revision : 04
+[009h 0009   1]                     Checksum : 72
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCTPM2"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   2]               Platform Class : 0000
+[026h 0038   2]                     Reserved : 0000
+[028h 0040   8]              Control Address : 0000000000000000
+[030h 0048   4]                 Start Method : 06 [Memory Mapped I/O]
+
+[034h 0052  12]            Method Parameters : 00 00 00 00 00 00 00 00 00 00 00 00
+[040h 0064   4]           Minimum Log Length : 00010000
+[044h 0068   8]                  Log Address : 0000000007FF0000
+
+Raw Table Data: Length 76 (0x4C)
+
+    0000: 54 50 4D 32 4C 00 00 00 04 72 42 4F 43 48 53 20  // TPM2L....rBOCHS 
+    0010: 42 58 50 43 54 50 4D 32 01 00 00 00 42 58 50 43  // BXPCTPM2....BXPC
+    0020: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0030: 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0040: 00 00 01 00 00 00 FF 07 00 00 00 00              // ............
diff --git a/tests/data/acpi/q35/TPM2.tis.dsl b/tests/data/acpi/q35/TPM2.tis.dsl
new file mode 100644
index 0000000000..420643ab2b
--- /dev/null
+++ b/tests/data/acpi/q35/TPM2.tis.dsl
@@ -0,0 +1,38 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/TPM2.tis, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [TPM2]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "TPM2"    [Trusted Platform Module hardware interface table]
+[004h 0004   4]                 Table Length : 0000004C
+[008h 0008   1]                     Revision : 04
+[009h 0009   1]                     Checksum : 72
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCTPM2"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   2]               Platform Class : 0000
+[026h 0038   2]                     Reserved : 0000
+[028h 0040   8]              Control Address : 0000000000000000
+[030h 0048   4]                 Start Method : 06 [Memory Mapped I/O]
+
+[034h 0052  12]            Method Parameters : 00 00 00 00 00 00 00 00 00 00 00 00
+[040h 0064   4]           Minimum Log Length : 00010000
+[044h 0068   8]                  Log Address : 0000000007FF0000
+
+Raw Table Data: Length 76 (0x4C)
+
+    0000: 54 50 4D 32 4C 00 00 00 04 72 42 4F 43 48 53 20  // TPM2L....rBOCHS 
+    0010: 42 58 50 43 54 50 4D 32 01 00 00 00 42 58 50 43  // BXPCTPM2....BXPC
+    0020: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0030: 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0040: 00 00 01 00 00 00 FF 07 00 00 00 00              // ............
diff --git a/tests/data/acpi/q35/WAET.acpihmat b/tests/data/acpi/q35/WAET.acpihmat
new file mode 100644
index 0000000000000000000000000000000000000000..c2240f58dff6b2f765386b5a2e506fda4800be3e
GIT binary patch
literal 40
mcmWG{bPds9U|?YEaPoKd2v%^42yhMuiZKGkKx`1r1jGQWX$JuS

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/q35/WAET.acpihmat.dsl b/tests/data/acpi/q35/WAET.acpihmat.dsl
new file mode 100644
index 0000000000..12a4fced5c
--- /dev/null
+++ b/tests/data/acpi/q35/WAET.acpihmat.dsl
@@ -0,0 +1,31 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/WAET.acpihmat, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [WAET]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "WAET"    [Windows ACPI Emulated Devices Table]
+[004h 0004   4]                 Table Length : 00000028
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 88
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCWAET"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]        Flags (decoded below) : 00000002
+                        RTC needs no INT ack : 0
+                     PM timer, one read only : 1
+
+Raw Table Data: Length 40 (0x28)
+
+    0000: 57 41 45 54 28 00 00 00 01 88 42 4F 43 48 53 20  // WAET(.....BOCHS 
+    0010: 42 58 50 43 57 41 45 54 01 00 00 00 42 58 50 43  // BXPCWAET....BXPC
+    0020: 01 00 00 00 02 00 00 00                          // ........
diff --git a/tests/data/acpi/q35/WAET.bridge b/tests/data/acpi/q35/WAET.bridge
new file mode 100644
index 0000000000000000000000000000000000000000..c2240f58dff6b2f765386b5a2e506fda4800be3e
GIT binary patch
literal 40
mcmWG{bPds9U|?YEaPoKd2v%^42yhMuiZKGkKx`1r1jGQWX$JuS

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/q35/WAET.bridge.dsl b/tests/data/acpi/q35/WAET.bridge.dsl
new file mode 100644
index 0000000000..48effe4c6e
--- /dev/null
+++ b/tests/data/acpi/q35/WAET.bridge.dsl
@@ -0,0 +1,31 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/WAET.bridge, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [WAET]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "WAET"    [Windows ACPI Emulated Devices Table]
+[004h 0004   4]                 Table Length : 00000028
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 88
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCWAET"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]        Flags (decoded below) : 00000002
+                        RTC needs no INT ack : 0
+                     PM timer, one read only : 1
+
+Raw Table Data: Length 40 (0x28)
+
+    0000: 57 41 45 54 28 00 00 00 01 88 42 4F 43 48 53 20  // WAET(.....BOCHS 
+    0010: 42 58 50 43 57 41 45 54 01 00 00 00 42 58 50 43  // BXPCWAET....BXPC
+    0020: 01 00 00 00 02 00 00 00                          // ........
diff --git a/tests/data/acpi/q35/WAET.cphp b/tests/data/acpi/q35/WAET.cphp
new file mode 100644
index 0000000000000000000000000000000000000000..c2240f58dff6b2f765386b5a2e506fda4800be3e
GIT binary patch
literal 40
mcmWG{bPds9U|?YEaPoKd2v%^42yhMuiZKGkKx`1r1jGQWX$JuS

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/q35/WAET.cphp.dsl b/tests/data/acpi/q35/WAET.cphp.dsl
new file mode 100644
index 0000000000..aadebd53e8
--- /dev/null
+++ b/tests/data/acpi/q35/WAET.cphp.dsl
@@ -0,0 +1,31 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/WAET.cphp, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [WAET]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "WAET"    [Windows ACPI Emulated Devices Table]
+[004h 0004   4]                 Table Length : 00000028
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 88
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCWAET"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]        Flags (decoded below) : 00000002
+                        RTC needs no INT ack : 0
+                     PM timer, one read only : 1
+
+Raw Table Data: Length 40 (0x28)
+
+    0000: 57 41 45 54 28 00 00 00 01 88 42 4F 43 48 53 20  // WAET(.....BOCHS 
+    0010: 42 58 50 43 57 41 45 54 01 00 00 00 42 58 50 43  // BXPCWAET....BXPC
+    0020: 01 00 00 00 02 00 00 00                          // ........
diff --git a/tests/data/acpi/q35/WAET.dimmpxm b/tests/data/acpi/q35/WAET.dimmpxm
new file mode 100644
index 0000000000000000000000000000000000000000..c2240f58dff6b2f765386b5a2e506fda4800be3e
GIT binary patch
literal 40
mcmWG{bPds9U|?YEaPoKd2v%^42yhMuiZKGkKx`1r1jGQWX$JuS

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/q35/WAET.dimmpxm.dsl b/tests/data/acpi/q35/WAET.dimmpxm.dsl
new file mode 100644
index 0000000000..7ad316b118
--- /dev/null
+++ b/tests/data/acpi/q35/WAET.dimmpxm.dsl
@@ -0,0 +1,31 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/WAET.dimmpxm, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [WAET]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "WAET"    [Windows ACPI Emulated Devices Table]
+[004h 0004   4]                 Table Length : 00000028
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 88
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCWAET"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]        Flags (decoded below) : 00000002
+                        RTC needs no INT ack : 0
+                     PM timer, one read only : 1
+
+Raw Table Data: Length 40 (0x28)
+
+    0000: 57 41 45 54 28 00 00 00 01 88 42 4F 43 48 53 20  // WAET(.....BOCHS 
+    0010: 42 58 50 43 57 41 45 54 01 00 00 00 42 58 50 43  // BXPCWAET....BXPC
+    0020: 01 00 00 00 02 00 00 00                          // ........
diff --git a/tests/data/acpi/q35/WAET.dsl b/tests/data/acpi/q35/WAET.dsl
new file mode 100644
index 0000000000..b48db4efca
--- /dev/null
+++ b/tests/data/acpi/q35/WAET.dsl
@@ -0,0 +1,31 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/WAET.tis, Mon Sep 28 17:24:38 2020
+ *
+ * ACPI Data Table [WAET]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "WAET"    [Windows ACPI Emulated Devices Table]
+[004h 0004   4]                 Table Length : 00000028
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 88
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCWAET"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]        Flags (decoded below) : 00000002
+                        RTC needs no INT ack : 0
+                     PM timer, one read only : 1
+
+Raw Table Data: Length 40 (0x28)
+
+    0000: 57 41 45 54 28 00 00 00 01 88 42 4F 43 48 53 20  // WAET(.....BOCHS 
+    0010: 42 58 50 43 57 41 45 54 01 00 00 00 42 58 50 43  // BXPCWAET....BXPC
+    0020: 01 00 00 00 02 00 00 00                          // ........
diff --git a/tests/data/acpi/q35/WAET.ipmibt b/tests/data/acpi/q35/WAET.ipmibt
new file mode 100644
index 0000000000000000000000000000000000000000..c2240f58dff6b2f765386b5a2e506fda4800be3e
GIT binary patch
literal 40
mcmWG{bPds9U|?YEaPoKd2v%^42yhMuiZKGkKx`1r1jGQWX$JuS

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/q35/WAET.ipmibt.dsl b/tests/data/acpi/q35/WAET.ipmibt.dsl
new file mode 100644
index 0000000000..40cb1d5649
--- /dev/null
+++ b/tests/data/acpi/q35/WAET.ipmibt.dsl
@@ -0,0 +1,31 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/WAET.ipmibt, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [WAET]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "WAET"    [Windows ACPI Emulated Devices Table]
+[004h 0004   4]                 Table Length : 00000028
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 88
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCWAET"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]        Flags (decoded below) : 00000002
+                        RTC needs no INT ack : 0
+                     PM timer, one read only : 1
+
+Raw Table Data: Length 40 (0x28)
+
+    0000: 57 41 45 54 28 00 00 00 01 88 42 4F 43 48 53 20  // WAET(.....BOCHS 
+    0010: 42 58 50 43 57 41 45 54 01 00 00 00 42 58 50 43  // BXPCWAET....BXPC
+    0020: 01 00 00 00 02 00 00 00                          // ........
diff --git a/tests/data/acpi/q35/WAET.memhp b/tests/data/acpi/q35/WAET.memhp
new file mode 100644
index 0000000000000000000000000000000000000000..c2240f58dff6b2f765386b5a2e506fda4800be3e
GIT binary patch
literal 40
mcmWG{bPds9U|?YEaPoKd2v%^42yhMuiZKGkKx`1r1jGQWX$JuS

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/q35/WAET.memhp.dsl b/tests/data/acpi/q35/WAET.memhp.dsl
new file mode 100644
index 0000000000..e27f54d4dd
--- /dev/null
+++ b/tests/data/acpi/q35/WAET.memhp.dsl
@@ -0,0 +1,31 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/WAET.memhp, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [WAET]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "WAET"    [Windows ACPI Emulated Devices Table]
+[004h 0004   4]                 Table Length : 00000028
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 88
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCWAET"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]        Flags (decoded below) : 00000002
+                        RTC needs no INT ack : 0
+                     PM timer, one read only : 1
+
+Raw Table Data: Length 40 (0x28)
+
+    0000: 57 41 45 54 28 00 00 00 01 88 42 4F 43 48 53 20  // WAET(.....BOCHS 
+    0010: 42 58 50 43 57 41 45 54 01 00 00 00 42 58 50 43  // BXPCWAET....BXPC
+    0020: 01 00 00 00 02 00 00 00                          // ........
diff --git a/tests/data/acpi/q35/WAET.mmio64 b/tests/data/acpi/q35/WAET.mmio64
new file mode 100644
index 0000000000000000000000000000000000000000..c2240f58dff6b2f765386b5a2e506fda4800be3e
GIT binary patch
literal 40
mcmWG{bPds9U|?YEaPoKd2v%^42yhMuiZKGkKx`1r1jGQWX$JuS

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/q35/WAET.mmio64.dsl b/tests/data/acpi/q35/WAET.mmio64.dsl
new file mode 100644
index 0000000000..98f3aaf569
--- /dev/null
+++ b/tests/data/acpi/q35/WAET.mmio64.dsl
@@ -0,0 +1,31 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/WAET.mmio64, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [WAET]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "WAET"    [Windows ACPI Emulated Devices Table]
+[004h 0004   4]                 Table Length : 00000028
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 88
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCWAET"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]        Flags (decoded below) : 00000002
+                        RTC needs no INT ack : 0
+                     PM timer, one read only : 1
+
+Raw Table Data: Length 40 (0x28)
+
+    0000: 57 41 45 54 28 00 00 00 01 88 42 4F 43 48 53 20  // WAET(.....BOCHS 
+    0010: 42 58 50 43 57 41 45 54 01 00 00 00 42 58 50 43  // BXPCWAET....BXPC
+    0020: 01 00 00 00 02 00 00 00                          // ........
diff --git a/tests/data/acpi/q35/WAET.numamem b/tests/data/acpi/q35/WAET.numamem
new file mode 100644
index 0000000000000000000000000000000000000000..c2240f58dff6b2f765386b5a2e506fda4800be3e
GIT binary patch
literal 40
mcmWG{bPds9U|?YEaPoKd2v%^42yhMuiZKGkKx`1r1jGQWX$JuS

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/q35/WAET.numamem.dsl b/tests/data/acpi/q35/WAET.numamem.dsl
new file mode 100644
index 0000000000..738c75ca6c
--- /dev/null
+++ b/tests/data/acpi/q35/WAET.numamem.dsl
@@ -0,0 +1,31 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/WAET.numamem, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [WAET]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "WAET"    [Windows ACPI Emulated Devices Table]
+[004h 0004   4]                 Table Length : 00000028
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 88
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCWAET"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]        Flags (decoded below) : 00000002
+                        RTC needs no INT ack : 0
+                     PM timer, one read only : 1
+
+Raw Table Data: Length 40 (0x28)
+
+    0000: 57 41 45 54 28 00 00 00 01 88 42 4F 43 48 53 20  // WAET(.....BOCHS 
+    0010: 42 58 50 43 57 41 45 54 01 00 00 00 42 58 50 43  // BXPCWAET....BXPC
+    0020: 01 00 00 00 02 00 00 00                          // ........
diff --git a/tests/data/acpi/q35/WAET.tis b/tests/data/acpi/q35/WAET.tis
new file mode 100644
index 0000000000000000000000000000000000000000..c2240f58dff6b2f765386b5a2e506fda4800be3e
GIT binary patch
literal 40
mcmWG{bPds9U|?YEaPoKd2v%^42yhMuiZKGkKx`1r1jGQWX$JuS

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/q35/WAET.tis.dsl b/tests/data/acpi/q35/WAET.tis.dsl
new file mode 100644
index 0000000000..869ebe2b4a
--- /dev/null
+++ b/tests/data/acpi/q35/WAET.tis.dsl
@@ -0,0 +1,31 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/q35/WAET.tis, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [WAET]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "WAET"    [Windows ACPI Emulated Devices Table]
+[004h 0004   4]                 Table Length : 00000028
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 88
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCWAET"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]        Flags (decoded below) : 00000002
+                        RTC needs no INT ack : 0
+                     PM timer, one read only : 1
+
+Raw Table Data: Length 40 (0x28)
+
+    0000: 57 41 45 54 28 00 00 00 01 88 42 4F 43 48 53 20  // WAET(.....BOCHS 
+    0010: 42 58 50 43 57 41 45 54 01 00 00 00 42 58 50 43  // BXPCWAET....BXPC
+    0020: 01 00 00 00 02 00 00 00                          // ........
diff --git a/tests/data/acpi/virt/APIC.dsl b/tests/data/acpi/virt/APIC.dsl
new file mode 100644
index 0000000000..d334cef533
--- /dev/null
+++ b/tests/data/acpi/virt/APIC.dsl
@@ -0,0 +1,78 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/virt/APIC.numamem, Mon Sep 28 17:24:38 2020
+ *
+ * ACPI Data Table [APIC]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "APIC"    [Multiple APIC Description Table (MADT)]
+[004h 0004   4]                 Table Length : 000000A8
+[008h 0008   1]                     Revision : 03
+[009h 0009   1]                     Checksum : B3
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCAPIC"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]           Local Apic Address : 00000000
+[028h 0040   4]        Flags (decoded below) : 00000000
+                         PC-AT Compatibility : 0
+
+[02Ch 0044   1]                Subtable Type : 0C [Generic Interrupt Distributor]
+[02Dh 0045   1]                       Length : 18
+[02Eh 0046   2]                     Reserved : 0000
+[030h 0048   4]        Local GIC Hardware ID : 00000000
+[034h 0052   8]                 Base Address : 0000000008000000
+[03Ch 0060   4]               Interrupt Base : 00000000
+[040h 0064   1]                      Version : 02
+[041h 0065   3]                     Reserved : 000000
+
+[044h 0068   1]                Subtable Type : 0B [Generic Interrupt Controller]
+[045h 0069   1]                       Length : 4C
+[046h 0070   2]                     Reserved : 0000
+[048h 0072   4]         CPU Interface Number : 00000000
+[04Ch 0076   4]                Processor UID : 00000000
+[050h 0080   4]        Flags (decoded below) : 00000001
+                           Processor Enabled : 1
+          Performance Interrupt Trigger Mode : 0
+          Virtual GIC Interrupt Trigger Mode : 0
+[054h 0084   4]     Parking Protocol Version : 00000000
+[058h 0088   4]        Performance Interrupt : 00000017
+[05Ch 0092   8]               Parked Address : 0000000000000000
+[064h 0100   8]                 Base Address : 0000000008010000
+[06Ch 0108   8]     Virtual GIC Base Address : 0000000008040000
+[074h 0116   8]  Hypervisor GIC Base Address : 0000000008030000
+[07Ch 0124   4]        Virtual GIC Interrupt : 00000000
+[080h 0128   8]   Redistributor Base Address : 0000000000000000
+[088h 0136   8]                    ARM MPIDR : 0000000000000000
+/**** ACPI subtable terminates early - may be older version (dump table) */
+
+[090h 0144   1]                Subtable Type : 0D [Generic MSI Frame]
+[091h 0145   1]                       Length : 18
+[092h 0146   2]                     Reserved : 0000
+[094h 0148   4]                 MSI Frame ID : 00000000
+[098h 0152   8]                 Base Address : 0000000008020000
+[0A0h 0160   4]        Flags (decoded below) : 00000001
+                                  Select SPI : 1
+[0A4h 0164   2]                    SPI Count : 0040
+[0A6h 0166   2]                     SPI Base : 0050
+
+Raw Table Data: Length 168 (0xA8)
+
+    0000: 41 50 49 43 A8 00 00 00 03 B3 42 4F 43 48 53 20  // APIC......BOCHS 
+    0010: 42 58 50 43 41 50 49 43 01 00 00 00 42 58 50 43  // BXPCAPIC....BXPC
+    0020: 01 00 00 00 00 00 00 00 00 00 00 00 0C 18 00 00  // ................
+    0030: 00 00 00 00 00 00 00 08 00 00 00 00 00 00 00 00  // ................
+    0040: 02 00 00 00 0B 4C 00 00 00 00 00 00 00 00 00 00  // .....L..........
+    0050: 01 00 00 00 00 00 00 00 17 00 00 00 00 00 00 00  // ................
+    0060: 00 00 00 00 00 00 01 08 00 00 00 00 00 00 04 08  // ................
+    0070: 00 00 00 00 00 00 03 08 00 00 00 00 00 00 00 00  // ................
+    0080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0090: 0D 18 00 00 00 00 00 00 00 00 02 08 00 00 00 00  // ................
+    00A0: 01 00 00 00 40 00 50 00                          // ....@.P.
diff --git a/tests/data/acpi/virt/APIC.memhp.dsl b/tests/data/acpi/virt/APIC.memhp.dsl
new file mode 100644
index 0000000000..9b86f7b984
--- /dev/null
+++ b/tests/data/acpi/virt/APIC.memhp.dsl
@@ -0,0 +1,78 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/virt/APIC.memhp, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [APIC]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "APIC"    [Multiple APIC Description Table (MADT)]
+[004h 0004   4]                 Table Length : 000000A8
+[008h 0008   1]                     Revision : 03
+[009h 0009   1]                     Checksum : B3
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCAPIC"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]           Local Apic Address : 00000000
+[028h 0040   4]        Flags (decoded below) : 00000000
+                         PC-AT Compatibility : 0
+
+[02Ch 0044   1]                Subtable Type : 0C [Generic Interrupt Distributor]
+[02Dh 0045   1]                       Length : 18
+[02Eh 0046   2]                     Reserved : 0000
+[030h 0048   4]        Local GIC Hardware ID : 00000000
+[034h 0052   8]                 Base Address : 0000000008000000
+[03Ch 0060   4]               Interrupt Base : 00000000
+[040h 0064   1]                      Version : 02
+[041h 0065   3]                     Reserved : 000000
+
+[044h 0068   1]                Subtable Type : 0B [Generic Interrupt Controller]
+[045h 0069   1]                       Length : 4C
+[046h 0070   2]                     Reserved : 0000
+[048h 0072   4]         CPU Interface Number : 00000000
+[04Ch 0076   4]                Processor UID : 00000000
+[050h 0080   4]        Flags (decoded below) : 00000001
+                           Processor Enabled : 1
+          Performance Interrupt Trigger Mode : 0
+          Virtual GIC Interrupt Trigger Mode : 0
+[054h 0084   4]     Parking Protocol Version : 00000000
+[058h 0088   4]        Performance Interrupt : 00000017
+[05Ch 0092   8]               Parked Address : 0000000000000000
+[064h 0100   8]                 Base Address : 0000000008010000
+[06Ch 0108   8]     Virtual GIC Base Address : 0000000008040000
+[074h 0116   8]  Hypervisor GIC Base Address : 0000000008030000
+[07Ch 0124   4]        Virtual GIC Interrupt : 00000000
+[080h 0128   8]   Redistributor Base Address : 0000000000000000
+[088h 0136   8]                    ARM MPIDR : 0000000000000000
+/**** ACPI subtable terminates early - may be older version (dump table) */
+
+[090h 0144   1]                Subtable Type : 0D [Generic MSI Frame]
+[091h 0145   1]                       Length : 18
+[092h 0146   2]                     Reserved : 0000
+[094h 0148   4]                 MSI Frame ID : 00000000
+[098h 0152   8]                 Base Address : 0000000008020000
+[0A0h 0160   4]        Flags (decoded below) : 00000001
+                                  Select SPI : 1
+[0A4h 0164   2]                    SPI Count : 0040
+[0A6h 0166   2]                     SPI Base : 0050
+
+Raw Table Data: Length 168 (0xA8)
+
+    0000: 41 50 49 43 A8 00 00 00 03 B3 42 4F 43 48 53 20  // APIC......BOCHS 
+    0010: 42 58 50 43 41 50 49 43 01 00 00 00 42 58 50 43  // BXPCAPIC....BXPC
+    0020: 01 00 00 00 00 00 00 00 00 00 00 00 0C 18 00 00  // ................
+    0030: 00 00 00 00 00 00 00 08 00 00 00 00 00 00 00 00  // ................
+    0040: 02 00 00 00 0B 4C 00 00 00 00 00 00 00 00 00 00  // .....L..........
+    0050: 01 00 00 00 00 00 00 00 17 00 00 00 00 00 00 00  // ................
+    0060: 00 00 00 00 00 00 01 08 00 00 00 00 00 00 04 08  // ................
+    0070: 00 00 00 00 00 00 03 08 00 00 00 00 00 00 00 00  // ................
+    0080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0090: 0D 18 00 00 00 00 00 00 00 00 02 08 00 00 00 00  // ................
+    00A0: 01 00 00 00 40 00 50 00                          // ....@.P.
diff --git a/tests/data/acpi/virt/APIC.numamem.dsl b/tests/data/acpi/virt/APIC.numamem.dsl
new file mode 100644
index 0000000000..2d43338766
--- /dev/null
+++ b/tests/data/acpi/virt/APIC.numamem.dsl
@@ -0,0 +1,78 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/virt/APIC.numamem, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [APIC]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "APIC"    [Multiple APIC Description Table (MADT)]
+[004h 0004   4]                 Table Length : 000000A8
+[008h 0008   1]                     Revision : 03
+[009h 0009   1]                     Checksum : B3
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCAPIC"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]           Local Apic Address : 00000000
+[028h 0040   4]        Flags (decoded below) : 00000000
+                         PC-AT Compatibility : 0
+
+[02Ch 0044   1]                Subtable Type : 0C [Generic Interrupt Distributor]
+[02Dh 0045   1]                       Length : 18
+[02Eh 0046   2]                     Reserved : 0000
+[030h 0048   4]        Local GIC Hardware ID : 00000000
+[034h 0052   8]                 Base Address : 0000000008000000
+[03Ch 0060   4]               Interrupt Base : 00000000
+[040h 0064   1]                      Version : 02
+[041h 0065   3]                     Reserved : 000000
+
+[044h 0068   1]                Subtable Type : 0B [Generic Interrupt Controller]
+[045h 0069   1]                       Length : 4C
+[046h 0070   2]                     Reserved : 0000
+[048h 0072   4]         CPU Interface Number : 00000000
+[04Ch 0076   4]                Processor UID : 00000000
+[050h 0080   4]        Flags (decoded below) : 00000001
+                           Processor Enabled : 1
+          Performance Interrupt Trigger Mode : 0
+          Virtual GIC Interrupt Trigger Mode : 0
+[054h 0084   4]     Parking Protocol Version : 00000000
+[058h 0088   4]        Performance Interrupt : 00000017
+[05Ch 0092   8]               Parked Address : 0000000000000000
+[064h 0100   8]                 Base Address : 0000000008010000
+[06Ch 0108   8]     Virtual GIC Base Address : 0000000008040000
+[074h 0116   8]  Hypervisor GIC Base Address : 0000000008030000
+[07Ch 0124   4]        Virtual GIC Interrupt : 00000000
+[080h 0128   8]   Redistributor Base Address : 0000000000000000
+[088h 0136   8]                    ARM MPIDR : 0000000000000000
+/**** ACPI subtable terminates early - may be older version (dump table) */
+
+[090h 0144   1]                Subtable Type : 0D [Generic MSI Frame]
+[091h 0145   1]                       Length : 18
+[092h 0146   2]                     Reserved : 0000
+[094h 0148   4]                 MSI Frame ID : 00000000
+[098h 0152   8]                 Base Address : 0000000008020000
+[0A0h 0160   4]        Flags (decoded below) : 00000001
+                                  Select SPI : 1
+[0A4h 0164   2]                    SPI Count : 0040
+[0A6h 0166   2]                     SPI Base : 0050
+
+Raw Table Data: Length 168 (0xA8)
+
+    0000: 41 50 49 43 A8 00 00 00 03 B3 42 4F 43 48 53 20  // APIC......BOCHS 
+    0010: 42 58 50 43 41 50 49 43 01 00 00 00 42 58 50 43  // BXPCAPIC....BXPC
+    0020: 01 00 00 00 00 00 00 00 00 00 00 00 0C 18 00 00  // ................
+    0030: 00 00 00 00 00 00 00 08 00 00 00 00 00 00 00 00  // ................
+    0040: 02 00 00 00 0B 4C 00 00 00 00 00 00 00 00 00 00  // .....L..........
+    0050: 01 00 00 00 00 00 00 00 17 00 00 00 00 00 00 00  // ................
+    0060: 00 00 00 00 00 00 01 08 00 00 00 00 00 00 04 08  // ................
+    0070: 00 00 00 00 00 00 03 08 00 00 00 00 00 00 00 00  // ................
+    0080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0090: 0D 18 00 00 00 00 00 00 00 00 02 08 00 00 00 00  // ................
+    00A0: 01 00 00 00 40 00 50 00                          // ....@.P.
diff --git a/tests/data/acpi/virt/DSDT.dsl b/tests/data/acpi/virt/DSDT.dsl
new file mode 100644
index 0000000000..58368ff44c
--- /dev/null
+++ b/tests/data/acpi/virt/DSDT.dsl
@@ -0,0 +1,1906 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembling to symbolic ASL+ operators
+ *
+ * Disassembly of tests/data/acpi/virt/DSDT.numamem, Mon Sep 28 17:24:38 2020
+ *
+ * Original Table Header:
+ *     Signature        "DSDT"
+ *     Length           0x00001450 (5200)
+ *     Revision         0x02
+ *     Checksum         0xFA
+ *     OEM ID           "BOCHS "
+ *     OEM Table ID     "BXPCDSDT"
+ *     OEM Revision     0x00000001 (1)
+ *     Compiler ID      "BXPC"
+ *     Compiler Version 0x00000001 (1)
+ */
+DefinitionBlock ("", "DSDT", 2, "BOCHS ", "BXPCDSDT", 0x00000001)
+{
+    Scope (\_SB)
+    {
+        Device (C000)
+        {
+            Name (_HID, "ACPI0007" /* Processor Device */)  // _HID: Hardware ID
+            Name (_UID, Zero)  // _UID: Unique ID
+        }
+
+        Device (COM0)
+        {
+            Name (_HID, "ARMH0011")  // _HID: Hardware ID
+            Name (_UID, Zero)  // _UID: Unique ID
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x09000000,         // Address Base
+                    0x00001000,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000021,
+                }
+            })
+        }
+
+        Device (FWCF)
+        {
+            Name (_HID, "QEMU0002")  // _HID: Hardware ID
+            Name (_STA, 0x0B)  // _STA: Status
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x09020000,         // Address Base
+                    0x00000018,         // Address Length
+                    )
+            })
+        }
+
+        Device (VR00)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, Zero)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A000000,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000030,
+                }
+            })
+        }
+
+        Device (VR01)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A000200,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000031,
+                }
+            })
+        }
+
+        Device (VR02)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x02)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A000400,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000032,
+                }
+            })
+        }
+
+        Device (VR03)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x03)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A000600,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000033,
+                }
+            })
+        }
+
+        Device (VR04)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x04)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A000800,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000034,
+                }
+            })
+        }
+
+        Device (VR05)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x05)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A000A00,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000035,
+                }
+            })
+        }
+
+        Device (VR06)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x06)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A000C00,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000036,
+                }
+            })
+        }
+
+        Device (VR07)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x07)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A000E00,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000037,
+                }
+            })
+        }
+
+        Device (VR08)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x08)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A001000,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000038,
+                }
+            })
+        }
+
+        Device (VR09)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x09)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A001200,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000039,
+                }
+            })
+        }
+
+        Device (VR10)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x0A)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A001400,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x0000003A,
+                }
+            })
+        }
+
+        Device (VR11)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x0B)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A001600,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x0000003B,
+                }
+            })
+        }
+
+        Device (VR12)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x0C)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A001800,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x0000003C,
+                }
+            })
+        }
+
+        Device (VR13)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x0D)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A001A00,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x0000003D,
+                }
+            })
+        }
+
+        Device (VR14)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x0E)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A001C00,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x0000003E,
+                }
+            })
+        }
+
+        Device (VR15)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x0F)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A001E00,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x0000003F,
+                }
+            })
+        }
+
+        Device (VR16)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x10)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A002000,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000040,
+                }
+            })
+        }
+
+        Device (VR17)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x11)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A002200,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000041,
+                }
+            })
+        }
+
+        Device (VR18)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x12)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A002400,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000042,
+                }
+            })
+        }
+
+        Device (VR19)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x13)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A002600,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000043,
+                }
+            })
+        }
+
+        Device (VR20)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x14)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A002800,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000044,
+                }
+            })
+        }
+
+        Device (VR21)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x15)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A002A00,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000045,
+                }
+            })
+        }
+
+        Device (VR22)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x16)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A002C00,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000046,
+                }
+            })
+        }
+
+        Device (VR23)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x17)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A002E00,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000047,
+                }
+            })
+        }
+
+        Device (VR24)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x18)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A003000,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000048,
+                }
+            })
+        }
+
+        Device (VR25)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x19)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A003200,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000049,
+                }
+            })
+        }
+
+        Device (VR26)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x1A)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A003400,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x0000004A,
+                }
+            })
+        }
+
+        Device (VR27)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x1B)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A003600,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x0000004B,
+                }
+            })
+        }
+
+        Device (VR28)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x1C)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A003800,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x0000004C,
+                }
+            })
+        }
+
+        Device (VR29)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x1D)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A003A00,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x0000004D,
+                }
+            })
+        }
+
+        Device (VR30)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x1E)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A003C00,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x0000004E,
+                }
+            })
+        }
+
+        Device (VR31)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x1F)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A003E00,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x0000004F,
+                }
+            })
+        }
+
+        Device (PCI0)
+        {
+            Name (_HID, "PNP0A08" /* PCI Express Bus */)  // _HID: Hardware ID
+            Name (_CID, "PNP0A03" /* PCI Bus */)  // _CID: Compatible ID
+            Name (_SEG, Zero)  // _SEG: PCI Segment
+            Name (_BBN, Zero)  // _BBN: BIOS Bus Number
+            Name (_UID, Zero)  // _UID: Unique ID
+            Name (_STR, Unicode ("PCIe 0 Device"))  // _STR: Description String
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_PRT, Package (0x80)  // _PRT: PCI Routing Table
+            {
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    Zero, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    One, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    0x02, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    0x03, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    Zero, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    One, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    0x02, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    0x03, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    Zero, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    One, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    0x02, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    0x03, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    Zero, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    One, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    0x02, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    0x03, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    Zero, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    One, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    0x02, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    0x03, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    Zero, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    One, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    0x02, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    0x03, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    Zero, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    One, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    0x02, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    0x03, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    Zero, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    One, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    0x02, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    0x03, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    Zero, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    One, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    0x02, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    0x03, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    Zero, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    One, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    0x02, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    0x03, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    Zero, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    One, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    0x02, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    0x03, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    Zero, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    One, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    0x02, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    0x03, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    Zero, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    One, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    0x02, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    0x03, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    Zero, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    One, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    0x02, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    0x03, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    Zero, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    One, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    0x02, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    0x03, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    Zero, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    One, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    0x02, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    0x03, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    Zero, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    One, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    0x02, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    0x03, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    Zero, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    One, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    0x02, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    0x03, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    Zero, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    One, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    0x02, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    0x03, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    Zero, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    One, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    0x02, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    0x03, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    Zero, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    One, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    0x02, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    0x03, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    Zero, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    One, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    0x02, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    0x03, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    Zero, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    One, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    0x02, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    0x03, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    Zero, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    One, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    0x02, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    0x03, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    Zero, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    One, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    0x02, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    0x03, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    Zero, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    One, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    0x02, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    0x03, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    Zero, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    One, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    0x02, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    0x03, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    Zero, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    One, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    0x02, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    0x03, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    Zero, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    One, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    0x02, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    0x03, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    Zero, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    One, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    0x02, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    0x03, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    Zero, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    One, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    0x02, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    0x03, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    Zero, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    One, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    0x02, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    0x03, 
+                    GSI2, 
+                    Zero
+                }
+            })
+            Device (GSI0)
+            {
+                Name (_HID, "PNP0C0F" /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+                Name (_UID, Zero)  // _UID: Unique ID
+                Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+                {
+                    Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                    {
+                        0x00000023,
+                    }
+                })
+                Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+                {
+                    Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                    {
+                        0x00000023,
+                    }
+                })
+                Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+                {
+                }
+            }
+
+            Device (GSI1)
+            {
+                Name (_HID, "PNP0C0F" /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+                Name (_UID, One)  // _UID: Unique ID
+                Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+                {
+                    Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                    {
+                        0x00000024,
+                    }
+                })
+                Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+                {
+                    Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                    {
+                        0x00000024,
+                    }
+                })
+                Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+                {
+                }
+            }
+
+            Device (GSI2)
+            {
+                Name (_HID, "PNP0C0F" /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+                Name (_UID, 0x02)  // _UID: Unique ID
+                Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+                {
+                    Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                    {
+                        0x00000025,
+                    }
+                })
+                Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+                {
+                    Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                    {
+                        0x00000025,
+                    }
+                })
+                Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+                {
+                }
+            }
+
+            Device (GSI3)
+            {
+                Name (_HID, "PNP0C0F" /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+                Name (_UID, 0x03)  // _UID: Unique ID
+                Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+                {
+                    Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                    {
+                        0x00000026,
+                    }
+                })
+                Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+                {
+                    Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                    {
+                        0x00000026,
+                    }
+                })
+                Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+                {
+                }
+            }
+
+            Method (_CBA, 0, NotSerialized)  // _CBA: Configuration Base Address
+            {
+                Return (0x0000004010000000)
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (ResourceTemplate ()
+                {
+                    WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
+                        0x0000,             // Granularity
+                        0x0000,             // Range Minimum
+                        0x00FF,             // Range Maximum
+                        0x0000,             // Translation Offset
+                        0x0100,             // Length
+                        ,, )
+                    DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
+                        0x00000000,         // Granularity
+                        0x10000000,         // Range Minimum
+                        0x3EFEFFFF,         // Range Maximum
+                        0x00000000,         // Translation Offset
+                        0x2EFF0000,         // Length
+                        ,, , AddressRangeMemory, TypeStatic)
+                    DWordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
+                        0x00000000,         // Granularity
+                        0x00000000,         // Range Minimum
+                        0x0000FFFF,         // Range Maximum
+                        0x3EFF0000,         // Translation Offset
+                        0x00010000,         // Length
+                        ,, , TypeStatic, DenseTranslation)
+                    QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
+                        0x0000000000000000, // Granularity
+                        0x0000008000000000, // Range Minimum
+                        0x000000FFFFFFFFFF, // Range Maximum
+                        0x0000000000000000, // Translation Offset
+                        0x0000008000000000, // Length
+                        ,, , AddressRangeMemory, TypeStatic)
+                })
+            }
+
+            Name (SUPP, Zero)
+            Name (CTRL, Zero)
+            Method (_OSC, 4, NotSerialized)  // _OSC: Operating System Capabilities
+            {
+                CreateDWordField (Arg3, Zero, CDW1)
+                If ((Arg0 == ToUUID ("33db4d5b-1ff7-401c-9657-7441c03dd766") /* PCI Host Bridge Device */))
+                {
+                    CreateDWordField (Arg3, 0x04, CDW2)
+                    CreateDWordField (Arg3, 0x08, CDW3)
+                    SUPP = CDW2 /* \_SB_.PCI0._OSC.CDW2 */
+                    CTRL = CDW3 /* \_SB_.PCI0._OSC.CDW3 */
+                    CTRL &= 0x1F
+                    If ((Arg1 != One))
+                    {
+                        CDW1 |= 0x08
+                    }
+
+                    If ((CDW3 != CTRL))
+                    {
+                        CDW1 |= 0x10
+                    }
+
+                    CDW3 = CTRL /* \_SB_.PCI0.CTRL */
+                    Return (Arg3)
+                }
+                Else
+                {
+                    CDW1 |= 0x04
+                    Return (Arg3)
+                }
+            }
+
+            Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
+            {
+                If ((Arg0 == ToUUID ("e5c937d0-3553-4d7a-9117-ea4d19c3434d") /* Device Labeling Interface */))
+                {
+                    If ((Arg2 == Zero))
+                    {
+                        Return (Buffer (One)
+                        {
+                             0x01                                             // .
+                        })
+                    }
+                }
+
+                Return (Buffer (One)
+                {
+                     0x00                                             // .
+                })
+            }
+
+            Device (RES0)
+            {
+                Name (_HID, "PNP0C02" /* PNP Motherboard Resources */)  // _HID: Hardware ID
+                Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+                {
+                    QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
+                        0x0000000000000000, // Granularity
+                        0x0000004010000000, // Range Minimum
+                        0x000000401FFFFFFF, // Range Maximum
+                        0x0000000000000000, // Translation Offset
+                        0x0000000010000000, // Length
+                        ,, , AddressRangeMemory, TypeStatic)
+                })
+            }
+        }
+
+        Device (\_SB.GED)
+        {
+            Name (_HID, "ACPI0013" /* Generic Event Device */)  // _HID: Hardware ID
+            Name (_UID, "GED")  // _UID: Unique ID
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Edge, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000029,
+                }
+            })
+            OperationRegion (EREG, SystemMemory, 0x09080000, 0x04)
+            Field (EREG, DWordAcc, NoLock, WriteAsZeros)
+            {
+                ESEL,   32
+            }
+
+            Method (_EVT, 1, Serialized)  // _EVT: Event
+            {
+                Local0 = ESEL /* \_SB_.GED_.ESEL */
+                If (((Local0 & 0x02) == 0x02))
+                {
+                    Notify (PWRB, 0x80) // Status Change
+                }
+            }
+        }
+
+        Device (PWRB)
+        {
+            Name (_HID, "PNP0C0C" /* Power Button Device */)  // _HID: Hardware ID
+            Name (_UID, Zero)  // _UID: Unique ID
+        }
+    }
+}
+
diff --git a/tests/data/acpi/virt/DSDT.memhp.dsl b/tests/data/acpi/virt/DSDT.memhp.dsl
new file mode 100644
index 0000000000..84f3c51867
--- /dev/null
+++ b/tests/data/acpi/virt/DSDT.memhp.dsl
@@ -0,0 +1,2215 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembling to symbolic ASL+ operators
+ *
+ * Disassembly of tests/data/acpi/virt/DSDT.memhp, Tue Aug  4 11:14:15 2020
+ *
+ * Original Table Header:
+ *     Signature        "DSDT"
+ *     Length           0x000019A6 (6566)
+ *     Revision         0x02
+ *     Checksum         0x02
+ *     OEM ID           "BOCHS "
+ *     OEM Table ID     "BXPCDSDT"
+ *     OEM Revision     0x00000001 (1)
+ *     Compiler ID      "BXPC"
+ *     Compiler Version 0x00000001 (1)
+ */
+DefinitionBlock ("", "DSDT", 2, "BOCHS ", "BXPCDSDT", 0x00000001)
+{
+    External (_SB_.NVDR, UnknownObj)
+
+    Scope (\_SB)
+    {
+        Device (C000)
+        {
+            Name (_HID, "ACPI0007" /* Processor Device */)  // _HID: Hardware ID
+            Name (_UID, Zero)  // _UID: Unique ID
+        }
+
+        Device (COM0)
+        {
+            Name (_HID, "ARMH0011")  // _HID: Hardware ID
+            Name (_UID, Zero)  // _UID: Unique ID
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x09000000,         // Address Base
+                    0x00001000,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000021,
+                }
+            })
+        }
+
+        Device (FWCF)
+        {
+            Name (_HID, "QEMU0002")  // _HID: Hardware ID
+            Name (_STA, 0x0B)  // _STA: Status
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x09020000,         // Address Base
+                    0x00000018,         // Address Length
+                    )
+            })
+        }
+
+        Device (VR00)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, Zero)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A000000,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000030,
+                }
+            })
+        }
+
+        Device (VR01)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A000200,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000031,
+                }
+            })
+        }
+
+        Device (VR02)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x02)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A000400,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000032,
+                }
+            })
+        }
+
+        Device (VR03)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x03)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A000600,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000033,
+                }
+            })
+        }
+
+        Device (VR04)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x04)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A000800,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000034,
+                }
+            })
+        }
+
+        Device (VR05)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x05)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A000A00,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000035,
+                }
+            })
+        }
+
+        Device (VR06)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x06)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A000C00,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000036,
+                }
+            })
+        }
+
+        Device (VR07)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x07)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A000E00,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000037,
+                }
+            })
+        }
+
+        Device (VR08)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x08)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A001000,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000038,
+                }
+            })
+        }
+
+        Device (VR09)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x09)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A001200,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000039,
+                }
+            })
+        }
+
+        Device (VR10)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x0A)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A001400,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x0000003A,
+                }
+            })
+        }
+
+        Device (VR11)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x0B)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A001600,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x0000003B,
+                }
+            })
+        }
+
+        Device (VR12)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x0C)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A001800,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x0000003C,
+                }
+            })
+        }
+
+        Device (VR13)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x0D)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A001A00,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x0000003D,
+                }
+            })
+        }
+
+        Device (VR14)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x0E)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A001C00,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x0000003E,
+                }
+            })
+        }
+
+        Device (VR15)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x0F)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A001E00,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x0000003F,
+                }
+            })
+        }
+
+        Device (VR16)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x10)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A002000,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000040,
+                }
+            })
+        }
+
+        Device (VR17)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x11)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A002200,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000041,
+                }
+            })
+        }
+
+        Device (VR18)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x12)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A002400,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000042,
+                }
+            })
+        }
+
+        Device (VR19)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x13)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A002600,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000043,
+                }
+            })
+        }
+
+        Device (VR20)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x14)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A002800,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000044,
+                }
+            })
+        }
+
+        Device (VR21)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x15)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A002A00,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000045,
+                }
+            })
+        }
+
+        Device (VR22)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x16)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A002C00,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000046,
+                }
+            })
+        }
+
+        Device (VR23)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x17)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A002E00,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000047,
+                }
+            })
+        }
+
+        Device (VR24)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x18)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A003000,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000048,
+                }
+            })
+        }
+
+        Device (VR25)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x19)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A003200,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000049,
+                }
+            })
+        }
+
+        Device (VR26)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x1A)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A003400,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x0000004A,
+                }
+            })
+        }
+
+        Device (VR27)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x1B)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A003600,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x0000004B,
+                }
+            })
+        }
+
+        Device (VR28)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x1C)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A003800,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x0000004C,
+                }
+            })
+        }
+
+        Device (VR29)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x1D)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A003A00,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x0000004D,
+                }
+            })
+        }
+
+        Device (VR30)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x1E)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A003C00,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x0000004E,
+                }
+            })
+        }
+
+        Device (VR31)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x1F)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A003E00,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x0000004F,
+                }
+            })
+        }
+
+        Device (PCI0)
+        {
+            Name (_HID, "PNP0A08" /* PCI Express Bus */)  // _HID: Hardware ID
+            Name (_CID, "PNP0A03" /* PCI Bus */)  // _CID: Compatible ID
+            Name (_SEG, Zero)  // _SEG: PCI Segment
+            Name (_BBN, Zero)  // _BBN: BIOS Bus Number
+            Name (_UID, "PCI0")  // _UID: Unique ID
+            Name (_STR, Unicode ("PCIe 0 Device"))  // _STR: Description String
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_PRT, Package (0x80)  // _PRT: PCI Routing Table
+            {
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    Zero, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    One, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    0x02, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    0x03, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    Zero, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    One, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    0x02, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    0x03, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    Zero, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    One, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    0x02, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    0x03, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    Zero, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    One, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    0x02, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    0x03, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    Zero, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    One, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    0x02, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    0x03, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    Zero, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    One, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    0x02, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    0x03, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    Zero, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    One, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    0x02, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    0x03, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    Zero, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    One, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    0x02, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    0x03, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    Zero, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    One, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    0x02, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    0x03, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    Zero, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    One, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    0x02, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    0x03, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    Zero, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    One, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    0x02, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    0x03, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    Zero, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    One, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    0x02, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    0x03, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    Zero, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    One, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    0x02, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    0x03, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    Zero, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    One, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    0x02, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    0x03, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    Zero, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    One, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    0x02, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    0x03, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    Zero, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    One, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    0x02, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    0x03, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    Zero, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    One, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    0x02, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    0x03, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    Zero, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    One, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    0x02, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    0x03, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    Zero, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    One, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    0x02, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    0x03, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    Zero, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    One, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    0x02, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    0x03, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    Zero, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    One, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    0x02, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    0x03, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    Zero, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    One, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    0x02, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    0x03, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    Zero, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    One, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    0x02, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    0x03, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    Zero, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    One, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    0x02, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    0x03, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    Zero, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    One, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    0x02, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    0x03, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    Zero, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    One, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    0x02, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    0x03, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    Zero, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    One, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    0x02, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    0x03, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    Zero, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    One, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    0x02, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    0x03, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    Zero, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    One, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    0x02, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    0x03, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    Zero, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    One, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    0x02, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    0x03, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    Zero, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    One, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    0x02, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    0x03, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    Zero, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    One, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    0x02, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    0x03, 
+                    GSI2, 
+                    Zero
+                }
+            })
+            Device (GSI0)
+            {
+                Name (_HID, "PNP0C0F" /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+                Name (_UID, Zero)  // _UID: Unique ID
+                Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+                {
+                    Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                    {
+                        0x00000023,
+                    }
+                })
+                Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+                {
+                    Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                    {
+                        0x00000023,
+                    }
+                })
+                Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+                {
+                }
+            }
+
+            Device (GSI1)
+            {
+                Name (_HID, "PNP0C0F" /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+                Name (_UID, One)  // _UID: Unique ID
+                Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+                {
+                    Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                    {
+                        0x00000024,
+                    }
+                })
+                Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+                {
+                    Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                    {
+                        0x00000024,
+                    }
+                })
+                Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+                {
+                }
+            }
+
+            Device (GSI2)
+            {
+                Name (_HID, "PNP0C0F" /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+                Name (_UID, 0x02)  // _UID: Unique ID
+                Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+                {
+                    Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                    {
+                        0x00000025,
+                    }
+                })
+                Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+                {
+                    Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                    {
+                        0x00000025,
+                    }
+                })
+                Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+                {
+                }
+            }
+
+            Device (GSI3)
+            {
+                Name (_HID, "PNP0C0F" /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+                Name (_UID, 0x03)  // _UID: Unique ID
+                Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+                {
+                    Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                    {
+                        0x00000026,
+                    }
+                })
+                Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+                {
+                    Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                    {
+                        0x00000026,
+                    }
+                })
+                Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+                {
+                }
+            }
+
+            Method (_CBA, 0, NotSerialized)  // _CBA: Configuration Base Address
+            {
+                Return (0x0000004010000000)
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (ResourceTemplate ()
+                {
+                    WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
+                        0x0000,             // Granularity
+                        0x0000,             // Range Minimum
+                        0x00FF,             // Range Maximum
+                        0x0000,             // Translation Offset
+                        0x0100,             // Length
+                        ,, )
+                    DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
+                        0x00000000,         // Granularity
+                        0x10000000,         // Range Minimum
+                        0x3EFEFFFF,         // Range Maximum
+                        0x00000000,         // Translation Offset
+                        0x2EFF0000,         // Length
+                        ,, , AddressRangeMemory, TypeStatic)
+                    DWordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
+                        0x00000000,         // Granularity
+                        0x00000000,         // Range Minimum
+                        0x0000FFFF,         // Range Maximum
+                        0x3EFF0000,         // Translation Offset
+                        0x00010000,         // Length
+                        ,, , TypeStatic, DenseTranslation)
+                    QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
+                        0x0000000000000000, // Granularity
+                        0x0000008000000000, // Range Minimum
+                        0x000000FFFFFFFFFF, // Range Maximum
+                        0x0000000000000000, // Translation Offset
+                        0x0000008000000000, // Length
+                        ,, , AddressRangeMemory, TypeStatic)
+                })
+            }
+
+            Name (SUPP, Zero)
+            Name (CTRL, Zero)
+            Method (_OSC, 4, NotSerialized)  // _OSC: Operating System Capabilities
+            {
+                CreateDWordField (Arg3, Zero, CDW1)
+                If ((Arg0 == ToUUID ("33db4d5b-1ff7-401c-9657-7441c03dd766") /* PCI Host Bridge Device */))
+                {
+                    CreateDWordField (Arg3, 0x04, CDW2)
+                    CreateDWordField (Arg3, 0x08, CDW3)
+                    SUPP = CDW2 /* \_SB_.PCI0._OSC.CDW2 */
+                    CTRL = CDW3 /* \_SB_.PCI0._OSC.CDW3 */
+                    CTRL &= 0x1F
+                    If ((Arg1 != One))
+                    {
+                        CDW1 |= 0x08
+                    }
+
+                    If ((CDW3 != CTRL))
+                    {
+                        CDW1 |= 0x10
+                    }
+
+                    CDW3 = CTRL /* \_SB_.PCI0.CTRL */
+                    Return (Arg3)
+                }
+                Else
+                {
+                    CDW1 |= 0x04
+                    Return (Arg3)
+                }
+            }
+
+            Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
+            {
+                If ((Arg0 == ToUUID ("e5c937d0-3553-4d7a-9117-ea4d19c3434d") /* Device Labeling Interface */))
+                {
+                    If ((Arg2 == Zero))
+                    {
+                        Return (Buffer (One)
+                        {
+                             0x01                                             // .
+                        })
+                    }
+                }
+
+                Return (Buffer (One)
+                {
+                     0x00                                             // .
+                })
+            }
+
+            Device (RES0)
+            {
+                Name (_HID, "PNP0C02" /* PNP Motherboard Resources */)  // _HID: Hardware ID
+                Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+                {
+                    QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
+                        0x0000000000000000, // Granularity
+                        0x0000004010000000, // Range Minimum
+                        0x000000401FFFFFFF, // Range Maximum
+                        0x0000000000000000, // Translation Offset
+                        0x0000000010000000, // Length
+                        ,, , AddressRangeMemory, TypeStatic)
+                })
+            }
+        }
+
+        Device (\_SB.GED)
+        {
+            Name (_HID, "ACPI0013" /* Generic Event Device */)  // _HID: Hardware ID
+            Name (_UID, "GED")  // _UID: Unique ID
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Edge, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000029,
+                }
+            })
+            OperationRegion (EREG, SystemMemory, 0x09080000, 0x04)
+            Field (EREG, DWordAcc, NoLock, WriteAsZeros)
+            {
+                ESEL,   32
+            }
+
+            Method (_EVT, 1, Serialized)  // _EVT: Event
+            {
+                Local0 = ESEL /* \_SB_.GED_.ESEL */
+                If (((Local0 & One) == One))
+                {
+                    \_SB.MHPC.MSCN ()
+                }
+
+                If (((Local0 & 0x02) == 0x02))
+                {
+                    Notify (PWRB, 0x80) // Status Change
+                }
+
+                If (((Local0 & 0x04) == 0x04))
+                {
+                    Notify (\_SB.NVDR, 0x80) // Status Change
+                }
+            }
+        }
+
+        Device (\_SB.MHPD)
+        {
+            Name (_HID, "PNP0A06" /* Generic Container Device */)  // _HID: Hardware ID
+            Name (_UID, "Memory hotplug resources")  // _UID: Unique ID
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x09070000,         // Address Base
+                    0x00000018,         // Address Length
+                    )
+            })
+            OperationRegion (HPMR, SystemMemory, 0x09070000, 0x18)
+        }
+
+        Device (\_SB.MHPC)
+        {
+            Name (_HID, "PNP0A06" /* Generic Container Device */)  // _HID: Hardware ID
+            Name (_UID, "DIMM devices")  // _UID: Unique ID
+            Name (MDNR, 0x03)
+            Field (\_SB.MHPD.HPMR, DWordAcc, NoLock, Preserve)
+            {
+                MRBL,   32, 
+                MRBH,   32, 
+                MRLL,   32, 
+                MRLH,   32, 
+                MPX,    32
+            }
+
+            Field (\_SB.MHPD.HPMR, ByteAcc, NoLock, WriteAsZeros)
+            {
+                Offset (0x14), 
+                MES,    1, 
+                MINS,   1, 
+                MRMV,   1, 
+                MEJ,    1
+            }
+
+            Field (\_SB.MHPD.HPMR, DWordAcc, NoLock, Preserve)
+            {
+                MSEL,   32, 
+                MOEV,   32, 
+                MOSC,   32
+            }
+
+            Method (_STA, 0, NotSerialized)  // _STA: Status
+            {
+                If ((MDNR == Zero))
+                {
+                    Return (Zero)
+                }
+
+                Return (0x0B)
+            }
+
+            Mutex (MLCK, 0x00)
+            Method (MSCN, 0, NotSerialized)
+            {
+                If ((MDNR == Zero))
+                {
+                    Return (Zero)
+                }
+
+                Local0 = Zero
+                Acquire (MLCK, 0xFFFF)
+                While ((Local0 < MDNR))
+                {
+                    MSEL = Local0
+                    If ((MINS == One))
+                    {
+                        MTFY (Local0, One)
+                        MINS = One
+                    }
+                    ElseIf ((MRMV == One))
+                    {
+                        MTFY (Local0, 0x03)
+                        MRMV = One
+                    }
+
+                    Local0 += One
+                }
+
+                Release (MLCK)
+                Return (One)
+            }
+
+            Method (MRST, 1, NotSerialized)
+            {
+                Local0 = Zero
+                Acquire (MLCK, 0xFFFF)
+                MSEL = ToInteger (Arg0)
+                If ((MES == One))
+                {
+                    Local0 = 0x0F
+                }
+
+                Release (MLCK)
+                Return (Local0)
+            }
+
+            Method (MCRS, 1, Serialized)
+            {
+                Acquire (MLCK, 0xFFFF)
+                MSEL = ToInteger (Arg0)
+                Name (MR64, ResourceTemplate ()
+                {
+                    QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
+                        0x0000000000000000, // Granularity
+                        0x0000000000000000, // Range Minimum
+                        0xFFFFFFFFFFFFFFFE, // Range Maximum
+                        0x0000000000000000, // Translation Offset
+                        0xFFFFFFFFFFFFFFFF, // Length
+                        ,, _Y00, AddressRangeMemory, TypeStatic)
+                })
+                CreateDWordField (MR64, \_SB.MHPC.MCRS._Y00._MIN, MINL)  // _MIN: Minimum Base Address
+                CreateDWordField (MR64, 0x12, MINH)
+                CreateDWordField (MR64, \_SB.MHPC.MCRS._Y00._LEN, LENL)  // _LEN: Length
+                CreateDWordField (MR64, 0x2A, LENH)
+                CreateDWordField (MR64, \_SB.MHPC.MCRS._Y00._MAX, MAXL)  // _MAX: Maximum Base Address
+                CreateDWordField (MR64, 0x1A, MAXH)
+                MINH = MRBH /* \_SB_.MHPC.MRBH */
+                MINL = MRBL /* \_SB_.MHPC.MRBL */
+                LENH = MRLH /* \_SB_.MHPC.MRLH */
+                LENL = MRLL /* \_SB_.MHPC.MRLL */
+                MAXL = (MINL + LENL) /* \_SB_.MHPC.MCRS.LENL */
+                MAXH = (MINH + LENH) /* \_SB_.MHPC.MCRS.LENH */
+                If ((MAXL < MINL))
+                {
+                    MAXH += One
+                }
+
+                If ((MAXL < One))
+                {
+                    MAXH -= One
+                }
+
+                MAXL -= One
+                If ((MAXH == Zero))
+                {
+                    Name (MR32, ResourceTemplate ()
+                    {
+                        DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
+                            0x00000000,         // Granularity
+                            0x00000000,         // Range Minimum
+                            0xFFFFFFFE,         // Range Maximum
+                            0x00000000,         // Translation Offset
+                            0xFFFFFFFF,         // Length
+                            ,, _Y01, AddressRangeMemory, TypeStatic)
+                    })
+                    CreateDWordField (MR32, \_SB.MHPC.MCRS._Y01._MIN, MIN)  // _MIN: Minimum Base Address
+                    CreateDWordField (MR32, \_SB.MHPC.MCRS._Y01._MAX, MAX)  // _MAX: Maximum Base Address
+                    CreateDWordField (MR32, \_SB.MHPC.MCRS._Y01._LEN, LEN)  // _LEN: Length
+                    MIN = MINL /* \_SB_.MHPC.MCRS.MINL */
+                    MAX = MAXL /* \_SB_.MHPC.MCRS.MAXL */
+                    LEN = LENL /* \_SB_.MHPC.MCRS.LENL */
+                    Release (MLCK)
+                    Return (MR32) /* \_SB_.MHPC.MCRS.MR32 */
+                }
+
+                Release (MLCK)
+                Return (MR64) /* \_SB_.MHPC.MCRS.MR64 */
+            }
+
+            Method (MPXM, 1, NotSerialized)
+            {
+                Acquire (MLCK, 0xFFFF)
+                MSEL = ToInteger (Arg0)
+                Local0 = MPX /* \_SB_.MHPC.MPX_ */
+                Release (MLCK)
+                Return (Local0)
+            }
+
+            Method (MOST, 4, NotSerialized)
+            {
+                Acquire (MLCK, 0xFFFF)
+                MSEL = ToInteger (Arg0)
+                MOEV = Arg1
+                MOSC = Arg2
+                Release (MLCK)
+            }
+
+            Method (MEJ0, 2, NotSerialized)
+            {
+                Acquire (MLCK, 0xFFFF)
+                MSEL = ToInteger (Arg0)
+                MEJ = One
+                Release (MLCK)
+            }
+
+            Device (MP00)
+            {
+                Name (_UID, "0x00")  // _UID: Unique ID
+                Name (_HID, EisaId ("PNP0C80") /* Memory Device */)  // _HID: Hardware ID
+                Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+                {
+                    Return (MCRS (_UID))
+                }
+
+                Method (_STA, 0, NotSerialized)  // _STA: Status
+                {
+                    Return (MRST (_UID))
+                }
+
+                Method (_PXM, 0, NotSerialized)  // _PXM: Device Proximity
+                {
+                    Return (MPXM (_UID))
+                }
+
+                Method (_OST, 3, NotSerialized)  // _OST: OSPM Status Indication
+                {
+                    MOST (_UID, Arg0, Arg1, Arg2)
+                }
+
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    MEJ0 (_UID, Arg0)
+                }
+            }
+
+            Device (MP01)
+            {
+                Name (_UID, "0x01")  // _UID: Unique ID
+                Name (_HID, EisaId ("PNP0C80") /* Memory Device */)  // _HID: Hardware ID
+                Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+                {
+                    Return (MCRS (_UID))
+                }
+
+                Method (_STA, 0, NotSerialized)  // _STA: Status
+                {
+                    Return (MRST (_UID))
+                }
+
+                Method (_PXM, 0, NotSerialized)  // _PXM: Device Proximity
+                {
+                    Return (MPXM (_UID))
+                }
+
+                Method (_OST, 3, NotSerialized)  // _OST: OSPM Status Indication
+                {
+                    MOST (_UID, Arg0, Arg1, Arg2)
+                }
+
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    MEJ0 (_UID, Arg0)
+                }
+            }
+
+            Device (MP02)
+            {
+                Name (_UID, "0x02")  // _UID: Unique ID
+                Name (_HID, EisaId ("PNP0C80") /* Memory Device */)  // _HID: Hardware ID
+                Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+                {
+                    Return (MCRS (_UID))
+                }
+
+                Method (_STA, 0, NotSerialized)  // _STA: Status
+                {
+                    Return (MRST (_UID))
+                }
+
+                Method (_PXM, 0, NotSerialized)  // _PXM: Device Proximity
+                {
+                    Return (MPXM (_UID))
+                }
+
+                Method (_OST, 3, NotSerialized)  // _OST: OSPM Status Indication
+                {
+                    MOST (_UID, Arg0, Arg1, Arg2)
+                }
+
+                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
+                {
+                    MEJ0 (_UID, Arg0)
+                }
+            }
+
+            Method (MTFY, 2, NotSerialized)
+            {
+                If ((Arg0 == Zero))
+                {
+                    Notify (MP00, Arg1)
+                }
+
+                If ((Arg0 == One))
+                {
+                    Notify (MP01, Arg1)
+                }
+
+                If ((Arg0 == 0x02))
+                {
+                    Notify (MP02, Arg1)
+                }
+            }
+        }
+
+        Device (PWRB)
+        {
+            Name (_HID, "PNP0C0C" /* Power Button Device */)  // _HID: Hardware ID
+            Name (_UID, Zero)  // _UID: Unique ID
+        }
+    }
+}
+
diff --git a/tests/data/acpi/virt/DSDT.numamem.dsl b/tests/data/acpi/virt/DSDT.numamem.dsl
new file mode 100644
index 0000000000..6603d31a01
--- /dev/null
+++ b/tests/data/acpi/virt/DSDT.numamem.dsl
@@ -0,0 +1,1906 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembling to symbolic ASL+ operators
+ *
+ * Disassembly of tests/data/acpi/virt/DSDT.numamem, Tue Aug  4 11:14:15 2020
+ *
+ * Original Table Header:
+ *     Signature        "DSDT"
+ *     Length           0x00001455 (5205)
+ *     Revision         0x02
+ *     Checksum         0xE1
+ *     OEM ID           "BOCHS "
+ *     OEM Table ID     "BXPCDSDT"
+ *     OEM Revision     0x00000001 (1)
+ *     Compiler ID      "BXPC"
+ *     Compiler Version 0x00000001 (1)
+ */
+DefinitionBlock ("", "DSDT", 2, "BOCHS ", "BXPCDSDT", 0x00000001)
+{
+    Scope (\_SB)
+    {
+        Device (C000)
+        {
+            Name (_HID, "ACPI0007" /* Processor Device */)  // _HID: Hardware ID
+            Name (_UID, Zero)  // _UID: Unique ID
+        }
+
+        Device (COM0)
+        {
+            Name (_HID, "ARMH0011")  // _HID: Hardware ID
+            Name (_UID, Zero)  // _UID: Unique ID
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x09000000,         // Address Base
+                    0x00001000,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000021,
+                }
+            })
+        }
+
+        Device (FWCF)
+        {
+            Name (_HID, "QEMU0002")  // _HID: Hardware ID
+            Name (_STA, 0x0B)  // _STA: Status
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x09020000,         // Address Base
+                    0x00000018,         // Address Length
+                    )
+            })
+        }
+
+        Device (VR00)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, Zero)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A000000,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000030,
+                }
+            })
+        }
+
+        Device (VR01)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, One)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A000200,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000031,
+                }
+            })
+        }
+
+        Device (VR02)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x02)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A000400,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000032,
+                }
+            })
+        }
+
+        Device (VR03)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x03)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A000600,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000033,
+                }
+            })
+        }
+
+        Device (VR04)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x04)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A000800,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000034,
+                }
+            })
+        }
+
+        Device (VR05)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x05)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A000A00,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000035,
+                }
+            })
+        }
+
+        Device (VR06)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x06)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A000C00,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000036,
+                }
+            })
+        }
+
+        Device (VR07)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x07)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A000E00,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000037,
+                }
+            })
+        }
+
+        Device (VR08)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x08)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A001000,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000038,
+                }
+            })
+        }
+
+        Device (VR09)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x09)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A001200,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000039,
+                }
+            })
+        }
+
+        Device (VR10)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x0A)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A001400,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x0000003A,
+                }
+            })
+        }
+
+        Device (VR11)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x0B)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A001600,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x0000003B,
+                }
+            })
+        }
+
+        Device (VR12)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x0C)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A001800,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x0000003C,
+                }
+            })
+        }
+
+        Device (VR13)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x0D)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A001A00,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x0000003D,
+                }
+            })
+        }
+
+        Device (VR14)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x0E)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A001C00,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x0000003E,
+                }
+            })
+        }
+
+        Device (VR15)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x0F)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A001E00,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x0000003F,
+                }
+            })
+        }
+
+        Device (VR16)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x10)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A002000,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000040,
+                }
+            })
+        }
+
+        Device (VR17)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x11)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A002200,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000041,
+                }
+            })
+        }
+
+        Device (VR18)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x12)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A002400,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000042,
+                }
+            })
+        }
+
+        Device (VR19)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x13)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A002600,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000043,
+                }
+            })
+        }
+
+        Device (VR20)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x14)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A002800,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000044,
+                }
+            })
+        }
+
+        Device (VR21)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x15)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A002A00,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000045,
+                }
+            })
+        }
+
+        Device (VR22)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x16)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A002C00,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000046,
+                }
+            })
+        }
+
+        Device (VR23)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x17)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A002E00,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000047,
+                }
+            })
+        }
+
+        Device (VR24)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x18)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A003000,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000048,
+                }
+            })
+        }
+
+        Device (VR25)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x19)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A003200,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000049,
+                }
+            })
+        }
+
+        Device (VR26)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x1A)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A003400,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x0000004A,
+                }
+            })
+        }
+
+        Device (VR27)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x1B)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A003600,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x0000004B,
+                }
+            })
+        }
+
+        Device (VR28)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x1C)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A003800,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x0000004C,
+                }
+            })
+        }
+
+        Device (VR29)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x1D)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A003A00,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x0000004D,
+                }
+            })
+        }
+
+        Device (VR30)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x1E)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A003C00,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x0000004E,
+                }
+            })
+        }
+
+        Device (VR31)
+        {
+            Name (_HID, "LNRO0005")  // _HID: Hardware ID
+            Name (_UID, 0x1F)  // _UID: Unique ID
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Memory32Fixed (ReadWrite,
+                    0x0A003E00,         // Address Base
+                    0x00000200,         // Address Length
+                    )
+                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                {
+                    0x0000004F,
+                }
+            })
+        }
+
+        Device (PCI0)
+        {
+            Name (_HID, "PNP0A08" /* PCI Express Bus */)  // _HID: Hardware ID
+            Name (_CID, "PNP0A03" /* PCI Bus */)  // _CID: Compatible ID
+            Name (_SEG, Zero)  // _SEG: PCI Segment
+            Name (_BBN, Zero)  // _BBN: BIOS Bus Number
+            Name (_UID, "PCI0")  // _UID: Unique ID
+            Name (_STR, Unicode ("PCIe 0 Device"))  // _STR: Description String
+            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
+            Name (_PRT, Package (0x80)  // _PRT: PCI Routing Table
+            {
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    Zero, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    One, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    0x02, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0xFFFF, 
+                    0x03, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    Zero, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    One, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    0x02, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0001FFFF, 
+                    0x03, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    Zero, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    One, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    0x02, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0002FFFF, 
+                    0x03, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    Zero, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    One, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    0x02, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0003FFFF, 
+                    0x03, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    Zero, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    One, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    0x02, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0004FFFF, 
+                    0x03, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    Zero, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    One, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    0x02, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0005FFFF, 
+                    0x03, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    Zero, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    One, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    0x02, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0006FFFF, 
+                    0x03, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    Zero, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    One, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    0x02, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0007FFFF, 
+                    0x03, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    Zero, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    One, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    0x02, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0008FFFF, 
+                    0x03, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    Zero, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    One, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    0x02, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0009FFFF, 
+                    0x03, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    Zero, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    One, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    0x02, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000AFFFF, 
+                    0x03, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    Zero, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    One, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    0x02, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000BFFFF, 
+                    0x03, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    Zero, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    One, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    0x02, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000CFFFF, 
+                    0x03, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    Zero, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    One, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    0x02, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000DFFFF, 
+                    0x03, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    Zero, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    One, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    0x02, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000EFFFF, 
+                    0x03, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    Zero, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    One, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    0x02, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x000FFFFF, 
+                    0x03, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    Zero, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    One, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    0x02, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0010FFFF, 
+                    0x03, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    Zero, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    One, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    0x02, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0011FFFF, 
+                    0x03, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    Zero, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    One, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    0x02, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0012FFFF, 
+                    0x03, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    Zero, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    One, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    0x02, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0013FFFF, 
+                    0x03, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    Zero, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    One, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    0x02, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0014FFFF, 
+                    0x03, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    Zero, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    One, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    0x02, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0015FFFF, 
+                    0x03, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    Zero, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    One, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    0x02, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0016FFFF, 
+                    0x03, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    Zero, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    One, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    0x02, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0017FFFF, 
+                    0x03, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    Zero, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    One, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    0x02, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0018FFFF, 
+                    0x03, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    Zero, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    One, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    0x02, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x0019FFFF, 
+                    0x03, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    Zero, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    One, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    0x02, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001AFFFF, 
+                    0x03, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    Zero, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    One, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    0x02, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001BFFFF, 
+                    0x03, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    Zero, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    One, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    0x02, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001CFFFF, 
+                    0x03, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    Zero, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    One, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    0x02, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001DFFFF, 
+                    0x03, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    Zero, 
+                    GSI2, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    One, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    0x02, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001EFFFF, 
+                    0x03, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    Zero, 
+                    GSI3, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    One, 
+                    GSI0, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    0x02, 
+                    GSI1, 
+                    Zero
+                }, 
+
+                Package (0x04)
+                {
+                    0x001FFFFF, 
+                    0x03, 
+                    GSI2, 
+                    Zero
+                }
+            })
+            Device (GSI0)
+            {
+                Name (_HID, "PNP0C0F" /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+                Name (_UID, Zero)  // _UID: Unique ID
+                Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+                {
+                    Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                    {
+                        0x00000023,
+                    }
+                })
+                Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+                {
+                    Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                    {
+                        0x00000023,
+                    }
+                })
+                Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+                {
+                }
+            }
+
+            Device (GSI1)
+            {
+                Name (_HID, "PNP0C0F" /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+                Name (_UID, One)  // _UID: Unique ID
+                Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+                {
+                    Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                    {
+                        0x00000024,
+                    }
+                })
+                Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+                {
+                    Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                    {
+                        0x00000024,
+                    }
+                })
+                Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+                {
+                }
+            }
+
+            Device (GSI2)
+            {
+                Name (_HID, "PNP0C0F" /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+                Name (_UID, 0x02)  // _UID: Unique ID
+                Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+                {
+                    Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                    {
+                        0x00000025,
+                    }
+                })
+                Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+                {
+                    Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                    {
+                        0x00000025,
+                    }
+                })
+                Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+                {
+                }
+            }
+
+            Device (GSI3)
+            {
+                Name (_HID, "PNP0C0F" /* PCI Interrupt Link Device */)  // _HID: Hardware ID
+                Name (_UID, 0x03)  // _UID: Unique ID
+                Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
+                {
+                    Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                    {
+                        0x00000026,
+                    }
+                })
+                Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+                {
+                    Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
+                    {
+                        0x00000026,
+                    }
+                })
+                Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
+                {
+                }
+            }
+
+            Method (_CBA, 0, NotSerialized)  // _CBA: Configuration Base Address
+            {
+                Return (0x0000004010000000)
+            }
+
+            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
+            {
+                Return (ResourceTemplate ()
+                {
+                    WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
+                        0x0000,             // Granularity
+                        0x0000,             // Range Minimum
+                        0x00FF,             // Range Maximum
+                        0x0000,             // Translation Offset
+                        0x0100,             // Length
+                        ,, )
+                    DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
+                        0x00000000,         // Granularity
+                        0x10000000,         // Range Minimum
+                        0x3EFEFFFF,         // Range Maximum
+                        0x00000000,         // Translation Offset
+                        0x2EFF0000,         // Length
+                        ,, , AddressRangeMemory, TypeStatic)
+                    DWordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
+                        0x00000000,         // Granularity
+                        0x00000000,         // Range Minimum
+                        0x0000FFFF,         // Range Maximum
+                        0x3EFF0000,         // Translation Offset
+                        0x00010000,         // Length
+                        ,, , TypeStatic, DenseTranslation)
+                    QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
+                        0x0000000000000000, // Granularity
+                        0x0000008000000000, // Range Minimum
+                        0x000000FFFFFFFFFF, // Range Maximum
+                        0x0000000000000000, // Translation Offset
+                        0x0000008000000000, // Length
+                        ,, , AddressRangeMemory, TypeStatic)
+                })
+            }
+
+            Name (SUPP, Zero)
+            Name (CTRL, Zero)
+            Method (_OSC, 4, NotSerialized)  // _OSC: Operating System Capabilities
+            {
+                CreateDWordField (Arg3, Zero, CDW1)
+                If ((Arg0 == ToUUID ("33db4d5b-1ff7-401c-9657-7441c03dd766") /* PCI Host Bridge Device */))
+                {
+                    CreateDWordField (Arg3, 0x04, CDW2)
+                    CreateDWordField (Arg3, 0x08, CDW3)
+                    SUPP = CDW2 /* \_SB_.PCI0._OSC.CDW2 */
+                    CTRL = CDW3 /* \_SB_.PCI0._OSC.CDW3 */
+                    CTRL &= 0x1F
+                    If ((Arg1 != One))
+                    {
+                        CDW1 |= 0x08
+                    }
+
+                    If ((CDW3 != CTRL))
+                    {
+                        CDW1 |= 0x10
+                    }
+
+                    CDW3 = CTRL /* \_SB_.PCI0.CTRL */
+                    Return (Arg3)
+                }
+                Else
+                {
+                    CDW1 |= 0x04
+                    Return (Arg3)
+                }
+            }
+
+            Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
+            {
+                If ((Arg0 == ToUUID ("e5c937d0-3553-4d7a-9117-ea4d19c3434d") /* Device Labeling Interface */))
+                {
+                    If ((Arg2 == Zero))
+                    {
+                        Return (Buffer (One)
+                        {
+                             0x01                                             // .
+                        })
+                    }
+                }
+
+                Return (Buffer (One)
+                {
+                     0x00                                             // .
+                })
+            }
+
+            Device (RES0)
+            {
+                Name (_HID, "PNP0C02" /* PNP Motherboard Resources */)  // _HID: Hardware ID
+                Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+                {
+                    QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
+                        0x0000000000000000, // Granularity
+                        0x0000004010000000, // Range Minimum
+                        0x000000401FFFFFFF, // Range Maximum
+                        0x0000000000000000, // Translation Offset
+                        0x0000000010000000, // Length
+                        ,, , AddressRangeMemory, TypeStatic)
+                })
+            }
+        }
+
+        Device (\_SB.GED)
+        {
+            Name (_HID, "ACPI0013" /* Generic Event Device */)  // _HID: Hardware ID
+            Name (_UID, "GED")  // _UID: Unique ID
+            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
+            {
+                Interrupt (ResourceConsumer, Edge, ActiveHigh, Exclusive, ,, )
+                {
+                    0x00000029,
+                }
+            })
+            OperationRegion (EREG, SystemMemory, 0x09080000, 0x04)
+            Field (EREG, DWordAcc, NoLock, WriteAsZeros)
+            {
+                ESEL,   32
+            }
+
+            Method (_EVT, 1, Serialized)  // _EVT: Event
+            {
+                Local0 = ESEL /* \_SB_.GED_.ESEL */
+                If (((Local0 & 0x02) == 0x02))
+                {
+                    Notify (PWRB, 0x80) // Status Change
+                }
+            }
+        }
+
+        Device (PWRB)
+        {
+            Name (_HID, "PNP0C0C" /* Power Button Device */)  // _HID: Hardware ID
+            Name (_UID, Zero)  // _UID: Unique ID
+        }
+    }
+}
+
diff --git a/tests/data/acpi/virt/FACP.dsl b/tests/data/acpi/virt/FACP.dsl
new file mode 100644
index 0000000000..2c73796f89
--- /dev/null
+++ b/tests/data/acpi/virt/FACP.dsl
@@ -0,0 +1,196 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/virt/FACP.numamem, Mon Sep 28 17:24:38 2020
+ *
+ * ACPI Data Table [FACP]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "FACP"    [Fixed ACPI Description Table (FADT)]
+[004h 0004   4]                 Table Length : 0000010C
+[008h 0008   1]                     Revision : 05
+[009h 0009   1]                     Checksum : BB
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCFACP"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]                 FACS Address : 00000000
+[028h 0040   4]                 DSDT Address : 00000000
+[02Ch 0044   1]                        Model : 00
+[02Dh 0045   1]                   PM Profile : 00 [Unspecified]
+[02Eh 0046   2]                SCI Interrupt : 0000
+[030h 0048   4]             SMI Command Port : 00000000
+[034h 0052   1]            ACPI Enable Value : 00
+[035h 0053   1]           ACPI Disable Value : 00
+[036h 0054   1]               S4BIOS Command : 00
+[037h 0055   1]              P-State Control : 00
+[038h 0056   4]     PM1A Event Block Address : 00000000
+[03Ch 0060   4]     PM1B Event Block Address : 00000000
+[040h 0064   4]   PM1A Control Block Address : 00000000
+[044h 0068   4]   PM1B Control Block Address : 00000000
+[048h 0072   4]    PM2 Control Block Address : 00000000
+[04Ch 0076   4]       PM Timer Block Address : 00000000
+[050h 0080   4]           GPE0 Block Address : 00000000
+[054h 0084   4]           GPE1 Block Address : 00000000
+[058h 0088   1]       PM1 Event Block Length : 00
+[059h 0089   1]     PM1 Control Block Length : 00
+[05Ah 0090   1]     PM2 Control Block Length : 00
+[05Bh 0091   1]        PM Timer Block Length : 00
+[05Ch 0092   1]            GPE0 Block Length : 00
+[05Dh 0093   1]            GPE1 Block Length : 00
+[05Eh 0094   1]             GPE1 Base Offset : 00
+[05Fh 0095   1]                 _CST Support : 00
+[060h 0096   2]                   C2 Latency : 0000
+[062h 0098   2]                   C3 Latency : 0000
+[064h 0100   2]               CPU Cache Size : 0000
+[066h 0102   2]           Cache Flush Stride : 0000
+[068h 0104   1]            Duty Cycle Offset : 00
+[069h 0105   1]             Duty Cycle Width : 00
+[06Ah 0106   1]          RTC Day Alarm Index : 00
+[06Bh 0107   1]        RTC Month Alarm Index : 00
+[06Ch 0108   1]            RTC Century Index : 00
+[06Dh 0109   2]   Boot Flags (decoded below) : 0000
+               Legacy Devices Supported (V2) : 0
+            8042 Present on ports 60/64 (V2) : 0
+                        VGA Not Present (V4) : 0
+                      MSI Not Supported (V4) : 0
+                PCIe ASPM Not Supported (V4) : 0
+                   CMOS RTC Not Present (V5) : 0
+[06Fh 0111   1]                     Reserved : 00
+[070h 0112   4]        Flags (decoded below) : 00100000
+      WBINVD instruction is operational (V1) : 0
+              WBINVD flushes all caches (V1) : 0
+                    All CPUs support C1 (V1) : 0
+                  C2 works on MP system (V1) : 0
+            Control Method Power Button (V1) : 0
+            Control Method Sleep Button (V1) : 0
+        RTC wake not in fixed reg space (V1) : 0
+            RTC can wake system from S4 (V1) : 0
+                        32-bit PM Timer (V1) : 0
+                      Docking Supported (V1) : 0
+               Reset Register Supported (V2) : 0
+                            Sealed Case (V3) : 0
+                    Headless - No Video (V3) : 0
+        Use native instr after SLP_TYPx (V3) : 0
+              PCIEXP_WAK Bits Supported (V4) : 0
+                     Use Platform Timer (V4) : 0
+               RTC_STS valid on S4 wake (V4) : 0
+                Remote Power-on capable (V4) : 0
+                 Use APIC Cluster Model (V4) : 0
+     Use APIC Physical Destination Mode (V4) : 0
+                       Hardware Reduced (V5) : 1
+                      Low Power S0 Idle (V5) : 0
+
+[074h 0116  12]               Reset Register : [Generic Address Structure]
+[074h 0116   1]                     Space ID : 00 [SystemMemory]
+[075h 0117   1]                    Bit Width : 00
+[076h 0118   1]                   Bit Offset : 00
+[077h 0119   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[078h 0120   8]                      Address : 0000000000000000
+
+[080h 0128   1]         Value to cause reset : 00
+[081h 0129   2]    ARM Flags (decoded below) : 0003
+                              PSCI Compliant : 1
+                       Must use HVC for PSCI : 1
+
+[083h 0131   1]          FADT Minor Revision : 01
+[084h 0132   8]                 FACS Address : 0000000000000000
+[08Ch 0140   8]                 DSDT Address : 0000000000000000
+[094h 0148  12]             PM1A Event Block : [Generic Address Structure]
+[094h 0148   1]                     Space ID : 00 [SystemMemory]
+[095h 0149   1]                    Bit Width : 00
+[096h 0150   1]                   Bit Offset : 00
+[097h 0151   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[098h 0152   8]                      Address : 0000000000000000
+
+[0A0h 0160  12]             PM1B Event Block : [Generic Address Structure]
+[0A0h 0160   1]                     Space ID : 00 [SystemMemory]
+[0A1h 0161   1]                    Bit Width : 00
+[0A2h 0162   1]                   Bit Offset : 00
+[0A3h 0163   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0A4h 0164   8]                      Address : 0000000000000000
+
+[0ACh 0172  12]           PM1A Control Block : [Generic Address Structure]
+[0ACh 0172   1]                     Space ID : 00 [SystemMemory]
+[0ADh 0173   1]                    Bit Width : 00
+[0AEh 0174   1]                   Bit Offset : 00
+[0AFh 0175   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0B0h 0176   8]                      Address : 0000000000000000
+
+[0B8h 0184  12]           PM1B Control Block : [Generic Address Structure]
+[0B8h 0184   1]                     Space ID : 00 [SystemMemory]
+[0B9h 0185   1]                    Bit Width : 00
+[0BAh 0186   1]                   Bit Offset : 00
+[0BBh 0187   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0BCh 0188   8]                      Address : 0000000000000000
+
+[0C4h 0196  12]            PM2 Control Block : [Generic Address Structure]
+[0C4h 0196   1]                     Space ID : 00 [SystemMemory]
+[0C5h 0197   1]                    Bit Width : 00
+[0C6h 0198   1]                   Bit Offset : 00
+[0C7h 0199   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0C8h 0200   8]                      Address : 0000000000000000
+
+[0D0h 0208  12]               PM Timer Block : [Generic Address Structure]
+[0D0h 0208   1]                     Space ID : 00 [SystemMemory]
+[0D1h 0209   1]                    Bit Width : 00
+[0D2h 0210   1]                   Bit Offset : 00
+[0D3h 0211   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0D4h 0212   8]                      Address : 0000000000000000
+
+[0DCh 0220  12]                   GPE0 Block : [Generic Address Structure]
+[0DCh 0220   1]                     Space ID : 00 [SystemMemory]
+[0DDh 0221   1]                    Bit Width : 00
+[0DEh 0222   1]                   Bit Offset : 00
+[0DFh 0223   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0E0h 0224   8]                      Address : 0000000000000000
+
+[0E8h 0232  12]                   GPE1 Block : [Generic Address Structure]
+[0E8h 0232   1]                     Space ID : 00 [SystemMemory]
+[0E9h 0233   1]                    Bit Width : 00
+[0EAh 0234   1]                   Bit Offset : 00
+[0EBh 0235   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0ECh 0236   8]                      Address : 0000000000000000
+
+
+[0F4h 0244  12]       Sleep Control Register : [Generic Address Structure]
+[0F4h 0244   1]                     Space ID : 00 [SystemMemory]
+[0F5h 0245   1]                    Bit Width : 00
+[0F6h 0246   1]                   Bit Offset : 00
+[0F7h 0247   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0F8h 0248   8]                      Address : 0000000000000000
+
+[100h 0256  12]        Sleep Status Register : [Generic Address Structure]
+[100h 0256   1]                     Space ID : 00 [SystemMemory]
+[101h 0257   1]                    Bit Width : 00
+[102h 0258   1]                   Bit Offset : 00
+[103h 0259   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[104h 0260   8]                      Address : 0000000000000000
+
+/**** ACPI table terminates in the middle of a data structure! (dump table) */
+
+Raw Table Data: Length 268 (0x10C)
+
+    0000: 46 41 43 50 0C 01 00 00 05 BB 42 4F 43 48 53 20  // FACP......BOCHS 
+    0010: 42 58 50 43 46 41 43 50 01 00 00 00 42 58 50 43  // BXPCFACP....BXPC
+    0020: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0040: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0050: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0070: 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0080: 00 03 00 01 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0090: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0100: 00 00 00 00 00 00 00 00 00 00 00 00              // ............
diff --git a/tests/data/acpi/virt/FACP.memhp.dsl b/tests/data/acpi/virt/FACP.memhp.dsl
new file mode 100644
index 0000000000..0083b95ef7
--- /dev/null
+++ b/tests/data/acpi/virt/FACP.memhp.dsl
@@ -0,0 +1,196 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/virt/FACP.memhp, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [FACP]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "FACP"    [Fixed ACPI Description Table (FADT)]
+[004h 0004   4]                 Table Length : 0000010C
+[008h 0008   1]                     Revision : 05
+[009h 0009   1]                     Checksum : BB
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCFACP"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]                 FACS Address : 00000000
+[028h 0040   4]                 DSDT Address : 00000000
+[02Ch 0044   1]                        Model : 00
+[02Dh 0045   1]                   PM Profile : 00 [Unspecified]
+[02Eh 0046   2]                SCI Interrupt : 0000
+[030h 0048   4]             SMI Command Port : 00000000
+[034h 0052   1]            ACPI Enable Value : 00
+[035h 0053   1]           ACPI Disable Value : 00
+[036h 0054   1]               S4BIOS Command : 00
+[037h 0055   1]              P-State Control : 00
+[038h 0056   4]     PM1A Event Block Address : 00000000
+[03Ch 0060   4]     PM1B Event Block Address : 00000000
+[040h 0064   4]   PM1A Control Block Address : 00000000
+[044h 0068   4]   PM1B Control Block Address : 00000000
+[048h 0072   4]    PM2 Control Block Address : 00000000
+[04Ch 0076   4]       PM Timer Block Address : 00000000
+[050h 0080   4]           GPE0 Block Address : 00000000
+[054h 0084   4]           GPE1 Block Address : 00000000
+[058h 0088   1]       PM1 Event Block Length : 00
+[059h 0089   1]     PM1 Control Block Length : 00
+[05Ah 0090   1]     PM2 Control Block Length : 00
+[05Bh 0091   1]        PM Timer Block Length : 00
+[05Ch 0092   1]            GPE0 Block Length : 00
+[05Dh 0093   1]            GPE1 Block Length : 00
+[05Eh 0094   1]             GPE1 Base Offset : 00
+[05Fh 0095   1]                 _CST Support : 00
+[060h 0096   2]                   C2 Latency : 0000
+[062h 0098   2]                   C3 Latency : 0000
+[064h 0100   2]               CPU Cache Size : 0000
+[066h 0102   2]           Cache Flush Stride : 0000
+[068h 0104   1]            Duty Cycle Offset : 00
+[069h 0105   1]             Duty Cycle Width : 00
+[06Ah 0106   1]          RTC Day Alarm Index : 00
+[06Bh 0107   1]        RTC Month Alarm Index : 00
+[06Ch 0108   1]            RTC Century Index : 00
+[06Dh 0109   2]   Boot Flags (decoded below) : 0000
+               Legacy Devices Supported (V2) : 0
+            8042 Present on ports 60/64 (V2) : 0
+                        VGA Not Present (V4) : 0
+                      MSI Not Supported (V4) : 0
+                PCIe ASPM Not Supported (V4) : 0
+                   CMOS RTC Not Present (V5) : 0
+[06Fh 0111   1]                     Reserved : 00
+[070h 0112   4]        Flags (decoded below) : 00100000
+      WBINVD instruction is operational (V1) : 0
+              WBINVD flushes all caches (V1) : 0
+                    All CPUs support C1 (V1) : 0
+                  C2 works on MP system (V1) : 0
+            Control Method Power Button (V1) : 0
+            Control Method Sleep Button (V1) : 0
+        RTC wake not in fixed reg space (V1) : 0
+            RTC can wake system from S4 (V1) : 0
+                        32-bit PM Timer (V1) : 0
+                      Docking Supported (V1) : 0
+               Reset Register Supported (V2) : 0
+                            Sealed Case (V3) : 0
+                    Headless - No Video (V3) : 0
+        Use native instr after SLP_TYPx (V3) : 0
+              PCIEXP_WAK Bits Supported (V4) : 0
+                     Use Platform Timer (V4) : 0
+               RTC_STS valid on S4 wake (V4) : 0
+                Remote Power-on capable (V4) : 0
+                 Use APIC Cluster Model (V4) : 0
+     Use APIC Physical Destination Mode (V4) : 0
+                       Hardware Reduced (V5) : 1
+                      Low Power S0 Idle (V5) : 0
+
+[074h 0116  12]               Reset Register : [Generic Address Structure]
+[074h 0116   1]                     Space ID : 00 [SystemMemory]
+[075h 0117   1]                    Bit Width : 00
+[076h 0118   1]                   Bit Offset : 00
+[077h 0119   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[078h 0120   8]                      Address : 0000000000000000
+
+[080h 0128   1]         Value to cause reset : 00
+[081h 0129   2]    ARM Flags (decoded below) : 0003
+                              PSCI Compliant : 1
+                       Must use HVC for PSCI : 1
+
+[083h 0131   1]          FADT Minor Revision : 01
+[084h 0132   8]                 FACS Address : 0000000000000000
+[08Ch 0140   8]                 DSDT Address : 0000000000000000
+[094h 0148  12]             PM1A Event Block : [Generic Address Structure]
+[094h 0148   1]                     Space ID : 00 [SystemMemory]
+[095h 0149   1]                    Bit Width : 00
+[096h 0150   1]                   Bit Offset : 00
+[097h 0151   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[098h 0152   8]                      Address : 0000000000000000
+
+[0A0h 0160  12]             PM1B Event Block : [Generic Address Structure]
+[0A0h 0160   1]                     Space ID : 00 [SystemMemory]
+[0A1h 0161   1]                    Bit Width : 00
+[0A2h 0162   1]                   Bit Offset : 00
+[0A3h 0163   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0A4h 0164   8]                      Address : 0000000000000000
+
+[0ACh 0172  12]           PM1A Control Block : [Generic Address Structure]
+[0ACh 0172   1]                     Space ID : 00 [SystemMemory]
+[0ADh 0173   1]                    Bit Width : 00
+[0AEh 0174   1]                   Bit Offset : 00
+[0AFh 0175   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0B0h 0176   8]                      Address : 0000000000000000
+
+[0B8h 0184  12]           PM1B Control Block : [Generic Address Structure]
+[0B8h 0184   1]                     Space ID : 00 [SystemMemory]
+[0B9h 0185   1]                    Bit Width : 00
+[0BAh 0186   1]                   Bit Offset : 00
+[0BBh 0187   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0BCh 0188   8]                      Address : 0000000000000000
+
+[0C4h 0196  12]            PM2 Control Block : [Generic Address Structure]
+[0C4h 0196   1]                     Space ID : 00 [SystemMemory]
+[0C5h 0197   1]                    Bit Width : 00
+[0C6h 0198   1]                   Bit Offset : 00
+[0C7h 0199   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0C8h 0200   8]                      Address : 0000000000000000
+
+[0D0h 0208  12]               PM Timer Block : [Generic Address Structure]
+[0D0h 0208   1]                     Space ID : 00 [SystemMemory]
+[0D1h 0209   1]                    Bit Width : 00
+[0D2h 0210   1]                   Bit Offset : 00
+[0D3h 0211   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0D4h 0212   8]                      Address : 0000000000000000
+
+[0DCh 0220  12]                   GPE0 Block : [Generic Address Structure]
+[0DCh 0220   1]                     Space ID : 00 [SystemMemory]
+[0DDh 0221   1]                    Bit Width : 00
+[0DEh 0222   1]                   Bit Offset : 00
+[0DFh 0223   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0E0h 0224   8]                      Address : 0000000000000000
+
+[0E8h 0232  12]                   GPE1 Block : [Generic Address Structure]
+[0E8h 0232   1]                     Space ID : 00 [SystemMemory]
+[0E9h 0233   1]                    Bit Width : 00
+[0EAh 0234   1]                   Bit Offset : 00
+[0EBh 0235   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0ECh 0236   8]                      Address : 0000000000000000
+
+
+[0F4h 0244  12]       Sleep Control Register : [Generic Address Structure]
+[0F4h 0244   1]                     Space ID : 00 [SystemMemory]
+[0F5h 0245   1]                    Bit Width : 00
+[0F6h 0246   1]                   Bit Offset : 00
+[0F7h 0247   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0F8h 0248   8]                      Address : 0000000000000000
+
+[100h 0256  12]        Sleep Status Register : [Generic Address Structure]
+[100h 0256   1]                     Space ID : 00 [SystemMemory]
+[101h 0257   1]                    Bit Width : 00
+[102h 0258   1]                   Bit Offset : 00
+[103h 0259   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[104h 0260   8]                      Address : 0000000000000000
+
+/**** ACPI table terminates in the middle of a data structure! (dump table) */
+
+Raw Table Data: Length 268 (0x10C)
+
+    0000: 46 41 43 50 0C 01 00 00 05 BB 42 4F 43 48 53 20  // FACP......BOCHS 
+    0010: 42 58 50 43 46 41 43 50 01 00 00 00 42 58 50 43  // BXPCFACP....BXPC
+    0020: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0040: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0050: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0070: 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0080: 00 03 00 01 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0090: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0100: 00 00 00 00 00 00 00 00 00 00 00 00              // ............
diff --git a/tests/data/acpi/virt/FACP.numamem.dsl b/tests/data/acpi/virt/FACP.numamem.dsl
new file mode 100644
index 0000000000..aee15bd4c2
--- /dev/null
+++ b/tests/data/acpi/virt/FACP.numamem.dsl
@@ -0,0 +1,196 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/virt/FACP.numamem, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [FACP]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "FACP"    [Fixed ACPI Description Table (FADT)]
+[004h 0004   4]                 Table Length : 0000010C
+[008h 0008   1]                     Revision : 05
+[009h 0009   1]                     Checksum : BB
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCFACP"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]                 FACS Address : 00000000
+[028h 0040   4]                 DSDT Address : 00000000
+[02Ch 0044   1]                        Model : 00
+[02Dh 0045   1]                   PM Profile : 00 [Unspecified]
+[02Eh 0046   2]                SCI Interrupt : 0000
+[030h 0048   4]             SMI Command Port : 00000000
+[034h 0052   1]            ACPI Enable Value : 00
+[035h 0053   1]           ACPI Disable Value : 00
+[036h 0054   1]               S4BIOS Command : 00
+[037h 0055   1]              P-State Control : 00
+[038h 0056   4]     PM1A Event Block Address : 00000000
+[03Ch 0060   4]     PM1B Event Block Address : 00000000
+[040h 0064   4]   PM1A Control Block Address : 00000000
+[044h 0068   4]   PM1B Control Block Address : 00000000
+[048h 0072   4]    PM2 Control Block Address : 00000000
+[04Ch 0076   4]       PM Timer Block Address : 00000000
+[050h 0080   4]           GPE0 Block Address : 00000000
+[054h 0084   4]           GPE1 Block Address : 00000000
+[058h 0088   1]       PM1 Event Block Length : 00
+[059h 0089   1]     PM1 Control Block Length : 00
+[05Ah 0090   1]     PM2 Control Block Length : 00
+[05Bh 0091   1]        PM Timer Block Length : 00
+[05Ch 0092   1]            GPE0 Block Length : 00
+[05Dh 0093   1]            GPE1 Block Length : 00
+[05Eh 0094   1]             GPE1 Base Offset : 00
+[05Fh 0095   1]                 _CST Support : 00
+[060h 0096   2]                   C2 Latency : 0000
+[062h 0098   2]                   C3 Latency : 0000
+[064h 0100   2]               CPU Cache Size : 0000
+[066h 0102   2]           Cache Flush Stride : 0000
+[068h 0104   1]            Duty Cycle Offset : 00
+[069h 0105   1]             Duty Cycle Width : 00
+[06Ah 0106   1]          RTC Day Alarm Index : 00
+[06Bh 0107   1]        RTC Month Alarm Index : 00
+[06Ch 0108   1]            RTC Century Index : 00
+[06Dh 0109   2]   Boot Flags (decoded below) : 0000
+               Legacy Devices Supported (V2) : 0
+            8042 Present on ports 60/64 (V2) : 0
+                        VGA Not Present (V4) : 0
+                      MSI Not Supported (V4) : 0
+                PCIe ASPM Not Supported (V4) : 0
+                   CMOS RTC Not Present (V5) : 0
+[06Fh 0111   1]                     Reserved : 00
+[070h 0112   4]        Flags (decoded below) : 00100000
+      WBINVD instruction is operational (V1) : 0
+              WBINVD flushes all caches (V1) : 0
+                    All CPUs support C1 (V1) : 0
+                  C2 works on MP system (V1) : 0
+            Control Method Power Button (V1) : 0
+            Control Method Sleep Button (V1) : 0
+        RTC wake not in fixed reg space (V1) : 0
+            RTC can wake system from S4 (V1) : 0
+                        32-bit PM Timer (V1) : 0
+                      Docking Supported (V1) : 0
+               Reset Register Supported (V2) : 0
+                            Sealed Case (V3) : 0
+                    Headless - No Video (V3) : 0
+        Use native instr after SLP_TYPx (V3) : 0
+              PCIEXP_WAK Bits Supported (V4) : 0
+                     Use Platform Timer (V4) : 0
+               RTC_STS valid on S4 wake (V4) : 0
+                Remote Power-on capable (V4) : 0
+                 Use APIC Cluster Model (V4) : 0
+     Use APIC Physical Destination Mode (V4) : 0
+                       Hardware Reduced (V5) : 1
+                      Low Power S0 Idle (V5) : 0
+
+[074h 0116  12]               Reset Register : [Generic Address Structure]
+[074h 0116   1]                     Space ID : 00 [SystemMemory]
+[075h 0117   1]                    Bit Width : 00
+[076h 0118   1]                   Bit Offset : 00
+[077h 0119   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[078h 0120   8]                      Address : 0000000000000000
+
+[080h 0128   1]         Value to cause reset : 00
+[081h 0129   2]    ARM Flags (decoded below) : 0003
+                              PSCI Compliant : 1
+                       Must use HVC for PSCI : 1
+
+[083h 0131   1]          FADT Minor Revision : 01
+[084h 0132   8]                 FACS Address : 0000000000000000
+[08Ch 0140   8]                 DSDT Address : 0000000000000000
+[094h 0148  12]             PM1A Event Block : [Generic Address Structure]
+[094h 0148   1]                     Space ID : 00 [SystemMemory]
+[095h 0149   1]                    Bit Width : 00
+[096h 0150   1]                   Bit Offset : 00
+[097h 0151   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[098h 0152   8]                      Address : 0000000000000000
+
+[0A0h 0160  12]             PM1B Event Block : [Generic Address Structure]
+[0A0h 0160   1]                     Space ID : 00 [SystemMemory]
+[0A1h 0161   1]                    Bit Width : 00
+[0A2h 0162   1]                   Bit Offset : 00
+[0A3h 0163   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0A4h 0164   8]                      Address : 0000000000000000
+
+[0ACh 0172  12]           PM1A Control Block : [Generic Address Structure]
+[0ACh 0172   1]                     Space ID : 00 [SystemMemory]
+[0ADh 0173   1]                    Bit Width : 00
+[0AEh 0174   1]                   Bit Offset : 00
+[0AFh 0175   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0B0h 0176   8]                      Address : 0000000000000000
+
+[0B8h 0184  12]           PM1B Control Block : [Generic Address Structure]
+[0B8h 0184   1]                     Space ID : 00 [SystemMemory]
+[0B9h 0185   1]                    Bit Width : 00
+[0BAh 0186   1]                   Bit Offset : 00
+[0BBh 0187   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0BCh 0188   8]                      Address : 0000000000000000
+
+[0C4h 0196  12]            PM2 Control Block : [Generic Address Structure]
+[0C4h 0196   1]                     Space ID : 00 [SystemMemory]
+[0C5h 0197   1]                    Bit Width : 00
+[0C6h 0198   1]                   Bit Offset : 00
+[0C7h 0199   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0C8h 0200   8]                      Address : 0000000000000000
+
+[0D0h 0208  12]               PM Timer Block : [Generic Address Structure]
+[0D0h 0208   1]                     Space ID : 00 [SystemMemory]
+[0D1h 0209   1]                    Bit Width : 00
+[0D2h 0210   1]                   Bit Offset : 00
+[0D3h 0211   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0D4h 0212   8]                      Address : 0000000000000000
+
+[0DCh 0220  12]                   GPE0 Block : [Generic Address Structure]
+[0DCh 0220   1]                     Space ID : 00 [SystemMemory]
+[0DDh 0221   1]                    Bit Width : 00
+[0DEh 0222   1]                   Bit Offset : 00
+[0DFh 0223   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0E0h 0224   8]                      Address : 0000000000000000
+
+[0E8h 0232  12]                   GPE1 Block : [Generic Address Structure]
+[0E8h 0232   1]                     Space ID : 00 [SystemMemory]
+[0E9h 0233   1]                    Bit Width : 00
+[0EAh 0234   1]                   Bit Offset : 00
+[0EBh 0235   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0ECh 0236   8]                      Address : 0000000000000000
+
+
+[0F4h 0244  12]       Sleep Control Register : [Generic Address Structure]
+[0F4h 0244   1]                     Space ID : 00 [SystemMemory]
+[0F5h 0245   1]                    Bit Width : 00
+[0F6h 0246   1]                   Bit Offset : 00
+[0F7h 0247   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[0F8h 0248   8]                      Address : 0000000000000000
+
+[100h 0256  12]        Sleep Status Register : [Generic Address Structure]
+[100h 0256   1]                     Space ID : 00 [SystemMemory]
+[101h 0257   1]                    Bit Width : 00
+[102h 0258   1]                   Bit Offset : 00
+[103h 0259   1]         Encoded Access Width : 00 [Undefined/Legacy]
+[104h 0260   8]                      Address : 0000000000000000
+
+/**** ACPI table terminates in the middle of a data structure! (dump table) */
+
+Raw Table Data: Length 268 (0x10C)
+
+    0000: 46 41 43 50 0C 01 00 00 05 BB 42 4F 43 48 53 20  // FACP......BOCHS 
+    0010: 42 58 50 43 46 41 43 50 01 00 00 00 42 58 50 43  // BXPCFACP....BXPC
+    0020: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0040: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0050: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0070: 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0080: 00 03 00 01 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0090: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0100: 00 00 00 00 00 00 00 00 00 00 00 00              // ............
diff --git a/tests/data/acpi/virt/GTDT.dsl b/tests/data/acpi/virt/GTDT.dsl
new file mode 100644
index 0000000000..1ab06dd3c2
--- /dev/null
+++ b/tests/data/acpi/virt/GTDT.dsl
@@ -0,0 +1,61 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/virt/GTDT.numamem, Mon Sep 28 17:24:38 2020
+ *
+ * ACPI Data Table [GTDT]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "GTDT"    [Generic Timer Description Table]
+[004h 0004   4]                 Table Length : 00000060
+[008h 0008   1]                     Revision : 02
+[009h 0009   1]                     Checksum : D9
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCGTDT"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   8]        Counter Block Address : 0000000000000000
+[02Ch 0044   4]                     Reserved : 00000000
+
+[030h 0048   4]         Secure EL1 Interrupt : 0000001D
+[034h 0052   4]    EL1 Flags (decoded below) : 00000000
+                                Trigger Mode : 0
+                                    Polarity : 0
+                                   Always On : 0
+
+[038h 0056   4]     Non-Secure EL1 Interrupt : 0000001E
+[03Ch 0060   4]   NEL1 Flags (decoded below) : 00000004
+                                Trigger Mode : 0
+                                    Polarity : 0
+                                   Always On : 1
+
+[040h 0064   4]      Virtual Timer Interrupt : 0000001B
+[044h 0068   4]     VT Flags (decoded below) : 00000000
+                                Trigger Mode : 0
+                                    Polarity : 0
+                                   Always On : 0
+
+[048h 0072   4]     Non-Secure EL2 Interrupt : 0000001A
+[04Ch 0076   4]   NEL2 Flags (decoded below) : 00000000
+                                Trigger Mode : 0
+                                    Polarity : 0
+                                   Always On : 0
+[050h 0080   8]   Counter Read Block Address : 0000000000000000
+
+[058h 0088   4]         Platform Timer Count : 00000000
+[05Ch 0092   4]        Platform Timer Offset : 00000000
+
+Raw Table Data: Length 96 (0x60)
+
+    0000: 47 54 44 54 60 00 00 00 02 D9 42 4F 43 48 53 20  // GTDT`.....BOCHS 
+    0010: 42 58 50 43 47 54 44 54 01 00 00 00 42 58 50 43  // BXPCGTDT....BXPC
+    0020: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0030: 1D 00 00 00 00 00 00 00 1E 00 00 00 04 00 00 00  // ................
+    0040: 1B 00 00 00 00 00 00 00 1A 00 00 00 00 00 00 00  // ................
+    0050: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
diff --git a/tests/data/acpi/virt/GTDT.memhp.dsl b/tests/data/acpi/virt/GTDT.memhp.dsl
new file mode 100644
index 0000000000..d78bb092c5
--- /dev/null
+++ b/tests/data/acpi/virt/GTDT.memhp.dsl
@@ -0,0 +1,61 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/virt/GTDT.memhp, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [GTDT]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "GTDT"    [Generic Timer Description Table]
+[004h 0004   4]                 Table Length : 00000060
+[008h 0008   1]                     Revision : 02
+[009h 0009   1]                     Checksum : D9
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCGTDT"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   8]        Counter Block Address : 0000000000000000
+[02Ch 0044   4]                     Reserved : 00000000
+
+[030h 0048   4]         Secure EL1 Interrupt : 0000001D
+[034h 0052   4]    EL1 Flags (decoded below) : 00000000
+                                Trigger Mode : 0
+                                    Polarity : 0
+                                   Always On : 0
+
+[038h 0056   4]     Non-Secure EL1 Interrupt : 0000001E
+[03Ch 0060   4]   NEL1 Flags (decoded below) : 00000004
+                                Trigger Mode : 0
+                                    Polarity : 0
+                                   Always On : 1
+
+[040h 0064   4]      Virtual Timer Interrupt : 0000001B
+[044h 0068   4]     VT Flags (decoded below) : 00000000
+                                Trigger Mode : 0
+                                    Polarity : 0
+                                   Always On : 0
+
+[048h 0072   4]     Non-Secure EL2 Interrupt : 0000001A
+[04Ch 0076   4]   NEL2 Flags (decoded below) : 00000000
+                                Trigger Mode : 0
+                                    Polarity : 0
+                                   Always On : 0
+[050h 0080   8]   Counter Read Block Address : 0000000000000000
+
+[058h 0088   4]         Platform Timer Count : 00000000
+[05Ch 0092   4]        Platform Timer Offset : 00000000
+
+Raw Table Data: Length 96 (0x60)
+
+    0000: 47 54 44 54 60 00 00 00 02 D9 42 4F 43 48 53 20  // GTDT`.....BOCHS 
+    0010: 42 58 50 43 47 54 44 54 01 00 00 00 42 58 50 43  // BXPCGTDT....BXPC
+    0020: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0030: 1D 00 00 00 00 00 00 00 1E 00 00 00 04 00 00 00  // ................
+    0040: 1B 00 00 00 00 00 00 00 1A 00 00 00 00 00 00 00  // ................
+    0050: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
diff --git a/tests/data/acpi/virt/GTDT.numamem.dsl b/tests/data/acpi/virt/GTDT.numamem.dsl
new file mode 100644
index 0000000000..5c3c2a83db
--- /dev/null
+++ b/tests/data/acpi/virt/GTDT.numamem.dsl
@@ -0,0 +1,61 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/virt/GTDT.numamem, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [GTDT]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "GTDT"    [Generic Timer Description Table]
+[004h 0004   4]                 Table Length : 00000060
+[008h 0008   1]                     Revision : 02
+[009h 0009   1]                     Checksum : D9
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCGTDT"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   8]        Counter Block Address : 0000000000000000
+[02Ch 0044   4]                     Reserved : 00000000
+
+[030h 0048   4]         Secure EL1 Interrupt : 0000001D
+[034h 0052   4]    EL1 Flags (decoded below) : 00000000
+                                Trigger Mode : 0
+                                    Polarity : 0
+                                   Always On : 0
+
+[038h 0056   4]     Non-Secure EL1 Interrupt : 0000001E
+[03Ch 0060   4]   NEL1 Flags (decoded below) : 00000004
+                                Trigger Mode : 0
+                                    Polarity : 0
+                                   Always On : 1
+
+[040h 0064   4]      Virtual Timer Interrupt : 0000001B
+[044h 0068   4]     VT Flags (decoded below) : 00000000
+                                Trigger Mode : 0
+                                    Polarity : 0
+                                   Always On : 0
+
+[048h 0072   4]     Non-Secure EL2 Interrupt : 0000001A
+[04Ch 0076   4]   NEL2 Flags (decoded below) : 00000000
+                                Trigger Mode : 0
+                                    Polarity : 0
+                                   Always On : 0
+[050h 0080   8]   Counter Read Block Address : 0000000000000000
+
+[058h 0088   4]         Platform Timer Count : 00000000
+[05Ch 0092   4]        Platform Timer Offset : 00000000
+
+Raw Table Data: Length 96 (0x60)
+
+    0000: 47 54 44 54 60 00 00 00 02 D9 42 4F 43 48 53 20  // GTDT`.....BOCHS 
+    0010: 42 58 50 43 47 54 44 54 01 00 00 00 42 58 50 43  // BXPCGTDT....BXPC
+    0020: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0030: 1D 00 00 00 00 00 00 00 1E 00 00 00 04 00 00 00  // ................
+    0040: 1B 00 00 00 00 00 00 00 1A 00 00 00 00 00 00 00  // ................
+    0050: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
diff --git a/tests/data/acpi/virt/MCFG.dsl b/tests/data/acpi/virt/MCFG.dsl
new file mode 100644
index 0000000000..f09c86f487
--- /dev/null
+++ b/tests/data/acpi/virt/MCFG.dsl
@@ -0,0 +1,36 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/virt/MCFG.numamem, Mon Sep 28 17:24:38 2020
+ *
+ * ACPI Data Table [MCFG]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "MCFG"    [Memory Mapped Configuration table]
+[004h 0004   4]                 Table Length : 0000003C
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 4F
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCMCFG"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   8]                     Reserved : 0000000000000000
+
+[02Ch 0044   8]                 Base Address : 0000004010000000
+[034h 0052   2]         Segment Group Number : 0000
+[036h 0054   1]             Start Bus Number : 00
+[037h 0055   1]               End Bus Number : FF
+[038h 0056   4]                     Reserved : 00000000
+
+Raw Table Data: Length 60 (0x3C)
+
+    0000: 4D 43 46 47 3C 00 00 00 01 4F 42 4F 43 48 53 20  // MCFG<....OBOCHS 
+    0010: 42 58 50 43 4D 43 46 47 01 00 00 00 42 58 50 43  // BXPCMCFG....BXPC
+    0020: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 10  // ................
+    0030: 40 00 00 00 00 00 00 FF 00 00 00 00              // @...........
diff --git a/tests/data/acpi/virt/MCFG.memhp.dsl b/tests/data/acpi/virt/MCFG.memhp.dsl
new file mode 100644
index 0000000000..b03a6384e8
--- /dev/null
+++ b/tests/data/acpi/virt/MCFG.memhp.dsl
@@ -0,0 +1,36 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/virt/MCFG.memhp, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [MCFG]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "MCFG"    [Memory Mapped Configuration table]
+[004h 0004   4]                 Table Length : 0000003C
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 4F
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCMCFG"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   8]                     Reserved : 0000000000000000
+
+[02Ch 0044   8]                 Base Address : 0000004010000000
+[034h 0052   2]         Segment Group Number : 0000
+[036h 0054   1]             Start Bus Number : 00
+[037h 0055   1]               End Bus Number : FF
+[038h 0056   4]                     Reserved : 00000000
+
+Raw Table Data: Length 60 (0x3C)
+
+    0000: 4D 43 46 47 3C 00 00 00 01 4F 42 4F 43 48 53 20  // MCFG<....OBOCHS 
+    0010: 42 58 50 43 4D 43 46 47 01 00 00 00 42 58 50 43  // BXPCMCFG....BXPC
+    0020: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 10  // ................
+    0030: 40 00 00 00 00 00 00 FF 00 00 00 00              // @...........
diff --git a/tests/data/acpi/virt/MCFG.numamem.dsl b/tests/data/acpi/virt/MCFG.numamem.dsl
new file mode 100644
index 0000000000..303df803f5
--- /dev/null
+++ b/tests/data/acpi/virt/MCFG.numamem.dsl
@@ -0,0 +1,36 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/virt/MCFG.numamem, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [MCFG]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "MCFG"    [Memory Mapped Configuration table]
+[004h 0004   4]                 Table Length : 0000003C
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 4F
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCMCFG"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   8]                     Reserved : 0000000000000000
+
+[02Ch 0044   8]                 Base Address : 0000004010000000
+[034h 0052   2]         Segment Group Number : 0000
+[036h 0054   1]             Start Bus Number : 00
+[037h 0055   1]               End Bus Number : FF
+[038h 0056   4]                     Reserved : 00000000
+
+Raw Table Data: Length 60 (0x3C)
+
+    0000: 4D 43 46 47 3C 00 00 00 01 4F 42 4F 43 48 53 20  // MCFG<....OBOCHS 
+    0010: 42 58 50 43 4D 43 46 47 01 00 00 00 42 58 50 43  // BXPCMCFG....BXPC
+    0020: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 10  // ................
+    0030: 40 00 00 00 00 00 00 FF 00 00 00 00              // @...........
diff --git a/tests/data/acpi/virt/NFIT.dsl b/tests/data/acpi/virt/NFIT.dsl
new file mode 100644
index 0000000000..947ba0f6a4
--- /dev/null
+++ b/tests/data/acpi/virt/NFIT.dsl
@@ -0,0 +1,103 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/virt/NFIT.memhp, Mon Sep 28 17:24:38 2020
+ *
+ * ACPI Data Table [NFIT]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "NFIT"    [NVDIMM Firmware Interface Table]
+[004h 0004   4]                 Table Length : 000000E0
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : D1
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCNFIT"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]                     Reserved : 00000000
+
+[028h 0040   2]                Subtable Type : 0000 [System Physical Address Range]
+[02Ah 0042   2]                       Length : 0038
+
+[02Ch 0044   2]                  Range Index : 0004
+[02Eh 0046   2]        Flags (decoded below) : 0003
+                   Add/Online Operation Only : 1
+                      Proximity Domain Valid : 1
+[030h 0048   4]                     Reserved : 00000000
+[034h 0052   4]             Proximity Domain : 00000001
+[038h 0056  16]             Region Type GUID : 66F0D379-B4F3-4074-AC43-0D3318B78CDB
+[048h 0072   8]           Address Range Base : 0000000088000000
+[050h 0080   8]         Address Range Length : 0000000008000000
+[058h 0088   8]         Memory Map Attribute : 0000000000008008
+
+[060h 0096   2]                Subtable Type : 0001 [Memory Range Map]
+[062h 0098   2]                       Length : 0030
+
+[064h 0100   4]                Device Handle : 00000002
+[068h 0104   2]                  Physical Id : 0000
+[06Ah 0106   2]                    Region Id : 0000
+[06Ch 0108   2]                  Range Index : 0004
+[06Eh 0110   2]         Control Region Index : 0005
+[070h 0112   8]                  Region Size : 0000000008000000
+[078h 0120   8]                Region Offset : 0000000000000000
+[080h 0128   8]          Address Region Base : 0000000000000000
+[088h 0136   2]             Interleave Index : 0000
+[08Ah 0138   2]              Interleave Ways : 0001
+[08Ch 0140   2]                        Flags : 0000
+                       Save to device failed : 0
+                  Restore from device failed : 0
+                       Platform flush failed : 0
+                            Device not armed : 0
+                      Health events observed : 0
+                       Health events enabled : 0
+                              Mapping failed : 0
+[08Eh 0142   2]                     Reserved : 0000
+
+[090h 0144   2]                Subtable Type : 0004 [NVDIMM Control Region]
+[092h 0146   2]                       Length : 0050
+
+[094h 0148   2]                 Region Index : 0005
+[096h 0150   2]                    Vendor Id : 8086
+[098h 0152   2]                    Device Id : 0001
+[09Ah 0154   2]                  Revision Id : 0001
+[09Ch 0156   2]          Subsystem Vendor Id : 0000
+[09Eh 0158   2]          Subsystem Device Id : 0000
+[0A0h 0160   2]        Subsystem Revision Id : 0000
+[0A2h 0162   1]                 Valid Fields : 00
+[0A3h 0163   1]       Manufacturing Location : 00
+[0A4h 0164   2]           Manufacturing Date : 0000
+[0A6h 0166   2]                     Reserved : 0000
+[0A8h 0168   4]                Serial Number : 00123457
+[0ACh 0172   2]                         Code : 0301
+[0AEh 0174   2]                 Window Count : 0000
+[0B0h 0176   8]                  Window Size : 0000000000000000
+[0B8h 0184   8]               Command Offset : 0000000000000000
+[0C0h 0192   8]                 Command Size : 0000000000000000
+[0C8h 0200   8]                Status Offset : 0000000000000000
+[0D0h 0208   8]                  Status Size : 0000000000000000
+[0D8h 0216   2]                        Flags : 0000
+                            Windows buffered : 0
+[0DAh 0218   6]                    Reserved1 : 000000000000
+
+Raw Table Data: Length 224 (0xE0)
+
+    0000: 4E 46 49 54 E0 00 00 00 01 D1 42 4F 43 48 53 20  // NFIT......BOCHS 
+    0010: 42 58 50 43 4E 46 49 54 01 00 00 00 42 58 50 43  // BXPCNFIT....BXPC
+    0020: 01 00 00 00 00 00 00 00 00 00 38 00 04 00 03 00  // ..........8.....
+    0030: 00 00 00 00 01 00 00 00 79 D3 F0 66 F3 B4 74 40  // ........y..f..t@
+    0040: AC 43 0D 33 18 B7 8C DB 00 00 00 88 00 00 00 00  // .C.3............
+    0050: 00 00 00 08 00 00 00 00 08 80 00 00 00 00 00 00  // ................
+    0060: 01 00 30 00 02 00 00 00 00 00 00 00 04 00 05 00  // ..0.............
+    0070: 00 00 00 08 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0080: 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00  // ................
+    0090: 04 00 50 00 05 00 86 80 01 00 01 00 00 00 00 00  // ..P.............
+    00A0: 00 00 00 00 00 00 00 00 57 34 12 00 01 03 00 00  // ........W4......
+    00B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
diff --git a/tests/data/acpi/virt/NFIT.memhp.dsl b/tests/data/acpi/virt/NFIT.memhp.dsl
new file mode 100644
index 0000000000..84511bff96
--- /dev/null
+++ b/tests/data/acpi/virt/NFIT.memhp.dsl
@@ -0,0 +1,103 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/virt/NFIT.memhp, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [NFIT]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "NFIT"    [NVDIMM Firmware Interface Table]
+[004h 0004   4]                 Table Length : 000000E0
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : D1
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCNFIT"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]                     Reserved : 00000000
+
+[028h 0040   2]                Subtable Type : 0000 [System Physical Address Range]
+[02Ah 0042   2]                       Length : 0038
+
+[02Ch 0044   2]                  Range Index : 0004
+[02Eh 0046   2]        Flags (decoded below) : 0003
+                   Add/Online Operation Only : 1
+                      Proximity Domain Valid : 1
+[030h 0048   4]                     Reserved : 00000000
+[034h 0052   4]             Proximity Domain : 00000001
+[038h 0056  16]             Region Type GUID : 66F0D379-B4F3-4074-AC43-0D3318B78CDB
+[048h 0072   8]           Address Range Base : 0000000088000000
+[050h 0080   8]         Address Range Length : 0000000008000000
+[058h 0088   8]         Memory Map Attribute : 0000000000008008
+
+[060h 0096   2]                Subtable Type : 0001 [Memory Range Map]
+[062h 0098   2]                       Length : 0030
+
+[064h 0100   4]                Device Handle : 00000002
+[068h 0104   2]                  Physical Id : 0000
+[06Ah 0106   2]                    Region Id : 0000
+[06Ch 0108   2]                  Range Index : 0004
+[06Eh 0110   2]         Control Region Index : 0005
+[070h 0112   8]                  Region Size : 0000000008000000
+[078h 0120   8]                Region Offset : 0000000000000000
+[080h 0128   8]          Address Region Base : 0000000000000000
+[088h 0136   2]             Interleave Index : 0000
+[08Ah 0138   2]              Interleave Ways : 0001
+[08Ch 0140   2]                        Flags : 0000
+                       Save to device failed : 0
+                  Restore from device failed : 0
+                       Platform flush failed : 0
+                            Device not armed : 0
+                      Health events observed : 0
+                       Health events enabled : 0
+                              Mapping failed : 0
+[08Eh 0142   2]                     Reserved : 0000
+
+[090h 0144   2]                Subtable Type : 0004 [NVDIMM Control Region]
+[092h 0146   2]                       Length : 0050
+
+[094h 0148   2]                 Region Index : 0005
+[096h 0150   2]                    Vendor Id : 8086
+[098h 0152   2]                    Device Id : 0001
+[09Ah 0154   2]                  Revision Id : 0001
+[09Ch 0156   2]          Subsystem Vendor Id : 0000
+[09Eh 0158   2]          Subsystem Device Id : 0000
+[0A0h 0160   2]        Subsystem Revision Id : 0000
+[0A2h 0162   1]                 Valid Fields : 00
+[0A3h 0163   1]       Manufacturing Location : 00
+[0A4h 0164   2]           Manufacturing Date : 0000
+[0A6h 0166   2]                     Reserved : 0000
+[0A8h 0168   4]                Serial Number : 00123457
+[0ACh 0172   2]                         Code : 0301
+[0AEh 0174   2]                 Window Count : 0000
+[0B0h 0176   8]                  Window Size : 0000000000000000
+[0B8h 0184   8]               Command Offset : 0000000000000000
+[0C0h 0192   8]                 Command Size : 0000000000000000
+[0C8h 0200   8]                Status Offset : 0000000000000000
+[0D0h 0208   8]                  Status Size : 0000000000000000
+[0D8h 0216   2]                        Flags : 0000
+                            Windows buffered : 0
+[0DAh 0218   6]                    Reserved1 : 000000000000
+
+Raw Table Data: Length 224 (0xE0)
+
+    0000: 4E 46 49 54 E0 00 00 00 01 D1 42 4F 43 48 53 20  // NFIT......BOCHS 
+    0010: 42 58 50 43 4E 46 49 54 01 00 00 00 42 58 50 43  // BXPCNFIT....BXPC
+    0020: 01 00 00 00 00 00 00 00 00 00 38 00 04 00 03 00  // ..........8.....
+    0030: 00 00 00 00 01 00 00 00 79 D3 F0 66 F3 B4 74 40  // ........y..f..t@
+    0040: AC 43 0D 33 18 B7 8C DB 00 00 00 88 00 00 00 00  // .C.3............
+    0050: 00 00 00 08 00 00 00 00 08 80 00 00 00 00 00 00  // ................
+    0060: 01 00 30 00 02 00 00 00 00 00 00 00 04 00 05 00  // ..0.............
+    0070: 00 00 00 08 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0080: 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00  // ................
+    0090: 04 00 50 00 05 00 86 80 01 00 01 00 00 00 00 00  // ..P.............
+    00A0: 00 00 00 00 00 00 00 00 57 34 12 00 01 03 00 00  // ........W4......
+    00B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
+    00D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
diff --git a/tests/data/acpi/virt/SLIT.dsl b/tests/data/acpi/virt/SLIT.dsl
new file mode 100644
index 0000000000..34276fca96
--- /dev/null
+++ b/tests/data/acpi/virt/SLIT.dsl
@@ -0,0 +1,31 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/virt/SLIT.memhp, Mon Sep 28 17:24:38 2020
+ *
+ * ACPI Data Table [SLIT]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "SLIT"    [System Locality Information Table]
+[004h 0004   4]                 Table Length : 00000030
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 2C
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCSLIT"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   8]                   Localities : 0000000000000002
+[02Ch 0044   2]                 Locality   0 : 0A 15
+[02Eh 0046   2]                 Locality   1 : 15 0A
+
+Raw Table Data: Length 48 (0x30)
+
+    0000: 53 4C 49 54 30 00 00 00 01 2C 42 4F 43 48 53 20  // SLIT0....,BOCHS 
+    0010: 42 58 50 43 53 4C 49 54 01 00 00 00 42 58 50 43  // BXPCSLIT....BXPC
+    0020: 01 00 00 00 02 00 00 00 00 00 00 00 0A 15 15 0A  // ................
diff --git a/tests/data/acpi/virt/SLIT.memhp.dsl b/tests/data/acpi/virt/SLIT.memhp.dsl
new file mode 100644
index 0000000000..a17f948af2
--- /dev/null
+++ b/tests/data/acpi/virt/SLIT.memhp.dsl
@@ -0,0 +1,31 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/virt/SLIT.memhp, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [SLIT]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "SLIT"    [System Locality Information Table]
+[004h 0004   4]                 Table Length : 00000030
+[008h 0008   1]                     Revision : 01
+[009h 0009   1]                     Checksum : 2C
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCSLIT"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   8]                   Localities : 0000000000000002
+[02Ch 0044   2]                 Locality   0 : 0A 15
+[02Eh 0046   2]                 Locality   1 : 15 0A
+
+Raw Table Data: Length 48 (0x30)
+
+    0000: 53 4C 49 54 30 00 00 00 01 2C 42 4F 43 48 53 20  // SLIT0....,BOCHS 
+    0010: 42 58 50 43 53 4C 49 54 01 00 00 00 42 58 50 43  // BXPCSLIT....BXPC
+    0020: 01 00 00 00 02 00 00 00 00 00 00 00 0A 15 15 0A  // ................
diff --git a/tests/data/acpi/virt/SPCR.dsl b/tests/data/acpi/virt/SPCR.dsl
new file mode 100644
index 0000000000..3c271412cf
--- /dev/null
+++ b/tests/data/acpi/virt/SPCR.dsl
@@ -0,0 +1,57 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/virt/SPCR.numamem, Mon Sep 28 17:24:38 2020
+ *
+ * ACPI Data Table [SPCR]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "SPCR"    [Serial Port Console Redirection table]
+[004h 0004   4]                 Table Length : 00000050
+[008h 0008   1]                     Revision : 02
+[009h 0009   1]                     Checksum : 13
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCSPCR"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   1]               Interface Type : 03
+[025h 0037   3]                     Reserved : 000000
+
+[028h 0040  12]         Serial Port Register : [Generic Address Structure]
+[028h 0040   1]                     Space ID : 00 [SystemMemory]
+[029h 0041   1]                    Bit Width : 08
+[02Ah 0042   1]                   Bit Offset : 00
+[02Bh 0043   1]         Encoded Access Width : 01 [Byte Access:8]
+[02Ch 0044   8]                      Address : 0000000009000000
+
+[034h 0052   1]               Interrupt Type : 08
+[035h 0053   1]          PCAT-compatible IRQ : 00
+[036h 0054   4]                    Interrupt : 00000021
+[03Ah 0058   1]                    Baud Rate : 03
+[03Bh 0059   1]                       Parity : 00
+[03Ch 0060   1]                    Stop Bits : 01
+[03Dh 0061   1]                 Flow Control : 02
+[03Eh 0062   1]                Terminal Type : 00
+[04Ch 0076   1]                     Reserved : 00
+[040h 0064   2]                PCI Device ID : FFFF
+[042h 0066   2]                PCI Vendor ID : FFFF
+[044h 0068   1]                      PCI Bus : 00
+[045h 0069   1]                   PCI Device : 00
+[046h 0070   1]                 PCI Function : 00
+[047h 0071   4]                    PCI Flags : 00000000
+[04Bh 0075   1]                  PCI Segment : 00
+[04Ch 0076   4]                     Reserved : 00000000
+
+Raw Table Data: Length 80 (0x50)
+
+    0000: 53 50 43 52 50 00 00 00 02 13 42 4F 43 48 53 20  // SPCRP.....BOCHS 
+    0010: 42 58 50 43 53 50 43 52 01 00 00 00 42 58 50 43  // BXPCSPCR....BXPC
+    0020: 01 00 00 00 03 00 00 00 00 08 00 01 00 00 00 09  // ................
+    0030: 00 00 00 00 08 00 21 00 00 00 03 00 01 02 00 00  // ......!.........
+    0040: FF FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00  // ................
diff --git a/tests/data/acpi/virt/SPCR.memhp.dsl b/tests/data/acpi/virt/SPCR.memhp.dsl
new file mode 100644
index 0000000000..81e00457cc
--- /dev/null
+++ b/tests/data/acpi/virt/SPCR.memhp.dsl
@@ -0,0 +1,57 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/virt/SPCR.memhp, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [SPCR]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "SPCR"    [Serial Port Console Redirection table]
+[004h 0004   4]                 Table Length : 00000050
+[008h 0008   1]                     Revision : 02
+[009h 0009   1]                     Checksum : 13
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCSPCR"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   1]               Interface Type : 03
+[025h 0037   3]                     Reserved : 000000
+
+[028h 0040  12]         Serial Port Register : [Generic Address Structure]
+[028h 0040   1]                     Space ID : 00 [SystemMemory]
+[029h 0041   1]                    Bit Width : 08
+[02Ah 0042   1]                   Bit Offset : 00
+[02Bh 0043   1]         Encoded Access Width : 01 [Byte Access:8]
+[02Ch 0044   8]                      Address : 0000000009000000
+
+[034h 0052   1]               Interrupt Type : 08
+[035h 0053   1]          PCAT-compatible IRQ : 00
+[036h 0054   4]                    Interrupt : 00000021
+[03Ah 0058   1]                    Baud Rate : 03
+[03Bh 0059   1]                       Parity : 00
+[03Ch 0060   1]                    Stop Bits : 01
+[03Dh 0061   1]                 Flow Control : 02
+[03Eh 0062   1]                Terminal Type : 00
+[04Ch 0076   1]                     Reserved : 00
+[040h 0064   2]                PCI Device ID : FFFF
+[042h 0066   2]                PCI Vendor ID : FFFF
+[044h 0068   1]                      PCI Bus : 00
+[045h 0069   1]                   PCI Device : 00
+[046h 0070   1]                 PCI Function : 00
+[047h 0071   4]                    PCI Flags : 00000000
+[04Bh 0075   1]                  PCI Segment : 00
+[04Ch 0076   4]                     Reserved : 00000000
+
+Raw Table Data: Length 80 (0x50)
+
+    0000: 53 50 43 52 50 00 00 00 02 13 42 4F 43 48 53 20  // SPCRP.....BOCHS 
+    0010: 42 58 50 43 53 50 43 52 01 00 00 00 42 58 50 43  // BXPCSPCR....BXPC
+    0020: 01 00 00 00 03 00 00 00 00 08 00 01 00 00 00 09  // ................
+    0030: 00 00 00 00 08 00 21 00 00 00 03 00 01 02 00 00  // ......!.........
+    0040: FF FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00  // ................
diff --git a/tests/data/acpi/virt/SPCR.numamem.dsl b/tests/data/acpi/virt/SPCR.numamem.dsl
new file mode 100644
index 0000000000..faf6729797
--- /dev/null
+++ b/tests/data/acpi/virt/SPCR.numamem.dsl
@@ -0,0 +1,57 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/virt/SPCR.numamem, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [SPCR]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "SPCR"    [Serial Port Console Redirection table]
+[004h 0004   4]                 Table Length : 00000050
+[008h 0008   1]                     Revision : 02
+[009h 0009   1]                     Checksum : 13
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCSPCR"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   1]               Interface Type : 03
+[025h 0037   3]                     Reserved : 000000
+
+[028h 0040  12]         Serial Port Register : [Generic Address Structure]
+[028h 0040   1]                     Space ID : 00 [SystemMemory]
+[029h 0041   1]                    Bit Width : 08
+[02Ah 0042   1]                   Bit Offset : 00
+[02Bh 0043   1]         Encoded Access Width : 01 [Byte Access:8]
+[02Ch 0044   8]                      Address : 0000000009000000
+
+[034h 0052   1]               Interrupt Type : 08
+[035h 0053   1]          PCAT-compatible IRQ : 00
+[036h 0054   4]                    Interrupt : 00000021
+[03Ah 0058   1]                    Baud Rate : 03
+[03Bh 0059   1]                       Parity : 00
+[03Ch 0060   1]                    Stop Bits : 01
+[03Dh 0061   1]                 Flow Control : 02
+[03Eh 0062   1]                Terminal Type : 00
+[04Ch 0076   1]                     Reserved : 00
+[040h 0064   2]                PCI Device ID : FFFF
+[042h 0066   2]                PCI Vendor ID : FFFF
+[044h 0068   1]                      PCI Bus : 00
+[045h 0069   1]                   PCI Device : 00
+[046h 0070   1]                 PCI Function : 00
+[047h 0071   4]                    PCI Flags : 00000000
+[04Bh 0075   1]                  PCI Segment : 00
+[04Ch 0076   4]                     Reserved : 00000000
+
+Raw Table Data: Length 80 (0x50)
+
+    0000: 53 50 43 52 50 00 00 00 02 13 42 4F 43 48 53 20  // SPCRP.....BOCHS 
+    0010: 42 58 50 43 53 50 43 52 01 00 00 00 42 58 50 43  // BXPCSPCR....BXPC
+    0020: 01 00 00 00 03 00 00 00 00 08 00 01 00 00 00 09  // ................
+    0030: 00 00 00 00 08 00 21 00 00 00 03 00 01 02 00 00  // ......!.........
+    0040: FF FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00  // ................
diff --git a/tests/data/acpi/virt/SRAT.dsl b/tests/data/acpi/virt/SRAT.dsl
new file mode 100644
index 0000000000..f267aabc67
--- /dev/null
+++ b/tests/data/acpi/virt/SRAT.dsl
@@ -0,0 +1,57 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/virt/SRAT.numamem, Mon Sep 28 17:24:38 2020
+ *
+ * ACPI Data Table [SRAT]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "SRAT"    [System Resource Affinity Table]
+[004h 0004   4]                 Table Length : 0000006A
+[008h 0008   1]                     Revision : 03
+[009h 0009   1]                     Checksum : AB
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCSRAT"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]               Table Revision : 00000001
+[028h 0040   8]                     Reserved : 0000000000000000
+
+[030h 0048   1]                Subtable Type : 03 [GICC Affinity]
+[031h 0049   1]                       Length : 12
+
+[032h 0050   4]             Proximity Domain : 00000000
+[036h 0054   4]           Acpi Processor UID : 00000000
+[03Ah 0058   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+[03Eh 0062   4]                 Clock Domain : 00000000
+
+[042h 0066   1]                Subtable Type : 01 [Memory Affinity]
+[043h 0067   1]                       Length : 28
+
+[044h 0068   4]             Proximity Domain : 00000000
+[048h 0072   2]                    Reserved1 : 0000
+[04Ah 0074   8]                 Base Address : 0000000040000000
+[052h 0082   8]               Address Length : 0000000008000000
+[05Ah 0090   4]                    Reserved2 : 00000000
+[05Eh 0094   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[062h 0098   8]                    Reserved3 : 0000000000000000
+
+Raw Table Data: Length 106 (0x6A)
+
+    0000: 53 52 41 54 6A 00 00 00 03 AB 42 4F 43 48 53 20  // SRATj.....BOCHS 
+    0010: 42 58 50 43 53 52 41 54 01 00 00 00 42 58 50 43  // BXPCSRAT....BXPC
+    0020: 01 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0030: 03 12 00 00 00 00 00 00 00 00 01 00 00 00 00 00  // ................
+    0040: 00 00 01 28 00 00 00 00 00 00 00 00 00 40 00 00  // ...(.........@..
+    0050: 00 00 00 00 00 08 00 00 00 00 00 00 00 00 01 00  // ................
+    0060: 00 00 00 00 00 00 00 00 00 00                    // ..........
diff --git a/tests/data/acpi/virt/SRAT.memhp.dsl b/tests/data/acpi/virt/SRAT.memhp.dsl
new file mode 100644
index 0000000000..3f311e6be0
--- /dev/null
+++ b/tests/data/acpi/virt/SRAT.memhp.dsl
@@ -0,0 +1,107 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/virt/SRAT.memhp, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [SRAT]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "SRAT"    [System Resource Affinity Table]
+[004h 0004   4]                 Table Length : 000000E2
+[008h 0008   1]                     Revision : 03
+[009h 0009   1]                     Checksum : 5C
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCSRAT"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]               Table Revision : 00000001
+[028h 0040   8]                     Reserved : 0000000000000000
+
+[030h 0048   1]                Subtable Type : 03 [GICC Affinity]
+[031h 0049   1]                       Length : 12
+
+[032h 0050   4]             Proximity Domain : 00000000
+[036h 0054   4]           Acpi Processor UID : 00000000
+[03Ah 0058   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+[03Eh 0062   4]                 Clock Domain : 00000000
+
+[042h 0066   1]                Subtable Type : 01 [Memory Affinity]
+[043h 0067   1]                       Length : 28
+
+[044h 0068   4]             Proximity Domain : 00000000
+[048h 0072   2]                    Reserved1 : 0000
+[04Ah 0074   8]                 Base Address : 0000000040000000
+[052h 0082   8]               Address Length : 0000000008000000
+[05Ah 0090   4]                    Reserved2 : 00000000
+[05Eh 0094   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[062h 0098   8]                    Reserved3 : 0000000000000000
+
+[06Ah 0106   1]                Subtable Type : 01 [Memory Affinity]
+[06Bh 0107   1]                       Length : 28
+
+[06Ch 0108   4]             Proximity Domain : 00000001
+[070h 0112   2]                    Reserved1 : 0000
+[072h 0114   8]                 Base Address : 0000000048000000
+[07Ah 0122   8]               Address Length : 0000000008000000
+[082h 0130   4]                    Reserved2 : 00000000
+[086h 0134   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[08Ah 0138   8]                    Reserved3 : 0000000000000000
+
+[092h 0146   1]                Subtable Type : 01 [Memory Affinity]
+[093h 0147   1]                       Length : 28
+
+[094h 0148   4]             Proximity Domain : 00000001
+[098h 0152   2]                    Reserved1 : 0000
+[09Ah 0154   8]                 Base Address : 0000000088000000
+[0A2h 0162   8]               Address Length : 0000000008000000
+[0AAh 0170   4]                    Reserved2 : 00000000
+[0AEh 0174   4]        Flags (decoded below) : 00000005
+                                     Enabled : 1
+                               Hot Pluggable : 0
+                                Non-Volatile : 1
+[0B2h 0178   8]                    Reserved3 : 0000000000000000
+
+[0BAh 0186   1]                Subtable Type : 01 [Memory Affinity]
+[0BBh 0187   1]                       Length : 28
+
+[0BCh 0188   4]             Proximity Domain : 00000001
+[0C0h 0192   2]                    Reserved1 : 0000
+[0C2h 0194   8]                 Base Address : 0000000080000000
+[0CAh 0202   8]               Address Length : 00000000F0000000
+[0D2h 0210   4]                    Reserved2 : 00000000
+[0D6h 0214   4]        Flags (decoded below) : 00000003
+                                     Enabled : 1
+                               Hot Pluggable : 1
+                                Non-Volatile : 0
+[0DAh 0218   8]                    Reserved3 : 0000000000000000
+
+Raw Table Data: Length 226 (0xE2)
+
+    0000: 53 52 41 54 E2 00 00 00 03 5C 42 4F 43 48 53 20  // SRAT.....\BOCHS 
+    0010: 42 58 50 43 53 52 41 54 01 00 00 00 42 58 50 43  // BXPCSRAT....BXPC
+    0020: 01 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0030: 03 12 00 00 00 00 00 00 00 00 01 00 00 00 00 00  // ................
+    0040: 00 00 01 28 00 00 00 00 00 00 00 00 00 40 00 00  // ...(.........@..
+    0050: 00 00 00 00 00 08 00 00 00 00 00 00 00 00 01 00  // ................
+    0060: 00 00 00 00 00 00 00 00 00 00 01 28 01 00 00 00  // ...........(....
+    0070: 00 00 00 00 00 48 00 00 00 00 00 00 00 08 00 00  // .....H..........
+    0080: 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00  // ................
+    0090: 00 00 01 28 01 00 00 00 00 00 00 00 00 88 00 00  // ...(............
+    00A0: 00 00 00 00 00 08 00 00 00 00 00 00 00 00 05 00  // ................
+    00B0: 00 00 00 00 00 00 00 00 00 00 01 28 01 00 00 00  // ...........(....
+    00C0: 00 00 00 00 00 80 00 00 00 00 00 00 00 F0 00 00  // ................
+    00D0: 00 00 00 00 00 00 03 00 00 00 00 00 00 00 00 00  // ................
+    00E0: 00 00                                            // ..
diff --git a/tests/data/acpi/virt/SRAT.numamem.dsl b/tests/data/acpi/virt/SRAT.numamem.dsl
new file mode 100644
index 0000000000..b6e59b1af0
--- /dev/null
+++ b/tests/data/acpi/virt/SRAT.numamem.dsl
@@ -0,0 +1,57 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembly of tests/data/acpi/virt/SRAT.numamem, Tue Aug  4 11:14:15 2020
+ *
+ * ACPI Data Table [SRAT]
+ *
+ * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
+ */
+
+[000h 0000   4]                    Signature : "SRAT"    [System Resource Affinity Table]
+[004h 0004   4]                 Table Length : 0000006A
+[008h 0008   1]                     Revision : 03
+[009h 0009   1]                     Checksum : AB
+[00Ah 0010   6]                       Oem ID : "BOCHS "
+[010h 0016   8]                 Oem Table ID : "BXPCSRAT"
+[018h 0024   4]                 Oem Revision : 00000001
+[01Ch 0028   4]              Asl Compiler ID : "BXPC"
+[020h 0032   4]        Asl Compiler Revision : 00000001
+
+[024h 0036   4]               Table Revision : 00000001
+[028h 0040   8]                     Reserved : 0000000000000000
+
+[030h 0048   1]                Subtable Type : 03 [GICC Affinity]
+[031h 0049   1]                       Length : 12
+
+[032h 0050   4]             Proximity Domain : 00000000
+[036h 0054   4]           Acpi Processor UID : 00000000
+[03Ah 0058   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+[03Eh 0062   4]                 Clock Domain : 00000000
+
+[042h 0066   1]                Subtable Type : 01 [Memory Affinity]
+[043h 0067   1]                       Length : 28
+
+[044h 0068   4]             Proximity Domain : 00000000
+[048h 0072   2]                    Reserved1 : 0000
+[04Ah 0074   8]                 Base Address : 0000000040000000
+[052h 0082   8]               Address Length : 0000000008000000
+[05Ah 0090   4]                    Reserved2 : 00000000
+[05Eh 0094   4]        Flags (decoded below) : 00000001
+                                     Enabled : 1
+                               Hot Pluggable : 0
+                                Non-Volatile : 0
+[062h 0098   8]                    Reserved3 : 0000000000000000
+
+Raw Table Data: Length 106 (0x6A)
+
+    0000: 53 52 41 54 6A 00 00 00 03 AB 42 4F 43 48 53 20  // SRATj.....BOCHS 
+    0010: 42 58 50 43 53 52 41 54 01 00 00 00 42 58 50 43  // BXPCSRAT....BXPC
+    0020: 01 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00  // ................
+    0030: 03 12 00 00 00 00 00 00 00 00 01 00 00 00 00 00  // ................
+    0040: 00 00 01 28 00 00 00 00 00 00 00 00 00 40 00 00  // ...(.........@..
+    0050: 00 00 00 00 00 08 00 00 00 00 00 00 00 00 01 00  // ................
+    0060: 00 00 00 00 00 00 00 00 00 00                    // ..........
diff --git a/tests/data/acpi/virt/SSDT.dsl b/tests/data/acpi/virt/SSDT.dsl
new file mode 100644
index 0000000000..cb220787b4
--- /dev/null
+++ b/tests/data/acpi/virt/SSDT.dsl
@@ -0,0 +1,205 @@
+/*
+ * Intel ACPI Component Architecture
+ * AML/ASL+ Disassembler version 20190509 (64-bit version)
+ * Copyright (c) 2000 - 2019 Intel Corporation
+ * 
+ * Disassembling to symbolic ASL+ operators
+ *
+ * Disassembly of tests/data/acpi/virt/SSDT.memhp, Mon Sep 28 17:24:38 2020
+ *
+ * Original Table Header:
+ *     Signature        "SSDT"
+ *     Length           0x000002E0 (736)
+ *     Revision         0x01
+ *     Checksum         0x3F
+ *     OEM ID           "BOCHS "
+ *     OEM Table ID     "NVDIMM"
+ *     OEM Revision     0x00000001 (1)
+ *     Compiler ID      "BXPC"
+ *     Compiler Version 0x00000001 (1)
+ */
+DefinitionBlock ("", "SSDT", 1, "BOCHS ", "NVDIMM", 0x00000001)
+{
+    Scope (\_SB)
+    {
+        Device (NVDR)
+        {
+            Name (_HID, "ACPI0012" /* NVDIMM Root Device */)  // _HID: Hardware ID
+            Method (NCAL, 5, Serialized)
+            {
+                Local6 = MEMA /* \MEMA */
+                OperationRegion (NPIO, SystemMemory, 0x09090000, 0x04)
+                OperationRegion (NRAM, SystemMemory, Local6, 0x1000)
+                Field (NPIO, DWordAcc, NoLock, Preserve)
+                {
+                    NTFI,   32
+                }
+
+                Field (NRAM, DWordAcc, NoLock, Preserve)
+                {
+                    HDLE,   32, 
+                    REVS,   32, 
+                    FUNC,   32, 
+                    FARG,   32672
+                }
+
+                Field (NRAM, DWordAcc, NoLock, Preserve)
+                {
+                    RLEN,   32, 
+                    ODAT,   32736
+                }
+
+                If ((Arg4 == Zero))
+                {
+                    Local0 = ToUUID ("2f10e7a4-9e91-11e4-89d3-123b93f75cba")
+                }
+                ElseIf ((Arg4 == 0x00010000))
+                {
+                    Local0 = ToUUID ("648b9cf2-cda1-4312-8ad9-49c4af32bd62")
+                }
+                Else
+                {
+                    Local0 = ToUUID ("4309ac30-0d11-11e4-9191-0800200c9a66")
+                }
+
+                If (((Local6 == Zero) | (Arg0 != Local0)))
+                {
+                    If ((Arg2 == Zero))
+                    {
+                        Return (Buffer (One)
+                        {
+                             0x00                                             // .
+                        })
+                    }
+
+                    Return (Buffer (One)
+                    {
+                         0x01                                             // .
+                    })
+                }
+
+                HDLE = Arg4
+                REVS = Arg1
+                FUNC = Arg2
+                If (((ObjectType (Arg3) == 0x04) & (SizeOf (Arg3) == One)))
+                {
+                    Local2 = Arg3 [Zero]
+                    Local3 = DerefOf (Local2)
+                    FARG = Local3
+                }
+
+                NTFI = Local6
+                Local1 = (RLEN - 0x04)
+                If ((Local1 < 0x08))
+                {
+                    Local2 = Zero
+                    Name (TBUF, Buffer (One)
+                    {
+                         0x00                                             // .
+                    })
+                    Local7 = Buffer (Zero){}
+                    While ((Local2 < Local1))
+                    {
+                        TBUF [Zero] = DerefOf (ODAT [Local2])
+                        Concatenate (Local7, TBUF, Local7)
+                        Local2++
+                    }
+
+                    Return (Local7)
+                }
+
+                Local1 = (Local1 << 0x03)
+                CreateField (ODAT, Zero, Local1, OBUF)
+                Return (OBUF) /* \_SB_.NVDR.NCAL.OBUF */
+            }
+
+            Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
+            {
+                Return (NCAL (Arg0, Arg1, Arg2, Arg3, Zero))
+            }
+
+            Name (RSTA, Zero)
+            Method (RFIT, 1, Serialized)
+            {
+                Name (OFST, Zero)
+                OFST = Arg0
+                Local0 = NCAL (ToUUID ("648b9cf2-cda1-4312-8ad9-49c4af32bd62"), One, One, Package (0x01)
+                        {
+                            OFST
+                        }, 0x00010000)
+                CreateDWordField (Local0, Zero, STAU)
+                RSTA = STAU /* \_SB_.NVDR.RFIT.STAU */
+                If ((Zero != STAU))
+                {
+                    Return (Buffer (Zero){})
+                }
+
+                Local1 = SizeOf (Local0)
+                Local1 -= 0x04
+                If ((Local1 == Zero))
+                {
+                    Return (Buffer (Zero){})
+                }
+
+                CreateField (Local0, 0x20, (Local1 << 0x03), BUFF)
+                Return (BUFF) /* \_SB_.NVDR.RFIT.BUFF */
+            }
+
+            Method (_FIT, 0, Serialized)  // _FIT: Firmware Interface Table
+            {
+                Local2 = Buffer (Zero){}
+                Local3 = Zero
+                While (One)
+                {
+                    Local0 = RFIT (Local3)
+                    Local1 = SizeOf (Local0)
+                    If ((RSTA == 0x0100))
+                    {
+                        Local2 = Buffer (Zero){}
+                        Local3 = Zero
+                    }
+                    Else
+                    {
+                        If ((Local1 == Zero))
+                        {
+                            Return (Local2)
+                        }
+
+                        Local3 += Local1
+                        Concatenate (Local2, Local0, Local2)
+                    }
+                }
+            }
+
+            Device (NV00)
+            {
+                Name (_ADR, One)  // _ADR: Address
+                Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
+                {
+                    Return (NCAL (Arg0, Arg1, Arg2, Arg3, One))
+                }
+            }
+
+            Device (NV01)
+            {
+                Name (_ADR, 0x02)  // _ADR: Address
+                Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
+                {
+                    Return (NCAL (Arg0, Arg1, Arg2, Arg3, 0x02))
+                }
+            }
+
+            Device (NV02)
+            {
+                Name (_ADR, 0x03)  // _ADR: Address
+                Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
+                {
+                    Return (NCAL (Arg0, Arg1, Arg2, Arg3, 0x03))
+                }
+            }
+        }
+    }
+
+    Name (MEMA, 0x43D10000)
+}
+
diff --git a/tests/data/uefi-boot-images/bios-tables-test.x86_64.iso.raw b/tests/data/uefi-boot-images/bios-tables-test.x86_64.iso.raw
new file mode 100644
index 0000000000000000000000000000000000000000..bd43ba50a3b25bdf4108cf920a26acc93cc45555
GIT binary patch
literal 425984
zcmeI*4R}=bo#^p1Kp>zvX%!2$>On)BC?OL-Bq}zO7dS&FBo9eMiwa{hfh<WToy-Wh
z+J<J*WsGUPyLwx<-CcWc`;go9-g>uIE$g+xC@;QTQCn;4R#CB?bg+Wk23)V^{(k42
z$-7n2K5h5;&Z9YR|JTp?znv437zQ5%5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~
z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**
z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0
z009ILKmY**5I_I{1Q0*~0R#|0009IL@RXJNd_^837+6zxrTOlkvhuZ6mG6Gp%t#(|
zcHB+o?8L3dFg*Idk)3VKaxTw0V<gy_x_h26*EuuS$kv@~W2HwUO`D<-HNMH`Pb#pg
zVoji?Dp2WPRbk4GS-fnSuh3dqW3CJYD{8K)sja9q%hp!-Ypd3pd1d)#QE~ASvtrRz
zRds7tmHUGgnUfb6EcW@9nX4C7SNPY~RIMpoy{M+l3IwH9uCl}EWesz&DGl*+fm*Y+
z!vBYw;~z(5v9GAuw{-DEMMW1a^<CuiWluQa8}~6Lgzy-DoU)PXUy6V;rtuYlKL-J4
z{;vp{GDZh#tIV3}in74UK$*WbP_^cL7jWMD4oN@+5I_I{1Q7U>3k<o>|9|p=PyhrF
zKmY**5I_I{1Q0*~0R#~EqX~HI@3G5w)A=BP00IagfB*srAb<b@2q1vKe_8?i$$zf?
zb9z1qAb<b@2q1s}0tg_000Iag@Sjy+;?LM`oi^{3Wm(z7KV$!%Av`|gEQd!n`g8e)
z;ie&H_4u^XKvm6#T7T)HmHygGi;RVa`{RQ1GC$WpHvFv8s;b&W@)L*>mJb35Ab<b@
z2z>Mcp4Z<!&F?kVeQ&3Ixg#^fzk6V=Ab<b@2q1vKUyMNdvRhlWG`25l48@Eo(>%r$
zV@ii{!ef|5$*4Nye>wfsrTP?KAW!k~o89C&zG$)hzOB>FeQ^Dacb(T4JLQUdPW#sx
z#uGW$rjIT@{KT10%uByhySb^|l>b^IF*9Ud7m36|*ENUDhNku{i%he+IUH&an@z3l
z;pmv_jm?p^w(Vx9wPE(GwrIG$U3RydTf*DTSj3D)<;tc|Q>(dX(IRuU`<nwtm6Y8N
zB2f3e6GQsR+Gxz^FlOFqoN{#NgTyE7U%CMI|1bRxez@|F8r0=?tUh$@9c%88-}<Io
zC*6vbfz0n!%o%%KUJ&y^009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~
z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~fsaH$eiKXPGwILw
z%Wql9e8ydOve#eL>IN8hed<S2J`zCy0R#|00D+HQU}SnXC!N3Feg1cT|Buf9S1wy>
z>hB2}`}={W86}r|^yMW*1Q0*~0R#~E@B)>eKlwB|PCn{z%<2lmX!y$5cLhg{MaC(z
zyx4e=VU)PPW-#~ck$sJ9y8r9`=#Q>BGI8GTZ-<qI&-?xyDwc9d=xo`3>V3z0?|_S9
z;cYPqmZ@`QJ36K*mlrjJVj(%Hb-eT9k?rVkC5F+rC>m~#)H`L(lv%f<KN7BV^zq5;
zcW3=#sbTcjSUZkrk%HZ`zr4&ate&fLOM=PrTwky!YpW?IlC`;cRx+4t?lvTtmHc^X
z*%`9!&Z^hoU45~STiqokx--*C{=!P`8LG~{IqL>VyEi8`BlW2>4I@3X*NkPQ?$&ra
z9@gB}_urhgPJ(nE^7LO}CI4@Ym3&4DvRn(2Oyq8~x3}bOmTl^3`8BtRzS!AT*YokY
zQmQx4m1KHm&y>RLzEo<SDwY7L0{PN)G*)8u#I)?U*l7fk&+XPfWMn0e1*HmksrjeN
zL3dWKw9oNHf5R!d6i`dC{#q&F50@Cm!IYM<YxZ|#-+Oyszm+^;C7-nRyq+CMzF9P6
z6(4P%XBGeKrZWPaCp<f|W7EoaTArY%&l=j7e!1UYYbB4?S;?PD1>dqdkNEb^FoHb|
zxeJrOk?bmyhf+0CqVC$<g;Jy43#3#-{Zg=-&-mER)8o%uoe%r0<a6t<@n7A)PI3(<
z4^$K#5U*#0$%iC0(J0TY*1MIRnjsPre(tp!`u*zy$tV3+`0M<&f#mP%g2^XbUP~#u
z2Cd`+xd$b<O6y;Vh%Fu5YsQzRn%=RY=UJW3bt!4q<AS}rR6ycqq?Zg|h|fqbmN>D~
zQWrUKF0AYtip?18FNx=+n<d(e`4VllM3ZVgevaIu+ut4<D(V~f+Q$q-g2sQEextm*
zAh6glD!N{a&)%2F{f-nw!W-%9Q!hzaz2TL`N3Pc!{)}m-laO?F*GQO@B?0u}{`6gv
z%8YTTNF|N5FZIoFseICDHkWHES86I#GN}yIOWPUT=ZUpTYCn{}T%~0?+mb@vElCZ@
z?^V|QTV-DhIIvs3q*mCeSM<a^vApu+8^Pq8sn?`#!Qzx%<a*OC@>4SQ?XK6%ZvTHn
zLvFZ7+;IOmkQO}2a;2N)S;JXM4w)?N+N@4JA@LJ^WAb}`RDNG_@(XExO`6|=k^Fw(
zhWqxwUrT<2`^?yk%C5t)&!%U}#+zuAlUDaVc8kzVzag3HM;c0ONw;%j0z;1nyx)J=
z@*K6K&1i`9+%aJ#p0+6cXd_W8kKcRmCt|bw-UnBC_8iJiPbun~c`(@ht>KLBw}VTB
zZ&>F$)S7s<w$YwM?peB(<NcbX6vI9*gUq>=UC(=OPvoZLeDKn5*@cNN?0CRFVZ_es
z__Zl{XlwE&zJ8h$S92<Q+B*L4175FT?0BVQzMStoG25Hio^9_fh<W9BmbdHtnR0`l
z(UVf64vD58|8BhrdZyPtmVGIZ)-mAOXASM2tfHeT)p?@8n^+)8Y`s`AxxkxPsrz%J
zn|l*^a<Am1=}nv|C)3rkf1x+wk$u@)=uOPjvzN$z@m5p57I{14&b39}#G_iM&J#Xw
zqDDiVA^SmZ;*fK;*_(LQ*=xwCdJ}^ZZmT8XYP^Z3Wai!~U0rIOm?49Q?1{(UPnY_a
zIfo%{;`<UvF4TJy$DO?^y@@*{kpa^Q((X+pHJ$S%P@6Y#y;HWRoXxT$Zt^DPPLtrr
zBv}a(_a?5BAl@$@l9O`0&6}vw)Si~h9ZzNtd{>)d=VP9MZ#g?t2L8_3nKp2<vy(lr
z!`aCh*d{xJ`?BK~c04)7k`6mZZ^}-sbN6x`;q+dm&#}5I>}F&iEzoeE%7hDc=UAP6
z*~+8Q20kMR2D|H|V2@-EoTb^wbk_N(DVbQ_@?VT@5msl)C*_~Hwba^jTW*KMo@IFs
zYD&8QL0U)pp5TQ}f01mwUDuuJMAu}rUXr4ge4tx~8!dqL0{vtnRTMovaGP!Y$^ns+
z3O#0aJk~MT-ysuq{8X#+rMEktC`nJ1BP+ST^H5GaR}JP_-48fcJzKM_`g5)1J@#RG
zp;dp4kv?y1nC^3}PB9QubxLPj-PhPiR`Su#m#0~s|Ka(U3oGUw_8<R=zw@v;xMxba
zx8mi&Jst77K=MFf&%o63o%?e=I}^G8U82WkNugeJyHwZn+s_<)q$K_^tMkAV>-h7#
zb>Zi~ry#vlN}GJaK3tGfA|@*g{pu}$Aw5qzPJD(e2DVR0KEFFhBJ6ci7WW67;Uf7$
zFnL?<b8^W_-jdrV+hForxgD}iZING_9_)55>R_ZNt!^h!W!KYElCI}R-|1M6b)h>5
zjk>!UE7*OPo!f)b0c3OuBnJbYN37$6f&6E!uBU_E@;7uO)Q~zVJz!Vfh|Sf;p(kZL
z8rm<xEst|tkvJSX#Ts%B0z(g3$;bTv+tcx6&fp#y9jfFW5AN}JyH@JXBU8MI6|&Ru
zYPRHao6|%V>WL?(xwp<~)4}e%(M>#^9qewgZ(XG{f?2_yf~E5J96NsfRz=aEEG#OD
z4of4<XjXd5pB?y_c2o(Qt22b&eeZqKwNd71Pfs2llX#BzKIv=Hc`^Z{G?H*8Jtu=;
z&s}!pft%cvr76C5S-pw-L^+ro$lO=GpM6rCRMjam3inh_^C$PFPIdODmwWF!lp2zz
zBm;Au*Lz=IuxIv5QqhW{K3UAR>Dkj{XS43imYt2dbE@oIsXM30PPOjLk{wHTX39>9
z?g*cA&vkuVo@~gKsXvx$%H`!!w%woB0@V%<4Gk11kJHZ_HmiHO)wx$>+<qo~$hFd0
z;CC_$c<-&w$|Nu4z0N7``1(pVS{MmDO>_0$mm?dW98Q&Op7-98DRwEOd}iv=-%Clf
z%Z=;JGsgGk;gW1$VC|Nrkbb^o&40-1SuMlyo95O6S;ZCPYm;w&DlaXa^+c9T9X)gA
z+2<BM6ui`7@phF<O-9w?-nrULq%cBn7i^OHq|TFaPHZRAH}wW*`szTXr2Ih!Rw?8x
zZHPKzdJ{jEuOnmTgf>}li9DqY{6_DZw8jrGv(FyM;_6XZ4Cu7>Zp~jyH1Nd_p4X`A
z%o>%~1iI0~mvr$Bb0oXBwHcgr)xN1W!kwlDzA6WkRc&mxciHd*T@rXg0i{sS%cEfW
zrpd1SP_NWaxRS1(a7vQt(!k4P=SJC?5MXqPCRxKJpIcx!>kyAMPacZyab}Di-?6ub
zM;8G1*p1NIk+9F%j{=<u``nbleL3+@TFDmzJr$lEzcR7~c+{FP9k7l&EjYbF=Yc+f
zm=d=-mK(9EV6n4iXkYAo@Z;80C%ru{XU}}ps(;$*awex(US=}z-fKxo9!eaD?@iyM
ztMUWsQ#C71QrdxiUpr(QEIt_YmdPsQxdomnawt>aA-%jpA6vAY9+ji`wU*3&x~3?X
z=I|Za2J@e`k_TmZ-=|ZNE|ujGA%5}jiuwW_`oEz8lP~_rlx?}psVUi}jvdv<7v~_5
z>`zavD0;pkalo7SFLG7qvt`41j7oXFEZ}3Z2pdi`;C=9Mdxf34QxcSfw1kHw3F|_~
zDU-^?VtTuNF5&cvAaPJ5j3oLapB$&EoCF7cU|$@c>MeHtomBT^DzAKo>40f1<326#
zg_)!)llwCcL2)>txeUCnYYOK;iZ5$2t$cORbBoQXw_j5-;umXDi-)T-Qrckxf9Ij8
zsXHV+^~`otn(j2-K=R-GI}U5vf|oil(N9=A9<Xn#-f(YMt2BoJQ@+S#RbeD_W|3@V
zRiyV>&Q*FW&jWUu<jGIhb9Mzwv{aYwc}eCZ=bi+TCuZ)ES~`zC^#`o;Z?T)dwkW&8
zCw}WJqVzxt8k~BU-54{AoXVcno>)9Ev^UWC&eV9b98Rh54F)g0CAUK&w6E8JNOR7R
zOJU+GwGfwQXq0%NhHy({mqfiaT4nNAHdE9t#i-_2nS7x#`RKq4_7j5J<)nqkp}*rM
zkNCVHy8{RGvfBr=g&mS4Gx<(zVezxIV6ti(ZmxD8Nd5jbx2b-B>B60j1`3V|UuHr2
zyCeEwpIM5=7D#q+Q(k&}X|`0qXZF`*vwNQmQ>hvWm<g6Cj_dNGyyq%9kV(?=ypXy=
zikAr-Og^V;Si6JVVI6-fJzFQ$4ypFQQYneN@Uo=I=u0O5HU4Y;8~XK)k-l!y7fm%m
z>5rX9@=`&&oUwCC^hJrjmHCvsxRL^{kj-u#SyKO!mc*X=Z6KMFrwv){?Jm)?5h;nh
zm&#jz?S^YKC0Qv2bFU2c=okBy+*f6_Apw^6*R7Kboi~A+;Xg~E?8lZzQg`ZZ&l*`i
z?MvNe?|)AA_ojC0e(_%KZGBep+uqycm6)B+{Dar@uL~yk*~!U!#m*yUsz(YZ@032}
zzC%36DSWOLzEF$#``_55F!c@QvGvzV7uYaxr(BT8Io7`N+-%vG<|sSz_z@eFoN`89
zTxxL_IvI%1-Z4JQHH!|3ocdeIqNq;?aDA02ZK|hcsIl|1l}2o~ReZ2L%NpuSzb?a%
zQ;U8LdLVX=JWIsp1$#<|Ixh3b!&9)huYJ0PJSuM@5BB$0cJ=v_Psx)*a=$!-96#ny
z=45u|)o$`JyYjb6&ZFO;o-Ye!xpk}OO3~~^>+yl1p~mj1lC!yfB-&Nuq8*VXwM08z
zqxEQw`Xt(fSm%$6b*~fam!FVWeH!a#iDhM?^*^rp+4smw&Yo+^^_S(kl=eKUbHxlf
zHtd(a0}@^G9@12nXe#BJO7iR%<gH%n?vWTz$gvaSvr<fn@r1@G))*hR^DWzGCA03-
zST~Hs`r2@;vz=I9*I1v`SpSxC8b(py`hIz*ntVrJtI8YQ-@C;wNiBBLnQ!%!4Ov~!
z*`4ESPBOpMWFFLHZr5bwiC~7j1nt#kyW=e*M@Dk#2g|)*X_qq<MXw$2ACmV|!Jhgd
zzxVb>tUc*d?Jg4V{4(`~#831Edaf>zC9%B87M|kt*0ZG_u5z;K)T|!YtS*qCb{Kil
zeV@GTEIJ^=gS>kjs?O7QPCIYV4ku|yPkcoh+3{xrp2vgpUy<o0kpH;<_`_NTdD9)(
zbL7;3=iyjLl4+A<g2|VMs(k_Jc7D4oF{`p`aC=$mr_RxNKa#vVQqMR?XUNmR6;h(g
z<WcARC$vyKS@m*GZpyQ=+}{0jE$mIdmcs0LRVw-$tLM}UgZVG(_ZpUa6CH9@avnTe
z-oRG-tmGr9M<uAVi@y@a?cvn5W3s(^B-<AyZ5e}{Z10pflI;;WC)sY$Y+u%Fr_1@Y
zDe3=LNne3dqkyimXNaqF<u#Ia#*)m?*uU<_G7uX&tW>9t${U%_%gc5h(j=WVl1}nX
zOWp+cl;`FRRhJ0$_L(|z<Vh5J<d8>k8RbT&(I<C8)2Pv2Dv8XrD{EQF{?spjWmmRR
z-*Z^0FE~|qjU&#H8ox0|EBl;N*&j$8?ZQ&wx8%H3xK%dmcQ2VLL;V@<#r5`ZZgrPl
zDgEGX`9@eO>SU$;?Vt1;V|ITlb;PPv%pM?r@~S<0$q3tDQ}ncCaifHlEWUe|Y@Fh+
zmNP@QmT2pi8hp}8*3uf3rM~ZG;*|7%I!9Uq-{=|~lT0M(6;A2PH1mLzD78+`ryi9r
z?zk}Y$xJ!F>XdV?23@T|7fL8akbAejfAoxEcF%cgo?*yv>MgFxw(ggG{d7b>V}IM~
zSn8NCxx3rtU5dTCPiBMEU)e_|G*y|!WE2P_pY_YTt+z7+fle@*ua2?$W<{sR8jaL5
z`z|fmW0Ftm?+!~Hrn{kZD9}*vIK}^phO#?vi-hXVS}27p@7d_7^c)T*UrO!Qw|_#q
zUoL7MLTble@8n@=?58x3LJ1)Kv@&_D(w>D=Me@2!@(Ls$j?J+vG%!@BGuZuF^`O@}
zBr|O4CQV-3P4du4Q@7`TZQJr<L1yam+>JUGZBCUBmtn{*!xrfhQqPCwmf7EGOa1dJ
zl3I6Gg|>?xiR*j=vAeA#)vx_Z`hXZZ%Zo{pe^p{TRdkX+)k!|A$>&MSN(G(de<ea=
zlCMrRj3i$q->2)&dPu``Zu1$jtDIgs=T1A;>~9HJ>MVO0%=!m8W%t=1N$S#1WvuDW
z>ab%zlrvPlQLwh1DW~Fg)Y@Em6ILR_k$#s`>msc|z8{oh*s<-YVciwloqee%-%|QM
zxo`2$Slx3LI9Xq&S-&GCO|94b@1LnRLR#TKgLa$ltkWcz%mnf(uIRO*q2QLb&9e4v
zYYTV=t*#+&;=f5)xu5bDUUuwn-`r~N$eF*<OWkw+k24({x4YGwGB#MrW_cO3&>qv~
z{F8Hanv|k4IiTNvJY6p&|5{cJTjmCn_0kBo<fR&=*>q=}C4+TxYWLLR2jy#4jvO^6
z%ceDUmrXl<(Amp+TN0Ap>2h+qeR6tHUpf{n9`ts$Y5jWUJR%{q6P+XP#pK3Lx4OTW
zBM-+tbMz+Yg{<KVtvP9*T&Q<19Fg}z8Y9@<n3Mj5T==|u;Th+`v|x9uyzt&Tci<(h
zL(iP3T)+8@DLZSYX5TFTAAef+WUVBxg0kZ;rhX&MT;@CZo~o`zoz<>ALOeUXQ2N4g
z#n_kH@RFUij9o)AcKy3^<c_|_oFg5(VlsovO7TY`-;ugV&P$KpA?Kt&{8(N{>^>qF
zQr|qJY07t(f1djCe>lk-W0JpZO!9v_lKh;}$v-Q}Nb=`7$#2x;U)SU>8%e&wP5#?*
zO5ohmYq{jeE&Y;_<nNVvez^2oo#gxFoRr?9$-kk=|MEpGvV8O4jnpprmZFYArB3oy
zI<T)!X}Ly{|A}*?IP2`>-KlA=oVSOVo~(^d7XK*gV!02ye=oTVY}H)c;kAF@e@I6D
znwpBWwdVQ-p=-<qp}YkR`IpFcma#GtZ3)H9`76x4yz3)P4dw;;rZ3+p+#G2M7dD6L
zBkhIl(fY!8TYD@T4z(11A>0x#j7D183&Rat78h1FgsZn~DhxJV7Y#+X7uJOvo65u2
z#W%@`vPf%HJXV-FTvTtA#v2>M(T^&xQu(9F)zPNbnB-NM*$K49!qL`Hv*fm}sUf!6
zyv$s(+{jzm9NN@we%kzEo^PA4$h^^%&2oFQ*k^B+`||V66)Q}ikvAMz!#F4N%^PnN
zpG+#gZ4%rLop0n#Ua8>=HBC2!&C5i0!=~!`h7Bv5wuKw~vC?=`bHfHXQ5o9S)Dmy;
zx7Rl{)x@MWn}XriO|i}SA25Ns)~5PMLwHOQ<^^WE<Q{1>^U5s$+M;Fo=7naFBs^S^
z_vX;h!@=JVh(s8HA6tpbMZvkI#gNhkTI-|XmT+q<-?*$b-rQ_T8xw)cjoF6$J!|Jw
ztf?h@xx2q9-qdip+{{Uv?AW~CQ+zToNkRZy<qp)y-FD2RKREd<e2-f=S%S9rd*A)Z
zqDomZjlwO^`zuB!(nw2spM{thG2d9=TfVJefp6*Xm&Mx__!jGtvon4x5f(QTx?h$y
zn5OPtqF*$rD~+0XeZBk{b7Ng7+A0M!>sq(8Mz*$^tD3jBZ5}>b9&QfD!sg0QQ*%5T
z9zMM;+BC^oxBJybB4$lXsJVGKcug!Me`38{|BYBM5^69jqR~jy2((@wYL-#1Ius4H
zNG?&MuC+bh))tAz!VN~LgmV+rerv3ezt_Gt9BSBZl!vcxst>z~I3=l$Mq=T5jV8mK
zDZOlMxIGe&N(GH8BF*uZuvr#~M&oU<%;8FD;*z9U8E$9_8TMDResidGlO&-zt&GH5
z8w|fqWR{0po9y$NY+FSBHoQh{3AMEeoKY*i!i>aYcD(jj$S%FVSw`rF?b3_f<LjJS
z1<ER`-ICX?tj+9d@gwz-=3$unNK0EN)}()!{)%w4y(!Xa)P(EfqQ2d{qAAiW*W^^$
z+A=prMQelB+Nq5cG90}=++gM{F3vYbj+V$=;s#vV)Epl64@$M;p-o|<Omda!q^Vuv
z+Bd7wdu~FeFvIW_Enc$pqGcB^FZP#~l~=5kfv7I9rglxfDZNx`Sk>s<DjB#xt>d{2
zDfR$<l2g~D(}_$Yqq22+pfkpf&vjI=$%|FqbbV8M#Gd_pCp*1r8FjXkwCa{E-L_=$
z+Hgy#skI>-wF~O<I0bZ2eD>!fpwVn=LXGYWGdjESaC@w&)ovY=<vD!UYV6K2X^_!L
zj9ZE5nCwKHctNAd1bWf~Y$m>>EX_18b9lMw<S6q%zBE{8K`~PIH4y=>x;`9j4z-zf
zB)9eprPJC4lBr^N@^F$`IFh702RqaJNf*5=(zaca(6y8nJ##pw=sKC{C_4$9jEa+-
zmhkRe<HY<EOnD6rQJEknmd)>62uNGsrh>Ar%gZco+-n7w>rTE|IK1k~8+&EF?;2fJ
z<+=3spfRR@$VF*RPWQFfZL(r<0~eZ$<?1R~fJ`jgaKm}eMaN`w>|_lr6Yl-AvgNWu
z`LK;Fli$dqK`NU$`GJ~5CelbsA7c42f1*vG{k=@whnNhBJ9=neaaWyAv&k%p^NkCf
zpwgmz+lqYh0HD3t?b7bupU{Ioc*%wr<C%=5bB!yiQ;tkYKkOV)Cr?35n_9ySGFER2
zw8&g*g<2bAavxWjlg&pT^-3d=SdGm4vNUS14av$uXNh;apyjBkosj*e(wYh9s-?8{
zAaK$%r52(x+!Bdy_czPG{<mi*E!-sMq+GL{r{fLsqnjHl)~>BuYcDZk@pf~CxgeT9
z%a}jmigpn7)yEf^(?%T>$it1h6p^)Kvs0JLWyL9VGDb>c4=_4n__nPa_o)j8%>pyC
z+Hn`8_M_V-d4&H6@88;Zt3F>%dJEs>nrNNm0?T<fplzi(6x%E}!&y`7L1r!LzCRch
zMzU)e2{$HEU973ODc0mPlrb+a*2t6a1g4QxCS1zQ2r}Gf<`li(<rP;1$|^Qg%g-Ea
zs9sxDTUAyS)McOCZFgMIAwy;m88v(|3)^?}BfLAA&Lms=^@dmsFQ(jQ;E8jXET~)C
zBa?J<_x!sI0(n*>+H^ytRUVpT@h*=qy4Y7JdC{R2mM4N(Q~kJ$Qs>g<iSLf;HigQg
zp{?U3Bxu3q_CU0#v?(S}G868@+Q`;GYh%P8jfS@W!Hb!`Q)I|OMGxG!Ftw4j;aEJ{
zn!jR&o?RRMLcA#|Pf-g(mzZt#!XnhV-P{u1ZpI>Jcw19!mVL?XlwrF=ha2pknwM`j
z$^&S)!3k2@6mdql_F9=8RxD^U*S0sb75OrIi*?TlTGMi!1YTUEmz@12&c#36Z(@>e
zdtqG0tpeRGh(#jJ?S=M>BD-5?zVehS=gKQe>sD=8RaUlid7=Ek`Pi%aHg0TT#~<3!
z3;pp}WL3CT+SJ(4#;xbdKX20SIhB-p?f>Pq^H8DpT%*b;>1bS(c{*#nb<Km@r%wOb
zO=Wjq{M!A6_eH-`RPYb!odwT)?C;MsZvD(>_f(e8dHapqzP@nv9gAN5*C)+aZu>%N
z^Uh<3pZVAW=NTRQF59`oH!l2|tG3lX_Tq-pua@rr{)wA+-e5ljj`~vn8RuY&yWQb#
zzu|8Gm%H8PZhzr!Uv;;~-R)HS8;FK+uX}vDdwjOLy};dG;%-0ZZa?pC8{KWh-QMJG
z|Hj?k?ry*BZtrrpKXkWy-0f5D_UG>Qu)BTT-M-^)PnUlbs-I80Tj_Q7XN9}{oV&fs
z-G<%m_3rk>GAI1We3gF%W!x?Q=N3EvuPH6^jZWv!s!5M+$cq}}ZOfRClzgL{xN}$U
zuDf^LzpHQ8{#^%mJ-6%7uGFrhyH4yfdb4|Tdgu0<y?MR9-sQa|y;g5^@0Gn9dpGyC
z^=|9!=-t_SYwtID@9gdEy}S4R-oD=by$5@r>m8E^2M8d500IagfB*srAb<b@2q1s}
z0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*sr
zAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_0
z00IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@
z2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000Iag
zfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}
z0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*sr
zAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_0
z00IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@
z2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000Iag
zfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}
z0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*sr
zAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_0
z00IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@
z2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000Iag
zfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}
z0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*sr
zAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_0
z00IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@
z2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000Iag
zfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}
z0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*sr
zAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_0
z00IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@
z2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000Iag
zfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}
z0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*sr
zAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_0
z00IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@
z2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000Iag
zfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}
z0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000Mt@0{<VV
C+DE+r

literal 0
HcmV?d00001

diff --git a/tests/libqtest.c.orig b/tests/libqtest.c.orig
new file mode 100644
index 0000000000..a1d33a1d0c
--- /dev/null
+++ b/tests/libqtest.c.orig
@@ -0,0 +1,1106 @@
+/*
+ * QTest
+ *
+ * Copyright IBM, Corp. 2012
+ * Copyright Red Hat, Inc. 2012
+ * Copyright SUSE LINUX Products GmbH 2013
+ *
+ * Authors:
+ *  Anthony Liguori   <aliguori@us.ibm.com>
+ *  Paolo Bonzini     <pbonzini@redhat.com>
+ *  Andreas Färber    <afaerber@suse.de>
+ *
+ * This work is licensed under the terms of the GNU GPL, version 2 or later.
+ * See the COPYING file in the top-level directory.
+ */
+
+#include "qemu/osdep.h"
+
+#include <sys/socket.h>
+#include <sys/wait.h>
+#include <sys/un.h>
+
+#include "libqtest.h"
+#include "qemu/cutils.h"
+#include "qapi/error.h"
+#include "qapi/qmp/json-parser.h"
+#include "qapi/qmp/json-streamer.h"
+#include "qapi/qmp/qdict.h"
+#include "qapi/qmp/qjson.h"
+#include "qapi/qmp/qlist.h"
+#include "qapi/qmp/qstring.h"
+
+#define MAX_IRQ 256
+#define SOCKET_TIMEOUT 50
+
+QTestState *global_qtest;
+
+struct QTestState
+{
+    int fd;
+    int qmp_fd;
+    bool irq_level[MAX_IRQ];
+    GString *rx;
+    pid_t qemu_pid;  /* our child QEMU process */
+    bool big_endian;
+};
+
+static GHookList abrt_hooks;
+static struct sigaction sigact_old;
+
+#define g_assert_no_errno(ret) do { \
+    g_assert_cmpint(ret, !=, -1); \
+} while (0)
+
+static int qtest_query_target_endianness(QTestState *s);
+
+static int init_socket(const char *socket_path)
+{
+    struct sockaddr_un addr;
+    int sock;
+    int ret;
+
+    sock = socket(PF_UNIX, SOCK_STREAM, 0);
+    g_assert_no_errno(sock);
+
+    addr.sun_family = AF_UNIX;
+    snprintf(addr.sun_path, sizeof(addr.sun_path), "%s", socket_path);
+    qemu_set_cloexec(sock);
+
+    do {
+        ret = bind(sock, (struct sockaddr *)&addr, sizeof(addr));
+    } while (ret == -1 && errno == EINTR);
+    g_assert_no_errno(ret);
+    ret = listen(sock, 1);
+    g_assert_no_errno(ret);
+
+    return sock;
+}
+
+static int socket_accept(int sock)
+{
+    struct sockaddr_un addr;
+    socklen_t addrlen;
+    int ret;
+    struct timeval timeout = { .tv_sec = SOCKET_TIMEOUT,
+                               .tv_usec = 0 };
+
+    setsockopt(sock, SOL_SOCKET, SO_RCVTIMEO, (void *)&timeout,
+               sizeof(timeout));
+
+    do {
+        addrlen = sizeof(addr);
+        ret = accept(sock, (struct sockaddr *)&addr, &addrlen);
+    } while (ret == -1 && errno == EINTR);
+    if (ret == -1) {
+        fprintf(stderr, "%s failed: %s\n", __func__, strerror(errno));
+    }
+    close(sock);
+
+    return ret;
+}
+
+static void kill_qemu(QTestState *s)
+{
+    int wstatus = 0;
+
+    if (s->qemu_pid != -1) {
+        kill(s->qemu_pid, SIGTERM);
+        waitpid(s->qemu_pid, &wstatus, 0);
+
+        if (WIFSIGNALED(wstatus)) {
+            assert(!WCOREDUMP(wstatus));
+        }
+    }
+}
+
+static void kill_qemu_hook_func(void *s)
+{
+    kill_qemu(s);
+}
+
+static void sigabrt_handler(int signo)
+{
+    g_hook_list_invoke(&abrt_hooks, FALSE);
+}
+
+static void setup_sigabrt_handler(void)
+{
+    struct sigaction sigact;
+
+    /* Catch SIGABRT to clean up on g_assert() failure */
+    sigact = (struct sigaction){
+        .sa_handler = sigabrt_handler,
+        .sa_flags = SA_RESETHAND,
+    };
+    sigemptyset(&sigact.sa_mask);
+    sigaction(SIGABRT, &sigact, &sigact_old);
+}
+
+static void cleanup_sigabrt_handler(void)
+{
+    sigaction(SIGABRT, &sigact_old, NULL);
+}
+
+void qtest_add_abrt_handler(GHookFunc fn, const void *data)
+{
+    GHook *hook;
+
+    /* Only install SIGABRT handler once */
+    if (!abrt_hooks.is_setup) {
+        g_hook_list_init(&abrt_hooks, sizeof(GHook));
+    }
+    setup_sigabrt_handler();
+
+    hook = g_hook_alloc(&abrt_hooks);
+    hook->func = fn;
+    hook->data = (void *)data;
+
+    g_hook_prepend(&abrt_hooks, hook);
+}
+
+static const char *qtest_qemu_binary(void)
+{
+    const char *qemu_bin;
+
+    qemu_bin = getenv("QTEST_QEMU_BINARY");
+    if (!qemu_bin) {
+        fprintf(stderr, "Environment variable QTEST_QEMU_BINARY required\n");
+        exit(1);
+    }
+
+    return qemu_bin;
+}
+
+QTestState *qtest_init_without_qmp_handshake(bool use_oob,
+                                             const char *extra_args)
+{
+    QTestState *s;
+    int sock, qmpsock, i;
+    gchar *socket_path;
+    gchar *qmp_socket_path;
+    gchar *command;
+    const char *qemu_binary = qtest_qemu_binary();
+
+    s = g_new(QTestState, 1);
+
+    socket_path = g_strdup_printf("/tmp/qtest-%d.sock", getpid());
+    qmp_socket_path = g_strdup_printf("/tmp/qtest-%d.qmp", getpid());
+
+    /* It's possible that if an earlier test run crashed it might
+     * have left a stale unix socket lying around. Delete any
+     * stale old socket to avoid spurious test failures with
+     * tests/libqtest.c:70:init_socket: assertion failed (ret != -1): (-1 != -1)
+     */
+    unlink(socket_path);
+    unlink(qmp_socket_path);
+
+    sock = init_socket(socket_path);
+    qmpsock = init_socket(qmp_socket_path);
+
+    qtest_add_abrt_handler(kill_qemu_hook_func, s);
+
+    s->qemu_pid = fork();
+    if (s->qemu_pid == 0) {
+        setenv("QEMU_AUDIO_DRV", "none", true);
+        command = g_strdup_printf("exec %s "
+                                  "-qtest unix:%s,nowait "
+                                  "-qtest-log %s "
+                                  "-chardev socket,path=%s,nowait,id=char0 "
+                                  "-mon chardev=char0,mode=control%s "
+                                  "-machine accel=qtest "
+                                  "-display none "
+                                  "%s", qemu_binary, socket_path,
+                                  getenv("QTEST_LOG") ? "/dev/fd/2" : "/dev/null",
+                                  qmp_socket_path, use_oob ? ",x-oob=on" : "",
+                                  extra_args ?: "");
+        execlp("/bin/sh", "sh", "-c", command, NULL);
+        exit(1);
+    }
+
+    s->fd = socket_accept(sock);
+    if (s->fd >= 0) {
+        s->qmp_fd = socket_accept(qmpsock);
+    }
+    unlink(socket_path);
+    unlink(qmp_socket_path);
+    g_free(socket_path);
+    g_free(qmp_socket_path);
+
+    g_assert(s->fd >= 0 && s->qmp_fd >= 0);
+
+    s->rx = g_string_new("");
+    for (i = 0; i < MAX_IRQ; i++) {
+        s->irq_level[i] = false;
+    }
+
+    if (getenv("QTEST_STOP")) {
+        kill(s->qemu_pid, SIGSTOP);
+    }
+
+    /* ask endianness of the target */
+
+    s->big_endian = qtest_query_target_endianness(s);
+
+    return s;
+}
+
+QTestState *qtest_init(const char *extra_args)
+{
+    QTestState *s = qtest_init_without_qmp_handshake(false, extra_args);
+
+    /* Read the QMP greeting and then do the handshake */
+    qtest_qmp_discard_response(s, "");
+    qtest_qmp_discard_response(s, "{ 'execute': 'qmp_capabilities' }");
+
+    return s;
+}
+
+QTestState *qtest_vstartf(const char *fmt, va_list ap)
+{
+    char *args = g_strdup_vprintf(fmt, ap);
+    QTestState *s;
+
+    s = qtest_start(args);
+    g_free(args);
+    global_qtest = NULL;
+    return s;
+}
+
+QTestState *qtest_startf(const char *fmt, ...)
+{
+    va_list ap;
+    QTestState *s;
+
+    va_start(ap, fmt);
+    s = qtest_vstartf(fmt, ap);
+    va_end(ap);
+    return s;
+}
+
+void qtest_quit(QTestState *s)
+{
+    g_hook_destroy_link(&abrt_hooks, g_hook_find_data(&abrt_hooks, TRUE, s));
+
+    /* Uninstall SIGABRT handler on last instance */
+    cleanup_sigabrt_handler();
+
+    kill_qemu(s);
+    close(s->fd);
+    close(s->qmp_fd);
+    g_string_free(s->rx, true);
+    g_free(s);
+}
+
+static void socket_send(int fd, const char *buf, size_t size)
+{
+    size_t offset;
+
+    offset = 0;
+    while (offset < size) {
+        ssize_t len;
+
+        len = write(fd, buf + offset, size - offset);
+        if (len == -1 && errno == EINTR) {
+            continue;
+        }
+
+        g_assert_no_errno(len);
+        g_assert_cmpint(len, >, 0);
+
+        offset += len;
+    }
+}
+
+static void socket_sendf(int fd, const char *fmt, va_list ap)
+{
+    gchar *str = g_strdup_vprintf(fmt, ap);
+    size_t size = strlen(str);
+
+    socket_send(fd, str, size);
+    g_free(str);
+}
+
+static void GCC_FMT_ATTR(2, 3) qtest_sendf(QTestState *s, const char *fmt, ...)
+{
+    va_list ap;
+
+    va_start(ap, fmt);
+    socket_sendf(s->fd, fmt, ap);
+    va_end(ap);
+}
+
+static GString *qtest_recv_line(QTestState *s)
+{
+    GString *line;
+    size_t offset;
+    char *eol;
+
+    while ((eol = strchr(s->rx->str, '\n')) == NULL) {
+        ssize_t len;
+        char buffer[1024];
+
+        len = read(s->fd, buffer, sizeof(buffer));
+        if (len == -1 && errno == EINTR) {
+            continue;
+        }
+
+        if (len == -1 || len == 0) {
+            fprintf(stderr, "Broken pipe\n");
+            exit(1);
+        }
+
+        g_string_append_len(s->rx, buffer, len);
+    }
+
+    offset = eol - s->rx->str;
+    line = g_string_new_len(s->rx->str, offset);
+    g_string_erase(s->rx, 0, offset + 1);
+
+    return line;
+}
+
+static gchar **qtest_rsp(QTestState *s, int expected_args)
+{
+    GString *line;
+    gchar **words;
+    int i;
+
+redo:
+    line = qtest_recv_line(s);
+    words = g_strsplit(line->str, " ", 0);
+    g_string_free(line, TRUE);
+
+    if (strcmp(words[0], "IRQ") == 0) {
+        long irq;
+        int ret;
+
+        g_assert(words[1] != NULL);
+        g_assert(words[2] != NULL);
+
+        ret = qemu_strtol(words[2], NULL, 0, &irq);
+        g_assert(!ret);
+        g_assert_cmpint(irq, >=, 0);
+        g_assert_cmpint(irq, <, MAX_IRQ);
+
+        if (strcmp(words[1], "raise") == 0) {
+            s->irq_level[irq] = true;
+        } else {
+            s->irq_level[irq] = false;
+        }
+
+        g_strfreev(words);
+        goto redo;
+    }
+
+    g_assert(words[0] != NULL);
+    g_assert_cmpstr(words[0], ==, "OK");
+
+    if (expected_args) {
+        for (i = 0; i < expected_args; i++) {
+            g_assert(words[i] != NULL);
+        }
+    } else {
+        g_strfreev(words);
+    }
+
+    return words;
+}
+
+static int qtest_query_target_endianness(QTestState *s)
+{
+    gchar **args;
+    int big_endian;
+
+    qtest_sendf(s, "endianness\n");
+    args = qtest_rsp(s, 1);
+    g_assert(strcmp(args[1], "big") == 0 || strcmp(args[1], "little") == 0);
+    big_endian = strcmp(args[1], "big") == 0;
+    g_strfreev(args);
+
+    return big_endian;
+}
+
+typedef struct {
+    JSONMessageParser parser;
+    QDict *response;
+} QMPResponseParser;
+
+static void qmp_response(JSONMessageParser *parser, GQueue *tokens)
+{
+    QMPResponseParser *qmp = container_of(parser, QMPResponseParser, parser);
+    QObject *obj;
+
+    obj = json_parser_parse(tokens, NULL);
+    if (!obj) {
+        fprintf(stderr, "QMP JSON response parsing failed\n");
+        exit(1);
+    }
+
+    g_assert(!qmp->response);
+    qmp->response = qobject_to(QDict, obj);
+    g_assert(qmp->response);
+}
+
+QDict *qmp_fd_receive(int fd)
+{
+    QMPResponseParser qmp;
+    bool log = getenv("QTEST_LOG") != NULL;
+
+    qmp.response = NULL;
+    json_message_parser_init(&qmp.parser, qmp_response);
+    while (!qmp.response) {
+        ssize_t len;
+        char c;
+
+        len = read(fd, &c, 1);
+        if (len == -1 && errno == EINTR) {
+            continue;
+        }
+
+        if (len == -1 || len == 0) {
+            fprintf(stderr, "Broken pipe\n");
+            exit(1);
+        }
+
+        if (log) {
+            len = write(2, &c, 1);
+        }
+        json_message_parser_feed(&qmp.parser, &c, 1);
+    }
+    json_message_parser_destroy(&qmp.parser);
+
+    return qmp.response;
+}
+
+QDict *qtest_qmp_receive(QTestState *s)
+{
+    return qmp_fd_receive(s->qmp_fd);
+}
+
+/**
+ * Allow users to send a message without waiting for the reply,
+ * in the case that they choose to discard all replies up until
+ * a particular EVENT is received.
+ */
+void qmp_fd_sendv(int fd, const char *fmt, va_list ap)
+{
+    va_list ap_copy;
+    QObject *qobj;
+
+    /* qobject_from_jsonv() silently eats leading 0xff as invalid
+     * JSON, but we want to test sending them over the wire to force
+     * resyncs */
+    if (*fmt == '\377') {
+        socket_send(fd, fmt, 1);
+        fmt++;
+    }
+
+    /* Going through qobject ensures we escape strings properly.
+     * This seemingly unnecessary copy is required in case va_list
+     * is an array type.
+     */
+    va_copy(ap_copy, ap);
+    qobj = qobject_from_jsonv(fmt, &ap_copy, &error_abort);
+    va_end(ap_copy);
+
+    /* No need to send anything for an empty QObject.  */
+    if (qobj) {
+        int log = getenv("QTEST_LOG") != NULL;
+        QString *qstr = qobject_to_json(qobj);
+        const char *str;
+
+        /*
+         * BUG: QMP doesn't react to input until it sees a newline, an
+         * object, or an array.  Work-around: give it a newline.
+         */
+        qstring_append_chr(qstr, '\n');
+        str = qstring_get_str(qstr);
+
+        if (log) {
+            fprintf(stderr, "%s", str);
+        }
+        /* Send QMP request */
+        socket_send(fd, str, qstring_get_length(qstr));
+
+        qobject_unref(qstr);
+        qobject_unref(qobj);
+    }
+}
+
+void qtest_async_qmpv(QTestState *s, const char *fmt, va_list ap)
+{
+    qmp_fd_sendv(s->qmp_fd, fmt, ap);
+}
+
+QDict *qmp_fdv(int fd, const char *fmt, va_list ap)
+{
+    qmp_fd_sendv(fd, fmt, ap);
+
+    return qmp_fd_receive(fd);
+}
+
+QDict *qtest_qmpv(QTestState *s, const char *fmt, va_list ap)
+{
+    qtest_async_qmpv(s, fmt, ap);
+
+    /* Receive reply */
+    return qtest_qmp_receive(s);
+}
+
+QDict *qmp_fd(int fd, const char *fmt, ...)
+{
+    va_list ap;
+    QDict *response;
+
+    va_start(ap, fmt);
+    response = qmp_fdv(fd, fmt, ap);
+    va_end(ap);
+    return response;
+}
+
+void qmp_fd_send(int fd, const char *fmt, ...)
+{
+    va_list ap;
+
+    va_start(ap, fmt);
+    qmp_fd_sendv(fd, fmt, ap);
+    va_end(ap);
+}
+
+QDict *qtest_qmp(QTestState *s, const char *fmt, ...)
+{
+    va_list ap;
+    QDict *response;
+
+    va_start(ap, fmt);
+    response = qtest_qmpv(s, fmt, ap);
+    va_end(ap);
+    return response;
+}
+
+void qtest_async_qmp(QTestState *s, const char *fmt, ...)
+{
+    va_list ap;
+
+    va_start(ap, fmt);
+    qtest_async_qmpv(s, fmt, ap);
+    va_end(ap);
+}
+
+void qtest_qmpv_discard_response(QTestState *s, const char *fmt, va_list ap)
+{
+    QDict *response = qtest_qmpv(s, fmt, ap);
+    qobject_unref(response);
+}
+
+void qtest_qmp_discard_response(QTestState *s, const char *fmt, ...)
+{
+    va_list ap;
+    QDict *response;
+
+    va_start(ap, fmt);
+    response = qtest_qmpv(s, fmt, ap);
+    va_end(ap);
+    qobject_unref(response);
+}
+
+QDict *qtest_qmp_eventwait_ref(QTestState *s, const char *event)
+{
+    QDict *response;
+
+    for (;;) {
+        response = qtest_qmp_receive(s);
+        if ((qdict_haskey(response, "event")) &&
+            (strcmp(qdict_get_str(response, "event"), event) == 0)) {
+            return response;
+        }
+        qobject_unref(response);
+    }
+}
+
+void qtest_qmp_eventwait(QTestState *s, const char *event)
+{
+    QDict *response;
+
+    response = qtest_qmp_eventwait_ref(s, event);
+    qobject_unref(response);
+}
+
+char *qtest_hmpv(QTestState *s, const char *fmt, va_list ap)
+{
+    char *cmd;
+    QDict *resp;
+    char *ret;
+
+    cmd = g_strdup_vprintf(fmt, ap);
+    resp = qtest_qmp(s, "{'execute': 'human-monitor-command',"
+                     " 'arguments': {'command-line': %s}}",
+                     cmd);
+    ret = g_strdup(qdict_get_try_str(resp, "return"));
+    while (ret == NULL && qdict_get_try_str(resp, "event")) {
+        /* Ignore asynchronous QMP events */
+        qobject_unref(resp);
+        resp = qtest_qmp_receive(s);
+        ret = g_strdup(qdict_get_try_str(resp, "return"));
+    }
+    g_assert(ret);
+    qobject_unref(resp);
+    g_free(cmd);
+    return ret;
+}
+
+char *qtest_hmp(QTestState *s, const char *fmt, ...)
+{
+    va_list ap;
+    char *ret;
+
+    va_start(ap, fmt);
+    ret = qtest_hmpv(s, fmt, ap);
+    va_end(ap);
+    return ret;
+}
+
+const char *qtest_get_arch(void)
+{
+    const char *qemu = qtest_qemu_binary();
+    const char *end = strrchr(qemu, '/');
+
+    return end + strlen("/qemu-system-");
+}
+
+bool qtest_get_irq(QTestState *s, int num)
+{
+    /* dummy operation in order to make sure irq is up to date */
+    qtest_inb(s, 0);
+
+    return s->irq_level[num];
+}
+
+static int64_t qtest_clock_rsp(QTestState *s)
+{
+    gchar **words;
+    int64_t clock;
+    words = qtest_rsp(s, 2);
+    clock = g_ascii_strtoll(words[1], NULL, 0);
+    g_strfreev(words);
+    return clock;
+}
+
+int64_t qtest_clock_step_next(QTestState *s)
+{
+    qtest_sendf(s, "clock_step\n");
+    return qtest_clock_rsp(s);
+}
+
+int64_t qtest_clock_step(QTestState *s, int64_t step)
+{
+    qtest_sendf(s, "clock_step %"PRIi64"\n", step);
+    return qtest_clock_rsp(s);
+}
+
+int64_t qtest_clock_set(QTestState *s, int64_t val)
+{
+    qtest_sendf(s, "clock_set %"PRIi64"\n", val);
+    return qtest_clock_rsp(s);
+}
+
+void qtest_irq_intercept_out(QTestState *s, const char *qom_path)
+{
+    qtest_sendf(s, "irq_intercept_out %s\n", qom_path);
+    qtest_rsp(s, 0);
+}
+
+void qtest_irq_intercept_in(QTestState *s, const char *qom_path)
+{
+    qtest_sendf(s, "irq_intercept_in %s\n", qom_path);
+    qtest_rsp(s, 0);
+}
+
+static void qtest_out(QTestState *s, const char *cmd, uint16_t addr, uint32_t value)
+{
+    qtest_sendf(s, "%s 0x%x 0x%x\n", cmd, addr, value);
+    qtest_rsp(s, 0);
+}
+
+void qtest_outb(QTestState *s, uint16_t addr, uint8_t value)
+{
+    qtest_out(s, "outb", addr, value);
+}
+
+void qtest_outw(QTestState *s, uint16_t addr, uint16_t value)
+{
+    qtest_out(s, "outw", addr, value);
+}
+
+void qtest_outl(QTestState *s, uint16_t addr, uint32_t value)
+{
+    qtest_out(s, "outl", addr, value);
+}
+
+static uint32_t qtest_in(QTestState *s, const char *cmd, uint16_t addr)
+{
+    gchar **args;
+    int ret;
+    unsigned long value;
+
+    qtest_sendf(s, "%s 0x%x\n", cmd, addr);
+    args = qtest_rsp(s, 2);
+    ret = qemu_strtoul(args[1], NULL, 0, &value);
+    g_assert(!ret && value <= UINT32_MAX);
+    g_strfreev(args);
+
+    return value;
+}
+
+uint8_t qtest_inb(QTestState *s, uint16_t addr)
+{
+    return qtest_in(s, "inb", addr);
+}
+
+uint16_t qtest_inw(QTestState *s, uint16_t addr)
+{
+    return qtest_in(s, "inw", addr);
+}
+
+uint32_t qtest_inl(QTestState *s, uint16_t addr)
+{
+    return qtest_in(s, "inl", addr);
+}
+
+static void qtest_write(QTestState *s, const char *cmd, uint64_t addr,
+                        uint64_t value)
+{
+    qtest_sendf(s, "%s 0x%" PRIx64 " 0x%" PRIx64 "\n", cmd, addr, value);
+    qtest_rsp(s, 0);
+}
+
+void qtest_writeb(QTestState *s, uint64_t addr, uint8_t value)
+{
+    qtest_write(s, "writeb", addr, value);
+}
+
+void qtest_writew(QTestState *s, uint64_t addr, uint16_t value)
+{
+    qtest_write(s, "writew", addr, value);
+}
+
+void qtest_writel(QTestState *s, uint64_t addr, uint32_t value)
+{
+    qtest_write(s, "writel", addr, value);
+}
+
+void qtest_writeq(QTestState *s, uint64_t addr, uint64_t value)
+{
+    qtest_write(s, "writeq", addr, value);
+}
+
+static uint64_t qtest_read(QTestState *s, const char *cmd, uint64_t addr)
+{
+    gchar **args;
+    int ret;
+    uint64_t value;
+
+    qtest_sendf(s, "%s 0x%" PRIx64 "\n", cmd, addr);
+    args = qtest_rsp(s, 2);
+    ret = qemu_strtou64(args[1], NULL, 0, &value);
+    g_assert(!ret);
+    g_strfreev(args);
+
+    return value;
+}
+
+uint8_t qtest_readb(QTestState *s, uint64_t addr)
+{
+    return qtest_read(s, "readb", addr);
+}
+
+uint16_t qtest_readw(QTestState *s, uint64_t addr)
+{
+    return qtest_read(s, "readw", addr);
+}
+
+uint32_t qtest_readl(QTestState *s, uint64_t addr)
+{
+    return qtest_read(s, "readl", addr);
+}
+
+uint64_t qtest_readq(QTestState *s, uint64_t addr)
+{
+    return qtest_read(s, "readq", addr);
+}
+
+static int hex2nib(char ch)
+{
+    if (ch >= '0' && ch <= '9') {
+        return ch - '0';
+    } else if (ch >= 'a' && ch <= 'f') {
+        return 10 + (ch - 'a');
+    } else if (ch >= 'A' && ch <= 'F') {
+        return 10 + (ch - 'a');
+    } else {
+        return -1;
+    }
+}
+
+void qtest_memread(QTestState *s, uint64_t addr, void *data, size_t size)
+{
+    uint8_t *ptr = data;
+    gchar **args;
+    size_t i;
+
+    if (!size) {
+        return;
+    }
+
+    qtest_sendf(s, "read 0x%" PRIx64 " 0x%zx\n", addr, size);
+    args = qtest_rsp(s, 2);
+
+    for (i = 0; i < size; i++) {
+        ptr[i] = hex2nib(args[1][2 + (i * 2)]) << 4;
+        ptr[i] |= hex2nib(args[1][2 + (i * 2) + 1]);
+    }
+
+    g_strfreev(args);
+}
+
+uint64_t qtest_rtas_call(QTestState *s, const char *name,
+                         uint32_t nargs, uint64_t args,
+                         uint32_t nret, uint64_t ret)
+{
+    qtest_sendf(s, "rtas %s %u 0x%"PRIx64" %u 0x%"PRIx64"\n",
+                name, nargs, args, nret, ret);
+    qtest_rsp(s, 0);
+    return 0;
+}
+
+void qtest_add_func(const char *str, void (*fn)(void))
+{
+    gchar *path = g_strdup_printf("/%s/%s", qtest_get_arch(), str);
+    g_test_add_func(path, fn);
+    g_free(path);
+}
+
+void qtest_add_data_func_full(const char *str, void *data,
+                              void (*fn)(const void *),
+                              GDestroyNotify data_free_func)
+{
+    gchar *path = g_strdup_printf("/%s/%s", qtest_get_arch(), str);
+    g_test_add_data_func_full(path, data, fn, data_free_func);
+    g_free(path);
+}
+
+void qtest_add_data_func(const char *str, const void *data,
+                         void (*fn)(const void *))
+{
+    gchar *path = g_strdup_printf("/%s/%s", qtest_get_arch(), str);
+    g_test_add_data_func(path, data, fn);
+    g_free(path);
+}
+
+void qtest_bufwrite(QTestState *s, uint64_t addr, const void *data, size_t size)
+{
+    gchar *bdata;
+
+    bdata = g_base64_encode(data, size);
+    qtest_sendf(s, "b64write 0x%" PRIx64 " 0x%zx ", addr, size);
+    socket_send(s->fd, bdata, strlen(bdata));
+    socket_send(s->fd, "\n", 1);
+    qtest_rsp(s, 0);
+    g_free(bdata);
+}
+
+void qtest_bufread(QTestState *s, uint64_t addr, void *data, size_t size)
+{
+    gchar **args;
+    size_t len;
+
+    qtest_sendf(s, "b64read 0x%" PRIx64 " 0x%zx\n", addr, size);
+    args = qtest_rsp(s, 2);
+
+    g_base64_decode_inplace(args[1], &len);
+    if (size != len) {
+        fprintf(stderr, "bufread: asked for %zu bytes but decoded %zu\n",
+                size, len);
+        len = MIN(len, size);
+    }
+
+    memcpy(data, args[1], len);
+    g_strfreev(args);
+}
+
+void qtest_memwrite(QTestState *s, uint64_t addr, const void *data, size_t size)
+{
+    const uint8_t *ptr = data;
+    size_t i;
+    char *enc;
+
+    if (!size) {
+        return;
+    }
+
+    enc = g_malloc(2 * size + 1);
+
+    for (i = 0; i < size; i++) {
+        sprintf(&enc[i * 2], "%02x", ptr[i]);
+    }
+
+    qtest_sendf(s, "write 0x%" PRIx64 " 0x%zx 0x%s\n", addr, size, enc);
+    qtest_rsp(s, 0);
+    g_free(enc);
+}
+
+void qtest_memset(QTestState *s, uint64_t addr, uint8_t pattern, size_t size)
+{
+    qtest_sendf(s, "memset 0x%" PRIx64 " 0x%zx 0x%02x\n", addr, size, pattern);
+    qtest_rsp(s, 0);
+}
+
+QDict *qmp(const char *fmt, ...)
+{
+    va_list ap;
+    QDict *response;
+
+    va_start(ap, fmt);
+    response = qtest_qmpv(global_qtest, fmt, ap);
+    va_end(ap);
+    return response;
+}
+
+void qmp_async(const char *fmt, ...)
+{
+    va_list ap;
+
+    va_start(ap, fmt);
+    qtest_async_qmpv(global_qtest, fmt, ap);
+    va_end(ap);
+}
+
+void qmp_discard_response(const char *fmt, ...)
+{
+    va_list ap;
+
+    va_start(ap, fmt);
+    qtest_qmpv_discard_response(global_qtest, fmt, ap);
+    va_end(ap);
+}
+char *hmp(const char *fmt, ...)
+{
+    va_list ap;
+    char *ret;
+
+    va_start(ap, fmt);
+    ret = qtest_hmpv(global_qtest, fmt, ap);
+    va_end(ap);
+    return ret;
+}
+
+bool qtest_big_endian(QTestState *s)
+{
+    return s->big_endian;
+}
+
+void qtest_cb_for_every_machine(void (*cb)(const char *machine))
+{
+    QDict *response, *minfo;
+    QList *list;
+    const QListEntry *p;
+    QObject *qobj;
+    QString *qstr;
+    const char *mname;
+
+    qtest_start("-machine none");
+    response = qmp("{ 'execute': 'query-machines' }");
+    g_assert(response);
+    list = qdict_get_qlist(response, "return");
+    g_assert(list);
+
+    for (p = qlist_first(list); p; p = qlist_next(p)) {
+        minfo = qobject_to(QDict, qlist_entry_obj(p));
+        g_assert(minfo);
+        qobj = qdict_get(minfo, "name");
+        g_assert(qobj);
+        qstr = qobject_to(QString, qobj);
+        g_assert(qstr);
+        mname = qstring_get_str(qstr);
+        cb(mname);
+    }
+
+    qtest_end();
+    qobject_unref(response);
+}
+
+/*
+ * Generic hot-plugging test via the device_add QMP command.
+ */
+void qtest_qmp_device_add(const char *driver, const char *id, const char *fmt,
+                          ...)
+{
+    QDict *response;
+    char *cmd, *opts = NULL;
+    va_list va;
+
+    if (fmt) {
+        va_start(va, fmt);
+        opts = g_strdup_vprintf(fmt, va);
+        va_end(va);
+    }
+
+    cmd = g_strdup_printf("{'execute': 'device_add',"
+                          " 'arguments': { 'driver': '%s', 'id': '%s'%s%s }}",
+                          driver, id, opts ? ", " : "", opts ? opts : "");
+    g_free(opts);
+
+    response = qmp(cmd);
+    g_free(cmd);
+    g_assert(response);
+    g_assert(!qdict_haskey(response, "event")); /* We don't expect any events */
+    g_assert(!qdict_haskey(response, "error"));
+    qobject_unref(response);
+}
+
+/*
+ * Generic hot-unplugging test via the device_del QMP command.
+ * Device deletion will get one response and one event. For example:
+ *
+ * {'execute': 'device_del','arguments': { 'id': 'scsi-hd'}}
+ *
+ * will get this one:
+ *
+ * {"timestamp": {"seconds": 1505289667, "microseconds": 569862},
+ *  "event": "DEVICE_DELETED", "data": {"device": "scsi-hd",
+ *  "path": "/machine/peripheral/scsi-hd"}}
+ *
+ * and this one:
+ *
+ * {"return": {}}
+ *
+ * But the order of arrival may vary - so we've got to detect both.
+ */
+void qtest_qmp_device_del(const char *id)
+{
+    QDict *response1, *response2, *event = NULL;
+    char *cmd;
+
+    cmd = g_strdup_printf("{'execute': 'device_del',"
+                          " 'arguments': { 'id': '%s' }}", id);
+    response1 = qmp(cmd);
+    g_free(cmd);
+    g_assert(response1);
+    g_assert(!qdict_haskey(response1, "error"));
+
+    response2 = qmp("");
+    g_assert(response2);
+    g_assert(!qdict_haskey(response2, "error"));
+
+    if (qdict_haskey(response1, "event")) {
+        event = response1;
+    } else if (qdict_haskey(response2, "event")) {
+        event = response2;
+    }
+    g_assert(event);
+    g_assert_cmpstr(qdict_get_str(event, "event"), ==, "DEVICE_DELETED");
+
+    qobject_unref(response1);
+    qobject_unref(response2);
+}
diff --git a/tests/qemu-iotests/core.12067 b/tests/qemu-iotests/core.12067
new file mode 100644
index 0000000000000000000000000000000000000000..0ddb68f76aacbf14f48ba13b2ce9d4d52fab0ebf
GIT binary patch
literal 22716416
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
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk|Chac
zftD++>x6x17zqLr1+*2^1ENMGcGAryjLvu(0;Z+KNH=yAbdpX^cOtowOOsaA$e=_-
zhz>{?84VYmd<a8Ogy^7#i<l9VctHaq#sM)xe-bWh8I;lQ|EoIt)J~;t=hA*_IZv&X
z?04VZ_gByR?p?d~sZ)ml0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
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
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5P0_pv^?8?(IMYkebKaGvxh#H%jE{8M_19;71MJI`!DL#
zO}X-Iv-%gDdR4yuEz9bUy5^=B2BdjydaQBf>Wd<V*e)J(x12rnpgUJzG~>8q^66LK
z-~RT@&wMVw{JB&vrtyVY?zA*tDLuyJHeJ*<V@gAxBW4ec{d)MaarxzlE$WXL&N^>w
z!(Ayo%02kik@@_nrhd}chF3P3`f3*EMkz1KMEucq#B=p0#x~4L_15n&HlLntlkIyL
zMI2i$KIXNiRM$RRud*mx{@2c9^Y!KKyK-pM7296>;X;0F6K%vi+RV3=)?Ykxd_!y>
z>DiRE_5DGG`l9T2Q@Pmg+oz0gn6<&|p}FEVXQcJmc50eO{>+JE8?x<JE>;-p`E6o-
z;PwB=@;{i$Mp72bs%iNfSB=fr7qLcO7I&=IZ8r7Q;a7ClAN53=Svyg-_1Y;7QBO>(
z6=u0?J=@2u{jTP_P9EFPoZ89q9!vX`RdCJaV;k-{WqjVRSat69DTVU+^$4UG%$X@Y
z;yq|iXS`WGS(#`f((;{>HjRDE+O0H?{*NZ|eV*#?=>N1_UVqe=^?zm*{$bXBcVUcV
z{oj!vJCas1|0o-e=>O=$UC-+5|7@Eq*2s^tvHn^rANlXwb=5^#-;ca^$^DC_OaurJ
zAV7cs0RjXF5FkK+z<;m6%6<EG`Cef5UV=FR0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk|3CZo6QWmn?*aVe&vnKM_XbLd(jmAQjGN1iS!f(6cNVTJCBemcmBD)v
zvd9}UL#d8tVOj;5gn%WqAatR$=AEb|4S`5;rwa*Klt^7Pi^2`<!eLs$g2@TENT2U{
z-)Axn@pj$tIdb~^`~7~;b3V_zai|0c5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
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
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXz3%vCC
zO!vfFQ{CmKM}zgIY4(+O^LobTOU!&}kCwN&GSf|$W^>%$cXxK93p@MyEoJS|#Fb}Z
z+%!v*_Jv9NVre(;k^X~|xw}tKb*Y_m<vl+;8tngYsylJya6iB2zhAq0>hXoXe`}4G
zOJ4S0Y<6`YoLFwBpBfGFU6)^9?E8sN{n-+8{MBK5vCJp#vy%t=^)lTYcy`!+^}W}w
zCMNOsm9@m2dU7<#-Z{_NM~3ZtWqe@ou%E9viO&<GoMZO-;cJIVt;cq6>uUe&hlhQ=
z=9ANd)JpET2gd8k$sTF5XVx?Ra%HJae&*{l-f4aPoqgkai9J)|lJ~~3rFQ<utAl2e
z^GX>f_xaM^TiPu@pX!d5^M9xGcT5UqJvq}`o954Dz4>&tUvJ7dPd&@F($Bs0lfN%}
z>>8WroO$QV`^=le_WGr9t-qWswTegf%UWWtT%77sCr@3^ew)|p_y3~A=I%G=|Lyw=
z{W$qqPi*=%|LvbHwy9U=-d`TJyZ^A*zE<WFyXV)#eto6PXZ-CluAa?Z$tus}yZier
zwQfxCbN;%PxsAMW*7$$R_a?o+^Af*t|H-|j{$DSx-Kh6J*|KRKy6{ELwf52YH&X9^
zV?Dc+L2}bgY~I{|?r`q-&HJx8^_*ExY{u70eAe%o+urrRm(m}7ymq6;rcHeh0RjXF
z5FkK+009C72oNA}=L&4yv18-!8=L<opih7R0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
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
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
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
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5V(4Qq7fiKfB*pk1PBly
zK!5-N0=q(B@y=nn`d<cA5FkK+009C72oNAZfB*pk*Sf&g&86Hp^nd@geoxLvfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7c7s6C2oNAZfB*pk
z1PBlyK!5;&T_LbI9G2biTZMNZK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
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
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+0D-^Qp#uQ`0000W|JO!HaNxj!0|yQqIB?*=fddB)
z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c
z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=
zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede
z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq
zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?
z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!
z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`
zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K
zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)
z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c
z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=
zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede
z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq
zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?
z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!
z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`
zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K
zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)
z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c
z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=
zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede
z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq
zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?
z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!
z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`
zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K
zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)
z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c
z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=
zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede
z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq
zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?
z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!
z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`
zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K
zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)
z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c
z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=
zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede
z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq
zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?
z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!
z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`
zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K
zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)
z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c
z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=
zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede
z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq
zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?
z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!
z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`
zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K
zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)
z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c
z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=
zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede
z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq
zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?
z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!
z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`
zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K
zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)
z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c
z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=
zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede
z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq
zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?
z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!
z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`
zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K
zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)
z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c
z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=
zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede
z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq
zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?
z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!
z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`
zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K
zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)
z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c
z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=
zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede
z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq
zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?
z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!
z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`
zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K
zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)
z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c
z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=
zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede
z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq
zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?
z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!
z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`
zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K
zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)
z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c
z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=
zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede
z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq
zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?
z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!
z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`
zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K
zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)
z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c
z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=
zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede
z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq
zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?
z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!
z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`
zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K
zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)
z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c
z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=
zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede
z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq
zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?
z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!
z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`
zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K
zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)
z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c
z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=
zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede
z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq
zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?
z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!
z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`
zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K
zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)
z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c
z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=
zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede
z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq
zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?
z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!
z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`
zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K
zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)
z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c
z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=
zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede
z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq
zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?
z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!
z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`
zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K
zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)
z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c
z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=
zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede
z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq
zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?
z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!
z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`
zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K
zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)
z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c
z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=
zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede
z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq
zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?
z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!
z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`
zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K
zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)
z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c
z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=
zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede
z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq
zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?
z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!
z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`
zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K
zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)
z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c
z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=
zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede
z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq
zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?
z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!
z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`
zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K
zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)
z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c
z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=
zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede
z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq
zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?
z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!
z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`
zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K
zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)
z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c
z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=
zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede
z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq
zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?
z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!
z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`
zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K
zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)
z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c
z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=
zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede
z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq
zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?
z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!
z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`
zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K
zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)
z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c
z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=
zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede
z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq
zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?
z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!
z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`
zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K
zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)
z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c
z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=
zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede
z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq
zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?
z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!
z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`
zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K
zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)
z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c
z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=
zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede
z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq
zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?
z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!
z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`
zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K
zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)
z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c
z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=
zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede
z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq
zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?
z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!
z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`
zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K
zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)
z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c
z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=
zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede
z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq
zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?
z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!
z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`
zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K
zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)
z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c
z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=
zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede
z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq
zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?
z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!
z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`
zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K
zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)
z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c
z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=
zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede
z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq
zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?
z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!
z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`
zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K
zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)
z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c
z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=
zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede
z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq
zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?
z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!
z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`
zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K
zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)
z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c
z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=
zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede
z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq
zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?
z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!
z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`
zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K
zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)
z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c
z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=
zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede
z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq
zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?
z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!
z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`
zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K
zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)
z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c
z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=
zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede
z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq
zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?
z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!
z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`
zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K
zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)
z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c
z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=
zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede
z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq
zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?
z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!
z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`
zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K
zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)
z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c
z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=
zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede
z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq
zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?
z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!
z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`
zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K
zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)
z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c
z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=
zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede
z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq
zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?
z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!
z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`
zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K
zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)
z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c
z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=
zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede
z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq
zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?
z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!
z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`
zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K
zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)
z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c
z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=
zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede
z;J|?c2M!#-zP-R(S=RXiU#5bjC3(S1U^ZUJ^rNV!G!w;3s6}O@Z1GZ>T0(di10_K;
zK!?mLYJ-}JrsgOLH8ewpr8y>uUA$C8sCk*h(v$9G<8A)`wf3`leFx!qj;A?i`mWFC
zalOCw+`sSpuC?}dLx2DQ0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
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
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
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%0AJli;P
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%0DJfY
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
G@&5p<io|*V

literal 0
HcmV?d00001

diff --git a/tests/qtest/bios-tables-test-allowed-diff.h.orig b/tests/qtest/bios-tables-test-allowed-diff.h.orig
new file mode 100644
index 0000000000..6a052c5044
--- /dev/null
+++ b/tests/qtest/bios-tables-test-allowed-diff.h.orig
@@ -0,0 +1,18 @@
+/* List of comma-separated changed AML files to ignore */
+"tests/data/acpi/pc/DSDT",
+"tests/data/acpi/pc/DSDT.acpihmat",
+"tests/data/acpi/pc/DSDT.bridge",
+"tests/data/acpi/pc/DSDT.cphp",
+"tests/data/acpi/pc/DSDT.dimmpxm",
+"tests/data/acpi/pc/DSDT.ipmikcs",
+"tests/data/acpi/pc/DSDT.memhp",
+"tests/data/acpi/pc/DSDT.numamem",
+"tests/data/acpi/q35/DSDT",
+"tests/data/acpi/q35/DSDT.acpihmat",
+"tests/data/acpi/q35/DSDT.bridge",
+"tests/data/acpi/q35/DSDT.cphp",
+"tests/data/acpi/q35/DSDT.dimmpxm",
+"tests/data/acpi/q35/DSDT.ipmibt",
+"tests/data/acpi/q35/DSDT.memhp",
+"tests/data/acpi/q35/DSDT.mmio64",
+"tests/data/acpi/q35/DSDT.numamem",
diff --git a/tests/qtest/bios-tables-test-allowed-diff.h.rej b/tests/qtest/bios-tables-test-allowed-diff.h.rej
new file mode 100644
index 0000000000..31b3352111
--- /dev/null
+++ b/tests/qtest/bios-tables-test-allowed-diff.h.rej
@@ -0,0 +1,9 @@
+--- tests/qtest/bios-tables-test-allowed-diff.h
++++ tests/qtest/bios-tables-test-allowed-diff.h
+@@ -1,6 +1 @@
+ /* List of comma-separated changed AML files to ignore */
+-"tests/data/acpi/pc/SSDT.dimmpxm",
+-"tests/data/acpi/q35/SSDT.dimmpxm",
+-"tests/data/acpi/virt/DSDT.memhp",
+-"tests/data/acpi/virt/SSDT.memhp",
+-"tests/data/acpi/virt/NFIT.memhp",
diff --git a/tests/qtest/bios-tables-test.c.orig b/tests/qtest/bios-tables-test.c.orig
new file mode 100644
index 0000000000..a0b8d81659
--- /dev/null
+++ b/tests/qtest/bios-tables-test.c.orig
@@ -0,0 +1,1200 @@
+/*
+ * Boot order test cases.
+ *
+ * Copyright (c) 2013 Red Hat Inc.
+ *
+ * Authors:
+ *  Michael S. Tsirkin <mst@redhat.com>,
+ *
+ * This work is licensed under the terms of the GNU GPL, version 2 or later.
+ * See the COPYING file in the top-level directory.
+ */
+
+/*
+ * How to add or update the tests:
+ * Contributor:
+ * 1. add empty files for new tables, if any, under tests/data/acpi
+ * 2. list any changed files in tests/qtest/bios-tables-test-allowed-diff.h
+ * 3. commit the above *before* making changes that affect the tables
+ *
+ * Contributor or ACPI Maintainer (steps 4-7 need to be redone to resolve conflicts
+ * in binary commit created in step 6):
+ *
+ * After 1-3 above tests will pass but ignore differences with the expected files.
+ * You will also notice that tests/qtest/bios-tables-test-allowed-diff.h lists
+ * a bunch of files. This is your hint that you need to do the below:
+ * 4. Run
+ *      make check V=1
+ * this will produce a bunch of warnings about differences
+ * beween actual and expected ACPI tables. If you have IASL installed,
+ * they will also be disassembled so you can look at the disassembled
+ * output. If not - disassemble them yourself in any way you like.
+ * Look at the differences - make sure they make sense and match what the
+ * changes you are merging are supposed to do.
+ * Save the changes, preferably in form of ASL diff for the commit log in
+ * step 6.
+ *
+ * 5. From build directory, run:
+ *      $(SRC_PATH)/tests/data/acpi/rebuild-expected-aml.sh
+ * 6. Now commit any changes to the expected binary, include diff from step 4
+ *    in commit log.
+ * 7. Before sending patches to the list (Contributor)
+ *    or before doing a pull request (Maintainer), make sure
+ *    tests/qtest/bios-tables-test-allowed-diff.h is empty - this will ensure
+ *    following changes to ACPI tables will be noticed.
+ *
+ * The resulting patchset/pull request then looks like this:
+ * - patch 1: list changed files in tests/qtest/bios-tables-test-allowed-diff.h.
+ * - patches 2 - n: real changes, may contain multiple patches.
+ * - patch n + 1: update golden master binaries and empty
+ *   tests/qtest/bios-tables-test-allowed-diff.h
+ */
+
+#include "qemu/osdep.h"
+#include <glib/gstdio.h>
+#include "qemu-common.h"
+#include "hw/firmware/smbios.h"
+#include "qemu/bitmap.h"
+#include "acpi-utils.h"
+#include "boot-sector.h"
+#include "tpm-emu.h"
+#include "hw/acpi/tpm.h"
+
+
+#define MACHINE_PC "pc"
+#define MACHINE_Q35 "q35"
+
+#define ACPI_REBUILD_EXPECTED_AML "TEST_ACPI_REBUILD_AML"
+
+typedef struct {
+    bool tcg_only;
+    const char *machine;
+    const char *variant;
+    const char *uefi_fl1;
+    const char *uefi_fl2;
+    const char *cd;
+    const uint64_t ram_start;
+    const uint64_t scan_len;
+    uint64_t rsdp_addr;
+    uint8_t rsdp_table[36 /* ACPI 2.0+ RSDP size */];
+    GArray *tables;
+    uint32_t smbios_ep_addr;
+    struct smbios_21_entry_point smbios_ep_table;
+    uint16_t smbios_cpu_max_speed;
+    uint16_t smbios_cpu_curr_speed;
+    uint8_t *required_struct_types;
+    int required_struct_types_len;
+    QTestState *qts;
+} test_data;
+
+static char disk[] = "tests/acpi-test-disk-XXXXXX";
+static const char *data_dir = "tests/data/acpi";
+#ifdef CONFIG_IASL
+static const char *iasl = CONFIG_IASL;
+#else
+static const char *iasl;
+#endif
+
+static bool compare_signature(const AcpiSdtTable *sdt, const char *signature)
+{
+   return !memcmp(sdt->aml, signature, 4);
+}
+
+static void cleanup_table_descriptor(AcpiSdtTable *table)
+{
+    g_free(table->aml);
+    if (table->aml_file &&
+        !table->tmp_files_retain &&
+        g_strstr_len(table->aml_file, -1, "aml-")) {
+        unlink(table->aml_file);
+    }
+    g_free(table->aml_file);
+    g_free(table->asl);
+    if (table->asl_file &&
+        !table->tmp_files_retain) {
+        unlink(table->asl_file);
+    }
+    g_free(table->asl_file);
+}
+
+static void free_test_data(test_data *data)
+{
+    int i;
+
+    for (i = 0; i < data->tables->len; ++i) {
+        cleanup_table_descriptor(&g_array_index(data->tables, AcpiSdtTable, i));
+    }
+
+    g_array_free(data->tables, true);
+}
+
+static void test_acpi_rsdp_table(test_data *data)
+{
+    uint8_t *rsdp_table = data->rsdp_table;
+
+    acpi_fetch_rsdp_table(data->qts, data->rsdp_addr, rsdp_table);
+
+    switch (rsdp_table[15 /* Revision offset */]) {
+    case 0: /* ACPI 1.0 RSDP */
+        /* With rev 1, checksum is only for the first 20 bytes */
+        g_assert(!acpi_calc_checksum(rsdp_table,  20));
+        break;
+    case 2: /* ACPI 2.0+ RSDP */
+        /* With revision 2, we have 2 checksums */
+        g_assert(!acpi_calc_checksum(rsdp_table, 20));
+        g_assert(!acpi_calc_checksum(rsdp_table, 36));
+        break;
+    default:
+        g_assert_not_reached();
+    }
+}
+
+static void test_acpi_rxsdt_table(test_data *data)
+{
+    const char *sig = "RSDT";
+    AcpiSdtTable rsdt = {};
+    int entry_size = 4;
+    int addr_off = 16 /* RsdtAddress */;
+    uint8_t *ent;
+
+    if (data->rsdp_table[15 /* Revision offset */] != 0) {
+        addr_off = 24 /* XsdtAddress */;
+        entry_size = 8;
+        sig = "XSDT";
+    }
+    /* read [RX]SDT table */
+    acpi_fetch_table(data->qts, &rsdt.aml, &rsdt.aml_len,
+                     &data->rsdp_table[addr_off], entry_size, sig, true);
+
+    /* Load all tables and add to test list directly RSDT referenced tables */
+    ACPI_FOREACH_RSDT_ENTRY(rsdt.aml, rsdt.aml_len, ent, entry_size) {
+        AcpiSdtTable ssdt_table = {};
+
+        acpi_fetch_table(data->qts, &ssdt_table.aml, &ssdt_table.aml_len, ent,
+                         entry_size, NULL, true);
+        /* Add table to ASL test tables list */
+        g_array_append_val(data->tables, ssdt_table);
+    }
+    cleanup_table_descriptor(&rsdt);
+}
+
+static void test_acpi_fadt_table(test_data *data)
+{
+    /* FADT table is 1st */
+    AcpiSdtTable table = g_array_index(data->tables, typeof(table), 0);
+    uint8_t *fadt_aml = table.aml;
+    uint32_t fadt_len = table.aml_len;
+    uint32_t val;
+    int dsdt_offset = 40 /* DSDT */;
+    int dsdt_entry_size = 4;
+
+    g_assert(compare_signature(&table, "FACP"));
+
+    /* Since DSDT/FACS isn't in RSDT, add them to ASL test list manually */
+    memcpy(&val, fadt_aml + 112 /* Flags */, 4);
+    val = le32_to_cpu(val);
+    if (!(val & 1UL << 20 /* HW_REDUCED_ACPI */)) {
+        acpi_fetch_table(data->qts, &table.aml, &table.aml_len,
+                         fadt_aml + 36 /* FIRMWARE_CTRL */, 4, "FACS", false);
+        g_array_append_val(data->tables, table);
+    }
+
+    memcpy(&val, fadt_aml + dsdt_offset, 4);
+    val = le32_to_cpu(val);
+    if (!val) {
+        dsdt_offset = 140 /* X_DSDT */;
+        dsdt_entry_size = 8;
+    }
+    acpi_fetch_table(data->qts, &table.aml, &table.aml_len,
+                     fadt_aml + dsdt_offset, dsdt_entry_size, "DSDT", true);
+    g_array_append_val(data->tables, table);
+
+    memset(fadt_aml + 36, 0, 4); /* sanitize FIRMWARE_CTRL ptr */
+    memset(fadt_aml + 40, 0, 4); /* sanitize DSDT ptr */
+    if (fadt_aml[8 /* FADT Major Version */] >= 3) {
+        memset(fadt_aml + 132, 0, 8); /* sanitize X_FIRMWARE_CTRL ptr */
+        memset(fadt_aml + 140, 0, 8); /* sanitize X_DSDT ptr */
+    }
+
+    /* update checksum */
+    fadt_aml[9 /* Checksum */] = 0;
+    fadt_aml[9 /* Checksum */] -= acpi_calc_checksum(fadt_aml, fadt_len);
+}
+
+static void dump_aml_files(test_data *data, bool rebuild)
+{
+    AcpiSdtTable *sdt;
+    GError *error = NULL;
+    gchar *aml_file = NULL;
+    gint fd;
+    ssize_t ret;
+    int i;
+
+    for (i = 0; i < data->tables->len; ++i) {
+        const char *ext = data->variant ? data->variant : "";
+        sdt = &g_array_index(data->tables, AcpiSdtTable, i);
+        g_assert(sdt->aml);
+
+        if (rebuild) {
+            aml_file = g_strdup_printf("%s/%s/%.4s%s", data_dir, data->machine,
+                                       sdt->aml, ext);
+            fd = g_open(aml_file, O_WRONLY|O_TRUNC|O_CREAT,
+                        S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH);
+            if (fd < 0) {
+                perror(aml_file);
+            }
+            g_assert(fd >= 0);
+        } else {
+            fd = g_file_open_tmp("aml-XXXXXX", &sdt->aml_file, &error);
+            g_assert_no_error(error);
+        }
+
+        ret = qemu_write_full(fd, sdt->aml, sdt->aml_len);
+        g_assert(ret == sdt->aml_len);
+
+        close(fd);
+
+        g_free(aml_file);
+    }
+}
+
+static bool load_asl(GArray *sdts, AcpiSdtTable *sdt)
+{
+    AcpiSdtTable *temp;
+    GError *error = NULL;
+    GString *command_line = g_string_new(iasl);
+    gint fd;
+    gchar *out, *out_err;
+    gboolean ret;
+    int i;
+
+    fd = g_file_open_tmp("asl-XXXXXX.dsl", &sdt->asl_file, &error);
+    g_assert_no_error(error);
+    close(fd);
+
+    /* build command line */
+    g_string_append_printf(command_line, " -p %s ", sdt->asl_file);
+    if (compare_signature(sdt, "DSDT") ||
+        compare_signature(sdt, "SSDT")) {
+        for (i = 0; i < sdts->len; ++i) {
+            temp = &g_array_index(sdts, AcpiSdtTable, i);
+            if (compare_signature(temp, "DSDT") ||
+                compare_signature(temp, "SSDT")) {
+                g_string_append_printf(command_line, "-e %s ", temp->aml_file);
+            }
+        }
+    }
+    g_string_append_printf(command_line, "-d %s", sdt->aml_file);
+
+    /* pass 'out' and 'out_err' in order to be redirected */
+    ret = g_spawn_command_line_sync(command_line->str, &out, &out_err, NULL, &error);
+    g_assert_no_error(error);
+    if (ret) {
+        ret = g_file_get_contents(sdt->asl_file, &sdt->asl,
+                                  &sdt->asl_len, &error);
+        g_assert(ret);
+        g_assert_no_error(error);
+        ret = (sdt->asl_len > 0);
+    }
+
+    g_free(out);
+    g_free(out_err);
+    g_string_free(command_line, true);
+
+    return !ret;
+}
+
+#define COMMENT_END "*/"
+#define DEF_BLOCK "DefinitionBlock ("
+#define BLOCK_NAME_END ","
+
+static GString *normalize_asl(gchar *asl_code)
+{
+    GString *asl = g_string_new(asl_code);
+    gchar *comment, *block_name;
+
+    /* strip comments (different generation days) */
+    comment = g_strstr_len(asl->str, asl->len, COMMENT_END);
+    if (comment) {
+        comment += strlen(COMMENT_END);
+        while (*comment == '\n') {
+            comment++;
+        }
+        asl = g_string_erase(asl, 0, comment - asl->str);
+    }
+
+    /* strip def block name (it has file path in it) */
+    if (g_str_has_prefix(asl->str, DEF_BLOCK)) {
+        block_name = g_strstr_len(asl->str, asl->len, BLOCK_NAME_END);
+        g_assert(block_name);
+        asl = g_string_erase(asl, 0,
+                             block_name + sizeof(BLOCK_NAME_END) - asl->str);
+    }
+
+    return asl;
+}
+
+static GArray *load_expected_aml(test_data *data)
+{
+    int i;
+    AcpiSdtTable *sdt;
+    GError *error = NULL;
+    gboolean ret;
+    gsize aml_len;
+
+    GArray *exp_tables = g_array_new(false, true, sizeof(AcpiSdtTable));
+    if (getenv("V")) {
+        fputc('\n', stderr);
+    }
+    for (i = 0; i < data->tables->len; ++i) {
+        AcpiSdtTable exp_sdt;
+        gchar *aml_file = NULL;
+        const char *ext = data->variant ? data->variant : "";
+
+        sdt = &g_array_index(data->tables, AcpiSdtTable, i);
+
+        memset(&exp_sdt, 0, sizeof(exp_sdt));
+
+try_again:
+        aml_file = g_strdup_printf("%s/%s/%.4s%s", data_dir, data->machine,
+                                   sdt->aml, ext);
+        if (getenv("V")) {
+            fprintf(stderr, "Looking for expected file '%s'\n", aml_file);
+        }
+        if (g_file_test(aml_file, G_FILE_TEST_EXISTS)) {
+            exp_sdt.aml_file = aml_file;
+        } else if (*ext != '\0') {
+            /* try fallback to generic (extension less) expected file */
+            ext = "";
+            g_free(aml_file);
+            goto try_again;
+        }
+        g_assert(exp_sdt.aml_file);
+        if (getenv("V")) {
+            fprintf(stderr, "Using expected file '%s'\n", aml_file);
+        }
+        ret = g_file_get_contents(aml_file, (gchar **)&exp_sdt.aml,
+                                  &aml_len, &error);
+        exp_sdt.aml_len = aml_len;
+        g_assert(ret);
+        g_assert_no_error(error);
+        g_assert(exp_sdt.aml);
+        if (!exp_sdt.aml_len) {
+            fprintf(stderr, "Warning! zero length expected file '%s'\n",
+                    aml_file);
+        }
+
+        g_array_append_val(exp_tables, exp_sdt);
+    }
+
+    return exp_tables;
+}
+
+static bool test_acpi_find_diff_allowed(AcpiSdtTable *sdt)
+{
+    const gchar *allowed_diff_file[] = {
+#include "bios-tables-test-allowed-diff.h"
+        NULL
+    };
+    const gchar **f;
+
+    for (f = allowed_diff_file; *f; ++f) {
+        if (!g_strcmp0(sdt->aml_file, *f)) {
+            return true;
+        }
+    }
+    return false;
+}
+
+/* test the list of tables in @data->tables against reference tables */
+static void test_acpi_asl(test_data *data)
+{
+    int i;
+    AcpiSdtTable *sdt, *exp_sdt;
+    test_data exp_data;
+    gboolean exp_err, err, all_tables_match = true;
+
+    memset(&exp_data, 0, sizeof(exp_data));
+    exp_data.tables = load_expected_aml(data);
+    dump_aml_files(data, false);
+    for (i = 0; i < data->tables->len; ++i) {
+        GString *asl, *exp_asl;
+
+        sdt = &g_array_index(data->tables, AcpiSdtTable, i);
+        exp_sdt = &g_array_index(exp_data.tables, AcpiSdtTable, i);
+
+        if (sdt->aml_len == exp_sdt->aml_len &&
+            !memcmp(sdt->aml, exp_sdt->aml, sdt->aml_len)) {
+            /* Identical table binaries: no need to disassemble. */
+            continue;
+        }
+
+        fprintf(stderr,
+                "acpi-test: Warning! %.4s binary file mismatch. "
+                "Actual [aml:%s], Expected [aml:%s].\n"
+                "See source file tests/qtest/bios-tables-test.c "
+                "for instructions on how to update expected files.\n",
+                exp_sdt->aml, sdt->aml_file, exp_sdt->aml_file);
+
+        all_tables_match = all_tables_match &&
+            test_acpi_find_diff_allowed(exp_sdt);
+
+        /*
+         *  don't try to decompile if IASL isn't present, in this case user
+         * will just 'get binary file mismatch' warnings and test failure
+         */
+        if (!iasl) {
+            continue;
+        }
+
+        err = load_asl(data->tables, sdt);
+        asl = normalize_asl(sdt->asl);
+
+        exp_err = load_asl(exp_data.tables, exp_sdt);
+        exp_asl = normalize_asl(exp_sdt->asl);
+
+        /* TODO: check for warnings */
+        g_assert(!err || exp_err);
+
+        if (g_strcmp0(asl->str, exp_asl->str)) {
+            sdt->tmp_files_retain = true;
+            if (exp_err) {
+                fprintf(stderr,
+                        "Warning! iasl couldn't parse the expected aml\n");
+            } else {
+                exp_sdt->tmp_files_retain = true;
+                fprintf(stderr,
+                        "acpi-test: Warning! %.4s mismatch. "
+                        "Actual [asl:%s, aml:%s], Expected [asl:%s, aml:%s].\n",
+                        exp_sdt->aml, sdt->asl_file, sdt->aml_file,
+                        exp_sdt->asl_file, exp_sdt->aml_file);
+                fflush(stderr);
+                if (getenv("V")) {
+                    const char *diff_env = getenv("DIFF");
+                    const char *diff_cmd = diff_env ? diff_env : "diff -U 16";
+                    char *diff = g_strdup_printf("%s %s %s", diff_cmd,
+                                                 exp_sdt->asl_file, sdt->asl_file);
+                    int out = dup(STDOUT_FILENO);
+                    int ret G_GNUC_UNUSED;
+
+                    dup2(STDERR_FILENO, STDOUT_FILENO);
+                    ret = system(diff) ;
+                    dup2(out, STDOUT_FILENO);
+                    close(out);
+                    g_free(diff);
+                }
+            }
+        }
+        g_string_free(asl, true);
+        g_string_free(exp_asl, true);
+    }
+    if (!iasl && !all_tables_match) {
+        fprintf(stderr, "to see ASL diff between mismatched files install IASL,"
+                " rebuild QEMU from scratch and re-run tests with V=1"
+                " environment variable set");
+    }
+    g_assert(all_tables_match);
+
+    free_test_data(&exp_data);
+}
+
+static bool smbios_ep_table_ok(test_data *data)
+{
+    struct smbios_21_entry_point *ep_table = &data->smbios_ep_table;
+    uint32_t addr = data->smbios_ep_addr;
+
+    qtest_memread(data->qts, addr, ep_table, sizeof(*ep_table));
+    if (memcmp(ep_table->anchor_string, "_SM_", 4)) {
+        return false;
+    }
+    if (memcmp(ep_table->intermediate_anchor_string, "_DMI_", 5)) {
+        return false;
+    }
+    if (ep_table->structure_table_length == 0) {
+        return false;
+    }
+    if (ep_table->number_of_structures == 0) {
+        return false;
+    }
+    if (acpi_calc_checksum((uint8_t *)ep_table, sizeof *ep_table) ||
+        acpi_calc_checksum((uint8_t *)ep_table + 0x10,
+                           sizeof *ep_table - 0x10)) {
+        return false;
+    }
+    return true;
+}
+
+static void test_smbios_entry_point(test_data *data)
+{
+    uint32_t off;
+
+    /* find smbios entry point structure */
+    for (off = 0xf0000; off < 0x100000; off += 0x10) {
+        uint8_t sig[] = "_SM_";
+        int i;
+
+        for (i = 0; i < sizeof sig - 1; ++i) {
+            sig[i] = qtest_readb(data->qts, off + i);
+        }
+
+        if (!memcmp(sig, "_SM_", sizeof sig)) {
+            /* signature match, but is this a valid entry point? */
+            data->smbios_ep_addr = off;
+            if (smbios_ep_table_ok(data)) {
+                break;
+            }
+        }
+    }
+
+    g_assert_cmphex(off, <, 0x100000);
+}
+
+static inline bool smbios_single_instance(uint8_t type)
+{
+    switch (type) {
+    case 0:
+    case 1:
+    case 2:
+    case 3:
+    case 16:
+    case 32:
+    case 127:
+        return true;
+    default:
+        return false;
+    }
+}
+
+static bool smbios_cpu_test(test_data *data, uint32_t addr)
+{
+    uint16_t expect_speed[2];
+    uint16_t real;
+    int offset[2];
+    int i;
+
+    /* Check CPU speed for backward compatibility */
+    offset[0] = offsetof(struct smbios_type_4, max_speed);
+    offset[1] = offsetof(struct smbios_type_4, current_speed);
+    expect_speed[0] = data->smbios_cpu_max_speed ? : 2000;
+    expect_speed[1] = data->smbios_cpu_curr_speed ? : 2000;
+
+    for (i = 0; i < 2; i++) {
+        real = qtest_readw(data->qts, addr + offset[i]);
+        if (real != expect_speed[i]) {
+            fprintf(stderr, "Unexpected SMBIOS CPU speed: real %u expect %u\n",
+                    real, expect_speed[i]);
+            return false;
+        }
+    }
+
+    return true;
+}
+
+static void test_smbios_structs(test_data *data)
+{
+    DECLARE_BITMAP(struct_bitmap, SMBIOS_MAX_TYPE+1) = { 0 };
+    struct smbios_21_entry_point *ep_table = &data->smbios_ep_table;
+    uint32_t addr = le32_to_cpu(ep_table->structure_table_address);
+    int i, len, max_len = 0;
+    uint8_t type, prv, crt;
+
+    /* walk the smbios tables */
+    for (i = 0; i < le16_to_cpu(ep_table->number_of_structures); i++) {
+
+        /* grab type and formatted area length from struct header */
+        type = qtest_readb(data->qts, addr);
+        g_assert_cmpuint(type, <=, SMBIOS_MAX_TYPE);
+        len = qtest_readb(data->qts, addr + 1);
+
+        /* single-instance structs must not have been encountered before */
+        if (smbios_single_instance(type)) {
+            g_assert(!test_bit(type, struct_bitmap));
+        }
+        set_bit(type, struct_bitmap);
+
+        if (type == 4) {
+            g_assert(smbios_cpu_test(data, addr));
+        }
+
+        /* seek to end of unformatted string area of this struct ("\0\0") */
+        prv = crt = 1;
+        while (prv || crt) {
+            prv = crt;
+            crt = qtest_readb(data->qts, addr + len);
+            len++;
+        }
+
+        /* keep track of max. struct size */
+        if (max_len < len) {
+            max_len = len;
+            g_assert_cmpuint(max_len, <=, ep_table->max_structure_size);
+        }
+
+        /* start of next structure */
+        addr += len;
+    }
+
+    /* total table length and max struct size must match entry point values */
+    g_assert_cmpuint(le16_to_cpu(ep_table->structure_table_length), ==,
+                     addr - le32_to_cpu(ep_table->structure_table_address));
+    g_assert_cmpuint(le16_to_cpu(ep_table->max_structure_size), ==, max_len);
+
+    /* required struct types must all be present */
+    for (i = 0; i < data->required_struct_types_len; i++) {
+        g_assert(test_bit(data->required_struct_types[i], struct_bitmap));
+    }
+}
+
+static void test_acpi_one(const char *params, test_data *data)
+{
+    char *args;
+    bool use_uefi = data->uefi_fl1 && data->uefi_fl2;
+
+    if (use_uefi) {
+        /*
+         * TODO: convert '-drive if=pflash' to new syntax (see e33763be7cd3)
+         * when arm/virt boad starts to support it.
+         */
+        args = g_strdup_printf("-machine %s %s -accel tcg -nodefaults -nographic "
+            "-drive if=pflash,format=raw,file=%s,readonly "
+            "-drive if=pflash,format=raw,file=%s,snapshot=on -cdrom %s %s",
+            data->machine, data->tcg_only ? "" : "-accel kvm",
+            data->uefi_fl1, data->uefi_fl2, data->cd, params ? params : "");
+
+    } else {
+        /* Disable kernel irqchip to be able to override apic irq0. */
+        args = g_strdup_printf("-machine %s,kernel-irqchip=off %s -accel tcg "
+            "-net none -display none %s "
+            "-drive id=hd0,if=none,file=%s,format=raw "
+            "-device ide-hd,drive=hd0 ",
+             data->machine, data->tcg_only ? "" : "-accel kvm",
+             params ? params : "", disk);
+    }
+
+    data->qts = qtest_init(args);
+
+    if (use_uefi) {
+        g_assert(data->scan_len);
+        data->rsdp_addr = acpi_find_rsdp_address_uefi(data->qts,
+            data->ram_start, data->scan_len);
+    } else {
+        boot_sector_test(data->qts);
+        data->rsdp_addr = acpi_find_rsdp_address(data->qts);
+        g_assert_cmphex(data->rsdp_addr, <, 0x100000);
+    }
+
+    data->tables = g_array_new(false, true, sizeof(AcpiSdtTable));
+    test_acpi_rsdp_table(data);
+    test_acpi_rxsdt_table(data);
+    test_acpi_fadt_table(data);
+
+    if (getenv(ACPI_REBUILD_EXPECTED_AML)) {
+        dump_aml_files(data, true);
+    } else {
+        test_acpi_asl(data);
+    }
+
+    /*
+     * TODO: make SMBIOS tests work with UEFI firmware,
+     * Bug on uefi-test-tools to provide entry point:
+     * https://bugs.launchpad.net/qemu/+bug/1821884
+     */
+    if (!use_uefi) {
+        test_smbios_entry_point(data);
+        test_smbios_structs(data);
+    }
+
+    qtest_quit(data->qts);
+    g_free(args);
+}
+
+static uint8_t base_required_struct_types[] = {
+    0, 1, 3, 4, 16, 17, 19, 32, 127
+};
+
+static void test_acpi_piix4_tcg(void)
+{
+    test_data data;
+
+    /* Supplying -machine accel argument overrides the default (qtest).
+     * This is to make guest actually run.
+     */
+    memset(&data, 0, sizeof(data));
+    data.machine = MACHINE_PC;
+    data.required_struct_types = base_required_struct_types;
+    data.required_struct_types_len = ARRAY_SIZE(base_required_struct_types);
+    test_acpi_one(NULL, &data);
+    free_test_data(&data);
+}
+
+static void test_acpi_piix4_tcg_bridge(void)
+{
+    test_data data;
+
+    memset(&data, 0, sizeof(data));
+    data.machine = MACHINE_PC;
+    data.variant = ".bridge";
+    data.required_struct_types = base_required_struct_types;
+    data.required_struct_types_len = ARRAY_SIZE(base_required_struct_types);
+    test_acpi_one("-device pci-bridge,chassis_nr=1", &data);
+    free_test_data(&data);
+}
+
+<<<<<<< HEAD
+static void test_acpi_piix4_bridge_hotplug(void)
+=======
+static void test_acpi_piix4_root_hotplug(void)
+>>>>>>> tests/acpi: add a new unit test to test hotplug off/on feature on the root pci bus
+{
+    test_data data;
+
+    memset(&data, 0, sizeof(data));
+    data.machine = MACHINE_PC;
+<<<<<<< HEAD
+    data.variant = ".hpbridge";
+    data.required_struct_types = base_required_struct_types;
+    data.required_struct_types_len = ARRAY_SIZE(base_required_struct_types);
+    test_acpi_one("-global PIIX4_PM.acpi-pci-hotplug-with-bridge-support=off "
+                  "-device pci-bridge,chassis_nr=1", &data);
+=======
+    data.variant = ".roothp";
+    data.required_struct_types = base_required_struct_types;
+    data.required_struct_types_len = ARRAY_SIZE(base_required_struct_types);
+    test_acpi_one("-global PIIX4_PM.acpi-root-pci-hotplug=off", &data);
+>>>>>>> tests/acpi: add a new unit test to test hotplug off/on feature on the root pci bus
+    free_test_data(&data);
+}
+
+static void test_acpi_q35_tcg(void)
+{
+    test_data data;
+
+    memset(&data, 0, sizeof(data));
+    data.machine = MACHINE_Q35;
+    data.required_struct_types = base_required_struct_types;
+    data.required_struct_types_len = ARRAY_SIZE(base_required_struct_types);
+    test_acpi_one(NULL, &data);
+    free_test_data(&data);
+
+    data.smbios_cpu_max_speed = 3000;
+    data.smbios_cpu_curr_speed = 2600;
+    test_acpi_one("-smbios type=4,max-speed=3000,current-speed=2600", &data);
+    free_test_data(&data);
+}
+
+static void test_acpi_q35_tcg_bridge(void)
+{
+    test_data data;
+
+    memset(&data, 0, sizeof(data));
+    data.machine = MACHINE_Q35;
+    data.variant = ".bridge";
+    data.required_struct_types = base_required_struct_types;
+    data.required_struct_types_len = ARRAY_SIZE(base_required_struct_types);
+    test_acpi_one("-device pci-bridge,chassis_nr=1",
+                  &data);
+    free_test_data(&data);
+}
+
+static void test_acpi_q35_tcg_mmio64(void)
+{
+    test_data data = {
+        .machine = MACHINE_Q35,
+        .variant = ".mmio64",
+        .required_struct_types = base_required_struct_types,
+        .required_struct_types_len = ARRAY_SIZE(base_required_struct_types)
+    };
+
+    test_acpi_one("-m 128M,slots=1,maxmem=2G "
+                  "-object memory-backend-ram,id=ram0,size=128M "
+                  "-numa node,memdev=ram0 "
+                  "-device pci-testdev,membar=2G",
+                  &data);
+    free_test_data(&data);
+}
+
+static void test_acpi_piix4_tcg_cphp(void)
+{
+    test_data data;
+
+    memset(&data, 0, sizeof(data));
+    data.machine = MACHINE_PC;
+    data.variant = ".cphp";
+    test_acpi_one("-smp 2,cores=3,sockets=2,maxcpus=6"
+                  " -object memory-backend-ram,id=ram0,size=64M"
+                  " -object memory-backend-ram,id=ram1,size=64M"
+                  " -numa node,memdev=ram0 -numa node,memdev=ram1"
+                  " -numa dist,src=0,dst=1,val=21",
+                  &data);
+    free_test_data(&data);
+}
+
+static void test_acpi_q35_tcg_cphp(void)
+{
+    test_data data;
+
+    memset(&data, 0, sizeof(data));
+    data.machine = MACHINE_Q35;
+    data.variant = ".cphp";
+    test_acpi_one(" -smp 2,cores=3,sockets=2,maxcpus=6"
+                  " -object memory-backend-ram,id=ram0,size=64M"
+                  " -object memory-backend-ram,id=ram1,size=64M"
+                  " -numa node,memdev=ram0 -numa node,memdev=ram1"
+                  " -numa dist,src=0,dst=1,val=21",
+                  &data);
+    free_test_data(&data);
+}
+
+static uint8_t ipmi_required_struct_types[] = {
+    0, 1, 3, 4, 16, 17, 19, 32, 38, 127
+};
+
+static void test_acpi_q35_tcg_ipmi(void)
+{
+    test_data data;
+
+    memset(&data, 0, sizeof(data));
+    data.machine = MACHINE_Q35;
+    data.variant = ".ipmibt";
+    data.required_struct_types = ipmi_required_struct_types;
+    data.required_struct_types_len = ARRAY_SIZE(ipmi_required_struct_types);
+    test_acpi_one("-device ipmi-bmc-sim,id=bmc0"
+                  " -device isa-ipmi-bt,bmc=bmc0",
+                  &data);
+    free_test_data(&data);
+}
+
+static void test_acpi_piix4_tcg_ipmi(void)
+{
+    test_data data;
+
+    /* Supplying -machine accel argument overrides the default (qtest).
+     * This is to make guest actually run.
+     */
+    memset(&data, 0, sizeof(data));
+    data.machine = MACHINE_PC;
+    data.variant = ".ipmikcs";
+    data.required_struct_types = ipmi_required_struct_types;
+    data.required_struct_types_len = ARRAY_SIZE(ipmi_required_struct_types);
+    test_acpi_one("-device ipmi-bmc-sim,id=bmc0"
+                  " -device isa-ipmi-kcs,irq=0,bmc=bmc0",
+                  &data);
+    free_test_data(&data);
+}
+
+static void test_acpi_q35_tcg_memhp(void)
+{
+    test_data data;
+
+    memset(&data, 0, sizeof(data));
+    data.machine = MACHINE_Q35;
+    data.variant = ".memhp";
+    test_acpi_one(" -m 128,slots=3,maxmem=1G"
+                  " -object memory-backend-ram,id=ram0,size=64M"
+                  " -object memory-backend-ram,id=ram1,size=64M"
+                  " -numa node,memdev=ram0 -numa node,memdev=ram1"
+                  " -numa dist,src=0,dst=1,val=21",
+                  &data);
+    free_test_data(&data);
+}
+
+static void test_acpi_piix4_tcg_memhp(void)
+{
+    test_data data;
+
+    memset(&data, 0, sizeof(data));
+    data.machine = MACHINE_PC;
+    data.variant = ".memhp";
+    test_acpi_one(" -m 128,slots=3,maxmem=1G"
+                  " -object memory-backend-ram,id=ram0,size=64M"
+                  " -object memory-backend-ram,id=ram1,size=64M"
+                  " -numa node,memdev=ram0 -numa node,memdev=ram1"
+                  " -numa dist,src=0,dst=1,val=21",
+                  &data);
+    free_test_data(&data);
+}
+
+static void test_acpi_q35_tcg_numamem(void)
+{
+    test_data data;
+
+    memset(&data, 0, sizeof(data));
+    data.machine = MACHINE_Q35;
+    data.variant = ".numamem";
+    test_acpi_one(" -object memory-backend-ram,id=ram0,size=128M"
+                  " -numa node -numa node,memdev=ram0", &data);
+    free_test_data(&data);
+}
+
+static void test_acpi_piix4_tcg_numamem(void)
+{
+    test_data data;
+
+    memset(&data, 0, sizeof(data));
+    data.machine = MACHINE_PC;
+    data.variant = ".numamem";
+    test_acpi_one(" -object memory-backend-ram,id=ram0,size=128M"
+                  " -numa node -numa node,memdev=ram0", &data);
+    free_test_data(&data);
+}
+
+uint64_t tpm_tis_base_addr;
+
+static void test_acpi_tcg_tpm(const char *machine, const char *tpm_if,
+                              uint64_t base)
+{
+#ifdef CONFIG_TPM
+    gchar *tmp_dir_name = g_strdup_printf("qemu-test_acpi_%s_tcg_%s.XXXXXX",
+                                          machine, tpm_if);
+    char *tmp_path = g_dir_make_tmp(tmp_dir_name, NULL);
+    TestState test;
+    test_data data;
+    GThread *thread;
+    char *args, *variant = g_strdup_printf(".%s", tpm_if);
+
+    tpm_tis_base_addr = base;
+
+    module_call_init(MODULE_INIT_QOM);
+
+    test.addr = g_new0(SocketAddress, 1);
+    test.addr->type = SOCKET_ADDRESS_TYPE_UNIX;
+    test.addr->u.q_unix.path = g_build_filename(tmp_path, "sock", NULL);
+    g_mutex_init(&test.data_mutex);
+    g_cond_init(&test.data_cond);
+    test.data_cond_signal = false;
+
+    thread = g_thread_new(NULL, tpm_emu_ctrl_thread, &test);
+    tpm_emu_test_wait_cond(&test);
+
+    memset(&data, 0, sizeof(data));
+    data.machine = machine;
+    data.variant = variant;
+
+    args = g_strdup_printf(
+        " -chardev socket,id=chr,path=%s"
+        " -tpmdev emulator,id=dev,chardev=chr"
+        " -device tpm-%s,tpmdev=dev",
+        test.addr->u.q_unix.path, tpm_if);
+
+    test_acpi_one(args, &data);
+
+    g_thread_join(thread);
+    g_unlink(test.addr->u.q_unix.path);
+    qapi_free_SocketAddress(test.addr);
+    g_rmdir(tmp_path);
+    g_free(variant);
+    g_free(tmp_path);
+    g_free(tmp_dir_name);
+    g_free(args);
+    free_test_data(&data);
+#else
+    g_test_skip("TPM disabled");
+#endif
+}
+
+static void test_acpi_q35_tcg_tpm_tis(void)
+{
+    test_acpi_tcg_tpm("q35", "tis", 0xFED40000);
+}
+
+static void test_acpi_tcg_dimm_pxm(const char *machine)
+{
+    test_data data;
+
+    memset(&data, 0, sizeof(data));
+    data.machine = machine;
+    data.variant = ".dimmpxm";
+    test_acpi_one(" -machine nvdimm=on,nvdimm-persistence=cpu"
+                  " -smp 4,sockets=4"
+                  " -m 128M,slots=3,maxmem=1G"
+                  " -object memory-backend-ram,id=ram0,size=32M"
+                  " -object memory-backend-ram,id=ram1,size=32M"
+                  " -object memory-backend-ram,id=ram2,size=32M"
+                  " -object memory-backend-ram,id=ram3,size=32M"
+                  " -numa node,memdev=ram0,nodeid=0"
+                  " -numa node,memdev=ram1,nodeid=1"
+                  " -numa node,memdev=ram2,nodeid=2"
+                  " -numa node,memdev=ram3,nodeid=3"
+                  " -numa cpu,node-id=0,socket-id=0"
+                  " -numa cpu,node-id=1,socket-id=1"
+                  " -numa cpu,node-id=2,socket-id=2"
+                  " -numa cpu,node-id=3,socket-id=3"
+                  " -object memory-backend-ram,id=ram4,size=128M"
+                  " -object memory-backend-ram,id=nvm0,size=128M"
+                  " -device pc-dimm,id=dimm0,memdev=ram4,node=1"
+                  " -device nvdimm,id=dimm1,memdev=nvm0,node=2",
+                  &data);
+    free_test_data(&data);
+}
+
+static void test_acpi_q35_tcg_dimm_pxm(void)
+{
+    test_acpi_tcg_dimm_pxm(MACHINE_Q35);
+}
+
+static void test_acpi_piix4_tcg_dimm_pxm(void)
+{
+    test_acpi_tcg_dimm_pxm(MACHINE_PC);
+}
+
+static void test_acpi_virt_tcg_memhp(void)
+{
+    test_data data = {
+        .machine = "virt",
+        .tcg_only = true,
+        .uefi_fl1 = "pc-bios/edk2-aarch64-code.fd",
+        .uefi_fl2 = "pc-bios/edk2-arm-vars.fd",
+        .cd = "tests/data/uefi-boot-images/bios-tables-test.aarch64.iso.qcow2",
+        .ram_start = 0x40000000ULL,
+        .scan_len = 256ULL * 1024 * 1024,
+    };
+
+    data.variant = ".memhp";
+    test_acpi_one(" -machine nvdimm=on"
+                  " -cpu cortex-a57"
+                  " -m 256M,slots=3,maxmem=1G"
+                  " -object memory-backend-ram,id=ram0,size=128M"
+                  " -object memory-backend-ram,id=ram1,size=128M"
+                  " -numa node,memdev=ram0 -numa node,memdev=ram1"
+                  " -numa dist,src=0,dst=1,val=21"
+                  " -object memory-backend-ram,id=ram2,size=128M"
+                  " -object memory-backend-ram,id=nvm0,size=128M"
+                  " -device pc-dimm,id=dimm0,memdev=ram2,node=0"
+                  " -device nvdimm,id=dimm1,memdev=nvm0,node=1",
+                  &data);
+
+    free_test_data(&data);
+
+}
+
+static void test_acpi_virt_tcg_numamem(void)
+{
+    test_data data = {
+        .machine = "virt",
+        .tcg_only = true,
+        .uefi_fl1 = "pc-bios/edk2-aarch64-code.fd",
+        .uefi_fl2 = "pc-bios/edk2-arm-vars.fd",
+        .cd = "tests/data/uefi-boot-images/bios-tables-test.aarch64.iso.qcow2",
+        .ram_start = 0x40000000ULL,
+        .scan_len = 128ULL * 1024 * 1024,
+    };
+
+    data.variant = ".numamem";
+    test_acpi_one(" -cpu cortex-a57"
+                  " -object memory-backend-ram,id=ram0,size=128M"
+                  " -numa node,memdev=ram0",
+                  &data);
+
+    free_test_data(&data);
+
+}
+
+static void test_acpi_tcg_acpi_hmat(const char *machine)
+{
+    test_data data;
+
+    memset(&data, 0, sizeof(data));
+    data.machine = machine;
+    data.variant = ".acpihmat";
+    test_acpi_one(" -machine hmat=on"
+                  " -smp 2,sockets=2"
+                  " -m 128M,slots=2,maxmem=1G"
+                  " -object memory-backend-ram,size=64M,id=m0"
+                  " -object memory-backend-ram,size=64M,id=m1"
+                  " -numa node,nodeid=0,memdev=m0"
+                  " -numa node,nodeid=1,memdev=m1,initiator=0"
+                  " -numa cpu,node-id=0,socket-id=0"
+                  " -numa cpu,node-id=0,socket-id=1"
+                  " -numa hmat-lb,initiator=0,target=0,hierarchy=memory,"
+                  "data-type=access-latency,latency=1"
+                  " -numa hmat-lb,initiator=0,target=0,hierarchy=memory,"
+                  "data-type=access-bandwidth,bandwidth=65534M"
+                  " -numa hmat-lb,initiator=0,target=1,hierarchy=memory,"
+                  "data-type=access-latency,latency=65534"
+                  " -numa hmat-lb,initiator=0,target=1,hierarchy=memory,"
+                  "data-type=access-bandwidth,bandwidth=32767M"
+                  " -numa hmat-cache,node-id=0,size=10K,level=1,"
+                  "associativity=direct,policy=write-back,line=8"
+                  " -numa hmat-cache,node-id=1,size=10K,level=1,"
+                  "associativity=direct,policy=write-back,line=8",
+                  &data);
+    free_test_data(&data);
+}
+
+static void test_acpi_q35_tcg_acpi_hmat(void)
+{
+    test_acpi_tcg_acpi_hmat(MACHINE_Q35);
+}
+
+static void test_acpi_piix4_tcg_acpi_hmat(void)
+{
+    test_acpi_tcg_acpi_hmat(MACHINE_PC);
+}
+
+static void test_acpi_virt_tcg(void)
+{
+    test_data data = {
+        .machine = "virt",
+        .tcg_only = true,
+        .uefi_fl1 = "pc-bios/edk2-aarch64-code.fd",
+        .uefi_fl2 = "pc-bios/edk2-arm-vars.fd",
+        .cd = "tests/data/uefi-boot-images/bios-tables-test.aarch64.iso.qcow2",
+        .ram_start = 0x40000000ULL,
+        .scan_len = 128ULL * 1024 * 1024,
+    };
+
+    test_acpi_one("-cpu cortex-a57", &data);
+    free_test_data(&data);
+
+    data.smbios_cpu_max_speed = 2900;
+    data.smbios_cpu_curr_speed = 2700;
+    test_acpi_one("-cpu cortex-a57 "
+                  "-smbios type=4,max-speed=2900,current-speed=2700", &data);
+    free_test_data(&data);
+}
+
+int main(int argc, char *argv[])
+{
+    const char *arch = qtest_get_arch();
+    int ret;
+
+    g_test_init(&argc, &argv, NULL);
+
+    if (strcmp(arch, "i386") == 0 || strcmp(arch, "x86_64") == 0) {
+        ret = boot_sector_init(disk);
+        if (ret) {
+            return ret;
+        }
+
+        qtest_add_func("acpi/q35/tpm-tis", test_acpi_q35_tcg_tpm_tis);
+        qtest_add_func("acpi/piix4", test_acpi_piix4_tcg);
+        qtest_add_func("acpi/piix4/bridge", test_acpi_piix4_tcg_bridge);
+<<<<<<< HEAD
+        qtest_add_func("acpi/piix4/brhotplug", test_acpi_piix4_bridge_hotplug);
+=======
+        qtest_add_func("acpi/piix4/hotplug", test_acpi_piix4_root_hotplug);
+>>>>>>> tests/acpi: add a new unit test to test hotplug off/on feature on the root pci bus
+        qtest_add_func("acpi/q35", test_acpi_q35_tcg);
+        qtest_add_func("acpi/q35/bridge", test_acpi_q35_tcg_bridge);
+        qtest_add_func("acpi/q35/mmio64", test_acpi_q35_tcg_mmio64);
+        qtest_add_func("acpi/piix4/ipmi", test_acpi_piix4_tcg_ipmi);
+        qtest_add_func("acpi/q35/ipmi", test_acpi_q35_tcg_ipmi);
+        qtest_add_func("acpi/piix4/cpuhp", test_acpi_piix4_tcg_cphp);
+        qtest_add_func("acpi/q35/cpuhp", test_acpi_q35_tcg_cphp);
+        qtest_add_func("acpi/piix4/memhp", test_acpi_piix4_tcg_memhp);
+        qtest_add_func("acpi/q35/memhp", test_acpi_q35_tcg_memhp);
+        qtest_add_func("acpi/piix4/numamem", test_acpi_piix4_tcg_numamem);
+        qtest_add_func("acpi/q35/numamem", test_acpi_q35_tcg_numamem);
+        qtest_add_func("acpi/piix4/dimmpxm", test_acpi_piix4_tcg_dimm_pxm);
+        qtest_add_func("acpi/q35/dimmpxm", test_acpi_q35_tcg_dimm_pxm);
+        qtest_add_func("acpi/piix4/acpihmat", test_acpi_piix4_tcg_acpi_hmat);
+        qtest_add_func("acpi/q35/acpihmat", test_acpi_q35_tcg_acpi_hmat);
+    } else if (strcmp(arch, "aarch64") == 0) {
+        qtest_add_func("acpi/virt", test_acpi_virt_tcg);
+        qtest_add_func("acpi/virt/numamem", test_acpi_virt_tcg_numamem);
+        qtest_add_func("acpi/virt/memhp", test_acpi_virt_tcg_memhp);
+    }
+    ret = g_test_run();
+    boot_sector_cleanup(disk);
+    return ret;
+}
diff --git a/tests/qtest/bios-tables-test.c.rej b/tests/qtest/bios-tables-test.c.rej
new file mode 100644
index 0000000000..aacd6ae220
--- /dev/null
+++ b/tests/qtest/bios-tables-test.c.rej
@@ -0,0 +1,22 @@
+--- tests/qtest/bios-tables-test.c
++++ tests/qtest/bios-tables-test.c
+@@ -927,12 +927,17 @@ static void test_acpi_virt_tcg_memhp(void)
+     };
+ 20
+     data.variant =3D ".memhp";
+-    test_acpi_one(" -cpu cortex-a57"
++    test_acpi_one(" -machine nvdimm=3Don"
++                  " -cpu cortex-a57"
+                   " -m 256M,slots=3D3,maxmem=3D1G"
+                   " -object memory-backend-ram,id=3Dram0,size=3D128M"
+                   " -object memory-backend-ram,id=3Dram1,size=3D128M"
+                   " -numa node,memdev=3Dram0 -numa node,memdev=3Dram1"
+-                  " -numa dist,src=3D0,dst=3D1,val=3D21",
++                  " -numa dist,src=3D0,dst=3D1,val=3D21"
++                  " -object memory-backend-ram,id=3Dram2,size=3D128M"
++                  " -object memory-backend-ram,id=3Dnvm0,size=3D128M"
++                  " -device pc-dimm,id=3Ddimm0,memdev=3Dram2,node=3D0"
++                  " -device nvdimm,id=3Ddimm1,memdev=3Dnvm0,node=3D1",
+                   &data);
+ 20
+     free_test_data(&data);
diff --git a/tests/vhost-user-bridge b/tests/vhost-user-bridge
new file mode 100755
index 0000000000000000000000000000000000000000..36d1ece0dc8a198846c3a8bf277c1f7d093736f5
GIT binary patch
literal 83120
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
TKY(+Fsc-Nk$gv~6OY8f;GePBQ

literal 0
HcmV?d00001

diff --git a/tests/vhost-user-bridge.c.orig b/tests/vhost-user-bridge.c.orig
new file mode 100644
index 0000000000..f907ce741f
--- /dev/null
+++ b/tests/vhost-user-bridge.c.orig
@@ -0,0 +1,1432 @@
+/*
+ * Vhost User Bridge
+ *
+ * Copyright (c) 2015 Red Hat, Inc.
+ *
+ * Authors:
+ *  Victor Kaplansky <victork@redhat.com>
+ *
+ * This work is licensed under the terms of the GNU GPL, version 2 or
+ * later.  See the COPYING file in the top-level directory.
+ */
+
+/*
+ * TODO:
+ *     - main should get parameters from the command line.
+ *     - implement all request handlers. Still not implemented:
+ *          vubr_get_queue_num_exec()
+ *          vubr_send_rarp_exec()
+ *     - test for broken requests and virtqueue.
+ *     - implement features defined by Virtio 1.0 spec.
+ *     - support mergeable buffers and indirect descriptors.
+ *     - implement clean shutdown.
+ *     - implement non-blocking writes to UDP backend.
+ *     - implement polling strategy.
+ *     - implement clean starting/stopping of vq processing
+ *     - implement clean starting/stopping of used and buffers
+ *       dirty page logging.
+ */
+
+#define _FILE_OFFSET_BITS 64
+
+#include "qemu/osdep.h"
+#include <sys/socket.h>
+#include <sys/un.h>
+#include <sys/unistd.h>
+#include <sys/mman.h>
+#include <sys/eventfd.h>
+#include <arpa/inet.h>
+#include <netdb.h>
+#include <qemu/osdep.h>
+
+#include <linux/vhost.h>
+
+#include "qemu/atomic.h"
+#include "standard-headers/linux/virtio_net.h"
+#include "standard-headers/linux/virtio_ring.h"
+
+#define VHOST_USER_BRIDGE_DEBUG 1
+
+#define DPRINT(...) \
+    do { \
+        if (VHOST_USER_BRIDGE_DEBUG) { \
+            printf(__VA_ARGS__); \
+        } \
+    } while (0)
+
+typedef void (*CallbackFunc)(int sock, void *ctx);
+
+typedef struct Event {
+    void *ctx;
+    CallbackFunc callback;
+} Event;
+
+typedef struct Dispatcher {
+    int max_sock;
+    fd_set fdset;
+    Event events[FD_SETSIZE];
+} Dispatcher;
+
+static void
+vubr_die(const char *s)
+{
+    perror(s);
+    exit(1);
+}
+
+static int
+dispatcher_init(Dispatcher *dispr)
+{
+    FD_ZERO(&dispr->fdset);
+    dispr->max_sock = -1;
+    return 0;
+}
+
+static int
+dispatcher_add(Dispatcher *dispr, int sock, void *ctx, CallbackFunc cb)
+{
+    if (sock >= FD_SETSIZE) {
+        fprintf(stderr,
+                "Error: Failed to add new event. sock %d should be less than %d\n",
+                sock, FD_SETSIZE);
+        return -1;
+    }
+
+    dispr->events[sock].ctx = ctx;
+    dispr->events[sock].callback = cb;
+
+    FD_SET(sock, &dispr->fdset);
+    if (sock > dispr->max_sock) {
+        dispr->max_sock = sock;
+    }
+    DPRINT("Added sock %d for watching. max_sock: %d\n",
+           sock, dispr->max_sock);
+    return 0;
+}
+
+/* dispatcher_remove() is not currently in use but may be useful
+ * in the future. */
+static int
+dispatcher_remove(Dispatcher *dispr, int sock)
+{
+    if (sock >= FD_SETSIZE) {
+        fprintf(stderr,
+                "Error: Failed to remove event. sock %d should be less than %d\n",
+                sock, FD_SETSIZE);
+        return -1;
+    }
+
+    FD_CLR(sock, &dispr->fdset);
+    DPRINT("Sock %d removed from dispatcher watch.\n", sock);
+    return 0;
+}
+
+/* timeout in us */
+static int
+dispatcher_wait(Dispatcher *dispr, uint32_t timeout)
+{
+    struct timeval tv;
+    tv.tv_sec = timeout / 1000000;
+    tv.tv_usec = timeout % 1000000;
+
+    fd_set fdset = dispr->fdset;
+
+    /* wait until some of sockets become readable. */
+    int rc = select(dispr->max_sock + 1, &fdset, 0, 0, &tv);
+
+    if (rc == -1) {
+        vubr_die("select");
+    }
+
+    /* Timeout */
+    if (rc == 0) {
+        return 0;
+    }
+
+    /* Now call callback for every ready socket. */
+
+    int sock;
+    for (sock = 0; sock < dispr->max_sock + 1; sock++) {
+        /* The callback on a socket can remove other sockets from the
+         * dispatcher, thus we have to check that the socket is
+         * still not removed from dispatcher's list
+         */
+        if (FD_ISSET(sock, &fdset) && FD_ISSET(sock, &dispr->fdset)) {
+            Event *e = &dispr->events[sock];
+            e->callback(sock, e->ctx);
+        }
+    }
+
+    return 0;
+}
+
+typedef struct VubrVirtq {
+    int call_fd;
+    int kick_fd;
+    uint32_t size;
+    uint16_t last_avail_index;
+    uint16_t last_used_index;
+    struct vring_desc *desc;
+    struct vring_avail *avail;
+    struct vring_used *used;
+    uint64_t log_guest_addr;
+    int enable;
+} VubrVirtq;
+
+/* Based on qemu/hw/virtio/vhost-user.c */
+
+#define VHOST_MEMORY_MAX_NREGIONS    8
+#define VHOST_USER_F_PROTOCOL_FEATURES 30
+/* v1.0 compliant. */
+#define VIRTIO_F_VERSION_1		32
+
+#define VHOST_LOG_PAGE 4096
+
+enum VhostUserProtocolFeature {
+    VHOST_USER_PROTOCOL_F_MQ = 0,
+    VHOST_USER_PROTOCOL_F_LOG_SHMFD = 1,
+    VHOST_USER_PROTOCOL_F_RARP = 2,
+
+    VHOST_USER_PROTOCOL_F_MAX
+};
+
+#define VHOST_USER_PROTOCOL_FEATURE_MASK ((1 << VHOST_USER_PROTOCOL_F_MAX) - 1)
+
+typedef enum VhostUserRequest {
+    VHOST_USER_NONE = 0,
+    VHOST_USER_GET_FEATURES = 1,
+    VHOST_USER_SET_FEATURES = 2,
+    VHOST_USER_SET_OWNER = 3,
+    VHOST_USER_RESET_OWNER = 4,
+    VHOST_USER_SET_MEM_TABLE = 5,
+    VHOST_USER_SET_LOG_BASE = 6,
+    VHOST_USER_SET_LOG_FD = 7,
+    VHOST_USER_SET_VRING_NUM = 8,
+    VHOST_USER_SET_VRING_ADDR = 9,
+    VHOST_USER_SET_VRING_BASE = 10,
+    VHOST_USER_GET_VRING_BASE = 11,
+    VHOST_USER_SET_VRING_KICK = 12,
+    VHOST_USER_SET_VRING_CALL = 13,
+    VHOST_USER_SET_VRING_ERR = 14,
+    VHOST_USER_GET_PROTOCOL_FEATURES = 15,
+    VHOST_USER_SET_PROTOCOL_FEATURES = 16,
+    VHOST_USER_GET_QUEUE_NUM = 17,
+    VHOST_USER_SET_VRING_ENABLE = 18,
+    VHOST_USER_SEND_RARP = 19,
+    VHOST_USER_MAX
+} VhostUserRequest;
+
+typedef struct VhostUserMemoryRegion {
+    uint64_t guest_phys_addr;
+    uint64_t memory_size;
+    uint64_t userspace_addr;
+    uint64_t mmap_offset;
+} VhostUserMemoryRegion;
+
+typedef struct VhostUserMemory {
+    uint32_t nregions;
+    uint32_t padding;
+    VhostUserMemoryRegion regions[VHOST_MEMORY_MAX_NREGIONS];
+} VhostUserMemory;
+
+typedef struct VhostUserLog {
+    uint64_t mmap_size;
+    uint64_t mmap_offset;
+} VhostUserLog;
+
+typedef struct VhostUserMsg {
+    VhostUserRequest request;
+
+#define VHOST_USER_VERSION_MASK     (0x3)
+#define VHOST_USER_REPLY_MASK       (0x1<<2)
+    uint32_t flags;
+    uint32_t size; /* the following payload size */
+    union {
+#define VHOST_USER_VRING_IDX_MASK   (0xff)
+#define VHOST_USER_VRING_NOFD_MASK  (0x1<<8)
+        uint64_t u64;
+        struct vhost_vring_state state;
+        struct vhost_vring_addr addr;
+        VhostUserMemory memory;
+        VhostUserLog log;
+    } payload;
+    int fds[VHOST_MEMORY_MAX_NREGIONS];
+    int fd_num;
+} QEMU_PACKED VhostUserMsg;
+
+#define VHOST_USER_HDR_SIZE offsetof(VhostUserMsg, payload.u64)
+
+/* The version of the protocol we support */
+#define VHOST_USER_VERSION    (0x1)
+
+#define MAX_NR_VIRTQUEUE (8)
+
+typedef struct VubrDevRegion {
+    /* Guest Physical address. */
+    uint64_t gpa;
+    /* Memory region size. */
+    uint64_t size;
+    /* QEMU virtual address (userspace). */
+    uint64_t qva;
+    /* Starting offset in our mmaped space. */
+    uint64_t mmap_offset;
+    /* Start address of mmaped space. */
+    uint64_t mmap_addr;
+} VubrDevRegion;
+
+typedef struct VubrDev {
+    int sock;
+    Dispatcher dispatcher;
+    uint32_t nregions;
+    VubrDevRegion regions[VHOST_MEMORY_MAX_NREGIONS];
+    VubrVirtq vq[MAX_NR_VIRTQUEUE];
+    int log_call_fd;
+    uint64_t log_size;
+    uint8_t *log_table;
+    int backend_udp_sock;
+    struct sockaddr_in backend_udp_dest;
+    int ready;
+    uint64_t features;
+    int hdrlen;
+} VubrDev;
+
+static const char *vubr_request_str[] = {
+    [VHOST_USER_NONE]                   =  "VHOST_USER_NONE",
+    [VHOST_USER_GET_FEATURES]           =  "VHOST_USER_GET_FEATURES",
+    [VHOST_USER_SET_FEATURES]           =  "VHOST_USER_SET_FEATURES",
+    [VHOST_USER_SET_OWNER]              =  "VHOST_USER_SET_OWNER",
+    [VHOST_USER_RESET_OWNER]           =  "VHOST_USER_RESET_OWNER",
+    [VHOST_USER_SET_MEM_TABLE]          =  "VHOST_USER_SET_MEM_TABLE",
+    [VHOST_USER_SET_LOG_BASE]           =  "VHOST_USER_SET_LOG_BASE",
+    [VHOST_USER_SET_LOG_FD]             =  "VHOST_USER_SET_LOG_FD",
+    [VHOST_USER_SET_VRING_NUM]          =  "VHOST_USER_SET_VRING_NUM",
+    [VHOST_USER_SET_VRING_ADDR]         =  "VHOST_USER_SET_VRING_ADDR",
+    [VHOST_USER_SET_VRING_BASE]         =  "VHOST_USER_SET_VRING_BASE",
+    [VHOST_USER_GET_VRING_BASE]         =  "VHOST_USER_GET_VRING_BASE",
+    [VHOST_USER_SET_VRING_KICK]         =  "VHOST_USER_SET_VRING_KICK",
+    [VHOST_USER_SET_VRING_CALL]         =  "VHOST_USER_SET_VRING_CALL",
+    [VHOST_USER_SET_VRING_ERR]          =  "VHOST_USER_SET_VRING_ERR",
+    [VHOST_USER_GET_PROTOCOL_FEATURES]  =  "VHOST_USER_GET_PROTOCOL_FEATURES",
+    [VHOST_USER_SET_PROTOCOL_FEATURES]  =  "VHOST_USER_SET_PROTOCOL_FEATURES",
+    [VHOST_USER_GET_QUEUE_NUM]          =  "VHOST_USER_GET_QUEUE_NUM",
+    [VHOST_USER_SET_VRING_ENABLE]       =  "VHOST_USER_SET_VRING_ENABLE",
+    [VHOST_USER_SEND_RARP]              =  "VHOST_USER_SEND_RARP",
+    [VHOST_USER_MAX]                    =  "VHOST_USER_MAX",
+};
+
+static void
+print_buffer(uint8_t *buf, size_t len)
+{
+    int i;
+    printf("Raw buffer:\n");
+    for (i = 0; i < len; i++) {
+        if (i % 16 == 0) {
+            printf("\n");
+        }
+        if (i % 4 == 0) {
+            printf("   ");
+        }
+        printf("%02x ", buf[i]);
+    }
+    printf("\n............................................................\n");
+}
+
+/* Translate guest physical address to our virtual address.  */
+static uint64_t
+gpa_to_va(VubrDev *dev, uint64_t guest_addr)
+{
+    int i;
+
+    /* Find matching memory region.  */
+    for (i = 0; i < dev->nregions; i++) {
+        VubrDevRegion *r = &dev->regions[i];
+
+        if ((guest_addr >= r->gpa) && (guest_addr < (r->gpa + r->size))) {
+            return guest_addr - r->gpa + r->mmap_addr + r->mmap_offset;
+        }
+    }
+
+    assert(!"address not found in regions");
+    return 0;
+}
+
+/* Translate qemu virtual address to our virtual address.  */
+static uint64_t
+qva_to_va(VubrDev *dev, uint64_t qemu_addr)
+{
+    int i;
+
+    /* Find matching memory region.  */
+    for (i = 0; i < dev->nregions; i++) {
+        VubrDevRegion *r = &dev->regions[i];
+
+        if ((qemu_addr >= r->qva) && (qemu_addr < (r->qva + r->size))) {
+            return qemu_addr - r->qva + r->mmap_addr + r->mmap_offset;
+        }
+    }
+
+    assert(!"address not found in regions");
+    return 0;
+}
+
+static void
+vubr_message_read(int conn_fd, VhostUserMsg *vmsg)
+{
+    char control[CMSG_SPACE(VHOST_MEMORY_MAX_NREGIONS * sizeof(int))] = { };
+    struct iovec iov = {
+        .iov_base = (char *)vmsg,
+        .iov_len = VHOST_USER_HDR_SIZE,
+    };
+    struct msghdr msg = {
+        .msg_iov = &iov,
+        .msg_iovlen = 1,
+        .msg_control = control,
+        .msg_controllen = sizeof(control),
+    };
+    size_t fd_size;
+    struct cmsghdr *cmsg;
+    int rc;
+
+    rc = recvmsg(conn_fd, &msg, 0);
+
+    if (rc == 0) {
+        vubr_die("recvmsg");
+        fprintf(stderr, "Peer disconnected.\n");
+        exit(1);
+    }
+    if (rc < 0) {
+        vubr_die("recvmsg");
+    }
+
+    vmsg->fd_num = 0;
+    for (cmsg = CMSG_FIRSTHDR(&msg);
+         cmsg != NULL;
+         cmsg = CMSG_NXTHDR(&msg, cmsg))
+    {
+        if (cmsg->cmsg_level == SOL_SOCKET && cmsg->cmsg_type == SCM_RIGHTS) {
+            fd_size = cmsg->cmsg_len - CMSG_LEN(0);
+            vmsg->fd_num = fd_size / sizeof(int);
+            memcpy(vmsg->fds, CMSG_DATA(cmsg), fd_size);
+            break;
+        }
+    }
+
+    if (vmsg->size > sizeof(vmsg->payload)) {
+        fprintf(stderr,
+                "Error: too big message request: %d, size: vmsg->size: %u, "
+                "while sizeof(vmsg->payload) = %zu\n",
+                vmsg->request, vmsg->size, sizeof(vmsg->payload));
+        exit(1);
+    }
+
+    if (vmsg->size) {
+        rc = read(conn_fd, &vmsg->payload, vmsg->size);
+        if (rc == 0) {
+            vubr_die("recvmsg");
+            fprintf(stderr, "Peer disconnected.\n");
+            exit(1);
+        }
+        if (rc < 0) {
+            vubr_die("recvmsg");
+        }
+
+        assert(rc == vmsg->size);
+    }
+}
+
+static void
+vubr_message_write(int conn_fd, VhostUserMsg *vmsg)
+{
+    int rc;
+
+    do {
+        rc = write(conn_fd, vmsg, VHOST_USER_HDR_SIZE + vmsg->size);
+    } while (rc < 0 && errno == EINTR);
+
+    if (rc < 0) {
+        vubr_die("write");
+    }
+}
+
+static void
+vubr_backend_udp_sendbuf(VubrDev *dev, uint8_t *buf, size_t len)
+{
+    int slen = sizeof(struct sockaddr_in);
+
+    if (sendto(dev->backend_udp_sock, buf, len, 0,
+               (struct sockaddr *) &dev->backend_udp_dest, slen) == -1) {
+        vubr_die("sendto()");
+    }
+}
+
+static int
+vubr_backend_udp_recvbuf(VubrDev *dev, uint8_t *buf, size_t buflen)
+{
+    int slen = sizeof(struct sockaddr_in);
+    int rc;
+
+    rc = recvfrom(dev->backend_udp_sock, buf, buflen, 0,
+                  (struct sockaddr *) &dev->backend_udp_dest,
+                  (socklen_t *)&slen);
+    if (rc == -1) {
+        vubr_die("recvfrom()");
+    }
+
+    return rc;
+}
+
+static void
+vubr_consume_raw_packet(VubrDev *dev, uint8_t *buf, uint32_t len)
+{
+    int hdrlen = dev->hdrlen;
+    DPRINT("    hdrlen = %d\n", dev->hdrlen);
+
+    if (VHOST_USER_BRIDGE_DEBUG) {
+        print_buffer(buf, len);
+    }
+    vubr_backend_udp_sendbuf(dev, buf + hdrlen, len - hdrlen);
+}
+
+/* Kick the log_call_fd if required. */
+static void
+vubr_log_kick(VubrDev *dev)
+{
+    if (dev->log_call_fd != -1) {
+        DPRINT("Kicking the QEMU's log...\n");
+        eventfd_write(dev->log_call_fd, 1);
+    }
+}
+
+/* Kick the guest if necessary. */
+static void
+vubr_virtqueue_kick(VubrVirtq *vq)
+{
+    if (!(vq->avail->flags & VRING_AVAIL_F_NO_INTERRUPT)) {
+        DPRINT("Kicking the guest...\n");
+        eventfd_write(vq->call_fd, 1);
+    }
+}
+
+static void
+vubr_log_page(uint8_t *log_table, uint64_t page)
+{
+    DPRINT("Logged dirty guest page: %"PRId64"\n", page);
+    atomic_or(&log_table[page / 8], 1 << (page % 8));
+}
+
+static void
+vubr_log_write(VubrDev *dev, uint64_t address, uint64_t length)
+{
+    uint64_t page;
+
+    if (!(dev->features & (1ULL << VHOST_F_LOG_ALL)) ||
+        !dev->log_table || !length) {
+        return;
+    }
+
+    assert(dev->log_size > ((address + length - 1) / VHOST_LOG_PAGE / 8));
+
+    page = address / VHOST_LOG_PAGE;
+    while (page * VHOST_LOG_PAGE < address + length) {
+        vubr_log_page(dev->log_table, page);
+        page += VHOST_LOG_PAGE;
+    }
+    vubr_log_kick(dev);
+}
+
+static void
+vubr_post_buffer(VubrDev *dev, VubrVirtq *vq, uint8_t *buf, int32_t len)
+{
+    struct vring_desc *desc = vq->desc;
+    struct vring_avail *avail = vq->avail;
+    struct vring_used *used = vq->used;
+    uint64_t log_guest_addr = vq->log_guest_addr;
+    int32_t remaining_len = len;
+
+    unsigned int size = vq->size;
+
+    uint16_t avail_index = atomic_mb_read(&avail->idx);
+
+    /* We check the available descriptors before posting the
+     * buffer, so here we assume that enough available
+     * descriptors. */
+    assert(vq->last_avail_index != avail_index);
+    uint16_t a_index = vq->last_avail_index % size;
+    uint16_t u_index = vq->last_used_index % size;
+    uint16_t d_index = avail->ring[a_index];
+
+    int i = d_index;
+    uint32_t written_len = 0;
+
+    do {
+        DPRINT("Post packet to guest on vq:\n");
+        DPRINT("    size             = %d\n", vq->size);
+        DPRINT("    last_avail_index = %d\n", vq->last_avail_index);
+        DPRINT("    last_used_index  = %d\n", vq->last_used_index);
+        DPRINT("    a_index = %d\n", a_index);
+        DPRINT("    u_index = %d\n", u_index);
+        DPRINT("    d_index = %d\n", d_index);
+        DPRINT("    desc[%d].addr    = 0x%016"PRIx64"\n", i, desc[i].addr);
+        DPRINT("    desc[%d].len     = %d\n", i, desc[i].len);
+        DPRINT("    desc[%d].flags   = %d\n", i, desc[i].flags);
+        DPRINT("    avail->idx = %d\n", avail_index);
+        DPRINT("    used->idx  = %d\n", used->idx);
+
+        if (!(desc[i].flags & VRING_DESC_F_WRITE)) {
+            /* FIXME: we should find writable descriptor. */
+            fprintf(stderr, "Error: descriptor is not writable. Exiting.\n");
+            exit(1);
+        }
+
+        void *chunk_start = (void *)(uintptr_t)gpa_to_va(dev, desc[i].addr);
+        uint32_t chunk_len = desc[i].len;
+        uint32_t chunk_write_len = MIN(remaining_len, chunk_len);
+
+        memcpy(chunk_start, buf + written_len, chunk_write_len);
+        vubr_log_write(dev, desc[i].addr, chunk_write_len);
+        remaining_len -= chunk_write_len;
+        written_len += chunk_write_len;
+
+        if ((remaining_len == 0) || !(desc[i].flags & VRING_DESC_F_NEXT)) {
+            break;
+        }
+
+        i = desc[i].next;
+    } while (1);
+
+    if (remaining_len > 0) {
+            fprintf(stderr,
+                    "Too long packet for RX, remaining_len = %d, Dropping...\n",
+                    remaining_len);
+            return;
+    }
+
+    /* Add descriptor to the used ring. */
+    used->ring[u_index].id = d_index;
+    used->ring[u_index].len = len;
+    vubr_log_write(dev,
+                   log_guest_addr + offsetof(struct vring_used, ring[u_index]),
+                   sizeof(used->ring[u_index]));
+
+    vq->last_avail_index++;
+    vq->last_used_index++;
+
+    atomic_mb_set(&used->idx, vq->last_used_index);
+    vubr_log_write(dev,
+                   log_guest_addr + offsetof(struct vring_used, idx),
+                   sizeof(used->idx));
+
+    /* Kick the guest if necessary. */
+    vubr_virtqueue_kick(vq);
+}
+
+static int
+vubr_process_desc(VubrDev *dev, VubrVirtq *vq)
+{
+    struct vring_desc *desc = vq->desc;
+    struct vring_avail *avail = vq->avail;
+    struct vring_used *used = vq->used;
+    uint64_t log_guest_addr = vq->log_guest_addr;
+
+    unsigned int size = vq->size;
+
+    uint16_t a_index = vq->last_avail_index % size;
+    uint16_t u_index = vq->last_used_index % size;
+    uint16_t d_index = avail->ring[a_index];
+
+    uint32_t i, len = 0;
+    size_t buf_size = 4096;
+    uint8_t buf[4096];
+
+    DPRINT("Chunks: ");
+    i = d_index;
+    do {
+        void *chunk_start = (void *)(uintptr_t)gpa_to_va(dev, desc[i].addr);
+        uint32_t chunk_len = desc[i].len;
+
+        assert(!(desc[i].flags & VRING_DESC_F_WRITE));
+
+        if (len + chunk_len < buf_size) {
+            memcpy(buf + len, chunk_start, chunk_len);
+            DPRINT("%d ", chunk_len);
+        } else {
+            fprintf(stderr, "Error: too long packet. Dropping...\n");
+            break;
+        }
+
+        len += chunk_len;
+
+        if (!(desc[i].flags & VRING_DESC_F_NEXT)) {
+            break;
+        }
+
+        i = desc[i].next;
+    } while (1);
+    DPRINT("\n");
+
+    if (!len) {
+        return -1;
+    }
+
+    /* Add descriptor to the used ring. */
+    used->ring[u_index].id = d_index;
+    used->ring[u_index].len = len;
+    vubr_log_write(dev,
+                   log_guest_addr + offsetof(struct vring_used, ring[u_index]),
+                   sizeof(used->ring[u_index]));
+
+    vubr_consume_raw_packet(dev, buf, len);
+
+    return 0;
+}
+
+static void
+vubr_process_avail(VubrDev *dev, VubrVirtq *vq)
+{
+    struct vring_avail *avail = vq->avail;
+    struct vring_used *used = vq->used;
+    uint64_t log_guest_addr = vq->log_guest_addr;
+
+    while (vq->last_avail_index != atomic_mb_read(&avail->idx)) {
+        vubr_process_desc(dev, vq);
+        vq->last_avail_index++;
+        vq->last_used_index++;
+    }
+
+    atomic_mb_set(&used->idx, vq->last_used_index);
+    vubr_log_write(dev,
+                   log_guest_addr + offsetof(struct vring_used, idx),
+                   sizeof(used->idx));
+}
+
+static void
+vubr_backend_recv_cb(int sock, void *ctx)
+{
+    VubrDev *dev = (VubrDev *) ctx;
+    VubrVirtq *rx_vq = &dev->vq[0];
+    uint8_t buf[4096];
+    struct virtio_net_hdr_v1 *hdr = (struct virtio_net_hdr_v1 *)buf;
+    int hdrlen = dev->hdrlen;
+    int buflen = sizeof(buf);
+    int len;
+
+    if (!dev->ready) {
+        return;
+    }
+
+    DPRINT("\n\n   ***   IN UDP RECEIVE CALLBACK    ***\n\n");
+    DPRINT("    hdrlen = %d\n", hdrlen);
+
+    uint16_t avail_index = atomic_mb_read(&rx_vq->avail->idx);
+
+    /* If there is no available descriptors, just do nothing.
+     * The buffer will be handled by next arrived UDP packet,
+     * or next kick on receive virtq. */
+    if (rx_vq->last_avail_index == avail_index) {
+        DPRINT("Got UDP packet, but no available descriptors on RX virtq.\n");
+        return;
+    }
+
+    memset(buf, 0, hdrlen);
+    /* TODO: support mergeable buffers. */
+    if (hdrlen == 12)
+        hdr->num_buffers = 1;
+    len = vubr_backend_udp_recvbuf(dev, buf + hdrlen, buflen - hdrlen);
+
+    vubr_post_buffer(dev, rx_vq, buf, len + hdrlen);
+}
+
+static void
+vubr_kick_cb(int sock, void *ctx)
+{
+    VubrDev *dev = (VubrDev *) ctx;
+    eventfd_t kick_data;
+    ssize_t rc;
+
+    rc = eventfd_read(sock, &kick_data);
+    if (rc == -1) {
+        vubr_die("eventfd_read()");
+    } else {
+        DPRINT("Got kick_data: %016"PRIx64"\n", kick_data);
+        vubr_process_avail(dev, &dev->vq[1]);
+    }
+}
+
+static int
+vubr_none_exec(VubrDev *dev, VhostUserMsg *vmsg)
+{
+    DPRINT("Function %s() not implemented yet.\n", __func__);
+    return 0;
+}
+
+static int
+vubr_get_features_exec(VubrDev *dev, VhostUserMsg *vmsg)
+{
+    vmsg->payload.u64 =
+            ((1ULL << VIRTIO_NET_F_MRG_RXBUF) |
+             (1ULL << VHOST_F_LOG_ALL) |
+             (1ULL << VIRTIO_NET_F_GUEST_ANNOUNCE) |
+             (1ULL << VHOST_USER_F_PROTOCOL_FEATURES));
+
+    vmsg->size = sizeof(vmsg->payload.u64);
+
+    DPRINT("Sending back to guest u64: 0x%016"PRIx64"\n", vmsg->payload.u64);
+
+    /* Reply */
+    return 1;
+}
+
+static int
+vubr_set_features_exec(VubrDev *dev, VhostUserMsg *vmsg)
+{
+    DPRINT("u64: 0x%016"PRIx64"\n", vmsg->payload.u64);
+
+    dev->features = vmsg->payload.u64;
+    if ((dev->features & (1ULL << VIRTIO_F_VERSION_1)) ||
+        (dev->features & (1ULL << VIRTIO_NET_F_MRG_RXBUF))) {
+        dev->hdrlen = 12;
+    } else {
+        dev->hdrlen = 10;
+    }
+
+    return 0;
+}
+
+static int
+vubr_set_owner_exec(VubrDev *dev, VhostUserMsg *vmsg)
+{
+    return 0;
+}
+
+static void
+vubr_close_log(VubrDev *dev)
+{
+    if (dev->log_table) {
+        if (munmap(dev->log_table, dev->log_size) != 0) {
+            vubr_die("munmap()");
+        }
+
+        dev->log_table = 0;
+    }
+    if (dev->log_call_fd != -1) {
+        close(dev->log_call_fd);
+        dev->log_call_fd = -1;
+    }
+}
+
+static int
+vubr_reset_device_exec(VubrDev *dev, VhostUserMsg *vmsg)
+{
+    vubr_close_log(dev);
+    dev->ready = 0;
+    dev->features = 0;
+    return 0;
+}
+
+static int
+vubr_set_mem_table_exec(VubrDev *dev, VhostUserMsg *vmsg)
+{
+    int i;
+    VhostUserMemory *memory = &vmsg->payload.memory;
+    dev->nregions = memory->nregions;
+
+    DPRINT("Nregions: %d\n", memory->nregions);
+    for (i = 0; i < dev->nregions; i++) {
+        void *mmap_addr;
+        VhostUserMemoryRegion *msg_region = &memory->regions[i];
+        VubrDevRegion *dev_region = &dev->regions[i];
+
+        DPRINT("Region %d\n", i);
+        DPRINT("    guest_phys_addr: 0x%016"PRIx64"\n",
+               msg_region->guest_phys_addr);
+        DPRINT("    memory_size:     0x%016"PRIx64"\n",
+               msg_region->memory_size);
+        DPRINT("    userspace_addr   0x%016"PRIx64"\n",
+               msg_region->userspace_addr);
+        DPRINT("    mmap_offset      0x%016"PRIx64"\n",
+               msg_region->mmap_offset);
+
+        dev_region->gpa = msg_region->guest_phys_addr;
+        dev_region->size = msg_region->memory_size;
+        dev_region->qva = msg_region->userspace_addr;
+        dev_region->mmap_offset = msg_region->mmap_offset;
+
+        /* We don't use offset argument of mmap() since the
+         * mapped address has to be page aligned, and we use huge
+         * pages.  */
+        mmap_addr = mmap(0, dev_region->size + dev_region->mmap_offset,
+                         PROT_READ | PROT_WRITE, MAP_SHARED,
+                         vmsg->fds[i], 0);
+
+        if (mmap_addr == MAP_FAILED) {
+            vubr_die("mmap");
+        }
+        dev_region->mmap_addr = (uint64_t)(uintptr_t)mmap_addr;
+        DPRINT("    mmap_addr:       0x%016"PRIx64"\n", dev_region->mmap_addr);
+
+        close(vmsg->fds[i]);
+    }
+
+    return 0;
+}
+
+static int
+vubr_set_log_base_exec(VubrDev *dev, VhostUserMsg *vmsg)
+{
+    int fd;
+    uint64_t log_mmap_size, log_mmap_offset;
+    void *rc;
+
+    assert(vmsg->fd_num == 1);
+    fd = vmsg->fds[0];
+
+    assert(vmsg->size == sizeof(vmsg->payload.log));
+    log_mmap_offset = vmsg->payload.log.mmap_offset;
+    log_mmap_size = vmsg->payload.log.mmap_size;
+    DPRINT("Log mmap_offset: %"PRId64"\n", log_mmap_offset);
+    DPRINT("Log mmap_size:   %"PRId64"\n", log_mmap_size);
+
+    rc = mmap(0, log_mmap_size, PROT_READ | PROT_WRITE, MAP_SHARED, fd,
+              log_mmap_offset);
+    if (rc == MAP_FAILED) {
+        vubr_die("mmap");
+    }
+    dev->log_table = rc;
+    dev->log_size = log_mmap_size;
+
+    vmsg->size = sizeof(vmsg->payload.u64);
+    /* Reply */
+    return 1;
+}
+
+static int
+vubr_set_log_fd_exec(VubrDev *dev, VhostUserMsg *vmsg)
+{
+    assert(vmsg->fd_num == 1);
+    dev->log_call_fd = vmsg->fds[0];
+    DPRINT("Got log_call_fd: %d\n", vmsg->fds[0]);
+    return 0;
+}
+
+static int
+vubr_set_vring_num_exec(VubrDev *dev, VhostUserMsg *vmsg)
+{
+    unsigned int index = vmsg->payload.state.index;
+    unsigned int num = vmsg->payload.state.num;
+
+    DPRINT("State.index: %d\n", index);
+    DPRINT("State.num:   %d\n", num);
+    dev->vq[index].size = num;
+    return 0;
+}
+
+static int
+vubr_set_vring_addr_exec(VubrDev *dev, VhostUserMsg *vmsg)
+{
+    struct vhost_vring_addr *vra = &vmsg->payload.addr;
+    unsigned int index = vra->index;
+    VubrVirtq *vq = &dev->vq[index];
+
+    DPRINT("vhost_vring_addr:\n");
+    DPRINT("    index:  %d\n", vra->index);
+    DPRINT("    flags:  %d\n", vra->flags);
+    DPRINT("    desc_user_addr:   0x%016llx\n", vra->desc_user_addr);
+    DPRINT("    used_user_addr:   0x%016llx\n", vra->used_user_addr);
+    DPRINT("    avail_user_addr:  0x%016llx\n", vra->avail_user_addr);
+    DPRINT("    log_guest_addr:   0x%016llx\n", vra->log_guest_addr);
+
+    vq->desc = (struct vring_desc *)(uintptr_t)qva_to_va(dev, vra->desc_user_addr);
+    vq->used = (struct vring_used *)(uintptr_t)qva_to_va(dev, vra->used_user_addr);
+    vq->avail = (struct vring_avail *)(uintptr_t)qva_to_va(dev, vra->avail_user_addr);
+    vq->log_guest_addr = vra->log_guest_addr;
+
+    DPRINT("Setting virtq addresses:\n");
+    DPRINT("    vring_desc  at %p\n", vq->desc);
+    DPRINT("    vring_used  at %p\n", vq->used);
+    DPRINT("    vring_avail at %p\n", vq->avail);
+
+    vq->last_used_index = vq->used->idx;
+    return 0;
+}
+
+static int
+vubr_set_vring_base_exec(VubrDev *dev, VhostUserMsg *vmsg)
+{
+    unsigned int index = vmsg->payload.state.index;
+    unsigned int num = vmsg->payload.state.num;
+
+    DPRINT("State.index: %d\n", index);
+    DPRINT("State.num:   %d\n", num);
+    dev->vq[index].last_avail_index = num;
+
+    return 0;
+}
+
+static int
+vubr_get_vring_base_exec(VubrDev *dev, VhostUserMsg *vmsg)
+{
+    unsigned int index = vmsg->payload.state.index;
+
+    DPRINT("State.index: %d\n", index);
+    vmsg->payload.state.num = dev->vq[index].last_avail_index;
+    vmsg->size = sizeof(vmsg->payload.state);
+    /* FIXME: this is a work-around for a bug in QEMU enabling
+     * too early vrings. When protocol features are enabled,
+     * we have to respect * VHOST_USER_SET_VRING_ENABLE request. */
+    dev->ready = 0;
+
+    if (dev->vq[index].call_fd != -1) {
+        close(dev->vq[index].call_fd);
+        dispatcher_remove(&dev->dispatcher, dev->vq[index].call_fd);
+        dev->vq[index].call_fd = -1;
+    }
+    if (dev->vq[index].kick_fd != -1) {
+        close(dev->vq[index].kick_fd);
+        dispatcher_remove(&dev->dispatcher, dev->vq[index].kick_fd);
+        dev->vq[index].kick_fd = -1;
+    }
+
+    /* Reply */
+    return 1;
+}
+
+static int
+vubr_set_vring_kick_exec(VubrDev *dev, VhostUserMsg *vmsg)
+{
+    uint64_t u64_arg = vmsg->payload.u64;
+    int index = u64_arg & VHOST_USER_VRING_IDX_MASK;
+
+    DPRINT("u64: 0x%016"PRIx64"\n", vmsg->payload.u64);
+
+    assert((u64_arg & VHOST_USER_VRING_NOFD_MASK) == 0);
+    assert(vmsg->fd_num == 1);
+
+    if (dev->vq[index].kick_fd != -1) {
+        close(dev->vq[index].kick_fd);
+        dispatcher_remove(&dev->dispatcher, dev->vq[index].kick_fd);
+    }
+    dev->vq[index].kick_fd = vmsg->fds[0];
+    DPRINT("Got kick_fd: %d for vq: %d\n", vmsg->fds[0], index);
+
+    if (index % 2 == 1) {
+        /* TX queue. */
+        dispatcher_add(&dev->dispatcher, dev->vq[index].kick_fd,
+                       dev, vubr_kick_cb);
+
+        DPRINT("Waiting for kicks on fd: %d for vq: %d\n",
+               dev->vq[index].kick_fd, index);
+    }
+    /* We temporarily use this hack to determine that both TX and RX
+     * queues are set up and ready for processing.
+     * FIXME: we need to rely in VHOST_USER_SET_VRING_ENABLE and
+     * actual kicks. */
+    if (dev->vq[0].kick_fd != -1 &&
+        dev->vq[1].kick_fd != -1) {
+        dev->ready = 1;
+        DPRINT("vhost-user-bridge is ready for processing queues.\n");
+    }
+    return 0;
+
+}
+
+static int
+vubr_set_vring_call_exec(VubrDev *dev, VhostUserMsg *vmsg)
+{
+    uint64_t u64_arg = vmsg->payload.u64;
+    int index = u64_arg & VHOST_USER_VRING_IDX_MASK;
+
+    DPRINT("u64: 0x%016"PRIx64"\n", vmsg->payload.u64);
+    assert((u64_arg & VHOST_USER_VRING_NOFD_MASK) == 0);
+    assert(vmsg->fd_num == 1);
+
+    if (dev->vq[index].call_fd != -1) {
+        close(dev->vq[index].call_fd);
+        dispatcher_remove(&dev->dispatcher, dev->vq[index].call_fd);
+    }
+    dev->vq[index].call_fd = vmsg->fds[0];
+    DPRINT("Got call_fd: %d for vq: %d\n", vmsg->fds[0], index);
+
+    return 0;
+}
+
+static int
+vubr_set_vring_err_exec(VubrDev *dev, VhostUserMsg *vmsg)
+{
+    DPRINT("u64: 0x%016"PRIx64"\n", vmsg->payload.u64);
+    return 0;
+}
+
+static int
+vubr_get_protocol_features_exec(VubrDev *dev, VhostUserMsg *vmsg)
+{
+    vmsg->payload.u64 = 1ULL << VHOST_USER_PROTOCOL_F_LOG_SHMFD;
+    DPRINT("u64: 0x%016"PRIx64"\n", vmsg->payload.u64);
+    vmsg->size = sizeof(vmsg->payload.u64);
+
+    /* Reply */
+    return 1;
+}
+
+static int
+vubr_set_protocol_features_exec(VubrDev *dev, VhostUserMsg *vmsg)
+{
+    /* FIXME: unimplented */
+    DPRINT("u64: 0x%016"PRIx64"\n", vmsg->payload.u64);
+    return 0;
+}
+
+static int
+vubr_get_queue_num_exec(VubrDev *dev, VhostUserMsg *vmsg)
+{
+    DPRINT("Function %s() not implemented yet.\n", __func__);
+    return 0;
+}
+
+static int
+vubr_set_vring_enable_exec(VubrDev *dev, VhostUserMsg *vmsg)
+{
+    unsigned int index = vmsg->payload.state.index;
+    unsigned int enable = vmsg->payload.state.num;
+
+    DPRINT("State.index: %d\n", index);
+    DPRINT("State.enable:   %d\n", enable);
+    dev->vq[index].enable = enable;
+    return 0;
+}
+
+static int
+vubr_send_rarp_exec(VubrDev *dev, VhostUserMsg *vmsg)
+{
+    DPRINT("Function %s() not implemented yet.\n", __func__);
+    return 0;
+}
+
+static int
+vubr_execute_request(VubrDev *dev, VhostUserMsg *vmsg)
+{
+    /* Print out generic part of the request. */
+    DPRINT(
+           "==================   Vhost user message from QEMU   ==================\n");
+    DPRINT("Request: %s (%d)\n", vubr_request_str[vmsg->request],
+           vmsg->request);
+    DPRINT("Flags:   0x%x\n", vmsg->flags);
+    DPRINT("Size:    %d\n", vmsg->size);
+
+    if (vmsg->fd_num) {
+        int i;
+        DPRINT("Fds:");
+        for (i = 0; i < vmsg->fd_num; i++) {
+            DPRINT(" %d", vmsg->fds[i]);
+        }
+        DPRINT("\n");
+    }
+
+    switch (vmsg->request) {
+    case VHOST_USER_NONE:
+        return vubr_none_exec(dev, vmsg);
+    case VHOST_USER_GET_FEATURES:
+        return vubr_get_features_exec(dev, vmsg);
+    case VHOST_USER_SET_FEATURES:
+        return vubr_set_features_exec(dev, vmsg);
+    case VHOST_USER_SET_OWNER:
+        return vubr_set_owner_exec(dev, vmsg);
+    case VHOST_USER_RESET_OWNER:
+        return vubr_reset_device_exec(dev, vmsg);
+    case VHOST_USER_SET_MEM_TABLE:
+        return vubr_set_mem_table_exec(dev, vmsg);
+    case VHOST_USER_SET_LOG_BASE:
+        return vubr_set_log_base_exec(dev, vmsg);
+    case VHOST_USER_SET_LOG_FD:
+        return vubr_set_log_fd_exec(dev, vmsg);
+    case VHOST_USER_SET_VRING_NUM:
+        return vubr_set_vring_num_exec(dev, vmsg);
+    case VHOST_USER_SET_VRING_ADDR:
+        return vubr_set_vring_addr_exec(dev, vmsg);
+    case VHOST_USER_SET_VRING_BASE:
+        return vubr_set_vring_base_exec(dev, vmsg);
+    case VHOST_USER_GET_VRING_BASE:
+        return vubr_get_vring_base_exec(dev, vmsg);
+    case VHOST_USER_SET_VRING_KICK:
+        return vubr_set_vring_kick_exec(dev, vmsg);
+    case VHOST_USER_SET_VRING_CALL:
+        return vubr_set_vring_call_exec(dev, vmsg);
+    case VHOST_USER_SET_VRING_ERR:
+        return vubr_set_vring_err_exec(dev, vmsg);
+    case VHOST_USER_GET_PROTOCOL_FEATURES:
+        return vubr_get_protocol_features_exec(dev, vmsg);
+    case VHOST_USER_SET_PROTOCOL_FEATURES:
+        return vubr_set_protocol_features_exec(dev, vmsg);
+    case VHOST_USER_GET_QUEUE_NUM:
+        return vubr_get_queue_num_exec(dev, vmsg);
+    case VHOST_USER_SET_VRING_ENABLE:
+        return vubr_set_vring_enable_exec(dev, vmsg);
+    case VHOST_USER_SEND_RARP:
+        return vubr_send_rarp_exec(dev, vmsg);
+
+    case VHOST_USER_MAX:
+        assert(vmsg->request != VHOST_USER_MAX);
+    }
+    return 0;
+}
+
+static void
+vubr_receive_cb(int sock, void *ctx)
+{
+    VubrDev *dev = (VubrDev *) ctx;
+    VhostUserMsg vmsg;
+    int reply_requested;
+
+    vubr_message_read(sock, &vmsg);
+    reply_requested = vubr_execute_request(dev, &vmsg);
+    if (reply_requested) {
+        /* Set the version in the flags when sending the reply */
+        vmsg.flags &= ~VHOST_USER_VERSION_MASK;
+        vmsg.flags |= VHOST_USER_VERSION;
+        vmsg.flags |= VHOST_USER_REPLY_MASK;
+        vubr_message_write(sock, &vmsg);
+    }
+}
+
+static void
+vubr_accept_cb(int sock, void *ctx)
+{
+    VubrDev *dev = (VubrDev *)ctx;
+    int conn_fd;
+    struct sockaddr_un un;
+    socklen_t len = sizeof(un);
+
+    conn_fd = accept(sock, (struct sockaddr *) &un, &len);
+    if (conn_fd == -1) {
+        vubr_die("accept()");
+    }
+    DPRINT("Got connection from remote peer on sock %d\n", conn_fd);
+    dispatcher_add(&dev->dispatcher, conn_fd, ctx, vubr_receive_cb);
+}
+
+static VubrDev *
+vubr_new(const char *path, bool client)
+{
+    VubrDev *dev = (VubrDev *) calloc(1, sizeof(VubrDev));
+    dev->nregions = 0;
+    int i;
+    struct sockaddr_un un;
+    CallbackFunc cb;
+    size_t len;
+
+    for (i = 0; i < MAX_NR_VIRTQUEUE; i++) {
+        dev->vq[i] = (VubrVirtq) {
+            .call_fd = -1, .kick_fd = -1,
+            .size = 0,
+            .last_avail_index = 0, .last_used_index = 0,
+            .desc = 0, .avail = 0, .used = 0,
+            .enable = 0,
+        };
+    }
+
+    /* Init log */
+    dev->log_call_fd = -1;
+    dev->log_size = 0;
+    dev->log_table = 0;
+    dev->ready = 0;
+    dev->features = 0;
+
+    /* Get a UNIX socket. */
+    dev->sock = socket(AF_UNIX, SOCK_STREAM, 0);
+    if (dev->sock == -1) {
+        vubr_die("socket");
+    }
+
+    un.sun_family = AF_UNIX;
+    strcpy(un.sun_path, path);
+    len = sizeof(un.sun_family) + strlen(path);
+
+    if (!client) {
+        unlink(path);
+
+        if (bind(dev->sock, (struct sockaddr *) &un, len) == -1) {
+            vubr_die("bind");
+        }
+
+        if (listen(dev->sock, 1) == -1) {
+            vubr_die("listen");
+        }
+        cb = vubr_accept_cb;
+    } else {
+        if (connect(dev->sock, (struct sockaddr *)&un, len) == -1) {
+            vubr_die("connect");
+        }
+        cb = vubr_receive_cb;
+    }
+
+    dispatcher_init(&dev->dispatcher);
+    dispatcher_add(&dev->dispatcher, dev->sock, (void *)dev, cb);
+
+    DPRINT("Waiting for connections on UNIX socket %s ...\n", path);
+    return dev;
+}
+
+static void
+vubr_set_host(struct sockaddr_in *saddr, const char *host)
+{
+    if (isdigit(host[0])) {
+        if (!inet_aton(host, &saddr->sin_addr)) {
+            fprintf(stderr, "inet_aton() failed.\n");
+            exit(1);
+        }
+    } else {
+        struct hostent *he = gethostbyname(host);
+
+        if (!he) {
+            fprintf(stderr, "gethostbyname() failed.\n");
+            exit(1);
+        }
+        saddr->sin_addr = *(struct in_addr *)he->h_addr;
+    }
+}
+
+static void
+vubr_backend_udp_setup(VubrDev *dev,
+                       const char *local_host,
+                       const char *local_port,
+                       const char *remote_host,
+                       const char *remote_port)
+{
+    int sock;
+    const char *r;
+
+    int lport, rport;
+
+    lport = strtol(local_port, (char **)&r, 0);
+    if (r == local_port) {
+        fprintf(stderr, "lport parsing failed.\n");
+        exit(1);
+    }
+
+    rport = strtol(remote_port, (char **)&r, 0);
+    if (r == remote_port) {
+        fprintf(stderr, "rport parsing failed.\n");
+        exit(1);
+    }
+
+    struct sockaddr_in si_local = {
+        .sin_family = AF_INET,
+        .sin_port = htons(lport),
+    };
+
+    vubr_set_host(&si_local, local_host);
+
+    /* setup destination for sends */
+    dev->backend_udp_dest = (struct sockaddr_in) {
+        .sin_family = AF_INET,
+        .sin_port = htons(rport),
+    };
+    vubr_set_host(&dev->backend_udp_dest, remote_host);
+
+    sock = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
+    if (sock == -1) {
+        vubr_die("socket");
+    }
+
+    if (bind(sock, (struct sockaddr *)&si_local, sizeof(si_local)) == -1) {
+        vubr_die("bind");
+    }
+
+    dev->backend_udp_sock = sock;
+    dispatcher_add(&dev->dispatcher, sock, dev, vubr_backend_recv_cb);
+    DPRINT("Waiting for data from udp backend on %s:%d...\n",
+           local_host, lport);
+}
+
+static void
+vubr_run(VubrDev *dev)
+{
+    while (1) {
+        /* timeout 200ms */
+        dispatcher_wait(&dev->dispatcher, 200000);
+        /* Here one can try polling strategy. */
+    }
+}
+
+static int
+vubr_parse_host_port(const char **host, const char **port, const char *buf)
+{
+    char *p = strchr(buf, ':');
+
+    if (!p) {
+        return -1;
+    }
+    *p = '\0';
+    *host = strdup(buf);
+    *port = strdup(p + 1);
+    return 0;
+}
+
+#define DEFAULT_UD_SOCKET "/tmp/vubr.sock"
+#define DEFAULT_LHOST "127.0.0.1"
+#define DEFAULT_LPORT "4444"
+#define DEFAULT_RHOST "127.0.0.1"
+#define DEFAULT_RPORT "5555"
+
+static const char *ud_socket_path = DEFAULT_UD_SOCKET;
+static const char *lhost = DEFAULT_LHOST;
+static const char *lport = DEFAULT_LPORT;
+static const char *rhost = DEFAULT_RHOST;
+static const char *rport = DEFAULT_RPORT;
+
+int
+main(int argc, char *argv[])
+{
+    VubrDev *dev;
+    int opt;
+    bool client = false;
+
+    while ((opt = getopt(argc, argv, "l:r:u:c")) != -1) {
+
+        switch (opt) {
+        case 'l':
+            if (vubr_parse_host_port(&lhost, &lport, optarg) < 0) {
+                goto out;
+            }
+            break;
+        case 'r':
+            if (vubr_parse_host_port(&rhost, &rport, optarg) < 0) {
+                goto out;
+            }
+            break;
+        case 'u':
+            ud_socket_path = strdup(optarg);
+            break;
+        case 'c':
+            client = true;
+            break;
+        default:
+            goto out;
+        }
+    }
+
+    DPRINT("ud socket: %s (%s)\n", ud_socket_path,
+           client ? "client" : "server");
+    DPRINT("local:     %s:%s\n", lhost, lport);
+    DPRINT("remote:    %s:%s\n", rhost, rport);
+
+    dev = vubr_new(ud_socket_path, client);
+    if (!dev) {
+        return 1;
+    }
+
+    vubr_backend_udp_setup(dev, lhost, lport, rhost, rport);
+    vubr_run(dev);
+    return 0;
+
+out:
+    fprintf(stderr, "Usage: %s ", argv[0]);
+    fprintf(stderr, "[-u ud_socket_path] [-l lhost:lport] [-r rhost:rport]\n");
+    fprintf(stderr, "\t-u path to unix doman socket. default: %s\n",
+            DEFAULT_UD_SOCKET);
+    fprintf(stderr, "\t-l local host and port. default: %s:%s\n",
+            DEFAULT_LHOST, DEFAULT_LPORT);
+    fprintf(stderr, "\t-r remote host and port. default: %s:%s\n",
+            DEFAULT_RHOST, DEFAULT_RPORT);
+
+    return 1;
+}
diff --git a/tests/vhost-user-test.c.orig b/tests/vhost-user-test.c.orig
new file mode 100644
index 0000000000..b491e6fcb6
--- /dev/null
+++ b/tests/vhost-user-test.c.orig
@@ -0,0 +1,364 @@
+/*
+ * QTest testcase for the vhost-user
+ *
+ * Copyright (c) 2014 Virtual Open Systems Sarl.
+ *
+ * This work is licensed under the terms of the GNU GPL, version 2 or later.
+ * See the COPYING file in the top-level directory.
+ *
+ */
+
+#include <glib.h>
+
+#include "libqtest.h"
+#include "qemu/option.h"
+#include "sysemu/char.h"
+#include "sysemu/sysemu.h"
+
+#include <linux/vhost.h>
+#include <sys/mman.h>
+#include <sys/vfs.h>
+#include <qemu/sockets.h>
+
+/* GLIB version compatibility flags */
+#if !GLIB_CHECK_VERSION(2, 26, 0)
+#define G_TIME_SPAN_SECOND              (G_GINT64_CONSTANT(1000000))
+#endif
+
+#if GLIB_CHECK_VERSION(2, 28, 0)
+#define HAVE_MONOTONIC_TIME
+#endif
+
+#define QEMU_CMD_ACCEL  " -machine accel=tcg"
+#define QEMU_CMD_MEM    " -m 512 -object memory-backend-file,id=mem,size=512M,"\
+                        "mem-path=%s,share=on -numa node,memdev=mem"
+#define QEMU_CMD_CHR    " -chardev socket,id=chr0,path=%s"
+#define QEMU_CMD_NETDEV " -netdev vhost-user,id=net0,chardev=chr0,vhostforce"
+#define QEMU_CMD_NET    " -device virtio-net-pci,netdev=net0 "
+#define QEMU_CMD_ROM    " -option-rom ../pc-bios/pxe-virtio.rom"
+
+#define QEMU_CMD        QEMU_CMD_ACCEL QEMU_CMD_MEM QEMU_CMD_CHR \
+                        QEMU_CMD_NETDEV QEMU_CMD_NET QEMU_CMD_ROM
+
+#define HUGETLBFS_MAGIC       0x958458f6
+
+/*********** FROM hw/virtio/vhost-user.c *************************************/
+
+#define VHOST_MEMORY_MAX_NREGIONS    8
+
+#define VHOST_USER_F_PROTOCOL_FEATURES 30
+
+typedef enum VhostUserRequest {
+    VHOST_USER_NONE = 0,
+    VHOST_USER_GET_FEATURES = 1,
+    VHOST_USER_SET_FEATURES = 2,
+    VHOST_USER_SET_OWNER = 3,
+    VHOST_USER_RESET_DEVICE = 4,
+    VHOST_USER_SET_MEM_TABLE = 5,
+    VHOST_USER_SET_LOG_BASE = 6,
+    VHOST_USER_SET_LOG_FD = 7,
+    VHOST_USER_SET_VRING_NUM = 8,
+    VHOST_USER_SET_VRING_ADDR = 9,
+    VHOST_USER_SET_VRING_BASE = 10,
+    VHOST_USER_GET_VRING_BASE = 11,
+    VHOST_USER_SET_VRING_KICK = 12,
+    VHOST_USER_SET_VRING_CALL = 13,
+    VHOST_USER_SET_VRING_ERR = 14,
+    VHOST_USER_GET_PROTOCOL_FEATURES = 15,
+    VHOST_USER_SET_PROTOCOL_FEATURES = 16,
+    VHOST_USER_MAX
+} VhostUserRequest;
+
+typedef struct VhostUserMemoryRegion {
+    uint64_t guest_phys_addr;
+    uint64_t memory_size;
+    uint64_t userspace_addr;
+    uint64_t mmap_offset;
+} VhostUserMemoryRegion;
+
+typedef struct VhostUserMemory {
+    uint32_t nregions;
+    uint32_t padding;
+    VhostUserMemoryRegion regions[VHOST_MEMORY_MAX_NREGIONS];
+} VhostUserMemory;
+
+typedef struct VhostUserMsg {
+    VhostUserRequest request;
+
+#define VHOST_USER_VERSION_MASK     (0x3)
+#define VHOST_USER_REPLY_MASK       (0x1<<2)
+    uint32_t flags;
+    uint32_t size; /* the following payload size */
+    union {
+        uint64_t u64;
+        struct vhost_vring_state state;
+        struct vhost_vring_addr addr;
+        VhostUserMemory memory;
+    };
+} QEMU_PACKED VhostUserMsg;
+
+static VhostUserMsg m __attribute__ ((unused));
+#define VHOST_USER_HDR_SIZE (sizeof(m.request) \
+                            + sizeof(m.flags) \
+                            + sizeof(m.size))
+
+#define VHOST_USER_PAYLOAD_SIZE (sizeof(m) - VHOST_USER_HDR_SIZE)
+
+/* The version of the protocol we support */
+#define VHOST_USER_VERSION    (0x1)
+/*****************************************************************************/
+
+int fds_num = 0, fds[VHOST_MEMORY_MAX_NREGIONS];
+static VhostUserMemory memory;
+static CompatGMutex data_mutex;
+static CompatGCond data_cond;
+
+#if !GLIB_CHECK_VERSION(2, 32, 0)
+static gboolean g_cond_wait_until(CompatGCond cond, CompatGMutex mutex,
+                                  gint64 end_time)
+{
+    gboolean ret = FALSE;
+    end_time -= g_get_monotonic_time();
+    GTimeVal time = { end_time / G_TIME_SPAN_SECOND,
+                      end_time % G_TIME_SPAN_SECOND };
+    ret = g_cond_timed_wait(cond, mutex, &time);
+    return ret;
+}
+#endif
+
+static void wait_for_fds(void)
+{
+    gint64 end_time;
+
+    g_mutex_lock(&data_mutex);
+    end_time = g_get_monotonic_time() + 5 * G_TIME_SPAN_SECOND;
+    while (!fds_num) {
+        if (!g_cond_wait_until(&data_cond, &data_mutex, end_time)) {
+            /* timeout has passed */
+            g_assert(fds_num);
+            break;
+        }
+    }
+
+    /* check for sanity */
+    g_assert_cmpint(fds_num, >, 0);
+    g_assert_cmpint(fds_num, ==, memory.nregions);
+
+    g_mutex_unlock(&data_mutex);
+}
+
+static void read_guest_mem(void)
+{
+    uint32_t *guest_mem;
+    int i, j;
+    size_t size;
+
+    wait_for_fds();
+
+    /* iterate all regions */
+    for (i = 0; i < fds_num; i++) {
+
+        /* We'll check only the region statring at 0x0*/
+        if (memory.regions[i].guest_phys_addr != 0x0) {
+            continue;
+        }
+
+        g_assert_cmpint(memory.regions[i].memory_size, >, 1024);
+
+        size =  memory.regions[i].memory_size + memory.regions[i].mmap_offset;
+
+        guest_mem = mmap(0, size, PROT_READ | PROT_WRITE,
+                         MAP_SHARED, fds[i], 0);
+
+        g_assert(guest_mem != MAP_FAILED);
+        guest_mem += (memory.regions[i].mmap_offset / sizeof(*guest_mem));
+
+        for (j = 0; j < 256; j++) {
+            uint32_t a = readl(memory.regions[i].guest_phys_addr + j*4);
+            uint32_t b = guest_mem[j];
+
+            g_assert_cmpint(a, ==, b);
+        }
+
+        munmap(guest_mem, memory.regions[i].memory_size);
+    }
+
+    g_mutex_unlock(&data_mutex);
+}
+
+static void *thread_function(void *data)
+{
+    GMainLoop *loop;
+    loop = g_main_loop_new(NULL, FALSE);
+    g_main_loop_run(loop);
+    return NULL;
+}
+
+static int chr_can_read(void *opaque)
+{
+    return VHOST_USER_HDR_SIZE;
+}
+
+static void chr_read(void *opaque, const uint8_t *buf, int size)
+{
+    CharDriverState *chr = opaque;
+    VhostUserMsg msg;
+    uint8_t *p = (uint8_t *) &msg;
+    int fd;
+
+    if (size != VHOST_USER_HDR_SIZE) {
+        g_test_message("Wrong message size received %d\n", size);
+        return;
+    }
+
+    g_mutex_lock(&data_mutex);
+    memcpy(p, buf, VHOST_USER_HDR_SIZE);
+
+    if (msg.size) {
+        p += VHOST_USER_HDR_SIZE;
+        qemu_chr_fe_read_all(chr, p, msg.size);
+    }
+
+    switch (msg.request) {
+    case VHOST_USER_GET_FEATURES:
+        /* send back features to qemu */
+        msg.flags |= VHOST_USER_REPLY_MASK;
+        msg.size = sizeof(m.u64);
+        msg.u64 = 0x1ULL << VHOST_USER_F_PROTOCOL_FEATURES;
+        p = (uint8_t *) &msg;
+        qemu_chr_fe_write_all(chr, p, VHOST_USER_HDR_SIZE + msg.size);
+        break;
+
+    case VHOST_USER_SET_FEATURES:
+	g_assert_cmpint(msg.u64 & (0x1ULL << VHOST_USER_F_PROTOCOL_FEATURES),
+			!=, 0ULL);
+        break;
+
+    case VHOST_USER_GET_PROTOCOL_FEATURES:
+        /* send back features to qemu */
+        msg.flags |= VHOST_USER_REPLY_MASK;
+        msg.size = sizeof(m.u64);
+        msg.u64 = 0;
+        p = (uint8_t *) &msg;
+        qemu_chr_fe_write_all(chr, p, VHOST_USER_HDR_SIZE + msg.size);
+        break;
+
+    case VHOST_USER_GET_VRING_BASE:
+        /* send back vring base to qemu */
+        msg.flags |= VHOST_USER_REPLY_MASK;
+        msg.size = sizeof(m.state);
+        msg.state.num = 0;
+        p = (uint8_t *) &msg;
+        qemu_chr_fe_write_all(chr, p, VHOST_USER_HDR_SIZE + msg.size);
+        break;
+
+    case VHOST_USER_SET_MEM_TABLE:
+        /* received the mem table */
+        memcpy(&memory, &msg.memory, sizeof(msg.memory));
+        fds_num = qemu_chr_fe_get_msgfds(chr, fds, sizeof(fds) / sizeof(int));
+
+        /* signal the test that it can continue */
+        g_cond_signal(&data_cond);
+        break;
+
+    case VHOST_USER_SET_VRING_KICK:
+    case VHOST_USER_SET_VRING_CALL:
+        /* consume the fd */
+        qemu_chr_fe_get_msgfds(chr, &fd, 1);
+        /*
+         * This is a non-blocking eventfd.
+         * The receive function forces it to be blocking,
+         * so revert it back to non-blocking.
+         */
+        qemu_set_nonblock(fd);
+        break;
+    default:
+        break;
+    }
+    g_mutex_unlock(&data_mutex);
+}
+
+static const char *init_hugepagefs(void)
+{
+    const char *path;
+    struct statfs fs;
+    int ret;
+
+    path = getenv("QTEST_HUGETLBFS_PATH");
+    if (!path) {
+        path = "/hugetlbfs";
+    }
+
+    if (access(path, R_OK | W_OK | X_OK)) {
+        g_test_message("access on path (%s): %s\n", path, strerror(errno));
+        return NULL;
+    }
+
+    do {
+        ret = statfs(path, &fs);
+    } while (ret != 0 && errno == EINTR);
+
+    if (ret != 0) {
+        g_test_message("statfs on path (%s): %s\n", path, strerror(errno));
+        return NULL;
+    }
+
+    if (fs.f_type != HUGETLBFS_MAGIC) {
+        g_test_message("Warning: path not on HugeTLBFS: %s\n", path);
+        return NULL;
+    }
+
+    return path;
+}
+
+int main(int argc, char **argv)
+{
+    QTestState *s = NULL;
+    CharDriverState *chr = NULL;
+    const char *hugefs = 0;
+    char *socket_path = 0;
+    char *qemu_cmd = 0;
+    char *chr_path = 0;
+    int ret;
+
+    g_test_init(&argc, &argv, NULL);
+
+    module_call_init(MODULE_INIT_QOM);
+
+    hugefs = init_hugepagefs();
+    if (!hugefs) {
+        return 0;
+    }
+
+    socket_path = g_strdup_printf("/tmp/vhost-%d.sock", getpid());
+
+    /* create char dev and add read handlers */
+    qemu_add_opts(&qemu_chardev_opts);
+    chr_path = g_strdup_printf("unix:%s,server,nowait", socket_path);
+    chr = qemu_chr_new("chr0", chr_path, NULL);
+    g_free(chr_path);
+    qemu_chr_add_handlers(chr, chr_can_read, chr_read, NULL, chr);
+
+    /* run the main loop thread so the chardev may operate */
+    g_mutex_init(&data_mutex);
+    g_cond_init(&data_cond);
+    g_thread_new(NULL, thread_function, NULL);
+
+    qemu_cmd = g_strdup_printf(QEMU_CMD, hugefs, socket_path);
+    s = qtest_start(qemu_cmd);
+    g_free(qemu_cmd);
+
+    qtest_add_func("/vhost-user/read-guest-mem", read_guest_mem);
+
+    ret = g_test_run();
+
+    if (s) {
+        qtest_quit(s);
+    }
+
+    /* cleanup */
+    unlink(socket_path);
+    g_free(socket_path);
+
+    return ret;
+}
-- 
MST



^ permalink raw reply related	[flat|nested] 63+ messages in thread

* [PULL v4 46/48] hw: virtio-pmem: detach the element fromt the virtqueue when error occurs
  2020-09-29  7:20 [PULL v4 00/48] virtio,pc,acpi: fixes, tests Michael S. Tsirkin
                   ` (43 preceding siblings ...)
  2020-09-29  7:22 ` [PULL v4 45/48] tests/acpi: update golden master DSDT binary table blobs for q35 Michael S. Tsirkin
@ 2020-09-29  7:23 ` Michael S. Tsirkin
  2020-09-29  7:23 ` [PULL v4 47/48] libvhost-user: return early on virtqueue errors Michael S. Tsirkin
                   ` (6 subsequent siblings)
  51 siblings, 0 replies; 63+ messages in thread
From: Michael S. Tsirkin @ 2020-09-29  7:23 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell, Li Qiang, Pankaj Gupta

From: Li Qiang <liq3ea@163.com>

If error occurs while processing the virtio request we should call
'virtqueue_detach_element' to detach the element from the virtqueue
before free the elem.

Signed-off-by: Li Qiang <liq3ea@163.com>
Message-Id: <20200813165125.59928-1-liq3ea@163.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Fixes: 5f503cd9f3 ("virtio-pmem: add virtio device")
Reviewed-by: Pankaj Gupta <pankaj.gupta.linux@gmail.com>
---
 hw/virtio/virtio-pmem.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/hw/virtio/virtio-pmem.c b/hw/virtio/virtio-pmem.c
index 1e0c137497..ddb0125901 100644
--- a/hw/virtio/virtio-pmem.c
+++ b/hw/virtio/virtio-pmem.c
@@ -77,6 +77,7 @@ static void virtio_pmem_flush(VirtIODevice *vdev, VirtQueue *vq)
 
     if (req_data->elem.out_num < 1 || req_data->elem.in_num < 1) {
         virtio_error(vdev, "virtio-pmem request not proper");
+        virtqueue_detach_element(vq, (VirtQueueElement *)req_data, 0);
         g_free(req_data);
         return;
     }
-- 
MST



^ permalink raw reply related	[flat|nested] 63+ messages in thread

* [PULL v4 47/48] libvhost-user: return early on virtqueue errors
  2020-09-29  7:20 [PULL v4 00/48] virtio,pc,acpi: fixes, tests Michael S. Tsirkin
                   ` (44 preceding siblings ...)
  2020-09-29  7:23 ` [PULL v4 46/48] hw: virtio-pmem: detach the element fromt the virtqueue when error occurs Michael S. Tsirkin
@ 2020-09-29  7:23 ` Michael S. Tsirkin
  2020-09-29  7:23 ` [PULL v4 48/48] libvhost-user: return on error in vu_log_queue_fill() Michael S. Tsirkin
                   ` (5 subsequent siblings)
  51 siblings, 0 replies; 63+ messages in thread
From: Michael S. Tsirkin @ 2020-09-29  7:23 UTC (permalink / raw)
  To: qemu-devel
  Cc: Peter Maydell, Marc-André Lureau,
	Philippe Mathieu-Daudé,
	Stefan Hajnoczi, Raphael Norwitz

From: Stefan Hajnoczi <stefanha@redhat.com>

vu_panic() is not guaranteed to exit the program. Return early when
errors are encountered.

Note that libvhost-user does not have an "unmap" operation for mapped
descriptors. Therefore it is correct to return without explicit cleanup.

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Message-Id: <20200921113420.154378-2-stefanha@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
 contrib/libvhost-user/libvhost-user.c | 25 +++++++++++++++++--------
 1 file changed, 17 insertions(+), 8 deletions(-)

diff --git a/contrib/libvhost-user/libvhost-user.c b/contrib/libvhost-user/libvhost-user.c
index 70055c98b7..4ebfa4cc40 100644
--- a/contrib/libvhost-user/libvhost-user.c
+++ b/contrib/libvhost-user/libvhost-user.c
@@ -2416,7 +2416,7 @@ vu_queue_set_notification(VuDev *dev, VuVirtq *vq, int enable)
     }
 }
 
-static void
+static bool
 virtqueue_map_desc(VuDev *dev,
                    unsigned int *p_num_sg, struct iovec *iov,
                    unsigned int max_num_sg, bool is_write,
@@ -2428,7 +2428,7 @@ virtqueue_map_desc(VuDev *dev,
 
     if (!sz) {
         vu_panic(dev, "virtio: zero sized buffers are not allowed");
-        return;
+        return false;
     }
 
     while (sz) {
@@ -2436,13 +2436,13 @@ virtqueue_map_desc(VuDev *dev,
 
         if (num_sg == max_num_sg) {
             vu_panic(dev, "virtio: too many descriptors in indirect table");
-            return;
+            return false;
         }
 
         iov[num_sg].iov_base = vu_gpa_to_va(dev, &len, pa);
         if (iov[num_sg].iov_base == NULL) {
             vu_panic(dev, "virtio: invalid address for buffers");
-            return;
+            return false;
         }
         iov[num_sg].iov_len = len;
         num_sg++;
@@ -2451,6 +2451,7 @@ virtqueue_map_desc(VuDev *dev,
     }
 
     *p_num_sg = num_sg;
+    return true;
 }
 
 static void *
@@ -2488,6 +2489,7 @@ vu_queue_map_desc(VuDev *dev, VuVirtq *vq, unsigned int idx, size_t sz)
     if (lduw_le_p(&desc[i].flags) & VRING_DESC_F_INDIRECT) {
         if (ldl_le_p(&desc[i].len) % sizeof(struct vring_desc)) {
             vu_panic(dev, "Invalid size for indirect buffer table");
+            return NULL;
         }
 
         /* loop over the indirect descriptor table */
@@ -2515,22 +2517,29 @@ vu_queue_map_desc(VuDev *dev, VuVirtq *vq, unsigned int idx, size_t sz)
     /* Collect all the descriptors */
     do {
         if (lduw_le_p(&desc[i].flags) & VRING_DESC_F_WRITE) {
-            virtqueue_map_desc(dev, &in_num, iov + out_num,
+            if (!virtqueue_map_desc(dev, &in_num, iov + out_num,
                                VIRTQUEUE_MAX_SIZE - out_num, true,
-                               ldq_le_p(&desc[i].addr), ldl_le_p(&desc[i].len));
+                               ldq_le_p(&desc[i].addr),
+                               ldl_le_p(&desc[i].len))) {
+                return NULL;
+            }
         } else {
             if (in_num) {
                 vu_panic(dev, "Incorrect order for descriptors");
                 return NULL;
             }
-            virtqueue_map_desc(dev, &out_num, iov,
+            if (!virtqueue_map_desc(dev, &out_num, iov,
                                VIRTQUEUE_MAX_SIZE, false,
-                               ldq_le_p(&desc[i].addr), ldl_le_p(&desc[i].len));
+                               ldq_le_p(&desc[i].addr),
+                               ldl_le_p(&desc[i].len))) {
+                return NULL;
+            }
         }
 
         /* If we've got too many, that implies a descriptor loop. */
         if ((in_num + out_num) > max) {
             vu_panic(dev, "Looped descriptor");
+            return NULL;
         }
         rc = virtqueue_read_next_desc(dev, desc, i, max, &i);
     } while (rc == VIRTQUEUE_READ_DESC_MORE);
-- 
MST



^ permalink raw reply related	[flat|nested] 63+ messages in thread

* [PULL v4 48/48] libvhost-user: return on error in vu_log_queue_fill()
  2020-09-29  7:20 [PULL v4 00/48] virtio,pc,acpi: fixes, tests Michael S. Tsirkin
                   ` (45 preceding siblings ...)
  2020-09-29  7:23 ` [PULL v4 47/48] libvhost-user: return early on virtqueue errors Michael S. Tsirkin
@ 2020-09-29  7:23 ` Michael S. Tsirkin
  2020-09-29  7:25 ` [PULL v4 02/48] vhost: switch to use IOTLB v2 format Michael S. Tsirkin
                   ` (4 subsequent siblings)
  51 siblings, 0 replies; 63+ messages in thread
From: Michael S. Tsirkin @ 2020-09-29  7:23 UTC (permalink / raw)
  To: qemu-devel
  Cc: Peter Maydell, Marc-André Lureau,
	Philippe Mathieu-Daudé,
	Stefan Hajnoczi, Raphael Norwitz

From: Stefan Hajnoczi <stefanha@redhat.com>

vu_panic() is not guaranteed to exit the program. Return early when
errors are encountered.

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Message-Id: <20200921113420.154378-3-stefanha@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
 contrib/libvhost-user/libvhost-user.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/contrib/libvhost-user/libvhost-user.c b/contrib/libvhost-user/libvhost-user.c
index 4ebfa4cc40..9f1285b8a1 100644
--- a/contrib/libvhost-user/libvhost-user.c
+++ b/contrib/libvhost-user/libvhost-user.c
@@ -2733,6 +2733,7 @@ vu_log_queue_fill(VuDev *dev, VuVirtq *vq,
     if (lduw_le_p(&desc[i].flags) & VRING_DESC_F_INDIRECT) {
         if (ldl_le_p(&desc[i].len) % sizeof(struct vring_desc)) {
             vu_panic(dev, "Invalid size for indirect buffer table");
+            return;
         }
 
         /* loop over the indirect descriptor table */
-- 
MST



^ permalink raw reply related	[flat|nested] 63+ messages in thread

* [PULL v4 02/48] vhost: switch to use IOTLB v2 format
  2020-09-29  7:20 [PULL v4 00/48] virtio,pc,acpi: fixes, tests Michael S. Tsirkin
                   ` (46 preceding siblings ...)
  2020-09-29  7:23 ` [PULL v4 48/48] libvhost-user: return on error in vu_log_queue_fill() Michael S. Tsirkin
@ 2020-09-29  7:25 ` Michael S. Tsirkin
  2020-09-29  8:13 ` [PULL v4 00/48] virtio,pc,acpi: fixes, tests no-reply
                   ` (3 subsequent siblings)
  51 siblings, 0 replies; 63+ messages in thread
From: Michael S. Tsirkin @ 2020-09-29  7:25 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell, Jason Wang

From: Jason Wang <jasowang@redhat.com>

This patch tries to switch to use new kernel IOTLB format V2. Previous
version may have inconsistent ABI between 32bit and 64bit machines
because of the hole after type field. Refer kernel commit
("429711aec282 vhost: switch to use new message format") for more
information.

To enable this feature, qemu need to use a new ioctl
VHOST_SET_BACKEND_FEATURE with VHOST_BACKEND_F_IOTLB_MSG_V2 bit. A new
vhost setting backend features ops was introduced. And when we try to
set features for vhost dev, we will examine the support of new IOTLB
format and enable it. This process is total transparent to guest,
which means we can have different IOTLB message type in src and dst
during migration.

The conversion of IOTLB message is straightforward, just check the
type and behave accordingly.

Signed-off-by: Jason Wang <jasowang@redhat.com>
Message-Id: <20200907104903.31551-3-jasowang@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
 include/hw/virtio/vhost-backend.h |  2 +
 include/hw/virtio/vhost.h         |  1 +
 hw/virtio/vhost-backend.c         | 88 +++++++++++++++++++++++++------
 hw/virtio/vhost.c                 | 10 ++++
 4 files changed, 84 insertions(+), 17 deletions(-)

diff --git a/include/hw/virtio/vhost-backend.h b/include/hw/virtio/vhost-backend.h
index 8825bd278f..8a6f8e2a7a 100644
--- a/include/hw/virtio/vhost-backend.h
+++ b/include/hw/virtio/vhost-backend.h
@@ -74,6 +74,7 @@ typedef int (*vhost_set_features_op)(struct vhost_dev *dev,
                                      uint64_t features);
 typedef int (*vhost_get_features_op)(struct vhost_dev *dev,
                                      uint64_t *features);
+typedef int (*vhost_set_backend_cap_op)(struct vhost_dev *dev);
 typedef int (*vhost_set_owner_op)(struct vhost_dev *dev);
 typedef int (*vhost_reset_device_op)(struct vhost_dev *dev);
 typedef int (*vhost_get_vq_index_op)(struct vhost_dev *dev, int idx);
@@ -146,6 +147,7 @@ typedef struct VhostOps {
     vhost_set_vring_busyloop_timeout_op vhost_set_vring_busyloop_timeout;
     vhost_set_features_op vhost_set_features;
     vhost_get_features_op vhost_get_features;
+    vhost_set_backend_cap_op vhost_set_backend_cap;
     vhost_set_owner_op vhost_set_owner;
     vhost_reset_device_op vhost_reset_device;
     vhost_get_vq_index_op vhost_get_vq_index;
diff --git a/include/hw/virtio/vhost.h b/include/hw/virtio/vhost.h
index 767a95ec0b..94585067f7 100644
--- a/include/hw/virtio/vhost.h
+++ b/include/hw/virtio/vhost.h
@@ -79,6 +79,7 @@ struct vhost_dev {
     uint64_t backend_features;
     uint64_t protocol_features;
     uint64_t max_queues;
+    uint64_t backend_cap;
     bool started;
     bool log_enabled;
     uint64_t log_size;
diff --git a/hw/virtio/vhost-backend.c b/hw/virtio/vhost-backend.c
index 782b1d67d9..88c8ecc9e0 100644
--- a/hw/virtio/vhost-backend.c
+++ b/hw/virtio/vhost-backend.c
@@ -156,6 +156,28 @@ static int vhost_kernel_set_features(struct vhost_dev *dev,
     return vhost_kernel_call(dev, VHOST_SET_FEATURES, &features);
 }
 
+static int vhost_kernel_set_backend_cap(struct vhost_dev *dev)
+{
+    uint64_t features;
+    uint64_t f = 0x1ULL << VHOST_BACKEND_F_IOTLB_MSG_V2;
+    int r;
+
+    if (vhost_kernel_call(dev, VHOST_GET_BACKEND_FEATURES, &features)) {
+        return 0;
+    }
+
+    features &= f;
+    r = vhost_kernel_call(dev, VHOST_SET_BACKEND_FEATURES,
+                              &features);
+    if (r) {
+        return 0;
+    }
+
+    dev->backend_cap = features;
+
+    return 0;
+}
+
 static int vhost_kernel_get_features(struct vhost_dev *dev,
                                      uint64_t *features)
 {
@@ -195,34 +217,65 @@ static int vhost_kernel_vsock_set_running(struct vhost_dev *dev, int start)
 static void vhost_kernel_iotlb_read(void *opaque)
 {
     struct vhost_dev *dev = opaque;
-    struct vhost_msg msg;
     ssize_t len;
 
-    while ((len = read((uintptr_t)dev->opaque, &msg, sizeof msg)) > 0) {
-        if (len < sizeof msg) {
-            error_report("Wrong vhost message len: %d", (int)len);
-            break;
-        }
-        if (msg.type != VHOST_IOTLB_MSG) {
-            error_report("Unknown vhost iotlb message type");
-            break;
-        }
+    if (dev->backend_cap &
+        (0x1ULL << VHOST_BACKEND_F_IOTLB_MSG_V2)) {
+        struct vhost_msg_v2 msg;
 
-        vhost_backend_handle_iotlb_msg(dev, &msg.iotlb);
+        while ((len = read((uintptr_t)dev->opaque, &msg, sizeof msg)) > 0) {
+            if (len < sizeof msg) {
+                error_report("Wrong vhost message len: %d", (int)len);
+                break;
+            }
+            if (msg.type != VHOST_IOTLB_MSG_V2) {
+                error_report("Unknown vhost iotlb message type");
+                break;
+            }
+
+            vhost_backend_handle_iotlb_msg(dev, &msg.iotlb);
+        }
+    } else {
+        struct vhost_msg msg;
+
+        while ((len = read((uintptr_t)dev->opaque, &msg, sizeof msg)) > 0) {
+            if (len < sizeof msg) {
+                error_report("Wrong vhost message len: %d", (int)len);
+                break;
+            }
+            if (msg.type != VHOST_IOTLB_MSG) {
+                error_report("Unknown vhost iotlb message type");
+                break;
+            }
+
+            vhost_backend_handle_iotlb_msg(dev, &msg.iotlb);
+        }
     }
 }
 
 static int vhost_kernel_send_device_iotlb_msg(struct vhost_dev *dev,
                                               struct vhost_iotlb_msg *imsg)
 {
-    struct vhost_msg msg;
+    if (dev->backend_cap & (1ULL << VHOST_BACKEND_F_IOTLB_MSG_V2)) {
+        struct vhost_msg_v2 msg;
 
-    msg.type = VHOST_IOTLB_MSG;
-    msg.iotlb = *imsg;
+        msg.type = VHOST_IOTLB_MSG_V2;
+        msg.iotlb = *imsg;
 
-    if (write((uintptr_t)dev->opaque, &msg, sizeof msg) != sizeof msg) {
-        error_report("Fail to update device iotlb");
-        return -EFAULT;
+        if (write((uintptr_t)dev->opaque, &msg, sizeof msg) != sizeof msg) {
+            error_report("Fail to update device iotlb");
+            return -EFAULT;
+        }
+    } else {
+        struct vhost_msg msg;
+
+        msg.type = VHOST_IOTLB_MSG;
+        msg.iotlb = *imsg;
+
+        if (write((uintptr_t)dev->opaque, &msg, sizeof msg) != sizeof msg) {
+            error_report("Fail to update device iotlb");
+            return -EFAULT;
+        }
     }
 
     return 0;
@@ -260,6 +313,7 @@ static const VhostOps kernel_ops = {
                                 vhost_kernel_set_vring_busyloop_timeout,
         .vhost_set_features = vhost_kernel_set_features,
         .vhost_get_features = vhost_kernel_get_features,
+        .vhost_set_backend_cap = vhost_kernel_set_backend_cap,
         .vhost_set_owner = vhost_kernel_set_owner,
         .vhost_reset_device = vhost_kernel_reset_device,
         .vhost_get_vq_index = vhost_kernel_get_vq_index,
diff --git a/hw/virtio/vhost.c b/hw/virtio/vhost.c
index 0119516254..8087f200e9 100644
--- a/hw/virtio/vhost.c
+++ b/hw/virtio/vhost.c
@@ -818,7 +818,17 @@ static int vhost_dev_set_features(struct vhost_dev *dev,
     r = dev->vhost_ops->vhost_set_features(dev, features);
     if (r < 0) {
         VHOST_OPS_DEBUG("vhost_set_features failed");
+        goto out;
     }
+    if (dev->vhost_ops->vhost_set_backend_cap) {
+        r = dev->vhost_ops->vhost_set_backend_cap(dev);
+        if (r < 0) {
+            VHOST_OPS_DEBUG("vhost_set_backend_cap failed");
+            goto out;
+        }
+    }
+
+out:
     return r < 0 ? -errno : 0;
 }
 
-- 
MST



^ permalink raw reply related	[flat|nested] 63+ messages in thread

* Re: [PULL v4 00/48] virtio,pc,acpi: fixes, tests
  2020-09-29  7:20 [PULL v4 00/48] virtio,pc,acpi: fixes, tests Michael S. Tsirkin
                   ` (47 preceding siblings ...)
  2020-09-29  7:25 ` [PULL v4 02/48] vhost: switch to use IOTLB v2 format Michael S. Tsirkin
@ 2020-09-29  8:13 ` no-reply
  2020-09-29  8:50 ` no-reply
                   ` (2 subsequent siblings)
  51 siblings, 0 replies; 63+ messages in thread
From: no-reply @ 2020-09-29  8:13 UTC (permalink / raw)
  To: mst; +Cc: peter.maydell, qemu-devel

Patchew URL: https://patchew.org/QEMU/20200929071948.281157-1-mst@redhat.com/



Hi,

This series seems to have some coding style problems. See output below for
more information:

Type: series
Message-id: 20200929071948.281157-1-mst@redhat.com
Subject: [PULL v4 00/48] virtio,pc,acpi: fixes, tests

=== TEST SCRIPT BEGIN ===
#!/bin/bash
git rev-parse base > /dev/null || exit 0
git config --local diff.renamelimit 0
git config --local diff.renames True
git config --local diff.algorithm histogram
./scripts/checkpatch.pl --mailback base..
=== TEST SCRIPT END ===

From https://github.com/patchew-project/qemu
 * [new tag]         patchew/20200929071948.281157-1-mst@redhat.com -> patchew/20200929071948.281157-1-mst@redhat.com
Switched to a new branch 'test'
8faf4c1 libvhost-user: return on error in vu_log_queue_fill()
7755613 libvhost-user: return early on virtqueue errors
213edc5 hw: virtio-pmem: detach the element fromt the virtqueue when error occurs
cda2006 tests/acpi: update golden master DSDT binary table blobs for q35
e6d3dfc piix4: don't reserve hw resources when hotplug is off globally
1063408 Add ACPI DSDT tables for q35 that are being updated by the next patch
3fbd4aa tests/acpi: add newly added acpi DSDT table blob for pci bridge hotplug flag
9abab80 tests/acpi: unit test for 'acpi-pci-hotplug-with-bridge-support' bridge flag
74bfb00 tests/acpi: list added acpi table binary file for pci bridge hotplug test
629eb05 i440fx/acpi: do not add hotplug related amls for cold plugged bridges
4eb9af4 Fix a gap where acpi_pcihp_find_hotplug_bus() returns a non-hotpluggable bus
0d18f5f tests/acpi: add a new ACPI table in order to test root pci hotplug on/off
b60dbf6 tests/acpi: add new unit test to test hotplug off/on feature on the root pci bus
03f41c1 tests/acpi: mark addition of table DSDT.roothp for unit testing root pci hotplug
22d490b vhost-user: save features of multiqueues if chardev is closed
dd6397f qemu-options: document SMBIOS type 11 settings
be08877 hw/smbios: report error if table size is too large
9356e5c hw/smbios: support loading OEM strings values from a file
0cab92d tests: acpi: update acpi blobs with new AML
80a8f41 x68: acpi: trigger SMI before sending hotplug Notify event to OSPM
fdb1c57 x86: acpi: introduce the PCI0.SMI0 ACPI device
289214b x86: acpi: introduce AcpiPmInfo::smi_on_cpuhp
0aa4ef3 x86: ich9: expose "smi_negotiated_features" as a QOM property
396eade tests: acpi: mark to be changed tables in bios-tables-test-allowed-diff
c3ad1d9 acpi: add aml_land() and aml_break() primitives
1a4174c x86: cpuhp: refuse cpu hot-unplug request earlier if not supported
d3430c3 x86: cpuhp: prevent guest crash on CPU hotplug when broadcast SMI is in use
ef6eae6 x86: lpc9: let firmware negotiate 'CPU hotplug with SMI' features
0dc5e2f virtio: update MemoryRegionCaches when guest set bad features
2eb7962 vhost-vsock-ccw: force virtio version 1
8a17dc6 vhost-user-vsock-pci: force virtio version 1
9cce71d vhost-vsock-pci: force virtio version 1
2f9be81 virtio: skip legacy support check on machine types less than 5.1
b6724f6 configure: Fix build dependencies with vhost-vdpa.
6009552 vhost-vdpa: add trace-events
88de0b1 util/hexdump: introduce qemu_hexdump_line()
3e5338d virtio-pmem-pci: force virtio version 1
45b3828 virtio-iommu-pci: force virtio version 1
d6c4ca5 virtio-iommu: Check gtrees are non null before destroying them
592378f cphp: remove deprecated cpu-add command(s)
71ca9ef tests/qtest/vhost-user-test: prepare the tests for adding new dev class
369b395 vhost: check queue state in the vhost_dev_set_log routine
1efaa40 vhost: recheck dev state in the vhost_migration_log routine
a84d978 pc: fix auto_enable_numa_with_memhp/auto_enable_numa_with_memdev for the 5.0 machine
7c21a29 virtio-mem: detach the element from the virtqueue when error occurs
634b24d vhost-vdpa: batch updating IOTLB mappings
c9626c9 vhost: switch to use IOTLB v2 format
95ec3ff linux headers: sync to 5.9-rc4

=== OUTPUT BEGIN ===
1/48 Checking commit 95ec3ff3afd6 (linux headers: sync to 5.9-rc4)
2/48 Checking commit c9626c9533ef (vhost: switch to use IOTLB v2 format)
3/48 Checking commit 634b24dca28e (vhost-vdpa: batch updating IOTLB mappings)
4/48 Checking commit 7c21a29dabdd (virtio-mem: detach the element from the virtqueue when error occurs)
5/48 Checking commit a84d978e98c9 (pc: fix auto_enable_numa_with_memhp/auto_enable_numa_with_memdev for the 5.0 machine)
6/48 Checking commit 1efaa40a5425 (vhost: recheck dev state in the vhost_migration_log routine)
7/48 Checking commit 369b39525b1b (vhost: check queue state in the vhost_dev_set_log routine)
8/48 Checking commit 71ca9efda220 (tests/qtest/vhost-user-test: prepare the tests for adding new dev class)
9/48 Checking commit 592378f85dbb (cphp: remove deprecated cpu-add command(s))
10/48 Checking commit d6c4ca523e90 (virtio-iommu: Check gtrees are non null before destroying them)
11/48 Checking commit 45b382853635 (virtio-iommu-pci: force virtio version 1)
12/48 Checking commit 3e5338d41957 (virtio-pmem-pci: force virtio version 1)
13/48 Checking commit 88de0b1a3204 (util/hexdump: introduce qemu_hexdump_line())
14/48 Checking commit 600955249473 (vhost-vdpa: add trace-events)
15/48 Checking commit b6724f619409 (configure: Fix build dependencies with vhost-vdpa.)
16/48 Checking commit 2f9be819901a (virtio: skip legacy support check on machine types less than 5.1)
17/48 Checking commit 9cce71d9be4f (vhost-vsock-pci: force virtio version 1)
18/48 Checking commit 8a17dc630f04 (vhost-user-vsock-pci: force virtio version 1)
19/48 Checking commit 2eb7962be08e (vhost-vsock-ccw: force virtio version 1)
20/48 Checking commit 0dc5e2f7d63b (virtio: update MemoryRegionCaches when guest set bad features)
21/48 Checking commit ef6eae68bd24 (x86: lpc9: let firmware negotiate 'CPU hotplug with SMI' features)
22/48 Checking commit d3430c31fa92 (x86: cpuhp: prevent guest crash on CPU hotplug when broadcast SMI is in use)
23/48 Checking commit 1a4174c05a04 (x86: cpuhp: refuse cpu hot-unplug request earlier if not supported)
24/48 Checking commit c3ad1d9c627f (acpi: add aml_land() and aml_break() primitives)
WARNING: Block comments use a leading /* on a separate line
#27: FILE: hw/acpi/aml-build.c:562:
+    Aml *var = aml_opcode(0x90 /* LAndOp */);

WARNING: Block comments use a leading /* on a separate line
#43: FILE: hw/acpi/aml-build.c:644:
+    Aml *var = aml_opcode(0xa5 /* BreakOp */);

total: 0 errors, 2 warnings, 42 lines checked

Patch 24/48 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
25/48 Checking commit 396eade8a620 (tests: acpi: mark to be changed tables in bios-tables-test-allowed-diff)
26/48 Checking commit 0aa4ef3f3dc1 (x86: ich9: expose "smi_negotiated_features" as a QOM property)
27/48 Checking commit 289214bd8c4f (x86: acpi: introduce AcpiPmInfo::smi_on_cpuhp)
28/48 Checking commit fdb1c57bd2c7 (x86: acpi: introduce the PCI0.SMI0 ACPI device)
29/48 Checking commit 80a8f41d5cbd (x68: acpi: trigger SMI before sending hotplug Notify event to OSPM)
30/48 Checking commit 0cab92dce2d1 (tests: acpi: update acpi blobs with new AML)
31/48 Checking commit 9356e5c6fd0b (hw/smbios: support loading OEM strings values from a file)
32/48 Checking commit be08877a8d28 (hw/smbios: report error if table size is too large)
33/48 Checking commit dd6397f4c9dd (qemu-options: document SMBIOS type 11 settings)
34/48 Checking commit 22d490b7bc7c (vhost-user: save features of multiqueues if chardev is closed)
ERROR: spaces required around that '-' (ctx:WxV)
#44: FILE: net/vhost-user.c:238:
+    for (i = queues -1; i >= 0; i--) {
                     ^

total: 1 errors, 0 warnings, 22 lines checked

Patch 34/48 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.

35/48 Checking commit 03f41c150f3c (tests/acpi: mark addition of table DSDT.roothp for unit testing root pci hotplug)
36/48 Checking commit b60dbf6dfe1d (tests/acpi: add new unit test to test hotplug off/on feature on the root pci bus)
37/48 Checking commit 0d18f5f38d10 (tests/acpi: add a new ACPI table in order to test root pci hotplug on/off)
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#574: 
new file mode 100644

total: 0 errors, 1 warnings, 1 lines checked

Patch 37/48 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
38/48 Checking commit 4eb9af406754 (Fix a gap where acpi_pcihp_find_hotplug_bus() returns a non-hotpluggable bus)
39/48 Checking commit 629eb0561c20 (i440fx/acpi: do not add hotplug related amls for cold plugged bridges)
40/48 Checking commit 74bfb0010fc3 (tests/acpi: list added acpi table binary file for pci bridge hotplug test)
41/48 Checking commit 9abab8098143 (tests/acpi: unit test for 'acpi-pci-hotplug-with-bridge-support' bridge flag)
42/48 Checking commit 3fbd4aabe5f1 (tests/acpi: add newly added acpi DSDT table blob for pci bridge hotplug flag)
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#605: 
new file mode 100644

total: 0 errors, 1 warnings, 1 lines checked

Patch 42/48 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
43/48 Checking commit 10634089cc39 (Add ACPI DSDT tables for q35 that are being updated by the next patch)
44/48 Checking commit e6d3dfcfbd81 (piix4: don't reserve hw resources when hotplug is off globally)
45/48 Checking commit cda2006eded0 (tests/acpi: update golden master DSDT binary table blobs for q35)
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#85: 
new file mode 100644

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/diff-aml.sh and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/disassemle-aml.py and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/disassemle-aml.py and tests/bios-tables-test.c.orig found

ERROR: please use python3 interpreter
#2621: FILE: tests/data/acpi/disassemle-aml.py:1:
+#!/usr/bin/python

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/microvm/APIC.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/microvm/APIC.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#2652: FILE: tests/data/acpi/microvm/APIC.dsl:5:
+ * $

ERROR: trailing whitespace
#2699: FILE: tests/data/acpi/microvm/APIC.dsl:52:
+    0000: 41 50 49 43 46 00 00 00 01 D7 42 4F 43 48 53 20  // APICF.....BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/microvm/DSDT.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/microvm/DSDT.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#2714: FILE: tests/data/acpi/microvm/DSDT.dsl:5:
+ * $

ERROR: trailing whitespace
#2823: FILE: tests/data/acpi/microvm/DSDT.dsl:114:
+            0x05, $

ERROR: trailing whitespace
#2824: FILE: tests/data/acpi/microvm/DSDT.dsl:115:
+            Zero, $

ERROR: trailing whitespace
#2825: FILE: tests/data/acpi/microvm/DSDT.dsl:116:
+            Zero, $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/microvm/FACP.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/microvm/FACP.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#2841: FILE: tests/data/acpi/microvm/FACP.dsl:5:
+ * $

ERROR: trailing whitespace
#3016: FILE: tests/data/acpi/microvm/FACP.dsl:180:
+    0000: 46 41 43 50 0C 01 00 00 05 7E 42 4F 43 48 53 20  // FACP.....~BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/APIC.acpihmat.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/APIC.acpihmat.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#3043: FILE: tests/data/acpi/pc/APIC.acpihmat.dsl:5:
+ * $

ERROR: trailing whitespace
#3143: FILE: tests/data/acpi/pc/APIC.acpihmat.dsl:105:
+    0000: 41 50 49 43 80 00 00 00 01 DA 42 4F 43 48 53 20  // APIC......BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/APIC.bridge and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/APIC.bridge.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/APIC.bridge.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#3165: FILE: tests/data/acpi/pc/APIC.bridge.dsl:5:
+ * $

ERROR: trailing whitespace
#3257: FILE: tests/data/acpi/pc/APIC.bridge.dsl:97:
+    0000: 41 50 49 43 78 00 00 00 01 ED 42 4F 43 48 53 20  // APICx.....BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/APIC.cphp.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/APIC.cphp.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#3275: FILE: tests/data/acpi/pc/APIC.cphp.dsl:5:
+ * $

ERROR: trailing whitespace
#3407: FILE: tests/data/acpi/pc/APIC.cphp.dsl:137:
+    0000: 41 50 49 43 A0 00 00 00 01 7B 42 4F 43 48 53 20  // APIC.....{BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/APIC.dimmpxm.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/APIC.dimmpxm.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#3427: FILE: tests/data/acpi/pc/APIC.dimmpxm.dsl:5:
+ * $

ERROR: trailing whitespace
#3543: FILE: tests/data/acpi/pc/APIC.dimmpxm.dsl:121:
+    0000: 41 50 49 43 90 00 00 00 01 AE 42 4F 43 48 53 20  // APIC......BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/APIC.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/APIC.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#3562: FILE: tests/data/acpi/pc/APIC.dsl:5:
+ * $

ERROR: trailing whitespace
#3654: FILE: tests/data/acpi/pc/APIC.dsl:97:
+    0000: 41 50 49 43 78 00 00 00 01 ED 42 4F 43 48 53 20  // APICx.....BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/APIC.hpbridge and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/APIC.ipmikcs and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/APIC.ipmikcs.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/APIC.ipmikcs.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#3680: FILE: tests/data/acpi/pc/APIC.ipmikcs.dsl:5:
+ * $

ERROR: trailing whitespace
#3772: FILE: tests/data/acpi/pc/APIC.ipmikcs.dsl:97:
+    0000: 41 50 49 43 78 00 00 00 01 ED 42 4F 43 48 53 20  // APICx.....BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/APIC.memhp and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/APIC.memhp.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/APIC.memhp.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#3794: FILE: tests/data/acpi/pc/APIC.memhp.dsl:5:
+ * $

ERROR: trailing whitespace
#3886: FILE: tests/data/acpi/pc/APIC.memhp.dsl:97:
+    0000: 41 50 49 43 78 00 00 00 01 ED 42 4F 43 48 53 20  // APICx.....BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/APIC.numamem and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/APIC.numamem.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/APIC.numamem.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#3908: FILE: tests/data/acpi/pc/APIC.numamem.dsl:5:
+ * $

ERROR: trailing whitespace
#4000: FILE: tests/data/acpi/pc/APIC.numamem.dsl:97:
+    0000: 41 50 49 43 78 00 00 00 01 ED 42 4F 43 48 53 20  // APICx.....BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/APIC.roothp and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/DSDT.acpihmat.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/DSDT.acpihmat.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#4022: FILE: tests/data/acpi/pc/DSDT.acpihmat.dsl:5:
+ * $

ERROR: trailing whitespace
#4083: FILE: tests/data/acpi/pc/DSDT.acpihmat.dsl:66:
+                VEND,   32, $

ERROR: trailing whitespace
#4187: FILE: tests/data/acpi/pc/DSDT.acpihmat.dsl:170:
+                    Zero, $

ERROR: trailing whitespace
#4188: FILE: tests/data/acpi/pc/DSDT.acpihmat.dsl:171:
+                    0x05, $

ERROR: trailing whitespace
#4189: FILE: tests/data/acpi/pc/DSDT.acpihmat.dsl:172:
+                    0x4F, $

ERROR: trailing whitespace
#4190: FILE: tests/data/acpi/pc/DSDT.acpihmat.dsl:173:
+                    0x30, $

ERROR: trailing whitespace
#4191: FILE: tests/data/acpi/pc/DSDT.acpihmat.dsl:174:
+                    One, $

ERROR: trailing whitespace
#4192: FILE: tests/data/acpi/pc/DSDT.acpihmat.dsl:175:
+                    0xAF, $

ERROR: trailing whitespace
#4193: FILE: tests/data/acpi/pc/DSDT.acpihmat.dsl:176:
+                    0x02, $

ERROR: trailing whitespace
#4194: FILE: tests/data/acpi/pc/DSDT.acpihmat.dsl:177:
+                    0x25, $

ERROR: trailing whitespace
#4195: FILE: tests/data/acpi/pc/DSDT.acpihmat.dsl:178:
+                    0x02, $

ERROR: trailing whitespace
#4196: FILE: tests/data/acpi/pc/DSDT.acpihmat.dsl:179:
+                    0x12, $

ERROR: trailing whitespace
#4197: FILE: tests/data/acpi/pc/DSDT.acpihmat.dsl:180:
+                    0x1B, $

ERROR: trailing whitespace
#4198: FILE: tests/data/acpi/pc/DSDT.acpihmat.dsl:181:
+                    0xFF, $

ERROR: trailing whitespace
#4199: FILE: tests/data/acpi/pc/DSDT.acpihmat.dsl:182:
+                    0x6C, $

ERROR: trailing whitespace
#4200: FILE: tests/data/acpi/pc/DSDT.acpihmat.dsl:183:
+                    0xF6, $

ERROR: trailing whitespace
#4201: FILE: tests/data/acpi/pc/DSDT.acpihmat.dsl:184:
+                    0x0F, $

ERROR: trailing whitespace
#4272: FILE: tests/data/acpi/pc/DSDT.acpihmat.dsl:255:
+            PCIU,   32, $

ERROR: trailing whitespace
#4315: FILE: tests/data/acpi/pc/DSDT.acpihmat.dsl:298:
+                                Zero, $

ERROR: trailing whitespace
#4316: FILE: tests/data/acpi/pc/DSDT.acpihmat.dsl:299:
+                                Zero, $

ERROR: trailing whitespace
#4317: FILE: tests/data/acpi/pc/DSDT.acpihmat.dsl:300:
+                                LNKD, $

ERROR: trailing whitespace
#4328: FILE: tests/data/acpi/pc/DSDT.acpihmat.dsl:311:
+                                    Zero, $

ERROR: trailing whitespace
#4329: FILE: tests/data/acpi/pc/DSDT.acpihmat.dsl:312:
+                                    Zero, $

ERROR: trailing whitespace
#4330: FILE: tests/data/acpi/pc/DSDT.acpihmat.dsl:313:
+                                    LNKS, $

ERROR: trailing whitespace
#4338: FILE: tests/data/acpi/pc/DSDT.acpihmat.dsl:321:
+                                    Zero, $

ERROR: trailing whitespace
#4339: FILE: tests/data/acpi/pc/DSDT.acpihmat.dsl:322:
+                                    Zero, $

ERROR: trailing whitespace
#4340: FILE: tests/data/acpi/pc/DSDT.acpihmat.dsl:323:
+                                    LNKA, $

ERROR: trailing whitespace
#4350: FILE: tests/data/acpi/pc/DSDT.acpihmat.dsl:333:
+                                Zero, $

ERROR: trailing whitespace
#4351: FILE: tests/data/acpi/pc/DSDT.acpihmat.dsl:334:
+                                Zero, $

ERROR: trailing whitespace
#4352: FILE: tests/data/acpi/pc/DSDT.acpihmat.dsl:335:
+                                LNKB, $

ERROR: trailing whitespace
#4361: FILE: tests/data/acpi/pc/DSDT.acpihmat.dsl:344:
+                                Zero, $

ERROR: trailing whitespace
#4362: FILE: tests/data/acpi/pc/DSDT.acpihmat.dsl:345:
+                                Zero, $

ERROR: trailing whitespace
#4363: FILE: tests/data/acpi/pc/DSDT.acpihmat.dsl:346:
+                                LNKC, $

ERROR: trailing whitespace
#4380: FILE: tests/data/acpi/pc/DSDT.acpihmat.dsl:363:
+            PRQ0,   8, $

ERROR: trailing whitespace
#4381: FILE: tests/data/acpi/pc/DSDT.acpihmat.dsl:364:
+            PRQ1,   8, $

ERROR: trailing whitespace
#4382: FILE: tests/data/acpi/pc/DSDT.acpihmat.dsl:365:
+            PRQ2,   8, $

ERROR: trailing whitespace
#4604: FILE: tests/data/acpi/pc/DSDT.acpihmat.dsl:587:
+                Offset (0x04), $

ERROR: trailing whitespace
#4605: FILE: tests/data/acpi/pc/DSDT.acpihmat.dsl:588:
+                CPEN,   1, $

ERROR: trailing whitespace
#4606: FILE: tests/data/acpi/pc/DSDT.acpihmat.dsl:589:
+                CINS,   1, $

ERROR: trailing whitespace
#4607: FILE: tests/data/acpi/pc/DSDT.acpihmat.dsl:590:
+                CRMV,   1, $

ERROR: trailing whitespace
#4608: FILE: tests/data/acpi/pc/DSDT.acpihmat.dsl:591:
+                CEJ0,   1, $

ERROR: trailing whitespace
#4609: FILE: tests/data/acpi/pc/DSDT.acpihmat.dsl:592:
+                Offset (0x05), $

ERROR: trailing whitespace
#4615: FILE: tests/data/acpi/pc/DSDT.acpihmat.dsl:598:
+                CSEL,   32, $

ERROR: trailing whitespace
#4616: FILE: tests/data/acpi/pc/DSDT.acpihmat.dsl:599:
+                Offset (0x08), $

ERROR: trailing whitespace
#4774: FILE: tests/data/acpi/pc/DSDT.acpihmat.dsl:757:
+            MRBL,   32, $

ERROR: trailing whitespace
#4775: FILE: tests/data/acpi/pc/DSDT.acpihmat.dsl:758:
+            MRBH,   32, $

ERROR: trailing whitespace
#4776: FILE: tests/data/acpi/pc/DSDT.acpihmat.dsl:759:
+            MRLL,   32, $

ERROR: trailing whitespace
#4777: FILE: tests/data/acpi/pc/DSDT.acpihmat.dsl:760:
+            MRLH,   32, $

ERROR: trailing whitespace
#4783: FILE: tests/data/acpi/pc/DSDT.acpihmat.dsl:766:
+            Offset (0x14), $

ERROR: trailing whitespace
#4784: FILE: tests/data/acpi/pc/DSDT.acpihmat.dsl:767:
+            MES,    1, $

ERROR: trailing whitespace
#4785: FILE: tests/data/acpi/pc/DSDT.acpihmat.dsl:768:
+            MINS,   1, $

ERROR: trailing whitespace
#4786: FILE: tests/data/acpi/pc/DSDT.acpihmat.dsl:769:
+            MRMV,   1, $

ERROR: trailing whitespace
#4792: FILE: tests/data/acpi/pc/DSDT.acpihmat.dsl:775:
+            MSEL,   32, $

ERROR: trailing whitespace
#4793: FILE: tests/data/acpi/pc/DSDT.acpihmat.dsl:776:
+            MOEV,   32, $

ERROR: trailing whitespace
#5121: FILE: tests/data/acpi/pc/DSDT.acpihmat.dsl:1104:
+            One, $

ERROR: trailing whitespace
#5122: FILE: tests/data/acpi/pc/DSDT.acpihmat.dsl:1105:
+            One, $

ERROR: trailing whitespace
#5123: FILE: tests/data/acpi/pc/DSDT.acpihmat.dsl:1106:
+            Zero, $

ERROR: trailing whitespace
#5128: FILE: tests/data/acpi/pc/DSDT.acpihmat.dsl:1111:
+            0x02, $

ERROR: trailing whitespace
#5129: FILE: tests/data/acpi/pc/DSDT.acpihmat.dsl:1112:
+            0x02, $

ERROR: trailing whitespace
#5130: FILE: tests/data/acpi/pc/DSDT.acpihmat.dsl:1113:
+            Zero, $

ERROR: trailing whitespace
#5135: FILE: tests/data/acpi/pc/DSDT.acpihmat.dsl:1118:
+            Zero, $

ERROR: trailing whitespace
#5136: FILE: tests/data/acpi/pc/DSDT.acpihmat.dsl:1119:
+            Zero, $

ERROR: trailing whitespace
#5137: FILE: tests/data/acpi/pc/DSDT.acpihmat.dsl:1120:
+            Zero, $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/DSDT.bridge.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/DSDT.bridge.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#5647: FILE: tests/data/acpi/pc/DSDT.bridge.dsl:5:
+ * $

ERROR: trailing whitespace
#5708: FILE: tests/data/acpi/pc/DSDT.bridge.dsl:66:
+                VEND,   32, $

ERROR: trailing whitespace
#5812: FILE: tests/data/acpi/pc/DSDT.bridge.dsl:170:
+                    Zero, $

ERROR: trailing whitespace
#5813: FILE: tests/data/acpi/pc/DSDT.bridge.dsl:171:
+                    0x05, $

ERROR: trailing whitespace
#5814: FILE: tests/data/acpi/pc/DSDT.bridge.dsl:172:
+                    0x4F, $

ERROR: trailing whitespace
#5815: FILE: tests/data/acpi/pc/DSDT.bridge.dsl:173:
+                    0x30, $

ERROR: trailing whitespace
#5816: FILE: tests/data/acpi/pc/DSDT.bridge.dsl:174:
+                    One, $

ERROR: trailing whitespace
#5817: FILE: tests/data/acpi/pc/DSDT.bridge.dsl:175:
+                    0xAF, $

ERROR: trailing whitespace
#5818: FILE: tests/data/acpi/pc/DSDT.bridge.dsl:176:
+                    0x02, $

ERROR: trailing whitespace
#5819: FILE: tests/data/acpi/pc/DSDT.bridge.dsl:177:
+                    0x25, $

ERROR: trailing whitespace
#5820: FILE: tests/data/acpi/pc/DSDT.bridge.dsl:178:
+                    0x02, $

ERROR: trailing whitespace
#5821: FILE: tests/data/acpi/pc/DSDT.bridge.dsl:179:
+                    0x12, $

ERROR: trailing whitespace
#5822: FILE: tests/data/acpi/pc/DSDT.bridge.dsl:180:
+                    0x1B, $

ERROR: trailing whitespace
#5823: FILE: tests/data/acpi/pc/DSDT.bridge.dsl:181:
+                    0xFF, $

ERROR: trailing whitespace
#5824: FILE: tests/data/acpi/pc/DSDT.bridge.dsl:182:
+                    0x6C, $

ERROR: trailing whitespace
#5825: FILE: tests/data/acpi/pc/DSDT.bridge.dsl:183:
+                    0xF6, $

ERROR: trailing whitespace
#5826: FILE: tests/data/acpi/pc/DSDT.bridge.dsl:184:
+                    0x0F, $

ERROR: trailing whitespace
#5897: FILE: tests/data/acpi/pc/DSDT.bridge.dsl:255:
+            PCIU,   32, $

ERROR: trailing whitespace
#5940: FILE: tests/data/acpi/pc/DSDT.bridge.dsl:298:
+                                Zero, $

ERROR: trailing whitespace
#5941: FILE: tests/data/acpi/pc/DSDT.bridge.dsl:299:
+                                Zero, $

ERROR: trailing whitespace
#5942: FILE: tests/data/acpi/pc/DSDT.bridge.dsl:300:
+                                LNKD, $

ERROR: trailing whitespace
#5953: FILE: tests/data/acpi/pc/DSDT.bridge.dsl:311:
+                                    Zero, $

ERROR: trailing whitespace
#5954: FILE: tests/data/acpi/pc/DSDT.bridge.dsl:312:
+                                    Zero, $

ERROR: trailing whitespace
#5955: FILE: tests/data/acpi/pc/DSDT.bridge.dsl:313:
+                                    LNKS, $

ERROR: trailing whitespace
#5963: FILE: tests/data/acpi/pc/DSDT.bridge.dsl:321:
+                                    Zero, $

ERROR: trailing whitespace
#5964: FILE: tests/data/acpi/pc/DSDT.bridge.dsl:322:
+                                    Zero, $

ERROR: trailing whitespace
#5965: FILE: tests/data/acpi/pc/DSDT.bridge.dsl:323:
+                                    LNKA, $

ERROR: trailing whitespace
#5975: FILE: tests/data/acpi/pc/DSDT.bridge.dsl:333:
+                                Zero, $

ERROR: trailing whitespace
#5976: FILE: tests/data/acpi/pc/DSDT.bridge.dsl:334:
+                                Zero, $

ERROR: trailing whitespace
#5977: FILE: tests/data/acpi/pc/DSDT.bridge.dsl:335:
+                                LNKB, $

ERROR: trailing whitespace
#5986: FILE: tests/data/acpi/pc/DSDT.bridge.dsl:344:
+                                Zero, $

ERROR: trailing whitespace
#5987: FILE: tests/data/acpi/pc/DSDT.bridge.dsl:345:
+                                Zero, $

ERROR: trailing whitespace
#5988: FILE: tests/data/acpi/pc/DSDT.bridge.dsl:346:
+                                LNKC, $

ERROR: trailing whitespace
#6005: FILE: tests/data/acpi/pc/DSDT.bridge.dsl:363:
+            PRQ0,   8, $

ERROR: trailing whitespace
#6006: FILE: tests/data/acpi/pc/DSDT.bridge.dsl:364:
+            PRQ1,   8, $

ERROR: trailing whitespace
#6007: FILE: tests/data/acpi/pc/DSDT.bridge.dsl:365:
+            PRQ2,   8, $

ERROR: trailing whitespace
#6229: FILE: tests/data/acpi/pc/DSDT.bridge.dsl:587:
+                Offset (0x04), $

ERROR: trailing whitespace
#6230: FILE: tests/data/acpi/pc/DSDT.bridge.dsl:588:
+                CPEN,   1, $

ERROR: trailing whitespace
#6231: FILE: tests/data/acpi/pc/DSDT.bridge.dsl:589:
+                CINS,   1, $

ERROR: trailing whitespace
#6232: FILE: tests/data/acpi/pc/DSDT.bridge.dsl:590:
+                CRMV,   1, $

ERROR: trailing whitespace
#6233: FILE: tests/data/acpi/pc/DSDT.bridge.dsl:591:
+                CEJ0,   1, $

ERROR: trailing whitespace
#6234: FILE: tests/data/acpi/pc/DSDT.bridge.dsl:592:
+                Offset (0x05), $

ERROR: trailing whitespace
#6240: FILE: tests/data/acpi/pc/DSDT.bridge.dsl:598:
+                CSEL,   32, $

ERROR: trailing whitespace
#6241: FILE: tests/data/acpi/pc/DSDT.bridge.dsl:599:
+                Offset (0x08), $

ERROR: trailing whitespace
#6446: FILE: tests/data/acpi/pc/DSDT.bridge.dsl:804:
+            One, $

ERROR: trailing whitespace
#6447: FILE: tests/data/acpi/pc/DSDT.bridge.dsl:805:
+            One, $

ERROR: trailing whitespace
#6448: FILE: tests/data/acpi/pc/DSDT.bridge.dsl:806:
+            Zero, $

ERROR: trailing whitespace
#6453: FILE: tests/data/acpi/pc/DSDT.bridge.dsl:811:
+            0x02, $

ERROR: trailing whitespace
#6454: FILE: tests/data/acpi/pc/DSDT.bridge.dsl:812:
+            0x02, $

ERROR: trailing whitespace
#6455: FILE: tests/data/acpi/pc/DSDT.bridge.dsl:813:
+            Zero, $

ERROR: trailing whitespace
#6460: FILE: tests/data/acpi/pc/DSDT.bridge.dsl:818:
+            Zero, $

ERROR: trailing whitespace
#6461: FILE: tests/data/acpi/pc/DSDT.bridge.dsl:819:
+            Zero, $

ERROR: trailing whitespace
#6462: FILE: tests/data/acpi/pc/DSDT.bridge.dsl:820:
+            Zero, $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/DSDT.cphp.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/DSDT.cphp.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#7453: FILE: tests/data/acpi/pc/DSDT.cphp.dsl:5:
+ * $

ERROR: trailing whitespace
#7514: FILE: tests/data/acpi/pc/DSDT.cphp.dsl:66:
+                VEND,   32, $

ERROR: trailing whitespace
#7618: FILE: tests/data/acpi/pc/DSDT.cphp.dsl:170:
+                    Zero, $

ERROR: trailing whitespace
#7619: FILE: tests/data/acpi/pc/DSDT.cphp.dsl:171:
+                    0x05, $

ERROR: trailing whitespace
#7620: FILE: tests/data/acpi/pc/DSDT.cphp.dsl:172:
+                    0x4F, $

ERROR: trailing whitespace
#7621: FILE: tests/data/acpi/pc/DSDT.cphp.dsl:173:
+                    0x30, $

ERROR: trailing whitespace
#7622: FILE: tests/data/acpi/pc/DSDT.cphp.dsl:174:
+                    One, $

ERROR: trailing whitespace
#7623: FILE: tests/data/acpi/pc/DSDT.cphp.dsl:175:
+                    0xAF, $

ERROR: trailing whitespace
#7624: FILE: tests/data/acpi/pc/DSDT.cphp.dsl:176:
+                    0x02, $

ERROR: trailing whitespace
#7625: FILE: tests/data/acpi/pc/DSDT.cphp.dsl:177:
+                    0x25, $

ERROR: trailing whitespace
#7626: FILE: tests/data/acpi/pc/DSDT.cphp.dsl:178:
+                    0x02, $

ERROR: trailing whitespace
#7627: FILE: tests/data/acpi/pc/DSDT.cphp.dsl:179:
+                    0x12, $

ERROR: trailing whitespace
#7628: FILE: tests/data/acpi/pc/DSDT.cphp.dsl:180:
+                    0x1B, $

ERROR: trailing whitespace
#7629: FILE: tests/data/acpi/pc/DSDT.cphp.dsl:181:
+                    0xFF, $

ERROR: trailing whitespace
#7630: FILE: tests/data/acpi/pc/DSDT.cphp.dsl:182:
+                    0x6C, $

ERROR: trailing whitespace
#7631: FILE: tests/data/acpi/pc/DSDT.cphp.dsl:183:
+                    0xF6, $

ERROR: trailing whitespace
#7632: FILE: tests/data/acpi/pc/DSDT.cphp.dsl:184:
+                    0x0F, $

ERROR: trailing whitespace
#7703: FILE: tests/data/acpi/pc/DSDT.cphp.dsl:255:
+            PCIU,   32, $

ERROR: trailing whitespace
#7746: FILE: tests/data/acpi/pc/DSDT.cphp.dsl:298:
+                                Zero, $

ERROR: trailing whitespace
#7747: FILE: tests/data/acpi/pc/DSDT.cphp.dsl:299:
+                                Zero, $

ERROR: trailing whitespace
#7748: FILE: tests/data/acpi/pc/DSDT.cphp.dsl:300:
+                                LNKD, $

ERROR: trailing whitespace
#7759: FILE: tests/data/acpi/pc/DSDT.cphp.dsl:311:
+                                    Zero, $

ERROR: trailing whitespace
#7760: FILE: tests/data/acpi/pc/DSDT.cphp.dsl:312:
+                                    Zero, $

ERROR: trailing whitespace
#7761: FILE: tests/data/acpi/pc/DSDT.cphp.dsl:313:
+                                    LNKS, $

ERROR: trailing whitespace
#7769: FILE: tests/data/acpi/pc/DSDT.cphp.dsl:321:
+                                    Zero, $

ERROR: trailing whitespace
#7770: FILE: tests/data/acpi/pc/DSDT.cphp.dsl:322:
+                                    Zero, $

ERROR: trailing whitespace
#7771: FILE: tests/data/acpi/pc/DSDT.cphp.dsl:323:
+                                    LNKA, $

ERROR: trailing whitespace
#7781: FILE: tests/data/acpi/pc/DSDT.cphp.dsl:333:
+                                Zero, $

ERROR: trailing whitespace
#7782: FILE: tests/data/acpi/pc/DSDT.cphp.dsl:334:
+                                Zero, $

ERROR: trailing whitespace
#7783: FILE: tests/data/acpi/pc/DSDT.cphp.dsl:335:
+                                LNKB, $

ERROR: trailing whitespace
#7792: FILE: tests/data/acpi/pc/DSDT.cphp.dsl:344:
+                                Zero, $

ERROR: trailing whitespace
#7793: FILE: tests/data/acpi/pc/DSDT.cphp.dsl:345:
+                                Zero, $

ERROR: trailing whitespace
#7794: FILE: tests/data/acpi/pc/DSDT.cphp.dsl:346:
+                                LNKC, $

ERROR: trailing whitespace
#7811: FILE: tests/data/acpi/pc/DSDT.cphp.dsl:363:
+            PRQ0,   8, $

ERROR: trailing whitespace
#7812: FILE: tests/data/acpi/pc/DSDT.cphp.dsl:364:
+            PRQ1,   8, $

ERROR: trailing whitespace
#7813: FILE: tests/data/acpi/pc/DSDT.cphp.dsl:365:
+            PRQ2,   8, $

ERROR: trailing whitespace
#8035: FILE: tests/data/acpi/pc/DSDT.cphp.dsl:587:
+                Offset (0x04), $

ERROR: trailing whitespace
#8036: FILE: tests/data/acpi/pc/DSDT.cphp.dsl:588:
+                CPEN,   1, $

ERROR: trailing whitespace
#8037: FILE: tests/data/acpi/pc/DSDT.cphp.dsl:589:
+                CINS,   1, $

ERROR: trailing whitespace
#8038: FILE: tests/data/acpi/pc/DSDT.cphp.dsl:590:
+                CRMV,   1, $

ERROR: trailing whitespace
#8039: FILE: tests/data/acpi/pc/DSDT.cphp.dsl:591:
+                CEJ0,   1, $

ERROR: trailing whitespace
#8040: FILE: tests/data/acpi/pc/DSDT.cphp.dsl:592:
+                Offset (0x05), $

ERROR: trailing whitespace
#8046: FILE: tests/data/acpi/pc/DSDT.cphp.dsl:598:
+                CSEL,   32, $

ERROR: trailing whitespace
#8047: FILE: tests/data/acpi/pc/DSDT.cphp.dsl:599:
+                Offset (0x08), $

ERROR: trailing whitespace
#8399: FILE: tests/data/acpi/pc/DSDT.cphp.dsl:951:
+            One, $

ERROR: trailing whitespace
#8400: FILE: tests/data/acpi/pc/DSDT.cphp.dsl:952:
+            One, $

ERROR: trailing whitespace
#8401: FILE: tests/data/acpi/pc/DSDT.cphp.dsl:953:
+            Zero, $

ERROR: trailing whitespace
#8406: FILE: tests/data/acpi/pc/DSDT.cphp.dsl:958:
+            0x02, $

ERROR: trailing whitespace
#8407: FILE: tests/data/acpi/pc/DSDT.cphp.dsl:959:
+            0x02, $

ERROR: trailing whitespace
#8408: FILE: tests/data/acpi/pc/DSDT.cphp.dsl:960:
+            Zero, $

ERROR: trailing whitespace
#8413: FILE: tests/data/acpi/pc/DSDT.cphp.dsl:965:
+            Zero, $

ERROR: trailing whitespace
#8414: FILE: tests/data/acpi/pc/DSDT.cphp.dsl:966:
+            Zero, $

ERROR: trailing whitespace
#8415: FILE: tests/data/acpi/pc/DSDT.cphp.dsl:967:
+            Zero, $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/DSDT.dimmpxm.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/DSDT.dimmpxm.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#8925: FILE: tests/data/acpi/pc/DSDT.dimmpxm.dsl:5:
+ * $

ERROR: trailing whitespace
#8988: FILE: tests/data/acpi/pc/DSDT.dimmpxm.dsl:68:
+                VEND,   32, $

ERROR: trailing whitespace
#9092: FILE: tests/data/acpi/pc/DSDT.dimmpxm.dsl:172:
+                    Zero, $

ERROR: trailing whitespace
#9093: FILE: tests/data/acpi/pc/DSDT.dimmpxm.dsl:173:
+                    0x05, $

ERROR: trailing whitespace
#9094: FILE: tests/data/acpi/pc/DSDT.dimmpxm.dsl:174:
+                    0x4F, $

ERROR: trailing whitespace
#9095: FILE: tests/data/acpi/pc/DSDT.dimmpxm.dsl:175:
+                    0x30, $

ERROR: trailing whitespace
#9096: FILE: tests/data/acpi/pc/DSDT.dimmpxm.dsl:176:
+                    One, $

ERROR: trailing whitespace
#9097: FILE: tests/data/acpi/pc/DSDT.dimmpxm.dsl:177:
+                    0xAF, $

ERROR: trailing whitespace
#9098: FILE: tests/data/acpi/pc/DSDT.dimmpxm.dsl:178:
+                    0x02, $

ERROR: trailing whitespace
#9099: FILE: tests/data/acpi/pc/DSDT.dimmpxm.dsl:179:
+                    0x25, $

ERROR: trailing whitespace
#9100: FILE: tests/data/acpi/pc/DSDT.dimmpxm.dsl:180:
+                    0x02, $

ERROR: trailing whitespace
#9101: FILE: tests/data/acpi/pc/DSDT.dimmpxm.dsl:181:
+                    0x12, $

ERROR: trailing whitespace
#9102: FILE: tests/data/acpi/pc/DSDT.dimmpxm.dsl:182:
+                    0x1B, $

ERROR: trailing whitespace
#9103: FILE: tests/data/acpi/pc/DSDT.dimmpxm.dsl:183:
+                    0xFF, $

ERROR: trailing whitespace
#9104: FILE: tests/data/acpi/pc/DSDT.dimmpxm.dsl:184:
+                    0x6C, $

ERROR: trailing whitespace
#9105: FILE: tests/data/acpi/pc/DSDT.dimmpxm.dsl:185:
+                    0xF6, $

ERROR: trailing whitespace
#9106: FILE: tests/data/acpi/pc/DSDT.dimmpxm.dsl:186:
+                    0x0F, $

ERROR: trailing whitespace
#9177: FILE: tests/data/acpi/pc/DSDT.dimmpxm.dsl:257:
+            PCIU,   32, $

ERROR: trailing whitespace
#9220: FILE: tests/data/acpi/pc/DSDT.dimmpxm.dsl:300:
+                                Zero, $

ERROR: trailing whitespace
#9221: FILE: tests/data/acpi/pc/DSDT.dimmpxm.dsl:301:
+                                Zero, $

ERROR: trailing whitespace
#9222: FILE: tests/data/acpi/pc/DSDT.dimmpxm.dsl:302:
+                                LNKD, $

ERROR: trailing whitespace
#9233: FILE: tests/data/acpi/pc/DSDT.dimmpxm.dsl:313:
+                                    Zero, $

ERROR: trailing whitespace
#9234: FILE: tests/data/acpi/pc/DSDT.dimmpxm.dsl:314:
+                                    Zero, $

ERROR: trailing whitespace
#9235: FILE: tests/data/acpi/pc/DSDT.dimmpxm.dsl:315:
+                                    LNKS, $

ERROR: trailing whitespace
#9243: FILE: tests/data/acpi/pc/DSDT.dimmpxm.dsl:323:
+                                    Zero, $

ERROR: trailing whitespace
#9244: FILE: tests/data/acpi/pc/DSDT.dimmpxm.dsl:324:
+                                    Zero, $

ERROR: trailing whitespace
#9245: FILE: tests/data/acpi/pc/DSDT.dimmpxm.dsl:325:
+                                    LNKA, $

ERROR: trailing whitespace
#9255: FILE: tests/data/acpi/pc/DSDT.dimmpxm.dsl:335:
+                                Zero, $

ERROR: trailing whitespace
#9256: FILE: tests/data/acpi/pc/DSDT.dimmpxm.dsl:336:
+                                Zero, $

ERROR: trailing whitespace
#9257: FILE: tests/data/acpi/pc/DSDT.dimmpxm.dsl:337:
+                                LNKB, $

ERROR: trailing whitespace
#9266: FILE: tests/data/acpi/pc/DSDT.dimmpxm.dsl:346:
+                                Zero, $

ERROR: trailing whitespace
#9267: FILE: tests/data/acpi/pc/DSDT.dimmpxm.dsl:347:
+                                Zero, $

ERROR: trailing whitespace
#9268: FILE: tests/data/acpi/pc/DSDT.dimmpxm.dsl:348:
+                                LNKC, $

ERROR: trailing whitespace
#9285: FILE: tests/data/acpi/pc/DSDT.dimmpxm.dsl:365:
+            PRQ0,   8, $

ERROR: trailing whitespace
#9286: FILE: tests/data/acpi/pc/DSDT.dimmpxm.dsl:366:
+            PRQ1,   8, $

ERROR: trailing whitespace
#9287: FILE: tests/data/acpi/pc/DSDT.dimmpxm.dsl:367:
+            PRQ2,   8, $

ERROR: trailing whitespace
#9509: FILE: tests/data/acpi/pc/DSDT.dimmpxm.dsl:589:
+                Offset (0x04), $

ERROR: trailing whitespace
#9510: FILE: tests/data/acpi/pc/DSDT.dimmpxm.dsl:590:
+                CPEN,   1, $

ERROR: trailing whitespace
#9511: FILE: tests/data/acpi/pc/DSDT.dimmpxm.dsl:591:
+                CINS,   1, $

ERROR: trailing whitespace
#9512: FILE: tests/data/acpi/pc/DSDT.dimmpxm.dsl:592:
+                CRMV,   1, $

ERROR: trailing whitespace
#9513: FILE: tests/data/acpi/pc/DSDT.dimmpxm.dsl:593:
+                CEJ0,   1, $

ERROR: trailing whitespace
#9514: FILE: tests/data/acpi/pc/DSDT.dimmpxm.dsl:594:
+                Offset (0x05), $

ERROR: trailing whitespace
#9520: FILE: tests/data/acpi/pc/DSDT.dimmpxm.dsl:600:
+                CSEL,   32, $

ERROR: trailing whitespace
#9521: FILE: tests/data/acpi/pc/DSDT.dimmpxm.dsl:601:
+                Offset (0x08), $

ERROR: trailing whitespace
#9737: FILE: tests/data/acpi/pc/DSDT.dimmpxm.dsl:817:
+            MRBL,   32, $

ERROR: trailing whitespace
#9738: FILE: tests/data/acpi/pc/DSDT.dimmpxm.dsl:818:
+            MRBH,   32, $

ERROR: trailing whitespace
#9739: FILE: tests/data/acpi/pc/DSDT.dimmpxm.dsl:819:
+            MRLL,   32, $

ERROR: trailing whitespace
#9740: FILE: tests/data/acpi/pc/DSDT.dimmpxm.dsl:820:
+            MRLH,   32, $

ERROR: trailing whitespace
#9746: FILE: tests/data/acpi/pc/DSDT.dimmpxm.dsl:826:
+            Offset (0x14), $

ERROR: trailing whitespace
#9747: FILE: tests/data/acpi/pc/DSDT.dimmpxm.dsl:827:
+            MES,    1, $

ERROR: trailing whitespace
#9748: FILE: tests/data/acpi/pc/DSDT.dimmpxm.dsl:828:
+            MINS,   1, $

ERROR: trailing whitespace
#9749: FILE: tests/data/acpi/pc/DSDT.dimmpxm.dsl:829:
+            MRMV,   1, $

ERROR: trailing whitespace
#9755: FILE: tests/data/acpi/pc/DSDT.dimmpxm.dsl:835:
+            MSEL,   32, $

ERROR: trailing whitespace
#9756: FILE: tests/data/acpi/pc/DSDT.dimmpxm.dsl:836:
+            MOEV,   32, $

ERROR: trailing whitespace
#10124: FILE: tests/data/acpi/pc/DSDT.dimmpxm.dsl:1204:
+            One, $

ERROR: trailing whitespace
#10125: FILE: tests/data/acpi/pc/DSDT.dimmpxm.dsl:1205:
+            One, $

ERROR: trailing whitespace
#10126: FILE: tests/data/acpi/pc/DSDT.dimmpxm.dsl:1206:
+            Zero, $

ERROR: trailing whitespace
#10131: FILE: tests/data/acpi/pc/DSDT.dimmpxm.dsl:1211:
+            0x02, $

ERROR: trailing whitespace
#10132: FILE: tests/data/acpi/pc/DSDT.dimmpxm.dsl:1212:
+            0x02, $

ERROR: trailing whitespace
#10133: FILE: tests/data/acpi/pc/DSDT.dimmpxm.dsl:1213:
+            Zero, $

ERROR: trailing whitespace
#10138: FILE: tests/data/acpi/pc/DSDT.dimmpxm.dsl:1218:
+            Zero, $

ERROR: trailing whitespace
#10139: FILE: tests/data/acpi/pc/DSDT.dimmpxm.dsl:1219:
+            Zero, $

ERROR: trailing whitespace
#10140: FILE: tests/data/acpi/pc/DSDT.dimmpxm.dsl:1220:
+            Zero, $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/DSDT.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/DSDT.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#10650: FILE: tests/data/acpi/pc/DSDT.dsl:5:
+ * $

ERROR: trailing whitespace
#10711: FILE: tests/data/acpi/pc/DSDT.dsl:66:
+                VEND,   32, $

ERROR: trailing whitespace
#10815: FILE: tests/data/acpi/pc/DSDT.dsl:170:
+                    Zero, $

ERROR: trailing whitespace
#10816: FILE: tests/data/acpi/pc/DSDT.dsl:171:
+                    0x05, $

ERROR: trailing whitespace
#10817: FILE: tests/data/acpi/pc/DSDT.dsl:172:
+                    0x4F, $

ERROR: trailing whitespace
#10818: FILE: tests/data/acpi/pc/DSDT.dsl:173:
+                    0x30, $

ERROR: trailing whitespace
#10819: FILE: tests/data/acpi/pc/DSDT.dsl:174:
+                    One, $

ERROR: trailing whitespace
#10820: FILE: tests/data/acpi/pc/DSDT.dsl:175:
+                    0xAF, $

ERROR: trailing whitespace
#10821: FILE: tests/data/acpi/pc/DSDT.dsl:176:
+                    0x02, $

ERROR: trailing whitespace
#10822: FILE: tests/data/acpi/pc/DSDT.dsl:177:
+                    0x25, $

ERROR: trailing whitespace
#10823: FILE: tests/data/acpi/pc/DSDT.dsl:178:
+                    0x02, $

ERROR: trailing whitespace
#10824: FILE: tests/data/acpi/pc/DSDT.dsl:179:
+                    0x12, $

ERROR: trailing whitespace
#10825: FILE: tests/data/acpi/pc/DSDT.dsl:180:
+                    0x1B, $

ERROR: trailing whitespace
#10826: FILE: tests/data/acpi/pc/DSDT.dsl:181:
+                    0xFF, $

ERROR: trailing whitespace
#10827: FILE: tests/data/acpi/pc/DSDT.dsl:182:
+                    0x6C, $

ERROR: trailing whitespace
#10828: FILE: tests/data/acpi/pc/DSDT.dsl:183:
+                    0xF6, $

ERROR: trailing whitespace
#10829: FILE: tests/data/acpi/pc/DSDT.dsl:184:
+                    0x0F, $

ERROR: trailing whitespace
#10900: FILE: tests/data/acpi/pc/DSDT.dsl:255:
+            PCIU,   32, $

ERROR: trailing whitespace
#10943: FILE: tests/data/acpi/pc/DSDT.dsl:298:
+                                Zero, $

ERROR: trailing whitespace
#10944: FILE: tests/data/acpi/pc/DSDT.dsl:299:
+                                Zero, $

ERROR: trailing whitespace
#10945: FILE: tests/data/acpi/pc/DSDT.dsl:300:
+                                LNKD, $

ERROR: trailing whitespace
#10956: FILE: tests/data/acpi/pc/DSDT.dsl:311:
+                                    Zero, $

ERROR: trailing whitespace
#10957: FILE: tests/data/acpi/pc/DSDT.dsl:312:
+                                    Zero, $

ERROR: trailing whitespace
#10958: FILE: tests/data/acpi/pc/DSDT.dsl:313:
+                                    LNKS, $

ERROR: trailing whitespace
#10966: FILE: tests/data/acpi/pc/DSDT.dsl:321:
+                                    Zero, $

ERROR: trailing whitespace
#10967: FILE: tests/data/acpi/pc/DSDT.dsl:322:
+                                    Zero, $

ERROR: trailing whitespace
#10968: FILE: tests/data/acpi/pc/DSDT.dsl:323:
+                                    LNKA, $

ERROR: trailing whitespace
#10978: FILE: tests/data/acpi/pc/DSDT.dsl:333:
+                                Zero, $

ERROR: trailing whitespace
#10979: FILE: tests/data/acpi/pc/DSDT.dsl:334:
+                                Zero, $

ERROR: trailing whitespace
#10980: FILE: tests/data/acpi/pc/DSDT.dsl:335:
+                                LNKB, $

ERROR: trailing whitespace
#10989: FILE: tests/data/acpi/pc/DSDT.dsl:344:
+                                Zero, $

ERROR: trailing whitespace
#10990: FILE: tests/data/acpi/pc/DSDT.dsl:345:
+                                Zero, $

ERROR: trailing whitespace
#10991: FILE: tests/data/acpi/pc/DSDT.dsl:346:
+                                LNKC, $

ERROR: trailing whitespace
#11008: FILE: tests/data/acpi/pc/DSDT.dsl:363:
+            PRQ0,   8, $

ERROR: trailing whitespace
#11009: FILE: tests/data/acpi/pc/DSDT.dsl:364:
+            PRQ1,   8, $

ERROR: trailing whitespace
#11010: FILE: tests/data/acpi/pc/DSDT.dsl:365:
+            PRQ2,   8, $

ERROR: trailing whitespace
#11232: FILE: tests/data/acpi/pc/DSDT.dsl:587:
+                Offset (0x04), $

ERROR: trailing whitespace
#11233: FILE: tests/data/acpi/pc/DSDT.dsl:588:
+                CPEN,   1, $

ERROR: trailing whitespace
#11234: FILE: tests/data/acpi/pc/DSDT.dsl:589:
+                CINS,   1, $

ERROR: trailing whitespace
#11235: FILE: tests/data/acpi/pc/DSDT.dsl:590:
+                CRMV,   1, $

ERROR: trailing whitespace
#11236: FILE: tests/data/acpi/pc/DSDT.dsl:591:
+                CEJ0,   1, $

ERROR: trailing whitespace
#11237: FILE: tests/data/acpi/pc/DSDT.dsl:592:
+                Offset (0x05), $

ERROR: trailing whitespace
#11243: FILE: tests/data/acpi/pc/DSDT.dsl:598:
+                CSEL,   32, $

ERROR: trailing whitespace
#11244: FILE: tests/data/acpi/pc/DSDT.dsl:599:
+                Offset (0x08), $

ERROR: trailing whitespace
#11483: FILE: tests/data/acpi/pc/DSDT.dsl:838:
+            One, $

ERROR: trailing whitespace
#11484: FILE: tests/data/acpi/pc/DSDT.dsl:839:
+            One, $

ERROR: trailing whitespace
#11485: FILE: tests/data/acpi/pc/DSDT.dsl:840:
+            Zero, $

ERROR: trailing whitespace
#11490: FILE: tests/data/acpi/pc/DSDT.dsl:845:
+            0x02, $

ERROR: trailing whitespace
#11491: FILE: tests/data/acpi/pc/DSDT.dsl:846:
+            0x02, $

ERROR: trailing whitespace
#11492: FILE: tests/data/acpi/pc/DSDT.dsl:847:
+            Zero, $

ERROR: trailing whitespace
#11497: FILE: tests/data/acpi/pc/DSDT.dsl:852:
+            Zero, $

ERROR: trailing whitespace
#11498: FILE: tests/data/acpi/pc/DSDT.dsl:853:
+            Zero, $

ERROR: trailing whitespace
#11499: FILE: tests/data/acpi/pc/DSDT.dsl:854:
+            Zero, $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/DSDT.hpbridge and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/DSDT.ipmikcs.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/DSDT.ipmikcs.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#12066: FILE: tests/data/acpi/pc/DSDT.ipmikcs.dsl:5:
+ * $

ERROR: trailing whitespace
#12127: FILE: tests/data/acpi/pc/DSDT.ipmikcs.dsl:66:
+                VEND,   32, $

ERROR: trailing whitespace
#12249: FILE: tests/data/acpi/pc/DSDT.ipmikcs.dsl:188:
+                    Zero, $

ERROR: trailing whitespace
#12250: FILE: tests/data/acpi/pc/DSDT.ipmikcs.dsl:189:
+                    0x05, $

ERROR: trailing whitespace
#12251: FILE: tests/data/acpi/pc/DSDT.ipmikcs.dsl:190:
+                    0x4F, $

ERROR: trailing whitespace
#12252: FILE: tests/data/acpi/pc/DSDT.ipmikcs.dsl:191:
+                    0x30, $

ERROR: trailing whitespace
#12253: FILE: tests/data/acpi/pc/DSDT.ipmikcs.dsl:192:
+                    One, $

ERROR: trailing whitespace
#12254: FILE: tests/data/acpi/pc/DSDT.ipmikcs.dsl:193:
+                    0xAF, $

ERROR: trailing whitespace
#12255: FILE: tests/data/acpi/pc/DSDT.ipmikcs.dsl:194:
+                    0x02, $

ERROR: trailing whitespace
#12256: FILE: tests/data/acpi/pc/DSDT.ipmikcs.dsl:195:
+                    0x25, $

ERROR: trailing whitespace
#12257: FILE: tests/data/acpi/pc/DSDT.ipmikcs.dsl:196:
+                    0x02, $

ERROR: trailing whitespace
#12258: FILE: tests/data/acpi/pc/DSDT.ipmikcs.dsl:197:
+                    0x12, $

ERROR: trailing whitespace
#12259: FILE: tests/data/acpi/pc/DSDT.ipmikcs.dsl:198:
+                    0x1B, $

ERROR: trailing whitespace
#12260: FILE: tests/data/acpi/pc/DSDT.ipmikcs.dsl:199:
+                    0xFF, $

ERROR: trailing whitespace
#12261: FILE: tests/data/acpi/pc/DSDT.ipmikcs.dsl:200:
+                    0x6C, $

ERROR: trailing whitespace
#12262: FILE: tests/data/acpi/pc/DSDT.ipmikcs.dsl:201:
+                    0xF6, $

ERROR: trailing whitespace
#12263: FILE: tests/data/acpi/pc/DSDT.ipmikcs.dsl:202:
+                    0x0F, $

ERROR: trailing whitespace
#12334: FILE: tests/data/acpi/pc/DSDT.ipmikcs.dsl:273:
+            PCIU,   32, $

ERROR: trailing whitespace
#12377: FILE: tests/data/acpi/pc/DSDT.ipmikcs.dsl:316:
+                                Zero, $

ERROR: trailing whitespace
#12378: FILE: tests/data/acpi/pc/DSDT.ipmikcs.dsl:317:
+                                Zero, $

ERROR: trailing whitespace
#12379: FILE: tests/data/acpi/pc/DSDT.ipmikcs.dsl:318:
+                                LNKD, $

ERROR: trailing whitespace
#12390: FILE: tests/data/acpi/pc/DSDT.ipmikcs.dsl:329:
+                                    Zero, $

ERROR: trailing whitespace
#12391: FILE: tests/data/acpi/pc/DSDT.ipmikcs.dsl:330:
+                                    Zero, $

ERROR: trailing whitespace
#12392: FILE: tests/data/acpi/pc/DSDT.ipmikcs.dsl:331:
+                                    LNKS, $

ERROR: trailing whitespace
#12400: FILE: tests/data/acpi/pc/DSDT.ipmikcs.dsl:339:
+                                    Zero, $

ERROR: trailing whitespace
#12401: FILE: tests/data/acpi/pc/DSDT.ipmikcs.dsl:340:
+                                    Zero, $

ERROR: trailing whitespace
#12402: FILE: tests/data/acpi/pc/DSDT.ipmikcs.dsl:341:
+                                    LNKA, $

ERROR: trailing whitespace
#12412: FILE: tests/data/acpi/pc/DSDT.ipmikcs.dsl:351:
+                                Zero, $

ERROR: trailing whitespace
#12413: FILE: tests/data/acpi/pc/DSDT.ipmikcs.dsl:352:
+                                Zero, $

ERROR: trailing whitespace
#12414: FILE: tests/data/acpi/pc/DSDT.ipmikcs.dsl:353:
+                                LNKB, $

ERROR: trailing whitespace
#12423: FILE: tests/data/acpi/pc/DSDT.ipmikcs.dsl:362:
+                                Zero, $

ERROR: trailing whitespace
#12424: FILE: tests/data/acpi/pc/DSDT.ipmikcs.dsl:363:
+                                Zero, $

ERROR: trailing whitespace
#12425: FILE: tests/data/acpi/pc/DSDT.ipmikcs.dsl:364:
+                                LNKC, $

ERROR: trailing whitespace
#12442: FILE: tests/data/acpi/pc/DSDT.ipmikcs.dsl:381:
+            PRQ0,   8, $

ERROR: trailing whitespace
#12443: FILE: tests/data/acpi/pc/DSDT.ipmikcs.dsl:382:
+            PRQ1,   8, $

ERROR: trailing whitespace
#12444: FILE: tests/data/acpi/pc/DSDT.ipmikcs.dsl:383:
+            PRQ2,   8, $

ERROR: trailing whitespace
#12666: FILE: tests/data/acpi/pc/DSDT.ipmikcs.dsl:605:
+                Offset (0x04), $

ERROR: trailing whitespace
#12667: FILE: tests/data/acpi/pc/DSDT.ipmikcs.dsl:606:
+                CPEN,   1, $

ERROR: trailing whitespace
#12668: FILE: tests/data/acpi/pc/DSDT.ipmikcs.dsl:607:
+                CINS,   1, $

ERROR: trailing whitespace
#12669: FILE: tests/data/acpi/pc/DSDT.ipmikcs.dsl:608:
+                CRMV,   1, $

ERROR: trailing whitespace
#12670: FILE: tests/data/acpi/pc/DSDT.ipmikcs.dsl:609:
+                CEJ0,   1, $

ERROR: trailing whitespace
#12671: FILE: tests/data/acpi/pc/DSDT.ipmikcs.dsl:610:
+                Offset (0x05), $

ERROR: trailing whitespace
#12677: FILE: tests/data/acpi/pc/DSDT.ipmikcs.dsl:616:
+                CSEL,   32, $

ERROR: trailing whitespace
#12678: FILE: tests/data/acpi/pc/DSDT.ipmikcs.dsl:617:
+                Offset (0x08), $

ERROR: trailing whitespace
#12883: FILE: tests/data/acpi/pc/DSDT.ipmikcs.dsl:822:
+            One, $

ERROR: trailing whitespace
#12884: FILE: tests/data/acpi/pc/DSDT.ipmikcs.dsl:823:
+            One, $

ERROR: trailing whitespace
#12885: FILE: tests/data/acpi/pc/DSDT.ipmikcs.dsl:824:
+            Zero, $

ERROR: trailing whitespace
#12890: FILE: tests/data/acpi/pc/DSDT.ipmikcs.dsl:829:
+            0x02, $

ERROR: trailing whitespace
#12891: FILE: tests/data/acpi/pc/DSDT.ipmikcs.dsl:830:
+            0x02, $

ERROR: trailing whitespace
#12892: FILE: tests/data/acpi/pc/DSDT.ipmikcs.dsl:831:
+            Zero, $

ERROR: trailing whitespace
#12897: FILE: tests/data/acpi/pc/DSDT.ipmikcs.dsl:836:
+            Zero, $

ERROR: trailing whitespace
#12898: FILE: tests/data/acpi/pc/DSDT.ipmikcs.dsl:837:
+            Zero, $

ERROR: trailing whitespace
#12899: FILE: tests/data/acpi/pc/DSDT.ipmikcs.dsl:838:
+            Zero, $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/DSDT.memhp.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/DSDT.memhp.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#13409: FILE: tests/data/acpi/pc/DSDT.memhp.dsl:5:
+ * $

ERROR: trailing whitespace
#13470: FILE: tests/data/acpi/pc/DSDT.memhp.dsl:66:
+                VEND,   32, $

ERROR: trailing whitespace
#13574: FILE: tests/data/acpi/pc/DSDT.memhp.dsl:170:
+                    Zero, $

ERROR: trailing whitespace
#13575: FILE: tests/data/acpi/pc/DSDT.memhp.dsl:171:
+                    0x05, $

ERROR: trailing whitespace
#13576: FILE: tests/data/acpi/pc/DSDT.memhp.dsl:172:
+                    0x4F, $

ERROR: trailing whitespace
#13577: FILE: tests/data/acpi/pc/DSDT.memhp.dsl:173:
+                    0x30, $

ERROR: trailing whitespace
#13578: FILE: tests/data/acpi/pc/DSDT.memhp.dsl:174:
+                    One, $

ERROR: trailing whitespace
#13579: FILE: tests/data/acpi/pc/DSDT.memhp.dsl:175:
+                    0xAF, $

ERROR: trailing whitespace
#13580: FILE: tests/data/acpi/pc/DSDT.memhp.dsl:176:
+                    0x02, $

ERROR: trailing whitespace
#13581: FILE: tests/data/acpi/pc/DSDT.memhp.dsl:177:
+                    0x25, $

ERROR: trailing whitespace
#13582: FILE: tests/data/acpi/pc/DSDT.memhp.dsl:178:
+                    0x02, $

ERROR: trailing whitespace
#13583: FILE: tests/data/acpi/pc/DSDT.memhp.dsl:179:
+                    0x12, $

ERROR: trailing whitespace
#13584: FILE: tests/data/acpi/pc/DSDT.memhp.dsl:180:
+                    0x1B, $

ERROR: trailing whitespace
#13585: FILE: tests/data/acpi/pc/DSDT.memhp.dsl:181:
+                    0xFF, $

ERROR: trailing whitespace
#13586: FILE: tests/data/acpi/pc/DSDT.memhp.dsl:182:
+                    0x6C, $

ERROR: trailing whitespace
#13587: FILE: tests/data/acpi/pc/DSDT.memhp.dsl:183:
+                    0xF6, $

ERROR: trailing whitespace
#13588: FILE: tests/data/acpi/pc/DSDT.memhp.dsl:184:
+                    0x0F, $

ERROR: trailing whitespace
#13659: FILE: tests/data/acpi/pc/DSDT.memhp.dsl:255:
+            PCIU,   32, $

ERROR: trailing whitespace
#13702: FILE: tests/data/acpi/pc/DSDT.memhp.dsl:298:
+                                Zero, $

ERROR: trailing whitespace
#13703: FILE: tests/data/acpi/pc/DSDT.memhp.dsl:299:
+                                Zero, $

ERROR: trailing whitespace
#13704: FILE: tests/data/acpi/pc/DSDT.memhp.dsl:300:
+                                LNKD, $

ERROR: trailing whitespace
#13715: FILE: tests/data/acpi/pc/DSDT.memhp.dsl:311:
+                                    Zero, $

ERROR: trailing whitespace
#13716: FILE: tests/data/acpi/pc/DSDT.memhp.dsl:312:
+                                    Zero, $

ERROR: trailing whitespace
#13717: FILE: tests/data/acpi/pc/DSDT.memhp.dsl:313:
+                                    LNKS, $

ERROR: trailing whitespace
#13725: FILE: tests/data/acpi/pc/DSDT.memhp.dsl:321:
+                                    Zero, $

ERROR: trailing whitespace
#13726: FILE: tests/data/acpi/pc/DSDT.memhp.dsl:322:
+                                    Zero, $

ERROR: trailing whitespace
#13727: FILE: tests/data/acpi/pc/DSDT.memhp.dsl:323:
+                                    LNKA, $

ERROR: trailing whitespace
#13737: FILE: tests/data/acpi/pc/DSDT.memhp.dsl:333:
+                                Zero, $

ERROR: trailing whitespace
#13738: FILE: tests/data/acpi/pc/DSDT.memhp.dsl:334:
+                                Zero, $

ERROR: trailing whitespace
#13739: FILE: tests/data/acpi/pc/DSDT.memhp.dsl:335:
+                                LNKB, $

ERROR: trailing whitespace
#13748: FILE: tests/data/acpi/pc/DSDT.memhp.dsl:344:
+                                Zero, $

ERROR: trailing whitespace
#13749: FILE: tests/data/acpi/pc/DSDT.memhp.dsl:345:
+                                Zero, $

ERROR: trailing whitespace
#13750: FILE: tests/data/acpi/pc/DSDT.memhp.dsl:346:
+                                LNKC, $

ERROR: trailing whitespace
#13767: FILE: tests/data/acpi/pc/DSDT.memhp.dsl:363:
+            PRQ0,   8, $

ERROR: trailing whitespace
#13768: FILE: tests/data/acpi/pc/DSDT.memhp.dsl:364:
+            PRQ1,   8, $

ERROR: trailing whitespace
#13769: FILE: tests/data/acpi/pc/DSDT.memhp.dsl:365:
+            PRQ2,   8, $

ERROR: trailing whitespace
#13991: FILE: tests/data/acpi/pc/DSDT.memhp.dsl:587:
+                Offset (0x04), $

ERROR: trailing whitespace
#13992: FILE: tests/data/acpi/pc/DSDT.memhp.dsl:588:
+                CPEN,   1, $

ERROR: trailing whitespace
#13993: FILE: tests/data/acpi/pc/DSDT.memhp.dsl:589:
+                CINS,   1, $

ERROR: trailing whitespace
#13994: FILE: tests/data/acpi/pc/DSDT.memhp.dsl:590:
+                CRMV,   1, $

ERROR: trailing whitespace
#13995: FILE: tests/data/acpi/pc/DSDT.memhp.dsl:591:
+                CEJ0,   1, $

ERROR: trailing whitespace
#13996: FILE: tests/data/acpi/pc/DSDT.memhp.dsl:592:
+                Offset (0x05), $

ERROR: trailing whitespace
#14002: FILE: tests/data/acpi/pc/DSDT.memhp.dsl:598:
+                CSEL,   32, $

ERROR: trailing whitespace
#14003: FILE: tests/data/acpi/pc/DSDT.memhp.dsl:599:
+                Offset (0x08), $

ERROR: trailing whitespace
#14132: FILE: tests/data/acpi/pc/DSDT.memhp.dsl:728:
+            MRBL,   32, $

ERROR: trailing whitespace
#14133: FILE: tests/data/acpi/pc/DSDT.memhp.dsl:729:
+            MRBH,   32, $

ERROR: trailing whitespace
#14134: FILE: tests/data/acpi/pc/DSDT.memhp.dsl:730:
+            MRLL,   32, $

ERROR: trailing whitespace
#14135: FILE: tests/data/acpi/pc/DSDT.memhp.dsl:731:
+            MRLH,   32, $

ERROR: trailing whitespace
#14141: FILE: tests/data/acpi/pc/DSDT.memhp.dsl:737:
+            Offset (0x14), $

ERROR: trailing whitespace
#14142: FILE: tests/data/acpi/pc/DSDT.memhp.dsl:738:
+            MES,    1, $

ERROR: trailing whitespace
#14143: FILE: tests/data/acpi/pc/DSDT.memhp.dsl:739:
+            MINS,   1, $

ERROR: trailing whitespace
#14144: FILE: tests/data/acpi/pc/DSDT.memhp.dsl:740:
+            MRMV,   1, $

ERROR: trailing whitespace
#14150: FILE: tests/data/acpi/pc/DSDT.memhp.dsl:746:
+            MSEL,   32, $

ERROR: trailing whitespace
#14151: FILE: tests/data/acpi/pc/DSDT.memhp.dsl:747:
+            MOEV,   32, $

ERROR: trailing whitespace
#14514: FILE: tests/data/acpi/pc/DSDT.memhp.dsl:1110:
+            One, $

ERROR: trailing whitespace
#14515: FILE: tests/data/acpi/pc/DSDT.memhp.dsl:1111:
+            One, $

ERROR: trailing whitespace
#14516: FILE: tests/data/acpi/pc/DSDT.memhp.dsl:1112:
+            Zero, $

ERROR: trailing whitespace
#14521: FILE: tests/data/acpi/pc/DSDT.memhp.dsl:1117:
+            0x02, $

ERROR: trailing whitespace
#14522: FILE: tests/data/acpi/pc/DSDT.memhp.dsl:1118:
+            0x02, $

ERROR: trailing whitespace
#14523: FILE: tests/data/acpi/pc/DSDT.memhp.dsl:1119:
+            Zero, $

ERROR: trailing whitespace
#14528: FILE: tests/data/acpi/pc/DSDT.memhp.dsl:1124:
+            Zero, $

ERROR: trailing whitespace
#14529: FILE: tests/data/acpi/pc/DSDT.memhp.dsl:1125:
+            Zero, $

ERROR: trailing whitespace
#14530: FILE: tests/data/acpi/pc/DSDT.memhp.dsl:1126:
+            Zero, $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/DSDT.numamem.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/DSDT.numamem.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#15040: FILE: tests/data/acpi/pc/DSDT.numamem.dsl:5:
+ * $

ERROR: trailing whitespace
#15101: FILE: tests/data/acpi/pc/DSDT.numamem.dsl:66:
+                VEND,   32, $

ERROR: trailing whitespace
#15205: FILE: tests/data/acpi/pc/DSDT.numamem.dsl:170:
+                    Zero, $

ERROR: trailing whitespace
#15206: FILE: tests/data/acpi/pc/DSDT.numamem.dsl:171:
+                    0x05, $

ERROR: trailing whitespace
#15207: FILE: tests/data/acpi/pc/DSDT.numamem.dsl:172:
+                    0x4F, $

ERROR: trailing whitespace
#15208: FILE: tests/data/acpi/pc/DSDT.numamem.dsl:173:
+                    0x30, $

ERROR: trailing whitespace
#15209: FILE: tests/data/acpi/pc/DSDT.numamem.dsl:174:
+                    One, $

ERROR: trailing whitespace
#15210: FILE: tests/data/acpi/pc/DSDT.numamem.dsl:175:
+                    0xAF, $

ERROR: trailing whitespace
#15211: FILE: tests/data/acpi/pc/DSDT.numamem.dsl:176:
+                    0x02, $

ERROR: trailing whitespace
#15212: FILE: tests/data/acpi/pc/DSDT.numamem.dsl:177:
+                    0x25, $

ERROR: trailing whitespace
#15213: FILE: tests/data/acpi/pc/DSDT.numamem.dsl:178:
+                    0x02, $

ERROR: trailing whitespace
#15214: FILE: tests/data/acpi/pc/DSDT.numamem.dsl:179:
+                    0x12, $

ERROR: trailing whitespace
#15215: FILE: tests/data/acpi/pc/DSDT.numamem.dsl:180:
+                    0x1B, $

ERROR: trailing whitespace
#15216: FILE: tests/data/acpi/pc/DSDT.numamem.dsl:181:
+                    0xFF, $

ERROR: trailing whitespace
#15217: FILE: tests/data/acpi/pc/DSDT.numamem.dsl:182:
+                    0x6C, $

ERROR: trailing whitespace
#15218: FILE: tests/data/acpi/pc/DSDT.numamem.dsl:183:
+                    0xF6, $

ERROR: trailing whitespace
#15219: FILE: tests/data/acpi/pc/DSDT.numamem.dsl:184:
+                    0x0F, $

ERROR: trailing whitespace
#15290: FILE: tests/data/acpi/pc/DSDT.numamem.dsl:255:
+            PCIU,   32, $

ERROR: trailing whitespace
#15333: FILE: tests/data/acpi/pc/DSDT.numamem.dsl:298:
+                                Zero, $

ERROR: trailing whitespace
#15334: FILE: tests/data/acpi/pc/DSDT.numamem.dsl:299:
+                                Zero, $

ERROR: trailing whitespace
#15335: FILE: tests/data/acpi/pc/DSDT.numamem.dsl:300:
+                                LNKD, $

ERROR: trailing whitespace
#15346: FILE: tests/data/acpi/pc/DSDT.numamem.dsl:311:
+                                    Zero, $

ERROR: trailing whitespace
#15347: FILE: tests/data/acpi/pc/DSDT.numamem.dsl:312:
+                                    Zero, $

ERROR: trailing whitespace
#15348: FILE: tests/data/acpi/pc/DSDT.numamem.dsl:313:
+                                    LNKS, $

ERROR: trailing whitespace
#15356: FILE: tests/data/acpi/pc/DSDT.numamem.dsl:321:
+                                    Zero, $

ERROR: trailing whitespace
#15357: FILE: tests/data/acpi/pc/DSDT.numamem.dsl:322:
+                                    Zero, $

ERROR: trailing whitespace
#15358: FILE: tests/data/acpi/pc/DSDT.numamem.dsl:323:
+                                    LNKA, $

ERROR: trailing whitespace
#15368: FILE: tests/data/acpi/pc/DSDT.numamem.dsl:333:
+                                Zero, $

ERROR: trailing whitespace
#15369: FILE: tests/data/acpi/pc/DSDT.numamem.dsl:334:
+                                Zero, $

ERROR: trailing whitespace
#15370: FILE: tests/data/acpi/pc/DSDT.numamem.dsl:335:
+                                LNKB, $

ERROR: trailing whitespace
#15379: FILE: tests/data/acpi/pc/DSDT.numamem.dsl:344:
+                                Zero, $

ERROR: trailing whitespace
#15380: FILE: tests/data/acpi/pc/DSDT.numamem.dsl:345:
+                                Zero, $

ERROR: trailing whitespace
#15381: FILE: tests/data/acpi/pc/DSDT.numamem.dsl:346:
+                                LNKC, $

ERROR: trailing whitespace
#15398: FILE: tests/data/acpi/pc/DSDT.numamem.dsl:363:
+            PRQ0,   8, $

ERROR: trailing whitespace
#15399: FILE: tests/data/acpi/pc/DSDT.numamem.dsl:364:
+            PRQ1,   8, $

ERROR: trailing whitespace
#15400: FILE: tests/data/acpi/pc/DSDT.numamem.dsl:365:
+            PRQ2,   8, $

ERROR: trailing whitespace
#15622: FILE: tests/data/acpi/pc/DSDT.numamem.dsl:587:
+                Offset (0x04), $

ERROR: trailing whitespace
#15623: FILE: tests/data/acpi/pc/DSDT.numamem.dsl:588:
+                CPEN,   1, $

ERROR: trailing whitespace
#15624: FILE: tests/data/acpi/pc/DSDT.numamem.dsl:589:
+                CINS,   1, $

ERROR: trailing whitespace
#15625: FILE: tests/data/acpi/pc/DSDT.numamem.dsl:590:
+                CRMV,   1, $

ERROR: trailing whitespace
#15626: FILE: tests/data/acpi/pc/DSDT.numamem.dsl:591:
+                CEJ0,   1, $

ERROR: trailing whitespace
#15627: FILE: tests/data/acpi/pc/DSDT.numamem.dsl:592:
+                Offset (0x05), $

ERROR: trailing whitespace
#15633: FILE: tests/data/acpi/pc/DSDT.numamem.dsl:598:
+                CSEL,   32, $

ERROR: trailing whitespace
#15634: FILE: tests/data/acpi/pc/DSDT.numamem.dsl:599:
+                Offset (0x08), $

ERROR: trailing whitespace
#15841: FILE: tests/data/acpi/pc/DSDT.numamem.dsl:806:
+            One, $

ERROR: trailing whitespace
#15842: FILE: tests/data/acpi/pc/DSDT.numamem.dsl:807:
+            One, $

ERROR: trailing whitespace
#15843: FILE: tests/data/acpi/pc/DSDT.numamem.dsl:808:
+            Zero, $

ERROR: trailing whitespace
#15848: FILE: tests/data/acpi/pc/DSDT.numamem.dsl:813:
+            0x02, $

ERROR: trailing whitespace
#15849: FILE: tests/data/acpi/pc/DSDT.numamem.dsl:814:
+            0x02, $

ERROR: trailing whitespace
#15850: FILE: tests/data/acpi/pc/DSDT.numamem.dsl:815:
+            Zero, $

ERROR: trailing whitespace
#15855: FILE: tests/data/acpi/pc/DSDT.numamem.dsl:820:
+            Zero, $

ERROR: trailing whitespace
#15856: FILE: tests/data/acpi/pc/DSDT.numamem.dsl:821:
+            Zero, $

ERROR: trailing whitespace
#15857: FILE: tests/data/acpi/pc/DSDT.numamem.dsl:822:
+            Zero, $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/DSDT.roothp and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/FACP.acpihmat and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/FACP.acpihmat.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/FACP.acpihmat.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#16374: FILE: tests/data/acpi/pc/FACP.acpihmat.dsl:5:
+ * $

ERROR: trailing whitespace
#16461: FILE: tests/data/acpi/pc/FACP.acpihmat.dsl:92:
+    0000: 46 41 43 50 74 00 00 00 01 A1 42 4F 43 48 53 20  // FACPt.....BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/FACP.bridge and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/FACP.bridge.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/FACP.bridge.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#16483: FILE: tests/data/acpi/pc/FACP.bridge.dsl:5:
+ * $

ERROR: trailing whitespace
#16570: FILE: tests/data/acpi/pc/FACP.bridge.dsl:92:
+    0000: 46 41 43 50 74 00 00 00 01 A1 42 4F 43 48 53 20  // FACPt.....BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/FACP.cphp and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/FACP.cphp.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/FACP.cphp.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#16592: FILE: tests/data/acpi/pc/FACP.cphp.dsl:5:
+ * $

ERROR: trailing whitespace
#16679: FILE: tests/data/acpi/pc/FACP.cphp.dsl:92:
+    0000: 46 41 43 50 74 00 00 00 01 A1 42 4F 43 48 53 20  // FACPt.....BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/FACP.dimmpxm and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/FACP.dimmpxm.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/FACP.dimmpxm.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#16701: FILE: tests/data/acpi/pc/FACP.dimmpxm.dsl:5:
+ * $

ERROR: trailing whitespace
#16788: FILE: tests/data/acpi/pc/FACP.dimmpxm.dsl:92:
+    0000: 46 41 43 50 74 00 00 00 01 A1 42 4F 43 48 53 20  // FACPt.....BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/FACP.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/FACP.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#16806: FILE: tests/data/acpi/pc/FACP.dsl:5:
+ * $

ERROR: trailing whitespace
#16893: FILE: tests/data/acpi/pc/FACP.dsl:92:
+    0000: 46 41 43 50 74 00 00 00 01 A1 42 4F 43 48 53 20  // FACPt.....BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/FACP.hpbridge and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/FACP.ipmikcs and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/FACP.ipmikcs.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/FACP.ipmikcs.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#16919: FILE: tests/data/acpi/pc/FACP.ipmikcs.dsl:5:
+ * $

ERROR: trailing whitespace
#17006: FILE: tests/data/acpi/pc/FACP.ipmikcs.dsl:92:
+    0000: 46 41 43 50 74 00 00 00 01 A1 42 4F 43 48 53 20  // FACPt.....BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/FACP.memhp and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/FACP.memhp.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/FACP.memhp.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#17028: FILE: tests/data/acpi/pc/FACP.memhp.dsl:5:
+ * $

ERROR: trailing whitespace
#17115: FILE: tests/data/acpi/pc/FACP.memhp.dsl:92:
+    0000: 46 41 43 50 74 00 00 00 01 A1 42 4F 43 48 53 20  // FACPt.....BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/FACP.numamem and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/FACP.numamem.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/FACP.numamem.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#17137: FILE: tests/data/acpi/pc/FACP.numamem.dsl:5:
+ * $

ERROR: trailing whitespace
#17224: FILE: tests/data/acpi/pc/FACP.numamem.dsl:92:
+    0000: 46 41 43 50 74 00 00 00 01 A1 42 4F 43 48 53 20  // FACPt.....BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/FACP.roothp and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/FACS.acpihmat and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/FACS.acpihmat.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/FACS.acpihmat.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#17250: FILE: tests/data/acpi/pc/FACS.acpihmat.dsl:5:
+ * $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/FACS.bridge and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/FACS.bridge.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/FACS.bridge.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#17292: FILE: tests/data/acpi/pc/FACS.bridge.dsl:5:
+ * $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/FACS.cphp and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/FACS.cphp.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/FACS.cphp.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#17334: FILE: tests/data/acpi/pc/FACS.cphp.dsl:5:
+ * $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/FACS.dimmpxm and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/FACS.dimmpxm.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/FACS.dimmpxm.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#17376: FILE: tests/data/acpi/pc/FACS.dimmpxm.dsl:5:
+ * $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/FACS.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/FACS.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#17414: FILE: tests/data/acpi/pc/FACS.dsl:5:
+ * $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/FACS.hpbridge and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/FACS.ipmikcs and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/FACS.ipmikcs.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/FACS.ipmikcs.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#17460: FILE: tests/data/acpi/pc/FACS.ipmikcs.dsl:5:
+ * $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/FACS.memhp and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/FACS.memhp.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/FACS.memhp.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#17502: FILE: tests/data/acpi/pc/FACS.memhp.dsl:5:
+ * $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/FACS.numamem and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/FACS.numamem.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/FACS.numamem.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#17544: FILE: tests/data/acpi/pc/FACS.numamem.dsl:5:
+ * $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/FACS.roothp and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/HMAT.acpihmat.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/HMAT.acpihmat.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#17586: FILE: tests/data/acpi/pc/HMAT.acpihmat.dsl:5:
+ * $

ERROR: trailing whitespace
#17696: FILE: tests/data/acpi/pc/HMAT.acpihmat.dsl:115:
+    0000: 48 4D 41 54 18 01 00 00 02 98 42 4F 43 48 53 20  // HMAT......BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/HMAT.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/HMAT.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#17724: FILE: tests/data/acpi/pc/HMAT.dsl:5:
+ * $

ERROR: trailing whitespace
#17834: FILE: tests/data/acpi/pc/HMAT.dsl:115:
+    0000: 48 4D 41 54 18 01 00 00 02 98 42 4F 43 48 53 20  // HMAT......BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/HPET.acpihmat and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/HPET.acpihmat.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/HPET.acpihmat.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#17866: FILE: tests/data/acpi/pc/HPET.acpihmat.dsl:5:
+ * $

ERROR: trailing whitespace
#17901: FILE: tests/data/acpi/pc/HPET.acpihmat.dsl:40:
+    0000: 48 50 45 54 38 00 00 00 01 03 42 4F 43 48 53 20  // HPET8.....BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/HPET.bridge and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/HPET.bridge.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/HPET.bridge.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#17919: FILE: tests/data/acpi/pc/HPET.bridge.dsl:5:
+ * $

ERROR: trailing whitespace
#17954: FILE: tests/data/acpi/pc/HPET.bridge.dsl:40:
+    0000: 48 50 45 54 38 00 00 00 01 03 42 4F 43 48 53 20  // HPET8.....BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/HPET.cphp and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/HPET.cphp.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/HPET.cphp.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#17972: FILE: tests/data/acpi/pc/HPET.cphp.dsl:5:
+ * $

ERROR: trailing whitespace
#18007: FILE: tests/data/acpi/pc/HPET.cphp.dsl:40:
+    0000: 48 50 45 54 38 00 00 00 01 03 42 4F 43 48 53 20  // HPET8.....BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/HPET.dimmpxm and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/HPET.dimmpxm.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/HPET.dimmpxm.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#18025: FILE: tests/data/acpi/pc/HPET.dimmpxm.dsl:5:
+ * $

ERROR: trailing whitespace
#18060: FILE: tests/data/acpi/pc/HPET.dimmpxm.dsl:40:
+    0000: 48 50 45 54 38 00 00 00 01 03 42 4F 43 48 53 20  // HPET8.....BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/HPET.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/HPET.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#18074: FILE: tests/data/acpi/pc/HPET.dsl:5:
+ * $

ERROR: trailing whitespace
#18109: FILE: tests/data/acpi/pc/HPET.dsl:40:
+    0000: 48 50 45 54 38 00 00 00 01 03 42 4F 43 48 53 20  // HPET8.....BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/HPET.hpbridge and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/HPET.ipmikcs and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/HPET.ipmikcs.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/HPET.ipmikcs.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#18131: FILE: tests/data/acpi/pc/HPET.ipmikcs.dsl:5:
+ * $

ERROR: trailing whitespace
#18166: FILE: tests/data/acpi/pc/HPET.ipmikcs.dsl:40:
+    0000: 48 50 45 54 38 00 00 00 01 03 42 4F 43 48 53 20  // HPET8.....BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/HPET.memhp and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/HPET.memhp.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/HPET.memhp.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#18184: FILE: tests/data/acpi/pc/HPET.memhp.dsl:5:
+ * $

ERROR: trailing whitespace
#18219: FILE: tests/data/acpi/pc/HPET.memhp.dsl:40:
+    0000: 48 50 45 54 38 00 00 00 01 03 42 4F 43 48 53 20  // HPET8.....BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/HPET.numamem and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/HPET.numamem.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/HPET.numamem.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#18237: FILE: tests/data/acpi/pc/HPET.numamem.dsl:5:
+ * $

ERROR: trailing whitespace
#18272: FILE: tests/data/acpi/pc/HPET.numamem.dsl:40:
+    0000: 48 50 45 54 38 00 00 00 01 03 42 4F 43 48 53 20  // HPET8.....BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/HPET.roothp and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/NFIT.dimmpxm.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/NFIT.dimmpxm.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#18290: FILE: tests/data/acpi/pc/NFIT.dimmpxm.dsl:5:
+ * $

ERROR: trailing whitespace
#18386: FILE: tests/data/acpi/pc/NFIT.dimmpxm.dsl:101:
+    0000: 4E 46 49 54 F0 00 00 00 01 24 42 4F 43 48 53 20  // NFIT.....$BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/NFIT.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/NFIT.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#18411: FILE: tests/data/acpi/pc/NFIT.dsl:5:
+ * $

ERROR: trailing whitespace
#18507: FILE: tests/data/acpi/pc/NFIT.dsl:101:
+    0000: 4E 46 49 54 F0 00 00 00 01 24 42 4F 43 48 53 20  // NFIT.....$BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/SLIT.cphp.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/SLIT.cphp.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#18532: FILE: tests/data/acpi/pc/SLIT.cphp.dsl:5:
+ * $

ERROR: trailing whitespace
#18556: FILE: tests/data/acpi/pc/SLIT.cphp.dsl:29:
+    0000: 53 4C 49 54 30 00 00 00 01 2C 42 4F 43 48 53 20  // SLIT0....,BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/SLIT.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/SLIT.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#18569: FILE: tests/data/acpi/pc/SLIT.dsl:5:
+ * $

ERROR: trailing whitespace
#18593: FILE: tests/data/acpi/pc/SLIT.dsl:29:
+    0000: 53 4C 49 54 30 00 00 00 01 2C 42 4F 43 48 53 20  // SLIT0....,BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/SLIT.memhp.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/SLIT.memhp.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#18606: FILE: tests/data/acpi/pc/SLIT.memhp.dsl:5:
+ * $

ERROR: trailing whitespace
#18630: FILE: tests/data/acpi/pc/SLIT.memhp.dsl:29:
+    0000: 53 4C 49 54 30 00 00 00 01 2C 42 4F 43 48 53 20  // SLIT0....,BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/SRAT.acpihmat.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/SRAT.acpihmat.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#18643: FILE: tests/data/acpi/pc/SRAT.acpihmat.dsl:5:
+ * $

ERROR: trailing whitespace
#18758: FILE: tests/data/acpi/pc/SRAT.acpihmat.dsl:120:
+    0000: 53 52 41 54 18 01 00 00 01 C0 42 4F 43 48 53 20  // SRAT......BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/SRAT.cphp.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/SRAT.cphp.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#18786: FILE: tests/data/acpi/pc/SRAT.cphp.dsl:5:
+ * $

ERROR: trailing whitespace
#18931: FILE: tests/data/acpi/pc/SRAT.cphp.dsl:150:
+    0000: 53 52 41 54 30 01 00 00 01 36 42 4F 43 48 53 20  // SRAT0....6BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/SRAT.dimmpxm.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/SRAT.dimmpxm.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#18960: FILE: tests/data/acpi/pc/SRAT.dimmpxm.dsl:5:
+ * $

ERROR: trailing whitespace
#19125: FILE: tests/data/acpi/pc/SRAT.dimmpxm.dsl:170:
+    0000: 53 52 41 54 88 01 00 00 01 68 42 4F 43 48 53 20  // SRAT.....hBOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/SRAT.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/SRAT.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#19160: FILE: tests/data/acpi/pc/SRAT.dsl:5:
+ * $

ERROR: trailing whitespace
#19250: FILE: tests/data/acpi/pc/SRAT.dsl:95:
+    0000: 53 52 41 54 E0 00 00 00 01 F5 42 4F 43 48 53 20  // SRAT......BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/SRAT.memhp.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/SRAT.memhp.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#19274: FILE: tests/data/acpi/pc/SRAT.memhp.dsl:5:
+ * $

ERROR: trailing whitespace
#19378: FILE: tests/data/acpi/pc/SRAT.memhp.dsl:109:
+    0000: 53 52 41 54 08 01 00 00 01 A2 42 4F 43 48 53 20  // SRAT......BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/SRAT.numamem.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/SRAT.numamem.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#19405: FILE: tests/data/acpi/pc/SRAT.numamem.dsl:5:
+ * $

ERROR: trailing whitespace
#19495: FILE: tests/data/acpi/pc/SRAT.numamem.dsl:95:
+    0000: 53 52 41 54 E0 00 00 00 01 F5 42 4F 43 48 53 20  // SRAT......BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/SSDT.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/SSDT.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#19519: FILE: tests/data/acpi/pc/SSDT.dsl:5:
+ * $

ERROR: trailing whitespace
#19554: FILE: tests/data/acpi/pc/SSDT.dsl:40:
+                    HDLE,   32, $

ERROR: trailing whitespace
#19555: FILE: tests/data/acpi/pc/SSDT.dsl:41:
+                    REVS,   32, $

ERROR: trailing whitespace
#19556: FILE: tests/data/acpi/pc/SSDT.dsl:42:
+                    FUNC,   32, $

ERROR: trailing whitespace
#19562: FILE: tests/data/acpi/pc/SSDT.dsl:48:
+                    RLEN,   32, $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/WAET.acpihmat and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/WAET.acpihmat.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/WAET.acpihmat.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#19734: FILE: tests/data/acpi/pc/WAET.acpihmat.dsl:5:
+ * $

ERROR: trailing whitespace
#19758: FILE: tests/data/acpi/pc/WAET.acpihmat.dsl:29:
+    0000: 57 41 45 54 28 00 00 00 01 88 42 4F 43 48 53 20  // WAET(.....BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/WAET.bridge and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/WAET.bridge.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/WAET.bridge.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#19775: FILE: tests/data/acpi/pc/WAET.bridge.dsl:5:
+ * $

ERROR: trailing whitespace
#19799: FILE: tests/data/acpi/pc/WAET.bridge.dsl:29:
+    0000: 57 41 45 54 28 00 00 00 01 88 42 4F 43 48 53 20  // WAET(.....BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/WAET.cphp and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/WAET.cphp.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/WAET.cphp.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#19816: FILE: tests/data/acpi/pc/WAET.cphp.dsl:5:
+ * $

ERROR: trailing whitespace
#19840: FILE: tests/data/acpi/pc/WAET.cphp.dsl:29:
+    0000: 57 41 45 54 28 00 00 00 01 88 42 4F 43 48 53 20  // WAET(.....BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/WAET.dimmpxm and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/WAET.dimmpxm.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/WAET.dimmpxm.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#19857: FILE: tests/data/acpi/pc/WAET.dimmpxm.dsl:5:
+ * $

ERROR: trailing whitespace
#19881: FILE: tests/data/acpi/pc/WAET.dimmpxm.dsl:29:
+    0000: 57 41 45 54 28 00 00 00 01 88 42 4F 43 48 53 20  // WAET(.....BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/WAET.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/WAET.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#19894: FILE: tests/data/acpi/pc/WAET.dsl:5:
+ * $

ERROR: trailing whitespace
#19918: FILE: tests/data/acpi/pc/WAET.dsl:29:
+    0000: 57 41 45 54 28 00 00 00 01 88 42 4F 43 48 53 20  // WAET(.....BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/WAET.hpbridge and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/WAET.ipmikcs and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/WAET.ipmikcs.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/WAET.ipmikcs.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#19939: FILE: tests/data/acpi/pc/WAET.ipmikcs.dsl:5:
+ * $

ERROR: trailing whitespace
#19963: FILE: tests/data/acpi/pc/WAET.ipmikcs.dsl:29:
+    0000: 57 41 45 54 28 00 00 00 01 88 42 4F 43 48 53 20  // WAET(.....BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/WAET.memhp and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/WAET.memhp.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/WAET.memhp.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#19980: FILE: tests/data/acpi/pc/WAET.memhp.dsl:5:
+ * $

ERROR: trailing whitespace
#20004: FILE: tests/data/acpi/pc/WAET.memhp.dsl:29:
+    0000: 57 41 45 54 28 00 00 00 01 88 42 4F 43 48 53 20  // WAET(.....BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/WAET.numamem and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/WAET.numamem.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/WAET.numamem.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#20021: FILE: tests/data/acpi/pc/WAET.numamem.dsl:5:
+ * $

ERROR: trailing whitespace
#20045: FILE: tests/data/acpi/pc/WAET.numamem.dsl:29:
+    0000: 57 41 45 54 28 00 00 00 01 88 42 4F 43 48 53 20  // WAET(.....BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/pc/WAET.roothp and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/APIC.acpihmat.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/APIC.acpihmat.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#20062: FILE: tests/data/acpi/q35/APIC.acpihmat.dsl:5:
+ * $

ERROR: trailing whitespace
#20162: FILE: tests/data/acpi/q35/APIC.acpihmat.dsl:105:
+    0000: 41 50 49 43 80 00 00 00 01 DA 42 4F 43 48 53 20  // APIC......BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/APIC.bridge and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/APIC.bridge.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/APIC.bridge.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#20184: FILE: tests/data/acpi/q35/APIC.bridge.dsl:5:
+ * $

ERROR: trailing whitespace
#20276: FILE: tests/data/acpi/q35/APIC.bridge.dsl:97:
+    0000: 41 50 49 43 78 00 00 00 01 ED 42 4F 43 48 53 20  // APICx.....BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/APIC.cphp.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/APIC.cphp.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#20294: FILE: tests/data/acpi/q35/APIC.cphp.dsl:5:
+ * $

ERROR: trailing whitespace
#20426: FILE: tests/data/acpi/q35/APIC.cphp.dsl:137:
+    0000: 41 50 49 43 A0 00 00 00 01 7B 42 4F 43 48 53 20  // APIC.....{BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/APIC.dimmpxm.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/APIC.dimmpxm.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#20446: FILE: tests/data/acpi/q35/APIC.dimmpxm.dsl:5:
+ * $

ERROR: trailing whitespace
#20562: FILE: tests/data/acpi/q35/APIC.dimmpxm.dsl:121:
+    0000: 41 50 49 43 90 00 00 00 01 AE 42 4F 43 48 53 20  // APIC......BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/APIC.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/APIC.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#20581: FILE: tests/data/acpi/q35/APIC.dsl:5:
+ * $

ERROR: trailing whitespace
#20673: FILE: tests/data/acpi/q35/APIC.dsl:97:
+    0000: 41 50 49 43 78 00 00 00 01 ED 42 4F 43 48 53 20  // APICx.....BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/APIC.ipmibt and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/APIC.ipmibt.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/APIC.ipmibt.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#20695: FILE: tests/data/acpi/q35/APIC.ipmibt.dsl:5:
+ * $

ERROR: trailing whitespace
#20787: FILE: tests/data/acpi/q35/APIC.ipmibt.dsl:97:
+    0000: 41 50 49 43 78 00 00 00 01 ED 42 4F 43 48 53 20  // APICx.....BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/APIC.memhp and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/APIC.memhp.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/APIC.memhp.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#20809: FILE: tests/data/acpi/q35/APIC.memhp.dsl:5:
+ * $

ERROR: trailing whitespace
#20901: FILE: tests/data/acpi/q35/APIC.memhp.dsl:97:
+    0000: 41 50 49 43 78 00 00 00 01 ED 42 4F 43 48 53 20  // APICx.....BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/APIC.mmio64 and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/APIC.mmio64.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/APIC.mmio64.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#20923: FILE: tests/data/acpi/q35/APIC.mmio64.dsl:5:
+ * $

ERROR: trailing whitespace
#21015: FILE: tests/data/acpi/q35/APIC.mmio64.dsl:97:
+    0000: 41 50 49 43 78 00 00 00 01 ED 42 4F 43 48 53 20  // APICx.....BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/APIC.numamem and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/APIC.numamem.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/APIC.numamem.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#21037: FILE: tests/data/acpi/q35/APIC.numamem.dsl:5:
+ * $

ERROR: trailing whitespace
#21129: FILE: tests/data/acpi/q35/APIC.numamem.dsl:97:
+    0000: 41 50 49 43 78 00 00 00 01 ED 42 4F 43 48 53 20  // APICx.....BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/APIC.tis and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/APIC.tis.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/APIC.tis.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#21151: FILE: tests/data/acpi/q35/APIC.tis.dsl:5:
+ * $

ERROR: trailing whitespace
#21243: FILE: tests/data/acpi/q35/APIC.tis.dsl:97:
+    0000: 41 50 49 43 78 00 00 00 01 ED 42 4F 43 48 53 20  // APICx.....BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/DSDT and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/DSDT.acpihmat and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/DSDT.acpihmat.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/DSDT.acpihmat.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#21267: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:5:
+ * $

ERROR: trailing whitespace
#21357: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:95:
+                VEND,   32, $

ERROR: trailing whitespace
#21501: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:239:
+                    0xFFFF, $

ERROR: trailing whitespace
#21502: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:240:
+                    Zero, $

ERROR: trailing whitespace
#21503: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:241:
+                    LNKE, $

ERROR: trailing whitespace
#21505: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:243:
+                }, $

ERROR: trailing whitespace
#21509: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:247:
+                    0xFFFF, $

ERROR: trailing whitespace
#21510: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:248:
+                    One, $

ERROR: trailing whitespace
#21511: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:249:
+                    LNKF, $

ERROR: trailing whitespace
#21513: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:251:
+                }, $

ERROR: trailing whitespace
#21517: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:255:
+                    0xFFFF, $

ERROR: trailing whitespace
#21518: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:256:
+                    0x02, $

ERROR: trailing whitespace
#21519: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:257:
+                    LNKG, $

ERROR: trailing whitespace
#21521: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:259:
+                }, $

ERROR: trailing whitespace
#21525: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:263:
+                    0xFFFF, $

ERROR: trailing whitespace
#21526: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:264:
+                    0x03, $

ERROR: trailing whitespace
#21527: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:265:
+                    LNKH, $

ERROR: trailing whitespace
#21529: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:267:
+                }, $

ERROR: trailing whitespace
#21533: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:271:
+                    0x0001FFFF, $

ERROR: trailing whitespace
#21534: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:272:
+                    Zero, $

ERROR: trailing whitespace
#21535: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:273:
+                    LNKF, $

ERROR: trailing whitespace
#21537: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:275:
+                }, $

ERROR: trailing whitespace
#21541: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:279:
+                    0x0001FFFF, $

ERROR: trailing whitespace
#21542: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:280:
+                    One, $

ERROR: trailing whitespace
#21543: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:281:
+                    LNKG, $

ERROR: trailing whitespace
#21545: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:283:
+                }, $

ERROR: trailing whitespace
#21549: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:287:
+                    0x0001FFFF, $

ERROR: trailing whitespace
#21550: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:288:
+                    0x02, $

ERROR: trailing whitespace
#21551: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:289:
+                    LNKH, $

ERROR: trailing whitespace
#21553: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:291:
+                }, $

ERROR: trailing whitespace
#21557: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:295:
+                    0x0001FFFF, $

ERROR: trailing whitespace
#21558: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:296:
+                    0x03, $

ERROR: trailing whitespace
#21559: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:297:
+                    LNKE, $

ERROR: trailing whitespace
#21561: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:299:
+                }, $

ERROR: trailing whitespace
#21565: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:303:
+                    0x0002FFFF, $

ERROR: trailing whitespace
#21566: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:304:
+                    Zero, $

ERROR: trailing whitespace
#21567: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:305:
+                    LNKG, $

ERROR: trailing whitespace
#21569: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:307:
+                }, $

ERROR: trailing whitespace
#21573: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:311:
+                    0x0002FFFF, $

ERROR: trailing whitespace
#21574: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:312:
+                    One, $

ERROR: trailing whitespace
#21575: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:313:
+                    LNKH, $

ERROR: trailing whitespace
#21577: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:315:
+                }, $

ERROR: trailing whitespace
#21581: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:319:
+                    0x0002FFFF, $

ERROR: trailing whitespace
#21582: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:320:
+                    0x02, $

ERROR: trailing whitespace
#21583: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:321:
+                    LNKE, $

ERROR: trailing whitespace
#21585: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:323:
+                }, $

ERROR: trailing whitespace
#21589: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:327:
+                    0x0002FFFF, $

ERROR: trailing whitespace
#21590: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:328:
+                    0x03, $

ERROR: trailing whitespace
#21591: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:329:
+                    LNKF, $

ERROR: trailing whitespace
#21593: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:331:
+                }, $

ERROR: trailing whitespace
#21597: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:335:
+                    0x0003FFFF, $

ERROR: trailing whitespace
#21598: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:336:
+                    Zero, $

ERROR: trailing whitespace
#21599: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:337:
+                    LNKH, $

ERROR: trailing whitespace
#21601: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:339:
+                }, $

ERROR: trailing whitespace
#21605: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:343:
+                    0x0003FFFF, $

ERROR: trailing whitespace
#21606: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:344:
+                    One, $

ERROR: trailing whitespace
#21607: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:345:
+                    LNKE, $

ERROR: trailing whitespace
#21609: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:347:
+                }, $

ERROR: trailing whitespace
#21613: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:351:
+                    0x0003FFFF, $

ERROR: trailing whitespace
#21614: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:352:
+                    0x02, $

ERROR: trailing whitespace
#21615: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:353:
+                    LNKF, $

ERROR: trailing whitespace
#21617: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:355:
+                }, $

ERROR: trailing whitespace
#21621: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:359:
+                    0x0003FFFF, $

ERROR: trailing whitespace
#21622: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:360:
+                    0x03, $

ERROR: trailing whitespace
#21623: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:361:
+                    LNKG, $

ERROR: trailing whitespace
#21625: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:363:
+                }, $

ERROR: trailing whitespace
#21629: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:367:
+                    0x0004FFFF, $

ERROR: trailing whitespace
#21630: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:368:
+                    Zero, $

ERROR: trailing whitespace
#21631: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:369:
+                    LNKE, $

ERROR: trailing whitespace
#21633: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:371:
+                }, $

ERROR: trailing whitespace
#21637: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:375:
+                    0x0004FFFF, $

ERROR: trailing whitespace
#21638: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:376:
+                    One, $

ERROR: trailing whitespace
#21639: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:377:
+                    LNKF, $

ERROR: trailing whitespace
#21641: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:379:
+                }, $

ERROR: trailing whitespace
#21645: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:383:
+                    0x0004FFFF, $

ERROR: trailing whitespace
#21646: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:384:
+                    0x02, $

ERROR: trailing whitespace
#21647: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:385:
+                    LNKG, $

ERROR: trailing whitespace
#21649: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:387:
+                }, $

ERROR: trailing whitespace
#21653: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:391:
+                    0x0004FFFF, $

ERROR: trailing whitespace
#21654: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:392:
+                    0x03, $

ERROR: trailing whitespace
#21655: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:393:
+                    LNKH, $

ERROR: trailing whitespace
#21657: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:395:
+                }, $

ERROR: trailing whitespace
#21661: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:399:
+                    0x0005FFFF, $

ERROR: trailing whitespace
#21662: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:400:
+                    Zero, $

ERROR: trailing whitespace
#21663: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:401:
+                    LNKF, $

ERROR: trailing whitespace
#21665: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:403:
+                }, $

ERROR: trailing whitespace
#21669: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:407:
+                    0x0005FFFF, $

ERROR: trailing whitespace
#21670: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:408:
+                    One, $

ERROR: trailing whitespace
#21671: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:409:
+                    LNKG, $

ERROR: trailing whitespace
#21673: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:411:
+                }, $

ERROR: trailing whitespace
#21677: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:415:
+                    0x0005FFFF, $

ERROR: trailing whitespace
#21678: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:416:
+                    0x02, $

ERROR: trailing whitespace
#21679: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:417:
+                    LNKH, $

ERROR: trailing whitespace
#21681: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:419:
+                }, $

ERROR: trailing whitespace
#21685: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:423:
+                    0x0005FFFF, $

ERROR: trailing whitespace
#21686: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:424:
+                    0x03, $

ERROR: trailing whitespace
#21687: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:425:
+                    LNKE, $

ERROR: trailing whitespace
#21689: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:427:
+                }, $

ERROR: trailing whitespace
#21693: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:431:
+                    0x0006FFFF, $

ERROR: trailing whitespace
#21694: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:432:
+                    Zero, $

ERROR: trailing whitespace
#21695: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:433:
+                    LNKG, $

ERROR: trailing whitespace
#21697: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:435:
+                }, $

ERROR: trailing whitespace
#21701: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:439:
+                    0x0006FFFF, $

ERROR: trailing whitespace
#21702: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:440:
+                    One, $

ERROR: trailing whitespace
#21703: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:441:
+                    LNKH, $

ERROR: trailing whitespace
#21705: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:443:
+                }, $

ERROR: trailing whitespace
#21709: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:447:
+                    0x0006FFFF, $

ERROR: trailing whitespace
#21710: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:448:
+                    0x02, $

ERROR: trailing whitespace
#21711: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:449:
+                    LNKE, $

ERROR: trailing whitespace
#21713: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:451:
+                }, $

ERROR: trailing whitespace
#21717: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:455:
+                    0x0006FFFF, $

ERROR: trailing whitespace
#21718: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:456:
+                    0x03, $

ERROR: trailing whitespace
#21719: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:457:
+                    LNKF, $

ERROR: trailing whitespace
#21721: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:459:
+                }, $

ERROR: trailing whitespace
#21725: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:463:
+                    0x0007FFFF, $

ERROR: trailing whitespace
#21726: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:464:
+                    Zero, $

ERROR: trailing whitespace
#21727: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:465:
+                    LNKH, $

ERROR: trailing whitespace
#21729: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:467:
+                }, $

ERROR: trailing whitespace
#21733: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:471:
+                    0x0007FFFF, $

ERROR: trailing whitespace
#21734: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:472:
+                    One, $

ERROR: trailing whitespace
#21735: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:473:
+                    LNKE, $

ERROR: trailing whitespace
#21737: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:475:
+                }, $

ERROR: trailing whitespace
#21741: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:479:
+                    0x0007FFFF, $

ERROR: trailing whitespace
#21742: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:480:
+                    0x02, $

ERROR: trailing whitespace
#21743: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:481:
+                    LNKF, $

ERROR: trailing whitespace
#21745: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:483:
+                }, $

ERROR: trailing whitespace
#21749: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:487:
+                    0x0007FFFF, $

ERROR: trailing whitespace
#21750: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:488:
+                    0x03, $

ERROR: trailing whitespace
#21751: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:489:
+                    LNKG, $

ERROR: trailing whitespace
#21753: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:491:
+                }, $

ERROR: trailing whitespace
#21757: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:495:
+                    0x0008FFFF, $

ERROR: trailing whitespace
#21758: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:496:
+                    Zero, $

ERROR: trailing whitespace
#21759: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:497:
+                    LNKE, $

ERROR: trailing whitespace
#21761: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:499:
+                }, $

ERROR: trailing whitespace
#21765: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:503:
+                    0x0008FFFF, $

ERROR: trailing whitespace
#21766: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:504:
+                    One, $

ERROR: trailing whitespace
#21767: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:505:
+                    LNKF, $

ERROR: trailing whitespace
#21769: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:507:
+                }, $

ERROR: trailing whitespace
#21773: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:511:
+                    0x0008FFFF, $

ERROR: trailing whitespace
#21774: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:512:
+                    0x02, $

ERROR: trailing whitespace
#21775: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:513:
+                    LNKG, $

ERROR: trailing whitespace
#21777: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:515:
+                }, $

ERROR: trailing whitespace
#21781: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:519:
+                    0x0008FFFF, $

ERROR: trailing whitespace
#21782: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:520:
+                    0x03, $

ERROR: trailing whitespace
#21783: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:521:
+                    LNKH, $

ERROR: trailing whitespace
#21785: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:523:
+                }, $

ERROR: trailing whitespace
#21789: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:527:
+                    0x0009FFFF, $

ERROR: trailing whitespace
#21790: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:528:
+                    Zero, $

ERROR: trailing whitespace
#21791: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:529:
+                    LNKF, $

ERROR: trailing whitespace
#21793: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:531:
+                }, $

ERROR: trailing whitespace
#21797: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:535:
+                    0x0009FFFF, $

ERROR: trailing whitespace
#21798: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:536:
+                    One, $

ERROR: trailing whitespace
#21799: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:537:
+                    LNKG, $

ERROR: trailing whitespace
#21801: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:539:
+                }, $

ERROR: trailing whitespace
#21805: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:543:
+                    0x0009FFFF, $

ERROR: trailing whitespace
#21806: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:544:
+                    0x02, $

ERROR: trailing whitespace
#21807: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:545:
+                    LNKH, $

ERROR: trailing whitespace
#21809: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:547:
+                }, $

ERROR: trailing whitespace
#21813: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:551:
+                    0x0009FFFF, $

ERROR: trailing whitespace
#21814: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:552:
+                    0x03, $

ERROR: trailing whitespace
#21815: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:553:
+                    LNKE, $

ERROR: trailing whitespace
#21817: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:555:
+                }, $

ERROR: trailing whitespace
#21821: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:559:
+                    0x000AFFFF, $

ERROR: trailing whitespace
#21822: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:560:
+                    Zero, $

ERROR: trailing whitespace
#21823: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:561:
+                    LNKG, $

ERROR: trailing whitespace
#21825: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:563:
+                }, $

ERROR: trailing whitespace
#21829: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:567:
+                    0x000AFFFF, $

ERROR: trailing whitespace
#21830: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:568:
+                    One, $

ERROR: trailing whitespace
#21831: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:569:
+                    LNKH, $

ERROR: trailing whitespace
#21833: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:571:
+                }, $

ERROR: trailing whitespace
#21837: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:575:
+                    0x000AFFFF, $

ERROR: trailing whitespace
#21838: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:576:
+                    0x02, $

ERROR: trailing whitespace
#21839: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:577:
+                    LNKE, $

ERROR: trailing whitespace
#21841: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:579:
+                }, $

ERROR: trailing whitespace
#21845: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:583:
+                    0x000AFFFF, $

ERROR: trailing whitespace
#21846: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:584:
+                    0x03, $

ERROR: trailing whitespace
#21847: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:585:
+                    LNKF, $

ERROR: trailing whitespace
#21849: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:587:
+                }, $

ERROR: trailing whitespace
#21853: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:591:
+                    0x000BFFFF, $

ERROR: trailing whitespace
#21854: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:592:
+                    Zero, $

ERROR: trailing whitespace
#21855: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:593:
+                    LNKH, $

ERROR: trailing whitespace
#21857: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:595:
+                }, $

ERROR: trailing whitespace
#21861: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:599:
+                    0x000BFFFF, $

ERROR: trailing whitespace
#21862: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:600:
+                    One, $

ERROR: trailing whitespace
#21863: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:601:
+                    LNKE, $

ERROR: trailing whitespace
#21865: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:603:
+                }, $

ERROR: trailing whitespace
#21869: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:607:
+                    0x000BFFFF, $

ERROR: trailing whitespace
#21870: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:608:
+                    0x02, $

ERROR: trailing whitespace
#21871: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:609:
+                    LNKF, $

ERROR: trailing whitespace
#21873: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:611:
+                }, $

ERROR: trailing whitespace
#21877: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:615:
+                    0x000BFFFF, $

ERROR: trailing whitespace
#21878: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:616:
+                    0x03, $

ERROR: trailing whitespace
#21879: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:617:
+                    LNKG, $

ERROR: trailing whitespace
#21881: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:619:
+                }, $

ERROR: trailing whitespace
#21885: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:623:
+                    0x000CFFFF, $

ERROR: trailing whitespace
#21886: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:624:
+                    Zero, $

ERROR: trailing whitespace
#21887: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:625:
+                    LNKE, $

ERROR: trailing whitespace
#21889: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:627:
+                }, $

ERROR: trailing whitespace
#21893: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:631:
+                    0x000CFFFF, $

ERROR: trailing whitespace
#21894: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:632:
+                    One, $

ERROR: trailing whitespace
#21895: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:633:
+                    LNKF, $

ERROR: trailing whitespace
#21897: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:635:
+                }, $

ERROR: trailing whitespace
#21901: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:639:
+                    0x000CFFFF, $

ERROR: trailing whitespace
#21902: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:640:
+                    0x02, $

ERROR: trailing whitespace
#21903: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:641:
+                    LNKG, $

ERROR: trailing whitespace
#21905: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:643:
+                }, $

ERROR: trailing whitespace
#21909: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:647:
+                    0x000CFFFF, $

ERROR: trailing whitespace
#21910: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:648:
+                    0x03, $

ERROR: trailing whitespace
#21911: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:649:
+                    LNKH, $

ERROR: trailing whitespace
#21913: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:651:
+                }, $

ERROR: trailing whitespace
#21917: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:655:
+                    0x000DFFFF, $

ERROR: trailing whitespace
#21918: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:656:
+                    Zero, $

ERROR: trailing whitespace
#21919: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:657:
+                    LNKF, $

ERROR: trailing whitespace
#21921: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:659:
+                }, $

ERROR: trailing whitespace
#21925: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:663:
+                    0x000DFFFF, $

ERROR: trailing whitespace
#21926: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:664:
+                    One, $

ERROR: trailing whitespace
#21927: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:665:
+                    LNKG, $

ERROR: trailing whitespace
#21929: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:667:
+                }, $

ERROR: trailing whitespace
#21933: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:671:
+                    0x000DFFFF, $

ERROR: trailing whitespace
#21934: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:672:
+                    0x02, $

ERROR: trailing whitespace
#21935: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:673:
+                    LNKH, $

ERROR: trailing whitespace
#21937: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:675:
+                }, $

ERROR: trailing whitespace
#21941: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:679:
+                    0x000DFFFF, $

ERROR: trailing whitespace
#21942: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:680:
+                    0x03, $

ERROR: trailing whitespace
#21943: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:681:
+                    LNKE, $

ERROR: trailing whitespace
#21945: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:683:
+                }, $

ERROR: trailing whitespace
#21949: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:687:
+                    0x000EFFFF, $

ERROR: trailing whitespace
#21950: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:688:
+                    Zero, $

ERROR: trailing whitespace
#21951: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:689:
+                    LNKG, $

ERROR: trailing whitespace
#21953: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:691:
+                }, $

ERROR: trailing whitespace
#21957: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:695:
+                    0x000EFFFF, $

ERROR: trailing whitespace
#21958: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:696:
+                    One, $

ERROR: trailing whitespace
#21959: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:697:
+                    LNKH, $

ERROR: trailing whitespace
#21961: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:699:
+                }, $

ERROR: trailing whitespace
#21965: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:703:
+                    0x000EFFFF, $

ERROR: trailing whitespace
#21966: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:704:
+                    0x02, $

ERROR: trailing whitespace
#21967: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:705:
+                    LNKE, $

ERROR: trailing whitespace
#21969: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:707:
+                }, $

ERROR: trailing whitespace
#21973: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:711:
+                    0x000EFFFF, $

ERROR: trailing whitespace
#21974: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:712:
+                    0x03, $

ERROR: trailing whitespace
#21975: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:713:
+                    LNKF, $

ERROR: trailing whitespace
#21977: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:715:
+                }, $

ERROR: trailing whitespace
#21981: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:719:
+                    0x000FFFFF, $

ERROR: trailing whitespace
#21982: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:720:
+                    Zero, $

ERROR: trailing whitespace
#21983: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:721:
+                    LNKH, $

ERROR: trailing whitespace
#21985: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:723:
+                }, $

ERROR: trailing whitespace
#21989: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:727:
+                    0x000FFFFF, $

ERROR: trailing whitespace
#21990: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:728:
+                    One, $

ERROR: trailing whitespace
#21991: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:729:
+                    LNKE, $

ERROR: trailing whitespace
#21993: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:731:
+                }, $

ERROR: trailing whitespace
#21997: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:735:
+                    0x000FFFFF, $

ERROR: trailing whitespace
#21998: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:736:
+                    0x02, $

ERROR: trailing whitespace
#21999: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:737:
+                    LNKF, $

ERROR: trailing whitespace
#22001: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:739:
+                }, $

ERROR: trailing whitespace
#22005: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:743:
+                    0x000FFFFF, $

ERROR: trailing whitespace
#22006: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:744:
+                    0x03, $

ERROR: trailing whitespace
#22007: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:745:
+                    LNKG, $

ERROR: trailing whitespace
#22009: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:747:
+                }, $

ERROR: trailing whitespace
#22013: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:751:
+                    0x0010FFFF, $

ERROR: trailing whitespace
#22014: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:752:
+                    Zero, $

ERROR: trailing whitespace
#22015: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:753:
+                    LNKE, $

ERROR: trailing whitespace
#22017: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:755:
+                }, $

ERROR: trailing whitespace
#22021: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:759:
+                    0x0010FFFF, $

ERROR: trailing whitespace
#22022: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:760:
+                    One, $

ERROR: trailing whitespace
#22023: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:761:
+                    LNKF, $

ERROR: trailing whitespace
#22025: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:763:
+                }, $

ERROR: trailing whitespace
#22029: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:767:
+                    0x0010FFFF, $

ERROR: trailing whitespace
#22030: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:768:
+                    0x02, $

ERROR: trailing whitespace
#22031: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:769:
+                    LNKG, $

ERROR: trailing whitespace
#22033: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:771:
+                }, $

ERROR: trailing whitespace
#22037: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:775:
+                    0x0010FFFF, $

ERROR: trailing whitespace
#22038: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:776:
+                    0x03, $

ERROR: trailing whitespace
#22039: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:777:
+                    LNKH, $

ERROR: trailing whitespace
#22041: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:779:
+                }, $

ERROR: trailing whitespace
#22045: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:783:
+                    0x0011FFFF, $

ERROR: trailing whitespace
#22046: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:784:
+                    Zero, $

ERROR: trailing whitespace
#22047: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:785:
+                    LNKF, $

ERROR: trailing whitespace
#22049: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:787:
+                }, $

ERROR: trailing whitespace
#22053: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:791:
+                    0x0011FFFF, $

ERROR: trailing whitespace
#22054: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:792:
+                    One, $

ERROR: trailing whitespace
#22055: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:793:
+                    LNKG, $

ERROR: trailing whitespace
#22057: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:795:
+                }, $

ERROR: trailing whitespace
#22061: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:799:
+                    0x0011FFFF, $

ERROR: trailing whitespace
#22062: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:800:
+                    0x02, $

ERROR: trailing whitespace
#22063: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:801:
+                    LNKH, $

ERROR: trailing whitespace
#22065: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:803:
+                }, $

ERROR: trailing whitespace
#22069: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:807:
+                    0x0011FFFF, $

ERROR: trailing whitespace
#22070: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:808:
+                    0x03, $

ERROR: trailing whitespace
#22071: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:809:
+                    LNKE, $

ERROR: trailing whitespace
#22073: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:811:
+                }, $

ERROR: trailing whitespace
#22077: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:815:
+                    0x0012FFFF, $

ERROR: trailing whitespace
#22078: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:816:
+                    Zero, $

ERROR: trailing whitespace
#22079: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:817:
+                    LNKG, $

ERROR: trailing whitespace
#22081: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:819:
+                }, $

ERROR: trailing whitespace
#22085: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:823:
+                    0x0012FFFF, $

ERROR: trailing whitespace
#22086: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:824:
+                    One, $

ERROR: trailing whitespace
#22087: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:825:
+                    LNKH, $

ERROR: trailing whitespace
#22089: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:827:
+                }, $

ERROR: trailing whitespace
#22093: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:831:
+                    0x0012FFFF, $

ERROR: trailing whitespace
#22094: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:832:
+                    0x02, $

ERROR: trailing whitespace
#22095: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:833:
+                    LNKE, $

ERROR: trailing whitespace
#22097: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:835:
+                }, $

ERROR: trailing whitespace
#22101: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:839:
+                    0x0012FFFF, $

ERROR: trailing whitespace
#22102: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:840:
+                    0x03, $

ERROR: trailing whitespace
#22103: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:841:
+                    LNKF, $

ERROR: trailing whitespace
#22105: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:843:
+                }, $

ERROR: trailing whitespace
#22109: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:847:
+                    0x0013FFFF, $

ERROR: trailing whitespace
#22110: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:848:
+                    Zero, $

ERROR: trailing whitespace
#22111: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:849:
+                    LNKH, $

ERROR: trailing whitespace
#22113: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:851:
+                }, $

ERROR: trailing whitespace
#22117: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:855:
+                    0x0013FFFF, $

ERROR: trailing whitespace
#22118: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:856:
+                    One, $

ERROR: trailing whitespace
#22119: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:857:
+                    LNKE, $

ERROR: trailing whitespace
#22121: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:859:
+                }, $

ERROR: trailing whitespace
#22125: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:863:
+                    0x0013FFFF, $

ERROR: trailing whitespace
#22126: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:864:
+                    0x02, $

ERROR: trailing whitespace
#22127: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:865:
+                    LNKF, $

ERROR: trailing whitespace
#22129: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:867:
+                }, $

ERROR: trailing whitespace
#22133: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:871:
+                    0x0013FFFF, $

ERROR: trailing whitespace
#22134: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:872:
+                    0x03, $

ERROR: trailing whitespace
#22135: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:873:
+                    LNKG, $

ERROR: trailing whitespace
#22137: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:875:
+                }, $

ERROR: trailing whitespace
#22141: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:879:
+                    0x0014FFFF, $

ERROR: trailing whitespace
#22142: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:880:
+                    Zero, $

ERROR: trailing whitespace
#22143: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:881:
+                    LNKE, $

ERROR: trailing whitespace
#22145: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:883:
+                }, $

ERROR: trailing whitespace
#22149: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:887:
+                    0x0014FFFF, $

ERROR: trailing whitespace
#22150: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:888:
+                    One, $

ERROR: trailing whitespace
#22151: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:889:
+                    LNKF, $

ERROR: trailing whitespace
#22153: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:891:
+                }, $

ERROR: trailing whitespace
#22157: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:895:
+                    0x0014FFFF, $

ERROR: trailing whitespace
#22158: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:896:
+                    0x02, $

ERROR: trailing whitespace
#22159: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:897:
+                    LNKG, $

ERROR: trailing whitespace
#22161: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:899:
+                }, $

ERROR: trailing whitespace
#22165: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:903:
+                    0x0014FFFF, $

ERROR: trailing whitespace
#22166: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:904:
+                    0x03, $

ERROR: trailing whitespace
#22167: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:905:
+                    LNKH, $

ERROR: trailing whitespace
#22169: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:907:
+                }, $

ERROR: trailing whitespace
#22173: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:911:
+                    0x0015FFFF, $

ERROR: trailing whitespace
#22174: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:912:
+                    Zero, $

ERROR: trailing whitespace
#22175: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:913:
+                    LNKF, $

ERROR: trailing whitespace
#22177: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:915:
+                }, $

ERROR: trailing whitespace
#22181: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:919:
+                    0x0015FFFF, $

ERROR: trailing whitespace
#22182: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:920:
+                    One, $

ERROR: trailing whitespace
#22183: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:921:
+                    LNKG, $

ERROR: trailing whitespace
#22185: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:923:
+                }, $

ERROR: trailing whitespace
#22189: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:927:
+                    0x0015FFFF, $

ERROR: trailing whitespace
#22190: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:928:
+                    0x02, $

ERROR: trailing whitespace
#22191: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:929:
+                    LNKH, $

ERROR: trailing whitespace
#22193: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:931:
+                }, $

ERROR: trailing whitespace
#22197: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:935:
+                    0x0015FFFF, $

ERROR: trailing whitespace
#22198: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:936:
+                    0x03, $

ERROR: trailing whitespace
#22199: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:937:
+                    LNKE, $

ERROR: trailing whitespace
#22201: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:939:
+                }, $

ERROR: trailing whitespace
#22205: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:943:
+                    0x0016FFFF, $

ERROR: trailing whitespace
#22206: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:944:
+                    Zero, $

ERROR: trailing whitespace
#22207: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:945:
+                    LNKG, $

ERROR: trailing whitespace
#22209: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:947:
+                }, $

ERROR: trailing whitespace
#22213: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:951:
+                    0x0016FFFF, $

ERROR: trailing whitespace
#22214: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:952:
+                    One, $

ERROR: trailing whitespace
#22215: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:953:
+                    LNKH, $

ERROR: trailing whitespace
#22217: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:955:
+                }, $

ERROR: trailing whitespace
#22221: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:959:
+                    0x0016FFFF, $

ERROR: trailing whitespace
#22222: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:960:
+                    0x02, $

ERROR: trailing whitespace
#22223: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:961:
+                    LNKE, $

ERROR: trailing whitespace
#22225: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:963:
+                }, $

ERROR: trailing whitespace
#22229: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:967:
+                    0x0016FFFF, $

ERROR: trailing whitespace
#22230: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:968:
+                    0x03, $

ERROR: trailing whitespace
#22231: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:969:
+                    LNKF, $

ERROR: trailing whitespace
#22233: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:971:
+                }, $

ERROR: trailing whitespace
#22237: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:975:
+                    0x0017FFFF, $

ERROR: trailing whitespace
#22238: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:976:
+                    Zero, $

ERROR: trailing whitespace
#22239: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:977:
+                    LNKH, $

ERROR: trailing whitespace
#22241: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:979:
+                }, $

ERROR: trailing whitespace
#22245: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:983:
+                    0x0017FFFF, $

ERROR: trailing whitespace
#22246: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:984:
+                    One, $

ERROR: trailing whitespace
#22247: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:985:
+                    LNKE, $

ERROR: trailing whitespace
#22249: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:987:
+                }, $

ERROR: trailing whitespace
#22253: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:991:
+                    0x0017FFFF, $

ERROR: trailing whitespace
#22254: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:992:
+                    0x02, $

ERROR: trailing whitespace
#22255: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:993:
+                    LNKF, $

ERROR: trailing whitespace
#22257: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:995:
+                }, $

ERROR: trailing whitespace
#22261: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:999:
+                    0x0017FFFF, $

ERROR: trailing whitespace
#22262: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1000:
+                    0x03, $

ERROR: trailing whitespace
#22263: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1001:
+                    LNKG, $

ERROR: trailing whitespace
#22265: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1003:
+                }, $

ERROR: trailing whitespace
#22269: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1007:
+                    0x0018FFFF, $

ERROR: trailing whitespace
#22270: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1008:
+                    Zero, $

ERROR: trailing whitespace
#22271: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1009:
+                    LNKE, $

ERROR: trailing whitespace
#22273: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1011:
+                }, $

ERROR: trailing whitespace
#22277: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1015:
+                    0x0018FFFF, $

ERROR: trailing whitespace
#22278: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1016:
+                    One, $

ERROR: trailing whitespace
#22279: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1017:
+                    LNKF, $

ERROR: trailing whitespace
#22281: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1019:
+                }, $

ERROR: trailing whitespace
#22285: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1023:
+                    0x0018FFFF, $

ERROR: trailing whitespace
#22286: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1024:
+                    0x02, $

ERROR: trailing whitespace
#22287: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1025:
+                    LNKG, $

ERROR: trailing whitespace
#22289: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1027:
+                }, $

ERROR: trailing whitespace
#22293: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1031:
+                    0x0018FFFF, $

ERROR: trailing whitespace
#22294: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1032:
+                    0x03, $

ERROR: trailing whitespace
#22295: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1033:
+                    LNKH, $

ERROR: trailing whitespace
#22297: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1035:
+                }, $

ERROR: trailing whitespace
#22301: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1039:
+                    0x0019FFFF, $

ERROR: trailing whitespace
#22302: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1040:
+                    Zero, $

ERROR: trailing whitespace
#22303: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1041:
+                    LNKA, $

ERROR: trailing whitespace
#22305: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1043:
+                }, $

ERROR: trailing whitespace
#22309: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1047:
+                    0x0019FFFF, $

ERROR: trailing whitespace
#22310: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1048:
+                    One, $

ERROR: trailing whitespace
#22311: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1049:
+                    LNKB, $

ERROR: trailing whitespace
#22313: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1051:
+                }, $

ERROR: trailing whitespace
#22317: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1055:
+                    0x0019FFFF, $

ERROR: trailing whitespace
#22318: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1056:
+                    0x02, $

ERROR: trailing whitespace
#22319: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1057:
+                    LNKC, $

ERROR: trailing whitespace
#22321: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1059:
+                }, $

ERROR: trailing whitespace
#22325: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1063:
+                    0x0019FFFF, $

ERROR: trailing whitespace
#22326: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1064:
+                    0x03, $

ERROR: trailing whitespace
#22327: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1065:
+                    LNKD, $

ERROR: trailing whitespace
#22329: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1067:
+                }, $

ERROR: trailing whitespace
#22333: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1071:
+                    0x001AFFFF, $

ERROR: trailing whitespace
#22334: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1072:
+                    Zero, $

ERROR: trailing whitespace
#22335: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1073:
+                    LNKA, $

ERROR: trailing whitespace
#22337: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1075:
+                }, $

ERROR: trailing whitespace
#22341: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1079:
+                    0x001AFFFF, $

ERROR: trailing whitespace
#22342: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1080:
+                    One, $

ERROR: trailing whitespace
#22343: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1081:
+                    LNKB, $

ERROR: trailing whitespace
#22345: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1083:
+                }, $

ERROR: trailing whitespace
#22349: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1087:
+                    0x001AFFFF, $

ERROR: trailing whitespace
#22350: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1088:
+                    0x02, $

ERROR: trailing whitespace
#22351: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1089:
+                    LNKC, $

ERROR: trailing whitespace
#22353: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1091:
+                }, $

ERROR: trailing whitespace
#22357: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1095:
+                    0x001AFFFF, $

ERROR: trailing whitespace
#22358: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1096:
+                    0x03, $

ERROR: trailing whitespace
#22359: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1097:
+                    LNKD, $

ERROR: trailing whitespace
#22361: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1099:
+                }, $

ERROR: trailing whitespace
#22365: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1103:
+                    0x001BFFFF, $

ERROR: trailing whitespace
#22366: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1104:
+                    Zero, $

ERROR: trailing whitespace
#22367: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1105:
+                    LNKA, $

ERROR: trailing whitespace
#22369: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1107:
+                }, $

ERROR: trailing whitespace
#22373: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1111:
+                    0x001BFFFF, $

ERROR: trailing whitespace
#22374: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1112:
+                    One, $

ERROR: trailing whitespace
#22375: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1113:
+                    LNKB, $

ERROR: trailing whitespace
#22377: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1115:
+                }, $

ERROR: trailing whitespace
#22381: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1119:
+                    0x001BFFFF, $

ERROR: trailing whitespace
#22382: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1120:
+                    0x02, $

ERROR: trailing whitespace
#22383: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1121:
+                    LNKC, $

ERROR: trailing whitespace
#22385: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1123:
+                }, $

ERROR: trailing whitespace
#22389: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1127:
+                    0x001BFFFF, $

ERROR: trailing whitespace
#22390: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1128:
+                    0x03, $

ERROR: trailing whitespace
#22391: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1129:
+                    LNKD, $

ERROR: trailing whitespace
#22393: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1131:
+                }, $

ERROR: trailing whitespace
#22397: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1135:
+                    0x001CFFFF, $

ERROR: trailing whitespace
#22398: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1136:
+                    Zero, $

ERROR: trailing whitespace
#22399: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1137:
+                    LNKA, $

ERROR: trailing whitespace
#22401: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1139:
+                }, $

ERROR: trailing whitespace
#22405: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1143:
+                    0x001CFFFF, $

ERROR: trailing whitespace
#22406: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1144:
+                    One, $

ERROR: trailing whitespace
#22407: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1145:
+                    LNKB, $

ERROR: trailing whitespace
#22409: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1147:
+                }, $

ERROR: trailing whitespace
#22413: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1151:
+                    0x001CFFFF, $

ERROR: trailing whitespace
#22414: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1152:
+                    0x02, $

ERROR: trailing whitespace
#22415: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1153:
+                    LNKC, $

ERROR: trailing whitespace
#22417: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1155:
+                }, $

ERROR: trailing whitespace
#22421: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1159:
+                    0x001CFFFF, $

ERROR: trailing whitespace
#22422: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1160:
+                    0x03, $

ERROR: trailing whitespace
#22423: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1161:
+                    LNKD, $

ERROR: trailing whitespace
#22425: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1163:
+                }, $

ERROR: trailing whitespace
#22429: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1167:
+                    0x001DFFFF, $

ERROR: trailing whitespace
#22430: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1168:
+                    Zero, $

ERROR: trailing whitespace
#22431: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1169:
+                    LNKA, $

ERROR: trailing whitespace
#22433: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1171:
+                }, $

ERROR: trailing whitespace
#22437: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1175:
+                    0x001DFFFF, $

ERROR: trailing whitespace
#22438: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1176:
+                    One, $

ERROR: trailing whitespace
#22439: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1177:
+                    LNKB, $

ERROR: trailing whitespace
#22441: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1179:
+                }, $

ERROR: trailing whitespace
#22445: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1183:
+                    0x001DFFFF, $

ERROR: trailing whitespace
#22446: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1184:
+                    0x02, $

ERROR: trailing whitespace
#22447: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1185:
+                    LNKC, $

ERROR: trailing whitespace
#22449: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1187:
+                }, $

ERROR: trailing whitespace
#22453: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1191:
+                    0x001DFFFF, $

ERROR: trailing whitespace
#22454: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1192:
+                    0x03, $

ERROR: trailing whitespace
#22455: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1193:
+                    LNKD, $

ERROR: trailing whitespace
#22457: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1195:
+                }, $

ERROR: trailing whitespace
#22461: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1199:
+                    0x001EFFFF, $

ERROR: trailing whitespace
#22462: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1200:
+                    Zero, $

ERROR: trailing whitespace
#22463: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1201:
+                    LNKE, $

ERROR: trailing whitespace
#22465: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1203:
+                }, $

ERROR: trailing whitespace
#22469: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1207:
+                    0x001EFFFF, $

ERROR: trailing whitespace
#22470: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1208:
+                    One, $

ERROR: trailing whitespace
#22471: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1209:
+                    LNKF, $

ERROR: trailing whitespace
#22473: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1211:
+                }, $

ERROR: trailing whitespace
#22477: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1215:
+                    0x001EFFFF, $

ERROR: trailing whitespace
#22478: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1216:
+                    0x02, $

ERROR: trailing whitespace
#22479: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1217:
+                    LNKG, $

ERROR: trailing whitespace
#22481: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1219:
+                }, $

ERROR: trailing whitespace
#22485: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1223:
+                    0x001EFFFF, $

ERROR: trailing whitespace
#22486: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1224:
+                    0x03, $

ERROR: trailing whitespace
#22487: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1225:
+                    LNKH, $

ERROR: trailing whitespace
#22489: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1227:
+                }, $

ERROR: trailing whitespace
#22493: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1231:
+                    0x001FFFFF, $

ERROR: trailing whitespace
#22494: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1232:
+                    Zero, $

ERROR: trailing whitespace
#22495: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1233:
+                    LNKA, $

ERROR: trailing whitespace
#22497: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1235:
+                }, $

ERROR: trailing whitespace
#22501: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1239:
+                    0x001FFFFF, $

ERROR: trailing whitespace
#22502: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1240:
+                    One, $

ERROR: trailing whitespace
#22503: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1241:
+                    LNKB, $

ERROR: trailing whitespace
#22505: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1243:
+                }, $

ERROR: trailing whitespace
#22509: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1247:
+                    0x001FFFFF, $

ERROR: trailing whitespace
#22510: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1248:
+                    0x02, $

ERROR: trailing whitespace
#22511: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1249:
+                    LNKC, $

ERROR: trailing whitespace
#22513: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1251:
+                }, $

ERROR: trailing whitespace
#22517: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1255:
+                    0x001FFFFF, $

ERROR: trailing whitespace
#22518: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1256:
+                    0x03, $

ERROR: trailing whitespace
#22519: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1257:
+                    LNKD, $

ERROR: trailing whitespace
#22527: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1265:
+                    0xFFFF, $

ERROR: trailing whitespace
#22528: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1266:
+                    Zero, $

ERROR: trailing whitespace
#22529: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1267:
+                    GSIE, $

ERROR: trailing whitespace
#22531: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1269:
+                }, $

ERROR: trailing whitespace
#22535: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1273:
+                    0xFFFF, $

ERROR: trailing whitespace
#22536: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1274:
+                    One, $

ERROR: trailing whitespace
#22537: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1275:
+                    GSIF, $

ERROR: trailing whitespace
#22539: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1277:
+                }, $

ERROR: trailing whitespace
#22543: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1281:
+                    0xFFFF, $

ERROR: trailing whitespace
#22544: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1282:
+                    0x02, $

ERROR: trailing whitespace
#22545: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1283:
+                    GSIG, $

ERROR: trailing whitespace
#22547: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1285:
+                }, $

ERROR: trailing whitespace
#22551: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1289:
+                    0xFFFF, $

ERROR: trailing whitespace
#22552: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1290:
+                    0x03, $

ERROR: trailing whitespace
#22553: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1291:
+                    GSIH, $

ERROR: trailing whitespace
#22555: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1293:
+                }, $

ERROR: trailing whitespace
#22559: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1297:
+                    0x0001FFFF, $

ERROR: trailing whitespace
#22560: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1298:
+                    Zero, $

ERROR: trailing whitespace
#22561: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1299:
+                    GSIF, $

ERROR: trailing whitespace
#22563: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1301:
+                }, $

ERROR: trailing whitespace
#22567: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1305:
+                    0x0001FFFF, $

ERROR: trailing whitespace
#22568: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1306:
+                    One, $

ERROR: trailing whitespace
#22569: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1307:
+                    GSIG, $

ERROR: trailing whitespace
#22571: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1309:
+                }, $

ERROR: trailing whitespace
#22575: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1313:
+                    0x0001FFFF, $

ERROR: trailing whitespace
#22576: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1314:
+                    0x02, $

ERROR: trailing whitespace
#22577: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1315:
+                    GSIH, $

ERROR: trailing whitespace
#22579: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1317:
+                }, $

ERROR: trailing whitespace
#22583: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1321:
+                    0x0001FFFF, $

ERROR: trailing whitespace
#22584: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1322:
+                    0x03, $

ERROR: trailing whitespace
#22585: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1323:
+                    GSIE, $

ERROR: trailing whitespace
#22587: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1325:
+                }, $

ERROR: trailing whitespace
#22591: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1329:
+                    0x0002FFFF, $

ERROR: trailing whitespace
#22592: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1330:
+                    Zero, $

ERROR: trailing whitespace
#22593: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1331:
+                    GSIG, $

ERROR: trailing whitespace
#22595: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1333:
+                }, $

ERROR: trailing whitespace
#22599: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1337:
+                    0x0002FFFF, $

ERROR: trailing whitespace
#22600: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1338:
+                    One, $

ERROR: trailing whitespace
#22601: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1339:
+                    GSIH, $

ERROR: trailing whitespace
#22603: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1341:
+                }, $

ERROR: trailing whitespace
#22607: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1345:
+                    0x0002FFFF, $

ERROR: trailing whitespace
#22608: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1346:
+                    0x02, $

ERROR: trailing whitespace
#22609: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1347:
+                    GSIE, $

ERROR: trailing whitespace
#22611: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1349:
+                }, $

ERROR: trailing whitespace
#22615: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1353:
+                    0x0002FFFF, $

ERROR: trailing whitespace
#22616: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1354:
+                    0x03, $

ERROR: trailing whitespace
#22617: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1355:
+                    GSIF, $

ERROR: trailing whitespace
#22619: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1357:
+                }, $

ERROR: trailing whitespace
#22623: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1361:
+                    0x0003FFFF, $

ERROR: trailing whitespace
#22624: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1362:
+                    Zero, $

ERROR: trailing whitespace
#22625: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1363:
+                    GSIH, $

ERROR: trailing whitespace
#22627: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1365:
+                }, $

ERROR: trailing whitespace
#22631: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1369:
+                    0x0003FFFF, $

ERROR: trailing whitespace
#22632: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1370:
+                    One, $

ERROR: trailing whitespace
#22633: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1371:
+                    GSIE, $

ERROR: trailing whitespace
#22635: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1373:
+                }, $

ERROR: trailing whitespace
#22639: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1377:
+                    0x0003FFFF, $

ERROR: trailing whitespace
#22640: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1378:
+                    0x02, $

ERROR: trailing whitespace
#22641: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1379:
+                    GSIF, $

ERROR: trailing whitespace
#22643: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1381:
+                }, $

ERROR: trailing whitespace
#22647: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1385:
+                    0x0003FFFF, $

ERROR: trailing whitespace
#22648: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1386:
+                    0x03, $

ERROR: trailing whitespace
#22649: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1387:
+                    GSIG, $

ERROR: trailing whitespace
#22651: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1389:
+                }, $

ERROR: trailing whitespace
#22655: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1393:
+                    0x0004FFFF, $

ERROR: trailing whitespace
#22656: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1394:
+                    Zero, $

ERROR: trailing whitespace
#22657: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1395:
+                    GSIE, $

ERROR: trailing whitespace
#22659: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1397:
+                }, $

ERROR: trailing whitespace
#22663: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1401:
+                    0x0004FFFF, $

ERROR: trailing whitespace
#22664: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1402:
+                    One, $

ERROR: trailing whitespace
#22665: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1403:
+                    GSIF, $

ERROR: trailing whitespace
#22667: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1405:
+                }, $

ERROR: trailing whitespace
#22671: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1409:
+                    0x0004FFFF, $

ERROR: trailing whitespace
#22672: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1410:
+                    0x02, $

ERROR: trailing whitespace
#22673: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1411:
+                    GSIG, $

ERROR: trailing whitespace
#22675: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1413:
+                }, $

ERROR: trailing whitespace
#22679: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1417:
+                    0x0004FFFF, $

ERROR: trailing whitespace
#22680: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1418:
+                    0x03, $

ERROR: trailing whitespace
#22681: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1419:
+                    GSIH, $

ERROR: trailing whitespace
#22683: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1421:
+                }, $

ERROR: trailing whitespace
#22687: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1425:
+                    0x0005FFFF, $

ERROR: trailing whitespace
#22688: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1426:
+                    Zero, $

ERROR: trailing whitespace
#22689: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1427:
+                    GSIF, $

ERROR: trailing whitespace
#22691: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1429:
+                }, $

ERROR: trailing whitespace
#22695: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1433:
+                    0x0005FFFF, $

ERROR: trailing whitespace
#22696: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1434:
+                    One, $

ERROR: trailing whitespace
#22697: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1435:
+                    GSIG, $

ERROR: trailing whitespace
#22699: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1437:
+                }, $

ERROR: trailing whitespace
#22703: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1441:
+                    0x0005FFFF, $

ERROR: trailing whitespace
#22704: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1442:
+                    0x02, $

ERROR: trailing whitespace
#22705: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1443:
+                    GSIH, $

ERROR: trailing whitespace
#22707: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1445:
+                }, $

ERROR: trailing whitespace
#22711: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1449:
+                    0x0005FFFF, $

ERROR: trailing whitespace
#22712: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1450:
+                    0x03, $

ERROR: trailing whitespace
#22713: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1451:
+                    GSIE, $

ERROR: trailing whitespace
#22715: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1453:
+                }, $

ERROR: trailing whitespace
#22719: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1457:
+                    0x0006FFFF, $

ERROR: trailing whitespace
#22720: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1458:
+                    Zero, $

ERROR: trailing whitespace
#22721: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1459:
+                    GSIG, $

ERROR: trailing whitespace
#22723: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1461:
+                }, $

ERROR: trailing whitespace
#22727: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1465:
+                    0x0006FFFF, $

ERROR: trailing whitespace
#22728: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1466:
+                    One, $

ERROR: trailing whitespace
#22729: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1467:
+                    GSIH, $

ERROR: trailing whitespace
#22731: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1469:
+                }, $

ERROR: trailing whitespace
#22735: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1473:
+                    0x0006FFFF, $

ERROR: trailing whitespace
#22736: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1474:
+                    0x02, $

ERROR: trailing whitespace
#22737: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1475:
+                    GSIE, $

ERROR: trailing whitespace
#22739: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1477:
+                }, $

ERROR: trailing whitespace
#22743: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1481:
+                    0x0006FFFF, $

ERROR: trailing whitespace
#22744: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1482:
+                    0x03, $

ERROR: trailing whitespace
#22745: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1483:
+                    GSIF, $

ERROR: trailing whitespace
#22747: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1485:
+                }, $

ERROR: trailing whitespace
#22751: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1489:
+                    0x0007FFFF, $

ERROR: trailing whitespace
#22752: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1490:
+                    Zero, $

ERROR: trailing whitespace
#22753: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1491:
+                    GSIH, $

ERROR: trailing whitespace
#22755: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1493:
+                }, $

ERROR: trailing whitespace
#22759: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1497:
+                    0x0007FFFF, $

ERROR: trailing whitespace
#22760: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1498:
+                    One, $

ERROR: trailing whitespace
#22761: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1499:
+                    GSIE, $

ERROR: trailing whitespace
#22763: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1501:
+                }, $

ERROR: trailing whitespace
#22767: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1505:
+                    0x0007FFFF, $

ERROR: trailing whitespace
#22768: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1506:
+                    0x02, $

ERROR: trailing whitespace
#22769: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1507:
+                    GSIF, $

ERROR: trailing whitespace
#22771: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1509:
+                }, $

ERROR: trailing whitespace
#22775: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1513:
+                    0x0007FFFF, $

ERROR: trailing whitespace
#22776: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1514:
+                    0x03, $

ERROR: trailing whitespace
#22777: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1515:
+                    GSIG, $

ERROR: trailing whitespace
#22779: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1517:
+                }, $

ERROR: trailing whitespace
#22783: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1521:
+                    0x0008FFFF, $

ERROR: trailing whitespace
#22784: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1522:
+                    Zero, $

ERROR: trailing whitespace
#22785: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1523:
+                    GSIE, $

ERROR: trailing whitespace
#22787: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1525:
+                }, $

ERROR: trailing whitespace
#22791: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1529:
+                    0x0008FFFF, $

ERROR: trailing whitespace
#22792: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1530:
+                    One, $

ERROR: trailing whitespace
#22793: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1531:
+                    GSIF, $

ERROR: trailing whitespace
#22795: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1533:
+                }, $

ERROR: trailing whitespace
#22799: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1537:
+                    0x0008FFFF, $

ERROR: trailing whitespace
#22800: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1538:
+                    0x02, $

ERROR: trailing whitespace
#22801: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1539:
+                    GSIG, $

ERROR: trailing whitespace
#22803: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1541:
+                }, $

ERROR: trailing whitespace
#22807: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1545:
+                    0x0008FFFF, $

ERROR: trailing whitespace
#22808: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1546:
+                    0x03, $

ERROR: trailing whitespace
#22809: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1547:
+                    GSIH, $

ERROR: trailing whitespace
#22811: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1549:
+                }, $

ERROR: trailing whitespace
#22815: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1553:
+                    0x0009FFFF, $

ERROR: trailing whitespace
#22816: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1554:
+                    Zero, $

ERROR: trailing whitespace
#22817: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1555:
+                    GSIF, $

ERROR: trailing whitespace
#22819: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1557:
+                }, $

ERROR: trailing whitespace
#22823: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1561:
+                    0x0009FFFF, $

ERROR: trailing whitespace
#22824: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1562:
+                    One, $

ERROR: trailing whitespace
#22825: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1563:
+                    GSIG, $

ERROR: trailing whitespace
#22827: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1565:
+                }, $

ERROR: trailing whitespace
#22831: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1569:
+                    0x0009FFFF, $

ERROR: trailing whitespace
#22832: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1570:
+                    0x02, $

ERROR: trailing whitespace
#22833: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1571:
+                    GSIH, $

ERROR: trailing whitespace
#22835: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1573:
+                }, $

ERROR: trailing whitespace
#22839: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1577:
+                    0x0009FFFF, $

ERROR: trailing whitespace
#22840: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1578:
+                    0x03, $

ERROR: trailing whitespace
#22841: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1579:
+                    GSIE, $

ERROR: trailing whitespace
#22843: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1581:
+                }, $

ERROR: trailing whitespace
#22847: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1585:
+                    0x000AFFFF, $

ERROR: trailing whitespace
#22848: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1586:
+                    Zero, $

ERROR: trailing whitespace
#22849: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1587:
+                    GSIG, $

ERROR: trailing whitespace
#22851: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1589:
+                }, $

ERROR: trailing whitespace
#22855: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1593:
+                    0x000AFFFF, $

ERROR: trailing whitespace
#22856: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1594:
+                    One, $

ERROR: trailing whitespace
#22857: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1595:
+                    GSIH, $

ERROR: trailing whitespace
#22859: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1597:
+                }, $

ERROR: trailing whitespace
#22863: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1601:
+                    0x000AFFFF, $

ERROR: trailing whitespace
#22864: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1602:
+                    0x02, $

ERROR: trailing whitespace
#22865: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1603:
+                    GSIE, $

ERROR: trailing whitespace
#22867: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1605:
+                }, $

ERROR: trailing whitespace
#22871: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1609:
+                    0x000AFFFF, $

ERROR: trailing whitespace
#22872: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1610:
+                    0x03, $

ERROR: trailing whitespace
#22873: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1611:
+                    GSIF, $

ERROR: trailing whitespace
#22875: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1613:
+                }, $

ERROR: trailing whitespace
#22879: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1617:
+                    0x000BFFFF, $

ERROR: trailing whitespace
#22880: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1618:
+                    Zero, $

ERROR: trailing whitespace
#22881: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1619:
+                    GSIH, $

ERROR: trailing whitespace
#22883: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1621:
+                }, $

ERROR: trailing whitespace
#22887: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1625:
+                    0x000BFFFF, $

ERROR: trailing whitespace
#22888: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1626:
+                    One, $

ERROR: trailing whitespace
#22889: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1627:
+                    GSIE, $

ERROR: trailing whitespace
#22891: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1629:
+                }, $

ERROR: trailing whitespace
#22895: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1633:
+                    0x000BFFFF, $

ERROR: trailing whitespace
#22896: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1634:
+                    0x02, $

ERROR: trailing whitespace
#22897: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1635:
+                    GSIF, $

ERROR: trailing whitespace
#22899: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1637:
+                }, $

ERROR: trailing whitespace
#22903: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1641:
+                    0x000BFFFF, $

ERROR: trailing whitespace
#22904: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1642:
+                    0x03, $

ERROR: trailing whitespace
#22905: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1643:
+                    GSIG, $

ERROR: trailing whitespace
#22907: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1645:
+                }, $

ERROR: trailing whitespace
#22911: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1649:
+                    0x000CFFFF, $

ERROR: trailing whitespace
#22912: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1650:
+                    Zero, $

ERROR: trailing whitespace
#22913: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1651:
+                    GSIE, $

ERROR: trailing whitespace
#22915: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1653:
+                }, $

ERROR: trailing whitespace
#22919: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1657:
+                    0x000CFFFF, $

ERROR: trailing whitespace
#22920: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1658:
+                    One, $

ERROR: trailing whitespace
#22921: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1659:
+                    GSIF, $

ERROR: trailing whitespace
#22923: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1661:
+                }, $

ERROR: trailing whitespace
#22927: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1665:
+                    0x000CFFFF, $

ERROR: trailing whitespace
#22928: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1666:
+                    0x02, $

ERROR: trailing whitespace
#22929: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1667:
+                    GSIG, $

ERROR: trailing whitespace
#22931: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1669:
+                }, $

ERROR: trailing whitespace
#22935: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1673:
+                    0x000CFFFF, $

ERROR: trailing whitespace
#22936: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1674:
+                    0x03, $

ERROR: trailing whitespace
#22937: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1675:
+                    GSIH, $

ERROR: trailing whitespace
#22939: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1677:
+                }, $

ERROR: trailing whitespace
#22943: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1681:
+                    0x000DFFFF, $

ERROR: trailing whitespace
#22944: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1682:
+                    Zero, $

ERROR: trailing whitespace
#22945: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1683:
+                    GSIF, $

ERROR: trailing whitespace
#22947: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1685:
+                }, $

ERROR: trailing whitespace
#22951: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1689:
+                    0x000DFFFF, $

ERROR: trailing whitespace
#22952: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1690:
+                    One, $

ERROR: trailing whitespace
#22953: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1691:
+                    GSIG, $

ERROR: trailing whitespace
#22955: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1693:
+                }, $

ERROR: trailing whitespace
#22959: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1697:
+                    0x000DFFFF, $

ERROR: trailing whitespace
#22960: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1698:
+                    0x02, $

ERROR: trailing whitespace
#22961: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1699:
+                    GSIH, $

ERROR: trailing whitespace
#22963: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1701:
+                }, $

ERROR: trailing whitespace
#22967: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1705:
+                    0x000DFFFF, $

ERROR: trailing whitespace
#22968: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1706:
+                    0x03, $

ERROR: trailing whitespace
#22969: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1707:
+                    GSIE, $

ERROR: trailing whitespace
#22971: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1709:
+                }, $

ERROR: trailing whitespace
#22975: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1713:
+                    0x000EFFFF, $

ERROR: trailing whitespace
#22976: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1714:
+                    Zero, $

ERROR: trailing whitespace
#22977: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1715:
+                    GSIG, $

ERROR: trailing whitespace
#22979: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1717:
+                }, $

ERROR: trailing whitespace
#22983: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1721:
+                    0x000EFFFF, $

ERROR: trailing whitespace
#22984: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1722:
+                    One, $

ERROR: trailing whitespace
#22985: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1723:
+                    GSIH, $

ERROR: trailing whitespace
#22987: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1725:
+                }, $

ERROR: trailing whitespace
#22991: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1729:
+                    0x000EFFFF, $

ERROR: trailing whitespace
#22992: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1730:
+                    0x02, $

ERROR: trailing whitespace
#22993: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1731:
+                    GSIE, $

ERROR: trailing whitespace
#22995: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1733:
+                }, $

ERROR: trailing whitespace
#22999: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1737:
+                    0x000EFFFF, $

ERROR: trailing whitespace
#23000: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1738:
+                    0x03, $

ERROR: trailing whitespace
#23001: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1739:
+                    GSIF, $

ERROR: trailing whitespace
#23003: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1741:
+                }, $

ERROR: trailing whitespace
#23007: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1745:
+                    0x000FFFFF, $

ERROR: trailing whitespace
#23008: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1746:
+                    Zero, $

ERROR: trailing whitespace
#23009: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1747:
+                    GSIH, $

ERROR: trailing whitespace
#23011: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1749:
+                }, $

ERROR: trailing whitespace
#23015: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1753:
+                    0x000FFFFF, $

ERROR: trailing whitespace
#23016: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1754:
+                    One, $

ERROR: trailing whitespace
#23017: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1755:
+                    GSIE, $

ERROR: trailing whitespace
#23019: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1757:
+                }, $

ERROR: trailing whitespace
#23023: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1761:
+                    0x000FFFFF, $

ERROR: trailing whitespace
#23024: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1762:
+                    0x02, $

ERROR: trailing whitespace
#23025: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1763:
+                    GSIF, $

ERROR: trailing whitespace
#23027: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1765:
+                }, $

ERROR: trailing whitespace
#23031: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1769:
+                    0x000FFFFF, $

ERROR: trailing whitespace
#23032: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1770:
+                    0x03, $

ERROR: trailing whitespace
#23033: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1771:
+                    GSIG, $

ERROR: trailing whitespace
#23035: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1773:
+                }, $

ERROR: trailing whitespace
#23039: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1777:
+                    0x0010FFFF, $

ERROR: trailing whitespace
#23040: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1778:
+                    Zero, $

ERROR: trailing whitespace
#23041: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1779:
+                    GSIE, $

ERROR: trailing whitespace
#23043: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1781:
+                }, $

ERROR: trailing whitespace
#23047: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1785:
+                    0x0010FFFF, $

ERROR: trailing whitespace
#23048: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1786:
+                    One, $

ERROR: trailing whitespace
#23049: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1787:
+                    GSIF, $

ERROR: trailing whitespace
#23051: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1789:
+                }, $

ERROR: trailing whitespace
#23055: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1793:
+                    0x0010FFFF, $

ERROR: trailing whitespace
#23056: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1794:
+                    0x02, $

ERROR: trailing whitespace
#23057: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1795:
+                    GSIG, $

ERROR: trailing whitespace
#23059: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1797:
+                }, $

ERROR: trailing whitespace
#23063: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1801:
+                    0x0010FFFF, $

ERROR: trailing whitespace
#23064: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1802:
+                    0x03, $

ERROR: trailing whitespace
#23065: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1803:
+                    GSIH, $

ERROR: trailing whitespace
#23067: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1805:
+                }, $

ERROR: trailing whitespace
#23071: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1809:
+                    0x0011FFFF, $

ERROR: trailing whitespace
#23072: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1810:
+                    Zero, $

ERROR: trailing whitespace
#23073: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1811:
+                    GSIF, $

ERROR: trailing whitespace
#23075: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1813:
+                }, $

ERROR: trailing whitespace
#23079: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1817:
+                    0x0011FFFF, $

ERROR: trailing whitespace
#23080: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1818:
+                    One, $

ERROR: trailing whitespace
#23081: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1819:
+                    GSIG, $

ERROR: trailing whitespace
#23083: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1821:
+                }, $

ERROR: trailing whitespace
#23087: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1825:
+                    0x0011FFFF, $

ERROR: trailing whitespace
#23088: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1826:
+                    0x02, $

ERROR: trailing whitespace
#23089: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1827:
+                    GSIH, $

ERROR: trailing whitespace
#23091: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1829:
+                }, $

ERROR: trailing whitespace
#23095: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1833:
+                    0x0011FFFF, $

ERROR: trailing whitespace
#23096: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1834:
+                    0x03, $

ERROR: trailing whitespace
#23097: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1835:
+                    GSIE, $

ERROR: trailing whitespace
#23099: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1837:
+                }, $

ERROR: trailing whitespace
#23103: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1841:
+                    0x0012FFFF, $

ERROR: trailing whitespace
#23104: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1842:
+                    Zero, $

ERROR: trailing whitespace
#23105: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1843:
+                    GSIG, $

ERROR: trailing whitespace
#23107: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1845:
+                }, $

ERROR: trailing whitespace
#23111: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1849:
+                    0x0012FFFF, $

ERROR: trailing whitespace
#23112: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1850:
+                    One, $

ERROR: trailing whitespace
#23113: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1851:
+                    GSIH, $

ERROR: trailing whitespace
#23115: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1853:
+                }, $

ERROR: trailing whitespace
#23119: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1857:
+                    0x0012FFFF, $

ERROR: trailing whitespace
#23120: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1858:
+                    0x02, $

ERROR: trailing whitespace
#23121: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1859:
+                    GSIE, $

ERROR: trailing whitespace
#23123: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1861:
+                }, $

ERROR: trailing whitespace
#23127: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1865:
+                    0x0012FFFF, $

ERROR: trailing whitespace
#23128: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1866:
+                    0x03, $

ERROR: trailing whitespace
#23129: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1867:
+                    GSIF, $

ERROR: trailing whitespace
#23131: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1869:
+                }, $

ERROR: trailing whitespace
#23135: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1873:
+                    0x0013FFFF, $

ERROR: trailing whitespace
#23136: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1874:
+                    Zero, $

ERROR: trailing whitespace
#23137: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1875:
+                    GSIH, $

ERROR: trailing whitespace
#23139: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1877:
+                }, $

ERROR: trailing whitespace
#23143: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1881:
+                    0x0013FFFF, $

ERROR: trailing whitespace
#23144: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1882:
+                    One, $

ERROR: trailing whitespace
#23145: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1883:
+                    GSIE, $

ERROR: trailing whitespace
#23147: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1885:
+                }, $

ERROR: trailing whitespace
#23151: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1889:
+                    0x0013FFFF, $

ERROR: trailing whitespace
#23152: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1890:
+                    0x02, $

ERROR: trailing whitespace
#23153: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1891:
+                    GSIF, $

ERROR: trailing whitespace
#23155: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1893:
+                }, $

ERROR: trailing whitespace
#23159: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1897:
+                    0x0013FFFF, $

ERROR: trailing whitespace
#23160: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1898:
+                    0x03, $

ERROR: trailing whitespace
#23161: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1899:
+                    GSIG, $

ERROR: trailing whitespace
#23163: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1901:
+                }, $

ERROR: trailing whitespace
#23167: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1905:
+                    0x0014FFFF, $

ERROR: trailing whitespace
#23168: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1906:
+                    Zero, $

ERROR: trailing whitespace
#23169: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1907:
+                    GSIE, $

ERROR: trailing whitespace
#23171: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1909:
+                }, $

ERROR: trailing whitespace
#23175: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1913:
+                    0x0014FFFF, $

ERROR: trailing whitespace
#23176: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1914:
+                    One, $

ERROR: trailing whitespace
#23177: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1915:
+                    GSIF, $

ERROR: trailing whitespace
#23179: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1917:
+                }, $

ERROR: trailing whitespace
#23183: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1921:
+                    0x0014FFFF, $

ERROR: trailing whitespace
#23184: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1922:
+                    0x02, $

ERROR: trailing whitespace
#23185: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1923:
+                    GSIG, $

ERROR: trailing whitespace
#23187: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1925:
+                }, $

ERROR: trailing whitespace
#23191: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1929:
+                    0x0014FFFF, $

ERROR: trailing whitespace
#23192: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1930:
+                    0x03, $

ERROR: trailing whitespace
#23193: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1931:
+                    GSIH, $

ERROR: trailing whitespace
#23195: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1933:
+                }, $

ERROR: trailing whitespace
#23199: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1937:
+                    0x0015FFFF, $

ERROR: trailing whitespace
#23200: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1938:
+                    Zero, $

ERROR: trailing whitespace
#23201: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1939:
+                    GSIF, $

ERROR: trailing whitespace
#23203: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1941:
+                }, $

ERROR: trailing whitespace
#23207: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1945:
+                    0x0015FFFF, $

ERROR: trailing whitespace
#23208: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1946:
+                    One, $

ERROR: trailing whitespace
#23209: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1947:
+                    GSIG, $

ERROR: trailing whitespace
#23211: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1949:
+                }, $

ERROR: trailing whitespace
#23215: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1953:
+                    0x0015FFFF, $

ERROR: trailing whitespace
#23216: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1954:
+                    0x02, $

ERROR: trailing whitespace
#23217: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1955:
+                    GSIH, $

ERROR: trailing whitespace
#23219: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1957:
+                }, $

ERROR: trailing whitespace
#23223: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1961:
+                    0x0015FFFF, $

ERROR: trailing whitespace
#23224: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1962:
+                    0x03, $

ERROR: trailing whitespace
#23225: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1963:
+                    GSIE, $

ERROR: trailing whitespace
#23227: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1965:
+                }, $

ERROR: trailing whitespace
#23231: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1969:
+                    0x0016FFFF, $

ERROR: trailing whitespace
#23232: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1970:
+                    Zero, $

ERROR: trailing whitespace
#23233: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1971:
+                    GSIG, $

ERROR: trailing whitespace
#23235: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1973:
+                }, $

ERROR: trailing whitespace
#23239: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1977:
+                    0x0016FFFF, $

ERROR: trailing whitespace
#23240: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1978:
+                    One, $

ERROR: trailing whitespace
#23241: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1979:
+                    GSIH, $

ERROR: trailing whitespace
#23243: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1981:
+                }, $

ERROR: trailing whitespace
#23247: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1985:
+                    0x0016FFFF, $

ERROR: trailing whitespace
#23248: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1986:
+                    0x02, $

ERROR: trailing whitespace
#23249: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1987:
+                    GSIE, $

ERROR: trailing whitespace
#23251: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1989:
+                }, $

ERROR: trailing whitespace
#23255: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1993:
+                    0x0016FFFF, $

ERROR: trailing whitespace
#23256: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1994:
+                    0x03, $

ERROR: trailing whitespace
#23257: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1995:
+                    GSIF, $

ERROR: trailing whitespace
#23259: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:1997:
+                }, $

ERROR: trailing whitespace
#23263: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2001:
+                    0x0017FFFF, $

ERROR: trailing whitespace
#23264: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2002:
+                    Zero, $

ERROR: trailing whitespace
#23265: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2003:
+                    GSIH, $

ERROR: trailing whitespace
#23267: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2005:
+                }, $

ERROR: trailing whitespace
#23271: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2009:
+                    0x0017FFFF, $

ERROR: trailing whitespace
#23272: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2010:
+                    One, $

ERROR: trailing whitespace
#23273: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2011:
+                    GSIE, $

ERROR: trailing whitespace
#23275: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2013:
+                }, $

ERROR: trailing whitespace
#23279: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2017:
+                    0x0017FFFF, $

ERROR: trailing whitespace
#23280: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2018:
+                    0x02, $

ERROR: trailing whitespace
#23281: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2019:
+                    GSIF, $

ERROR: trailing whitespace
#23283: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2021:
+                }, $

ERROR: trailing whitespace
#23287: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2025:
+                    0x0017FFFF, $

ERROR: trailing whitespace
#23288: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2026:
+                    0x03, $

ERROR: trailing whitespace
#23289: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2027:
+                    GSIG, $

ERROR: trailing whitespace
#23291: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2029:
+                }, $

ERROR: trailing whitespace
#23295: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2033:
+                    0x0018FFFF, $

ERROR: trailing whitespace
#23296: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2034:
+                    Zero, $

ERROR: trailing whitespace
#23297: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2035:
+                    GSIE, $

ERROR: trailing whitespace
#23299: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2037:
+                }, $

ERROR: trailing whitespace
#23303: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2041:
+                    0x0018FFFF, $

ERROR: trailing whitespace
#23304: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2042:
+                    One, $

ERROR: trailing whitespace
#23305: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2043:
+                    GSIF, $

ERROR: trailing whitespace
#23307: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2045:
+                }, $

ERROR: trailing whitespace
#23311: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2049:
+                    0x0018FFFF, $

ERROR: trailing whitespace
#23312: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2050:
+                    0x02, $

ERROR: trailing whitespace
#23313: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2051:
+                    GSIG, $

ERROR: trailing whitespace
#23315: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2053:
+                }, $

ERROR: trailing whitespace
#23319: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2057:
+                    0x0018FFFF, $

ERROR: trailing whitespace
#23320: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2058:
+                    0x03, $

ERROR: trailing whitespace
#23321: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2059:
+                    GSIH, $

ERROR: trailing whitespace
#23323: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2061:
+                }, $

ERROR: trailing whitespace
#23327: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2065:
+                    0x0019FFFF, $

ERROR: trailing whitespace
#23328: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2066:
+                    Zero, $

ERROR: trailing whitespace
#23329: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2067:
+                    GSIA, $

ERROR: trailing whitespace
#23331: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2069:
+                }, $

ERROR: trailing whitespace
#23335: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2073:
+                    0x0019FFFF, $

ERROR: trailing whitespace
#23336: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2074:
+                    One, $

ERROR: trailing whitespace
#23337: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2075:
+                    GSIB, $

ERROR: trailing whitespace
#23339: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2077:
+                }, $

ERROR: trailing whitespace
#23343: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2081:
+                    0x0019FFFF, $

ERROR: trailing whitespace
#23344: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2082:
+                    0x02, $

ERROR: trailing whitespace
#23345: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2083:
+                    GSIC, $

ERROR: trailing whitespace
#23347: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2085:
+                }, $

ERROR: trailing whitespace
#23351: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2089:
+                    0x0019FFFF, $

ERROR: trailing whitespace
#23352: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2090:
+                    0x03, $

ERROR: trailing whitespace
#23353: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2091:
+                    GSID, $

ERROR: trailing whitespace
#23355: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2093:
+                }, $

ERROR: trailing whitespace
#23359: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2097:
+                    0x001AFFFF, $

ERROR: trailing whitespace
#23360: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2098:
+                    Zero, $

ERROR: trailing whitespace
#23361: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2099:
+                    GSIA, $

ERROR: trailing whitespace
#23363: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2101:
+                }, $

ERROR: trailing whitespace
#23367: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2105:
+                    0x001AFFFF, $

ERROR: trailing whitespace
#23368: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2106:
+                    One, $

ERROR: trailing whitespace
#23369: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2107:
+                    GSIB, $

ERROR: trailing whitespace
#23371: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2109:
+                }, $

ERROR: trailing whitespace
#23375: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2113:
+                    0x001AFFFF, $

ERROR: trailing whitespace
#23376: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2114:
+                    0x02, $

ERROR: trailing whitespace
#23377: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2115:
+                    GSIC, $

ERROR: trailing whitespace
#23379: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2117:
+                }, $

ERROR: trailing whitespace
#23383: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2121:
+                    0x001AFFFF, $

ERROR: trailing whitespace
#23384: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2122:
+                    0x03, $

ERROR: trailing whitespace
#23385: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2123:
+                    GSID, $

ERROR: trailing whitespace
#23387: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2125:
+                }, $

ERROR: trailing whitespace
#23391: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2129:
+                    0x001BFFFF, $

ERROR: trailing whitespace
#23392: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2130:
+                    Zero, $

ERROR: trailing whitespace
#23393: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2131:
+                    GSIA, $

ERROR: trailing whitespace
#23395: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2133:
+                }, $

ERROR: trailing whitespace
#23399: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2137:
+                    0x001BFFFF, $

ERROR: trailing whitespace
#23400: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2138:
+                    One, $

ERROR: trailing whitespace
#23401: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2139:
+                    GSIB, $

ERROR: trailing whitespace
#23403: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2141:
+                }, $

ERROR: trailing whitespace
#23407: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2145:
+                    0x001BFFFF, $

ERROR: trailing whitespace
#23408: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2146:
+                    0x02, $

ERROR: trailing whitespace
#23409: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2147:
+                    GSIC, $

ERROR: trailing whitespace
#23411: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2149:
+                }, $

ERROR: trailing whitespace
#23415: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2153:
+                    0x001BFFFF, $

ERROR: trailing whitespace
#23416: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2154:
+                    0x03, $

ERROR: trailing whitespace
#23417: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2155:
+                    GSID, $

ERROR: trailing whitespace
#23419: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2157:
+                }, $

ERROR: trailing whitespace
#23423: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2161:
+                    0x001CFFFF, $

ERROR: trailing whitespace
#23424: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2162:
+                    Zero, $

ERROR: trailing whitespace
#23425: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2163:
+                    GSIA, $

ERROR: trailing whitespace
#23427: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2165:
+                }, $

ERROR: trailing whitespace
#23431: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2169:
+                    0x001CFFFF, $

ERROR: trailing whitespace
#23432: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2170:
+                    One, $

ERROR: trailing whitespace
#23433: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2171:
+                    GSIB, $

ERROR: trailing whitespace
#23435: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2173:
+                }, $

ERROR: trailing whitespace
#23439: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2177:
+                    0x001CFFFF, $

ERROR: trailing whitespace
#23440: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2178:
+                    0x02, $

ERROR: trailing whitespace
#23441: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2179:
+                    GSIC, $

ERROR: trailing whitespace
#23443: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2181:
+                }, $

ERROR: trailing whitespace
#23447: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2185:
+                    0x001CFFFF, $

ERROR: trailing whitespace
#23448: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2186:
+                    0x03, $

ERROR: trailing whitespace
#23449: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2187:
+                    GSID, $

ERROR: trailing whitespace
#23451: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2189:
+                }, $

ERROR: trailing whitespace
#23455: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2193:
+                    0x001DFFFF, $

ERROR: trailing whitespace
#23456: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2194:
+                    Zero, $

ERROR: trailing whitespace
#23457: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2195:
+                    GSIA, $

ERROR: trailing whitespace
#23459: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2197:
+                }, $

ERROR: trailing whitespace
#23463: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2201:
+                    0x001DFFFF, $

ERROR: trailing whitespace
#23464: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2202:
+                    One, $

ERROR: trailing whitespace
#23465: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2203:
+                    GSIB, $

ERROR: trailing whitespace
#23467: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2205:
+                }, $

ERROR: trailing whitespace
#23471: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2209:
+                    0x001DFFFF, $

ERROR: trailing whitespace
#23472: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2210:
+                    0x02, $

ERROR: trailing whitespace
#23473: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2211:
+                    GSIC, $

ERROR: trailing whitespace
#23475: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2213:
+                }, $

ERROR: trailing whitespace
#23479: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2217:
+                    0x001DFFFF, $

ERROR: trailing whitespace
#23480: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2218:
+                    0x03, $

ERROR: trailing whitespace
#23481: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2219:
+                    GSID, $

ERROR: trailing whitespace
#23483: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2221:
+                }, $

ERROR: trailing whitespace
#23487: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2225:
+                    0x001EFFFF, $

ERROR: trailing whitespace
#23488: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2226:
+                    Zero, $

ERROR: trailing whitespace
#23489: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2227:
+                    GSIE, $

ERROR: trailing whitespace
#23491: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2229:
+                }, $

ERROR: trailing whitespace
#23495: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2233:
+                    0x001EFFFF, $

ERROR: trailing whitespace
#23496: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2234:
+                    One, $

ERROR: trailing whitespace
#23497: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2235:
+                    GSIF, $

ERROR: trailing whitespace
#23499: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2237:
+                }, $

ERROR: trailing whitespace
#23503: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2241:
+                    0x001EFFFF, $

ERROR: trailing whitespace
#23504: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2242:
+                    0x02, $

ERROR: trailing whitespace
#23505: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2243:
+                    GSIG, $

ERROR: trailing whitespace
#23507: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2245:
+                }, $

ERROR: trailing whitespace
#23511: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2249:
+                    0x001EFFFF, $

ERROR: trailing whitespace
#23512: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2250:
+                    0x03, $

ERROR: trailing whitespace
#23513: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2251:
+                    GSIH, $

ERROR: trailing whitespace
#23515: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2253:
+                }, $

ERROR: trailing whitespace
#23519: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2257:
+                    0x001FFFFF, $

ERROR: trailing whitespace
#23520: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2258:
+                    Zero, $

ERROR: trailing whitespace
#23521: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2259:
+                    GSIA, $

ERROR: trailing whitespace
#23523: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2261:
+                }, $

ERROR: trailing whitespace
#23527: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2265:
+                    0x001FFFFF, $

ERROR: trailing whitespace
#23528: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2266:
+                    One, $

ERROR: trailing whitespace
#23529: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2267:
+                    GSIB, $

ERROR: trailing whitespace
#23531: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2269:
+                }, $

ERROR: trailing whitespace
#23535: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2273:
+                    0x001FFFFF, $

ERROR: trailing whitespace
#23536: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2274:
+                    0x02, $

ERROR: trailing whitespace
#23537: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2275:
+                    GSIC, $

ERROR: trailing whitespace
#23539: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2277:
+                }, $

ERROR: trailing whitespace
#23543: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2281:
+                    0x001FFFFF, $

ERROR: trailing whitespace
#23544: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2282:
+                    0x03, $

ERROR: trailing whitespace
#23545: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2283:
+                    GSID, $

ERROR: trailing whitespace
#23564: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2302:
+            PRQA,   8, $

ERROR: trailing whitespace
#23565: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2303:
+            PRQB,   8, $

ERROR: trailing whitespace
#23566: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2304:
+            PRQC,   8, $

ERROR: trailing whitespace
#23567: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2305:
+            PRQD,   8, $

ERROR: trailing whitespace
#23568: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2306:
+            Offset (0x08), $

ERROR: trailing whitespace
#23569: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2307:
+            PRQE,   8, $

ERROR: trailing whitespace
#23570: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2308:
+            PRQF,   8, $

ERROR: trailing whitespace
#23571: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2309:
+            PRQG,   8, $

ERROR: trailing whitespace
#24123: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2861:
+                Offset (0x04), $

ERROR: trailing whitespace
#24124: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2862:
+                CPEN,   1, $

ERROR: trailing whitespace
#24125: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2863:
+                CINS,   1, $

ERROR: trailing whitespace
#24126: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2864:
+                CRMV,   1, $

ERROR: trailing whitespace
#24127: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2865:
+                CEJ0,   1, $

ERROR: trailing whitespace
#24128: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2866:
+                Offset (0x05), $

ERROR: trailing whitespace
#24134: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2872:
+                CSEL,   32, $

ERROR: trailing whitespace
#24135: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:2873:
+                Offset (0x08), $

ERROR: trailing whitespace
#24293: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:3031:
+            MRBL,   32, $

ERROR: trailing whitespace
#24294: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:3032:
+            MRBH,   32, $

ERROR: trailing whitespace
#24295: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:3033:
+            MRLL,   32, $

ERROR: trailing whitespace
#24296: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:3034:
+            MRLH,   32, $

ERROR: trailing whitespace
#24302: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:3040:
+            Offset (0x14), $

ERROR: trailing whitespace
#24303: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:3041:
+            MES,    1, $

ERROR: trailing whitespace
#24304: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:3042:
+            MINS,   1, $

ERROR: trailing whitespace
#24305: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:3043:
+            MRMV,   1, $

ERROR: trailing whitespace
#24311: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:3049:
+            MSEL,   32, $

ERROR: trailing whitespace
#24312: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:3050:
+            MOEV,   32, $

ERROR: trailing whitespace
#24625: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:3363:
+            One, $

ERROR: trailing whitespace
#24626: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:3364:
+            One, $

ERROR: trailing whitespace
#24627: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:3365:
+            Zero, $

ERROR: trailing whitespace
#24632: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:3370:
+            0x02, $

ERROR: trailing whitespace
#24633: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:3371:
+            0x02, $

ERROR: trailing whitespace
#24634: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:3372:
+            Zero, $

ERROR: trailing whitespace
#24639: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:3377:
+            Zero, $

ERROR: trailing whitespace
#24640: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:3378:
+            Zero, $

ERROR: trailing whitespace
#24641: FILE: tests/data/acpi/q35/DSDT.acpihmat.dsl:3379:
+            Zero, $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/DSDT.bridge and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/DSDT.bridge.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/DSDT.bridge.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#24712: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:5:
+ * $

ERROR: trailing whitespace
#24802: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:95:
+                VEND,   32, $

ERROR: trailing whitespace
#24946: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:239:
+                    0xFFFF, $

ERROR: trailing whitespace
#24947: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:240:
+                    Zero, $

ERROR: trailing whitespace
#24948: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:241:
+                    LNKE, $

ERROR: trailing whitespace
#24950: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:243:
+                }, $

ERROR: trailing whitespace
#24954: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:247:
+                    0xFFFF, $

ERROR: trailing whitespace
#24955: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:248:
+                    One, $

ERROR: trailing whitespace
#24956: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:249:
+                    LNKF, $

ERROR: trailing whitespace
#24958: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:251:
+                }, $

ERROR: trailing whitespace
#24962: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:255:
+                    0xFFFF, $

ERROR: trailing whitespace
#24963: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:256:
+                    0x02, $

ERROR: trailing whitespace
#24964: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:257:
+                    LNKG, $

ERROR: trailing whitespace
#24966: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:259:
+                }, $

ERROR: trailing whitespace
#24970: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:263:
+                    0xFFFF, $

ERROR: trailing whitespace
#24971: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:264:
+                    0x03, $

ERROR: trailing whitespace
#24972: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:265:
+                    LNKH, $

ERROR: trailing whitespace
#24974: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:267:
+                }, $

ERROR: trailing whitespace
#24978: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:271:
+                    0x0001FFFF, $

ERROR: trailing whitespace
#24979: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:272:
+                    Zero, $

ERROR: trailing whitespace
#24980: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:273:
+                    LNKF, $

ERROR: trailing whitespace
#24982: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:275:
+                }, $

ERROR: trailing whitespace
#24986: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:279:
+                    0x0001FFFF, $

ERROR: trailing whitespace
#24987: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:280:
+                    One, $

ERROR: trailing whitespace
#24988: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:281:
+                    LNKG, $

ERROR: trailing whitespace
#24990: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:283:
+                }, $

ERROR: trailing whitespace
#24994: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:287:
+                    0x0001FFFF, $

ERROR: trailing whitespace
#24995: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:288:
+                    0x02, $

ERROR: trailing whitespace
#24996: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:289:
+                    LNKH, $

ERROR: trailing whitespace
#24998: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:291:
+                }, $

ERROR: trailing whitespace
#25002: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:295:
+                    0x0001FFFF, $

ERROR: trailing whitespace
#25003: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:296:
+                    0x03, $

ERROR: trailing whitespace
#25004: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:297:
+                    LNKE, $

ERROR: trailing whitespace
#25006: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:299:
+                }, $

ERROR: trailing whitespace
#25010: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:303:
+                    0x0002FFFF, $

ERROR: trailing whitespace
#25011: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:304:
+                    Zero, $

ERROR: trailing whitespace
#25012: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:305:
+                    LNKG, $

ERROR: trailing whitespace
#25014: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:307:
+                }, $

ERROR: trailing whitespace
#25018: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:311:
+                    0x0002FFFF, $

ERROR: trailing whitespace
#25019: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:312:
+                    One, $

ERROR: trailing whitespace
#25020: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:313:
+                    LNKH, $

ERROR: trailing whitespace
#25022: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:315:
+                }, $

ERROR: trailing whitespace
#25026: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:319:
+                    0x0002FFFF, $

ERROR: trailing whitespace
#25027: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:320:
+                    0x02, $

ERROR: trailing whitespace
#25028: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:321:
+                    LNKE, $

ERROR: trailing whitespace
#25030: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:323:
+                }, $

ERROR: trailing whitespace
#25034: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:327:
+                    0x0002FFFF, $

ERROR: trailing whitespace
#25035: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:328:
+                    0x03, $

ERROR: trailing whitespace
#25036: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:329:
+                    LNKF, $

ERROR: trailing whitespace
#25038: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:331:
+                }, $

ERROR: trailing whitespace
#25042: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:335:
+                    0x0003FFFF, $

ERROR: trailing whitespace
#25043: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:336:
+                    Zero, $

ERROR: trailing whitespace
#25044: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:337:
+                    LNKH, $

ERROR: trailing whitespace
#25046: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:339:
+                }, $

ERROR: trailing whitespace
#25050: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:343:
+                    0x0003FFFF, $

ERROR: trailing whitespace
#25051: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:344:
+                    One, $

ERROR: trailing whitespace
#25052: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:345:
+                    LNKE, $

ERROR: trailing whitespace
#25054: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:347:
+                }, $

ERROR: trailing whitespace
#25058: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:351:
+                    0x0003FFFF, $

ERROR: trailing whitespace
#25059: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:352:
+                    0x02, $

ERROR: trailing whitespace
#25060: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:353:
+                    LNKF, $

ERROR: trailing whitespace
#25062: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:355:
+                }, $

ERROR: trailing whitespace
#25066: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:359:
+                    0x0003FFFF, $

ERROR: trailing whitespace
#25067: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:360:
+                    0x03, $

ERROR: trailing whitespace
#25068: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:361:
+                    LNKG, $

ERROR: trailing whitespace
#25070: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:363:
+                }, $

ERROR: trailing whitespace
#25074: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:367:
+                    0x0004FFFF, $

ERROR: trailing whitespace
#25075: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:368:
+                    Zero, $

ERROR: trailing whitespace
#25076: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:369:
+                    LNKE, $

ERROR: trailing whitespace
#25078: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:371:
+                }, $

ERROR: trailing whitespace
#25082: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:375:
+                    0x0004FFFF, $

ERROR: trailing whitespace
#25083: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:376:
+                    One, $

ERROR: trailing whitespace
#25084: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:377:
+                    LNKF, $

ERROR: trailing whitespace
#25086: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:379:
+                }, $

ERROR: trailing whitespace
#25090: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:383:
+                    0x0004FFFF, $

ERROR: trailing whitespace
#25091: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:384:
+                    0x02, $

ERROR: trailing whitespace
#25092: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:385:
+                    LNKG, $

ERROR: trailing whitespace
#25094: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:387:
+                }, $

ERROR: trailing whitespace
#25098: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:391:
+                    0x0004FFFF, $

ERROR: trailing whitespace
#25099: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:392:
+                    0x03, $

ERROR: trailing whitespace
#25100: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:393:
+                    LNKH, $

ERROR: trailing whitespace
#25102: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:395:
+                }, $

ERROR: trailing whitespace
#25106: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:399:
+                    0x0005FFFF, $

ERROR: trailing whitespace
#25107: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:400:
+                    Zero, $

ERROR: trailing whitespace
#25108: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:401:
+                    LNKF, $

ERROR: trailing whitespace
#25110: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:403:
+                }, $

ERROR: trailing whitespace
#25114: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:407:
+                    0x0005FFFF, $

ERROR: trailing whitespace
#25115: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:408:
+                    One, $

ERROR: trailing whitespace
#25116: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:409:
+                    LNKG, $

ERROR: trailing whitespace
#25118: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:411:
+                }, $

ERROR: trailing whitespace
#25122: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:415:
+                    0x0005FFFF, $

ERROR: trailing whitespace
#25123: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:416:
+                    0x02, $

ERROR: trailing whitespace
#25124: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:417:
+                    LNKH, $

ERROR: trailing whitespace
#25126: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:419:
+                }, $

ERROR: trailing whitespace
#25130: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:423:
+                    0x0005FFFF, $

ERROR: trailing whitespace
#25131: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:424:
+                    0x03, $

ERROR: trailing whitespace
#25132: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:425:
+                    LNKE, $

ERROR: trailing whitespace
#25134: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:427:
+                }, $

ERROR: trailing whitespace
#25138: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:431:
+                    0x0006FFFF, $

ERROR: trailing whitespace
#25139: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:432:
+                    Zero, $

ERROR: trailing whitespace
#25140: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:433:
+                    LNKG, $

ERROR: trailing whitespace
#25142: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:435:
+                }, $

ERROR: trailing whitespace
#25146: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:439:
+                    0x0006FFFF, $

ERROR: trailing whitespace
#25147: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:440:
+                    One, $

ERROR: trailing whitespace
#25148: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:441:
+                    LNKH, $

ERROR: trailing whitespace
#25150: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:443:
+                }, $

ERROR: trailing whitespace
#25154: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:447:
+                    0x0006FFFF, $

ERROR: trailing whitespace
#25155: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:448:
+                    0x02, $

ERROR: trailing whitespace
#25156: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:449:
+                    LNKE, $

ERROR: trailing whitespace
#25158: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:451:
+                }, $

ERROR: trailing whitespace
#25162: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:455:
+                    0x0006FFFF, $

ERROR: trailing whitespace
#25163: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:456:
+                    0x03, $

ERROR: trailing whitespace
#25164: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:457:
+                    LNKF, $

ERROR: trailing whitespace
#25166: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:459:
+                }, $

ERROR: trailing whitespace
#25170: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:463:
+                    0x0007FFFF, $

ERROR: trailing whitespace
#25171: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:464:
+                    Zero, $

ERROR: trailing whitespace
#25172: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:465:
+                    LNKH, $

ERROR: trailing whitespace
#25174: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:467:
+                }, $

ERROR: trailing whitespace
#25178: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:471:
+                    0x0007FFFF, $

ERROR: trailing whitespace
#25179: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:472:
+                    One, $

ERROR: trailing whitespace
#25180: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:473:
+                    LNKE, $

ERROR: trailing whitespace
#25182: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:475:
+                }, $

ERROR: trailing whitespace
#25186: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:479:
+                    0x0007FFFF, $

ERROR: trailing whitespace
#25187: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:480:
+                    0x02, $

ERROR: trailing whitespace
#25188: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:481:
+                    LNKF, $

ERROR: trailing whitespace
#25190: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:483:
+                }, $

ERROR: trailing whitespace
#25194: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:487:
+                    0x0007FFFF, $

ERROR: trailing whitespace
#25195: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:488:
+                    0x03, $

ERROR: trailing whitespace
#25196: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:489:
+                    LNKG, $

ERROR: trailing whitespace
#25198: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:491:
+                }, $

ERROR: trailing whitespace
#25202: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:495:
+                    0x0008FFFF, $

ERROR: trailing whitespace
#25203: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:496:
+                    Zero, $

ERROR: trailing whitespace
#25204: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:497:
+                    LNKE, $

ERROR: trailing whitespace
#25206: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:499:
+                }, $

ERROR: trailing whitespace
#25210: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:503:
+                    0x0008FFFF, $

ERROR: trailing whitespace
#25211: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:504:
+                    One, $

ERROR: trailing whitespace
#25212: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:505:
+                    LNKF, $

ERROR: trailing whitespace
#25214: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:507:
+                }, $

ERROR: trailing whitespace
#25218: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:511:
+                    0x0008FFFF, $

ERROR: trailing whitespace
#25219: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:512:
+                    0x02, $

ERROR: trailing whitespace
#25220: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:513:
+                    LNKG, $

ERROR: trailing whitespace
#25222: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:515:
+                }, $

ERROR: trailing whitespace
#25226: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:519:
+                    0x0008FFFF, $

ERROR: trailing whitespace
#25227: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:520:
+                    0x03, $

ERROR: trailing whitespace
#25228: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:521:
+                    LNKH, $

ERROR: trailing whitespace
#25230: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:523:
+                }, $

ERROR: trailing whitespace
#25234: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:527:
+                    0x0009FFFF, $

ERROR: trailing whitespace
#25235: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:528:
+                    Zero, $

ERROR: trailing whitespace
#25236: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:529:
+                    LNKF, $

ERROR: trailing whitespace
#25238: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:531:
+                }, $

ERROR: trailing whitespace
#25242: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:535:
+                    0x0009FFFF, $

ERROR: trailing whitespace
#25243: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:536:
+                    One, $

ERROR: trailing whitespace
#25244: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:537:
+                    LNKG, $

ERROR: trailing whitespace
#25246: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:539:
+                }, $

ERROR: trailing whitespace
#25250: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:543:
+                    0x0009FFFF, $

ERROR: trailing whitespace
#25251: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:544:
+                    0x02, $

ERROR: trailing whitespace
#25252: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:545:
+                    LNKH, $

ERROR: trailing whitespace
#25254: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:547:
+                }, $

ERROR: trailing whitespace
#25258: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:551:
+                    0x0009FFFF, $

ERROR: trailing whitespace
#25259: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:552:
+                    0x03, $

ERROR: trailing whitespace
#25260: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:553:
+                    LNKE, $

ERROR: trailing whitespace
#25262: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:555:
+                }, $

ERROR: trailing whitespace
#25266: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:559:
+                    0x000AFFFF, $

ERROR: trailing whitespace
#25267: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:560:
+                    Zero, $

ERROR: trailing whitespace
#25268: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:561:
+                    LNKG, $

ERROR: trailing whitespace
#25270: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:563:
+                }, $

ERROR: trailing whitespace
#25274: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:567:
+                    0x000AFFFF, $

ERROR: trailing whitespace
#25275: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:568:
+                    One, $

ERROR: trailing whitespace
#25276: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:569:
+                    LNKH, $

ERROR: trailing whitespace
#25278: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:571:
+                }, $

ERROR: trailing whitespace
#25282: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:575:
+                    0x000AFFFF, $

ERROR: trailing whitespace
#25283: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:576:
+                    0x02, $

ERROR: trailing whitespace
#25284: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:577:
+                    LNKE, $

ERROR: trailing whitespace
#25286: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:579:
+                }, $

ERROR: trailing whitespace
#25290: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:583:
+                    0x000AFFFF, $

ERROR: trailing whitespace
#25291: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:584:
+                    0x03, $

ERROR: trailing whitespace
#25292: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:585:
+                    LNKF, $

ERROR: trailing whitespace
#25294: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:587:
+                }, $

ERROR: trailing whitespace
#25298: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:591:
+                    0x000BFFFF, $

ERROR: trailing whitespace
#25299: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:592:
+                    Zero, $

ERROR: trailing whitespace
#25300: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:593:
+                    LNKH, $

ERROR: trailing whitespace
#25302: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:595:
+                }, $

ERROR: trailing whitespace
#25306: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:599:
+                    0x000BFFFF, $

ERROR: trailing whitespace
#25307: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:600:
+                    One, $

ERROR: trailing whitespace
#25308: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:601:
+                    LNKE, $

ERROR: trailing whitespace
#25310: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:603:
+                }, $

ERROR: trailing whitespace
#25314: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:607:
+                    0x000BFFFF, $

ERROR: trailing whitespace
#25315: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:608:
+                    0x02, $

ERROR: trailing whitespace
#25316: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:609:
+                    LNKF, $

ERROR: trailing whitespace
#25318: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:611:
+                }, $

ERROR: trailing whitespace
#25322: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:615:
+                    0x000BFFFF, $

ERROR: trailing whitespace
#25323: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:616:
+                    0x03, $

ERROR: trailing whitespace
#25324: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:617:
+                    LNKG, $

ERROR: trailing whitespace
#25326: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:619:
+                }, $

ERROR: trailing whitespace
#25330: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:623:
+                    0x000CFFFF, $

ERROR: trailing whitespace
#25331: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:624:
+                    Zero, $

ERROR: trailing whitespace
#25332: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:625:
+                    LNKE, $

ERROR: trailing whitespace
#25334: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:627:
+                }, $

ERROR: trailing whitespace
#25338: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:631:
+                    0x000CFFFF, $

ERROR: trailing whitespace
#25339: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:632:
+                    One, $

ERROR: trailing whitespace
#25340: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:633:
+                    LNKF, $

ERROR: trailing whitespace
#25342: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:635:
+                }, $

ERROR: trailing whitespace
#25346: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:639:
+                    0x000CFFFF, $

ERROR: trailing whitespace
#25347: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:640:
+                    0x02, $

ERROR: trailing whitespace
#25348: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:641:
+                    LNKG, $

ERROR: trailing whitespace
#25350: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:643:
+                }, $

ERROR: trailing whitespace
#25354: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:647:
+                    0x000CFFFF, $

ERROR: trailing whitespace
#25355: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:648:
+                    0x03, $

ERROR: trailing whitespace
#25356: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:649:
+                    LNKH, $

ERROR: trailing whitespace
#25358: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:651:
+                }, $

ERROR: trailing whitespace
#25362: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:655:
+                    0x000DFFFF, $

ERROR: trailing whitespace
#25363: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:656:
+                    Zero, $

ERROR: trailing whitespace
#25364: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:657:
+                    LNKF, $

ERROR: trailing whitespace
#25366: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:659:
+                }, $

ERROR: trailing whitespace
#25370: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:663:
+                    0x000DFFFF, $

ERROR: trailing whitespace
#25371: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:664:
+                    One, $

ERROR: trailing whitespace
#25372: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:665:
+                    LNKG, $

ERROR: trailing whitespace
#25374: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:667:
+                }, $

ERROR: trailing whitespace
#25378: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:671:
+                    0x000DFFFF, $

ERROR: trailing whitespace
#25379: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:672:
+                    0x02, $

ERROR: trailing whitespace
#25380: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:673:
+                    LNKH, $

ERROR: trailing whitespace
#25382: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:675:
+                }, $

ERROR: trailing whitespace
#25386: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:679:
+                    0x000DFFFF, $

ERROR: trailing whitespace
#25387: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:680:
+                    0x03, $

ERROR: trailing whitespace
#25388: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:681:
+                    LNKE, $

ERROR: trailing whitespace
#25390: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:683:
+                }, $

ERROR: trailing whitespace
#25394: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:687:
+                    0x000EFFFF, $

ERROR: trailing whitespace
#25395: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:688:
+                    Zero, $

ERROR: trailing whitespace
#25396: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:689:
+                    LNKG, $

ERROR: trailing whitespace
#25398: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:691:
+                }, $

ERROR: trailing whitespace
#25402: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:695:
+                    0x000EFFFF, $

ERROR: trailing whitespace
#25403: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:696:
+                    One, $

ERROR: trailing whitespace
#25404: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:697:
+                    LNKH, $

ERROR: trailing whitespace
#25406: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:699:
+                }, $

ERROR: trailing whitespace
#25410: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:703:
+                    0x000EFFFF, $

ERROR: trailing whitespace
#25411: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:704:
+                    0x02, $

ERROR: trailing whitespace
#25412: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:705:
+                    LNKE, $

ERROR: trailing whitespace
#25414: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:707:
+                }, $

ERROR: trailing whitespace
#25418: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:711:
+                    0x000EFFFF, $

ERROR: trailing whitespace
#25419: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:712:
+                    0x03, $

ERROR: trailing whitespace
#25420: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:713:
+                    LNKF, $

ERROR: trailing whitespace
#25422: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:715:
+                }, $

ERROR: trailing whitespace
#25426: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:719:
+                    0x000FFFFF, $

ERROR: trailing whitespace
#25427: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:720:
+                    Zero, $

ERROR: trailing whitespace
#25428: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:721:
+                    LNKH, $

ERROR: trailing whitespace
#25430: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:723:
+                }, $

ERROR: trailing whitespace
#25434: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:727:
+                    0x000FFFFF, $

ERROR: trailing whitespace
#25435: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:728:
+                    One, $

ERROR: trailing whitespace
#25436: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:729:
+                    LNKE, $

ERROR: trailing whitespace
#25438: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:731:
+                }, $

ERROR: trailing whitespace
#25442: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:735:
+                    0x000FFFFF, $

ERROR: trailing whitespace
#25443: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:736:
+                    0x02, $

ERROR: trailing whitespace
#25444: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:737:
+                    LNKF, $

ERROR: trailing whitespace
#25446: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:739:
+                }, $

ERROR: trailing whitespace
#25450: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:743:
+                    0x000FFFFF, $

ERROR: trailing whitespace
#25451: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:744:
+                    0x03, $

ERROR: trailing whitespace
#25452: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:745:
+                    LNKG, $

ERROR: trailing whitespace
#25454: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:747:
+                }, $

ERROR: trailing whitespace
#25458: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:751:
+                    0x0010FFFF, $

ERROR: trailing whitespace
#25459: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:752:
+                    Zero, $

ERROR: trailing whitespace
#25460: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:753:
+                    LNKE, $

ERROR: trailing whitespace
#25462: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:755:
+                }, $

ERROR: trailing whitespace
#25466: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:759:
+                    0x0010FFFF, $

ERROR: trailing whitespace
#25467: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:760:
+                    One, $

ERROR: trailing whitespace
#25468: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:761:
+                    LNKF, $

ERROR: trailing whitespace
#25470: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:763:
+                }, $

ERROR: trailing whitespace
#25474: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:767:
+                    0x0010FFFF, $

ERROR: trailing whitespace
#25475: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:768:
+                    0x02, $

ERROR: trailing whitespace
#25476: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:769:
+                    LNKG, $

ERROR: trailing whitespace
#25478: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:771:
+                }, $

ERROR: trailing whitespace
#25482: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:775:
+                    0x0010FFFF, $

ERROR: trailing whitespace
#25483: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:776:
+                    0x03, $

ERROR: trailing whitespace
#25484: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:777:
+                    LNKH, $

ERROR: trailing whitespace
#25486: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:779:
+                }, $

ERROR: trailing whitespace
#25490: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:783:
+                    0x0011FFFF, $

ERROR: trailing whitespace
#25491: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:784:
+                    Zero, $

ERROR: trailing whitespace
#25492: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:785:
+                    LNKF, $

ERROR: trailing whitespace
#25494: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:787:
+                }, $

ERROR: trailing whitespace
#25498: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:791:
+                    0x0011FFFF, $

ERROR: trailing whitespace
#25499: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:792:
+                    One, $

ERROR: trailing whitespace
#25500: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:793:
+                    LNKG, $

ERROR: trailing whitespace
#25502: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:795:
+                }, $

ERROR: trailing whitespace
#25506: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:799:
+                    0x0011FFFF, $

ERROR: trailing whitespace
#25507: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:800:
+                    0x02, $

ERROR: trailing whitespace
#25508: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:801:
+                    LNKH, $

ERROR: trailing whitespace
#25510: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:803:
+                }, $

ERROR: trailing whitespace
#25514: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:807:
+                    0x0011FFFF, $

ERROR: trailing whitespace
#25515: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:808:
+                    0x03, $

ERROR: trailing whitespace
#25516: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:809:
+                    LNKE, $

ERROR: trailing whitespace
#25518: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:811:
+                }, $

ERROR: trailing whitespace
#25522: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:815:
+                    0x0012FFFF, $

ERROR: trailing whitespace
#25523: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:816:
+                    Zero, $

ERROR: trailing whitespace
#25524: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:817:
+                    LNKG, $

ERROR: trailing whitespace
#25526: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:819:
+                }, $

ERROR: trailing whitespace
#25530: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:823:
+                    0x0012FFFF, $

ERROR: trailing whitespace
#25531: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:824:
+                    One, $

ERROR: trailing whitespace
#25532: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:825:
+                    LNKH, $

ERROR: trailing whitespace
#25534: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:827:
+                }, $

ERROR: trailing whitespace
#25538: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:831:
+                    0x0012FFFF, $

ERROR: trailing whitespace
#25539: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:832:
+                    0x02, $

ERROR: trailing whitespace
#25540: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:833:
+                    LNKE, $

ERROR: trailing whitespace
#25542: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:835:
+                }, $

ERROR: trailing whitespace
#25546: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:839:
+                    0x0012FFFF, $

ERROR: trailing whitespace
#25547: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:840:
+                    0x03, $

ERROR: trailing whitespace
#25548: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:841:
+                    LNKF, $

ERROR: trailing whitespace
#25550: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:843:
+                }, $

ERROR: trailing whitespace
#25554: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:847:
+                    0x0013FFFF, $

ERROR: trailing whitespace
#25555: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:848:
+                    Zero, $

ERROR: trailing whitespace
#25556: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:849:
+                    LNKH, $

ERROR: trailing whitespace
#25558: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:851:
+                }, $

ERROR: trailing whitespace
#25562: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:855:
+                    0x0013FFFF, $

ERROR: trailing whitespace
#25563: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:856:
+                    One, $

ERROR: trailing whitespace
#25564: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:857:
+                    LNKE, $

ERROR: trailing whitespace
#25566: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:859:
+                }, $

ERROR: trailing whitespace
#25570: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:863:
+                    0x0013FFFF, $

ERROR: trailing whitespace
#25571: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:864:
+                    0x02, $

ERROR: trailing whitespace
#25572: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:865:
+                    LNKF, $

ERROR: trailing whitespace
#25574: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:867:
+                }, $

ERROR: trailing whitespace
#25578: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:871:
+                    0x0013FFFF, $

ERROR: trailing whitespace
#25579: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:872:
+                    0x03, $

ERROR: trailing whitespace
#25580: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:873:
+                    LNKG, $

ERROR: trailing whitespace
#25582: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:875:
+                }, $

ERROR: trailing whitespace
#25586: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:879:
+                    0x0014FFFF, $

ERROR: trailing whitespace
#25587: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:880:
+                    Zero, $

ERROR: trailing whitespace
#25588: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:881:
+                    LNKE, $

ERROR: trailing whitespace
#25590: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:883:
+                }, $

ERROR: trailing whitespace
#25594: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:887:
+                    0x0014FFFF, $

ERROR: trailing whitespace
#25595: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:888:
+                    One, $

ERROR: trailing whitespace
#25596: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:889:
+                    LNKF, $

ERROR: trailing whitespace
#25598: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:891:
+                }, $

ERROR: trailing whitespace
#25602: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:895:
+                    0x0014FFFF, $

ERROR: trailing whitespace
#25603: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:896:
+                    0x02, $

ERROR: trailing whitespace
#25604: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:897:
+                    LNKG, $

ERROR: trailing whitespace
#25606: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:899:
+                }, $

ERROR: trailing whitespace
#25610: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:903:
+                    0x0014FFFF, $

ERROR: trailing whitespace
#25611: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:904:
+                    0x03, $

ERROR: trailing whitespace
#25612: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:905:
+                    LNKH, $

ERROR: trailing whitespace
#25614: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:907:
+                }, $

ERROR: trailing whitespace
#25618: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:911:
+                    0x0015FFFF, $

ERROR: trailing whitespace
#25619: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:912:
+                    Zero, $

ERROR: trailing whitespace
#25620: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:913:
+                    LNKF, $

ERROR: trailing whitespace
#25622: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:915:
+                }, $

ERROR: trailing whitespace
#25626: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:919:
+                    0x0015FFFF, $

ERROR: trailing whitespace
#25627: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:920:
+                    One, $

ERROR: trailing whitespace
#25628: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:921:
+                    LNKG, $

ERROR: trailing whitespace
#25630: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:923:
+                }, $

ERROR: trailing whitespace
#25634: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:927:
+                    0x0015FFFF, $

ERROR: trailing whitespace
#25635: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:928:
+                    0x02, $

ERROR: trailing whitespace
#25636: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:929:
+                    LNKH, $

ERROR: trailing whitespace
#25638: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:931:
+                }, $

ERROR: trailing whitespace
#25642: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:935:
+                    0x0015FFFF, $

ERROR: trailing whitespace
#25643: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:936:
+                    0x03, $

ERROR: trailing whitespace
#25644: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:937:
+                    LNKE, $

ERROR: trailing whitespace
#25646: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:939:
+                }, $

ERROR: trailing whitespace
#25650: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:943:
+                    0x0016FFFF, $

ERROR: trailing whitespace
#25651: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:944:
+                    Zero, $

ERROR: trailing whitespace
#25652: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:945:
+                    LNKG, $

ERROR: trailing whitespace
#25654: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:947:
+                }, $

ERROR: trailing whitespace
#25658: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:951:
+                    0x0016FFFF, $

ERROR: trailing whitespace
#25659: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:952:
+                    One, $

ERROR: trailing whitespace
#25660: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:953:
+                    LNKH, $

ERROR: trailing whitespace
#25662: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:955:
+                }, $

ERROR: trailing whitespace
#25666: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:959:
+                    0x0016FFFF, $

ERROR: trailing whitespace
#25667: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:960:
+                    0x02, $

ERROR: trailing whitespace
#25668: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:961:
+                    LNKE, $

ERROR: trailing whitespace
#25670: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:963:
+                }, $

ERROR: trailing whitespace
#25674: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:967:
+                    0x0016FFFF, $

ERROR: trailing whitespace
#25675: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:968:
+                    0x03, $

ERROR: trailing whitespace
#25676: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:969:
+                    LNKF, $

ERROR: trailing whitespace
#25678: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:971:
+                }, $

ERROR: trailing whitespace
#25682: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:975:
+                    0x0017FFFF, $

ERROR: trailing whitespace
#25683: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:976:
+                    Zero, $

ERROR: trailing whitespace
#25684: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:977:
+                    LNKH, $

ERROR: trailing whitespace
#25686: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:979:
+                }, $

ERROR: trailing whitespace
#25690: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:983:
+                    0x0017FFFF, $

ERROR: trailing whitespace
#25691: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:984:
+                    One, $

ERROR: trailing whitespace
#25692: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:985:
+                    LNKE, $

ERROR: trailing whitespace
#25694: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:987:
+                }, $

ERROR: trailing whitespace
#25698: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:991:
+                    0x0017FFFF, $

ERROR: trailing whitespace
#25699: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:992:
+                    0x02, $

ERROR: trailing whitespace
#25700: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:993:
+                    LNKF, $

ERROR: trailing whitespace
#25702: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:995:
+                }, $

ERROR: trailing whitespace
#25706: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:999:
+                    0x0017FFFF, $

ERROR: trailing whitespace
#25707: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1000:
+                    0x03, $

ERROR: trailing whitespace
#25708: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1001:
+                    LNKG, $

ERROR: trailing whitespace
#25710: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1003:
+                }, $

ERROR: trailing whitespace
#25714: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1007:
+                    0x0018FFFF, $

ERROR: trailing whitespace
#25715: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1008:
+                    Zero, $

ERROR: trailing whitespace
#25716: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1009:
+                    LNKE, $

ERROR: trailing whitespace
#25718: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1011:
+                }, $

ERROR: trailing whitespace
#25722: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1015:
+                    0x0018FFFF, $

ERROR: trailing whitespace
#25723: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1016:
+                    One, $

ERROR: trailing whitespace
#25724: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1017:
+                    LNKF, $

ERROR: trailing whitespace
#25726: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1019:
+                }, $

ERROR: trailing whitespace
#25730: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1023:
+                    0x0018FFFF, $

ERROR: trailing whitespace
#25731: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1024:
+                    0x02, $

ERROR: trailing whitespace
#25732: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1025:
+                    LNKG, $

ERROR: trailing whitespace
#25734: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1027:
+                }, $

ERROR: trailing whitespace
#25738: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1031:
+                    0x0018FFFF, $

ERROR: trailing whitespace
#25739: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1032:
+                    0x03, $

ERROR: trailing whitespace
#25740: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1033:
+                    LNKH, $

ERROR: trailing whitespace
#25742: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1035:
+                }, $

ERROR: trailing whitespace
#25746: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1039:
+                    0x0019FFFF, $

ERROR: trailing whitespace
#25747: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1040:
+                    Zero, $

ERROR: trailing whitespace
#25748: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1041:
+                    LNKA, $

ERROR: trailing whitespace
#25750: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1043:
+                }, $

ERROR: trailing whitespace
#25754: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1047:
+                    0x0019FFFF, $

ERROR: trailing whitespace
#25755: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1048:
+                    One, $

ERROR: trailing whitespace
#25756: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1049:
+                    LNKB, $

ERROR: trailing whitespace
#25758: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1051:
+                }, $

ERROR: trailing whitespace
#25762: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1055:
+                    0x0019FFFF, $

ERROR: trailing whitespace
#25763: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1056:
+                    0x02, $

ERROR: trailing whitespace
#25764: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1057:
+                    LNKC, $

ERROR: trailing whitespace
#25766: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1059:
+                }, $

ERROR: trailing whitespace
#25770: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1063:
+                    0x0019FFFF, $

ERROR: trailing whitespace
#25771: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1064:
+                    0x03, $

ERROR: trailing whitespace
#25772: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1065:
+                    LNKD, $

ERROR: trailing whitespace
#25774: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1067:
+                }, $

ERROR: trailing whitespace
#25778: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1071:
+                    0x001AFFFF, $

ERROR: trailing whitespace
#25779: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1072:
+                    Zero, $

ERROR: trailing whitespace
#25780: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1073:
+                    LNKA, $

ERROR: trailing whitespace
#25782: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1075:
+                }, $

ERROR: trailing whitespace
#25786: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1079:
+                    0x001AFFFF, $

ERROR: trailing whitespace
#25787: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1080:
+                    One, $

ERROR: trailing whitespace
#25788: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1081:
+                    LNKB, $

ERROR: trailing whitespace
#25790: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1083:
+                }, $

ERROR: trailing whitespace
#25794: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1087:
+                    0x001AFFFF, $

ERROR: trailing whitespace
#25795: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1088:
+                    0x02, $

ERROR: trailing whitespace
#25796: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1089:
+                    LNKC, $

ERROR: trailing whitespace
#25798: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1091:
+                }, $

ERROR: trailing whitespace
#25802: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1095:
+                    0x001AFFFF, $

ERROR: trailing whitespace
#25803: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1096:
+                    0x03, $

ERROR: trailing whitespace
#25804: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1097:
+                    LNKD, $

ERROR: trailing whitespace
#25806: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1099:
+                }, $

ERROR: trailing whitespace
#25810: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1103:
+                    0x001BFFFF, $

ERROR: trailing whitespace
#25811: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1104:
+                    Zero, $

ERROR: trailing whitespace
#25812: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1105:
+                    LNKA, $

ERROR: trailing whitespace
#25814: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1107:
+                }, $

ERROR: trailing whitespace
#25818: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1111:
+                    0x001BFFFF, $

ERROR: trailing whitespace
#25819: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1112:
+                    One, $

ERROR: trailing whitespace
#25820: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1113:
+                    LNKB, $

ERROR: trailing whitespace
#25822: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1115:
+                }, $

ERROR: trailing whitespace
#25826: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1119:
+                    0x001BFFFF, $

ERROR: trailing whitespace
#25827: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1120:
+                    0x02, $

ERROR: trailing whitespace
#25828: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1121:
+                    LNKC, $

ERROR: trailing whitespace
#25830: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1123:
+                }, $

ERROR: trailing whitespace
#25834: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1127:
+                    0x001BFFFF, $

ERROR: trailing whitespace
#25835: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1128:
+                    0x03, $

ERROR: trailing whitespace
#25836: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1129:
+                    LNKD, $

ERROR: trailing whitespace
#25838: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1131:
+                }, $

ERROR: trailing whitespace
#25842: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1135:
+                    0x001CFFFF, $

ERROR: trailing whitespace
#25843: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1136:
+                    Zero, $

ERROR: trailing whitespace
#25844: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1137:
+                    LNKA, $

ERROR: trailing whitespace
#25846: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1139:
+                }, $

ERROR: trailing whitespace
#25850: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1143:
+                    0x001CFFFF, $

ERROR: trailing whitespace
#25851: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1144:
+                    One, $

ERROR: trailing whitespace
#25852: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1145:
+                    LNKB, $

ERROR: trailing whitespace
#25854: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1147:
+                }, $

ERROR: trailing whitespace
#25858: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1151:
+                    0x001CFFFF, $

ERROR: trailing whitespace
#25859: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1152:
+                    0x02, $

ERROR: trailing whitespace
#25860: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1153:
+                    LNKC, $

ERROR: trailing whitespace
#25862: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1155:
+                }, $

ERROR: trailing whitespace
#25866: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1159:
+                    0x001CFFFF, $

ERROR: trailing whitespace
#25867: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1160:
+                    0x03, $

ERROR: trailing whitespace
#25868: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1161:
+                    LNKD, $

ERROR: trailing whitespace
#25870: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1163:
+                }, $

ERROR: trailing whitespace
#25874: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1167:
+                    0x001DFFFF, $

ERROR: trailing whitespace
#25875: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1168:
+                    Zero, $

ERROR: trailing whitespace
#25876: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1169:
+                    LNKA, $

ERROR: trailing whitespace
#25878: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1171:
+                }, $

ERROR: trailing whitespace
#25882: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1175:
+                    0x001DFFFF, $

ERROR: trailing whitespace
#25883: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1176:
+                    One, $

ERROR: trailing whitespace
#25884: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1177:
+                    LNKB, $

ERROR: trailing whitespace
#25886: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1179:
+                }, $

ERROR: trailing whitespace
#25890: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1183:
+                    0x001DFFFF, $

ERROR: trailing whitespace
#25891: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1184:
+                    0x02, $

ERROR: trailing whitespace
#25892: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1185:
+                    LNKC, $

ERROR: trailing whitespace
#25894: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1187:
+                }, $

ERROR: trailing whitespace
#25898: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1191:
+                    0x001DFFFF, $

ERROR: trailing whitespace
#25899: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1192:
+                    0x03, $

ERROR: trailing whitespace
#25900: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1193:
+                    LNKD, $

ERROR: trailing whitespace
#25902: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1195:
+                }, $

ERROR: trailing whitespace
#25906: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1199:
+                    0x001EFFFF, $

ERROR: trailing whitespace
#25907: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1200:
+                    Zero, $

ERROR: trailing whitespace
#25908: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1201:
+                    LNKE, $

ERROR: trailing whitespace
#25910: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1203:
+                }, $

ERROR: trailing whitespace
#25914: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1207:
+                    0x001EFFFF, $

ERROR: trailing whitespace
#25915: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1208:
+                    One, $

ERROR: trailing whitespace
#25916: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1209:
+                    LNKF, $

ERROR: trailing whitespace
#25918: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1211:
+                }, $

ERROR: trailing whitespace
#25922: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1215:
+                    0x001EFFFF, $

ERROR: trailing whitespace
#25923: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1216:
+                    0x02, $

ERROR: trailing whitespace
#25924: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1217:
+                    LNKG, $

ERROR: trailing whitespace
#25926: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1219:
+                }, $

ERROR: trailing whitespace
#25930: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1223:
+                    0x001EFFFF, $

ERROR: trailing whitespace
#25931: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1224:
+                    0x03, $

ERROR: trailing whitespace
#25932: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1225:
+                    LNKH, $

ERROR: trailing whitespace
#25934: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1227:
+                }, $

ERROR: trailing whitespace
#25938: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1231:
+                    0x001FFFFF, $

ERROR: trailing whitespace
#25939: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1232:
+                    Zero, $

ERROR: trailing whitespace
#25940: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1233:
+                    LNKA, $

ERROR: trailing whitespace
#25942: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1235:
+                }, $

ERROR: trailing whitespace
#25946: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1239:
+                    0x001FFFFF, $

ERROR: trailing whitespace
#25947: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1240:
+                    One, $

ERROR: trailing whitespace
#25948: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1241:
+                    LNKB, $

ERROR: trailing whitespace
#25950: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1243:
+                }, $

ERROR: trailing whitespace
#25954: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1247:
+                    0x001FFFFF, $

ERROR: trailing whitespace
#25955: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1248:
+                    0x02, $

ERROR: trailing whitespace
#25956: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1249:
+                    LNKC, $

ERROR: trailing whitespace
#25958: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1251:
+                }, $

ERROR: trailing whitespace
#25962: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1255:
+                    0x001FFFFF, $

ERROR: trailing whitespace
#25963: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1256:
+                    0x03, $

ERROR: trailing whitespace
#25964: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1257:
+                    LNKD, $

ERROR: trailing whitespace
#25972: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1265:
+                    0xFFFF, $

ERROR: trailing whitespace
#25973: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1266:
+                    Zero, $

ERROR: trailing whitespace
#25974: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1267:
+                    GSIE, $

ERROR: trailing whitespace
#25976: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1269:
+                }, $

ERROR: trailing whitespace
#25980: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1273:
+                    0xFFFF, $

ERROR: trailing whitespace
#25981: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1274:
+                    One, $

ERROR: trailing whitespace
#25982: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1275:
+                    GSIF, $

ERROR: trailing whitespace
#25984: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1277:
+                }, $

ERROR: trailing whitespace
#25988: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1281:
+                    0xFFFF, $

ERROR: trailing whitespace
#25989: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1282:
+                    0x02, $

ERROR: trailing whitespace
#25990: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1283:
+                    GSIG, $

ERROR: trailing whitespace
#25992: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1285:
+                }, $

ERROR: trailing whitespace
#25996: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1289:
+                    0xFFFF, $

ERROR: trailing whitespace
#25997: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1290:
+                    0x03, $

ERROR: trailing whitespace
#25998: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1291:
+                    GSIH, $

ERROR: trailing whitespace
#26000: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1293:
+                }, $

ERROR: trailing whitespace
#26004: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1297:
+                    0x0001FFFF, $

ERROR: trailing whitespace
#26005: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1298:
+                    Zero, $

ERROR: trailing whitespace
#26006: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1299:
+                    GSIF, $

ERROR: trailing whitespace
#26008: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1301:
+                }, $

ERROR: trailing whitespace
#26012: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1305:
+                    0x0001FFFF, $

ERROR: trailing whitespace
#26013: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1306:
+                    One, $

ERROR: trailing whitespace
#26014: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1307:
+                    GSIG, $

ERROR: trailing whitespace
#26016: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1309:
+                }, $

ERROR: trailing whitespace
#26020: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1313:
+                    0x0001FFFF, $

ERROR: trailing whitespace
#26021: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1314:
+                    0x02, $

ERROR: trailing whitespace
#26022: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1315:
+                    GSIH, $

ERROR: trailing whitespace
#26024: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1317:
+                }, $

ERROR: trailing whitespace
#26028: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1321:
+                    0x0001FFFF, $

ERROR: trailing whitespace
#26029: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1322:
+                    0x03, $

ERROR: trailing whitespace
#26030: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1323:
+                    GSIE, $

ERROR: trailing whitespace
#26032: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1325:
+                }, $

ERROR: trailing whitespace
#26036: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1329:
+                    0x0002FFFF, $

ERROR: trailing whitespace
#26037: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1330:
+                    Zero, $

ERROR: trailing whitespace
#26038: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1331:
+                    GSIG, $

ERROR: trailing whitespace
#26040: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1333:
+                }, $

ERROR: trailing whitespace
#26044: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1337:
+                    0x0002FFFF, $

ERROR: trailing whitespace
#26045: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1338:
+                    One, $

ERROR: trailing whitespace
#26046: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1339:
+                    GSIH, $

ERROR: trailing whitespace
#26048: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1341:
+                }, $

ERROR: trailing whitespace
#26052: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1345:
+                    0x0002FFFF, $

ERROR: trailing whitespace
#26053: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1346:
+                    0x02, $

ERROR: trailing whitespace
#26054: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1347:
+                    GSIE, $

ERROR: trailing whitespace
#26056: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1349:
+                }, $

ERROR: trailing whitespace
#26060: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1353:
+                    0x0002FFFF, $

ERROR: trailing whitespace
#26061: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1354:
+                    0x03, $

ERROR: trailing whitespace
#26062: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1355:
+                    GSIF, $

ERROR: trailing whitespace
#26064: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1357:
+                }, $

ERROR: trailing whitespace
#26068: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1361:
+                    0x0003FFFF, $

ERROR: trailing whitespace
#26069: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1362:
+                    Zero, $

ERROR: trailing whitespace
#26070: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1363:
+                    GSIH, $

ERROR: trailing whitespace
#26072: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1365:
+                }, $

ERROR: trailing whitespace
#26076: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1369:
+                    0x0003FFFF, $

ERROR: trailing whitespace
#26077: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1370:
+                    One, $

ERROR: trailing whitespace
#26078: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1371:
+                    GSIE, $

ERROR: trailing whitespace
#26080: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1373:
+                }, $

ERROR: trailing whitespace
#26084: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1377:
+                    0x0003FFFF, $

ERROR: trailing whitespace
#26085: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1378:
+                    0x02, $

ERROR: trailing whitespace
#26086: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1379:
+                    GSIF, $

ERROR: trailing whitespace
#26088: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1381:
+                }, $

ERROR: trailing whitespace
#26092: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1385:
+                    0x0003FFFF, $

ERROR: trailing whitespace
#26093: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1386:
+                    0x03, $

ERROR: trailing whitespace
#26094: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1387:
+                    GSIG, $

ERROR: trailing whitespace
#26096: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1389:
+                }, $

ERROR: trailing whitespace
#26100: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1393:
+                    0x0004FFFF, $

ERROR: trailing whitespace
#26101: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1394:
+                    Zero, $

ERROR: trailing whitespace
#26102: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1395:
+                    GSIE, $

ERROR: trailing whitespace
#26104: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1397:
+                }, $

ERROR: trailing whitespace
#26108: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1401:
+                    0x0004FFFF, $

ERROR: trailing whitespace
#26109: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1402:
+                    One, $

ERROR: trailing whitespace
#26110: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1403:
+                    GSIF, $

ERROR: trailing whitespace
#26112: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1405:
+                }, $

ERROR: trailing whitespace
#26116: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1409:
+                    0x0004FFFF, $

ERROR: trailing whitespace
#26117: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1410:
+                    0x02, $

ERROR: trailing whitespace
#26118: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1411:
+                    GSIG, $

ERROR: trailing whitespace
#26120: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1413:
+                }, $

ERROR: trailing whitespace
#26124: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1417:
+                    0x0004FFFF, $

ERROR: trailing whitespace
#26125: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1418:
+                    0x03, $

ERROR: trailing whitespace
#26126: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1419:
+                    GSIH, $

ERROR: trailing whitespace
#26128: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1421:
+                }, $

ERROR: trailing whitespace
#26132: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1425:
+                    0x0005FFFF, $

ERROR: trailing whitespace
#26133: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1426:
+                    Zero, $

ERROR: trailing whitespace
#26134: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1427:
+                    GSIF, $

ERROR: trailing whitespace
#26136: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1429:
+                }, $

ERROR: trailing whitespace
#26140: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1433:
+                    0x0005FFFF, $

ERROR: trailing whitespace
#26141: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1434:
+                    One, $

ERROR: trailing whitespace
#26142: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1435:
+                    GSIG, $

ERROR: trailing whitespace
#26144: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1437:
+                }, $

ERROR: trailing whitespace
#26148: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1441:
+                    0x0005FFFF, $

ERROR: trailing whitespace
#26149: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1442:
+                    0x02, $

ERROR: trailing whitespace
#26150: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1443:
+                    GSIH, $

ERROR: trailing whitespace
#26152: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1445:
+                }, $

ERROR: trailing whitespace
#26156: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1449:
+                    0x0005FFFF, $

ERROR: trailing whitespace
#26157: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1450:
+                    0x03, $

ERROR: trailing whitespace
#26158: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1451:
+                    GSIE, $

ERROR: trailing whitespace
#26160: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1453:
+                }, $

ERROR: trailing whitespace
#26164: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1457:
+                    0x0006FFFF, $

ERROR: trailing whitespace
#26165: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1458:
+                    Zero, $

ERROR: trailing whitespace
#26166: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1459:
+                    GSIG, $

ERROR: trailing whitespace
#26168: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1461:
+                }, $

ERROR: trailing whitespace
#26172: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1465:
+                    0x0006FFFF, $

ERROR: trailing whitespace
#26173: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1466:
+                    One, $

ERROR: trailing whitespace
#26174: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1467:
+                    GSIH, $

ERROR: trailing whitespace
#26176: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1469:
+                }, $

ERROR: trailing whitespace
#26180: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1473:
+                    0x0006FFFF, $

ERROR: trailing whitespace
#26181: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1474:
+                    0x02, $

ERROR: trailing whitespace
#26182: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1475:
+                    GSIE, $

ERROR: trailing whitespace
#26184: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1477:
+                }, $

ERROR: trailing whitespace
#26188: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1481:
+                    0x0006FFFF, $

ERROR: trailing whitespace
#26189: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1482:
+                    0x03, $

ERROR: trailing whitespace
#26190: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1483:
+                    GSIF, $

ERROR: trailing whitespace
#26192: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1485:
+                }, $

ERROR: trailing whitespace
#26196: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1489:
+                    0x0007FFFF, $

ERROR: trailing whitespace
#26197: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1490:
+                    Zero, $

ERROR: trailing whitespace
#26198: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1491:
+                    GSIH, $

ERROR: trailing whitespace
#26200: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1493:
+                }, $

ERROR: trailing whitespace
#26204: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1497:
+                    0x0007FFFF, $

ERROR: trailing whitespace
#26205: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1498:
+                    One, $

ERROR: trailing whitespace
#26206: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1499:
+                    GSIE, $

ERROR: trailing whitespace
#26208: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1501:
+                }, $

ERROR: trailing whitespace
#26212: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1505:
+                    0x0007FFFF, $

ERROR: trailing whitespace
#26213: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1506:
+                    0x02, $

ERROR: trailing whitespace
#26214: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1507:
+                    GSIF, $

ERROR: trailing whitespace
#26216: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1509:
+                }, $

ERROR: trailing whitespace
#26220: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1513:
+                    0x0007FFFF, $

ERROR: trailing whitespace
#26221: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1514:
+                    0x03, $

ERROR: trailing whitespace
#26222: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1515:
+                    GSIG, $

ERROR: trailing whitespace
#26224: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1517:
+                }, $

ERROR: trailing whitespace
#26228: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1521:
+                    0x0008FFFF, $

ERROR: trailing whitespace
#26229: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1522:
+                    Zero, $

ERROR: trailing whitespace
#26230: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1523:
+                    GSIE, $

ERROR: trailing whitespace
#26232: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1525:
+                }, $

ERROR: trailing whitespace
#26236: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1529:
+                    0x0008FFFF, $

ERROR: trailing whitespace
#26237: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1530:
+                    One, $

ERROR: trailing whitespace
#26238: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1531:
+                    GSIF, $

ERROR: trailing whitespace
#26240: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1533:
+                }, $

ERROR: trailing whitespace
#26244: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1537:
+                    0x0008FFFF, $

ERROR: trailing whitespace
#26245: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1538:
+                    0x02, $

ERROR: trailing whitespace
#26246: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1539:
+                    GSIG, $

ERROR: trailing whitespace
#26248: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1541:
+                }, $

ERROR: trailing whitespace
#26252: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1545:
+                    0x0008FFFF, $

ERROR: trailing whitespace
#26253: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1546:
+                    0x03, $

ERROR: trailing whitespace
#26254: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1547:
+                    GSIH, $

ERROR: trailing whitespace
#26256: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1549:
+                }, $

ERROR: trailing whitespace
#26260: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1553:
+                    0x0009FFFF, $

ERROR: trailing whitespace
#26261: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1554:
+                    Zero, $

ERROR: trailing whitespace
#26262: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1555:
+                    GSIF, $

ERROR: trailing whitespace
#26264: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1557:
+                }, $

ERROR: trailing whitespace
#26268: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1561:
+                    0x0009FFFF, $

ERROR: trailing whitespace
#26269: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1562:
+                    One, $

ERROR: trailing whitespace
#26270: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1563:
+                    GSIG, $

ERROR: trailing whitespace
#26272: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1565:
+                }, $

ERROR: trailing whitespace
#26276: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1569:
+                    0x0009FFFF, $

ERROR: trailing whitespace
#26277: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1570:
+                    0x02, $

ERROR: trailing whitespace
#26278: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1571:
+                    GSIH, $

ERROR: trailing whitespace
#26280: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1573:
+                }, $

ERROR: trailing whitespace
#26284: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1577:
+                    0x0009FFFF, $

ERROR: trailing whitespace
#26285: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1578:
+                    0x03, $

ERROR: trailing whitespace
#26286: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1579:
+                    GSIE, $

ERROR: trailing whitespace
#26288: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1581:
+                }, $

ERROR: trailing whitespace
#26292: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1585:
+                    0x000AFFFF, $

ERROR: trailing whitespace
#26293: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1586:
+                    Zero, $

ERROR: trailing whitespace
#26294: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1587:
+                    GSIG, $

ERROR: trailing whitespace
#26296: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1589:
+                }, $

ERROR: trailing whitespace
#26300: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1593:
+                    0x000AFFFF, $

ERROR: trailing whitespace
#26301: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1594:
+                    One, $

ERROR: trailing whitespace
#26302: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1595:
+                    GSIH, $

ERROR: trailing whitespace
#26304: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1597:
+                }, $

ERROR: trailing whitespace
#26308: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1601:
+                    0x000AFFFF, $

ERROR: trailing whitespace
#26309: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1602:
+                    0x02, $

ERROR: trailing whitespace
#26310: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1603:
+                    GSIE, $

ERROR: trailing whitespace
#26312: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1605:
+                }, $

ERROR: trailing whitespace
#26316: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1609:
+                    0x000AFFFF, $

ERROR: trailing whitespace
#26317: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1610:
+                    0x03, $

ERROR: trailing whitespace
#26318: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1611:
+                    GSIF, $

ERROR: trailing whitespace
#26320: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1613:
+                }, $

ERROR: trailing whitespace
#26324: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1617:
+                    0x000BFFFF, $

ERROR: trailing whitespace
#26325: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1618:
+                    Zero, $

ERROR: trailing whitespace
#26326: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1619:
+                    GSIH, $

ERROR: trailing whitespace
#26328: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1621:
+                }, $

ERROR: trailing whitespace
#26332: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1625:
+                    0x000BFFFF, $

ERROR: trailing whitespace
#26333: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1626:
+                    One, $

ERROR: trailing whitespace
#26334: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1627:
+                    GSIE, $

ERROR: trailing whitespace
#26336: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1629:
+                }, $

ERROR: trailing whitespace
#26340: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1633:
+                    0x000BFFFF, $

ERROR: trailing whitespace
#26341: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1634:
+                    0x02, $

ERROR: trailing whitespace
#26342: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1635:
+                    GSIF, $

ERROR: trailing whitespace
#26344: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1637:
+                }, $

ERROR: trailing whitespace
#26348: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1641:
+                    0x000BFFFF, $

ERROR: trailing whitespace
#26349: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1642:
+                    0x03, $

ERROR: trailing whitespace
#26350: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1643:
+                    GSIG, $

ERROR: trailing whitespace
#26352: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1645:
+                }, $

ERROR: trailing whitespace
#26356: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1649:
+                    0x000CFFFF, $

ERROR: trailing whitespace
#26357: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1650:
+                    Zero, $

ERROR: trailing whitespace
#26358: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1651:
+                    GSIE, $

ERROR: trailing whitespace
#26360: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1653:
+                }, $

ERROR: trailing whitespace
#26364: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1657:
+                    0x000CFFFF, $

ERROR: trailing whitespace
#26365: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1658:
+                    One, $

ERROR: trailing whitespace
#26366: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1659:
+                    GSIF, $

ERROR: trailing whitespace
#26368: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1661:
+                }, $

ERROR: trailing whitespace
#26372: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1665:
+                    0x000CFFFF, $

ERROR: trailing whitespace
#26373: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1666:
+                    0x02, $

ERROR: trailing whitespace
#26374: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1667:
+                    GSIG, $

ERROR: trailing whitespace
#26376: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1669:
+                }, $

ERROR: trailing whitespace
#26380: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1673:
+                    0x000CFFFF, $

ERROR: trailing whitespace
#26381: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1674:
+                    0x03, $

ERROR: trailing whitespace
#26382: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1675:
+                    GSIH, $

ERROR: trailing whitespace
#26384: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1677:
+                }, $

ERROR: trailing whitespace
#26388: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1681:
+                    0x000DFFFF, $

ERROR: trailing whitespace
#26389: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1682:
+                    Zero, $

ERROR: trailing whitespace
#26390: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1683:
+                    GSIF, $

ERROR: trailing whitespace
#26392: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1685:
+                }, $

ERROR: trailing whitespace
#26396: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1689:
+                    0x000DFFFF, $

ERROR: trailing whitespace
#26397: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1690:
+                    One, $

ERROR: trailing whitespace
#26398: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1691:
+                    GSIG, $

ERROR: trailing whitespace
#26400: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1693:
+                }, $

ERROR: trailing whitespace
#26404: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1697:
+                    0x000DFFFF, $

ERROR: trailing whitespace
#26405: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1698:
+                    0x02, $

ERROR: trailing whitespace
#26406: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1699:
+                    GSIH, $

ERROR: trailing whitespace
#26408: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1701:
+                }, $

ERROR: trailing whitespace
#26412: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1705:
+                    0x000DFFFF, $

ERROR: trailing whitespace
#26413: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1706:
+                    0x03, $

ERROR: trailing whitespace
#26414: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1707:
+                    GSIE, $

ERROR: trailing whitespace
#26416: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1709:
+                }, $

ERROR: trailing whitespace
#26420: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1713:
+                    0x000EFFFF, $

ERROR: trailing whitespace
#26421: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1714:
+                    Zero, $

ERROR: trailing whitespace
#26422: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1715:
+                    GSIG, $

ERROR: trailing whitespace
#26424: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1717:
+                }, $

ERROR: trailing whitespace
#26428: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1721:
+                    0x000EFFFF, $

ERROR: trailing whitespace
#26429: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1722:
+                    One, $

ERROR: trailing whitespace
#26430: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1723:
+                    GSIH, $

ERROR: trailing whitespace
#26432: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1725:
+                }, $

ERROR: trailing whitespace
#26436: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1729:
+                    0x000EFFFF, $

ERROR: trailing whitespace
#26437: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1730:
+                    0x02, $

ERROR: trailing whitespace
#26438: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1731:
+                    GSIE, $

ERROR: trailing whitespace
#26440: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1733:
+                }, $

ERROR: trailing whitespace
#26444: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1737:
+                    0x000EFFFF, $

ERROR: trailing whitespace
#26445: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1738:
+                    0x03, $

ERROR: trailing whitespace
#26446: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1739:
+                    GSIF, $

ERROR: trailing whitespace
#26448: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1741:
+                }, $

ERROR: trailing whitespace
#26452: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1745:
+                    0x000FFFFF, $

ERROR: trailing whitespace
#26453: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1746:
+                    Zero, $

ERROR: trailing whitespace
#26454: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1747:
+                    GSIH, $

ERROR: trailing whitespace
#26456: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1749:
+                }, $

ERROR: trailing whitespace
#26460: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1753:
+                    0x000FFFFF, $

ERROR: trailing whitespace
#26461: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1754:
+                    One, $

ERROR: trailing whitespace
#26462: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1755:
+                    GSIE, $

ERROR: trailing whitespace
#26464: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1757:
+                }, $

ERROR: trailing whitespace
#26468: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1761:
+                    0x000FFFFF, $

ERROR: trailing whitespace
#26469: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1762:
+                    0x02, $

ERROR: trailing whitespace
#26470: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1763:
+                    GSIF, $

ERROR: trailing whitespace
#26472: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1765:
+                }, $

ERROR: trailing whitespace
#26476: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1769:
+                    0x000FFFFF, $

ERROR: trailing whitespace
#26477: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1770:
+                    0x03, $

ERROR: trailing whitespace
#26478: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1771:
+                    GSIG, $

ERROR: trailing whitespace
#26480: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1773:
+                }, $

ERROR: trailing whitespace
#26484: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1777:
+                    0x0010FFFF, $

ERROR: trailing whitespace
#26485: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1778:
+                    Zero, $

ERROR: trailing whitespace
#26486: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1779:
+                    GSIE, $

ERROR: trailing whitespace
#26488: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1781:
+                }, $

ERROR: trailing whitespace
#26492: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1785:
+                    0x0010FFFF, $

ERROR: trailing whitespace
#26493: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1786:
+                    One, $

ERROR: trailing whitespace
#26494: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1787:
+                    GSIF, $

ERROR: trailing whitespace
#26496: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1789:
+                }, $

ERROR: trailing whitespace
#26500: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1793:
+                    0x0010FFFF, $

ERROR: trailing whitespace
#26501: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1794:
+                    0x02, $

ERROR: trailing whitespace
#26502: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1795:
+                    GSIG, $

ERROR: trailing whitespace
#26504: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1797:
+                }, $

ERROR: trailing whitespace
#26508: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1801:
+                    0x0010FFFF, $

ERROR: trailing whitespace
#26509: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1802:
+                    0x03, $

ERROR: trailing whitespace
#26510: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1803:
+                    GSIH, $

ERROR: trailing whitespace
#26512: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1805:
+                }, $

ERROR: trailing whitespace
#26516: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1809:
+                    0x0011FFFF, $

ERROR: trailing whitespace
#26517: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1810:
+                    Zero, $

ERROR: trailing whitespace
#26518: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1811:
+                    GSIF, $

ERROR: trailing whitespace
#26520: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1813:
+                }, $

ERROR: trailing whitespace
#26524: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1817:
+                    0x0011FFFF, $

ERROR: trailing whitespace
#26525: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1818:
+                    One, $

ERROR: trailing whitespace
#26526: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1819:
+                    GSIG, $

ERROR: trailing whitespace
#26528: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1821:
+                }, $

ERROR: trailing whitespace
#26532: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1825:
+                    0x0011FFFF, $

ERROR: trailing whitespace
#26533: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1826:
+                    0x02, $

ERROR: trailing whitespace
#26534: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1827:
+                    GSIH, $

ERROR: trailing whitespace
#26536: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1829:
+                }, $

ERROR: trailing whitespace
#26540: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1833:
+                    0x0011FFFF, $

ERROR: trailing whitespace
#26541: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1834:
+                    0x03, $

ERROR: trailing whitespace
#26542: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1835:
+                    GSIE, $

ERROR: trailing whitespace
#26544: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1837:
+                }, $

ERROR: trailing whitespace
#26548: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1841:
+                    0x0012FFFF, $

ERROR: trailing whitespace
#26549: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1842:
+                    Zero, $

ERROR: trailing whitespace
#26550: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1843:
+                    GSIG, $

ERROR: trailing whitespace
#26552: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1845:
+                }, $

ERROR: trailing whitespace
#26556: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1849:
+                    0x0012FFFF, $

ERROR: trailing whitespace
#26557: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1850:
+                    One, $

ERROR: trailing whitespace
#26558: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1851:
+                    GSIH, $

ERROR: trailing whitespace
#26560: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1853:
+                }, $

ERROR: trailing whitespace
#26564: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1857:
+                    0x0012FFFF, $

ERROR: trailing whitespace
#26565: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1858:
+                    0x02, $

ERROR: trailing whitespace
#26566: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1859:
+                    GSIE, $

ERROR: trailing whitespace
#26568: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1861:
+                }, $

ERROR: trailing whitespace
#26572: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1865:
+                    0x0012FFFF, $

ERROR: trailing whitespace
#26573: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1866:
+                    0x03, $

ERROR: trailing whitespace
#26574: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1867:
+                    GSIF, $

ERROR: trailing whitespace
#26576: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1869:
+                }, $

ERROR: trailing whitespace
#26580: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1873:
+                    0x0013FFFF, $

ERROR: trailing whitespace
#26581: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1874:
+                    Zero, $

ERROR: trailing whitespace
#26582: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1875:
+                    GSIH, $

ERROR: trailing whitespace
#26584: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1877:
+                }, $

ERROR: trailing whitespace
#26588: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1881:
+                    0x0013FFFF, $

ERROR: trailing whitespace
#26589: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1882:
+                    One, $

ERROR: trailing whitespace
#26590: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1883:
+                    GSIE, $

ERROR: trailing whitespace
#26592: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1885:
+                }, $

ERROR: trailing whitespace
#26596: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1889:
+                    0x0013FFFF, $

ERROR: trailing whitespace
#26597: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1890:
+                    0x02, $

ERROR: trailing whitespace
#26598: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1891:
+                    GSIF, $

ERROR: trailing whitespace
#26600: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1893:
+                }, $

ERROR: trailing whitespace
#26604: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1897:
+                    0x0013FFFF, $

ERROR: trailing whitespace
#26605: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1898:
+                    0x03, $

ERROR: trailing whitespace
#26606: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1899:
+                    GSIG, $

ERROR: trailing whitespace
#26608: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1901:
+                }, $

ERROR: trailing whitespace
#26612: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1905:
+                    0x0014FFFF, $

ERROR: trailing whitespace
#26613: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1906:
+                    Zero, $

ERROR: trailing whitespace
#26614: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1907:
+                    GSIE, $

ERROR: trailing whitespace
#26616: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1909:
+                }, $

ERROR: trailing whitespace
#26620: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1913:
+                    0x0014FFFF, $

ERROR: trailing whitespace
#26621: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1914:
+                    One, $

ERROR: trailing whitespace
#26622: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1915:
+                    GSIF, $

ERROR: trailing whitespace
#26624: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1917:
+                }, $

ERROR: trailing whitespace
#26628: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1921:
+                    0x0014FFFF, $

ERROR: trailing whitespace
#26629: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1922:
+                    0x02, $

ERROR: trailing whitespace
#26630: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1923:
+                    GSIG, $

ERROR: trailing whitespace
#26632: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1925:
+                }, $

ERROR: trailing whitespace
#26636: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1929:
+                    0x0014FFFF, $

ERROR: trailing whitespace
#26637: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1930:
+                    0x03, $

ERROR: trailing whitespace
#26638: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1931:
+                    GSIH, $

ERROR: trailing whitespace
#26640: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1933:
+                }, $

ERROR: trailing whitespace
#26644: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1937:
+                    0x0015FFFF, $

ERROR: trailing whitespace
#26645: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1938:
+                    Zero, $

ERROR: trailing whitespace
#26646: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1939:
+                    GSIF, $

ERROR: trailing whitespace
#26648: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1941:
+                }, $

ERROR: trailing whitespace
#26652: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1945:
+                    0x0015FFFF, $

ERROR: trailing whitespace
#26653: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1946:
+                    One, $

ERROR: trailing whitespace
#26654: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1947:
+                    GSIG, $

ERROR: trailing whitespace
#26656: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1949:
+                }, $

ERROR: trailing whitespace
#26660: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1953:
+                    0x0015FFFF, $

ERROR: trailing whitespace
#26661: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1954:
+                    0x02, $

ERROR: trailing whitespace
#26662: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1955:
+                    GSIH, $

ERROR: trailing whitespace
#26664: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1957:
+                }, $

ERROR: trailing whitespace
#26668: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1961:
+                    0x0015FFFF, $

ERROR: trailing whitespace
#26669: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1962:
+                    0x03, $

ERROR: trailing whitespace
#26670: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1963:
+                    GSIE, $

ERROR: trailing whitespace
#26672: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1965:
+                }, $

ERROR: trailing whitespace
#26676: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1969:
+                    0x0016FFFF, $

ERROR: trailing whitespace
#26677: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1970:
+                    Zero, $

ERROR: trailing whitespace
#26678: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1971:
+                    GSIG, $

ERROR: trailing whitespace
#26680: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1973:
+                }, $

ERROR: trailing whitespace
#26684: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1977:
+                    0x0016FFFF, $

ERROR: trailing whitespace
#26685: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1978:
+                    One, $

ERROR: trailing whitespace
#26686: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1979:
+                    GSIH, $

ERROR: trailing whitespace
#26688: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1981:
+                }, $

ERROR: trailing whitespace
#26692: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1985:
+                    0x0016FFFF, $

ERROR: trailing whitespace
#26693: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1986:
+                    0x02, $

ERROR: trailing whitespace
#26694: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1987:
+                    GSIE, $

ERROR: trailing whitespace
#26696: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1989:
+                }, $

ERROR: trailing whitespace
#26700: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1993:
+                    0x0016FFFF, $

ERROR: trailing whitespace
#26701: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1994:
+                    0x03, $

ERROR: trailing whitespace
#26702: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1995:
+                    GSIF, $

ERROR: trailing whitespace
#26704: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:1997:
+                }, $

ERROR: trailing whitespace
#26708: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2001:
+                    0x0017FFFF, $

ERROR: trailing whitespace
#26709: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2002:
+                    Zero, $

ERROR: trailing whitespace
#26710: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2003:
+                    GSIH, $

ERROR: trailing whitespace
#26712: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2005:
+                }, $

ERROR: trailing whitespace
#26716: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2009:
+                    0x0017FFFF, $

ERROR: trailing whitespace
#26717: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2010:
+                    One, $

ERROR: trailing whitespace
#26718: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2011:
+                    GSIE, $

ERROR: trailing whitespace
#26720: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2013:
+                }, $

ERROR: trailing whitespace
#26724: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2017:
+                    0x0017FFFF, $

ERROR: trailing whitespace
#26725: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2018:
+                    0x02, $

ERROR: trailing whitespace
#26726: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2019:
+                    GSIF, $

ERROR: trailing whitespace
#26728: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2021:
+                }, $

ERROR: trailing whitespace
#26732: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2025:
+                    0x0017FFFF, $

ERROR: trailing whitespace
#26733: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2026:
+                    0x03, $

ERROR: trailing whitespace
#26734: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2027:
+                    GSIG, $

ERROR: trailing whitespace
#26736: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2029:
+                }, $

ERROR: trailing whitespace
#26740: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2033:
+                    0x0018FFFF, $

ERROR: trailing whitespace
#26741: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2034:
+                    Zero, $

ERROR: trailing whitespace
#26742: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2035:
+                    GSIE, $

ERROR: trailing whitespace
#26744: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2037:
+                }, $

ERROR: trailing whitespace
#26748: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2041:
+                    0x0018FFFF, $

ERROR: trailing whitespace
#26749: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2042:
+                    One, $

ERROR: trailing whitespace
#26750: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2043:
+                    GSIF, $

ERROR: trailing whitespace
#26752: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2045:
+                }, $

ERROR: trailing whitespace
#26756: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2049:
+                    0x0018FFFF, $

ERROR: trailing whitespace
#26757: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2050:
+                    0x02, $

ERROR: trailing whitespace
#26758: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2051:
+                    GSIG, $

ERROR: trailing whitespace
#26760: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2053:
+                }, $

ERROR: trailing whitespace
#26764: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2057:
+                    0x0018FFFF, $

ERROR: trailing whitespace
#26765: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2058:
+                    0x03, $

ERROR: trailing whitespace
#26766: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2059:
+                    GSIH, $

ERROR: trailing whitespace
#26768: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2061:
+                }, $

ERROR: trailing whitespace
#26772: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2065:
+                    0x0019FFFF, $

ERROR: trailing whitespace
#26773: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2066:
+                    Zero, $

ERROR: trailing whitespace
#26774: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2067:
+                    GSIA, $

ERROR: trailing whitespace
#26776: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2069:
+                }, $

ERROR: trailing whitespace
#26780: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2073:
+                    0x0019FFFF, $

ERROR: trailing whitespace
#26781: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2074:
+                    One, $

ERROR: trailing whitespace
#26782: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2075:
+                    GSIB, $

ERROR: trailing whitespace
#26784: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2077:
+                }, $

ERROR: trailing whitespace
#26788: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2081:
+                    0x0019FFFF, $

ERROR: trailing whitespace
#26789: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2082:
+                    0x02, $

ERROR: trailing whitespace
#26790: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2083:
+                    GSIC, $

ERROR: trailing whitespace
#26792: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2085:
+                }, $

ERROR: trailing whitespace
#26796: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2089:
+                    0x0019FFFF, $

ERROR: trailing whitespace
#26797: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2090:
+                    0x03, $

ERROR: trailing whitespace
#26798: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2091:
+                    GSID, $

ERROR: trailing whitespace
#26800: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2093:
+                }, $

ERROR: trailing whitespace
#26804: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2097:
+                    0x001AFFFF, $

ERROR: trailing whitespace
#26805: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2098:
+                    Zero, $

ERROR: trailing whitespace
#26806: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2099:
+                    GSIA, $

ERROR: trailing whitespace
#26808: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2101:
+                }, $

ERROR: trailing whitespace
#26812: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2105:
+                    0x001AFFFF, $

ERROR: trailing whitespace
#26813: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2106:
+                    One, $

ERROR: trailing whitespace
#26814: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2107:
+                    GSIB, $

ERROR: trailing whitespace
#26816: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2109:
+                }, $

ERROR: trailing whitespace
#26820: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2113:
+                    0x001AFFFF, $

ERROR: trailing whitespace
#26821: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2114:
+                    0x02, $

ERROR: trailing whitespace
#26822: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2115:
+                    GSIC, $

ERROR: trailing whitespace
#26824: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2117:
+                }, $

ERROR: trailing whitespace
#26828: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2121:
+                    0x001AFFFF, $

ERROR: trailing whitespace
#26829: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2122:
+                    0x03, $

ERROR: trailing whitespace
#26830: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2123:
+                    GSID, $

ERROR: trailing whitespace
#26832: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2125:
+                }, $

ERROR: trailing whitespace
#26836: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2129:
+                    0x001BFFFF, $

ERROR: trailing whitespace
#26837: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2130:
+                    Zero, $

ERROR: trailing whitespace
#26838: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2131:
+                    GSIA, $

ERROR: trailing whitespace
#26840: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2133:
+                }, $

ERROR: trailing whitespace
#26844: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2137:
+                    0x001BFFFF, $

ERROR: trailing whitespace
#26845: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2138:
+                    One, $

ERROR: trailing whitespace
#26846: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2139:
+                    GSIB, $

ERROR: trailing whitespace
#26848: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2141:
+                }, $

ERROR: trailing whitespace
#26852: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2145:
+                    0x001BFFFF, $

ERROR: trailing whitespace
#26853: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2146:
+                    0x02, $

ERROR: trailing whitespace
#26854: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2147:
+                    GSIC, $

ERROR: trailing whitespace
#26856: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2149:
+                }, $

ERROR: trailing whitespace
#26860: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2153:
+                    0x001BFFFF, $

ERROR: trailing whitespace
#26861: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2154:
+                    0x03, $

ERROR: trailing whitespace
#26862: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2155:
+                    GSID, $

ERROR: trailing whitespace
#26864: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2157:
+                }, $

ERROR: trailing whitespace
#26868: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2161:
+                    0x001CFFFF, $

ERROR: trailing whitespace
#26869: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2162:
+                    Zero, $

ERROR: trailing whitespace
#26870: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2163:
+                    GSIA, $

ERROR: trailing whitespace
#26872: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2165:
+                }, $

ERROR: trailing whitespace
#26876: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2169:
+                    0x001CFFFF, $

ERROR: trailing whitespace
#26877: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2170:
+                    One, $

ERROR: trailing whitespace
#26878: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2171:
+                    GSIB, $

ERROR: trailing whitespace
#26880: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2173:
+                }, $

ERROR: trailing whitespace
#26884: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2177:
+                    0x001CFFFF, $

ERROR: trailing whitespace
#26885: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2178:
+                    0x02, $

ERROR: trailing whitespace
#26886: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2179:
+                    GSIC, $

ERROR: trailing whitespace
#26888: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2181:
+                }, $

ERROR: trailing whitespace
#26892: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2185:
+                    0x001CFFFF, $

ERROR: trailing whitespace
#26893: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2186:
+                    0x03, $

ERROR: trailing whitespace
#26894: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2187:
+                    GSID, $

ERROR: trailing whitespace
#26896: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2189:
+                }, $

ERROR: trailing whitespace
#26900: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2193:
+                    0x001DFFFF, $

ERROR: trailing whitespace
#26901: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2194:
+                    Zero, $

ERROR: trailing whitespace
#26902: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2195:
+                    GSIA, $

ERROR: trailing whitespace
#26904: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2197:
+                }, $

ERROR: trailing whitespace
#26908: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2201:
+                    0x001DFFFF, $

ERROR: trailing whitespace
#26909: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2202:
+                    One, $

ERROR: trailing whitespace
#26910: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2203:
+                    GSIB, $

ERROR: trailing whitespace
#26912: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2205:
+                }, $

ERROR: trailing whitespace
#26916: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2209:
+                    0x001DFFFF, $

ERROR: trailing whitespace
#26917: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2210:
+                    0x02, $

ERROR: trailing whitespace
#26918: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2211:
+                    GSIC, $

ERROR: trailing whitespace
#26920: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2213:
+                }, $

ERROR: trailing whitespace
#26924: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2217:
+                    0x001DFFFF, $

ERROR: trailing whitespace
#26925: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2218:
+                    0x03, $

ERROR: trailing whitespace
#26926: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2219:
+                    GSID, $

ERROR: trailing whitespace
#26928: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2221:
+                }, $

ERROR: trailing whitespace
#26932: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2225:
+                    0x001EFFFF, $

ERROR: trailing whitespace
#26933: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2226:
+                    Zero, $

ERROR: trailing whitespace
#26934: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2227:
+                    GSIE, $

ERROR: trailing whitespace
#26936: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2229:
+                }, $

ERROR: trailing whitespace
#26940: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2233:
+                    0x001EFFFF, $

ERROR: trailing whitespace
#26941: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2234:
+                    One, $

ERROR: trailing whitespace
#26942: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2235:
+                    GSIF, $

ERROR: trailing whitespace
#26944: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2237:
+                }, $

ERROR: trailing whitespace
#26948: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2241:
+                    0x001EFFFF, $

ERROR: trailing whitespace
#26949: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2242:
+                    0x02, $

ERROR: trailing whitespace
#26950: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2243:
+                    GSIG, $

ERROR: trailing whitespace
#26952: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2245:
+                }, $

ERROR: trailing whitespace
#26956: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2249:
+                    0x001EFFFF, $

ERROR: trailing whitespace
#26957: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2250:
+                    0x03, $

ERROR: trailing whitespace
#26958: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2251:
+                    GSIH, $

ERROR: trailing whitespace
#26960: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2253:
+                }, $

ERROR: trailing whitespace
#26964: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2257:
+                    0x001FFFFF, $

ERROR: trailing whitespace
#26965: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2258:
+                    Zero, $

ERROR: trailing whitespace
#26966: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2259:
+                    GSIA, $

ERROR: trailing whitespace
#26968: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2261:
+                }, $

ERROR: trailing whitespace
#26972: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2265:
+                    0x001FFFFF, $

ERROR: trailing whitespace
#26973: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2266:
+                    One, $

ERROR: trailing whitespace
#26974: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2267:
+                    GSIB, $

ERROR: trailing whitespace
#26976: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2269:
+                }, $

ERROR: trailing whitespace
#26980: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2273:
+                    0x001FFFFF, $

ERROR: trailing whitespace
#26981: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2274:
+                    0x02, $

ERROR: trailing whitespace
#26982: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2275:
+                    GSIC, $

ERROR: trailing whitespace
#26984: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2277:
+                }, $

ERROR: trailing whitespace
#26988: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2281:
+                    0x001FFFFF, $

ERROR: trailing whitespace
#26989: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2282:
+                    0x03, $

ERROR: trailing whitespace
#26990: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2283:
+                    GSID, $

ERROR: trailing whitespace
#27009: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2302:
+            PRQA,   8, $

ERROR: trailing whitespace
#27010: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2303:
+            PRQB,   8, $

ERROR: trailing whitespace
#27011: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2304:
+            PRQC,   8, $

ERROR: trailing whitespace
#27012: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2305:
+            PRQD,   8, $

ERROR: trailing whitespace
#27013: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2306:
+            Offset (0x08), $

ERROR: trailing whitespace
#27014: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2307:
+            PRQE,   8, $

ERROR: trailing whitespace
#27015: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2308:
+            PRQF,   8, $

ERROR: trailing whitespace
#27016: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2309:
+            PRQG,   8, $

ERROR: trailing whitespace
#27568: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2861:
+                Offset (0x04), $

ERROR: trailing whitespace
#27569: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2862:
+                CPEN,   1, $

ERROR: trailing whitespace
#27570: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2863:
+                CINS,   1, $

ERROR: trailing whitespace
#27571: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2864:
+                CRMV,   1, $

ERROR: trailing whitespace
#27572: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2865:
+                CEJ0,   1, $

ERROR: trailing whitespace
#27573: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2866:
+                Offset (0x05), $

ERROR: trailing whitespace
#27579: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2872:
+                CSEL,   32, $

ERROR: trailing whitespace
#27580: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:2873:
+                Offset (0x08), $

ERROR: trailing whitespace
#27770: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:3063:
+            One, $

ERROR: trailing whitespace
#27771: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:3064:
+            One, $

ERROR: trailing whitespace
#27772: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:3065:
+            Zero, $

ERROR: trailing whitespace
#27777: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:3070:
+            0x02, $

ERROR: trailing whitespace
#27778: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:3071:
+            0x02, $

ERROR: trailing whitespace
#27779: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:3072:
+            Zero, $

ERROR: trailing whitespace
#27784: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:3077:
+            Zero, $

ERROR: trailing whitespace
#27785: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:3078:
+            Zero, $

ERROR: trailing whitespace
#27786: FILE: tests/data/acpi/q35/DSDT.bridge.dsl:3079:
+            Zero, $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/DSDT.cphp and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/DSDT.cphp.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/DSDT.cphp.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#27862: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:5:
+ * $

ERROR: trailing whitespace
#27952: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:95:
+                VEND,   32, $

ERROR: trailing whitespace
#28096: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:239:
+                    0xFFFF, $

ERROR: trailing whitespace
#28097: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:240:
+                    Zero, $

ERROR: trailing whitespace
#28098: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:241:
+                    LNKE, $

ERROR: trailing whitespace
#28100: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:243:
+                }, $

ERROR: trailing whitespace
#28104: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:247:
+                    0xFFFF, $

ERROR: trailing whitespace
#28105: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:248:
+                    One, $

ERROR: trailing whitespace
#28106: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:249:
+                    LNKF, $

ERROR: trailing whitespace
#28108: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:251:
+                }, $

ERROR: trailing whitespace
#28112: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:255:
+                    0xFFFF, $

ERROR: trailing whitespace
#28113: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:256:
+                    0x02, $

ERROR: trailing whitespace
#28114: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:257:
+                    LNKG, $

ERROR: trailing whitespace
#28116: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:259:
+                }, $

ERROR: trailing whitespace
#28120: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:263:
+                    0xFFFF, $

ERROR: trailing whitespace
#28121: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:264:
+                    0x03, $

ERROR: trailing whitespace
#28122: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:265:
+                    LNKH, $

ERROR: trailing whitespace
#28124: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:267:
+                }, $

ERROR: trailing whitespace
#28128: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:271:
+                    0x0001FFFF, $

ERROR: trailing whitespace
#28129: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:272:
+                    Zero, $

ERROR: trailing whitespace
#28130: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:273:
+                    LNKF, $

ERROR: trailing whitespace
#28132: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:275:
+                }, $

ERROR: trailing whitespace
#28136: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:279:
+                    0x0001FFFF, $

ERROR: trailing whitespace
#28137: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:280:
+                    One, $

ERROR: trailing whitespace
#28138: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:281:
+                    LNKG, $

ERROR: trailing whitespace
#28140: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:283:
+                }, $

ERROR: trailing whitespace
#28144: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:287:
+                    0x0001FFFF, $

ERROR: trailing whitespace
#28145: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:288:
+                    0x02, $

ERROR: trailing whitespace
#28146: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:289:
+                    LNKH, $

ERROR: trailing whitespace
#28148: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:291:
+                }, $

ERROR: trailing whitespace
#28152: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:295:
+                    0x0001FFFF, $

ERROR: trailing whitespace
#28153: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:296:
+                    0x03, $

ERROR: trailing whitespace
#28154: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:297:
+                    LNKE, $

ERROR: trailing whitespace
#28156: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:299:
+                }, $

ERROR: trailing whitespace
#28160: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:303:
+                    0x0002FFFF, $

ERROR: trailing whitespace
#28161: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:304:
+                    Zero, $

ERROR: trailing whitespace
#28162: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:305:
+                    LNKG, $

ERROR: trailing whitespace
#28164: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:307:
+                }, $

ERROR: trailing whitespace
#28168: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:311:
+                    0x0002FFFF, $

ERROR: trailing whitespace
#28169: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:312:
+                    One, $

ERROR: trailing whitespace
#28170: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:313:
+                    LNKH, $

ERROR: trailing whitespace
#28172: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:315:
+                }, $

ERROR: trailing whitespace
#28176: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:319:
+                    0x0002FFFF, $

ERROR: trailing whitespace
#28177: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:320:
+                    0x02, $

ERROR: trailing whitespace
#28178: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:321:
+                    LNKE, $

ERROR: trailing whitespace
#28180: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:323:
+                }, $

ERROR: trailing whitespace
#28184: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:327:
+                    0x0002FFFF, $

ERROR: trailing whitespace
#28185: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:328:
+                    0x03, $

ERROR: trailing whitespace
#28186: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:329:
+                    LNKF, $

ERROR: trailing whitespace
#28188: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:331:
+                }, $

ERROR: trailing whitespace
#28192: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:335:
+                    0x0003FFFF, $

ERROR: trailing whitespace
#28193: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:336:
+                    Zero, $

ERROR: trailing whitespace
#28194: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:337:
+                    LNKH, $

ERROR: trailing whitespace
#28196: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:339:
+                }, $

ERROR: trailing whitespace
#28200: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:343:
+                    0x0003FFFF, $

ERROR: trailing whitespace
#28201: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:344:
+                    One, $

ERROR: trailing whitespace
#28202: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:345:
+                    LNKE, $

ERROR: trailing whitespace
#28204: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:347:
+                }, $

ERROR: trailing whitespace
#28208: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:351:
+                    0x0003FFFF, $

ERROR: trailing whitespace
#28209: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:352:
+                    0x02, $

ERROR: trailing whitespace
#28210: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:353:
+                    LNKF, $

ERROR: trailing whitespace
#28212: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:355:
+                }, $

ERROR: trailing whitespace
#28216: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:359:
+                    0x0003FFFF, $

ERROR: trailing whitespace
#28217: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:360:
+                    0x03, $

ERROR: trailing whitespace
#28218: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:361:
+                    LNKG, $

ERROR: trailing whitespace
#28220: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:363:
+                }, $

ERROR: trailing whitespace
#28224: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:367:
+                    0x0004FFFF, $

ERROR: trailing whitespace
#28225: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:368:
+                    Zero, $

ERROR: trailing whitespace
#28226: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:369:
+                    LNKE, $

ERROR: trailing whitespace
#28228: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:371:
+                }, $

ERROR: trailing whitespace
#28232: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:375:
+                    0x0004FFFF, $

ERROR: trailing whitespace
#28233: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:376:
+                    One, $

ERROR: trailing whitespace
#28234: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:377:
+                    LNKF, $

ERROR: trailing whitespace
#28236: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:379:
+                }, $

ERROR: trailing whitespace
#28240: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:383:
+                    0x0004FFFF, $

ERROR: trailing whitespace
#28241: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:384:
+                    0x02, $

ERROR: trailing whitespace
#28242: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:385:
+                    LNKG, $

ERROR: trailing whitespace
#28244: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:387:
+                }, $

ERROR: trailing whitespace
#28248: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:391:
+                    0x0004FFFF, $

ERROR: trailing whitespace
#28249: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:392:
+                    0x03, $

ERROR: trailing whitespace
#28250: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:393:
+                    LNKH, $

ERROR: trailing whitespace
#28252: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:395:
+                }, $

ERROR: trailing whitespace
#28256: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:399:
+                    0x0005FFFF, $

ERROR: trailing whitespace
#28257: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:400:
+                    Zero, $

ERROR: trailing whitespace
#28258: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:401:
+                    LNKF, $

ERROR: trailing whitespace
#28260: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:403:
+                }, $

ERROR: trailing whitespace
#28264: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:407:
+                    0x0005FFFF, $

ERROR: trailing whitespace
#28265: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:408:
+                    One, $

ERROR: trailing whitespace
#28266: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:409:
+                    LNKG, $

ERROR: trailing whitespace
#28268: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:411:
+                }, $

ERROR: trailing whitespace
#28272: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:415:
+                    0x0005FFFF, $

ERROR: trailing whitespace
#28273: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:416:
+                    0x02, $

ERROR: trailing whitespace
#28274: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:417:
+                    LNKH, $

ERROR: trailing whitespace
#28276: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:419:
+                }, $

ERROR: trailing whitespace
#28280: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:423:
+                    0x0005FFFF, $

ERROR: trailing whitespace
#28281: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:424:
+                    0x03, $

ERROR: trailing whitespace
#28282: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:425:
+                    LNKE, $

ERROR: trailing whitespace
#28284: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:427:
+                }, $

ERROR: trailing whitespace
#28288: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:431:
+                    0x0006FFFF, $

ERROR: trailing whitespace
#28289: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:432:
+                    Zero, $

ERROR: trailing whitespace
#28290: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:433:
+                    LNKG, $

ERROR: trailing whitespace
#28292: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:435:
+                }, $

ERROR: trailing whitespace
#28296: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:439:
+                    0x0006FFFF, $

ERROR: trailing whitespace
#28297: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:440:
+                    One, $

ERROR: trailing whitespace
#28298: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:441:
+                    LNKH, $

ERROR: trailing whitespace
#28300: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:443:
+                }, $

ERROR: trailing whitespace
#28304: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:447:
+                    0x0006FFFF, $

ERROR: trailing whitespace
#28305: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:448:
+                    0x02, $

ERROR: trailing whitespace
#28306: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:449:
+                    LNKE, $

ERROR: trailing whitespace
#28308: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:451:
+                }, $

ERROR: trailing whitespace
#28312: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:455:
+                    0x0006FFFF, $

ERROR: trailing whitespace
#28313: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:456:
+                    0x03, $

ERROR: trailing whitespace
#28314: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:457:
+                    LNKF, $

ERROR: trailing whitespace
#28316: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:459:
+                }, $

ERROR: trailing whitespace
#28320: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:463:
+                    0x0007FFFF, $

ERROR: trailing whitespace
#28321: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:464:
+                    Zero, $

ERROR: trailing whitespace
#28322: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:465:
+                    LNKH, $

ERROR: trailing whitespace
#28324: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:467:
+                }, $

ERROR: trailing whitespace
#28328: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:471:
+                    0x0007FFFF, $

ERROR: trailing whitespace
#28329: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:472:
+                    One, $

ERROR: trailing whitespace
#28330: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:473:
+                    LNKE, $

ERROR: trailing whitespace
#28332: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:475:
+                }, $

ERROR: trailing whitespace
#28336: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:479:
+                    0x0007FFFF, $

ERROR: trailing whitespace
#28337: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:480:
+                    0x02, $

ERROR: trailing whitespace
#28338: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:481:
+                    LNKF, $

ERROR: trailing whitespace
#28340: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:483:
+                }, $

ERROR: trailing whitespace
#28344: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:487:
+                    0x0007FFFF, $

ERROR: trailing whitespace
#28345: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:488:
+                    0x03, $

ERROR: trailing whitespace
#28346: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:489:
+                    LNKG, $

ERROR: trailing whitespace
#28348: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:491:
+                }, $

ERROR: trailing whitespace
#28352: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:495:
+                    0x0008FFFF, $

ERROR: trailing whitespace
#28353: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:496:
+                    Zero, $

ERROR: trailing whitespace
#28354: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:497:
+                    LNKE, $

ERROR: trailing whitespace
#28356: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:499:
+                }, $

ERROR: trailing whitespace
#28360: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:503:
+                    0x0008FFFF, $

ERROR: trailing whitespace
#28361: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:504:
+                    One, $

ERROR: trailing whitespace
#28362: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:505:
+                    LNKF, $

ERROR: trailing whitespace
#28364: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:507:
+                }, $

ERROR: trailing whitespace
#28368: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:511:
+                    0x0008FFFF, $

ERROR: trailing whitespace
#28369: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:512:
+                    0x02, $

ERROR: trailing whitespace
#28370: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:513:
+                    LNKG, $

ERROR: trailing whitespace
#28372: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:515:
+                }, $

ERROR: trailing whitespace
#28376: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:519:
+                    0x0008FFFF, $

ERROR: trailing whitespace
#28377: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:520:
+                    0x03, $

ERROR: trailing whitespace
#28378: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:521:
+                    LNKH, $

ERROR: trailing whitespace
#28380: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:523:
+                }, $

ERROR: trailing whitespace
#28384: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:527:
+                    0x0009FFFF, $

ERROR: trailing whitespace
#28385: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:528:
+                    Zero, $

ERROR: trailing whitespace
#28386: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:529:
+                    LNKF, $

ERROR: trailing whitespace
#28388: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:531:
+                }, $

ERROR: trailing whitespace
#28392: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:535:
+                    0x0009FFFF, $

ERROR: trailing whitespace
#28393: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:536:
+                    One, $

ERROR: trailing whitespace
#28394: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:537:
+                    LNKG, $

ERROR: trailing whitespace
#28396: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:539:
+                }, $

ERROR: trailing whitespace
#28400: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:543:
+                    0x0009FFFF, $

ERROR: trailing whitespace
#28401: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:544:
+                    0x02, $

ERROR: trailing whitespace
#28402: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:545:
+                    LNKH, $

ERROR: trailing whitespace
#28404: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:547:
+                }, $

ERROR: trailing whitespace
#28408: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:551:
+                    0x0009FFFF, $

ERROR: trailing whitespace
#28409: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:552:
+                    0x03, $

ERROR: trailing whitespace
#28410: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:553:
+                    LNKE, $

ERROR: trailing whitespace
#28412: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:555:
+                }, $

ERROR: trailing whitespace
#28416: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:559:
+                    0x000AFFFF, $

ERROR: trailing whitespace
#28417: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:560:
+                    Zero, $

ERROR: trailing whitespace
#28418: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:561:
+                    LNKG, $

ERROR: trailing whitespace
#28420: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:563:
+                }, $

ERROR: trailing whitespace
#28424: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:567:
+                    0x000AFFFF, $

ERROR: trailing whitespace
#28425: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:568:
+                    One, $

ERROR: trailing whitespace
#28426: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:569:
+                    LNKH, $

ERROR: trailing whitespace
#28428: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:571:
+                }, $

ERROR: trailing whitespace
#28432: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:575:
+                    0x000AFFFF, $

ERROR: trailing whitespace
#28433: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:576:
+                    0x02, $

ERROR: trailing whitespace
#28434: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:577:
+                    LNKE, $

ERROR: trailing whitespace
#28436: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:579:
+                }, $

ERROR: trailing whitespace
#28440: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:583:
+                    0x000AFFFF, $

ERROR: trailing whitespace
#28441: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:584:
+                    0x03, $

ERROR: trailing whitespace
#28442: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:585:
+                    LNKF, $

ERROR: trailing whitespace
#28444: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:587:
+                }, $

ERROR: trailing whitespace
#28448: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:591:
+                    0x000BFFFF, $

ERROR: trailing whitespace
#28449: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:592:
+                    Zero, $

ERROR: trailing whitespace
#28450: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:593:
+                    LNKH, $

ERROR: trailing whitespace
#28452: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:595:
+                }, $

ERROR: trailing whitespace
#28456: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:599:
+                    0x000BFFFF, $

ERROR: trailing whitespace
#28457: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:600:
+                    One, $

ERROR: trailing whitespace
#28458: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:601:
+                    LNKE, $

ERROR: trailing whitespace
#28460: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:603:
+                }, $

ERROR: trailing whitespace
#28464: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:607:
+                    0x000BFFFF, $

ERROR: trailing whitespace
#28465: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:608:
+                    0x02, $

ERROR: trailing whitespace
#28466: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:609:
+                    LNKF, $

ERROR: trailing whitespace
#28468: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:611:
+                }, $

ERROR: trailing whitespace
#28472: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:615:
+                    0x000BFFFF, $

ERROR: trailing whitespace
#28473: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:616:
+                    0x03, $

ERROR: trailing whitespace
#28474: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:617:
+                    LNKG, $

ERROR: trailing whitespace
#28476: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:619:
+                }, $

ERROR: trailing whitespace
#28480: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:623:
+                    0x000CFFFF, $

ERROR: trailing whitespace
#28481: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:624:
+                    Zero, $

ERROR: trailing whitespace
#28482: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:625:
+                    LNKE, $

ERROR: trailing whitespace
#28484: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:627:
+                }, $

ERROR: trailing whitespace
#28488: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:631:
+                    0x000CFFFF, $

ERROR: trailing whitespace
#28489: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:632:
+                    One, $

ERROR: trailing whitespace
#28490: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:633:
+                    LNKF, $

ERROR: trailing whitespace
#28492: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:635:
+                }, $

ERROR: trailing whitespace
#28496: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:639:
+                    0x000CFFFF, $

ERROR: trailing whitespace
#28497: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:640:
+                    0x02, $

ERROR: trailing whitespace
#28498: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:641:
+                    LNKG, $

ERROR: trailing whitespace
#28500: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:643:
+                }, $

ERROR: trailing whitespace
#28504: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:647:
+                    0x000CFFFF, $

ERROR: trailing whitespace
#28505: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:648:
+                    0x03, $

ERROR: trailing whitespace
#28506: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:649:
+                    LNKH, $

ERROR: trailing whitespace
#28508: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:651:
+                }, $

ERROR: trailing whitespace
#28512: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:655:
+                    0x000DFFFF, $

ERROR: trailing whitespace
#28513: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:656:
+                    Zero, $

ERROR: trailing whitespace
#28514: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:657:
+                    LNKF, $

ERROR: trailing whitespace
#28516: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:659:
+                }, $

ERROR: trailing whitespace
#28520: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:663:
+                    0x000DFFFF, $

ERROR: trailing whitespace
#28521: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:664:
+                    One, $

ERROR: trailing whitespace
#28522: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:665:
+                    LNKG, $

ERROR: trailing whitespace
#28524: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:667:
+                }, $

ERROR: trailing whitespace
#28528: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:671:
+                    0x000DFFFF, $

ERROR: trailing whitespace
#28529: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:672:
+                    0x02, $

ERROR: trailing whitespace
#28530: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:673:
+                    LNKH, $

ERROR: trailing whitespace
#28532: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:675:
+                }, $

ERROR: trailing whitespace
#28536: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:679:
+                    0x000DFFFF, $

ERROR: trailing whitespace
#28537: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:680:
+                    0x03, $

ERROR: trailing whitespace
#28538: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:681:
+                    LNKE, $

ERROR: trailing whitespace
#28540: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:683:
+                }, $

ERROR: trailing whitespace
#28544: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:687:
+                    0x000EFFFF, $

ERROR: trailing whitespace
#28545: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:688:
+                    Zero, $

ERROR: trailing whitespace
#28546: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:689:
+                    LNKG, $

ERROR: trailing whitespace
#28548: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:691:
+                }, $

ERROR: trailing whitespace
#28552: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:695:
+                    0x000EFFFF, $

ERROR: trailing whitespace
#28553: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:696:
+                    One, $

ERROR: trailing whitespace
#28554: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:697:
+                    LNKH, $

ERROR: trailing whitespace
#28556: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:699:
+                }, $

ERROR: trailing whitespace
#28560: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:703:
+                    0x000EFFFF, $

ERROR: trailing whitespace
#28561: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:704:
+                    0x02, $

ERROR: trailing whitespace
#28562: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:705:
+                    LNKE, $

ERROR: trailing whitespace
#28564: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:707:
+                }, $

ERROR: trailing whitespace
#28568: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:711:
+                    0x000EFFFF, $

ERROR: trailing whitespace
#28569: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:712:
+                    0x03, $

ERROR: trailing whitespace
#28570: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:713:
+                    LNKF, $

ERROR: trailing whitespace
#28572: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:715:
+                }, $

ERROR: trailing whitespace
#28576: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:719:
+                    0x000FFFFF, $

ERROR: trailing whitespace
#28577: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:720:
+                    Zero, $

ERROR: trailing whitespace
#28578: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:721:
+                    LNKH, $

ERROR: trailing whitespace
#28580: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:723:
+                }, $

ERROR: trailing whitespace
#28584: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:727:
+                    0x000FFFFF, $

ERROR: trailing whitespace
#28585: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:728:
+                    One, $

ERROR: trailing whitespace
#28586: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:729:
+                    LNKE, $

ERROR: trailing whitespace
#28588: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:731:
+                }, $

ERROR: trailing whitespace
#28592: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:735:
+                    0x000FFFFF, $

ERROR: trailing whitespace
#28593: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:736:
+                    0x02, $

ERROR: trailing whitespace
#28594: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:737:
+                    LNKF, $

ERROR: trailing whitespace
#28596: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:739:
+                }, $

ERROR: trailing whitespace
#28600: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:743:
+                    0x000FFFFF, $

ERROR: trailing whitespace
#28601: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:744:
+                    0x03, $

ERROR: trailing whitespace
#28602: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:745:
+                    LNKG, $

ERROR: trailing whitespace
#28604: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:747:
+                }, $

ERROR: trailing whitespace
#28608: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:751:
+                    0x0010FFFF, $

ERROR: trailing whitespace
#28609: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:752:
+                    Zero, $

ERROR: trailing whitespace
#28610: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:753:
+                    LNKE, $

ERROR: trailing whitespace
#28612: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:755:
+                }, $

ERROR: trailing whitespace
#28616: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:759:
+                    0x0010FFFF, $

ERROR: trailing whitespace
#28617: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:760:
+                    One, $

ERROR: trailing whitespace
#28618: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:761:
+                    LNKF, $

ERROR: trailing whitespace
#28620: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:763:
+                }, $

ERROR: trailing whitespace
#28624: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:767:
+                    0x0010FFFF, $

ERROR: trailing whitespace
#28625: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:768:
+                    0x02, $

ERROR: trailing whitespace
#28626: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:769:
+                    LNKG, $

ERROR: trailing whitespace
#28628: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:771:
+                }, $

ERROR: trailing whitespace
#28632: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:775:
+                    0x0010FFFF, $

ERROR: trailing whitespace
#28633: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:776:
+                    0x03, $

ERROR: trailing whitespace
#28634: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:777:
+                    LNKH, $

ERROR: trailing whitespace
#28636: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:779:
+                }, $

ERROR: trailing whitespace
#28640: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:783:
+                    0x0011FFFF, $

ERROR: trailing whitespace
#28641: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:784:
+                    Zero, $

ERROR: trailing whitespace
#28642: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:785:
+                    LNKF, $

ERROR: trailing whitespace
#28644: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:787:
+                }, $

ERROR: trailing whitespace
#28648: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:791:
+                    0x0011FFFF, $

ERROR: trailing whitespace
#28649: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:792:
+                    One, $

ERROR: trailing whitespace
#28650: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:793:
+                    LNKG, $

ERROR: trailing whitespace
#28652: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:795:
+                }, $

ERROR: trailing whitespace
#28656: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:799:
+                    0x0011FFFF, $

ERROR: trailing whitespace
#28657: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:800:
+                    0x02, $

ERROR: trailing whitespace
#28658: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:801:
+                    LNKH, $

ERROR: trailing whitespace
#28660: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:803:
+                }, $

ERROR: trailing whitespace
#28664: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:807:
+                    0x0011FFFF, $

ERROR: trailing whitespace
#28665: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:808:
+                    0x03, $

ERROR: trailing whitespace
#28666: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:809:
+                    LNKE, $

ERROR: trailing whitespace
#28668: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:811:
+                }, $

ERROR: trailing whitespace
#28672: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:815:
+                    0x0012FFFF, $

ERROR: trailing whitespace
#28673: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:816:
+                    Zero, $

ERROR: trailing whitespace
#28674: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:817:
+                    LNKG, $

ERROR: trailing whitespace
#28676: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:819:
+                }, $

ERROR: trailing whitespace
#28680: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:823:
+                    0x0012FFFF, $

ERROR: trailing whitespace
#28681: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:824:
+                    One, $

ERROR: trailing whitespace
#28682: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:825:
+                    LNKH, $

ERROR: trailing whitespace
#28684: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:827:
+                }, $

ERROR: trailing whitespace
#28688: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:831:
+                    0x0012FFFF, $

ERROR: trailing whitespace
#28689: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:832:
+                    0x02, $

ERROR: trailing whitespace
#28690: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:833:
+                    LNKE, $

ERROR: trailing whitespace
#28692: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:835:
+                }, $

ERROR: trailing whitespace
#28696: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:839:
+                    0x0012FFFF, $

ERROR: trailing whitespace
#28697: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:840:
+                    0x03, $

ERROR: trailing whitespace
#28698: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:841:
+                    LNKF, $

ERROR: trailing whitespace
#28700: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:843:
+                }, $

ERROR: trailing whitespace
#28704: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:847:
+                    0x0013FFFF, $

ERROR: trailing whitespace
#28705: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:848:
+                    Zero, $

ERROR: trailing whitespace
#28706: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:849:
+                    LNKH, $

ERROR: trailing whitespace
#28708: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:851:
+                }, $

ERROR: trailing whitespace
#28712: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:855:
+                    0x0013FFFF, $

ERROR: trailing whitespace
#28713: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:856:
+                    One, $

ERROR: trailing whitespace
#28714: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:857:
+                    LNKE, $

ERROR: trailing whitespace
#28716: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:859:
+                }, $

ERROR: trailing whitespace
#28720: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:863:
+                    0x0013FFFF, $

ERROR: trailing whitespace
#28721: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:864:
+                    0x02, $

ERROR: trailing whitespace
#28722: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:865:
+                    LNKF, $

ERROR: trailing whitespace
#28724: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:867:
+                }, $

ERROR: trailing whitespace
#28728: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:871:
+                    0x0013FFFF, $

ERROR: trailing whitespace
#28729: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:872:
+                    0x03, $

ERROR: trailing whitespace
#28730: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:873:
+                    LNKG, $

ERROR: trailing whitespace
#28732: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:875:
+                }, $

ERROR: trailing whitespace
#28736: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:879:
+                    0x0014FFFF, $

ERROR: trailing whitespace
#28737: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:880:
+                    Zero, $

ERROR: trailing whitespace
#28738: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:881:
+                    LNKE, $

ERROR: trailing whitespace
#28740: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:883:
+                }, $

ERROR: trailing whitespace
#28744: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:887:
+                    0x0014FFFF, $

ERROR: trailing whitespace
#28745: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:888:
+                    One, $

ERROR: trailing whitespace
#28746: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:889:
+                    LNKF, $

ERROR: trailing whitespace
#28748: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:891:
+                }, $

ERROR: trailing whitespace
#28752: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:895:
+                    0x0014FFFF, $

ERROR: trailing whitespace
#28753: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:896:
+                    0x02, $

ERROR: trailing whitespace
#28754: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:897:
+                    LNKG, $

ERROR: trailing whitespace
#28756: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:899:
+                }, $

ERROR: trailing whitespace
#28760: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:903:
+                    0x0014FFFF, $

ERROR: trailing whitespace
#28761: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:904:
+                    0x03, $

ERROR: trailing whitespace
#28762: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:905:
+                    LNKH, $

ERROR: trailing whitespace
#28764: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:907:
+                }, $

ERROR: trailing whitespace
#28768: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:911:
+                    0x0015FFFF, $

ERROR: trailing whitespace
#28769: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:912:
+                    Zero, $

ERROR: trailing whitespace
#28770: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:913:
+                    LNKF, $

ERROR: trailing whitespace
#28772: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:915:
+                }, $

ERROR: trailing whitespace
#28776: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:919:
+                    0x0015FFFF, $

ERROR: trailing whitespace
#28777: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:920:
+                    One, $

ERROR: trailing whitespace
#28778: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:921:
+                    LNKG, $

ERROR: trailing whitespace
#28780: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:923:
+                }, $

ERROR: trailing whitespace
#28784: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:927:
+                    0x0015FFFF, $

ERROR: trailing whitespace
#28785: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:928:
+                    0x02, $

ERROR: trailing whitespace
#28786: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:929:
+                    LNKH, $

ERROR: trailing whitespace
#28788: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:931:
+                }, $

ERROR: trailing whitespace
#28792: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:935:
+                    0x0015FFFF, $

ERROR: trailing whitespace
#28793: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:936:
+                    0x03, $

ERROR: trailing whitespace
#28794: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:937:
+                    LNKE, $

ERROR: trailing whitespace
#28796: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:939:
+                }, $

ERROR: trailing whitespace
#28800: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:943:
+                    0x0016FFFF, $

ERROR: trailing whitespace
#28801: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:944:
+                    Zero, $

ERROR: trailing whitespace
#28802: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:945:
+                    LNKG, $

ERROR: trailing whitespace
#28804: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:947:
+                }, $

ERROR: trailing whitespace
#28808: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:951:
+                    0x0016FFFF, $

ERROR: trailing whitespace
#28809: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:952:
+                    One, $

ERROR: trailing whitespace
#28810: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:953:
+                    LNKH, $

ERROR: trailing whitespace
#28812: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:955:
+                }, $

ERROR: trailing whitespace
#28816: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:959:
+                    0x0016FFFF, $

ERROR: trailing whitespace
#28817: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:960:
+                    0x02, $

ERROR: trailing whitespace
#28818: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:961:
+                    LNKE, $

ERROR: trailing whitespace
#28820: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:963:
+                }, $

ERROR: trailing whitespace
#28824: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:967:
+                    0x0016FFFF, $

ERROR: trailing whitespace
#28825: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:968:
+                    0x03, $

ERROR: trailing whitespace
#28826: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:969:
+                    LNKF, $

ERROR: trailing whitespace
#28828: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:971:
+                }, $

ERROR: trailing whitespace
#28832: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:975:
+                    0x0017FFFF, $

ERROR: trailing whitespace
#28833: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:976:
+                    Zero, $

ERROR: trailing whitespace
#28834: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:977:
+                    LNKH, $

ERROR: trailing whitespace
#28836: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:979:
+                }, $

ERROR: trailing whitespace
#28840: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:983:
+                    0x0017FFFF, $

ERROR: trailing whitespace
#28841: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:984:
+                    One, $

ERROR: trailing whitespace
#28842: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:985:
+                    LNKE, $

ERROR: trailing whitespace
#28844: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:987:
+                }, $

ERROR: trailing whitespace
#28848: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:991:
+                    0x0017FFFF, $

ERROR: trailing whitespace
#28849: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:992:
+                    0x02, $

ERROR: trailing whitespace
#28850: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:993:
+                    LNKF, $

ERROR: trailing whitespace
#28852: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:995:
+                }, $

ERROR: trailing whitespace
#28856: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:999:
+                    0x0017FFFF, $

ERROR: trailing whitespace
#28857: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1000:
+                    0x03, $

ERROR: trailing whitespace
#28858: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1001:
+                    LNKG, $

ERROR: trailing whitespace
#28860: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1003:
+                }, $

ERROR: trailing whitespace
#28864: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1007:
+                    0x0018FFFF, $

ERROR: trailing whitespace
#28865: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1008:
+                    Zero, $

ERROR: trailing whitespace
#28866: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1009:
+                    LNKE, $

ERROR: trailing whitespace
#28868: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1011:
+                }, $

ERROR: trailing whitespace
#28872: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1015:
+                    0x0018FFFF, $

ERROR: trailing whitespace
#28873: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1016:
+                    One, $

ERROR: trailing whitespace
#28874: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1017:
+                    LNKF, $

ERROR: trailing whitespace
#28876: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1019:
+                }, $

ERROR: trailing whitespace
#28880: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1023:
+                    0x0018FFFF, $

ERROR: trailing whitespace
#28881: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1024:
+                    0x02, $

ERROR: trailing whitespace
#28882: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1025:
+                    LNKG, $

ERROR: trailing whitespace
#28884: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1027:
+                }, $

ERROR: trailing whitespace
#28888: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1031:
+                    0x0018FFFF, $

ERROR: trailing whitespace
#28889: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1032:
+                    0x03, $

ERROR: trailing whitespace
#28890: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1033:
+                    LNKH, $

ERROR: trailing whitespace
#28892: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1035:
+                }, $

ERROR: trailing whitespace
#28896: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1039:
+                    0x0019FFFF, $

ERROR: trailing whitespace
#28897: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1040:
+                    Zero, $

ERROR: trailing whitespace
#28898: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1041:
+                    LNKA, $

ERROR: trailing whitespace
#28900: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1043:
+                }, $

ERROR: trailing whitespace
#28904: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1047:
+                    0x0019FFFF, $

ERROR: trailing whitespace
#28905: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1048:
+                    One, $

ERROR: trailing whitespace
#28906: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1049:
+                    LNKB, $

ERROR: trailing whitespace
#28908: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1051:
+                }, $

ERROR: trailing whitespace
#28912: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1055:
+                    0x0019FFFF, $

ERROR: trailing whitespace
#28913: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1056:
+                    0x02, $

ERROR: trailing whitespace
#28914: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1057:
+                    LNKC, $

ERROR: trailing whitespace
#28916: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1059:
+                }, $

ERROR: trailing whitespace
#28920: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1063:
+                    0x0019FFFF, $

ERROR: trailing whitespace
#28921: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1064:
+                    0x03, $

ERROR: trailing whitespace
#28922: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1065:
+                    LNKD, $

ERROR: trailing whitespace
#28924: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1067:
+                }, $

ERROR: trailing whitespace
#28928: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1071:
+                    0x001AFFFF, $

ERROR: trailing whitespace
#28929: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1072:
+                    Zero, $

ERROR: trailing whitespace
#28930: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1073:
+                    LNKA, $

ERROR: trailing whitespace
#28932: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1075:
+                }, $

ERROR: trailing whitespace
#28936: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1079:
+                    0x001AFFFF, $

ERROR: trailing whitespace
#28937: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1080:
+                    One, $

ERROR: trailing whitespace
#28938: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1081:
+                    LNKB, $

ERROR: trailing whitespace
#28940: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1083:
+                }, $

ERROR: trailing whitespace
#28944: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1087:
+                    0x001AFFFF, $

ERROR: trailing whitespace
#28945: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1088:
+                    0x02, $

ERROR: trailing whitespace
#28946: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1089:
+                    LNKC, $

ERROR: trailing whitespace
#28948: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1091:
+                }, $

ERROR: trailing whitespace
#28952: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1095:
+                    0x001AFFFF, $

ERROR: trailing whitespace
#28953: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1096:
+                    0x03, $

ERROR: trailing whitespace
#28954: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1097:
+                    LNKD, $

ERROR: trailing whitespace
#28956: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1099:
+                }, $

ERROR: trailing whitespace
#28960: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1103:
+                    0x001BFFFF, $

ERROR: trailing whitespace
#28961: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1104:
+                    Zero, $

ERROR: trailing whitespace
#28962: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1105:
+                    LNKA, $

ERROR: trailing whitespace
#28964: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1107:
+                }, $

ERROR: trailing whitespace
#28968: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1111:
+                    0x001BFFFF, $

ERROR: trailing whitespace
#28969: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1112:
+                    One, $

ERROR: trailing whitespace
#28970: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1113:
+                    LNKB, $

ERROR: trailing whitespace
#28972: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1115:
+                }, $

ERROR: trailing whitespace
#28976: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1119:
+                    0x001BFFFF, $

ERROR: trailing whitespace
#28977: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1120:
+                    0x02, $

ERROR: trailing whitespace
#28978: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1121:
+                    LNKC, $

ERROR: trailing whitespace
#28980: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1123:
+                }, $

ERROR: trailing whitespace
#28984: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1127:
+                    0x001BFFFF, $

ERROR: trailing whitespace
#28985: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1128:
+                    0x03, $

ERROR: trailing whitespace
#28986: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1129:
+                    LNKD, $

ERROR: trailing whitespace
#28988: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1131:
+                }, $

ERROR: trailing whitespace
#28992: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1135:
+                    0x001CFFFF, $

ERROR: trailing whitespace
#28993: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1136:
+                    Zero, $

ERROR: trailing whitespace
#28994: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1137:
+                    LNKA, $

ERROR: trailing whitespace
#28996: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1139:
+                }, $

ERROR: trailing whitespace
#29000: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1143:
+                    0x001CFFFF, $

ERROR: trailing whitespace
#29001: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1144:
+                    One, $

ERROR: trailing whitespace
#29002: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1145:
+                    LNKB, $

ERROR: trailing whitespace
#29004: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1147:
+                }, $

ERROR: trailing whitespace
#29008: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1151:
+                    0x001CFFFF, $

ERROR: trailing whitespace
#29009: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1152:
+                    0x02, $

ERROR: trailing whitespace
#29010: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1153:
+                    LNKC, $

ERROR: trailing whitespace
#29012: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1155:
+                }, $

ERROR: trailing whitespace
#29016: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1159:
+                    0x001CFFFF, $

ERROR: trailing whitespace
#29017: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1160:
+                    0x03, $

ERROR: trailing whitespace
#29018: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1161:
+                    LNKD, $

ERROR: trailing whitespace
#29020: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1163:
+                }, $

ERROR: trailing whitespace
#29024: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1167:
+                    0x001DFFFF, $

ERROR: trailing whitespace
#29025: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1168:
+                    Zero, $

ERROR: trailing whitespace
#29026: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1169:
+                    LNKA, $

ERROR: trailing whitespace
#29028: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1171:
+                }, $

ERROR: trailing whitespace
#29032: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1175:
+                    0x001DFFFF, $

ERROR: trailing whitespace
#29033: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1176:
+                    One, $

ERROR: trailing whitespace
#29034: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1177:
+                    LNKB, $

ERROR: trailing whitespace
#29036: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1179:
+                }, $

ERROR: trailing whitespace
#29040: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1183:
+                    0x001DFFFF, $

ERROR: trailing whitespace
#29041: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1184:
+                    0x02, $

ERROR: trailing whitespace
#29042: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1185:
+                    LNKC, $

ERROR: trailing whitespace
#29044: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1187:
+                }, $

ERROR: trailing whitespace
#29048: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1191:
+                    0x001DFFFF, $

ERROR: trailing whitespace
#29049: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1192:
+                    0x03, $

ERROR: trailing whitespace
#29050: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1193:
+                    LNKD, $

ERROR: trailing whitespace
#29052: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1195:
+                }, $

ERROR: trailing whitespace
#29056: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1199:
+                    0x001EFFFF, $

ERROR: trailing whitespace
#29057: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1200:
+                    Zero, $

ERROR: trailing whitespace
#29058: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1201:
+                    LNKE, $

ERROR: trailing whitespace
#29060: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1203:
+                }, $

ERROR: trailing whitespace
#29064: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1207:
+                    0x001EFFFF, $

ERROR: trailing whitespace
#29065: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1208:
+                    One, $

ERROR: trailing whitespace
#29066: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1209:
+                    LNKF, $

ERROR: trailing whitespace
#29068: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1211:
+                }, $

ERROR: trailing whitespace
#29072: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1215:
+                    0x001EFFFF, $

ERROR: trailing whitespace
#29073: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1216:
+                    0x02, $

ERROR: trailing whitespace
#29074: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1217:
+                    LNKG, $

ERROR: trailing whitespace
#29076: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1219:
+                }, $

ERROR: trailing whitespace
#29080: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1223:
+                    0x001EFFFF, $

ERROR: trailing whitespace
#29081: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1224:
+                    0x03, $

ERROR: trailing whitespace
#29082: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1225:
+                    LNKH, $

ERROR: trailing whitespace
#29084: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1227:
+                }, $

ERROR: trailing whitespace
#29088: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1231:
+                    0x001FFFFF, $

ERROR: trailing whitespace
#29089: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1232:
+                    Zero, $

ERROR: trailing whitespace
#29090: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1233:
+                    LNKA, $

ERROR: trailing whitespace
#29092: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1235:
+                }, $

ERROR: trailing whitespace
#29096: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1239:
+                    0x001FFFFF, $

ERROR: trailing whitespace
#29097: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1240:
+                    One, $

ERROR: trailing whitespace
#29098: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1241:
+                    LNKB, $

ERROR: trailing whitespace
#29100: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1243:
+                }, $

ERROR: trailing whitespace
#29104: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1247:
+                    0x001FFFFF, $

ERROR: trailing whitespace
#29105: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1248:
+                    0x02, $

ERROR: trailing whitespace
#29106: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1249:
+                    LNKC, $

ERROR: trailing whitespace
#29108: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1251:
+                }, $

ERROR: trailing whitespace
#29112: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1255:
+                    0x001FFFFF, $

ERROR: trailing whitespace
#29113: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1256:
+                    0x03, $

ERROR: trailing whitespace
#29114: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1257:
+                    LNKD, $

ERROR: trailing whitespace
#29122: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1265:
+                    0xFFFF, $

ERROR: trailing whitespace
#29123: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1266:
+                    Zero, $

ERROR: trailing whitespace
#29124: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1267:
+                    GSIE, $

ERROR: trailing whitespace
#29126: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1269:
+                }, $

ERROR: trailing whitespace
#29130: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1273:
+                    0xFFFF, $

ERROR: trailing whitespace
#29131: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1274:
+                    One, $

ERROR: trailing whitespace
#29132: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1275:
+                    GSIF, $

ERROR: trailing whitespace
#29134: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1277:
+                }, $

ERROR: trailing whitespace
#29138: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1281:
+                    0xFFFF, $

ERROR: trailing whitespace
#29139: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1282:
+                    0x02, $

ERROR: trailing whitespace
#29140: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1283:
+                    GSIG, $

ERROR: trailing whitespace
#29142: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1285:
+                }, $

ERROR: trailing whitespace
#29146: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1289:
+                    0xFFFF, $

ERROR: trailing whitespace
#29147: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1290:
+                    0x03, $

ERROR: trailing whitespace
#29148: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1291:
+                    GSIH, $

ERROR: trailing whitespace
#29150: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1293:
+                }, $

ERROR: trailing whitespace
#29154: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1297:
+                    0x0001FFFF, $

ERROR: trailing whitespace
#29155: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1298:
+                    Zero, $

ERROR: trailing whitespace
#29156: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1299:
+                    GSIF, $

ERROR: trailing whitespace
#29158: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1301:
+                }, $

ERROR: trailing whitespace
#29162: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1305:
+                    0x0001FFFF, $

ERROR: trailing whitespace
#29163: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1306:
+                    One, $

ERROR: trailing whitespace
#29164: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1307:
+                    GSIG, $

ERROR: trailing whitespace
#29166: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1309:
+                }, $

ERROR: trailing whitespace
#29170: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1313:
+                    0x0001FFFF, $

ERROR: trailing whitespace
#29171: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1314:
+                    0x02, $

ERROR: trailing whitespace
#29172: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1315:
+                    GSIH, $

ERROR: trailing whitespace
#29174: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1317:
+                }, $

ERROR: trailing whitespace
#29178: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1321:
+                    0x0001FFFF, $

ERROR: trailing whitespace
#29179: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1322:
+                    0x03, $

ERROR: trailing whitespace
#29180: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1323:
+                    GSIE, $

ERROR: trailing whitespace
#29182: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1325:
+                }, $

ERROR: trailing whitespace
#29186: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1329:
+                    0x0002FFFF, $

ERROR: trailing whitespace
#29187: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1330:
+                    Zero, $

ERROR: trailing whitespace
#29188: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1331:
+                    GSIG, $

ERROR: trailing whitespace
#29190: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1333:
+                }, $

ERROR: trailing whitespace
#29194: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1337:
+                    0x0002FFFF, $

ERROR: trailing whitespace
#29195: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1338:
+                    One, $

ERROR: trailing whitespace
#29196: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1339:
+                    GSIH, $

ERROR: trailing whitespace
#29198: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1341:
+                }, $

ERROR: trailing whitespace
#29202: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1345:
+                    0x0002FFFF, $

ERROR: trailing whitespace
#29203: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1346:
+                    0x02, $

ERROR: trailing whitespace
#29204: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1347:
+                    GSIE, $

ERROR: trailing whitespace
#29206: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1349:
+                }, $

ERROR: trailing whitespace
#29210: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1353:
+                    0x0002FFFF, $

ERROR: trailing whitespace
#29211: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1354:
+                    0x03, $

ERROR: trailing whitespace
#29212: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1355:
+                    GSIF, $

ERROR: trailing whitespace
#29214: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1357:
+                }, $

ERROR: trailing whitespace
#29218: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1361:
+                    0x0003FFFF, $

ERROR: trailing whitespace
#29219: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1362:
+                    Zero, $

ERROR: trailing whitespace
#29220: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1363:
+                    GSIH, $

ERROR: trailing whitespace
#29222: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1365:
+                }, $

ERROR: trailing whitespace
#29226: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1369:
+                    0x0003FFFF, $

ERROR: trailing whitespace
#29227: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1370:
+                    One, $

ERROR: trailing whitespace
#29228: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1371:
+                    GSIE, $

ERROR: trailing whitespace
#29230: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1373:
+                }, $

ERROR: trailing whitespace
#29234: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1377:
+                    0x0003FFFF, $

ERROR: trailing whitespace
#29235: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1378:
+                    0x02, $

ERROR: trailing whitespace
#29236: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1379:
+                    GSIF, $

ERROR: trailing whitespace
#29238: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1381:
+                }, $

ERROR: trailing whitespace
#29242: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1385:
+                    0x0003FFFF, $

ERROR: trailing whitespace
#29243: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1386:
+                    0x03, $

ERROR: trailing whitespace
#29244: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1387:
+                    GSIG, $

ERROR: trailing whitespace
#29246: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1389:
+                }, $

ERROR: trailing whitespace
#29250: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1393:
+                    0x0004FFFF, $

ERROR: trailing whitespace
#29251: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1394:
+                    Zero, $

ERROR: trailing whitespace
#29252: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1395:
+                    GSIE, $

ERROR: trailing whitespace
#29254: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1397:
+                }, $

ERROR: trailing whitespace
#29258: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1401:
+                    0x0004FFFF, $

ERROR: trailing whitespace
#29259: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1402:
+                    One, $

ERROR: trailing whitespace
#29260: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1403:
+                    GSIF, $

ERROR: trailing whitespace
#29262: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1405:
+                }, $

ERROR: trailing whitespace
#29266: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1409:
+                    0x0004FFFF, $

ERROR: trailing whitespace
#29267: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1410:
+                    0x02, $

ERROR: trailing whitespace
#29268: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1411:
+                    GSIG, $

ERROR: trailing whitespace
#29270: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1413:
+                }, $

ERROR: trailing whitespace
#29274: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1417:
+                    0x0004FFFF, $

ERROR: trailing whitespace
#29275: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1418:
+                    0x03, $

ERROR: trailing whitespace
#29276: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1419:
+                    GSIH, $

ERROR: trailing whitespace
#29278: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1421:
+                }, $

ERROR: trailing whitespace
#29282: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1425:
+                    0x0005FFFF, $

ERROR: trailing whitespace
#29283: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1426:
+                    Zero, $

ERROR: trailing whitespace
#29284: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1427:
+                    GSIF, $

ERROR: trailing whitespace
#29286: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1429:
+                }, $

ERROR: trailing whitespace
#29290: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1433:
+                    0x0005FFFF, $

ERROR: trailing whitespace
#29291: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1434:
+                    One, $

ERROR: trailing whitespace
#29292: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1435:
+                    GSIG, $

ERROR: trailing whitespace
#29294: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1437:
+                }, $

ERROR: trailing whitespace
#29298: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1441:
+                    0x0005FFFF, $

ERROR: trailing whitespace
#29299: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1442:
+                    0x02, $

ERROR: trailing whitespace
#29300: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1443:
+                    GSIH, $

ERROR: trailing whitespace
#29302: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1445:
+                }, $

ERROR: trailing whitespace
#29306: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1449:
+                    0x0005FFFF, $

ERROR: trailing whitespace
#29307: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1450:
+                    0x03, $

ERROR: trailing whitespace
#29308: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1451:
+                    GSIE, $

ERROR: trailing whitespace
#29310: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1453:
+                }, $

ERROR: trailing whitespace
#29314: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1457:
+                    0x0006FFFF, $

ERROR: trailing whitespace
#29315: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1458:
+                    Zero, $

ERROR: trailing whitespace
#29316: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1459:
+                    GSIG, $

ERROR: trailing whitespace
#29318: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1461:
+                }, $

ERROR: trailing whitespace
#29322: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1465:
+                    0x0006FFFF, $

ERROR: trailing whitespace
#29323: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1466:
+                    One, $

ERROR: trailing whitespace
#29324: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1467:
+                    GSIH, $

ERROR: trailing whitespace
#29326: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1469:
+                }, $

ERROR: trailing whitespace
#29330: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1473:
+                    0x0006FFFF, $

ERROR: trailing whitespace
#29331: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1474:
+                    0x02, $

ERROR: trailing whitespace
#29332: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1475:
+                    GSIE, $

ERROR: trailing whitespace
#29334: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1477:
+                }, $

ERROR: trailing whitespace
#29338: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1481:
+                    0x0006FFFF, $

ERROR: trailing whitespace
#29339: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1482:
+                    0x03, $

ERROR: trailing whitespace
#29340: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1483:
+                    GSIF, $

ERROR: trailing whitespace
#29342: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1485:
+                }, $

ERROR: trailing whitespace
#29346: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1489:
+                    0x0007FFFF, $

ERROR: trailing whitespace
#29347: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1490:
+                    Zero, $

ERROR: trailing whitespace
#29348: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1491:
+                    GSIH, $

ERROR: trailing whitespace
#29350: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1493:
+                }, $

ERROR: trailing whitespace
#29354: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1497:
+                    0x0007FFFF, $

ERROR: trailing whitespace
#29355: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1498:
+                    One, $

ERROR: trailing whitespace
#29356: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1499:
+                    GSIE, $

ERROR: trailing whitespace
#29358: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1501:
+                }, $

ERROR: trailing whitespace
#29362: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1505:
+                    0x0007FFFF, $

ERROR: trailing whitespace
#29363: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1506:
+                    0x02, $

ERROR: trailing whitespace
#29364: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1507:
+                    GSIF, $

ERROR: trailing whitespace
#29366: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1509:
+                }, $

ERROR: trailing whitespace
#29370: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1513:
+                    0x0007FFFF, $

ERROR: trailing whitespace
#29371: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1514:
+                    0x03, $

ERROR: trailing whitespace
#29372: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1515:
+                    GSIG, $

ERROR: trailing whitespace
#29374: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1517:
+                }, $

ERROR: trailing whitespace
#29378: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1521:
+                    0x0008FFFF, $

ERROR: trailing whitespace
#29379: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1522:
+                    Zero, $

ERROR: trailing whitespace
#29380: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1523:
+                    GSIE, $

ERROR: trailing whitespace
#29382: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1525:
+                }, $

ERROR: trailing whitespace
#29386: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1529:
+                    0x0008FFFF, $

ERROR: trailing whitespace
#29387: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1530:
+                    One, $

ERROR: trailing whitespace
#29388: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1531:
+                    GSIF, $

ERROR: trailing whitespace
#29390: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1533:
+                }, $

ERROR: trailing whitespace
#29394: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1537:
+                    0x0008FFFF, $

ERROR: trailing whitespace
#29395: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1538:
+                    0x02, $

ERROR: trailing whitespace
#29396: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1539:
+                    GSIG, $

ERROR: trailing whitespace
#29398: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1541:
+                }, $

ERROR: trailing whitespace
#29402: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1545:
+                    0x0008FFFF, $

ERROR: trailing whitespace
#29403: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1546:
+                    0x03, $

ERROR: trailing whitespace
#29404: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1547:
+                    GSIH, $

ERROR: trailing whitespace
#29406: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1549:
+                }, $

ERROR: trailing whitespace
#29410: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1553:
+                    0x0009FFFF, $

ERROR: trailing whitespace
#29411: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1554:
+                    Zero, $

ERROR: trailing whitespace
#29412: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1555:
+                    GSIF, $

ERROR: trailing whitespace
#29414: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1557:
+                }, $

ERROR: trailing whitespace
#29418: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1561:
+                    0x0009FFFF, $

ERROR: trailing whitespace
#29419: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1562:
+                    One, $

ERROR: trailing whitespace
#29420: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1563:
+                    GSIG, $

ERROR: trailing whitespace
#29422: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1565:
+                }, $

ERROR: trailing whitespace
#29426: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1569:
+                    0x0009FFFF, $

ERROR: trailing whitespace
#29427: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1570:
+                    0x02, $

ERROR: trailing whitespace
#29428: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1571:
+                    GSIH, $

ERROR: trailing whitespace
#29430: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1573:
+                }, $

ERROR: trailing whitespace
#29434: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1577:
+                    0x0009FFFF, $

ERROR: trailing whitespace
#29435: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1578:
+                    0x03, $

ERROR: trailing whitespace
#29436: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1579:
+                    GSIE, $

ERROR: trailing whitespace
#29438: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1581:
+                }, $

ERROR: trailing whitespace
#29442: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1585:
+                    0x000AFFFF, $

ERROR: trailing whitespace
#29443: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1586:
+                    Zero, $

ERROR: trailing whitespace
#29444: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1587:
+                    GSIG, $

ERROR: trailing whitespace
#29446: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1589:
+                }, $

ERROR: trailing whitespace
#29450: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1593:
+                    0x000AFFFF, $

ERROR: trailing whitespace
#29451: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1594:
+                    One, $

ERROR: trailing whitespace
#29452: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1595:
+                    GSIH, $

ERROR: trailing whitespace
#29454: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1597:
+                }, $

ERROR: trailing whitespace
#29458: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1601:
+                    0x000AFFFF, $

ERROR: trailing whitespace
#29459: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1602:
+                    0x02, $

ERROR: trailing whitespace
#29460: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1603:
+                    GSIE, $

ERROR: trailing whitespace
#29462: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1605:
+                }, $

ERROR: trailing whitespace
#29466: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1609:
+                    0x000AFFFF, $

ERROR: trailing whitespace
#29467: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1610:
+                    0x03, $

ERROR: trailing whitespace
#29468: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1611:
+                    GSIF, $

ERROR: trailing whitespace
#29470: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1613:
+                }, $

ERROR: trailing whitespace
#29474: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1617:
+                    0x000BFFFF, $

ERROR: trailing whitespace
#29475: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1618:
+                    Zero, $

ERROR: trailing whitespace
#29476: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1619:
+                    GSIH, $

ERROR: trailing whitespace
#29478: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1621:
+                }, $

ERROR: trailing whitespace
#29482: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1625:
+                    0x000BFFFF, $

ERROR: trailing whitespace
#29483: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1626:
+                    One, $

ERROR: trailing whitespace
#29484: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1627:
+                    GSIE, $

ERROR: trailing whitespace
#29486: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1629:
+                }, $

ERROR: trailing whitespace
#29490: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1633:
+                    0x000BFFFF, $

ERROR: trailing whitespace
#29491: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1634:
+                    0x02, $

ERROR: trailing whitespace
#29492: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1635:
+                    GSIF, $

ERROR: trailing whitespace
#29494: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1637:
+                }, $

ERROR: trailing whitespace
#29498: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1641:
+                    0x000BFFFF, $

ERROR: trailing whitespace
#29499: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1642:
+                    0x03, $

ERROR: trailing whitespace
#29500: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1643:
+                    GSIG, $

ERROR: trailing whitespace
#29502: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1645:
+                }, $

ERROR: trailing whitespace
#29506: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1649:
+                    0x000CFFFF, $

ERROR: trailing whitespace
#29507: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1650:
+                    Zero, $

ERROR: trailing whitespace
#29508: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1651:
+                    GSIE, $

ERROR: trailing whitespace
#29510: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1653:
+                }, $

ERROR: trailing whitespace
#29514: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1657:
+                    0x000CFFFF, $

ERROR: trailing whitespace
#29515: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1658:
+                    One, $

ERROR: trailing whitespace
#29516: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1659:
+                    GSIF, $

ERROR: trailing whitespace
#29518: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1661:
+                }, $

ERROR: trailing whitespace
#29522: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1665:
+                    0x000CFFFF, $

ERROR: trailing whitespace
#29523: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1666:
+                    0x02, $

ERROR: trailing whitespace
#29524: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1667:
+                    GSIG, $

ERROR: trailing whitespace
#29526: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1669:
+                }, $

ERROR: trailing whitespace
#29530: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1673:
+                    0x000CFFFF, $

ERROR: trailing whitespace
#29531: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1674:
+                    0x03, $

ERROR: trailing whitespace
#29532: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1675:
+                    GSIH, $

ERROR: trailing whitespace
#29534: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1677:
+                }, $

ERROR: trailing whitespace
#29538: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1681:
+                    0x000DFFFF, $

ERROR: trailing whitespace
#29539: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1682:
+                    Zero, $

ERROR: trailing whitespace
#29540: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1683:
+                    GSIF, $

ERROR: trailing whitespace
#29542: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1685:
+                }, $

ERROR: trailing whitespace
#29546: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1689:
+                    0x000DFFFF, $

ERROR: trailing whitespace
#29547: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1690:
+                    One, $

ERROR: trailing whitespace
#29548: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1691:
+                    GSIG, $

ERROR: trailing whitespace
#29550: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1693:
+                }, $

ERROR: trailing whitespace
#29554: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1697:
+                    0x000DFFFF, $

ERROR: trailing whitespace
#29555: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1698:
+                    0x02, $

ERROR: trailing whitespace
#29556: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1699:
+                    GSIH, $

ERROR: trailing whitespace
#29558: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1701:
+                }, $

ERROR: trailing whitespace
#29562: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1705:
+                    0x000DFFFF, $

ERROR: trailing whitespace
#29563: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1706:
+                    0x03, $

ERROR: trailing whitespace
#29564: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1707:
+                    GSIE, $

ERROR: trailing whitespace
#29566: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1709:
+                }, $

ERROR: trailing whitespace
#29570: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1713:
+                    0x000EFFFF, $

ERROR: trailing whitespace
#29571: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1714:
+                    Zero, $

ERROR: trailing whitespace
#29572: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1715:
+                    GSIG, $

ERROR: trailing whitespace
#29574: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1717:
+                }, $

ERROR: trailing whitespace
#29578: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1721:
+                    0x000EFFFF, $

ERROR: trailing whitespace
#29579: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1722:
+                    One, $

ERROR: trailing whitespace
#29580: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1723:
+                    GSIH, $

ERROR: trailing whitespace
#29582: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1725:
+                }, $

ERROR: trailing whitespace
#29586: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1729:
+                    0x000EFFFF, $

ERROR: trailing whitespace
#29587: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1730:
+                    0x02, $

ERROR: trailing whitespace
#29588: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1731:
+                    GSIE, $

ERROR: trailing whitespace
#29590: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1733:
+                }, $

ERROR: trailing whitespace
#29594: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1737:
+                    0x000EFFFF, $

ERROR: trailing whitespace
#29595: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1738:
+                    0x03, $

ERROR: trailing whitespace
#29596: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1739:
+                    GSIF, $

ERROR: trailing whitespace
#29598: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1741:
+                }, $

ERROR: trailing whitespace
#29602: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1745:
+                    0x000FFFFF, $

ERROR: trailing whitespace
#29603: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1746:
+                    Zero, $

ERROR: trailing whitespace
#29604: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1747:
+                    GSIH, $

ERROR: trailing whitespace
#29606: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1749:
+                }, $

ERROR: trailing whitespace
#29610: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1753:
+                    0x000FFFFF, $

ERROR: trailing whitespace
#29611: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1754:
+                    One, $

ERROR: trailing whitespace
#29612: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1755:
+                    GSIE, $

ERROR: trailing whitespace
#29614: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1757:
+                }, $

ERROR: trailing whitespace
#29618: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1761:
+                    0x000FFFFF, $

ERROR: trailing whitespace
#29619: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1762:
+                    0x02, $

ERROR: trailing whitespace
#29620: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1763:
+                    GSIF, $

ERROR: trailing whitespace
#29622: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1765:
+                }, $

ERROR: trailing whitespace
#29626: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1769:
+                    0x000FFFFF, $

ERROR: trailing whitespace
#29627: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1770:
+                    0x03, $

ERROR: trailing whitespace
#29628: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1771:
+                    GSIG, $

ERROR: trailing whitespace
#29630: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1773:
+                }, $

ERROR: trailing whitespace
#29634: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1777:
+                    0x0010FFFF, $

ERROR: trailing whitespace
#29635: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1778:
+                    Zero, $

ERROR: trailing whitespace
#29636: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1779:
+                    GSIE, $

ERROR: trailing whitespace
#29638: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1781:
+                }, $

ERROR: trailing whitespace
#29642: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1785:
+                    0x0010FFFF, $

ERROR: trailing whitespace
#29643: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1786:
+                    One, $

ERROR: trailing whitespace
#29644: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1787:
+                    GSIF, $

ERROR: trailing whitespace
#29646: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1789:
+                }, $

ERROR: trailing whitespace
#29650: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1793:
+                    0x0010FFFF, $

ERROR: trailing whitespace
#29651: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1794:
+                    0x02, $

ERROR: trailing whitespace
#29652: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1795:
+                    GSIG, $

ERROR: trailing whitespace
#29654: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1797:
+                }, $

ERROR: trailing whitespace
#29658: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1801:
+                    0x0010FFFF, $

ERROR: trailing whitespace
#29659: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1802:
+                    0x03, $

ERROR: trailing whitespace
#29660: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1803:
+                    GSIH, $

ERROR: trailing whitespace
#29662: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1805:
+                }, $

ERROR: trailing whitespace
#29666: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1809:
+                    0x0011FFFF, $

ERROR: trailing whitespace
#29667: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1810:
+                    Zero, $

ERROR: trailing whitespace
#29668: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1811:
+                    GSIF, $

ERROR: trailing whitespace
#29670: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1813:
+                }, $

ERROR: trailing whitespace
#29674: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1817:
+                    0x0011FFFF, $

ERROR: trailing whitespace
#29675: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1818:
+                    One, $

ERROR: trailing whitespace
#29676: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1819:
+                    GSIG, $

ERROR: trailing whitespace
#29678: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1821:
+                }, $

ERROR: trailing whitespace
#29682: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1825:
+                    0x0011FFFF, $

ERROR: trailing whitespace
#29683: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1826:
+                    0x02, $

ERROR: trailing whitespace
#29684: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1827:
+                    GSIH, $

ERROR: trailing whitespace
#29686: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1829:
+                }, $

ERROR: trailing whitespace
#29690: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1833:
+                    0x0011FFFF, $

ERROR: trailing whitespace
#29691: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1834:
+                    0x03, $

ERROR: trailing whitespace
#29692: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1835:
+                    GSIE, $

ERROR: trailing whitespace
#29694: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1837:
+                }, $

ERROR: trailing whitespace
#29698: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1841:
+                    0x0012FFFF, $

ERROR: trailing whitespace
#29699: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1842:
+                    Zero, $

ERROR: trailing whitespace
#29700: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1843:
+                    GSIG, $

ERROR: trailing whitespace
#29702: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1845:
+                }, $

ERROR: trailing whitespace
#29706: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1849:
+                    0x0012FFFF, $

ERROR: trailing whitespace
#29707: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1850:
+                    One, $

ERROR: trailing whitespace
#29708: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1851:
+                    GSIH, $

ERROR: trailing whitespace
#29710: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1853:
+                }, $

ERROR: trailing whitespace
#29714: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1857:
+                    0x0012FFFF, $

ERROR: trailing whitespace
#29715: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1858:
+                    0x02, $

ERROR: trailing whitespace
#29716: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1859:
+                    GSIE, $

ERROR: trailing whitespace
#29718: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1861:
+                }, $

ERROR: trailing whitespace
#29722: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1865:
+                    0x0012FFFF, $

ERROR: trailing whitespace
#29723: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1866:
+                    0x03, $

ERROR: trailing whitespace
#29724: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1867:
+                    GSIF, $

ERROR: trailing whitespace
#29726: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1869:
+                }, $

ERROR: trailing whitespace
#29730: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1873:
+                    0x0013FFFF, $

ERROR: trailing whitespace
#29731: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1874:
+                    Zero, $

ERROR: trailing whitespace
#29732: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1875:
+                    GSIH, $

ERROR: trailing whitespace
#29734: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1877:
+                }, $

ERROR: trailing whitespace
#29738: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1881:
+                    0x0013FFFF, $

ERROR: trailing whitespace
#29739: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1882:
+                    One, $

ERROR: trailing whitespace
#29740: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1883:
+                    GSIE, $

ERROR: trailing whitespace
#29742: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1885:
+                }, $

ERROR: trailing whitespace
#29746: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1889:
+                    0x0013FFFF, $

ERROR: trailing whitespace
#29747: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1890:
+                    0x02, $

ERROR: trailing whitespace
#29748: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1891:
+                    GSIF, $

ERROR: trailing whitespace
#29750: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1893:
+                }, $

ERROR: trailing whitespace
#29754: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1897:
+                    0x0013FFFF, $

ERROR: trailing whitespace
#29755: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1898:
+                    0x03, $

ERROR: trailing whitespace
#29756: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1899:
+                    GSIG, $

ERROR: trailing whitespace
#29758: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1901:
+                }, $

ERROR: trailing whitespace
#29762: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1905:
+                    0x0014FFFF, $

ERROR: trailing whitespace
#29763: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1906:
+                    Zero, $

ERROR: trailing whitespace
#29764: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1907:
+                    GSIE, $

ERROR: trailing whitespace
#29766: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1909:
+                }, $

ERROR: trailing whitespace
#29770: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1913:
+                    0x0014FFFF, $

ERROR: trailing whitespace
#29771: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1914:
+                    One, $

ERROR: trailing whitespace
#29772: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1915:
+                    GSIF, $

ERROR: trailing whitespace
#29774: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1917:
+                }, $

ERROR: trailing whitespace
#29778: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1921:
+                    0x0014FFFF, $

ERROR: trailing whitespace
#29779: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1922:
+                    0x02, $

ERROR: trailing whitespace
#29780: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1923:
+                    GSIG, $

ERROR: trailing whitespace
#29782: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1925:
+                }, $

ERROR: trailing whitespace
#29786: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1929:
+                    0x0014FFFF, $

ERROR: trailing whitespace
#29787: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1930:
+                    0x03, $

ERROR: trailing whitespace
#29788: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1931:
+                    GSIH, $

ERROR: trailing whitespace
#29790: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1933:
+                }, $

ERROR: trailing whitespace
#29794: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1937:
+                    0x0015FFFF, $

ERROR: trailing whitespace
#29795: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1938:
+                    Zero, $

ERROR: trailing whitespace
#29796: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1939:
+                    GSIF, $

ERROR: trailing whitespace
#29798: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1941:
+                }, $

ERROR: trailing whitespace
#29802: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1945:
+                    0x0015FFFF, $

ERROR: trailing whitespace
#29803: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1946:
+                    One, $

ERROR: trailing whitespace
#29804: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1947:
+                    GSIG, $

ERROR: trailing whitespace
#29806: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1949:
+                }, $

ERROR: trailing whitespace
#29810: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1953:
+                    0x0015FFFF, $

ERROR: trailing whitespace
#29811: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1954:
+                    0x02, $

ERROR: trailing whitespace
#29812: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1955:
+                    GSIH, $

ERROR: trailing whitespace
#29814: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1957:
+                }, $

ERROR: trailing whitespace
#29818: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1961:
+                    0x0015FFFF, $

ERROR: trailing whitespace
#29819: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1962:
+                    0x03, $

ERROR: trailing whitespace
#29820: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1963:
+                    GSIE, $

ERROR: trailing whitespace
#29822: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1965:
+                }, $

ERROR: trailing whitespace
#29826: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1969:
+                    0x0016FFFF, $

ERROR: trailing whitespace
#29827: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1970:
+                    Zero, $

ERROR: trailing whitespace
#29828: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1971:
+                    GSIG, $

ERROR: trailing whitespace
#29830: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1973:
+                }, $

ERROR: trailing whitespace
#29834: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1977:
+                    0x0016FFFF, $

ERROR: trailing whitespace
#29835: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1978:
+                    One, $

ERROR: trailing whitespace
#29836: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1979:
+                    GSIH, $

ERROR: trailing whitespace
#29838: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1981:
+                }, $

ERROR: trailing whitespace
#29842: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1985:
+                    0x0016FFFF, $

ERROR: trailing whitespace
#29843: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1986:
+                    0x02, $

ERROR: trailing whitespace
#29844: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1987:
+                    GSIE, $

ERROR: trailing whitespace
#29846: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1989:
+                }, $

ERROR: trailing whitespace
#29850: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1993:
+                    0x0016FFFF, $

ERROR: trailing whitespace
#29851: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1994:
+                    0x03, $

ERROR: trailing whitespace
#29852: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1995:
+                    GSIF, $

ERROR: trailing whitespace
#29854: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:1997:
+                }, $

ERROR: trailing whitespace
#29858: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2001:
+                    0x0017FFFF, $

ERROR: trailing whitespace
#29859: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2002:
+                    Zero, $

ERROR: trailing whitespace
#29860: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2003:
+                    GSIH, $

ERROR: trailing whitespace
#29862: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2005:
+                }, $

ERROR: trailing whitespace
#29866: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2009:
+                    0x0017FFFF, $

ERROR: trailing whitespace
#29867: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2010:
+                    One, $

ERROR: trailing whitespace
#29868: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2011:
+                    GSIE, $

ERROR: trailing whitespace
#29870: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2013:
+                }, $

ERROR: trailing whitespace
#29874: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2017:
+                    0x0017FFFF, $

ERROR: trailing whitespace
#29875: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2018:
+                    0x02, $

ERROR: trailing whitespace
#29876: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2019:
+                    GSIF, $

ERROR: trailing whitespace
#29878: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2021:
+                }, $

ERROR: trailing whitespace
#29882: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2025:
+                    0x0017FFFF, $

ERROR: trailing whitespace
#29883: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2026:
+                    0x03, $

ERROR: trailing whitespace
#29884: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2027:
+                    GSIG, $

ERROR: trailing whitespace
#29886: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2029:
+                }, $

ERROR: trailing whitespace
#29890: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2033:
+                    0x0018FFFF, $

ERROR: trailing whitespace
#29891: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2034:
+                    Zero, $

ERROR: trailing whitespace
#29892: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2035:
+                    GSIE, $

ERROR: trailing whitespace
#29894: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2037:
+                }, $

ERROR: trailing whitespace
#29898: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2041:
+                    0x0018FFFF, $

ERROR: trailing whitespace
#29899: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2042:
+                    One, $

ERROR: trailing whitespace
#29900: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2043:
+                    GSIF, $

ERROR: trailing whitespace
#29902: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2045:
+                }, $

ERROR: trailing whitespace
#29906: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2049:
+                    0x0018FFFF, $

ERROR: trailing whitespace
#29907: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2050:
+                    0x02, $

ERROR: trailing whitespace
#29908: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2051:
+                    GSIG, $

ERROR: trailing whitespace
#29910: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2053:
+                }, $

ERROR: trailing whitespace
#29914: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2057:
+                    0x0018FFFF, $

ERROR: trailing whitespace
#29915: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2058:
+                    0x03, $

ERROR: trailing whitespace
#29916: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2059:
+                    GSIH, $

ERROR: trailing whitespace
#29918: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2061:
+                }, $

ERROR: trailing whitespace
#29922: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2065:
+                    0x0019FFFF, $

ERROR: trailing whitespace
#29923: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2066:
+                    Zero, $

ERROR: trailing whitespace
#29924: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2067:
+                    GSIA, $

ERROR: trailing whitespace
#29926: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2069:
+                }, $

ERROR: trailing whitespace
#29930: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2073:
+                    0x0019FFFF, $

ERROR: trailing whitespace
#29931: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2074:
+                    One, $

ERROR: trailing whitespace
#29932: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2075:
+                    GSIB, $

ERROR: trailing whitespace
#29934: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2077:
+                }, $

ERROR: trailing whitespace
#29938: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2081:
+                    0x0019FFFF, $

ERROR: trailing whitespace
#29939: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2082:
+                    0x02, $

ERROR: trailing whitespace
#29940: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2083:
+                    GSIC, $

ERROR: trailing whitespace
#29942: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2085:
+                }, $

ERROR: trailing whitespace
#29946: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2089:
+                    0x0019FFFF, $

ERROR: trailing whitespace
#29947: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2090:
+                    0x03, $

ERROR: trailing whitespace
#29948: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2091:
+                    GSID, $

ERROR: trailing whitespace
#29950: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2093:
+                }, $

ERROR: trailing whitespace
#29954: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2097:
+                    0x001AFFFF, $

ERROR: trailing whitespace
#29955: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2098:
+                    Zero, $

ERROR: trailing whitespace
#29956: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2099:
+                    GSIA, $

ERROR: trailing whitespace
#29958: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2101:
+                }, $

ERROR: trailing whitespace
#29962: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2105:
+                    0x001AFFFF, $

ERROR: trailing whitespace
#29963: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2106:
+                    One, $

ERROR: trailing whitespace
#29964: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2107:
+                    GSIB, $

ERROR: trailing whitespace
#29966: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2109:
+                }, $

ERROR: trailing whitespace
#29970: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2113:
+                    0x001AFFFF, $

ERROR: trailing whitespace
#29971: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2114:
+                    0x02, $

ERROR: trailing whitespace
#29972: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2115:
+                    GSIC, $

ERROR: trailing whitespace
#29974: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2117:
+                }, $

ERROR: trailing whitespace
#29978: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2121:
+                    0x001AFFFF, $

ERROR: trailing whitespace
#29979: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2122:
+                    0x03, $

ERROR: trailing whitespace
#29980: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2123:
+                    GSID, $

ERROR: trailing whitespace
#29982: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2125:
+                }, $

ERROR: trailing whitespace
#29986: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2129:
+                    0x001BFFFF, $

ERROR: trailing whitespace
#29987: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2130:
+                    Zero, $

ERROR: trailing whitespace
#29988: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2131:
+                    GSIA, $

ERROR: trailing whitespace
#29990: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2133:
+                }, $

ERROR: trailing whitespace
#29994: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2137:
+                    0x001BFFFF, $

ERROR: trailing whitespace
#29995: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2138:
+                    One, $

ERROR: trailing whitespace
#29996: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2139:
+                    GSIB, $

ERROR: trailing whitespace
#29998: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2141:
+                }, $

ERROR: trailing whitespace
#30002: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2145:
+                    0x001BFFFF, $

ERROR: trailing whitespace
#30003: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2146:
+                    0x02, $

ERROR: trailing whitespace
#30004: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2147:
+                    GSIC, $

ERROR: trailing whitespace
#30006: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2149:
+                }, $

ERROR: trailing whitespace
#30010: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2153:
+                    0x001BFFFF, $

ERROR: trailing whitespace
#30011: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2154:
+                    0x03, $

ERROR: trailing whitespace
#30012: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2155:
+                    GSID, $

ERROR: trailing whitespace
#30014: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2157:
+                }, $

ERROR: trailing whitespace
#30018: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2161:
+                    0x001CFFFF, $

ERROR: trailing whitespace
#30019: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2162:
+                    Zero, $

ERROR: trailing whitespace
#30020: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2163:
+                    GSIA, $

ERROR: trailing whitespace
#30022: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2165:
+                }, $

ERROR: trailing whitespace
#30026: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2169:
+                    0x001CFFFF, $

ERROR: trailing whitespace
#30027: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2170:
+                    One, $

ERROR: trailing whitespace
#30028: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2171:
+                    GSIB, $

ERROR: trailing whitespace
#30030: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2173:
+                }, $

ERROR: trailing whitespace
#30034: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2177:
+                    0x001CFFFF, $

ERROR: trailing whitespace
#30035: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2178:
+                    0x02, $

ERROR: trailing whitespace
#30036: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2179:
+                    GSIC, $

ERROR: trailing whitespace
#30038: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2181:
+                }, $

ERROR: trailing whitespace
#30042: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2185:
+                    0x001CFFFF, $

ERROR: trailing whitespace
#30043: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2186:
+                    0x03, $

ERROR: trailing whitespace
#30044: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2187:
+                    GSID, $

ERROR: trailing whitespace
#30046: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2189:
+                }, $

ERROR: trailing whitespace
#30050: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2193:
+                    0x001DFFFF, $

ERROR: trailing whitespace
#30051: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2194:
+                    Zero, $

ERROR: trailing whitespace
#30052: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2195:
+                    GSIA, $

ERROR: trailing whitespace
#30054: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2197:
+                }, $

ERROR: trailing whitespace
#30058: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2201:
+                    0x001DFFFF, $

ERROR: trailing whitespace
#30059: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2202:
+                    One, $

ERROR: trailing whitespace
#30060: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2203:
+                    GSIB, $

ERROR: trailing whitespace
#30062: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2205:
+                }, $

ERROR: trailing whitespace
#30066: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2209:
+                    0x001DFFFF, $

ERROR: trailing whitespace
#30067: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2210:
+                    0x02, $

ERROR: trailing whitespace
#30068: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2211:
+                    GSIC, $

ERROR: trailing whitespace
#30070: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2213:
+                }, $

ERROR: trailing whitespace
#30074: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2217:
+                    0x001DFFFF, $

ERROR: trailing whitespace
#30075: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2218:
+                    0x03, $

ERROR: trailing whitespace
#30076: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2219:
+                    GSID, $

ERROR: trailing whitespace
#30078: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2221:
+                }, $

ERROR: trailing whitespace
#30082: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2225:
+                    0x001EFFFF, $

ERROR: trailing whitespace
#30083: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2226:
+                    Zero, $

ERROR: trailing whitespace
#30084: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2227:
+                    GSIE, $

ERROR: trailing whitespace
#30086: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2229:
+                }, $

ERROR: trailing whitespace
#30090: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2233:
+                    0x001EFFFF, $

ERROR: trailing whitespace
#30091: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2234:
+                    One, $

ERROR: trailing whitespace
#30092: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2235:
+                    GSIF, $

ERROR: trailing whitespace
#30094: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2237:
+                }, $

ERROR: trailing whitespace
#30098: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2241:
+                    0x001EFFFF, $

ERROR: trailing whitespace
#30099: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2242:
+                    0x02, $

ERROR: trailing whitespace
#30100: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2243:
+                    GSIG, $

ERROR: trailing whitespace
#30102: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2245:
+                }, $

ERROR: trailing whitespace
#30106: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2249:
+                    0x001EFFFF, $

ERROR: trailing whitespace
#30107: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2250:
+                    0x03, $

ERROR: trailing whitespace
#30108: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2251:
+                    GSIH, $

ERROR: trailing whitespace
#30110: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2253:
+                }, $

ERROR: trailing whitespace
#30114: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2257:
+                    0x001FFFFF, $

ERROR: trailing whitespace
#30115: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2258:
+                    Zero, $

ERROR: trailing whitespace
#30116: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2259:
+                    GSIA, $

ERROR: trailing whitespace
#30118: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2261:
+                }, $

ERROR: trailing whitespace
#30122: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2265:
+                    0x001FFFFF, $

ERROR: trailing whitespace
#30123: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2266:
+                    One, $

ERROR: trailing whitespace
#30124: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2267:
+                    GSIB, $

ERROR: trailing whitespace
#30126: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2269:
+                }, $

ERROR: trailing whitespace
#30130: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2273:
+                    0x001FFFFF, $

ERROR: trailing whitespace
#30131: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2274:
+                    0x02, $

ERROR: trailing whitespace
#30132: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2275:
+                    GSIC, $

ERROR: trailing whitespace
#30134: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2277:
+                }, $

ERROR: trailing whitespace
#30138: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2281:
+                    0x001FFFFF, $

ERROR: trailing whitespace
#30139: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2282:
+                    0x03, $

ERROR: trailing whitespace
#30140: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2283:
+                    GSID, $

ERROR: trailing whitespace
#30159: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2302:
+            PRQA,   8, $

ERROR: trailing whitespace
#30160: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2303:
+            PRQB,   8, $

ERROR: trailing whitespace
#30161: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2304:
+            PRQC,   8, $

ERROR: trailing whitespace
#30162: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2305:
+            PRQD,   8, $

ERROR: trailing whitespace
#30163: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2306:
+            Offset (0x08), $

ERROR: trailing whitespace
#30164: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2307:
+            PRQE,   8, $

ERROR: trailing whitespace
#30165: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2308:
+            PRQF,   8, $

ERROR: trailing whitespace
#30166: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2309:
+            PRQG,   8, $

ERROR: trailing whitespace
#30718: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2861:
+                Offset (0x04), $

ERROR: trailing whitespace
#30719: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2862:
+                CPEN,   1, $

ERROR: trailing whitespace
#30720: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2863:
+                CINS,   1, $

ERROR: trailing whitespace
#30721: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2864:
+                CRMV,   1, $

ERROR: trailing whitespace
#30722: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2865:
+                CEJ0,   1, $

ERROR: trailing whitespace
#30723: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2866:
+                Offset (0x05), $

ERROR: trailing whitespace
#30729: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2872:
+                CSEL,   32, $

ERROR: trailing whitespace
#30730: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:2873:
+                Offset (0x08), $

ERROR: trailing whitespace
#31067: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:3210:
+            One, $

ERROR: trailing whitespace
#31068: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:3211:
+            One, $

ERROR: trailing whitespace
#31069: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:3212:
+            Zero, $

ERROR: trailing whitespace
#31074: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:3217:
+            0x02, $

ERROR: trailing whitespace
#31075: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:3218:
+            0x02, $

ERROR: trailing whitespace
#31076: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:3219:
+            Zero, $

ERROR: trailing whitespace
#31081: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:3224:
+            Zero, $

ERROR: trailing whitespace
#31082: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:3225:
+            Zero, $

ERROR: trailing whitespace
#31083: FILE: tests/data/acpi/q35/DSDT.cphp.dsl:3226:
+            Zero, $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/DSDT.dimmpxm and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/DSDT.dimmpxm.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/DSDT.dimmpxm.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#31154: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:5:
+ * $

ERROR: trailing whitespace
#31246: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:97:
+                VEND,   32, $

ERROR: trailing whitespace
#31390: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:241:
+                    0xFFFF, $

ERROR: trailing whitespace
#31391: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:242:
+                    Zero, $

ERROR: trailing whitespace
#31392: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:243:
+                    LNKE, $

ERROR: trailing whitespace
#31394: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:245:
+                }, $

ERROR: trailing whitespace
#31398: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:249:
+                    0xFFFF, $

ERROR: trailing whitespace
#31399: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:250:
+                    One, $

ERROR: trailing whitespace
#31400: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:251:
+                    LNKF, $

ERROR: trailing whitespace
#31402: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:253:
+                }, $

ERROR: trailing whitespace
#31406: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:257:
+                    0xFFFF, $

ERROR: trailing whitespace
#31407: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:258:
+                    0x02, $

ERROR: trailing whitespace
#31408: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:259:
+                    LNKG, $

ERROR: trailing whitespace
#31410: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:261:
+                }, $

ERROR: trailing whitespace
#31414: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:265:
+                    0xFFFF, $

ERROR: trailing whitespace
#31415: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:266:
+                    0x03, $

ERROR: trailing whitespace
#31416: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:267:
+                    LNKH, $

ERROR: trailing whitespace
#31418: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:269:
+                }, $

ERROR: trailing whitespace
#31422: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:273:
+                    0x0001FFFF, $

ERROR: trailing whitespace
#31423: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:274:
+                    Zero, $

ERROR: trailing whitespace
#31424: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:275:
+                    LNKF, $

ERROR: trailing whitespace
#31426: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:277:
+                }, $

ERROR: trailing whitespace
#31430: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:281:
+                    0x0001FFFF, $

ERROR: trailing whitespace
#31431: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:282:
+                    One, $

ERROR: trailing whitespace
#31432: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:283:
+                    LNKG, $

ERROR: trailing whitespace
#31434: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:285:
+                }, $

ERROR: trailing whitespace
#31438: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:289:
+                    0x0001FFFF, $

ERROR: trailing whitespace
#31439: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:290:
+                    0x02, $

ERROR: trailing whitespace
#31440: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:291:
+                    LNKH, $

ERROR: trailing whitespace
#31442: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:293:
+                }, $

ERROR: trailing whitespace
#31446: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:297:
+                    0x0001FFFF, $

ERROR: trailing whitespace
#31447: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:298:
+                    0x03, $

ERROR: trailing whitespace
#31448: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:299:
+                    LNKE, $

ERROR: trailing whitespace
#31450: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:301:
+                }, $

ERROR: trailing whitespace
#31454: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:305:
+                    0x0002FFFF, $

ERROR: trailing whitespace
#31455: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:306:
+                    Zero, $

ERROR: trailing whitespace
#31456: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:307:
+                    LNKG, $

ERROR: trailing whitespace
#31458: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:309:
+                }, $

ERROR: trailing whitespace
#31462: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:313:
+                    0x0002FFFF, $

ERROR: trailing whitespace
#31463: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:314:
+                    One, $

ERROR: trailing whitespace
#31464: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:315:
+                    LNKH, $

ERROR: trailing whitespace
#31466: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:317:
+                }, $

ERROR: trailing whitespace
#31470: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:321:
+                    0x0002FFFF, $

ERROR: trailing whitespace
#31471: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:322:
+                    0x02, $

ERROR: trailing whitespace
#31472: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:323:
+                    LNKE, $

ERROR: trailing whitespace
#31474: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:325:
+                }, $

ERROR: trailing whitespace
#31478: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:329:
+                    0x0002FFFF, $

ERROR: trailing whitespace
#31479: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:330:
+                    0x03, $

ERROR: trailing whitespace
#31480: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:331:
+                    LNKF, $

ERROR: trailing whitespace
#31482: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:333:
+                }, $

ERROR: trailing whitespace
#31486: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:337:
+                    0x0003FFFF, $

ERROR: trailing whitespace
#31487: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:338:
+                    Zero, $

ERROR: trailing whitespace
#31488: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:339:
+                    LNKH, $

ERROR: trailing whitespace
#31490: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:341:
+                }, $

ERROR: trailing whitespace
#31494: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:345:
+                    0x0003FFFF, $

ERROR: trailing whitespace
#31495: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:346:
+                    One, $

ERROR: trailing whitespace
#31496: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:347:
+                    LNKE, $

ERROR: trailing whitespace
#31498: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:349:
+                }, $

ERROR: trailing whitespace
#31502: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:353:
+                    0x0003FFFF, $

ERROR: trailing whitespace
#31503: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:354:
+                    0x02, $

ERROR: trailing whitespace
#31504: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:355:
+                    LNKF, $

ERROR: trailing whitespace
#31506: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:357:
+                }, $

ERROR: trailing whitespace
#31510: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:361:
+                    0x0003FFFF, $

ERROR: trailing whitespace
#31511: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:362:
+                    0x03, $

ERROR: trailing whitespace
#31512: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:363:
+                    LNKG, $

ERROR: trailing whitespace
#31514: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:365:
+                }, $

ERROR: trailing whitespace
#31518: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:369:
+                    0x0004FFFF, $

ERROR: trailing whitespace
#31519: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:370:
+                    Zero, $

ERROR: trailing whitespace
#31520: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:371:
+                    LNKE, $

ERROR: trailing whitespace
#31522: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:373:
+                }, $

ERROR: trailing whitespace
#31526: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:377:
+                    0x0004FFFF, $

ERROR: trailing whitespace
#31527: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:378:
+                    One, $

ERROR: trailing whitespace
#31528: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:379:
+                    LNKF, $

ERROR: trailing whitespace
#31530: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:381:
+                }, $

ERROR: trailing whitespace
#31534: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:385:
+                    0x0004FFFF, $

ERROR: trailing whitespace
#31535: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:386:
+                    0x02, $

ERROR: trailing whitespace
#31536: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:387:
+                    LNKG, $

ERROR: trailing whitespace
#31538: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:389:
+                }, $

ERROR: trailing whitespace
#31542: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:393:
+                    0x0004FFFF, $

ERROR: trailing whitespace
#31543: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:394:
+                    0x03, $

ERROR: trailing whitespace
#31544: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:395:
+                    LNKH, $

ERROR: trailing whitespace
#31546: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:397:
+                }, $

ERROR: trailing whitespace
#31550: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:401:
+                    0x0005FFFF, $

ERROR: trailing whitespace
#31551: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:402:
+                    Zero, $

ERROR: trailing whitespace
#31552: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:403:
+                    LNKF, $

ERROR: trailing whitespace
#31554: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:405:
+                }, $

ERROR: trailing whitespace
#31558: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:409:
+                    0x0005FFFF, $

ERROR: trailing whitespace
#31559: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:410:
+                    One, $

ERROR: trailing whitespace
#31560: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:411:
+                    LNKG, $

ERROR: trailing whitespace
#31562: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:413:
+                }, $

ERROR: trailing whitespace
#31566: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:417:
+                    0x0005FFFF, $

ERROR: trailing whitespace
#31567: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:418:
+                    0x02, $

ERROR: trailing whitespace
#31568: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:419:
+                    LNKH, $

ERROR: trailing whitespace
#31570: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:421:
+                }, $

ERROR: trailing whitespace
#31574: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:425:
+                    0x0005FFFF, $

ERROR: trailing whitespace
#31575: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:426:
+                    0x03, $

ERROR: trailing whitespace
#31576: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:427:
+                    LNKE, $

ERROR: trailing whitespace
#31578: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:429:
+                }, $

ERROR: trailing whitespace
#31582: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:433:
+                    0x0006FFFF, $

ERROR: trailing whitespace
#31583: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:434:
+                    Zero, $

ERROR: trailing whitespace
#31584: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:435:
+                    LNKG, $

ERROR: trailing whitespace
#31586: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:437:
+                }, $

ERROR: trailing whitespace
#31590: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:441:
+                    0x0006FFFF, $

ERROR: trailing whitespace
#31591: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:442:
+                    One, $

ERROR: trailing whitespace
#31592: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:443:
+                    LNKH, $

ERROR: trailing whitespace
#31594: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:445:
+                }, $

ERROR: trailing whitespace
#31598: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:449:
+                    0x0006FFFF, $

ERROR: trailing whitespace
#31599: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:450:
+                    0x02, $

ERROR: trailing whitespace
#31600: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:451:
+                    LNKE, $

ERROR: trailing whitespace
#31602: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:453:
+                }, $

ERROR: trailing whitespace
#31606: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:457:
+                    0x0006FFFF, $

ERROR: trailing whitespace
#31607: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:458:
+                    0x03, $

ERROR: trailing whitespace
#31608: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:459:
+                    LNKF, $

ERROR: trailing whitespace
#31610: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:461:
+                }, $

ERROR: trailing whitespace
#31614: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:465:
+                    0x0007FFFF, $

ERROR: trailing whitespace
#31615: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:466:
+                    Zero, $

ERROR: trailing whitespace
#31616: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:467:
+                    LNKH, $

ERROR: trailing whitespace
#31618: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:469:
+                }, $

ERROR: trailing whitespace
#31622: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:473:
+                    0x0007FFFF, $

ERROR: trailing whitespace
#31623: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:474:
+                    One, $

ERROR: trailing whitespace
#31624: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:475:
+                    LNKE, $

ERROR: trailing whitespace
#31626: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:477:
+                }, $

ERROR: trailing whitespace
#31630: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:481:
+                    0x0007FFFF, $

ERROR: trailing whitespace
#31631: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:482:
+                    0x02, $

ERROR: trailing whitespace
#31632: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:483:
+                    LNKF, $

ERROR: trailing whitespace
#31634: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:485:
+                }, $

ERROR: trailing whitespace
#31638: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:489:
+                    0x0007FFFF, $

ERROR: trailing whitespace
#31639: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:490:
+                    0x03, $

ERROR: trailing whitespace
#31640: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:491:
+                    LNKG, $

ERROR: trailing whitespace
#31642: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:493:
+                }, $

ERROR: trailing whitespace
#31646: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:497:
+                    0x0008FFFF, $

ERROR: trailing whitespace
#31647: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:498:
+                    Zero, $

ERROR: trailing whitespace
#31648: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:499:
+                    LNKE, $

ERROR: trailing whitespace
#31650: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:501:
+                }, $

ERROR: trailing whitespace
#31654: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:505:
+                    0x0008FFFF, $

ERROR: trailing whitespace
#31655: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:506:
+                    One, $

ERROR: trailing whitespace
#31656: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:507:
+                    LNKF, $

ERROR: trailing whitespace
#31658: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:509:
+                }, $

ERROR: trailing whitespace
#31662: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:513:
+                    0x0008FFFF, $

ERROR: trailing whitespace
#31663: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:514:
+                    0x02, $

ERROR: trailing whitespace
#31664: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:515:
+                    LNKG, $

ERROR: trailing whitespace
#31666: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:517:
+                }, $

ERROR: trailing whitespace
#31670: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:521:
+                    0x0008FFFF, $

ERROR: trailing whitespace
#31671: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:522:
+                    0x03, $

ERROR: trailing whitespace
#31672: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:523:
+                    LNKH, $

ERROR: trailing whitespace
#31674: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:525:
+                }, $

ERROR: trailing whitespace
#31678: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:529:
+                    0x0009FFFF, $

ERROR: trailing whitespace
#31679: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:530:
+                    Zero, $

ERROR: trailing whitespace
#31680: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:531:
+                    LNKF, $

ERROR: trailing whitespace
#31682: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:533:
+                }, $

ERROR: trailing whitespace
#31686: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:537:
+                    0x0009FFFF, $

ERROR: trailing whitespace
#31687: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:538:
+                    One, $

ERROR: trailing whitespace
#31688: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:539:
+                    LNKG, $

ERROR: trailing whitespace
#31690: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:541:
+                }, $

ERROR: trailing whitespace
#31694: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:545:
+                    0x0009FFFF, $

ERROR: trailing whitespace
#31695: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:546:
+                    0x02, $

ERROR: trailing whitespace
#31696: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:547:
+                    LNKH, $

ERROR: trailing whitespace
#31698: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:549:
+                }, $

ERROR: trailing whitespace
#31702: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:553:
+                    0x0009FFFF, $

ERROR: trailing whitespace
#31703: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:554:
+                    0x03, $

ERROR: trailing whitespace
#31704: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:555:
+                    LNKE, $

ERROR: trailing whitespace
#31706: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:557:
+                }, $

ERROR: trailing whitespace
#31710: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:561:
+                    0x000AFFFF, $

ERROR: trailing whitespace
#31711: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:562:
+                    Zero, $

ERROR: trailing whitespace
#31712: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:563:
+                    LNKG, $

ERROR: trailing whitespace
#31714: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:565:
+                }, $

ERROR: trailing whitespace
#31718: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:569:
+                    0x000AFFFF, $

ERROR: trailing whitespace
#31719: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:570:
+                    One, $

ERROR: trailing whitespace
#31720: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:571:
+                    LNKH, $

ERROR: trailing whitespace
#31722: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:573:
+                }, $

ERROR: trailing whitespace
#31726: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:577:
+                    0x000AFFFF, $

ERROR: trailing whitespace
#31727: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:578:
+                    0x02, $

ERROR: trailing whitespace
#31728: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:579:
+                    LNKE, $

ERROR: trailing whitespace
#31730: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:581:
+                }, $

ERROR: trailing whitespace
#31734: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:585:
+                    0x000AFFFF, $

ERROR: trailing whitespace
#31735: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:586:
+                    0x03, $

ERROR: trailing whitespace
#31736: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:587:
+                    LNKF, $

ERROR: trailing whitespace
#31738: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:589:
+                }, $

ERROR: trailing whitespace
#31742: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:593:
+                    0x000BFFFF, $

ERROR: trailing whitespace
#31743: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:594:
+                    Zero, $

ERROR: trailing whitespace
#31744: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:595:
+                    LNKH, $

ERROR: trailing whitespace
#31746: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:597:
+                }, $

ERROR: trailing whitespace
#31750: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:601:
+                    0x000BFFFF, $

ERROR: trailing whitespace
#31751: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:602:
+                    One, $

ERROR: trailing whitespace
#31752: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:603:
+                    LNKE, $

ERROR: trailing whitespace
#31754: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:605:
+                }, $

ERROR: trailing whitespace
#31758: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:609:
+                    0x000BFFFF, $

ERROR: trailing whitespace
#31759: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:610:
+                    0x02, $

ERROR: trailing whitespace
#31760: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:611:
+                    LNKF, $

ERROR: trailing whitespace
#31762: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:613:
+                }, $

ERROR: trailing whitespace
#31766: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:617:
+                    0x000BFFFF, $

ERROR: trailing whitespace
#31767: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:618:
+                    0x03, $

ERROR: trailing whitespace
#31768: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:619:
+                    LNKG, $

ERROR: trailing whitespace
#31770: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:621:
+                }, $

ERROR: trailing whitespace
#31774: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:625:
+                    0x000CFFFF, $

ERROR: trailing whitespace
#31775: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:626:
+                    Zero, $

ERROR: trailing whitespace
#31776: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:627:
+                    LNKE, $

ERROR: trailing whitespace
#31778: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:629:
+                }, $

ERROR: trailing whitespace
#31782: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:633:
+                    0x000CFFFF, $

ERROR: trailing whitespace
#31783: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:634:
+                    One, $

ERROR: trailing whitespace
#31784: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:635:
+                    LNKF, $

ERROR: trailing whitespace
#31786: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:637:
+                }, $

ERROR: trailing whitespace
#31790: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:641:
+                    0x000CFFFF, $

ERROR: trailing whitespace
#31791: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:642:
+                    0x02, $

ERROR: trailing whitespace
#31792: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:643:
+                    LNKG, $

ERROR: trailing whitespace
#31794: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:645:
+                }, $

ERROR: trailing whitespace
#31798: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:649:
+                    0x000CFFFF, $

ERROR: trailing whitespace
#31799: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:650:
+                    0x03, $

ERROR: trailing whitespace
#31800: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:651:
+                    LNKH, $

ERROR: trailing whitespace
#31802: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:653:
+                }, $

ERROR: trailing whitespace
#31806: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:657:
+                    0x000DFFFF, $

ERROR: trailing whitespace
#31807: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:658:
+                    Zero, $

ERROR: trailing whitespace
#31808: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:659:
+                    LNKF, $

ERROR: trailing whitespace
#31810: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:661:
+                }, $

ERROR: trailing whitespace
#31814: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:665:
+                    0x000DFFFF, $

ERROR: trailing whitespace
#31815: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:666:
+                    One, $

ERROR: trailing whitespace
#31816: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:667:
+                    LNKG, $

ERROR: trailing whitespace
#31818: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:669:
+                }, $

ERROR: trailing whitespace
#31822: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:673:
+                    0x000DFFFF, $

ERROR: trailing whitespace
#31823: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:674:
+                    0x02, $

ERROR: trailing whitespace
#31824: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:675:
+                    LNKH, $

ERROR: trailing whitespace
#31826: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:677:
+                }, $

ERROR: trailing whitespace
#31830: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:681:
+                    0x000DFFFF, $

ERROR: trailing whitespace
#31831: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:682:
+                    0x03, $

ERROR: trailing whitespace
#31832: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:683:
+                    LNKE, $

ERROR: trailing whitespace
#31834: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:685:
+                }, $

ERROR: trailing whitespace
#31838: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:689:
+                    0x000EFFFF, $

ERROR: trailing whitespace
#31839: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:690:
+                    Zero, $

ERROR: trailing whitespace
#31840: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:691:
+                    LNKG, $

ERROR: trailing whitespace
#31842: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:693:
+                }, $

ERROR: trailing whitespace
#31846: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:697:
+                    0x000EFFFF, $

ERROR: trailing whitespace
#31847: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:698:
+                    One, $

ERROR: trailing whitespace
#31848: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:699:
+                    LNKH, $

ERROR: trailing whitespace
#31850: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:701:
+                }, $

ERROR: trailing whitespace
#31854: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:705:
+                    0x000EFFFF, $

ERROR: trailing whitespace
#31855: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:706:
+                    0x02, $

ERROR: trailing whitespace
#31856: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:707:
+                    LNKE, $

ERROR: trailing whitespace
#31858: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:709:
+                }, $

ERROR: trailing whitespace
#31862: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:713:
+                    0x000EFFFF, $

ERROR: trailing whitespace
#31863: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:714:
+                    0x03, $

ERROR: trailing whitespace
#31864: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:715:
+                    LNKF, $

ERROR: trailing whitespace
#31866: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:717:
+                }, $

ERROR: trailing whitespace
#31870: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:721:
+                    0x000FFFFF, $

ERROR: trailing whitespace
#31871: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:722:
+                    Zero, $

ERROR: trailing whitespace
#31872: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:723:
+                    LNKH, $

ERROR: trailing whitespace
#31874: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:725:
+                }, $

ERROR: trailing whitespace
#31878: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:729:
+                    0x000FFFFF, $

ERROR: trailing whitespace
#31879: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:730:
+                    One, $

ERROR: trailing whitespace
#31880: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:731:
+                    LNKE, $

ERROR: trailing whitespace
#31882: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:733:
+                }, $

ERROR: trailing whitespace
#31886: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:737:
+                    0x000FFFFF, $

ERROR: trailing whitespace
#31887: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:738:
+                    0x02, $

ERROR: trailing whitespace
#31888: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:739:
+                    LNKF, $

ERROR: trailing whitespace
#31890: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:741:
+                }, $

ERROR: trailing whitespace
#31894: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:745:
+                    0x000FFFFF, $

ERROR: trailing whitespace
#31895: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:746:
+                    0x03, $

ERROR: trailing whitespace
#31896: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:747:
+                    LNKG, $

ERROR: trailing whitespace
#31898: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:749:
+                }, $

ERROR: trailing whitespace
#31902: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:753:
+                    0x0010FFFF, $

ERROR: trailing whitespace
#31903: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:754:
+                    Zero, $

ERROR: trailing whitespace
#31904: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:755:
+                    LNKE, $

ERROR: trailing whitespace
#31906: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:757:
+                }, $

ERROR: trailing whitespace
#31910: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:761:
+                    0x0010FFFF, $

ERROR: trailing whitespace
#31911: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:762:
+                    One, $

ERROR: trailing whitespace
#31912: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:763:
+                    LNKF, $

ERROR: trailing whitespace
#31914: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:765:
+                }, $

ERROR: trailing whitespace
#31918: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:769:
+                    0x0010FFFF, $

ERROR: trailing whitespace
#31919: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:770:
+                    0x02, $

ERROR: trailing whitespace
#31920: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:771:
+                    LNKG, $

ERROR: trailing whitespace
#31922: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:773:
+                }, $

ERROR: trailing whitespace
#31926: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:777:
+                    0x0010FFFF, $

ERROR: trailing whitespace
#31927: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:778:
+                    0x03, $

ERROR: trailing whitespace
#31928: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:779:
+                    LNKH, $

ERROR: trailing whitespace
#31930: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:781:
+                }, $

ERROR: trailing whitespace
#31934: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:785:
+                    0x0011FFFF, $

ERROR: trailing whitespace
#31935: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:786:
+                    Zero, $

ERROR: trailing whitespace
#31936: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:787:
+                    LNKF, $

ERROR: trailing whitespace
#31938: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:789:
+                }, $

ERROR: trailing whitespace
#31942: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:793:
+                    0x0011FFFF, $

ERROR: trailing whitespace
#31943: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:794:
+                    One, $

ERROR: trailing whitespace
#31944: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:795:
+                    LNKG, $

ERROR: trailing whitespace
#31946: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:797:
+                }, $

ERROR: trailing whitespace
#31950: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:801:
+                    0x0011FFFF, $

ERROR: trailing whitespace
#31951: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:802:
+                    0x02, $

ERROR: trailing whitespace
#31952: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:803:
+                    LNKH, $

ERROR: trailing whitespace
#31954: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:805:
+                }, $

ERROR: trailing whitespace
#31958: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:809:
+                    0x0011FFFF, $

ERROR: trailing whitespace
#31959: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:810:
+                    0x03, $

ERROR: trailing whitespace
#31960: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:811:
+                    LNKE, $

ERROR: trailing whitespace
#31962: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:813:
+                }, $

ERROR: trailing whitespace
#31966: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:817:
+                    0x0012FFFF, $

ERROR: trailing whitespace
#31967: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:818:
+                    Zero, $

ERROR: trailing whitespace
#31968: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:819:
+                    LNKG, $

ERROR: trailing whitespace
#31970: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:821:
+                }, $

ERROR: trailing whitespace
#31974: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:825:
+                    0x0012FFFF, $

ERROR: trailing whitespace
#31975: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:826:
+                    One, $

ERROR: trailing whitespace
#31976: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:827:
+                    LNKH, $

ERROR: trailing whitespace
#31978: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:829:
+                }, $

ERROR: trailing whitespace
#31982: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:833:
+                    0x0012FFFF, $

ERROR: trailing whitespace
#31983: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:834:
+                    0x02, $

ERROR: trailing whitespace
#31984: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:835:
+                    LNKE, $

ERROR: trailing whitespace
#31986: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:837:
+                }, $

ERROR: trailing whitespace
#31990: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:841:
+                    0x0012FFFF, $

ERROR: trailing whitespace
#31991: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:842:
+                    0x03, $

ERROR: trailing whitespace
#31992: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:843:
+                    LNKF, $

ERROR: trailing whitespace
#31994: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:845:
+                }, $

ERROR: trailing whitespace
#31998: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:849:
+                    0x0013FFFF, $

ERROR: trailing whitespace
#31999: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:850:
+                    Zero, $

ERROR: trailing whitespace
#32000: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:851:
+                    LNKH, $

ERROR: trailing whitespace
#32002: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:853:
+                }, $

ERROR: trailing whitespace
#32006: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:857:
+                    0x0013FFFF, $

ERROR: trailing whitespace
#32007: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:858:
+                    One, $

ERROR: trailing whitespace
#32008: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:859:
+                    LNKE, $

ERROR: trailing whitespace
#32010: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:861:
+                }, $

ERROR: trailing whitespace
#32014: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:865:
+                    0x0013FFFF, $

ERROR: trailing whitespace
#32015: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:866:
+                    0x02, $

ERROR: trailing whitespace
#32016: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:867:
+                    LNKF, $

ERROR: trailing whitespace
#32018: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:869:
+                }, $

ERROR: trailing whitespace
#32022: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:873:
+                    0x0013FFFF, $

ERROR: trailing whitespace
#32023: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:874:
+                    0x03, $

ERROR: trailing whitespace
#32024: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:875:
+                    LNKG, $

ERROR: trailing whitespace
#32026: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:877:
+                }, $

ERROR: trailing whitespace
#32030: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:881:
+                    0x0014FFFF, $

ERROR: trailing whitespace
#32031: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:882:
+                    Zero, $

ERROR: trailing whitespace
#32032: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:883:
+                    LNKE, $

ERROR: trailing whitespace
#32034: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:885:
+                }, $

ERROR: trailing whitespace
#32038: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:889:
+                    0x0014FFFF, $

ERROR: trailing whitespace
#32039: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:890:
+                    One, $

ERROR: trailing whitespace
#32040: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:891:
+                    LNKF, $

ERROR: trailing whitespace
#32042: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:893:
+                }, $

ERROR: trailing whitespace
#32046: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:897:
+                    0x0014FFFF, $

ERROR: trailing whitespace
#32047: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:898:
+                    0x02, $

ERROR: trailing whitespace
#32048: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:899:
+                    LNKG, $

ERROR: trailing whitespace
#32050: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:901:
+                }, $

ERROR: trailing whitespace
#32054: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:905:
+                    0x0014FFFF, $

ERROR: trailing whitespace
#32055: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:906:
+                    0x03, $

ERROR: trailing whitespace
#32056: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:907:
+                    LNKH, $

ERROR: trailing whitespace
#32058: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:909:
+                }, $

ERROR: trailing whitespace
#32062: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:913:
+                    0x0015FFFF, $

ERROR: trailing whitespace
#32063: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:914:
+                    Zero, $

ERROR: trailing whitespace
#32064: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:915:
+                    LNKF, $

ERROR: trailing whitespace
#32066: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:917:
+                }, $

ERROR: trailing whitespace
#32070: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:921:
+                    0x0015FFFF, $

ERROR: trailing whitespace
#32071: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:922:
+                    One, $

ERROR: trailing whitespace
#32072: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:923:
+                    LNKG, $

ERROR: trailing whitespace
#32074: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:925:
+                }, $

ERROR: trailing whitespace
#32078: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:929:
+                    0x0015FFFF, $

ERROR: trailing whitespace
#32079: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:930:
+                    0x02, $

ERROR: trailing whitespace
#32080: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:931:
+                    LNKH, $

ERROR: trailing whitespace
#32082: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:933:
+                }, $

ERROR: trailing whitespace
#32086: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:937:
+                    0x0015FFFF, $

ERROR: trailing whitespace
#32087: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:938:
+                    0x03, $

ERROR: trailing whitespace
#32088: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:939:
+                    LNKE, $

ERROR: trailing whitespace
#32090: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:941:
+                }, $

ERROR: trailing whitespace
#32094: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:945:
+                    0x0016FFFF, $

ERROR: trailing whitespace
#32095: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:946:
+                    Zero, $

ERROR: trailing whitespace
#32096: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:947:
+                    LNKG, $

ERROR: trailing whitespace
#32098: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:949:
+                }, $

ERROR: trailing whitespace
#32102: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:953:
+                    0x0016FFFF, $

ERROR: trailing whitespace
#32103: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:954:
+                    One, $

ERROR: trailing whitespace
#32104: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:955:
+                    LNKH, $

ERROR: trailing whitespace
#32106: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:957:
+                }, $

ERROR: trailing whitespace
#32110: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:961:
+                    0x0016FFFF, $

ERROR: trailing whitespace
#32111: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:962:
+                    0x02, $

ERROR: trailing whitespace
#32112: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:963:
+                    LNKE, $

ERROR: trailing whitespace
#32114: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:965:
+                }, $

ERROR: trailing whitespace
#32118: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:969:
+                    0x0016FFFF, $

ERROR: trailing whitespace
#32119: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:970:
+                    0x03, $

ERROR: trailing whitespace
#32120: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:971:
+                    LNKF, $

ERROR: trailing whitespace
#32122: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:973:
+                }, $

ERROR: trailing whitespace
#32126: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:977:
+                    0x0017FFFF, $

ERROR: trailing whitespace
#32127: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:978:
+                    Zero, $

ERROR: trailing whitespace
#32128: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:979:
+                    LNKH, $

ERROR: trailing whitespace
#32130: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:981:
+                }, $

ERROR: trailing whitespace
#32134: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:985:
+                    0x0017FFFF, $

ERROR: trailing whitespace
#32135: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:986:
+                    One, $

ERROR: trailing whitespace
#32136: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:987:
+                    LNKE, $

ERROR: trailing whitespace
#32138: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:989:
+                }, $

ERROR: trailing whitespace
#32142: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:993:
+                    0x0017FFFF, $

ERROR: trailing whitespace
#32143: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:994:
+                    0x02, $

ERROR: trailing whitespace
#32144: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:995:
+                    LNKF, $

ERROR: trailing whitespace
#32146: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:997:
+                }, $

ERROR: trailing whitespace
#32150: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1001:
+                    0x0017FFFF, $

ERROR: trailing whitespace
#32151: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1002:
+                    0x03, $

ERROR: trailing whitespace
#32152: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1003:
+                    LNKG, $

ERROR: trailing whitespace
#32154: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1005:
+                }, $

ERROR: trailing whitespace
#32158: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1009:
+                    0x0018FFFF, $

ERROR: trailing whitespace
#32159: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1010:
+                    Zero, $

ERROR: trailing whitespace
#32160: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1011:
+                    LNKE, $

ERROR: trailing whitespace
#32162: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1013:
+                }, $

ERROR: trailing whitespace
#32166: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1017:
+                    0x0018FFFF, $

ERROR: trailing whitespace
#32167: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1018:
+                    One, $

ERROR: trailing whitespace
#32168: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1019:
+                    LNKF, $

ERROR: trailing whitespace
#32170: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1021:
+                }, $

ERROR: trailing whitespace
#32174: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1025:
+                    0x0018FFFF, $

ERROR: trailing whitespace
#32175: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1026:
+                    0x02, $

ERROR: trailing whitespace
#32176: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1027:
+                    LNKG, $

ERROR: trailing whitespace
#32178: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1029:
+                }, $

ERROR: trailing whitespace
#32182: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1033:
+                    0x0018FFFF, $

ERROR: trailing whitespace
#32183: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1034:
+                    0x03, $

ERROR: trailing whitespace
#32184: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1035:
+                    LNKH, $

ERROR: trailing whitespace
#32186: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1037:
+                }, $

ERROR: trailing whitespace
#32190: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1041:
+                    0x0019FFFF, $

ERROR: trailing whitespace
#32191: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1042:
+                    Zero, $

ERROR: trailing whitespace
#32192: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1043:
+                    LNKA, $

ERROR: trailing whitespace
#32194: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1045:
+                }, $

ERROR: trailing whitespace
#32198: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1049:
+                    0x0019FFFF, $

ERROR: trailing whitespace
#32199: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1050:
+                    One, $

ERROR: trailing whitespace
#32200: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1051:
+                    LNKB, $

ERROR: trailing whitespace
#32202: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1053:
+                }, $

ERROR: trailing whitespace
#32206: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1057:
+                    0x0019FFFF, $

ERROR: trailing whitespace
#32207: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1058:
+                    0x02, $

ERROR: trailing whitespace
#32208: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1059:
+                    LNKC, $

ERROR: trailing whitespace
#32210: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1061:
+                }, $

ERROR: trailing whitespace
#32214: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1065:
+                    0x0019FFFF, $

ERROR: trailing whitespace
#32215: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1066:
+                    0x03, $

ERROR: trailing whitespace
#32216: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1067:
+                    LNKD, $

ERROR: trailing whitespace
#32218: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1069:
+                }, $

ERROR: trailing whitespace
#32222: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1073:
+                    0x001AFFFF, $

ERROR: trailing whitespace
#32223: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1074:
+                    Zero, $

ERROR: trailing whitespace
#32224: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1075:
+                    LNKA, $

ERROR: trailing whitespace
#32226: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1077:
+                }, $

ERROR: trailing whitespace
#32230: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1081:
+                    0x001AFFFF, $

ERROR: trailing whitespace
#32231: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1082:
+                    One, $

ERROR: trailing whitespace
#32232: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1083:
+                    LNKB, $

ERROR: trailing whitespace
#32234: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1085:
+                }, $

ERROR: trailing whitespace
#32238: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1089:
+                    0x001AFFFF, $

ERROR: trailing whitespace
#32239: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1090:
+                    0x02, $

ERROR: trailing whitespace
#32240: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1091:
+                    LNKC, $

ERROR: trailing whitespace
#32242: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1093:
+                }, $

ERROR: trailing whitespace
#32246: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1097:
+                    0x001AFFFF, $

ERROR: trailing whitespace
#32247: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1098:
+                    0x03, $

ERROR: trailing whitespace
#32248: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1099:
+                    LNKD, $

ERROR: trailing whitespace
#32250: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1101:
+                }, $

ERROR: trailing whitespace
#32254: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1105:
+                    0x001BFFFF, $

ERROR: trailing whitespace
#32255: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1106:
+                    Zero, $

ERROR: trailing whitespace
#32256: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1107:
+                    LNKA, $

ERROR: trailing whitespace
#32258: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1109:
+                }, $

ERROR: trailing whitespace
#32262: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1113:
+                    0x001BFFFF, $

ERROR: trailing whitespace
#32263: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1114:
+                    One, $

ERROR: trailing whitespace
#32264: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1115:
+                    LNKB, $

ERROR: trailing whitespace
#32266: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1117:
+                }, $

ERROR: trailing whitespace
#32270: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1121:
+                    0x001BFFFF, $

ERROR: trailing whitespace
#32271: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1122:
+                    0x02, $

ERROR: trailing whitespace
#32272: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1123:
+                    LNKC, $

ERROR: trailing whitespace
#32274: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1125:
+                }, $

ERROR: trailing whitespace
#32278: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1129:
+                    0x001BFFFF, $

ERROR: trailing whitespace
#32279: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1130:
+                    0x03, $

ERROR: trailing whitespace
#32280: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1131:
+                    LNKD, $

ERROR: trailing whitespace
#32282: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1133:
+                }, $

ERROR: trailing whitespace
#32286: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1137:
+                    0x001CFFFF, $

ERROR: trailing whitespace
#32287: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1138:
+                    Zero, $

ERROR: trailing whitespace
#32288: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1139:
+                    LNKA, $

ERROR: trailing whitespace
#32290: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1141:
+                }, $

ERROR: trailing whitespace
#32294: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1145:
+                    0x001CFFFF, $

ERROR: trailing whitespace
#32295: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1146:
+                    One, $

ERROR: trailing whitespace
#32296: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1147:
+                    LNKB, $

ERROR: trailing whitespace
#32298: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1149:
+                }, $

ERROR: trailing whitespace
#32302: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1153:
+                    0x001CFFFF, $

ERROR: trailing whitespace
#32303: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1154:
+                    0x02, $

ERROR: trailing whitespace
#32304: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1155:
+                    LNKC, $

ERROR: trailing whitespace
#32306: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1157:
+                }, $

ERROR: trailing whitespace
#32310: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1161:
+                    0x001CFFFF, $

ERROR: trailing whitespace
#32311: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1162:
+                    0x03, $

ERROR: trailing whitespace
#32312: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1163:
+                    LNKD, $

ERROR: trailing whitespace
#32314: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1165:
+                }, $

ERROR: trailing whitespace
#32318: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1169:
+                    0x001DFFFF, $

ERROR: trailing whitespace
#32319: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1170:
+                    Zero, $

ERROR: trailing whitespace
#32320: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1171:
+                    LNKA, $

ERROR: trailing whitespace
#32322: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1173:
+                }, $

ERROR: trailing whitespace
#32326: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1177:
+                    0x001DFFFF, $

ERROR: trailing whitespace
#32327: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1178:
+                    One, $

ERROR: trailing whitespace
#32328: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1179:
+                    LNKB, $

ERROR: trailing whitespace
#32330: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1181:
+                }, $

ERROR: trailing whitespace
#32334: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1185:
+                    0x001DFFFF, $

ERROR: trailing whitespace
#32335: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1186:
+                    0x02, $

ERROR: trailing whitespace
#32336: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1187:
+                    LNKC, $

ERROR: trailing whitespace
#32338: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1189:
+                }, $

ERROR: trailing whitespace
#32342: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1193:
+                    0x001DFFFF, $

ERROR: trailing whitespace
#32343: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1194:
+                    0x03, $

ERROR: trailing whitespace
#32344: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1195:
+                    LNKD, $

ERROR: trailing whitespace
#32346: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1197:
+                }, $

ERROR: trailing whitespace
#32350: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1201:
+                    0x001EFFFF, $

ERROR: trailing whitespace
#32351: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1202:
+                    Zero, $

ERROR: trailing whitespace
#32352: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1203:
+                    LNKE, $

ERROR: trailing whitespace
#32354: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1205:
+                }, $

ERROR: trailing whitespace
#32358: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1209:
+                    0x001EFFFF, $

ERROR: trailing whitespace
#32359: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1210:
+                    One, $

ERROR: trailing whitespace
#32360: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1211:
+                    LNKF, $

ERROR: trailing whitespace
#32362: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1213:
+                }, $

ERROR: trailing whitespace
#32366: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1217:
+                    0x001EFFFF, $

ERROR: trailing whitespace
#32367: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1218:
+                    0x02, $

ERROR: trailing whitespace
#32368: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1219:
+                    LNKG, $

ERROR: trailing whitespace
#32370: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1221:
+                }, $

ERROR: trailing whitespace
#32374: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1225:
+                    0x001EFFFF, $

ERROR: trailing whitespace
#32375: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1226:
+                    0x03, $

ERROR: trailing whitespace
#32376: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1227:
+                    LNKH, $

ERROR: trailing whitespace
#32378: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1229:
+                }, $

ERROR: trailing whitespace
#32382: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1233:
+                    0x001FFFFF, $

ERROR: trailing whitespace
#32383: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1234:
+                    Zero, $

ERROR: trailing whitespace
#32384: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1235:
+                    LNKA, $

ERROR: trailing whitespace
#32386: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1237:
+                }, $

ERROR: trailing whitespace
#32390: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1241:
+                    0x001FFFFF, $

ERROR: trailing whitespace
#32391: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1242:
+                    One, $

ERROR: trailing whitespace
#32392: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1243:
+                    LNKB, $

ERROR: trailing whitespace
#32394: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1245:
+                }, $

ERROR: trailing whitespace
#32398: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1249:
+                    0x001FFFFF, $

ERROR: trailing whitespace
#32399: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1250:
+                    0x02, $

ERROR: trailing whitespace
#32400: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1251:
+                    LNKC, $

ERROR: trailing whitespace
#32402: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1253:
+                }, $

ERROR: trailing whitespace
#32406: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1257:
+                    0x001FFFFF, $

ERROR: trailing whitespace
#32407: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1258:
+                    0x03, $

ERROR: trailing whitespace
#32408: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1259:
+                    LNKD, $

ERROR: trailing whitespace
#32416: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1267:
+                    0xFFFF, $

ERROR: trailing whitespace
#32417: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1268:
+                    Zero, $

ERROR: trailing whitespace
#32418: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1269:
+                    GSIE, $

ERROR: trailing whitespace
#32420: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1271:
+                }, $

ERROR: trailing whitespace
#32424: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1275:
+                    0xFFFF, $

ERROR: trailing whitespace
#32425: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1276:
+                    One, $

ERROR: trailing whitespace
#32426: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1277:
+                    GSIF, $

ERROR: trailing whitespace
#32428: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1279:
+                }, $

ERROR: trailing whitespace
#32432: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1283:
+                    0xFFFF, $

ERROR: trailing whitespace
#32433: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1284:
+                    0x02, $

ERROR: trailing whitespace
#32434: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1285:
+                    GSIG, $

ERROR: trailing whitespace
#32436: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1287:
+                }, $

ERROR: trailing whitespace
#32440: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1291:
+                    0xFFFF, $

ERROR: trailing whitespace
#32441: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1292:
+                    0x03, $

ERROR: trailing whitespace
#32442: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1293:
+                    GSIH, $

ERROR: trailing whitespace
#32444: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1295:
+                }, $

ERROR: trailing whitespace
#32448: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1299:
+                    0x0001FFFF, $

ERROR: trailing whitespace
#32449: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1300:
+                    Zero, $

ERROR: trailing whitespace
#32450: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1301:
+                    GSIF, $

ERROR: trailing whitespace
#32452: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1303:
+                }, $

ERROR: trailing whitespace
#32456: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1307:
+                    0x0001FFFF, $

ERROR: trailing whitespace
#32457: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1308:
+                    One, $

ERROR: trailing whitespace
#32458: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1309:
+                    GSIG, $

ERROR: trailing whitespace
#32460: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1311:
+                }, $

ERROR: trailing whitespace
#32464: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1315:
+                    0x0001FFFF, $

ERROR: trailing whitespace
#32465: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1316:
+                    0x02, $

ERROR: trailing whitespace
#32466: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1317:
+                    GSIH, $

ERROR: trailing whitespace
#32468: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1319:
+                }, $

ERROR: trailing whitespace
#32472: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1323:
+                    0x0001FFFF, $

ERROR: trailing whitespace
#32473: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1324:
+                    0x03, $

ERROR: trailing whitespace
#32474: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1325:
+                    GSIE, $

ERROR: trailing whitespace
#32476: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1327:
+                }, $

ERROR: trailing whitespace
#32480: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1331:
+                    0x0002FFFF, $

ERROR: trailing whitespace
#32481: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1332:
+                    Zero, $

ERROR: trailing whitespace
#32482: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1333:
+                    GSIG, $

ERROR: trailing whitespace
#32484: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1335:
+                }, $

ERROR: trailing whitespace
#32488: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1339:
+                    0x0002FFFF, $

ERROR: trailing whitespace
#32489: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1340:
+                    One, $

ERROR: trailing whitespace
#32490: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1341:
+                    GSIH, $

ERROR: trailing whitespace
#32492: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1343:
+                }, $

ERROR: trailing whitespace
#32496: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1347:
+                    0x0002FFFF, $

ERROR: trailing whitespace
#32497: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1348:
+                    0x02, $

ERROR: trailing whitespace
#32498: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1349:
+                    GSIE, $

ERROR: trailing whitespace
#32500: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1351:
+                }, $

ERROR: trailing whitespace
#32504: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1355:
+                    0x0002FFFF, $

ERROR: trailing whitespace
#32505: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1356:
+                    0x03, $

ERROR: trailing whitespace
#32506: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1357:
+                    GSIF, $

ERROR: trailing whitespace
#32508: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1359:
+                }, $

ERROR: trailing whitespace
#32512: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1363:
+                    0x0003FFFF, $

ERROR: trailing whitespace
#32513: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1364:
+                    Zero, $

ERROR: trailing whitespace
#32514: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1365:
+                    GSIH, $

ERROR: trailing whitespace
#32516: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1367:
+                }, $

ERROR: trailing whitespace
#32520: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1371:
+                    0x0003FFFF, $

ERROR: trailing whitespace
#32521: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1372:
+                    One, $

ERROR: trailing whitespace
#32522: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1373:
+                    GSIE, $

ERROR: trailing whitespace
#32524: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1375:
+                }, $

ERROR: trailing whitespace
#32528: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1379:
+                    0x0003FFFF, $

ERROR: trailing whitespace
#32529: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1380:
+                    0x02, $

ERROR: trailing whitespace
#32530: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1381:
+                    GSIF, $

ERROR: trailing whitespace
#32532: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1383:
+                }, $

ERROR: trailing whitespace
#32536: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1387:
+                    0x0003FFFF, $

ERROR: trailing whitespace
#32537: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1388:
+                    0x03, $

ERROR: trailing whitespace
#32538: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1389:
+                    GSIG, $

ERROR: trailing whitespace
#32540: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1391:
+                }, $

ERROR: trailing whitespace
#32544: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1395:
+                    0x0004FFFF, $

ERROR: trailing whitespace
#32545: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1396:
+                    Zero, $

ERROR: trailing whitespace
#32546: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1397:
+                    GSIE, $

ERROR: trailing whitespace
#32548: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1399:
+                }, $

ERROR: trailing whitespace
#32552: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1403:
+                    0x0004FFFF, $

ERROR: trailing whitespace
#32553: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1404:
+                    One, $

ERROR: trailing whitespace
#32554: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1405:
+                    GSIF, $

ERROR: trailing whitespace
#32556: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1407:
+                }, $

ERROR: trailing whitespace
#32560: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1411:
+                    0x0004FFFF, $

ERROR: trailing whitespace
#32561: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1412:
+                    0x02, $

ERROR: trailing whitespace
#32562: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1413:
+                    GSIG, $

ERROR: trailing whitespace
#32564: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1415:
+                }, $

ERROR: trailing whitespace
#32568: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1419:
+                    0x0004FFFF, $

ERROR: trailing whitespace
#32569: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1420:
+                    0x03, $

ERROR: trailing whitespace
#32570: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1421:
+                    GSIH, $

ERROR: trailing whitespace
#32572: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1423:
+                }, $

ERROR: trailing whitespace
#32576: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1427:
+                    0x0005FFFF, $

ERROR: trailing whitespace
#32577: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1428:
+                    Zero, $

ERROR: trailing whitespace
#32578: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1429:
+                    GSIF, $

ERROR: trailing whitespace
#32580: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1431:
+                }, $

ERROR: trailing whitespace
#32584: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1435:
+                    0x0005FFFF, $

ERROR: trailing whitespace
#32585: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1436:
+                    One, $

ERROR: trailing whitespace
#32586: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1437:
+                    GSIG, $

ERROR: trailing whitespace
#32588: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1439:
+                }, $

ERROR: trailing whitespace
#32592: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1443:
+                    0x0005FFFF, $

ERROR: trailing whitespace
#32593: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1444:
+                    0x02, $

ERROR: trailing whitespace
#32594: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1445:
+                    GSIH, $

ERROR: trailing whitespace
#32596: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1447:
+                }, $

ERROR: trailing whitespace
#32600: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1451:
+                    0x0005FFFF, $

ERROR: trailing whitespace
#32601: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1452:
+                    0x03, $

ERROR: trailing whitespace
#32602: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1453:
+                    GSIE, $

ERROR: trailing whitespace
#32604: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1455:
+                }, $

ERROR: trailing whitespace
#32608: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1459:
+                    0x0006FFFF, $

ERROR: trailing whitespace
#32609: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1460:
+                    Zero, $

ERROR: trailing whitespace
#32610: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1461:
+                    GSIG, $

ERROR: trailing whitespace
#32612: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1463:
+                }, $

ERROR: trailing whitespace
#32616: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1467:
+                    0x0006FFFF, $

ERROR: trailing whitespace
#32617: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1468:
+                    One, $

ERROR: trailing whitespace
#32618: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1469:
+                    GSIH, $

ERROR: trailing whitespace
#32620: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1471:
+                }, $

ERROR: trailing whitespace
#32624: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1475:
+                    0x0006FFFF, $

ERROR: trailing whitespace
#32625: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1476:
+                    0x02, $

ERROR: trailing whitespace
#32626: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1477:
+                    GSIE, $

ERROR: trailing whitespace
#32628: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1479:
+                }, $

ERROR: trailing whitespace
#32632: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1483:
+                    0x0006FFFF, $

ERROR: trailing whitespace
#32633: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1484:
+                    0x03, $

ERROR: trailing whitespace
#32634: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1485:
+                    GSIF, $

ERROR: trailing whitespace
#32636: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1487:
+                }, $

ERROR: trailing whitespace
#32640: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1491:
+                    0x0007FFFF, $

ERROR: trailing whitespace
#32641: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1492:
+                    Zero, $

ERROR: trailing whitespace
#32642: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1493:
+                    GSIH, $

ERROR: trailing whitespace
#32644: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1495:
+                }, $

ERROR: trailing whitespace
#32648: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1499:
+                    0x0007FFFF, $

ERROR: trailing whitespace
#32649: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1500:
+                    One, $

ERROR: trailing whitespace
#32650: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1501:
+                    GSIE, $

ERROR: trailing whitespace
#32652: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1503:
+                }, $

ERROR: trailing whitespace
#32656: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1507:
+                    0x0007FFFF, $

ERROR: trailing whitespace
#32657: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1508:
+                    0x02, $

ERROR: trailing whitespace
#32658: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1509:
+                    GSIF, $

ERROR: trailing whitespace
#32660: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1511:
+                }, $

ERROR: trailing whitespace
#32664: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1515:
+                    0x0007FFFF, $

ERROR: trailing whitespace
#32665: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1516:
+                    0x03, $

ERROR: trailing whitespace
#32666: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1517:
+                    GSIG, $

ERROR: trailing whitespace
#32668: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1519:
+                }, $

ERROR: trailing whitespace
#32672: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1523:
+                    0x0008FFFF, $

ERROR: trailing whitespace
#32673: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1524:
+                    Zero, $

ERROR: trailing whitespace
#32674: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1525:
+                    GSIE, $

ERROR: trailing whitespace
#32676: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1527:
+                }, $

ERROR: trailing whitespace
#32680: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1531:
+                    0x0008FFFF, $

ERROR: trailing whitespace
#32681: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1532:
+                    One, $

ERROR: trailing whitespace
#32682: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1533:
+                    GSIF, $

ERROR: trailing whitespace
#32684: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1535:
+                }, $

ERROR: trailing whitespace
#32688: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1539:
+                    0x0008FFFF, $

ERROR: trailing whitespace
#32689: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1540:
+                    0x02, $

ERROR: trailing whitespace
#32690: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1541:
+                    GSIG, $

ERROR: trailing whitespace
#32692: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1543:
+                }, $

ERROR: trailing whitespace
#32696: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1547:
+                    0x0008FFFF, $

ERROR: trailing whitespace
#32697: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1548:
+                    0x03, $

ERROR: trailing whitespace
#32698: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1549:
+                    GSIH, $

ERROR: trailing whitespace
#32700: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1551:
+                }, $

ERROR: trailing whitespace
#32704: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1555:
+                    0x0009FFFF, $

ERROR: trailing whitespace
#32705: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1556:
+                    Zero, $

ERROR: trailing whitespace
#32706: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1557:
+                    GSIF, $

ERROR: trailing whitespace
#32708: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1559:
+                }, $

ERROR: trailing whitespace
#32712: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1563:
+                    0x0009FFFF, $

ERROR: trailing whitespace
#32713: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1564:
+                    One, $

ERROR: trailing whitespace
#32714: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1565:
+                    GSIG, $

ERROR: trailing whitespace
#32716: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1567:
+                }, $

ERROR: trailing whitespace
#32720: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1571:
+                    0x0009FFFF, $

ERROR: trailing whitespace
#32721: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1572:
+                    0x02, $

ERROR: trailing whitespace
#32722: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1573:
+                    GSIH, $

ERROR: trailing whitespace
#32724: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1575:
+                }, $

ERROR: trailing whitespace
#32728: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1579:
+                    0x0009FFFF, $

ERROR: trailing whitespace
#32729: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1580:
+                    0x03, $

ERROR: trailing whitespace
#32730: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1581:
+                    GSIE, $

ERROR: trailing whitespace
#32732: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1583:
+                }, $

ERROR: trailing whitespace
#32736: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1587:
+                    0x000AFFFF, $

ERROR: trailing whitespace
#32737: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1588:
+                    Zero, $

ERROR: trailing whitespace
#32738: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1589:
+                    GSIG, $

ERROR: trailing whitespace
#32740: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1591:
+                }, $

ERROR: trailing whitespace
#32744: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1595:
+                    0x000AFFFF, $

ERROR: trailing whitespace
#32745: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1596:
+                    One, $

ERROR: trailing whitespace
#32746: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1597:
+                    GSIH, $

ERROR: trailing whitespace
#32748: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1599:
+                }, $

ERROR: trailing whitespace
#32752: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1603:
+                    0x000AFFFF, $

ERROR: trailing whitespace
#32753: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1604:
+                    0x02, $

ERROR: trailing whitespace
#32754: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1605:
+                    GSIE, $

ERROR: trailing whitespace
#32756: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1607:
+                }, $

ERROR: trailing whitespace
#32760: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1611:
+                    0x000AFFFF, $

ERROR: trailing whitespace
#32761: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1612:
+                    0x03, $

ERROR: trailing whitespace
#32762: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1613:
+                    GSIF, $

ERROR: trailing whitespace
#32764: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1615:
+                }, $

ERROR: trailing whitespace
#32768: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1619:
+                    0x000BFFFF, $

ERROR: trailing whitespace
#32769: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1620:
+                    Zero, $

ERROR: trailing whitespace
#32770: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1621:
+                    GSIH, $

ERROR: trailing whitespace
#32772: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1623:
+                }, $

ERROR: trailing whitespace
#32776: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1627:
+                    0x000BFFFF, $

ERROR: trailing whitespace
#32777: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1628:
+                    One, $

ERROR: trailing whitespace
#32778: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1629:
+                    GSIE, $

ERROR: trailing whitespace
#32780: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1631:
+                }, $

ERROR: trailing whitespace
#32784: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1635:
+                    0x000BFFFF, $

ERROR: trailing whitespace
#32785: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1636:
+                    0x02, $

ERROR: trailing whitespace
#32786: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1637:
+                    GSIF, $

ERROR: trailing whitespace
#32788: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1639:
+                }, $

ERROR: trailing whitespace
#32792: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1643:
+                    0x000BFFFF, $

ERROR: trailing whitespace
#32793: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1644:
+                    0x03, $

ERROR: trailing whitespace
#32794: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1645:
+                    GSIG, $

ERROR: trailing whitespace
#32796: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1647:
+                }, $

ERROR: trailing whitespace
#32800: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1651:
+                    0x000CFFFF, $

ERROR: trailing whitespace
#32801: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1652:
+                    Zero, $

ERROR: trailing whitespace
#32802: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1653:
+                    GSIE, $

ERROR: trailing whitespace
#32804: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1655:
+                }, $

ERROR: trailing whitespace
#32808: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1659:
+                    0x000CFFFF, $

ERROR: trailing whitespace
#32809: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1660:
+                    One, $

ERROR: trailing whitespace
#32810: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1661:
+                    GSIF, $

ERROR: trailing whitespace
#32812: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1663:
+                }, $

ERROR: trailing whitespace
#32816: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1667:
+                    0x000CFFFF, $

ERROR: trailing whitespace
#32817: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1668:
+                    0x02, $

ERROR: trailing whitespace
#32818: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1669:
+                    GSIG, $

ERROR: trailing whitespace
#32820: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1671:
+                }, $

ERROR: trailing whitespace
#32824: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1675:
+                    0x000CFFFF, $

ERROR: trailing whitespace
#32825: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1676:
+                    0x03, $

ERROR: trailing whitespace
#32826: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1677:
+                    GSIH, $

ERROR: trailing whitespace
#32828: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1679:
+                }, $

ERROR: trailing whitespace
#32832: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1683:
+                    0x000DFFFF, $

ERROR: trailing whitespace
#32833: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1684:
+                    Zero, $

ERROR: trailing whitespace
#32834: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1685:
+                    GSIF, $

ERROR: trailing whitespace
#32836: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1687:
+                }, $

ERROR: trailing whitespace
#32840: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1691:
+                    0x000DFFFF, $

ERROR: trailing whitespace
#32841: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1692:
+                    One, $

ERROR: trailing whitespace
#32842: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1693:
+                    GSIG, $

ERROR: trailing whitespace
#32844: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1695:
+                }, $

ERROR: trailing whitespace
#32848: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1699:
+                    0x000DFFFF, $

ERROR: trailing whitespace
#32849: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1700:
+                    0x02, $

ERROR: trailing whitespace
#32850: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1701:
+                    GSIH, $

ERROR: trailing whitespace
#32852: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1703:
+                }, $

ERROR: trailing whitespace
#32856: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1707:
+                    0x000DFFFF, $

ERROR: trailing whitespace
#32857: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1708:
+                    0x03, $

ERROR: trailing whitespace
#32858: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1709:
+                    GSIE, $

ERROR: trailing whitespace
#32860: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1711:
+                }, $

ERROR: trailing whitespace
#32864: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1715:
+                    0x000EFFFF, $

ERROR: trailing whitespace
#32865: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1716:
+                    Zero, $

ERROR: trailing whitespace
#32866: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1717:
+                    GSIG, $

ERROR: trailing whitespace
#32868: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1719:
+                }, $

ERROR: trailing whitespace
#32872: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1723:
+                    0x000EFFFF, $

ERROR: trailing whitespace
#32873: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1724:
+                    One, $

ERROR: trailing whitespace
#32874: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1725:
+                    GSIH, $

ERROR: trailing whitespace
#32876: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1727:
+                }, $

ERROR: trailing whitespace
#32880: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1731:
+                    0x000EFFFF, $

ERROR: trailing whitespace
#32881: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1732:
+                    0x02, $

ERROR: trailing whitespace
#32882: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1733:
+                    GSIE, $

ERROR: trailing whitespace
#32884: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1735:
+                }, $

ERROR: trailing whitespace
#32888: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1739:
+                    0x000EFFFF, $

ERROR: trailing whitespace
#32889: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1740:
+                    0x03, $

ERROR: trailing whitespace
#32890: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1741:
+                    GSIF, $

ERROR: trailing whitespace
#32892: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1743:
+                }, $

ERROR: trailing whitespace
#32896: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1747:
+                    0x000FFFFF, $

ERROR: trailing whitespace
#32897: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1748:
+                    Zero, $

ERROR: trailing whitespace
#32898: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1749:
+                    GSIH, $

ERROR: trailing whitespace
#32900: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1751:
+                }, $

ERROR: trailing whitespace
#32904: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1755:
+                    0x000FFFFF, $

ERROR: trailing whitespace
#32905: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1756:
+                    One, $

ERROR: trailing whitespace
#32906: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1757:
+                    GSIE, $

ERROR: trailing whitespace
#32908: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1759:
+                }, $

ERROR: trailing whitespace
#32912: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1763:
+                    0x000FFFFF, $

ERROR: trailing whitespace
#32913: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1764:
+                    0x02, $

ERROR: trailing whitespace
#32914: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1765:
+                    GSIF, $

ERROR: trailing whitespace
#32916: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1767:
+                }, $

ERROR: trailing whitespace
#32920: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1771:
+                    0x000FFFFF, $

ERROR: trailing whitespace
#32921: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1772:
+                    0x03, $

ERROR: trailing whitespace
#32922: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1773:
+                    GSIG, $

ERROR: trailing whitespace
#32924: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1775:
+                }, $

ERROR: trailing whitespace
#32928: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1779:
+                    0x0010FFFF, $

ERROR: trailing whitespace
#32929: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1780:
+                    Zero, $

ERROR: trailing whitespace
#32930: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1781:
+                    GSIE, $

ERROR: trailing whitespace
#32932: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1783:
+                }, $

ERROR: trailing whitespace
#32936: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1787:
+                    0x0010FFFF, $

ERROR: trailing whitespace
#32937: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1788:
+                    One, $

ERROR: trailing whitespace
#32938: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1789:
+                    GSIF, $

ERROR: trailing whitespace
#32940: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1791:
+                }, $

ERROR: trailing whitespace
#32944: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1795:
+                    0x0010FFFF, $

ERROR: trailing whitespace
#32945: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1796:
+                    0x02, $

ERROR: trailing whitespace
#32946: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1797:
+                    GSIG, $

ERROR: trailing whitespace
#32948: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1799:
+                }, $

ERROR: trailing whitespace
#32952: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1803:
+                    0x0010FFFF, $

ERROR: trailing whitespace
#32953: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1804:
+                    0x03, $

ERROR: trailing whitespace
#32954: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1805:
+                    GSIH, $

ERROR: trailing whitespace
#32956: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1807:
+                }, $

ERROR: trailing whitespace
#32960: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1811:
+                    0x0011FFFF, $

ERROR: trailing whitespace
#32961: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1812:
+                    Zero, $

ERROR: trailing whitespace
#32962: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1813:
+                    GSIF, $

ERROR: trailing whitespace
#32964: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1815:
+                }, $

ERROR: trailing whitespace
#32968: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1819:
+                    0x0011FFFF, $

ERROR: trailing whitespace
#32969: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1820:
+                    One, $

ERROR: trailing whitespace
#32970: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1821:
+                    GSIG, $

ERROR: trailing whitespace
#32972: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1823:
+                }, $

ERROR: trailing whitespace
#32976: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1827:
+                    0x0011FFFF, $

ERROR: trailing whitespace
#32977: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1828:
+                    0x02, $

ERROR: trailing whitespace
#32978: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1829:
+                    GSIH, $

ERROR: trailing whitespace
#32980: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1831:
+                }, $

ERROR: trailing whitespace
#32984: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1835:
+                    0x0011FFFF, $

ERROR: trailing whitespace
#32985: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1836:
+                    0x03, $

ERROR: trailing whitespace
#32986: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1837:
+                    GSIE, $

ERROR: trailing whitespace
#32988: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1839:
+                }, $

ERROR: trailing whitespace
#32992: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1843:
+                    0x0012FFFF, $

ERROR: trailing whitespace
#32993: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1844:
+                    Zero, $

ERROR: trailing whitespace
#32994: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1845:
+                    GSIG, $

ERROR: trailing whitespace
#32996: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1847:
+                }, $

ERROR: trailing whitespace
#33000: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1851:
+                    0x0012FFFF, $

ERROR: trailing whitespace
#33001: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1852:
+                    One, $

ERROR: trailing whitespace
#33002: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1853:
+                    GSIH, $

ERROR: trailing whitespace
#33004: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1855:
+                }, $

ERROR: trailing whitespace
#33008: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1859:
+                    0x0012FFFF, $

ERROR: trailing whitespace
#33009: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1860:
+                    0x02, $

ERROR: trailing whitespace
#33010: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1861:
+                    GSIE, $

ERROR: trailing whitespace
#33012: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1863:
+                }, $

ERROR: trailing whitespace
#33016: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1867:
+                    0x0012FFFF, $

ERROR: trailing whitespace
#33017: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1868:
+                    0x03, $

ERROR: trailing whitespace
#33018: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1869:
+                    GSIF, $

ERROR: trailing whitespace
#33020: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1871:
+                }, $

ERROR: trailing whitespace
#33024: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1875:
+                    0x0013FFFF, $

ERROR: trailing whitespace
#33025: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1876:
+                    Zero, $

ERROR: trailing whitespace
#33026: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1877:
+                    GSIH, $

ERROR: trailing whitespace
#33028: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1879:
+                }, $

ERROR: trailing whitespace
#33032: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1883:
+                    0x0013FFFF, $

ERROR: trailing whitespace
#33033: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1884:
+                    One, $

ERROR: trailing whitespace
#33034: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1885:
+                    GSIE, $

ERROR: trailing whitespace
#33036: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1887:
+                }, $

ERROR: trailing whitespace
#33040: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1891:
+                    0x0013FFFF, $

ERROR: trailing whitespace
#33041: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1892:
+                    0x02, $

ERROR: trailing whitespace
#33042: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1893:
+                    GSIF, $

ERROR: trailing whitespace
#33044: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1895:
+                }, $

ERROR: trailing whitespace
#33048: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1899:
+                    0x0013FFFF, $

ERROR: trailing whitespace
#33049: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1900:
+                    0x03, $

ERROR: trailing whitespace
#33050: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1901:
+                    GSIG, $

ERROR: trailing whitespace
#33052: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1903:
+                }, $

ERROR: trailing whitespace
#33056: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1907:
+                    0x0014FFFF, $

ERROR: trailing whitespace
#33057: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1908:
+                    Zero, $

ERROR: trailing whitespace
#33058: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1909:
+                    GSIE, $

ERROR: trailing whitespace
#33060: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1911:
+                }, $

ERROR: trailing whitespace
#33064: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1915:
+                    0x0014FFFF, $

ERROR: trailing whitespace
#33065: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1916:
+                    One, $

ERROR: trailing whitespace
#33066: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1917:
+                    GSIF, $

ERROR: trailing whitespace
#33068: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1919:
+                }, $

ERROR: trailing whitespace
#33072: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1923:
+                    0x0014FFFF, $

ERROR: trailing whitespace
#33073: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1924:
+                    0x02, $

ERROR: trailing whitespace
#33074: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1925:
+                    GSIG, $

ERROR: trailing whitespace
#33076: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1927:
+                }, $

ERROR: trailing whitespace
#33080: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1931:
+                    0x0014FFFF, $

ERROR: trailing whitespace
#33081: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1932:
+                    0x03, $

ERROR: trailing whitespace
#33082: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1933:
+                    GSIH, $

ERROR: trailing whitespace
#33084: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1935:
+                }, $

ERROR: trailing whitespace
#33088: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1939:
+                    0x0015FFFF, $

ERROR: trailing whitespace
#33089: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1940:
+                    Zero, $

ERROR: trailing whitespace
#33090: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1941:
+                    GSIF, $

ERROR: trailing whitespace
#33092: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1943:
+                }, $

ERROR: trailing whitespace
#33096: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1947:
+                    0x0015FFFF, $

ERROR: trailing whitespace
#33097: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1948:
+                    One, $

ERROR: trailing whitespace
#33098: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1949:
+                    GSIG, $

ERROR: trailing whitespace
#33100: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1951:
+                }, $

ERROR: trailing whitespace
#33104: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1955:
+                    0x0015FFFF, $

ERROR: trailing whitespace
#33105: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1956:
+                    0x02, $

ERROR: trailing whitespace
#33106: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1957:
+                    GSIH, $

ERROR: trailing whitespace
#33108: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1959:
+                }, $

ERROR: trailing whitespace
#33112: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1963:
+                    0x0015FFFF, $

ERROR: trailing whitespace
#33113: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1964:
+                    0x03, $

ERROR: trailing whitespace
#33114: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1965:
+                    GSIE, $

ERROR: trailing whitespace
#33116: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1967:
+                }, $

ERROR: trailing whitespace
#33120: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1971:
+                    0x0016FFFF, $

ERROR: trailing whitespace
#33121: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1972:
+                    Zero, $

ERROR: trailing whitespace
#33122: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1973:
+                    GSIG, $

ERROR: trailing whitespace
#33124: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1975:
+                }, $

ERROR: trailing whitespace
#33128: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1979:
+                    0x0016FFFF, $

ERROR: trailing whitespace
#33129: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1980:
+                    One, $

ERROR: trailing whitespace
#33130: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1981:
+                    GSIH, $

ERROR: trailing whitespace
#33132: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1983:
+                }, $

ERROR: trailing whitespace
#33136: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1987:
+                    0x0016FFFF, $

ERROR: trailing whitespace
#33137: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1988:
+                    0x02, $

ERROR: trailing whitespace
#33138: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1989:
+                    GSIE, $

ERROR: trailing whitespace
#33140: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1991:
+                }, $

ERROR: trailing whitespace
#33144: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1995:
+                    0x0016FFFF, $

ERROR: trailing whitespace
#33145: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1996:
+                    0x03, $

ERROR: trailing whitespace
#33146: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1997:
+                    GSIF, $

ERROR: trailing whitespace
#33148: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:1999:
+                }, $

ERROR: trailing whitespace
#33152: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2003:
+                    0x0017FFFF, $

ERROR: trailing whitespace
#33153: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2004:
+                    Zero, $

ERROR: trailing whitespace
#33154: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2005:
+                    GSIH, $

ERROR: trailing whitespace
#33156: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2007:
+                }, $

ERROR: trailing whitespace
#33160: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2011:
+                    0x0017FFFF, $

ERROR: trailing whitespace
#33161: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2012:
+                    One, $

ERROR: trailing whitespace
#33162: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2013:
+                    GSIE, $

ERROR: trailing whitespace
#33164: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2015:
+                }, $

ERROR: trailing whitespace
#33168: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2019:
+                    0x0017FFFF, $

ERROR: trailing whitespace
#33169: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2020:
+                    0x02, $

ERROR: trailing whitespace
#33170: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2021:
+                    GSIF, $

ERROR: trailing whitespace
#33172: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2023:
+                }, $

ERROR: trailing whitespace
#33176: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2027:
+                    0x0017FFFF, $

ERROR: trailing whitespace
#33177: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2028:
+                    0x03, $

ERROR: trailing whitespace
#33178: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2029:
+                    GSIG, $

ERROR: trailing whitespace
#33180: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2031:
+                }, $

ERROR: trailing whitespace
#33184: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2035:
+                    0x0018FFFF, $

ERROR: trailing whitespace
#33185: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2036:
+                    Zero, $

ERROR: trailing whitespace
#33186: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2037:
+                    GSIE, $

ERROR: trailing whitespace
#33188: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2039:
+                }, $

ERROR: trailing whitespace
#33192: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2043:
+                    0x0018FFFF, $

ERROR: trailing whitespace
#33193: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2044:
+                    One, $

ERROR: trailing whitespace
#33194: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2045:
+                    GSIF, $

ERROR: trailing whitespace
#33196: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2047:
+                }, $

ERROR: trailing whitespace
#33200: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2051:
+                    0x0018FFFF, $

ERROR: trailing whitespace
#33201: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2052:
+                    0x02, $

ERROR: trailing whitespace
#33202: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2053:
+                    GSIG, $

ERROR: trailing whitespace
#33204: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2055:
+                }, $

ERROR: trailing whitespace
#33208: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2059:
+                    0x0018FFFF, $

ERROR: trailing whitespace
#33209: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2060:
+                    0x03, $

ERROR: trailing whitespace
#33210: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2061:
+                    GSIH, $

ERROR: trailing whitespace
#33212: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2063:
+                }, $

ERROR: trailing whitespace
#33216: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2067:
+                    0x0019FFFF, $

ERROR: trailing whitespace
#33217: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2068:
+                    Zero, $

ERROR: trailing whitespace
#33218: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2069:
+                    GSIA, $

ERROR: trailing whitespace
#33220: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2071:
+                }, $

ERROR: trailing whitespace
#33224: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2075:
+                    0x0019FFFF, $

ERROR: trailing whitespace
#33225: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2076:
+                    One, $

ERROR: trailing whitespace
#33226: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2077:
+                    GSIB, $

ERROR: trailing whitespace
#33228: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2079:
+                }, $

ERROR: trailing whitespace
#33232: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2083:
+                    0x0019FFFF, $

ERROR: trailing whitespace
#33233: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2084:
+                    0x02, $

ERROR: trailing whitespace
#33234: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2085:
+                    GSIC, $

ERROR: trailing whitespace
#33236: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2087:
+                }, $

ERROR: trailing whitespace
#33240: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2091:
+                    0x0019FFFF, $

ERROR: trailing whitespace
#33241: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2092:
+                    0x03, $

ERROR: trailing whitespace
#33242: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2093:
+                    GSID, $

ERROR: trailing whitespace
#33244: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2095:
+                }, $

ERROR: trailing whitespace
#33248: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2099:
+                    0x001AFFFF, $

ERROR: trailing whitespace
#33249: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2100:
+                    Zero, $

ERROR: trailing whitespace
#33250: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2101:
+                    GSIA, $

ERROR: trailing whitespace
#33252: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2103:
+                }, $

ERROR: trailing whitespace
#33256: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2107:
+                    0x001AFFFF, $

ERROR: trailing whitespace
#33257: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2108:
+                    One, $

ERROR: trailing whitespace
#33258: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2109:
+                    GSIB, $

ERROR: trailing whitespace
#33260: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2111:
+                }, $

ERROR: trailing whitespace
#33264: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2115:
+                    0x001AFFFF, $

ERROR: trailing whitespace
#33265: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2116:
+                    0x02, $

ERROR: trailing whitespace
#33266: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2117:
+                    GSIC, $

ERROR: trailing whitespace
#33268: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2119:
+                }, $

ERROR: trailing whitespace
#33272: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2123:
+                    0x001AFFFF, $

ERROR: trailing whitespace
#33273: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2124:
+                    0x03, $

ERROR: trailing whitespace
#33274: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2125:
+                    GSID, $

ERROR: trailing whitespace
#33276: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2127:
+                }, $

ERROR: trailing whitespace
#33280: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2131:
+                    0x001BFFFF, $

ERROR: trailing whitespace
#33281: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2132:
+                    Zero, $

ERROR: trailing whitespace
#33282: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2133:
+                    GSIA, $

ERROR: trailing whitespace
#33284: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2135:
+                }, $

ERROR: trailing whitespace
#33288: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2139:
+                    0x001BFFFF, $

ERROR: trailing whitespace
#33289: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2140:
+                    One, $

ERROR: trailing whitespace
#33290: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2141:
+                    GSIB, $

ERROR: trailing whitespace
#33292: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2143:
+                }, $

ERROR: trailing whitespace
#33296: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2147:
+                    0x001BFFFF, $

ERROR: trailing whitespace
#33297: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2148:
+                    0x02, $

ERROR: trailing whitespace
#33298: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2149:
+                    GSIC, $

ERROR: trailing whitespace
#33300: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2151:
+                }, $

ERROR: trailing whitespace
#33304: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2155:
+                    0x001BFFFF, $

ERROR: trailing whitespace
#33305: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2156:
+                    0x03, $

ERROR: trailing whitespace
#33306: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2157:
+                    GSID, $

ERROR: trailing whitespace
#33308: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2159:
+                }, $

ERROR: trailing whitespace
#33312: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2163:
+                    0x001CFFFF, $

ERROR: trailing whitespace
#33313: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2164:
+                    Zero, $

ERROR: trailing whitespace
#33314: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2165:
+                    GSIA, $

ERROR: trailing whitespace
#33316: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2167:
+                }, $

ERROR: trailing whitespace
#33320: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2171:
+                    0x001CFFFF, $

ERROR: trailing whitespace
#33321: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2172:
+                    One, $

ERROR: trailing whitespace
#33322: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2173:
+                    GSIB, $

ERROR: trailing whitespace
#33324: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2175:
+                }, $

ERROR: trailing whitespace
#33328: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2179:
+                    0x001CFFFF, $

ERROR: trailing whitespace
#33329: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2180:
+                    0x02, $

ERROR: trailing whitespace
#33330: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2181:
+                    GSIC, $

ERROR: trailing whitespace
#33332: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2183:
+                }, $

ERROR: trailing whitespace
#33336: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2187:
+                    0x001CFFFF, $

ERROR: trailing whitespace
#33337: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2188:
+                    0x03, $

ERROR: trailing whitespace
#33338: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2189:
+                    GSID, $

ERROR: trailing whitespace
#33340: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2191:
+                }, $

ERROR: trailing whitespace
#33344: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2195:
+                    0x001DFFFF, $

ERROR: trailing whitespace
#33345: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2196:
+                    Zero, $

ERROR: trailing whitespace
#33346: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2197:
+                    GSIA, $

ERROR: trailing whitespace
#33348: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2199:
+                }, $

ERROR: trailing whitespace
#33352: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2203:
+                    0x001DFFFF, $

ERROR: trailing whitespace
#33353: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2204:
+                    One, $

ERROR: trailing whitespace
#33354: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2205:
+                    GSIB, $

ERROR: trailing whitespace
#33356: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2207:
+                }, $

ERROR: trailing whitespace
#33360: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2211:
+                    0x001DFFFF, $

ERROR: trailing whitespace
#33361: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2212:
+                    0x02, $

ERROR: trailing whitespace
#33362: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2213:
+                    GSIC, $

ERROR: trailing whitespace
#33364: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2215:
+                }, $

ERROR: trailing whitespace
#33368: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2219:
+                    0x001DFFFF, $

ERROR: trailing whitespace
#33369: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2220:
+                    0x03, $

ERROR: trailing whitespace
#33370: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2221:
+                    GSID, $

ERROR: trailing whitespace
#33372: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2223:
+                }, $

ERROR: trailing whitespace
#33376: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2227:
+                    0x001EFFFF, $

ERROR: trailing whitespace
#33377: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2228:
+                    Zero, $

ERROR: trailing whitespace
#33378: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2229:
+                    GSIE, $

ERROR: trailing whitespace
#33380: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2231:
+                }, $

ERROR: trailing whitespace
#33384: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2235:
+                    0x001EFFFF, $

ERROR: trailing whitespace
#33385: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2236:
+                    One, $

ERROR: trailing whitespace
#33386: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2237:
+                    GSIF, $

ERROR: trailing whitespace
#33388: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2239:
+                }, $

ERROR: trailing whitespace
#33392: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2243:
+                    0x001EFFFF, $

ERROR: trailing whitespace
#33393: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2244:
+                    0x02, $

ERROR: trailing whitespace
#33394: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2245:
+                    GSIG, $

ERROR: trailing whitespace
#33396: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2247:
+                }, $

ERROR: trailing whitespace
#33400: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2251:
+                    0x001EFFFF, $

ERROR: trailing whitespace
#33401: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2252:
+                    0x03, $

ERROR: trailing whitespace
#33402: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2253:
+                    GSIH, $

ERROR: trailing whitespace
#33404: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2255:
+                }, $

ERROR: trailing whitespace
#33408: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2259:
+                    0x001FFFFF, $

ERROR: trailing whitespace
#33409: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2260:
+                    Zero, $

ERROR: trailing whitespace
#33410: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2261:
+                    GSIA, $

ERROR: trailing whitespace
#33412: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2263:
+                }, $

ERROR: trailing whitespace
#33416: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2267:
+                    0x001FFFFF, $

ERROR: trailing whitespace
#33417: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2268:
+                    One, $

ERROR: trailing whitespace
#33418: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2269:
+                    GSIB, $

ERROR: trailing whitespace
#33420: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2271:
+                }, $

ERROR: trailing whitespace
#33424: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2275:
+                    0x001FFFFF, $

ERROR: trailing whitespace
#33425: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2276:
+                    0x02, $

ERROR: trailing whitespace
#33426: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2277:
+                    GSIC, $

ERROR: trailing whitespace
#33428: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2279:
+                }, $

ERROR: trailing whitespace
#33432: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2283:
+                    0x001FFFFF, $

ERROR: trailing whitespace
#33433: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2284:
+                    0x03, $

ERROR: trailing whitespace
#33434: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2285:
+                    GSID, $

ERROR: trailing whitespace
#33453: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2304:
+            PRQA,   8, $

ERROR: trailing whitespace
#33454: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2305:
+            PRQB,   8, $

ERROR: trailing whitespace
#33455: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2306:
+            PRQC,   8, $

ERROR: trailing whitespace
#33456: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2307:
+            PRQD,   8, $

ERROR: trailing whitespace
#33457: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2308:
+            Offset (0x08), $

ERROR: trailing whitespace
#33458: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2309:
+            PRQE,   8, $

ERROR: trailing whitespace
#33459: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2310:
+            PRQF,   8, $

ERROR: trailing whitespace
#33460: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2311:
+            PRQG,   8, $

ERROR: trailing whitespace
#34012: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2863:
+                Offset (0x04), $

ERROR: trailing whitespace
#34013: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2864:
+                CPEN,   1, $

ERROR: trailing whitespace
#34014: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2865:
+                CINS,   1, $

ERROR: trailing whitespace
#34015: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2866:
+                CRMV,   1, $

ERROR: trailing whitespace
#34016: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2867:
+                CEJ0,   1, $

ERROR: trailing whitespace
#34017: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2868:
+                Offset (0x05), $

ERROR: trailing whitespace
#34023: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2874:
+                CSEL,   32, $

ERROR: trailing whitespace
#34024: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:2875:
+                Offset (0x08), $

ERROR: trailing whitespace
#34240: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:3091:
+            MRBL,   32, $

ERROR: trailing whitespace
#34241: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:3092:
+            MRBH,   32, $

ERROR: trailing whitespace
#34242: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:3093:
+            MRLL,   32, $

ERROR: trailing whitespace
#34243: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:3094:
+            MRLH,   32, $

ERROR: trailing whitespace
#34249: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:3100:
+            Offset (0x14), $

ERROR: trailing whitespace
#34250: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:3101:
+            MES,    1, $

ERROR: trailing whitespace
#34251: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:3102:
+            MINS,   1, $

ERROR: trailing whitespace
#34252: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:3103:
+            MRMV,   1, $

ERROR: trailing whitespace
#34258: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:3109:
+            MSEL,   32, $

ERROR: trailing whitespace
#34259: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:3110:
+            MOEV,   32, $

ERROR: trailing whitespace
#34611: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:3462:
+            One, $

ERROR: trailing whitespace
#34612: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:3463:
+            One, $

ERROR: trailing whitespace
#34613: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:3464:
+            Zero, $

ERROR: trailing whitespace
#34618: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:3469:
+            0x02, $

ERROR: trailing whitespace
#34619: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:3470:
+            0x02, $

ERROR: trailing whitespace
#34620: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:3471:
+            Zero, $

ERROR: trailing whitespace
#34625: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:3476:
+            Zero, $

ERROR: trailing whitespace
#34626: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:3477:
+            Zero, $

ERROR: trailing whitespace
#34627: FILE: tests/data/acpi/q35/DSDT.dimmpxm.dsl:3478:
+            Zero, $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/DSDT.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/DSDT.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#34695: FILE: tests/data/acpi/q35/DSDT.dsl:5:
+ * $

ERROR: trailing whitespace
#34785: FILE: tests/data/acpi/q35/DSDT.dsl:95:
+                VEND,   32, $

ERROR: trailing whitespace
#34929: FILE: tests/data/acpi/q35/DSDT.dsl:239:
+                    0xFFFF, $

ERROR: trailing whitespace
#34930: FILE: tests/data/acpi/q35/DSDT.dsl:240:
+                    Zero, $

ERROR: trailing whitespace
#34931: FILE: tests/data/acpi/q35/DSDT.dsl:241:
+                    LNKE, $

ERROR: trailing whitespace
#34933: FILE: tests/data/acpi/q35/DSDT.dsl:243:
+                }, $

ERROR: trailing whitespace
#34937: FILE: tests/data/acpi/q35/DSDT.dsl:247:
+                    0xFFFF, $

ERROR: trailing whitespace
#34938: FILE: tests/data/acpi/q35/DSDT.dsl:248:
+                    One, $

ERROR: trailing whitespace
#34939: FILE: tests/data/acpi/q35/DSDT.dsl:249:
+                    LNKF, $

ERROR: trailing whitespace
#34941: FILE: tests/data/acpi/q35/DSDT.dsl:251:
+                }, $

ERROR: trailing whitespace
#34945: FILE: tests/data/acpi/q35/DSDT.dsl:255:
+                    0xFFFF, $

ERROR: trailing whitespace
#34946: FILE: tests/data/acpi/q35/DSDT.dsl:256:
+                    0x02, $

ERROR: trailing whitespace
#34947: FILE: tests/data/acpi/q35/DSDT.dsl:257:
+                    LNKG, $

ERROR: trailing whitespace
#34949: FILE: tests/data/acpi/q35/DSDT.dsl:259:
+                }, $

ERROR: trailing whitespace
#34953: FILE: tests/data/acpi/q35/DSDT.dsl:263:
+                    0xFFFF, $

ERROR: trailing whitespace
#34954: FILE: tests/data/acpi/q35/DSDT.dsl:264:
+                    0x03, $

ERROR: trailing whitespace
#34955: FILE: tests/data/acpi/q35/DSDT.dsl:265:
+                    LNKH, $

ERROR: trailing whitespace
#34957: FILE: tests/data/acpi/q35/DSDT.dsl:267:
+                }, $

ERROR: trailing whitespace
#34961: FILE: tests/data/acpi/q35/DSDT.dsl:271:
+                    0x0001FFFF, $

ERROR: trailing whitespace
#34962: FILE: tests/data/acpi/q35/DSDT.dsl:272:
+                    Zero, $

ERROR: trailing whitespace
#34963: FILE: tests/data/acpi/q35/DSDT.dsl:273:
+                    LNKF, $

ERROR: trailing whitespace
#34965: FILE: tests/data/acpi/q35/DSDT.dsl:275:
+                }, $

ERROR: trailing whitespace
#34969: FILE: tests/data/acpi/q35/DSDT.dsl:279:
+                    0x0001FFFF, $

ERROR: trailing whitespace
#34970: FILE: tests/data/acpi/q35/DSDT.dsl:280:
+                    One, $

ERROR: trailing whitespace
#34971: FILE: tests/data/acpi/q35/DSDT.dsl:281:
+                    LNKG, $

ERROR: trailing whitespace
#34973: FILE: tests/data/acpi/q35/DSDT.dsl:283:
+                }, $

ERROR: trailing whitespace
#34977: FILE: tests/data/acpi/q35/DSDT.dsl:287:
+                    0x0001FFFF, $

ERROR: trailing whitespace
#34978: FILE: tests/data/acpi/q35/DSDT.dsl:288:
+                    0x02, $

ERROR: trailing whitespace
#34979: FILE: tests/data/acpi/q35/DSDT.dsl:289:
+                    LNKH, $

ERROR: trailing whitespace
#34981: FILE: tests/data/acpi/q35/DSDT.dsl:291:
+                }, $

ERROR: trailing whitespace
#34985: FILE: tests/data/acpi/q35/DSDT.dsl:295:
+                    0x0001FFFF, $

ERROR: trailing whitespace
#34986: FILE: tests/data/acpi/q35/DSDT.dsl:296:
+                    0x03, $

ERROR: trailing whitespace
#34987: FILE: tests/data/acpi/q35/DSDT.dsl:297:
+                    LNKE, $

ERROR: trailing whitespace
#34989: FILE: tests/data/acpi/q35/DSDT.dsl:299:
+                }, $

ERROR: trailing whitespace
#34993: FILE: tests/data/acpi/q35/DSDT.dsl:303:
+                    0x0002FFFF, $

ERROR: trailing whitespace
#34994: FILE: tests/data/acpi/q35/DSDT.dsl:304:
+                    Zero, $

ERROR: trailing whitespace
#34995: FILE: tests/data/acpi/q35/DSDT.dsl:305:
+                    LNKG, $

ERROR: trailing whitespace
#34997: FILE: tests/data/acpi/q35/DSDT.dsl:307:
+                }, $

ERROR: trailing whitespace
#35001: FILE: tests/data/acpi/q35/DSDT.dsl:311:
+                    0x0002FFFF, $

ERROR: trailing whitespace
#35002: FILE: tests/data/acpi/q35/DSDT.dsl:312:
+                    One, $

ERROR: trailing whitespace
#35003: FILE: tests/data/acpi/q35/DSDT.dsl:313:
+                    LNKH, $

ERROR: trailing whitespace
#35005: FILE: tests/data/acpi/q35/DSDT.dsl:315:
+                }, $

ERROR: trailing whitespace
#35009: FILE: tests/data/acpi/q35/DSDT.dsl:319:
+                    0x0002FFFF, $

ERROR: trailing whitespace
#35010: FILE: tests/data/acpi/q35/DSDT.dsl:320:
+                    0x02, $

ERROR: trailing whitespace
#35011: FILE: tests/data/acpi/q35/DSDT.dsl:321:
+                    LNKE, $

ERROR: trailing whitespace
#35013: FILE: tests/data/acpi/q35/DSDT.dsl:323:
+                }, $

ERROR: trailing whitespace
#35017: FILE: tests/data/acpi/q35/DSDT.dsl:327:
+                    0x0002FFFF, $

ERROR: trailing whitespace
#35018: FILE: tests/data/acpi/q35/DSDT.dsl:328:
+                    0x03, $

ERROR: trailing whitespace
#35019: FILE: tests/data/acpi/q35/DSDT.dsl:329:
+                    LNKF, $

ERROR: trailing whitespace
#35021: FILE: tests/data/acpi/q35/DSDT.dsl:331:
+                }, $

ERROR: trailing whitespace
#35025: FILE: tests/data/acpi/q35/DSDT.dsl:335:
+                    0x0003FFFF, $

ERROR: trailing whitespace
#35026: FILE: tests/data/acpi/q35/DSDT.dsl:336:
+                    Zero, $

ERROR: trailing whitespace
#35027: FILE: tests/data/acpi/q35/DSDT.dsl:337:
+                    LNKH, $

ERROR: trailing whitespace
#35029: FILE: tests/data/acpi/q35/DSDT.dsl:339:
+                }, $

ERROR: trailing whitespace
#35033: FILE: tests/data/acpi/q35/DSDT.dsl:343:
+                    0x0003FFFF, $

ERROR: trailing whitespace
#35034: FILE: tests/data/acpi/q35/DSDT.dsl:344:
+                    One, $

ERROR: trailing whitespace
#35035: FILE: tests/data/acpi/q35/DSDT.dsl:345:
+                    LNKE, $

ERROR: trailing whitespace
#35037: FILE: tests/data/acpi/q35/DSDT.dsl:347:
+                }, $

ERROR: trailing whitespace
#35041: FILE: tests/data/acpi/q35/DSDT.dsl:351:
+                    0x0003FFFF, $

ERROR: trailing whitespace
#35042: FILE: tests/data/acpi/q35/DSDT.dsl:352:
+                    0x02, $

ERROR: trailing whitespace
#35043: FILE: tests/data/acpi/q35/DSDT.dsl:353:
+                    LNKF, $

ERROR: trailing whitespace
#35045: FILE: tests/data/acpi/q35/DSDT.dsl:355:
+                }, $

ERROR: trailing whitespace
#35049: FILE: tests/data/acpi/q35/DSDT.dsl:359:
+                    0x0003FFFF, $

ERROR: trailing whitespace
#35050: FILE: tests/data/acpi/q35/DSDT.dsl:360:
+                    0x03, $

ERROR: trailing whitespace
#35051: FILE: tests/data/acpi/q35/DSDT.dsl:361:
+                    LNKG, $

ERROR: trailing whitespace
#35053: FILE: tests/data/acpi/q35/DSDT.dsl:363:
+                }, $

ERROR: trailing whitespace
#35057: FILE: tests/data/acpi/q35/DSDT.dsl:367:
+                    0x0004FFFF, $

ERROR: trailing whitespace
#35058: FILE: tests/data/acpi/q35/DSDT.dsl:368:
+                    Zero, $

ERROR: trailing whitespace
#35059: FILE: tests/data/acpi/q35/DSDT.dsl:369:
+                    LNKE, $

ERROR: trailing whitespace
#35061: FILE: tests/data/acpi/q35/DSDT.dsl:371:
+                }, $

ERROR: trailing whitespace
#35065: FILE: tests/data/acpi/q35/DSDT.dsl:375:
+                    0x0004FFFF, $

ERROR: trailing whitespace
#35066: FILE: tests/data/acpi/q35/DSDT.dsl:376:
+                    One, $

ERROR: trailing whitespace
#35067: FILE: tests/data/acpi/q35/DSDT.dsl:377:
+                    LNKF, $

ERROR: trailing whitespace
#35069: FILE: tests/data/acpi/q35/DSDT.dsl:379:
+                }, $

ERROR: trailing whitespace
#35073: FILE: tests/data/acpi/q35/DSDT.dsl:383:
+                    0x0004FFFF, $

ERROR: trailing whitespace
#35074: FILE: tests/data/acpi/q35/DSDT.dsl:384:
+                    0x02, $

ERROR: trailing whitespace
#35075: FILE: tests/data/acpi/q35/DSDT.dsl:385:
+                    LNKG, $

ERROR: trailing whitespace
#35077: FILE: tests/data/acpi/q35/DSDT.dsl:387:
+                }, $

ERROR: trailing whitespace
#35081: FILE: tests/data/acpi/q35/DSDT.dsl:391:
+                    0x0004FFFF, $

ERROR: trailing whitespace
#35082: FILE: tests/data/acpi/q35/DSDT.dsl:392:
+                    0x03, $

ERROR: trailing whitespace
#35083: FILE: tests/data/acpi/q35/DSDT.dsl:393:
+                    LNKH, $

ERROR: trailing whitespace
#35085: FILE: tests/data/acpi/q35/DSDT.dsl:395:
+                }, $

ERROR: trailing whitespace
#35089: FILE: tests/data/acpi/q35/DSDT.dsl:399:
+                    0x0005FFFF, $

ERROR: trailing whitespace
#35090: FILE: tests/data/acpi/q35/DSDT.dsl:400:
+                    Zero, $

ERROR: trailing whitespace
#35091: FILE: tests/data/acpi/q35/DSDT.dsl:401:
+                    LNKF, $

ERROR: trailing whitespace
#35093: FILE: tests/data/acpi/q35/DSDT.dsl:403:
+                }, $

ERROR: trailing whitespace
#35097: FILE: tests/data/acpi/q35/DSDT.dsl:407:
+                    0x0005FFFF, $

ERROR: trailing whitespace
#35098: FILE: tests/data/acpi/q35/DSDT.dsl:408:
+                    One, $

ERROR: trailing whitespace
#35099: FILE: tests/data/acpi/q35/DSDT.dsl:409:
+                    LNKG, $

ERROR: trailing whitespace
#35101: FILE: tests/data/acpi/q35/DSDT.dsl:411:
+                }, $

ERROR: trailing whitespace
#35105: FILE: tests/data/acpi/q35/DSDT.dsl:415:
+                    0x0005FFFF, $

ERROR: trailing whitespace
#35106: FILE: tests/data/acpi/q35/DSDT.dsl:416:
+                    0x02, $

ERROR: trailing whitespace
#35107: FILE: tests/data/acpi/q35/DSDT.dsl:417:
+                    LNKH, $

ERROR: trailing whitespace
#35109: FILE: tests/data/acpi/q35/DSDT.dsl:419:
+                }, $

ERROR: trailing whitespace
#35113: FILE: tests/data/acpi/q35/DSDT.dsl:423:
+                    0x0005FFFF, $

ERROR: trailing whitespace
#35114: FILE: tests/data/acpi/q35/DSDT.dsl:424:
+                    0x03, $

ERROR: trailing whitespace
#35115: FILE: tests/data/acpi/q35/DSDT.dsl:425:
+                    LNKE, $

ERROR: trailing whitespace
#35117: FILE: tests/data/acpi/q35/DSDT.dsl:427:
+                }, $

ERROR: trailing whitespace
#35121: FILE: tests/data/acpi/q35/DSDT.dsl:431:
+                    0x0006FFFF, $

ERROR: trailing whitespace
#35122: FILE: tests/data/acpi/q35/DSDT.dsl:432:
+                    Zero, $

ERROR: trailing whitespace
#35123: FILE: tests/data/acpi/q35/DSDT.dsl:433:
+                    LNKG, $

ERROR: trailing whitespace
#35125: FILE: tests/data/acpi/q35/DSDT.dsl:435:
+                }, $

ERROR: trailing whitespace
#35129: FILE: tests/data/acpi/q35/DSDT.dsl:439:
+                    0x0006FFFF, $

ERROR: trailing whitespace
#35130: FILE: tests/data/acpi/q35/DSDT.dsl:440:
+                    One, $

ERROR: trailing whitespace
#35131: FILE: tests/data/acpi/q35/DSDT.dsl:441:
+                    LNKH, $

ERROR: trailing whitespace
#35133: FILE: tests/data/acpi/q35/DSDT.dsl:443:
+                }, $

ERROR: trailing whitespace
#35137: FILE: tests/data/acpi/q35/DSDT.dsl:447:
+                    0x0006FFFF, $

ERROR: trailing whitespace
#35138: FILE: tests/data/acpi/q35/DSDT.dsl:448:
+                    0x02, $

ERROR: trailing whitespace
#35139: FILE: tests/data/acpi/q35/DSDT.dsl:449:
+                    LNKE, $

ERROR: trailing whitespace
#35141: FILE: tests/data/acpi/q35/DSDT.dsl:451:
+                }, $

ERROR: trailing whitespace
#35145: FILE: tests/data/acpi/q35/DSDT.dsl:455:
+                    0x0006FFFF, $

ERROR: trailing whitespace
#35146: FILE: tests/data/acpi/q35/DSDT.dsl:456:
+                    0x03, $

ERROR: trailing whitespace
#35147: FILE: tests/data/acpi/q35/DSDT.dsl:457:
+                    LNKF, $

ERROR: trailing whitespace
#35149: FILE: tests/data/acpi/q35/DSDT.dsl:459:
+                }, $

ERROR: trailing whitespace
#35153: FILE: tests/data/acpi/q35/DSDT.dsl:463:
+                    0x0007FFFF, $

ERROR: trailing whitespace
#35154: FILE: tests/data/acpi/q35/DSDT.dsl:464:
+                    Zero, $

ERROR: trailing whitespace
#35155: FILE: tests/data/acpi/q35/DSDT.dsl:465:
+                    LNKH, $

ERROR: trailing whitespace
#35157: FILE: tests/data/acpi/q35/DSDT.dsl:467:
+                }, $

ERROR: trailing whitespace
#35161: FILE: tests/data/acpi/q35/DSDT.dsl:471:
+                    0x0007FFFF, $

ERROR: trailing whitespace
#35162: FILE: tests/data/acpi/q35/DSDT.dsl:472:
+                    One, $

ERROR: trailing whitespace
#35163: FILE: tests/data/acpi/q35/DSDT.dsl:473:
+                    LNKE, $

ERROR: trailing whitespace
#35165: FILE: tests/data/acpi/q35/DSDT.dsl:475:
+                }, $

ERROR: trailing whitespace
#35169: FILE: tests/data/acpi/q35/DSDT.dsl:479:
+                    0x0007FFFF, $

ERROR: trailing whitespace
#35170: FILE: tests/data/acpi/q35/DSDT.dsl:480:
+                    0x02, $

ERROR: trailing whitespace
#35171: FILE: tests/data/acpi/q35/DSDT.dsl:481:
+                    LNKF, $

ERROR: trailing whitespace
#35173: FILE: tests/data/acpi/q35/DSDT.dsl:483:
+                }, $

ERROR: trailing whitespace
#35177: FILE: tests/data/acpi/q35/DSDT.dsl:487:
+                    0x0007FFFF, $

ERROR: trailing whitespace
#35178: FILE: tests/data/acpi/q35/DSDT.dsl:488:
+                    0x03, $

ERROR: trailing whitespace
#35179: FILE: tests/data/acpi/q35/DSDT.dsl:489:
+                    LNKG, $

ERROR: trailing whitespace
#35181: FILE: tests/data/acpi/q35/DSDT.dsl:491:
+                }, $

ERROR: trailing whitespace
#35185: FILE: tests/data/acpi/q35/DSDT.dsl:495:
+                    0x0008FFFF, $

ERROR: trailing whitespace
#35186: FILE: tests/data/acpi/q35/DSDT.dsl:496:
+                    Zero, $

ERROR: trailing whitespace
#35187: FILE: tests/data/acpi/q35/DSDT.dsl:497:
+                    LNKE, $

ERROR: trailing whitespace
#35189: FILE: tests/data/acpi/q35/DSDT.dsl:499:
+                }, $

ERROR: trailing whitespace
#35193: FILE: tests/data/acpi/q35/DSDT.dsl:503:
+                    0x0008FFFF, $

ERROR: trailing whitespace
#35194: FILE: tests/data/acpi/q35/DSDT.dsl:504:
+                    One, $

ERROR: trailing whitespace
#35195: FILE: tests/data/acpi/q35/DSDT.dsl:505:
+                    LNKF, $

ERROR: trailing whitespace
#35197: FILE: tests/data/acpi/q35/DSDT.dsl:507:
+                }, $

ERROR: trailing whitespace
#35201: FILE: tests/data/acpi/q35/DSDT.dsl:511:
+                    0x0008FFFF, $

ERROR: trailing whitespace
#35202: FILE: tests/data/acpi/q35/DSDT.dsl:512:
+                    0x02, $

ERROR: trailing whitespace
#35203: FILE: tests/data/acpi/q35/DSDT.dsl:513:
+                    LNKG, $

ERROR: trailing whitespace
#35205: FILE: tests/data/acpi/q35/DSDT.dsl:515:
+                }, $

ERROR: trailing whitespace
#35209: FILE: tests/data/acpi/q35/DSDT.dsl:519:
+                    0x0008FFFF, $

ERROR: trailing whitespace
#35210: FILE: tests/data/acpi/q35/DSDT.dsl:520:
+                    0x03, $

ERROR: trailing whitespace
#35211: FILE: tests/data/acpi/q35/DSDT.dsl:521:
+                    LNKH, $

ERROR: trailing whitespace
#35213: FILE: tests/data/acpi/q35/DSDT.dsl:523:
+                }, $

ERROR: trailing whitespace
#35217: FILE: tests/data/acpi/q35/DSDT.dsl:527:
+                    0x0009FFFF, $

ERROR: trailing whitespace
#35218: FILE: tests/data/acpi/q35/DSDT.dsl:528:
+                    Zero, $

ERROR: trailing whitespace
#35219: FILE: tests/data/acpi/q35/DSDT.dsl:529:
+                    LNKF, $

ERROR: trailing whitespace
#35221: FILE: tests/data/acpi/q35/DSDT.dsl:531:
+                }, $

ERROR: trailing whitespace
#35225: FILE: tests/data/acpi/q35/DSDT.dsl:535:
+                    0x0009FFFF, $

ERROR: trailing whitespace
#35226: FILE: tests/data/acpi/q35/DSDT.dsl:536:
+                    One, $

ERROR: trailing whitespace
#35227: FILE: tests/data/acpi/q35/DSDT.dsl:537:
+                    LNKG, $

ERROR: trailing whitespace
#35229: FILE: tests/data/acpi/q35/DSDT.dsl:539:
+                }, $

ERROR: trailing whitespace
#35233: FILE: tests/data/acpi/q35/DSDT.dsl:543:
+                    0x0009FFFF, $

ERROR: trailing whitespace
#35234: FILE: tests/data/acpi/q35/DSDT.dsl:544:
+                    0x02, $

ERROR: trailing whitespace
#35235: FILE: tests/data/acpi/q35/DSDT.dsl:545:
+                    LNKH, $

ERROR: trailing whitespace
#35237: FILE: tests/data/acpi/q35/DSDT.dsl:547:
+                }, $

ERROR: trailing whitespace
#35241: FILE: tests/data/acpi/q35/DSDT.dsl:551:
+                    0x0009FFFF, $

ERROR: trailing whitespace
#35242: FILE: tests/data/acpi/q35/DSDT.dsl:552:
+                    0x03, $

ERROR: trailing whitespace
#35243: FILE: tests/data/acpi/q35/DSDT.dsl:553:
+                    LNKE, $

ERROR: trailing whitespace
#35245: FILE: tests/data/acpi/q35/DSDT.dsl:555:
+                }, $

ERROR: trailing whitespace
#35249: FILE: tests/data/acpi/q35/DSDT.dsl:559:
+                    0x000AFFFF, $

ERROR: trailing whitespace
#35250: FILE: tests/data/acpi/q35/DSDT.dsl:560:
+                    Zero, $

ERROR: trailing whitespace
#35251: FILE: tests/data/acpi/q35/DSDT.dsl:561:
+                    LNKG, $

ERROR: trailing whitespace
#35253: FILE: tests/data/acpi/q35/DSDT.dsl:563:
+                }, $

ERROR: trailing whitespace
#35257: FILE: tests/data/acpi/q35/DSDT.dsl:567:
+                    0x000AFFFF, $

ERROR: trailing whitespace
#35258: FILE: tests/data/acpi/q35/DSDT.dsl:568:
+                    One, $

ERROR: trailing whitespace
#35259: FILE: tests/data/acpi/q35/DSDT.dsl:569:
+                    LNKH, $

ERROR: trailing whitespace
#35261: FILE: tests/data/acpi/q35/DSDT.dsl:571:
+                }, $

ERROR: trailing whitespace
#35265: FILE: tests/data/acpi/q35/DSDT.dsl:575:
+                    0x000AFFFF, $

ERROR: trailing whitespace
#35266: FILE: tests/data/acpi/q35/DSDT.dsl:576:
+                    0x02, $

ERROR: trailing whitespace
#35267: FILE: tests/data/acpi/q35/DSDT.dsl:577:
+                    LNKE, $

ERROR: trailing whitespace
#35269: FILE: tests/data/acpi/q35/DSDT.dsl:579:
+                }, $

ERROR: trailing whitespace
#35273: FILE: tests/data/acpi/q35/DSDT.dsl:583:
+                    0x000AFFFF, $

ERROR: trailing whitespace
#35274: FILE: tests/data/acpi/q35/DSDT.dsl:584:
+                    0x03, $

ERROR: trailing whitespace
#35275: FILE: tests/data/acpi/q35/DSDT.dsl:585:
+                    LNKF, $

ERROR: trailing whitespace
#35277: FILE: tests/data/acpi/q35/DSDT.dsl:587:
+                }, $

ERROR: trailing whitespace
#35281: FILE: tests/data/acpi/q35/DSDT.dsl:591:
+                    0x000BFFFF, $

ERROR: trailing whitespace
#35282: FILE: tests/data/acpi/q35/DSDT.dsl:592:
+                    Zero, $

ERROR: trailing whitespace
#35283: FILE: tests/data/acpi/q35/DSDT.dsl:593:
+                    LNKH, $

ERROR: trailing whitespace
#35285: FILE: tests/data/acpi/q35/DSDT.dsl:595:
+                }, $

ERROR: trailing whitespace
#35289: FILE: tests/data/acpi/q35/DSDT.dsl:599:
+                    0x000BFFFF, $

ERROR: trailing whitespace
#35290: FILE: tests/data/acpi/q35/DSDT.dsl:600:
+                    One, $

ERROR: trailing whitespace
#35291: FILE: tests/data/acpi/q35/DSDT.dsl:601:
+                    LNKE, $

ERROR: trailing whitespace
#35293: FILE: tests/data/acpi/q35/DSDT.dsl:603:
+                }, $

ERROR: trailing whitespace
#35297: FILE: tests/data/acpi/q35/DSDT.dsl:607:
+                    0x000BFFFF, $

ERROR: trailing whitespace
#35298: FILE: tests/data/acpi/q35/DSDT.dsl:608:
+                    0x02, $

ERROR: trailing whitespace
#35299: FILE: tests/data/acpi/q35/DSDT.dsl:609:
+                    LNKF, $

ERROR: trailing whitespace
#35301: FILE: tests/data/acpi/q35/DSDT.dsl:611:
+                }, $

ERROR: trailing whitespace
#35305: FILE: tests/data/acpi/q35/DSDT.dsl:615:
+                    0x000BFFFF, $

ERROR: trailing whitespace
#35306: FILE: tests/data/acpi/q35/DSDT.dsl:616:
+                    0x03, $

ERROR: trailing whitespace
#35307: FILE: tests/data/acpi/q35/DSDT.dsl:617:
+                    LNKG, $

ERROR: trailing whitespace
#35309: FILE: tests/data/acpi/q35/DSDT.dsl:619:
+                }, $

ERROR: trailing whitespace
#35313: FILE: tests/data/acpi/q35/DSDT.dsl:623:
+                    0x000CFFFF, $

ERROR: trailing whitespace
#35314: FILE: tests/data/acpi/q35/DSDT.dsl:624:
+                    Zero, $

ERROR: trailing whitespace
#35315: FILE: tests/data/acpi/q35/DSDT.dsl:625:
+                    LNKE, $

ERROR: trailing whitespace
#35317: FILE: tests/data/acpi/q35/DSDT.dsl:627:
+                }, $

ERROR: trailing whitespace
#35321: FILE: tests/data/acpi/q35/DSDT.dsl:631:
+                    0x000CFFFF, $

ERROR: trailing whitespace
#35322: FILE: tests/data/acpi/q35/DSDT.dsl:632:
+                    One, $

ERROR: trailing whitespace
#35323: FILE: tests/data/acpi/q35/DSDT.dsl:633:
+                    LNKF, $

ERROR: trailing whitespace
#35325: FILE: tests/data/acpi/q35/DSDT.dsl:635:
+                }, $

ERROR: trailing whitespace
#35329: FILE: tests/data/acpi/q35/DSDT.dsl:639:
+                    0x000CFFFF, $

ERROR: trailing whitespace
#35330: FILE: tests/data/acpi/q35/DSDT.dsl:640:
+                    0x02, $

ERROR: trailing whitespace
#35331: FILE: tests/data/acpi/q35/DSDT.dsl:641:
+                    LNKG, $

ERROR: trailing whitespace
#35333: FILE: tests/data/acpi/q35/DSDT.dsl:643:
+                }, $

ERROR: trailing whitespace
#35337: FILE: tests/data/acpi/q35/DSDT.dsl:647:
+                    0x000CFFFF, $

ERROR: trailing whitespace
#35338: FILE: tests/data/acpi/q35/DSDT.dsl:648:
+                    0x03, $

ERROR: trailing whitespace
#35339: FILE: tests/data/acpi/q35/DSDT.dsl:649:
+                    LNKH, $

ERROR: trailing whitespace
#35341: FILE: tests/data/acpi/q35/DSDT.dsl:651:
+                }, $

ERROR: trailing whitespace
#35345: FILE: tests/data/acpi/q35/DSDT.dsl:655:
+                    0x000DFFFF, $

ERROR: trailing whitespace
#35346: FILE: tests/data/acpi/q35/DSDT.dsl:656:
+                    Zero, $

ERROR: trailing whitespace
#35347: FILE: tests/data/acpi/q35/DSDT.dsl:657:
+                    LNKF, $

ERROR: trailing whitespace
#35349: FILE: tests/data/acpi/q35/DSDT.dsl:659:
+                }, $

ERROR: trailing whitespace
#35353: FILE: tests/data/acpi/q35/DSDT.dsl:663:
+                    0x000DFFFF, $

ERROR: trailing whitespace
#35354: FILE: tests/data/acpi/q35/DSDT.dsl:664:
+                    One, $

ERROR: trailing whitespace
#35355: FILE: tests/data/acpi/q35/DSDT.dsl:665:
+                    LNKG, $

ERROR: trailing whitespace
#35357: FILE: tests/data/acpi/q35/DSDT.dsl:667:
+                }, $

ERROR: trailing whitespace
#35361: FILE: tests/data/acpi/q35/DSDT.dsl:671:
+                    0x000DFFFF, $

ERROR: trailing whitespace
#35362: FILE: tests/data/acpi/q35/DSDT.dsl:672:
+                    0x02, $

ERROR: trailing whitespace
#35363: FILE: tests/data/acpi/q35/DSDT.dsl:673:
+                    LNKH, $

ERROR: trailing whitespace
#35365: FILE: tests/data/acpi/q35/DSDT.dsl:675:
+                }, $

ERROR: trailing whitespace
#35369: FILE: tests/data/acpi/q35/DSDT.dsl:679:
+                    0x000DFFFF, $

ERROR: trailing whitespace
#35370: FILE: tests/data/acpi/q35/DSDT.dsl:680:
+                    0x03, $

ERROR: trailing whitespace
#35371: FILE: tests/data/acpi/q35/DSDT.dsl:681:
+                    LNKE, $

ERROR: trailing whitespace
#35373: FILE: tests/data/acpi/q35/DSDT.dsl:683:
+                }, $

ERROR: trailing whitespace
#35377: FILE: tests/data/acpi/q35/DSDT.dsl:687:
+                    0x000EFFFF, $

ERROR: trailing whitespace
#35378: FILE: tests/data/acpi/q35/DSDT.dsl:688:
+                    Zero, $

ERROR: trailing whitespace
#35379: FILE: tests/data/acpi/q35/DSDT.dsl:689:
+                    LNKG, $

ERROR: trailing whitespace
#35381: FILE: tests/data/acpi/q35/DSDT.dsl:691:
+                }, $

ERROR: trailing whitespace
#35385: FILE: tests/data/acpi/q35/DSDT.dsl:695:
+                    0x000EFFFF, $

ERROR: trailing whitespace
#35386: FILE: tests/data/acpi/q35/DSDT.dsl:696:
+                    One, $

ERROR: trailing whitespace
#35387: FILE: tests/data/acpi/q35/DSDT.dsl:697:
+                    LNKH, $

ERROR: trailing whitespace
#35389: FILE: tests/data/acpi/q35/DSDT.dsl:699:
+                }, $

ERROR: trailing whitespace
#35393: FILE: tests/data/acpi/q35/DSDT.dsl:703:
+                    0x000EFFFF, $

ERROR: trailing whitespace
#35394: FILE: tests/data/acpi/q35/DSDT.dsl:704:
+                    0x02, $

ERROR: trailing whitespace
#35395: FILE: tests/data/acpi/q35/DSDT.dsl:705:
+                    LNKE, $

ERROR: trailing whitespace
#35397: FILE: tests/data/acpi/q35/DSDT.dsl:707:
+                }, $

ERROR: trailing whitespace
#35401: FILE: tests/data/acpi/q35/DSDT.dsl:711:
+                    0x000EFFFF, $

ERROR: trailing whitespace
#35402: FILE: tests/data/acpi/q35/DSDT.dsl:712:
+                    0x03, $

ERROR: trailing whitespace
#35403: FILE: tests/data/acpi/q35/DSDT.dsl:713:
+                    LNKF, $

ERROR: trailing whitespace
#35405: FILE: tests/data/acpi/q35/DSDT.dsl:715:
+                }, $

ERROR: trailing whitespace
#35409: FILE: tests/data/acpi/q35/DSDT.dsl:719:
+                    0x000FFFFF, $

ERROR: trailing whitespace
#35410: FILE: tests/data/acpi/q35/DSDT.dsl:720:
+                    Zero, $

ERROR: trailing whitespace
#35411: FILE: tests/data/acpi/q35/DSDT.dsl:721:
+                    LNKH, $

ERROR: trailing whitespace
#35413: FILE: tests/data/acpi/q35/DSDT.dsl:723:
+                }, $

ERROR: trailing whitespace
#35417: FILE: tests/data/acpi/q35/DSDT.dsl:727:
+                    0x000FFFFF, $

ERROR: trailing whitespace
#35418: FILE: tests/data/acpi/q35/DSDT.dsl:728:
+                    One, $

ERROR: trailing whitespace
#35419: FILE: tests/data/acpi/q35/DSDT.dsl:729:
+                    LNKE, $

ERROR: trailing whitespace
#35421: FILE: tests/data/acpi/q35/DSDT.dsl:731:
+                }, $

ERROR: trailing whitespace
#35425: FILE: tests/data/acpi/q35/DSDT.dsl:735:
+                    0x000FFFFF, $

ERROR: trailing whitespace
#35426: FILE: tests/data/acpi/q35/DSDT.dsl:736:
+                    0x02, $

ERROR: trailing whitespace
#35427: FILE: tests/data/acpi/q35/DSDT.dsl:737:
+                    LNKF, $

ERROR: trailing whitespace
#35429: FILE: tests/data/acpi/q35/DSDT.dsl:739:
+                }, $

ERROR: trailing whitespace
#35433: FILE: tests/data/acpi/q35/DSDT.dsl:743:
+                    0x000FFFFF, $

ERROR: trailing whitespace
#35434: FILE: tests/data/acpi/q35/DSDT.dsl:744:
+                    0x03, $

ERROR: trailing whitespace
#35435: FILE: tests/data/acpi/q35/DSDT.dsl:745:
+                    LNKG, $

ERROR: trailing whitespace
#35437: FILE: tests/data/acpi/q35/DSDT.dsl:747:
+                }, $

ERROR: trailing whitespace
#35441: FILE: tests/data/acpi/q35/DSDT.dsl:751:
+                    0x0010FFFF, $

ERROR: trailing whitespace
#35442: FILE: tests/data/acpi/q35/DSDT.dsl:752:
+                    Zero, $

ERROR: trailing whitespace
#35443: FILE: tests/data/acpi/q35/DSDT.dsl:753:
+                    LNKE, $

ERROR: trailing whitespace
#35445: FILE: tests/data/acpi/q35/DSDT.dsl:755:
+                }, $

ERROR: trailing whitespace
#35449: FILE: tests/data/acpi/q35/DSDT.dsl:759:
+                    0x0010FFFF, $

ERROR: trailing whitespace
#35450: FILE: tests/data/acpi/q35/DSDT.dsl:760:
+                    One, $

ERROR: trailing whitespace
#35451: FILE: tests/data/acpi/q35/DSDT.dsl:761:
+                    LNKF, $

ERROR: trailing whitespace
#35453: FILE: tests/data/acpi/q35/DSDT.dsl:763:
+                }, $

ERROR: trailing whitespace
#35457: FILE: tests/data/acpi/q35/DSDT.dsl:767:
+                    0x0010FFFF, $

ERROR: trailing whitespace
#35458: FILE: tests/data/acpi/q35/DSDT.dsl:768:
+                    0x02, $

ERROR: trailing whitespace
#35459: FILE: tests/data/acpi/q35/DSDT.dsl:769:
+                    LNKG, $

ERROR: trailing whitespace
#35461: FILE: tests/data/acpi/q35/DSDT.dsl:771:
+                }, $

ERROR: trailing whitespace
#35465: FILE: tests/data/acpi/q35/DSDT.dsl:775:
+                    0x0010FFFF, $

ERROR: trailing whitespace
#35466: FILE: tests/data/acpi/q35/DSDT.dsl:776:
+                    0x03, $

ERROR: trailing whitespace
#35467: FILE: tests/data/acpi/q35/DSDT.dsl:777:
+                    LNKH, $

ERROR: trailing whitespace
#35469: FILE: tests/data/acpi/q35/DSDT.dsl:779:
+                }, $

ERROR: trailing whitespace
#35473: FILE: tests/data/acpi/q35/DSDT.dsl:783:
+                    0x0011FFFF, $

ERROR: trailing whitespace
#35474: FILE: tests/data/acpi/q35/DSDT.dsl:784:
+                    Zero, $

ERROR: trailing whitespace
#35475: FILE: tests/data/acpi/q35/DSDT.dsl:785:
+                    LNKF, $

ERROR: trailing whitespace
#35477: FILE: tests/data/acpi/q35/DSDT.dsl:787:
+                }, $

ERROR: trailing whitespace
#35481: FILE: tests/data/acpi/q35/DSDT.dsl:791:
+                    0x0011FFFF, $

ERROR: trailing whitespace
#35482: FILE: tests/data/acpi/q35/DSDT.dsl:792:
+                    One, $

ERROR: trailing whitespace
#35483: FILE: tests/data/acpi/q35/DSDT.dsl:793:
+                    LNKG, $

ERROR: trailing whitespace
#35485: FILE: tests/data/acpi/q35/DSDT.dsl:795:
+                }, $

ERROR: trailing whitespace
#35489: FILE: tests/data/acpi/q35/DSDT.dsl:799:
+                    0x0011FFFF, $

ERROR: trailing whitespace
#35490: FILE: tests/data/acpi/q35/DSDT.dsl:800:
+                    0x02, $

ERROR: trailing whitespace
#35491: FILE: tests/data/acpi/q35/DSDT.dsl:801:
+                    LNKH, $

ERROR: trailing whitespace
#35493: FILE: tests/data/acpi/q35/DSDT.dsl:803:
+                }, $

ERROR: trailing whitespace
#35497: FILE: tests/data/acpi/q35/DSDT.dsl:807:
+                    0x0011FFFF, $

ERROR: trailing whitespace
#35498: FILE: tests/data/acpi/q35/DSDT.dsl:808:
+                    0x03, $

ERROR: trailing whitespace
#35499: FILE: tests/data/acpi/q35/DSDT.dsl:809:
+                    LNKE, $

ERROR: trailing whitespace
#35501: FILE: tests/data/acpi/q35/DSDT.dsl:811:
+                }, $

ERROR: trailing whitespace
#35505: FILE: tests/data/acpi/q35/DSDT.dsl:815:
+                    0x0012FFFF, $

ERROR: trailing whitespace
#35506: FILE: tests/data/acpi/q35/DSDT.dsl:816:
+                    Zero, $

ERROR: trailing whitespace
#35507: FILE: tests/data/acpi/q35/DSDT.dsl:817:
+                    LNKG, $

ERROR: trailing whitespace
#35509: FILE: tests/data/acpi/q35/DSDT.dsl:819:
+                }, $

ERROR: trailing whitespace
#35513: FILE: tests/data/acpi/q35/DSDT.dsl:823:
+                    0x0012FFFF, $

ERROR: trailing whitespace
#35514: FILE: tests/data/acpi/q35/DSDT.dsl:824:
+                    One, $

ERROR: trailing whitespace
#35515: FILE: tests/data/acpi/q35/DSDT.dsl:825:
+                    LNKH, $

ERROR: trailing whitespace
#35517: FILE: tests/data/acpi/q35/DSDT.dsl:827:
+                }, $

ERROR: trailing whitespace
#35521: FILE: tests/data/acpi/q35/DSDT.dsl:831:
+                    0x0012FFFF, $

ERROR: trailing whitespace
#35522: FILE: tests/data/acpi/q35/DSDT.dsl:832:
+                    0x02, $

ERROR: trailing whitespace
#35523: FILE: tests/data/acpi/q35/DSDT.dsl:833:
+                    LNKE, $

ERROR: trailing whitespace
#35525: FILE: tests/data/acpi/q35/DSDT.dsl:835:
+                }, $

ERROR: trailing whitespace
#35529: FILE: tests/data/acpi/q35/DSDT.dsl:839:
+                    0x0012FFFF, $

ERROR: trailing whitespace
#35530: FILE: tests/data/acpi/q35/DSDT.dsl:840:
+                    0x03, $

ERROR: trailing whitespace
#35531: FILE: tests/data/acpi/q35/DSDT.dsl:841:
+                    LNKF, $

ERROR: trailing whitespace
#35533: FILE: tests/data/acpi/q35/DSDT.dsl:843:
+                }, $

ERROR: trailing whitespace
#35537: FILE: tests/data/acpi/q35/DSDT.dsl:847:
+                    0x0013FFFF, $

ERROR: trailing whitespace
#35538: FILE: tests/data/acpi/q35/DSDT.dsl:848:
+                    Zero, $

ERROR: trailing whitespace
#35539: FILE: tests/data/acpi/q35/DSDT.dsl:849:
+                    LNKH, $

ERROR: trailing whitespace
#35541: FILE: tests/data/acpi/q35/DSDT.dsl:851:
+                }, $

ERROR: trailing whitespace
#35545: FILE: tests/data/acpi/q35/DSDT.dsl:855:
+                    0x0013FFFF, $

ERROR: trailing whitespace
#35546: FILE: tests/data/acpi/q35/DSDT.dsl:856:
+                    One, $

ERROR: trailing whitespace
#35547: FILE: tests/data/acpi/q35/DSDT.dsl:857:
+                    LNKE, $

ERROR: trailing whitespace
#35549: FILE: tests/data/acpi/q35/DSDT.dsl:859:
+                }, $

ERROR: trailing whitespace
#35553: FILE: tests/data/acpi/q35/DSDT.dsl:863:
+                    0x0013FFFF, $

ERROR: trailing whitespace
#35554: FILE: tests/data/acpi/q35/DSDT.dsl:864:
+                    0x02, $

ERROR: trailing whitespace
#35555: FILE: tests/data/acpi/q35/DSDT.dsl:865:
+                    LNKF, $

ERROR: trailing whitespace
#35557: FILE: tests/data/acpi/q35/DSDT.dsl:867:
+                }, $

ERROR: trailing whitespace
#35561: FILE: tests/data/acpi/q35/DSDT.dsl:871:
+                    0x0013FFFF, $

ERROR: trailing whitespace
#35562: FILE: tests/data/acpi/q35/DSDT.dsl:872:
+                    0x03, $

ERROR: trailing whitespace
#35563: FILE: tests/data/acpi/q35/DSDT.dsl:873:
+                    LNKG, $

ERROR: trailing whitespace
#35565: FILE: tests/data/acpi/q35/DSDT.dsl:875:
+                }, $

ERROR: trailing whitespace
#35569: FILE: tests/data/acpi/q35/DSDT.dsl:879:
+                    0x0014FFFF, $

ERROR: trailing whitespace
#35570: FILE: tests/data/acpi/q35/DSDT.dsl:880:
+                    Zero, $

ERROR: trailing whitespace
#35571: FILE: tests/data/acpi/q35/DSDT.dsl:881:
+                    LNKE, $

ERROR: trailing whitespace
#35573: FILE: tests/data/acpi/q35/DSDT.dsl:883:
+                }, $

ERROR: trailing whitespace
#35577: FILE: tests/data/acpi/q35/DSDT.dsl:887:
+                    0x0014FFFF, $

ERROR: trailing whitespace
#35578: FILE: tests/data/acpi/q35/DSDT.dsl:888:
+                    One, $

ERROR: trailing whitespace
#35579: FILE: tests/data/acpi/q35/DSDT.dsl:889:
+                    LNKF, $

ERROR: trailing whitespace
#35581: FILE: tests/data/acpi/q35/DSDT.dsl:891:
+                }, $

ERROR: trailing whitespace
#35585: FILE: tests/data/acpi/q35/DSDT.dsl:895:
+                    0x0014FFFF, $

ERROR: trailing whitespace
#35586: FILE: tests/data/acpi/q35/DSDT.dsl:896:
+                    0x02, $

ERROR: trailing whitespace
#35587: FILE: tests/data/acpi/q35/DSDT.dsl:897:
+                    LNKG, $

ERROR: trailing whitespace
#35589: FILE: tests/data/acpi/q35/DSDT.dsl:899:
+                }, $

ERROR: trailing whitespace
#35593: FILE: tests/data/acpi/q35/DSDT.dsl:903:
+                    0x0014FFFF, $

ERROR: trailing whitespace
#35594: FILE: tests/data/acpi/q35/DSDT.dsl:904:
+                    0x03, $

ERROR: trailing whitespace
#35595: FILE: tests/data/acpi/q35/DSDT.dsl:905:
+                    LNKH, $

ERROR: trailing whitespace
#35597: FILE: tests/data/acpi/q35/DSDT.dsl:907:
+                }, $

ERROR: trailing whitespace
#35601: FILE: tests/data/acpi/q35/DSDT.dsl:911:
+                    0x0015FFFF, $

ERROR: trailing whitespace
#35602: FILE: tests/data/acpi/q35/DSDT.dsl:912:
+                    Zero, $

ERROR: trailing whitespace
#35603: FILE: tests/data/acpi/q35/DSDT.dsl:913:
+                    LNKF, $

ERROR: trailing whitespace
#35605: FILE: tests/data/acpi/q35/DSDT.dsl:915:
+                }, $

ERROR: trailing whitespace
#35609: FILE: tests/data/acpi/q35/DSDT.dsl:919:
+                    0x0015FFFF, $

ERROR: trailing whitespace
#35610: FILE: tests/data/acpi/q35/DSDT.dsl:920:
+                    One, $

ERROR: trailing whitespace
#35611: FILE: tests/data/acpi/q35/DSDT.dsl:921:
+                    LNKG, $

ERROR: trailing whitespace
#35613: FILE: tests/data/acpi/q35/DSDT.dsl:923:
+                }, $

ERROR: trailing whitespace
#35617: FILE: tests/data/acpi/q35/DSDT.dsl:927:
+                    0x0015FFFF, $

ERROR: trailing whitespace
#35618: FILE: tests/data/acpi/q35/DSDT.dsl:928:
+                    0x02, $

ERROR: trailing whitespace
#35619: FILE: tests/data/acpi/q35/DSDT.dsl:929:
+                    LNKH, $

ERROR: trailing whitespace
#35621: FILE: tests/data/acpi/q35/DSDT.dsl:931:
+                }, $

ERROR: trailing whitespace
#35625: FILE: tests/data/acpi/q35/DSDT.dsl:935:
+                    0x0015FFFF, $

ERROR: trailing whitespace
#35626: FILE: tests/data/acpi/q35/DSDT.dsl:936:
+                    0x03, $

ERROR: trailing whitespace
#35627: FILE: tests/data/acpi/q35/DSDT.dsl:937:
+                    LNKE, $

ERROR: trailing whitespace
#35629: FILE: tests/data/acpi/q35/DSDT.dsl:939:
+                }, $

ERROR: trailing whitespace
#35633: FILE: tests/data/acpi/q35/DSDT.dsl:943:
+                    0x0016FFFF, $

ERROR: trailing whitespace
#35634: FILE: tests/data/acpi/q35/DSDT.dsl:944:
+                    Zero, $

ERROR: trailing whitespace
#35635: FILE: tests/data/acpi/q35/DSDT.dsl:945:
+                    LNKG, $

ERROR: trailing whitespace
#35637: FILE: tests/data/acpi/q35/DSDT.dsl:947:
+                }, $

ERROR: trailing whitespace
#35641: FILE: tests/data/acpi/q35/DSDT.dsl:951:
+                    0x0016FFFF, $

ERROR: trailing whitespace
#35642: FILE: tests/data/acpi/q35/DSDT.dsl:952:
+                    One, $

ERROR: trailing whitespace
#35643: FILE: tests/data/acpi/q35/DSDT.dsl:953:
+                    LNKH, $

ERROR: trailing whitespace
#35645: FILE: tests/data/acpi/q35/DSDT.dsl:955:
+                }, $

ERROR: trailing whitespace
#35649: FILE: tests/data/acpi/q35/DSDT.dsl:959:
+                    0x0016FFFF, $

ERROR: trailing whitespace
#35650: FILE: tests/data/acpi/q35/DSDT.dsl:960:
+                    0x02, $

ERROR: trailing whitespace
#35651: FILE: tests/data/acpi/q35/DSDT.dsl:961:
+                    LNKE, $

ERROR: trailing whitespace
#35653: FILE: tests/data/acpi/q35/DSDT.dsl:963:
+                }, $

ERROR: trailing whitespace
#35657: FILE: tests/data/acpi/q35/DSDT.dsl:967:
+                    0x0016FFFF, $

ERROR: trailing whitespace
#35658: FILE: tests/data/acpi/q35/DSDT.dsl:968:
+                    0x03, $

ERROR: trailing whitespace
#35659: FILE: tests/data/acpi/q35/DSDT.dsl:969:
+                    LNKF, $

ERROR: trailing whitespace
#35661: FILE: tests/data/acpi/q35/DSDT.dsl:971:
+                }, $

ERROR: trailing whitespace
#35665: FILE: tests/data/acpi/q35/DSDT.dsl:975:
+                    0x0017FFFF, $

ERROR: trailing whitespace
#35666: FILE: tests/data/acpi/q35/DSDT.dsl:976:
+                    Zero, $

ERROR: trailing whitespace
#35667: FILE: tests/data/acpi/q35/DSDT.dsl:977:
+                    LNKH, $

ERROR: trailing whitespace
#35669: FILE: tests/data/acpi/q35/DSDT.dsl:979:
+                }, $

ERROR: trailing whitespace
#35673: FILE: tests/data/acpi/q35/DSDT.dsl:983:
+                    0x0017FFFF, $

ERROR: trailing whitespace
#35674: FILE: tests/data/acpi/q35/DSDT.dsl:984:
+                    One, $

ERROR: trailing whitespace
#35675: FILE: tests/data/acpi/q35/DSDT.dsl:985:
+                    LNKE, $

ERROR: trailing whitespace
#35677: FILE: tests/data/acpi/q35/DSDT.dsl:987:
+                }, $

ERROR: trailing whitespace
#35681: FILE: tests/data/acpi/q35/DSDT.dsl:991:
+                    0x0017FFFF, $

ERROR: trailing whitespace
#35682: FILE: tests/data/acpi/q35/DSDT.dsl:992:
+                    0x02, $

ERROR: trailing whitespace
#35683: FILE: tests/data/acpi/q35/DSDT.dsl:993:
+                    LNKF, $

ERROR: trailing whitespace
#35685: FILE: tests/data/acpi/q35/DSDT.dsl:995:
+                }, $

ERROR: trailing whitespace
#35689: FILE: tests/data/acpi/q35/DSDT.dsl:999:
+                    0x0017FFFF, $

ERROR: trailing whitespace
#35690: FILE: tests/data/acpi/q35/DSDT.dsl:1000:
+                    0x03, $

ERROR: trailing whitespace
#35691: FILE: tests/data/acpi/q35/DSDT.dsl:1001:
+                    LNKG, $

ERROR: trailing whitespace
#35693: FILE: tests/data/acpi/q35/DSDT.dsl:1003:
+                }, $

ERROR: trailing whitespace
#35697: FILE: tests/data/acpi/q35/DSDT.dsl:1007:
+                    0x0018FFFF, $

ERROR: trailing whitespace
#35698: FILE: tests/data/acpi/q35/DSDT.dsl:1008:
+                    Zero, $

ERROR: trailing whitespace
#35699: FILE: tests/data/acpi/q35/DSDT.dsl:1009:
+                    LNKE, $

ERROR: trailing whitespace
#35701: FILE: tests/data/acpi/q35/DSDT.dsl:1011:
+                }, $

ERROR: trailing whitespace
#35705: FILE: tests/data/acpi/q35/DSDT.dsl:1015:
+                    0x0018FFFF, $

ERROR: trailing whitespace
#35706: FILE: tests/data/acpi/q35/DSDT.dsl:1016:
+                    One, $

ERROR: trailing whitespace
#35707: FILE: tests/data/acpi/q35/DSDT.dsl:1017:
+                    LNKF, $

ERROR: trailing whitespace
#35709: FILE: tests/data/acpi/q35/DSDT.dsl:1019:
+                }, $

ERROR: trailing whitespace
#35713: FILE: tests/data/acpi/q35/DSDT.dsl:1023:
+                    0x0018FFFF, $

ERROR: trailing whitespace
#35714: FILE: tests/data/acpi/q35/DSDT.dsl:1024:
+                    0x02, $

ERROR: trailing whitespace
#35715: FILE: tests/data/acpi/q35/DSDT.dsl:1025:
+                    LNKG, $

ERROR: trailing whitespace
#35717: FILE: tests/data/acpi/q35/DSDT.dsl:1027:
+                }, $

ERROR: trailing whitespace
#35721: FILE: tests/data/acpi/q35/DSDT.dsl:1031:
+                    0x0018FFFF, $

ERROR: trailing whitespace
#35722: FILE: tests/data/acpi/q35/DSDT.dsl:1032:
+                    0x03, $

ERROR: trailing whitespace
#35723: FILE: tests/data/acpi/q35/DSDT.dsl:1033:
+                    LNKH, $

ERROR: trailing whitespace
#35725: FILE: tests/data/acpi/q35/DSDT.dsl:1035:
+                }, $

ERROR: trailing whitespace
#35729: FILE: tests/data/acpi/q35/DSDT.dsl:1039:
+                    0x0019FFFF, $

ERROR: trailing whitespace
#35730: FILE: tests/data/acpi/q35/DSDT.dsl:1040:
+                    Zero, $

ERROR: trailing whitespace
#35731: FILE: tests/data/acpi/q35/DSDT.dsl:1041:
+                    LNKA, $

ERROR: trailing whitespace
#35733: FILE: tests/data/acpi/q35/DSDT.dsl:1043:
+                }, $

ERROR: trailing whitespace
#35737: FILE: tests/data/acpi/q35/DSDT.dsl:1047:
+                    0x0019FFFF, $

ERROR: trailing whitespace
#35738: FILE: tests/data/acpi/q35/DSDT.dsl:1048:
+                    One, $

ERROR: trailing whitespace
#35739: FILE: tests/data/acpi/q35/DSDT.dsl:1049:
+                    LNKB, $

ERROR: trailing whitespace
#35741: FILE: tests/data/acpi/q35/DSDT.dsl:1051:
+                }, $

ERROR: trailing whitespace
#35745: FILE: tests/data/acpi/q35/DSDT.dsl:1055:
+                    0x0019FFFF, $

ERROR: trailing whitespace
#35746: FILE: tests/data/acpi/q35/DSDT.dsl:1056:
+                    0x02, $

ERROR: trailing whitespace
#35747: FILE: tests/data/acpi/q35/DSDT.dsl:1057:
+                    LNKC, $

ERROR: trailing whitespace
#35749: FILE: tests/data/acpi/q35/DSDT.dsl:1059:
+                }, $

ERROR: trailing whitespace
#35753: FILE: tests/data/acpi/q35/DSDT.dsl:1063:
+                    0x0019FFFF, $

ERROR: trailing whitespace
#35754: FILE: tests/data/acpi/q35/DSDT.dsl:1064:
+                    0x03, $

ERROR: trailing whitespace
#35755: FILE: tests/data/acpi/q35/DSDT.dsl:1065:
+                    LNKD, $

ERROR: trailing whitespace
#35757: FILE: tests/data/acpi/q35/DSDT.dsl:1067:
+                }, $

ERROR: trailing whitespace
#35761: FILE: tests/data/acpi/q35/DSDT.dsl:1071:
+                    0x001AFFFF, $

ERROR: trailing whitespace
#35762: FILE: tests/data/acpi/q35/DSDT.dsl:1072:
+                    Zero, $

ERROR: trailing whitespace
#35763: FILE: tests/data/acpi/q35/DSDT.dsl:1073:
+                    LNKA, $

ERROR: trailing whitespace
#35765: FILE: tests/data/acpi/q35/DSDT.dsl:1075:
+                }, $

ERROR: trailing whitespace
#35769: FILE: tests/data/acpi/q35/DSDT.dsl:1079:
+                    0x001AFFFF, $

ERROR: trailing whitespace
#35770: FILE: tests/data/acpi/q35/DSDT.dsl:1080:
+                    One, $

ERROR: trailing whitespace
#35771: FILE: tests/data/acpi/q35/DSDT.dsl:1081:
+                    LNKB, $

ERROR: trailing whitespace
#35773: FILE: tests/data/acpi/q35/DSDT.dsl:1083:
+                }, $

ERROR: trailing whitespace
#35777: FILE: tests/data/acpi/q35/DSDT.dsl:1087:
+                    0x001AFFFF, $

ERROR: trailing whitespace
#35778: FILE: tests/data/acpi/q35/DSDT.dsl:1088:
+                    0x02, $

ERROR: trailing whitespace
#35779: FILE: tests/data/acpi/q35/DSDT.dsl:1089:
+                    LNKC, $

ERROR: trailing whitespace
#35781: FILE: tests/data/acpi/q35/DSDT.dsl:1091:
+                }, $

ERROR: trailing whitespace
#35785: FILE: tests/data/acpi/q35/DSDT.dsl:1095:
+                    0x001AFFFF, $

ERROR: trailing whitespace
#35786: FILE: tests/data/acpi/q35/DSDT.dsl:1096:
+                    0x03, $

ERROR: trailing whitespace
#35787: FILE: tests/data/acpi/q35/DSDT.dsl:1097:
+                    LNKD, $

ERROR: trailing whitespace
#35789: FILE: tests/data/acpi/q35/DSDT.dsl:1099:
+                }, $

ERROR: trailing whitespace
#35793: FILE: tests/data/acpi/q35/DSDT.dsl:1103:
+                    0x001BFFFF, $

ERROR: trailing whitespace
#35794: FILE: tests/data/acpi/q35/DSDT.dsl:1104:
+                    Zero, $

ERROR: trailing whitespace
#35795: FILE: tests/data/acpi/q35/DSDT.dsl:1105:
+                    LNKA, $

ERROR: trailing whitespace
#35797: FILE: tests/data/acpi/q35/DSDT.dsl:1107:
+                }, $

ERROR: trailing whitespace
#35801: FILE: tests/data/acpi/q35/DSDT.dsl:1111:
+                    0x001BFFFF, $

ERROR: trailing whitespace
#35802: FILE: tests/data/acpi/q35/DSDT.dsl:1112:
+                    One, $

ERROR: trailing whitespace
#35803: FILE: tests/data/acpi/q35/DSDT.dsl:1113:
+                    LNKB, $

ERROR: trailing whitespace
#35805: FILE: tests/data/acpi/q35/DSDT.dsl:1115:
+                }, $

ERROR: trailing whitespace
#35809: FILE: tests/data/acpi/q35/DSDT.dsl:1119:
+                    0x001BFFFF, $

ERROR: trailing whitespace
#35810: FILE: tests/data/acpi/q35/DSDT.dsl:1120:
+                    0x02, $

ERROR: trailing whitespace
#35811: FILE: tests/data/acpi/q35/DSDT.dsl:1121:
+                    LNKC, $

ERROR: trailing whitespace
#35813: FILE: tests/data/acpi/q35/DSDT.dsl:1123:
+                }, $

ERROR: trailing whitespace
#35817: FILE: tests/data/acpi/q35/DSDT.dsl:1127:
+                    0x001BFFFF, $

ERROR: trailing whitespace
#35818: FILE: tests/data/acpi/q35/DSDT.dsl:1128:
+                    0x03, $

ERROR: trailing whitespace
#35819: FILE: tests/data/acpi/q35/DSDT.dsl:1129:
+                    LNKD, $

ERROR: trailing whitespace
#35821: FILE: tests/data/acpi/q35/DSDT.dsl:1131:
+                }, $

ERROR: trailing whitespace
#35825: FILE: tests/data/acpi/q35/DSDT.dsl:1135:
+                    0x001CFFFF, $

ERROR: trailing whitespace
#35826: FILE: tests/data/acpi/q35/DSDT.dsl:1136:
+                    Zero, $

ERROR: trailing whitespace
#35827: FILE: tests/data/acpi/q35/DSDT.dsl:1137:
+                    LNKA, $

ERROR: trailing whitespace
#35829: FILE: tests/data/acpi/q35/DSDT.dsl:1139:
+                }, $

ERROR: trailing whitespace
#35833: FILE: tests/data/acpi/q35/DSDT.dsl:1143:
+                    0x001CFFFF, $

ERROR: trailing whitespace
#35834: FILE: tests/data/acpi/q35/DSDT.dsl:1144:
+                    One, $

ERROR: trailing whitespace
#35835: FILE: tests/data/acpi/q35/DSDT.dsl:1145:
+                    LNKB, $

ERROR: trailing whitespace
#35837: FILE: tests/data/acpi/q35/DSDT.dsl:1147:
+                }, $

ERROR: trailing whitespace
#35841: FILE: tests/data/acpi/q35/DSDT.dsl:1151:
+                    0x001CFFFF, $

ERROR: trailing whitespace
#35842: FILE: tests/data/acpi/q35/DSDT.dsl:1152:
+                    0x02, $

ERROR: trailing whitespace
#35843: FILE: tests/data/acpi/q35/DSDT.dsl:1153:
+                    LNKC, $

ERROR: trailing whitespace
#35845: FILE: tests/data/acpi/q35/DSDT.dsl:1155:
+                }, $

ERROR: trailing whitespace
#35849: FILE: tests/data/acpi/q35/DSDT.dsl:1159:
+                    0x001CFFFF, $

ERROR: trailing whitespace
#35850: FILE: tests/data/acpi/q35/DSDT.dsl:1160:
+                    0x03, $

ERROR: trailing whitespace
#35851: FILE: tests/data/acpi/q35/DSDT.dsl:1161:
+                    LNKD, $

ERROR: trailing whitespace
#35853: FILE: tests/data/acpi/q35/DSDT.dsl:1163:
+                }, $

ERROR: trailing whitespace
#35857: FILE: tests/data/acpi/q35/DSDT.dsl:1167:
+                    0x001DFFFF, $

ERROR: trailing whitespace
#35858: FILE: tests/data/acpi/q35/DSDT.dsl:1168:
+                    Zero, $

ERROR: trailing whitespace
#35859: FILE: tests/data/acpi/q35/DSDT.dsl:1169:
+                    LNKA, $

ERROR: trailing whitespace
#35861: FILE: tests/data/acpi/q35/DSDT.dsl:1171:
+                }, $

ERROR: trailing whitespace
#35865: FILE: tests/data/acpi/q35/DSDT.dsl:1175:
+                    0x001DFFFF, $

ERROR: trailing whitespace
#35866: FILE: tests/data/acpi/q35/DSDT.dsl:1176:
+                    One, $

ERROR: trailing whitespace
#35867: FILE: tests/data/acpi/q35/DSDT.dsl:1177:
+                    LNKB, $

ERROR: trailing whitespace
#35869: FILE: tests/data/acpi/q35/DSDT.dsl:1179:
+                }, $

ERROR: trailing whitespace
#35873: FILE: tests/data/acpi/q35/DSDT.dsl:1183:
+                    0x001DFFFF, $

ERROR: trailing whitespace
#35874: FILE: tests/data/acpi/q35/DSDT.dsl:1184:
+                    0x02, $

ERROR: trailing whitespace
#35875: FILE: tests/data/acpi/q35/DSDT.dsl:1185:
+                    LNKC, $

ERROR: trailing whitespace
#35877: FILE: tests/data/acpi/q35/DSDT.dsl:1187:
+                }, $

ERROR: trailing whitespace
#35881: FILE: tests/data/acpi/q35/DSDT.dsl:1191:
+                    0x001DFFFF, $

ERROR: trailing whitespace
#35882: FILE: tests/data/acpi/q35/DSDT.dsl:1192:
+                    0x03, $

ERROR: trailing whitespace
#35883: FILE: tests/data/acpi/q35/DSDT.dsl:1193:
+                    LNKD, $

ERROR: trailing whitespace
#35885: FILE: tests/data/acpi/q35/DSDT.dsl:1195:
+                }, $

ERROR: trailing whitespace
#35889: FILE: tests/data/acpi/q35/DSDT.dsl:1199:
+                    0x001EFFFF, $

ERROR: trailing whitespace
#35890: FILE: tests/data/acpi/q35/DSDT.dsl:1200:
+                    Zero, $

ERROR: trailing whitespace
#35891: FILE: tests/data/acpi/q35/DSDT.dsl:1201:
+                    LNKE, $

ERROR: trailing whitespace
#35893: FILE: tests/data/acpi/q35/DSDT.dsl:1203:
+                }, $

ERROR: trailing whitespace
#35897: FILE: tests/data/acpi/q35/DSDT.dsl:1207:
+                    0x001EFFFF, $

ERROR: trailing whitespace
#35898: FILE: tests/data/acpi/q35/DSDT.dsl:1208:
+                    One, $

ERROR: trailing whitespace
#35899: FILE: tests/data/acpi/q35/DSDT.dsl:1209:
+                    LNKF, $

ERROR: trailing whitespace
#35901: FILE: tests/data/acpi/q35/DSDT.dsl:1211:
+                }, $

ERROR: trailing whitespace
#35905: FILE: tests/data/acpi/q35/DSDT.dsl:1215:
+                    0x001EFFFF, $

ERROR: trailing whitespace
#35906: FILE: tests/data/acpi/q35/DSDT.dsl:1216:
+                    0x02, $

ERROR: trailing whitespace
#35907: FILE: tests/data/acpi/q35/DSDT.dsl:1217:
+                    LNKG, $

ERROR: trailing whitespace
#35909: FILE: tests/data/acpi/q35/DSDT.dsl:1219:
+                }, $

ERROR: trailing whitespace
#35913: FILE: tests/data/acpi/q35/DSDT.dsl:1223:
+                    0x001EFFFF, $

ERROR: trailing whitespace
#35914: FILE: tests/data/acpi/q35/DSDT.dsl:1224:
+                    0x03, $

ERROR: trailing whitespace
#35915: FILE: tests/data/acpi/q35/DSDT.dsl:1225:
+                    LNKH, $

ERROR: trailing whitespace
#35917: FILE: tests/data/acpi/q35/DSDT.dsl:1227:
+                }, $

ERROR: trailing whitespace
#35921: FILE: tests/data/acpi/q35/DSDT.dsl:1231:
+                    0x001FFFFF, $

ERROR: trailing whitespace
#35922: FILE: tests/data/acpi/q35/DSDT.dsl:1232:
+                    Zero, $

ERROR: trailing whitespace
#35923: FILE: tests/data/acpi/q35/DSDT.dsl:1233:
+                    LNKA, $

ERROR: trailing whitespace
#35925: FILE: tests/data/acpi/q35/DSDT.dsl:1235:
+                }, $

ERROR: trailing whitespace
#35929: FILE: tests/data/acpi/q35/DSDT.dsl:1239:
+                    0x001FFFFF, $

ERROR: trailing whitespace
#35930: FILE: tests/data/acpi/q35/DSDT.dsl:1240:
+                    One, $

ERROR: trailing whitespace
#35931: FILE: tests/data/acpi/q35/DSDT.dsl:1241:
+                    LNKB, $

ERROR: trailing whitespace
#35933: FILE: tests/data/acpi/q35/DSDT.dsl:1243:
+                }, $

ERROR: trailing whitespace
#35937: FILE: tests/data/acpi/q35/DSDT.dsl:1247:
+                    0x001FFFFF, $

ERROR: trailing whitespace
#35938: FILE: tests/data/acpi/q35/DSDT.dsl:1248:
+                    0x02, $

ERROR: trailing whitespace
#35939: FILE: tests/data/acpi/q35/DSDT.dsl:1249:
+                    LNKC, $

ERROR: trailing whitespace
#35941: FILE: tests/data/acpi/q35/DSDT.dsl:1251:
+                }, $

ERROR: trailing whitespace
#35945: FILE: tests/data/acpi/q35/DSDT.dsl:1255:
+                    0x001FFFFF, $

ERROR: trailing whitespace
#35946: FILE: tests/data/acpi/q35/DSDT.dsl:1256:
+                    0x03, $

ERROR: trailing whitespace
#35947: FILE: tests/data/acpi/q35/DSDT.dsl:1257:
+                    LNKD, $

ERROR: trailing whitespace
#35955: FILE: tests/data/acpi/q35/DSDT.dsl:1265:
+                    0xFFFF, $

ERROR: trailing whitespace
#35956: FILE: tests/data/acpi/q35/DSDT.dsl:1266:
+                    Zero, $

ERROR: trailing whitespace
#35957: FILE: tests/data/acpi/q35/DSDT.dsl:1267:
+                    GSIE, $

ERROR: trailing whitespace
#35959: FILE: tests/data/acpi/q35/DSDT.dsl:1269:
+                }, $

ERROR: trailing whitespace
#35963: FILE: tests/data/acpi/q35/DSDT.dsl:1273:
+                    0xFFFF, $

ERROR: trailing whitespace
#35964: FILE: tests/data/acpi/q35/DSDT.dsl:1274:
+                    One, $

ERROR: trailing whitespace
#35965: FILE: tests/data/acpi/q35/DSDT.dsl:1275:
+                    GSIF, $

ERROR: trailing whitespace
#35967: FILE: tests/data/acpi/q35/DSDT.dsl:1277:
+                }, $

ERROR: trailing whitespace
#35971: FILE: tests/data/acpi/q35/DSDT.dsl:1281:
+                    0xFFFF, $

ERROR: trailing whitespace
#35972: FILE: tests/data/acpi/q35/DSDT.dsl:1282:
+                    0x02, $

ERROR: trailing whitespace
#35973: FILE: tests/data/acpi/q35/DSDT.dsl:1283:
+                    GSIG, $

ERROR: trailing whitespace
#35975: FILE: tests/data/acpi/q35/DSDT.dsl:1285:
+                }, $

ERROR: trailing whitespace
#35979: FILE: tests/data/acpi/q35/DSDT.dsl:1289:
+                    0xFFFF, $

ERROR: trailing whitespace
#35980: FILE: tests/data/acpi/q35/DSDT.dsl:1290:
+                    0x03, $

ERROR: trailing whitespace
#35981: FILE: tests/data/acpi/q35/DSDT.dsl:1291:
+                    GSIH, $

ERROR: trailing whitespace
#35983: FILE: tests/data/acpi/q35/DSDT.dsl:1293:
+                }, $

ERROR: trailing whitespace
#35987: FILE: tests/data/acpi/q35/DSDT.dsl:1297:
+                    0x0001FFFF, $

ERROR: trailing whitespace
#35988: FILE: tests/data/acpi/q35/DSDT.dsl:1298:
+                    Zero, $

ERROR: trailing whitespace
#35989: FILE: tests/data/acpi/q35/DSDT.dsl:1299:
+                    GSIF, $

ERROR: trailing whitespace
#35991: FILE: tests/data/acpi/q35/DSDT.dsl:1301:
+                }, $

ERROR: trailing whitespace
#35995: FILE: tests/data/acpi/q35/DSDT.dsl:1305:
+                    0x0001FFFF, $

ERROR: trailing whitespace
#35996: FILE: tests/data/acpi/q35/DSDT.dsl:1306:
+                    One, $

ERROR: trailing whitespace
#35997: FILE: tests/data/acpi/q35/DSDT.dsl:1307:
+                    GSIG, $

ERROR: trailing whitespace
#35999: FILE: tests/data/acpi/q35/DSDT.dsl:1309:
+                }, $

ERROR: trailing whitespace
#36003: FILE: tests/data/acpi/q35/DSDT.dsl:1313:
+                    0x0001FFFF, $

ERROR: trailing whitespace
#36004: FILE: tests/data/acpi/q35/DSDT.dsl:1314:
+                    0x02, $

ERROR: trailing whitespace
#36005: FILE: tests/data/acpi/q35/DSDT.dsl:1315:
+                    GSIH, $

ERROR: trailing whitespace
#36007: FILE: tests/data/acpi/q35/DSDT.dsl:1317:
+                }, $

ERROR: trailing whitespace
#36011: FILE: tests/data/acpi/q35/DSDT.dsl:1321:
+                    0x0001FFFF, $

ERROR: trailing whitespace
#36012: FILE: tests/data/acpi/q35/DSDT.dsl:1322:
+                    0x03, $

ERROR: trailing whitespace
#36013: FILE: tests/data/acpi/q35/DSDT.dsl:1323:
+                    GSIE, $

ERROR: trailing whitespace
#36015: FILE: tests/data/acpi/q35/DSDT.dsl:1325:
+                }, $

ERROR: trailing whitespace
#36019: FILE: tests/data/acpi/q35/DSDT.dsl:1329:
+                    0x0002FFFF, $

ERROR: trailing whitespace
#36020: FILE: tests/data/acpi/q35/DSDT.dsl:1330:
+                    Zero, $

ERROR: trailing whitespace
#36021: FILE: tests/data/acpi/q35/DSDT.dsl:1331:
+                    GSIG, $

ERROR: trailing whitespace
#36023: FILE: tests/data/acpi/q35/DSDT.dsl:1333:
+                }, $

ERROR: trailing whitespace
#36027: FILE: tests/data/acpi/q35/DSDT.dsl:1337:
+                    0x0002FFFF, $

ERROR: trailing whitespace
#36028: FILE: tests/data/acpi/q35/DSDT.dsl:1338:
+                    One, $

ERROR: trailing whitespace
#36029: FILE: tests/data/acpi/q35/DSDT.dsl:1339:
+                    GSIH, $

ERROR: trailing whitespace
#36031: FILE: tests/data/acpi/q35/DSDT.dsl:1341:
+                }, $

ERROR: trailing whitespace
#36035: FILE: tests/data/acpi/q35/DSDT.dsl:1345:
+                    0x0002FFFF, $

ERROR: trailing whitespace
#36036: FILE: tests/data/acpi/q35/DSDT.dsl:1346:
+                    0x02, $

ERROR: trailing whitespace
#36037: FILE: tests/data/acpi/q35/DSDT.dsl:1347:
+                    GSIE, $

ERROR: trailing whitespace
#36039: FILE: tests/data/acpi/q35/DSDT.dsl:1349:
+                }, $

ERROR: trailing whitespace
#36043: FILE: tests/data/acpi/q35/DSDT.dsl:1353:
+                    0x0002FFFF, $

ERROR: trailing whitespace
#36044: FILE: tests/data/acpi/q35/DSDT.dsl:1354:
+                    0x03, $

ERROR: trailing whitespace
#36045: FILE: tests/data/acpi/q35/DSDT.dsl:1355:
+                    GSIF, $

ERROR: trailing whitespace
#36047: FILE: tests/data/acpi/q35/DSDT.dsl:1357:
+                }, $

ERROR: trailing whitespace
#36051: FILE: tests/data/acpi/q35/DSDT.dsl:1361:
+                    0x0003FFFF, $

ERROR: trailing whitespace
#36052: FILE: tests/data/acpi/q35/DSDT.dsl:1362:
+                    Zero, $

ERROR: trailing whitespace
#36053: FILE: tests/data/acpi/q35/DSDT.dsl:1363:
+                    GSIH, $

ERROR: trailing whitespace
#36055: FILE: tests/data/acpi/q35/DSDT.dsl:1365:
+                }, $

ERROR: trailing whitespace
#36059: FILE: tests/data/acpi/q35/DSDT.dsl:1369:
+                    0x0003FFFF, $

ERROR: trailing whitespace
#36060: FILE: tests/data/acpi/q35/DSDT.dsl:1370:
+                    One, $

ERROR: trailing whitespace
#36061: FILE: tests/data/acpi/q35/DSDT.dsl:1371:
+                    GSIE, $

ERROR: trailing whitespace
#36063: FILE: tests/data/acpi/q35/DSDT.dsl:1373:
+                }, $

ERROR: trailing whitespace
#36067: FILE: tests/data/acpi/q35/DSDT.dsl:1377:
+                    0x0003FFFF, $

ERROR: trailing whitespace
#36068: FILE: tests/data/acpi/q35/DSDT.dsl:1378:
+                    0x02, $

ERROR: trailing whitespace
#36069: FILE: tests/data/acpi/q35/DSDT.dsl:1379:
+                    GSIF, $

ERROR: trailing whitespace
#36071: FILE: tests/data/acpi/q35/DSDT.dsl:1381:
+                }, $

ERROR: trailing whitespace
#36075: FILE: tests/data/acpi/q35/DSDT.dsl:1385:
+                    0x0003FFFF, $

ERROR: trailing whitespace
#36076: FILE: tests/data/acpi/q35/DSDT.dsl:1386:
+                    0x03, $

ERROR: trailing whitespace
#36077: FILE: tests/data/acpi/q35/DSDT.dsl:1387:
+                    GSIG, $

ERROR: trailing whitespace
#36079: FILE: tests/data/acpi/q35/DSDT.dsl:1389:
+                }, $

ERROR: trailing whitespace
#36083: FILE: tests/data/acpi/q35/DSDT.dsl:1393:
+                    0x0004FFFF, $

ERROR: trailing whitespace
#36084: FILE: tests/data/acpi/q35/DSDT.dsl:1394:
+                    Zero, $

ERROR: trailing whitespace
#36085: FILE: tests/data/acpi/q35/DSDT.dsl:1395:
+                    GSIE, $

ERROR: trailing whitespace
#36087: FILE: tests/data/acpi/q35/DSDT.dsl:1397:
+                }, $

ERROR: trailing whitespace
#36091: FILE: tests/data/acpi/q35/DSDT.dsl:1401:
+                    0x0004FFFF, $

ERROR: trailing whitespace
#36092: FILE: tests/data/acpi/q35/DSDT.dsl:1402:
+                    One, $

ERROR: trailing whitespace
#36093: FILE: tests/data/acpi/q35/DSDT.dsl:1403:
+                    GSIF, $

ERROR: trailing whitespace
#36095: FILE: tests/data/acpi/q35/DSDT.dsl:1405:
+                }, $

ERROR: trailing whitespace
#36099: FILE: tests/data/acpi/q35/DSDT.dsl:1409:
+                    0x0004FFFF, $

ERROR: trailing whitespace
#36100: FILE: tests/data/acpi/q35/DSDT.dsl:1410:
+                    0x02, $

ERROR: trailing whitespace
#36101: FILE: tests/data/acpi/q35/DSDT.dsl:1411:
+                    GSIG, $

ERROR: trailing whitespace
#36103: FILE: tests/data/acpi/q35/DSDT.dsl:1413:
+                }, $

ERROR: trailing whitespace
#36107: FILE: tests/data/acpi/q35/DSDT.dsl:1417:
+                    0x0004FFFF, $

ERROR: trailing whitespace
#36108: FILE: tests/data/acpi/q35/DSDT.dsl:1418:
+                    0x03, $

ERROR: trailing whitespace
#36109: FILE: tests/data/acpi/q35/DSDT.dsl:1419:
+                    GSIH, $

ERROR: trailing whitespace
#36111: FILE: tests/data/acpi/q35/DSDT.dsl:1421:
+                }, $

ERROR: trailing whitespace
#36115: FILE: tests/data/acpi/q35/DSDT.dsl:1425:
+                    0x0005FFFF, $

ERROR: trailing whitespace
#36116: FILE: tests/data/acpi/q35/DSDT.dsl:1426:
+                    Zero, $

ERROR: trailing whitespace
#36117: FILE: tests/data/acpi/q35/DSDT.dsl:1427:
+                    GSIF, $

ERROR: trailing whitespace
#36119: FILE: tests/data/acpi/q35/DSDT.dsl:1429:
+                }, $

ERROR: trailing whitespace
#36123: FILE: tests/data/acpi/q35/DSDT.dsl:1433:
+                    0x0005FFFF, $

ERROR: trailing whitespace
#36124: FILE: tests/data/acpi/q35/DSDT.dsl:1434:
+                    One, $

ERROR: trailing whitespace
#36125: FILE: tests/data/acpi/q35/DSDT.dsl:1435:
+                    GSIG, $

ERROR: trailing whitespace
#36127: FILE: tests/data/acpi/q35/DSDT.dsl:1437:
+                }, $

ERROR: trailing whitespace
#36131: FILE: tests/data/acpi/q35/DSDT.dsl:1441:
+                    0x0005FFFF, $

ERROR: trailing whitespace
#36132: FILE: tests/data/acpi/q35/DSDT.dsl:1442:
+                    0x02, $

ERROR: trailing whitespace
#36133: FILE: tests/data/acpi/q35/DSDT.dsl:1443:
+                    GSIH, $

ERROR: trailing whitespace
#36135: FILE: tests/data/acpi/q35/DSDT.dsl:1445:
+                }, $

ERROR: trailing whitespace
#36139: FILE: tests/data/acpi/q35/DSDT.dsl:1449:
+                    0x0005FFFF, $

ERROR: trailing whitespace
#36140: FILE: tests/data/acpi/q35/DSDT.dsl:1450:
+                    0x03, $

ERROR: trailing whitespace
#36141: FILE: tests/data/acpi/q35/DSDT.dsl:1451:
+                    GSIE, $

ERROR: trailing whitespace
#36143: FILE: tests/data/acpi/q35/DSDT.dsl:1453:
+                }, $

ERROR: trailing whitespace
#36147: FILE: tests/data/acpi/q35/DSDT.dsl:1457:
+                    0x0006FFFF, $

ERROR: trailing whitespace
#36148: FILE: tests/data/acpi/q35/DSDT.dsl:1458:
+                    Zero, $

ERROR: trailing whitespace
#36149: FILE: tests/data/acpi/q35/DSDT.dsl:1459:
+                    GSIG, $

ERROR: trailing whitespace
#36151: FILE: tests/data/acpi/q35/DSDT.dsl:1461:
+                }, $

ERROR: trailing whitespace
#36155: FILE: tests/data/acpi/q35/DSDT.dsl:1465:
+                    0x0006FFFF, $

ERROR: trailing whitespace
#36156: FILE: tests/data/acpi/q35/DSDT.dsl:1466:
+                    One, $

ERROR: trailing whitespace
#36157: FILE: tests/data/acpi/q35/DSDT.dsl:1467:
+                    GSIH, $

ERROR: trailing whitespace
#36159: FILE: tests/data/acpi/q35/DSDT.dsl:1469:
+                }, $

ERROR: trailing whitespace
#36163: FILE: tests/data/acpi/q35/DSDT.dsl:1473:
+                    0x0006FFFF, $

ERROR: trailing whitespace
#36164: FILE: tests/data/acpi/q35/DSDT.dsl:1474:
+                    0x02, $

ERROR: trailing whitespace
#36165: FILE: tests/data/acpi/q35/DSDT.dsl:1475:
+                    GSIE, $

ERROR: trailing whitespace
#36167: FILE: tests/data/acpi/q35/DSDT.dsl:1477:
+                }, $

ERROR: trailing whitespace
#36171: FILE: tests/data/acpi/q35/DSDT.dsl:1481:
+                    0x0006FFFF, $

ERROR: trailing whitespace
#36172: FILE: tests/data/acpi/q35/DSDT.dsl:1482:
+                    0x03, $

ERROR: trailing whitespace
#36173: FILE: tests/data/acpi/q35/DSDT.dsl:1483:
+                    GSIF, $

ERROR: trailing whitespace
#36175: FILE: tests/data/acpi/q35/DSDT.dsl:1485:
+                }, $

ERROR: trailing whitespace
#36179: FILE: tests/data/acpi/q35/DSDT.dsl:1489:
+                    0x0007FFFF, $

ERROR: trailing whitespace
#36180: FILE: tests/data/acpi/q35/DSDT.dsl:1490:
+                    Zero, $

ERROR: trailing whitespace
#36181: FILE: tests/data/acpi/q35/DSDT.dsl:1491:
+                    GSIH, $

ERROR: trailing whitespace
#36183: FILE: tests/data/acpi/q35/DSDT.dsl:1493:
+                }, $

ERROR: trailing whitespace
#36187: FILE: tests/data/acpi/q35/DSDT.dsl:1497:
+                    0x0007FFFF, $

ERROR: trailing whitespace
#36188: FILE: tests/data/acpi/q35/DSDT.dsl:1498:
+                    One, $

ERROR: trailing whitespace
#36189: FILE: tests/data/acpi/q35/DSDT.dsl:1499:
+                    GSIE, $

ERROR: trailing whitespace
#36191: FILE: tests/data/acpi/q35/DSDT.dsl:1501:
+                }, $

ERROR: trailing whitespace
#36195: FILE: tests/data/acpi/q35/DSDT.dsl:1505:
+                    0x0007FFFF, $

ERROR: trailing whitespace
#36196: FILE: tests/data/acpi/q35/DSDT.dsl:1506:
+                    0x02, $

ERROR: trailing whitespace
#36197: FILE: tests/data/acpi/q35/DSDT.dsl:1507:
+                    GSIF, $

ERROR: trailing whitespace
#36199: FILE: tests/data/acpi/q35/DSDT.dsl:1509:
+                }, $

ERROR: trailing whitespace
#36203: FILE: tests/data/acpi/q35/DSDT.dsl:1513:
+                    0x0007FFFF, $

ERROR: trailing whitespace
#36204: FILE: tests/data/acpi/q35/DSDT.dsl:1514:
+                    0x03, $

ERROR: trailing whitespace
#36205: FILE: tests/data/acpi/q35/DSDT.dsl:1515:
+                    GSIG, $

ERROR: trailing whitespace
#36207: FILE: tests/data/acpi/q35/DSDT.dsl:1517:
+                }, $

ERROR: trailing whitespace
#36211: FILE: tests/data/acpi/q35/DSDT.dsl:1521:
+                    0x0008FFFF, $

ERROR: trailing whitespace
#36212: FILE: tests/data/acpi/q35/DSDT.dsl:1522:
+                    Zero, $

ERROR: trailing whitespace
#36213: FILE: tests/data/acpi/q35/DSDT.dsl:1523:
+                    GSIE, $

ERROR: trailing whitespace
#36215: FILE: tests/data/acpi/q35/DSDT.dsl:1525:
+                }, $

ERROR: trailing whitespace
#36219: FILE: tests/data/acpi/q35/DSDT.dsl:1529:
+                    0x0008FFFF, $

ERROR: trailing whitespace
#36220: FILE: tests/data/acpi/q35/DSDT.dsl:1530:
+                    One, $

ERROR: trailing whitespace
#36221: FILE: tests/data/acpi/q35/DSDT.dsl:1531:
+                    GSIF, $

ERROR: trailing whitespace
#36223: FILE: tests/data/acpi/q35/DSDT.dsl:1533:
+                }, $

ERROR: trailing whitespace
#36227: FILE: tests/data/acpi/q35/DSDT.dsl:1537:
+                    0x0008FFFF, $

ERROR: trailing whitespace
#36228: FILE: tests/data/acpi/q35/DSDT.dsl:1538:
+                    0x02, $

ERROR: trailing whitespace
#36229: FILE: tests/data/acpi/q35/DSDT.dsl:1539:
+                    GSIG, $

ERROR: trailing whitespace
#36231: FILE: tests/data/acpi/q35/DSDT.dsl:1541:
+                }, $

ERROR: trailing whitespace
#36235: FILE: tests/data/acpi/q35/DSDT.dsl:1545:
+                    0x0008FFFF, $

ERROR: trailing whitespace
#36236: FILE: tests/data/acpi/q35/DSDT.dsl:1546:
+                    0x03, $

ERROR: trailing whitespace
#36237: FILE: tests/data/acpi/q35/DSDT.dsl:1547:
+                    GSIH, $

ERROR: trailing whitespace
#36239: FILE: tests/data/acpi/q35/DSDT.dsl:1549:
+                }, $

ERROR: trailing whitespace
#36243: FILE: tests/data/acpi/q35/DSDT.dsl:1553:
+                    0x0009FFFF, $

ERROR: trailing whitespace
#36244: FILE: tests/data/acpi/q35/DSDT.dsl:1554:
+                    Zero, $

ERROR: trailing whitespace
#36245: FILE: tests/data/acpi/q35/DSDT.dsl:1555:
+                    GSIF, $

ERROR: trailing whitespace
#36247: FILE: tests/data/acpi/q35/DSDT.dsl:1557:
+                }, $

ERROR: trailing whitespace
#36251: FILE: tests/data/acpi/q35/DSDT.dsl:1561:
+                    0x0009FFFF, $

ERROR: trailing whitespace
#36252: FILE: tests/data/acpi/q35/DSDT.dsl:1562:
+                    One, $

ERROR: trailing whitespace
#36253: FILE: tests/data/acpi/q35/DSDT.dsl:1563:
+                    GSIG, $

ERROR: trailing whitespace
#36255: FILE: tests/data/acpi/q35/DSDT.dsl:1565:
+                }, $

ERROR: trailing whitespace
#36259: FILE: tests/data/acpi/q35/DSDT.dsl:1569:
+                    0x0009FFFF, $

ERROR: trailing whitespace
#36260: FILE: tests/data/acpi/q35/DSDT.dsl:1570:
+                    0x02, $

ERROR: trailing whitespace
#36261: FILE: tests/data/acpi/q35/DSDT.dsl:1571:
+                    GSIH, $

ERROR: trailing whitespace
#36263: FILE: tests/data/acpi/q35/DSDT.dsl:1573:
+                }, $

ERROR: trailing whitespace
#36267: FILE: tests/data/acpi/q35/DSDT.dsl:1577:
+                    0x0009FFFF, $

ERROR: trailing whitespace
#36268: FILE: tests/data/acpi/q35/DSDT.dsl:1578:
+                    0x03, $

ERROR: trailing whitespace
#36269: FILE: tests/data/acpi/q35/DSDT.dsl:1579:
+                    GSIE, $

ERROR: trailing whitespace
#36271: FILE: tests/data/acpi/q35/DSDT.dsl:1581:
+                }, $

ERROR: trailing whitespace
#36275: FILE: tests/data/acpi/q35/DSDT.dsl:1585:
+                    0x000AFFFF, $

ERROR: trailing whitespace
#36276: FILE: tests/data/acpi/q35/DSDT.dsl:1586:
+                    Zero, $

ERROR: trailing whitespace
#36277: FILE: tests/data/acpi/q35/DSDT.dsl:1587:
+                    GSIG, $

ERROR: trailing whitespace
#36279: FILE: tests/data/acpi/q35/DSDT.dsl:1589:
+                }, $

ERROR: trailing whitespace
#36283: FILE: tests/data/acpi/q35/DSDT.dsl:1593:
+                    0x000AFFFF, $

ERROR: trailing whitespace
#36284: FILE: tests/data/acpi/q35/DSDT.dsl:1594:
+                    One, $

ERROR: trailing whitespace
#36285: FILE: tests/data/acpi/q35/DSDT.dsl:1595:
+                    GSIH, $

ERROR: trailing whitespace
#36287: FILE: tests/data/acpi/q35/DSDT.dsl:1597:
+                }, $

ERROR: trailing whitespace
#36291: FILE: tests/data/acpi/q35/DSDT.dsl:1601:
+                    0x000AFFFF, $

ERROR: trailing whitespace
#36292: FILE: tests/data/acpi/q35/DSDT.dsl:1602:
+                    0x02, $

ERROR: trailing whitespace
#36293: FILE: tests/data/acpi/q35/DSDT.dsl:1603:
+                    GSIE, $

ERROR: trailing whitespace
#36295: FILE: tests/data/acpi/q35/DSDT.dsl:1605:
+                }, $

ERROR: trailing whitespace
#36299: FILE: tests/data/acpi/q35/DSDT.dsl:1609:
+                    0x000AFFFF, $

ERROR: trailing whitespace
#36300: FILE: tests/data/acpi/q35/DSDT.dsl:1610:
+                    0x03, $

ERROR: trailing whitespace
#36301: FILE: tests/data/acpi/q35/DSDT.dsl:1611:
+                    GSIF, $

ERROR: trailing whitespace
#36303: FILE: tests/data/acpi/q35/DSDT.dsl:1613:
+                }, $

ERROR: trailing whitespace
#36307: FILE: tests/data/acpi/q35/DSDT.dsl:1617:
+                    0x000BFFFF, $

ERROR: trailing whitespace
#36308: FILE: tests/data/acpi/q35/DSDT.dsl:1618:
+                    Zero, $

ERROR: trailing whitespace
#36309: FILE: tests/data/acpi/q35/DSDT.dsl:1619:
+                    GSIH, $

ERROR: trailing whitespace
#36311: FILE: tests/data/acpi/q35/DSDT.dsl:1621:
+                }, $

ERROR: trailing whitespace
#36315: FILE: tests/data/acpi/q35/DSDT.dsl:1625:
+                    0x000BFFFF, $

ERROR: trailing whitespace
#36316: FILE: tests/data/acpi/q35/DSDT.dsl:1626:
+                    One, $

ERROR: trailing whitespace
#36317: FILE: tests/data/acpi/q35/DSDT.dsl:1627:
+                    GSIE, $

ERROR: trailing whitespace
#36319: FILE: tests/data/acpi/q35/DSDT.dsl:1629:
+                }, $

ERROR: trailing whitespace
#36323: FILE: tests/data/acpi/q35/DSDT.dsl:1633:
+                    0x000BFFFF, $

ERROR: trailing whitespace
#36324: FILE: tests/data/acpi/q35/DSDT.dsl:1634:
+                    0x02, $

ERROR: trailing whitespace
#36325: FILE: tests/data/acpi/q35/DSDT.dsl:1635:
+                    GSIF, $

ERROR: trailing whitespace
#36327: FILE: tests/data/acpi/q35/DSDT.dsl:1637:
+                }, $

ERROR: trailing whitespace
#36331: FILE: tests/data/acpi/q35/DSDT.dsl:1641:
+                    0x000BFFFF, $

ERROR: trailing whitespace
#36332: FILE: tests/data/acpi/q35/DSDT.dsl:1642:
+                    0x03, $

ERROR: trailing whitespace
#36333: FILE: tests/data/acpi/q35/DSDT.dsl:1643:
+                    GSIG, $

ERROR: trailing whitespace
#36335: FILE: tests/data/acpi/q35/DSDT.dsl:1645:
+                }, $

ERROR: trailing whitespace
#36339: FILE: tests/data/acpi/q35/DSDT.dsl:1649:
+                    0x000CFFFF, $

ERROR: trailing whitespace
#36340: FILE: tests/data/acpi/q35/DSDT.dsl:1650:
+                    Zero, $

ERROR: trailing whitespace
#36341: FILE: tests/data/acpi/q35/DSDT.dsl:1651:
+                    GSIE, $

ERROR: trailing whitespace
#36343: FILE: tests/data/acpi/q35/DSDT.dsl:1653:
+                }, $

ERROR: trailing whitespace
#36347: FILE: tests/data/acpi/q35/DSDT.dsl:1657:
+                    0x000CFFFF, $

ERROR: trailing whitespace
#36348: FILE: tests/data/acpi/q35/DSDT.dsl:1658:
+                    One, $

ERROR: trailing whitespace
#36349: FILE: tests/data/acpi/q35/DSDT.dsl:1659:
+                    GSIF, $

ERROR: trailing whitespace
#36351: FILE: tests/data/acpi/q35/DSDT.dsl:1661:
+                }, $

ERROR: trailing whitespace
#36355: FILE: tests/data/acpi/q35/DSDT.dsl:1665:
+                    0x000CFFFF, $

ERROR: trailing whitespace
#36356: FILE: tests/data/acpi/q35/DSDT.dsl:1666:
+                    0x02, $

ERROR: trailing whitespace
#36357: FILE: tests/data/acpi/q35/DSDT.dsl:1667:
+                    GSIG, $

ERROR: trailing whitespace
#36359: FILE: tests/data/acpi/q35/DSDT.dsl:1669:
+                }, $

ERROR: trailing whitespace
#36363: FILE: tests/data/acpi/q35/DSDT.dsl:1673:
+                    0x000CFFFF, $

ERROR: trailing whitespace
#36364: FILE: tests/data/acpi/q35/DSDT.dsl:1674:
+                    0x03, $

ERROR: trailing whitespace
#36365: FILE: tests/data/acpi/q35/DSDT.dsl:1675:
+                    GSIH, $

ERROR: trailing whitespace
#36367: FILE: tests/data/acpi/q35/DSDT.dsl:1677:
+                }, $

ERROR: trailing whitespace
#36371: FILE: tests/data/acpi/q35/DSDT.dsl:1681:
+                    0x000DFFFF, $

ERROR: trailing whitespace
#36372: FILE: tests/data/acpi/q35/DSDT.dsl:1682:
+                    Zero, $

ERROR: trailing whitespace
#36373: FILE: tests/data/acpi/q35/DSDT.dsl:1683:
+                    GSIF, $

ERROR: trailing whitespace
#36375: FILE: tests/data/acpi/q35/DSDT.dsl:1685:
+                }, $

ERROR: trailing whitespace
#36379: FILE: tests/data/acpi/q35/DSDT.dsl:1689:
+                    0x000DFFFF, $

ERROR: trailing whitespace
#36380: FILE: tests/data/acpi/q35/DSDT.dsl:1690:
+                    One, $

ERROR: trailing whitespace
#36381: FILE: tests/data/acpi/q35/DSDT.dsl:1691:
+                    GSIG, $

ERROR: trailing whitespace
#36383: FILE: tests/data/acpi/q35/DSDT.dsl:1693:
+                }, $

ERROR: trailing whitespace
#36387: FILE: tests/data/acpi/q35/DSDT.dsl:1697:
+                    0x000DFFFF, $

ERROR: trailing whitespace
#36388: FILE: tests/data/acpi/q35/DSDT.dsl:1698:
+                    0x02, $

ERROR: trailing whitespace
#36389: FILE: tests/data/acpi/q35/DSDT.dsl:1699:
+                    GSIH, $

ERROR: trailing whitespace
#36391: FILE: tests/data/acpi/q35/DSDT.dsl:1701:
+                }, $

ERROR: trailing whitespace
#36395: FILE: tests/data/acpi/q35/DSDT.dsl:1705:
+                    0x000DFFFF, $

ERROR: trailing whitespace
#36396: FILE: tests/data/acpi/q35/DSDT.dsl:1706:
+                    0x03, $

ERROR: trailing whitespace
#36397: FILE: tests/data/acpi/q35/DSDT.dsl:1707:
+                    GSIE, $

ERROR: trailing whitespace
#36399: FILE: tests/data/acpi/q35/DSDT.dsl:1709:
+                }, $

ERROR: trailing whitespace
#36403: FILE: tests/data/acpi/q35/DSDT.dsl:1713:
+                    0x000EFFFF, $

ERROR: trailing whitespace
#36404: FILE: tests/data/acpi/q35/DSDT.dsl:1714:
+                    Zero, $

ERROR: trailing whitespace
#36405: FILE: tests/data/acpi/q35/DSDT.dsl:1715:
+                    GSIG, $

ERROR: trailing whitespace
#36407: FILE: tests/data/acpi/q35/DSDT.dsl:1717:
+                }, $

ERROR: trailing whitespace
#36411: FILE: tests/data/acpi/q35/DSDT.dsl:1721:
+                    0x000EFFFF, $

ERROR: trailing whitespace
#36412: FILE: tests/data/acpi/q35/DSDT.dsl:1722:
+                    One, $

ERROR: trailing whitespace
#36413: FILE: tests/data/acpi/q35/DSDT.dsl:1723:
+                    GSIH, $

ERROR: trailing whitespace
#36415: FILE: tests/data/acpi/q35/DSDT.dsl:1725:
+                }, $

ERROR: trailing whitespace
#36419: FILE: tests/data/acpi/q35/DSDT.dsl:1729:
+                    0x000EFFFF, $

ERROR: trailing whitespace
#36420: FILE: tests/data/acpi/q35/DSDT.dsl:1730:
+                    0x02, $

ERROR: trailing whitespace
#36421: FILE: tests/data/acpi/q35/DSDT.dsl:1731:
+                    GSIE, $

ERROR: trailing whitespace
#36423: FILE: tests/data/acpi/q35/DSDT.dsl:1733:
+                }, $

ERROR: trailing whitespace
#36427: FILE: tests/data/acpi/q35/DSDT.dsl:1737:
+                    0x000EFFFF, $

ERROR: trailing whitespace
#36428: FILE: tests/data/acpi/q35/DSDT.dsl:1738:
+                    0x03, $

ERROR: trailing whitespace
#36429: FILE: tests/data/acpi/q35/DSDT.dsl:1739:
+                    GSIF, $

ERROR: trailing whitespace
#36431: FILE: tests/data/acpi/q35/DSDT.dsl:1741:
+                }, $

ERROR: trailing whitespace
#36435: FILE: tests/data/acpi/q35/DSDT.dsl:1745:
+                    0x000FFFFF, $

ERROR: trailing whitespace
#36436: FILE: tests/data/acpi/q35/DSDT.dsl:1746:
+                    Zero, $

ERROR: trailing whitespace
#36437: FILE: tests/data/acpi/q35/DSDT.dsl:1747:
+                    GSIH, $

ERROR: trailing whitespace
#36439: FILE: tests/data/acpi/q35/DSDT.dsl:1749:
+                }, $

ERROR: trailing whitespace
#36443: FILE: tests/data/acpi/q35/DSDT.dsl:1753:
+                    0x000FFFFF, $

ERROR: trailing whitespace
#36444: FILE: tests/data/acpi/q35/DSDT.dsl:1754:
+                    One, $

ERROR: trailing whitespace
#36445: FILE: tests/data/acpi/q35/DSDT.dsl:1755:
+                    GSIE, $

ERROR: trailing whitespace
#36447: FILE: tests/data/acpi/q35/DSDT.dsl:1757:
+                }, $

ERROR: trailing whitespace
#36451: FILE: tests/data/acpi/q35/DSDT.dsl:1761:
+                    0x000FFFFF, $

ERROR: trailing whitespace
#36452: FILE: tests/data/acpi/q35/DSDT.dsl:1762:
+                    0x02, $

ERROR: trailing whitespace
#36453: FILE: tests/data/acpi/q35/DSDT.dsl:1763:
+                    GSIF, $

ERROR: trailing whitespace
#36455: FILE: tests/data/acpi/q35/DSDT.dsl:1765:
+                }, $

ERROR: trailing whitespace
#36459: FILE: tests/data/acpi/q35/DSDT.dsl:1769:
+                    0x000FFFFF, $

ERROR: trailing whitespace
#36460: FILE: tests/data/acpi/q35/DSDT.dsl:1770:
+                    0x03, $

ERROR: trailing whitespace
#36461: FILE: tests/data/acpi/q35/DSDT.dsl:1771:
+                    GSIG, $

ERROR: trailing whitespace
#36463: FILE: tests/data/acpi/q35/DSDT.dsl:1773:
+                }, $

ERROR: trailing whitespace
#36467: FILE: tests/data/acpi/q35/DSDT.dsl:1777:
+                    0x0010FFFF, $

ERROR: trailing whitespace
#36468: FILE: tests/data/acpi/q35/DSDT.dsl:1778:
+                    Zero, $

ERROR: trailing whitespace
#36469: FILE: tests/data/acpi/q35/DSDT.dsl:1779:
+                    GSIE, $

ERROR: trailing whitespace
#36471: FILE: tests/data/acpi/q35/DSDT.dsl:1781:
+                }, $

ERROR: trailing whitespace
#36475: FILE: tests/data/acpi/q35/DSDT.dsl:1785:
+                    0x0010FFFF, $

ERROR: trailing whitespace
#36476: FILE: tests/data/acpi/q35/DSDT.dsl:1786:
+                    One, $

ERROR: trailing whitespace
#36477: FILE: tests/data/acpi/q35/DSDT.dsl:1787:
+                    GSIF, $

ERROR: trailing whitespace
#36479: FILE: tests/data/acpi/q35/DSDT.dsl:1789:
+                }, $

ERROR: trailing whitespace
#36483: FILE: tests/data/acpi/q35/DSDT.dsl:1793:
+                    0x0010FFFF, $

ERROR: trailing whitespace
#36484: FILE: tests/data/acpi/q35/DSDT.dsl:1794:
+                    0x02, $

ERROR: trailing whitespace
#36485: FILE: tests/data/acpi/q35/DSDT.dsl:1795:
+                    GSIG, $

ERROR: trailing whitespace
#36487: FILE: tests/data/acpi/q35/DSDT.dsl:1797:
+                }, $

ERROR: trailing whitespace
#36491: FILE: tests/data/acpi/q35/DSDT.dsl:1801:
+                    0x0010FFFF, $

ERROR: trailing whitespace
#36492: FILE: tests/data/acpi/q35/DSDT.dsl:1802:
+                    0x03, $

ERROR: trailing whitespace
#36493: FILE: tests/data/acpi/q35/DSDT.dsl:1803:
+                    GSIH, $

ERROR: trailing whitespace
#36495: FILE: tests/data/acpi/q35/DSDT.dsl:1805:
+                }, $

ERROR: trailing whitespace
#36499: FILE: tests/data/acpi/q35/DSDT.dsl:1809:
+                    0x0011FFFF, $

ERROR: trailing whitespace
#36500: FILE: tests/data/acpi/q35/DSDT.dsl:1810:
+                    Zero, $

ERROR: trailing whitespace
#36501: FILE: tests/data/acpi/q35/DSDT.dsl:1811:
+                    GSIF, $

ERROR: trailing whitespace
#36503: FILE: tests/data/acpi/q35/DSDT.dsl:1813:
+                }, $

ERROR: trailing whitespace
#36507: FILE: tests/data/acpi/q35/DSDT.dsl:1817:
+                    0x0011FFFF, $

ERROR: trailing whitespace
#36508: FILE: tests/data/acpi/q35/DSDT.dsl:1818:
+                    One, $

ERROR: trailing whitespace
#36509: FILE: tests/data/acpi/q35/DSDT.dsl:1819:
+                    GSIG, $

ERROR: trailing whitespace
#36511: FILE: tests/data/acpi/q35/DSDT.dsl:1821:
+                }, $

ERROR: trailing whitespace
#36515: FILE: tests/data/acpi/q35/DSDT.dsl:1825:
+                    0x0011FFFF, $

ERROR: trailing whitespace
#36516: FILE: tests/data/acpi/q35/DSDT.dsl:1826:
+                    0x02, $

ERROR: trailing whitespace
#36517: FILE: tests/data/acpi/q35/DSDT.dsl:1827:
+                    GSIH, $

ERROR: trailing whitespace
#36519: FILE: tests/data/acpi/q35/DSDT.dsl:1829:
+                }, $

ERROR: trailing whitespace
#36523: FILE: tests/data/acpi/q35/DSDT.dsl:1833:
+                    0x0011FFFF, $

ERROR: trailing whitespace
#36524: FILE: tests/data/acpi/q35/DSDT.dsl:1834:
+                    0x03, $

ERROR: trailing whitespace
#36525: FILE: tests/data/acpi/q35/DSDT.dsl:1835:
+                    GSIE, $

ERROR: trailing whitespace
#36527: FILE: tests/data/acpi/q35/DSDT.dsl:1837:
+                }, $

ERROR: trailing whitespace
#36531: FILE: tests/data/acpi/q35/DSDT.dsl:1841:
+                    0x0012FFFF, $

ERROR: trailing whitespace
#36532: FILE: tests/data/acpi/q35/DSDT.dsl:1842:
+                    Zero, $

ERROR: trailing whitespace
#36533: FILE: tests/data/acpi/q35/DSDT.dsl:1843:
+                    GSIG, $

ERROR: trailing whitespace
#36535: FILE: tests/data/acpi/q35/DSDT.dsl:1845:
+                }, $

ERROR: trailing whitespace
#36539: FILE: tests/data/acpi/q35/DSDT.dsl:1849:
+                    0x0012FFFF, $

ERROR: trailing whitespace
#36540: FILE: tests/data/acpi/q35/DSDT.dsl:1850:
+                    One, $

ERROR: trailing whitespace
#36541: FILE: tests/data/acpi/q35/DSDT.dsl:1851:
+                    GSIH, $

ERROR: trailing whitespace
#36543: FILE: tests/data/acpi/q35/DSDT.dsl:1853:
+                }, $

ERROR: trailing whitespace
#36547: FILE: tests/data/acpi/q35/DSDT.dsl:1857:
+                    0x0012FFFF, $

ERROR: trailing whitespace
#36548: FILE: tests/data/acpi/q35/DSDT.dsl:1858:
+                    0x02, $

ERROR: trailing whitespace
#36549: FILE: tests/data/acpi/q35/DSDT.dsl:1859:
+                    GSIE, $

ERROR: trailing whitespace
#36551: FILE: tests/data/acpi/q35/DSDT.dsl:1861:
+                }, $

ERROR: trailing whitespace
#36555: FILE: tests/data/acpi/q35/DSDT.dsl:1865:
+                    0x0012FFFF, $

ERROR: trailing whitespace
#36556: FILE: tests/data/acpi/q35/DSDT.dsl:1866:
+                    0x03, $

ERROR: trailing whitespace
#36557: FILE: tests/data/acpi/q35/DSDT.dsl:1867:
+                    GSIF, $

ERROR: trailing whitespace
#36559: FILE: tests/data/acpi/q35/DSDT.dsl:1869:
+                }, $

ERROR: trailing whitespace
#36563: FILE: tests/data/acpi/q35/DSDT.dsl:1873:
+                    0x0013FFFF, $

ERROR: trailing whitespace
#36564: FILE: tests/data/acpi/q35/DSDT.dsl:1874:
+                    Zero, $

ERROR: trailing whitespace
#36565: FILE: tests/data/acpi/q35/DSDT.dsl:1875:
+                    GSIH, $

ERROR: trailing whitespace
#36567: FILE: tests/data/acpi/q35/DSDT.dsl:1877:
+                }, $

ERROR: trailing whitespace
#36571: FILE: tests/data/acpi/q35/DSDT.dsl:1881:
+                    0x0013FFFF, $

ERROR: trailing whitespace
#36572: FILE: tests/data/acpi/q35/DSDT.dsl:1882:
+                    One, $

ERROR: trailing whitespace
#36573: FILE: tests/data/acpi/q35/DSDT.dsl:1883:
+                    GSIE, $

ERROR: trailing whitespace
#36575: FILE: tests/data/acpi/q35/DSDT.dsl:1885:
+                }, $

ERROR: trailing whitespace
#36579: FILE: tests/data/acpi/q35/DSDT.dsl:1889:
+                    0x0013FFFF, $

ERROR: trailing whitespace
#36580: FILE: tests/data/acpi/q35/DSDT.dsl:1890:
+                    0x02, $

ERROR: trailing whitespace
#36581: FILE: tests/data/acpi/q35/DSDT.dsl:1891:
+                    GSIF, $

ERROR: trailing whitespace
#36583: FILE: tests/data/acpi/q35/DSDT.dsl:1893:
+                }, $

ERROR: trailing whitespace
#36587: FILE: tests/data/acpi/q35/DSDT.dsl:1897:
+                    0x0013FFFF, $

ERROR: trailing whitespace
#36588: FILE: tests/data/acpi/q35/DSDT.dsl:1898:
+                    0x03, $

ERROR: trailing whitespace
#36589: FILE: tests/data/acpi/q35/DSDT.dsl:1899:
+                    GSIG, $

ERROR: trailing whitespace
#36591: FILE: tests/data/acpi/q35/DSDT.dsl:1901:
+                }, $

ERROR: trailing whitespace
#36595: FILE: tests/data/acpi/q35/DSDT.dsl:1905:
+                    0x0014FFFF, $

ERROR: trailing whitespace
#36596: FILE: tests/data/acpi/q35/DSDT.dsl:1906:
+                    Zero, $

ERROR: trailing whitespace
#36597: FILE: tests/data/acpi/q35/DSDT.dsl:1907:
+                    GSIE, $

ERROR: trailing whitespace
#36599: FILE: tests/data/acpi/q35/DSDT.dsl:1909:
+                }, $

ERROR: trailing whitespace
#36603: FILE: tests/data/acpi/q35/DSDT.dsl:1913:
+                    0x0014FFFF, $

ERROR: trailing whitespace
#36604: FILE: tests/data/acpi/q35/DSDT.dsl:1914:
+                    One, $

ERROR: trailing whitespace
#36605: FILE: tests/data/acpi/q35/DSDT.dsl:1915:
+                    GSIF, $

ERROR: trailing whitespace
#36607: FILE: tests/data/acpi/q35/DSDT.dsl:1917:
+                }, $

ERROR: trailing whitespace
#36611: FILE: tests/data/acpi/q35/DSDT.dsl:1921:
+                    0x0014FFFF, $

ERROR: trailing whitespace
#36612: FILE: tests/data/acpi/q35/DSDT.dsl:1922:
+                    0x02, $

ERROR: trailing whitespace
#36613: FILE: tests/data/acpi/q35/DSDT.dsl:1923:
+                    GSIG, $

ERROR: trailing whitespace
#36615: FILE: tests/data/acpi/q35/DSDT.dsl:1925:
+                }, $

ERROR: trailing whitespace
#36619: FILE: tests/data/acpi/q35/DSDT.dsl:1929:
+                    0x0014FFFF, $

ERROR: trailing whitespace
#36620: FILE: tests/data/acpi/q35/DSDT.dsl:1930:
+                    0x03, $

ERROR: trailing whitespace
#36621: FILE: tests/data/acpi/q35/DSDT.dsl:1931:
+                    GSIH, $

ERROR: trailing whitespace
#36623: FILE: tests/data/acpi/q35/DSDT.dsl:1933:
+                }, $

ERROR: trailing whitespace
#36627: FILE: tests/data/acpi/q35/DSDT.dsl:1937:
+                    0x0015FFFF, $

ERROR: trailing whitespace
#36628: FILE: tests/data/acpi/q35/DSDT.dsl:1938:
+                    Zero, $

ERROR: trailing whitespace
#36629: FILE: tests/data/acpi/q35/DSDT.dsl:1939:
+                    GSIF, $

ERROR: trailing whitespace
#36631: FILE: tests/data/acpi/q35/DSDT.dsl:1941:
+                }, $

ERROR: trailing whitespace
#36635: FILE: tests/data/acpi/q35/DSDT.dsl:1945:
+                    0x0015FFFF, $

ERROR: trailing whitespace
#36636: FILE: tests/data/acpi/q35/DSDT.dsl:1946:
+                    One, $

ERROR: trailing whitespace
#36637: FILE: tests/data/acpi/q35/DSDT.dsl:1947:
+                    GSIG, $

ERROR: trailing whitespace
#36639: FILE: tests/data/acpi/q35/DSDT.dsl:1949:
+                }, $

ERROR: trailing whitespace
#36643: FILE: tests/data/acpi/q35/DSDT.dsl:1953:
+                    0x0015FFFF, $

ERROR: trailing whitespace
#36644: FILE: tests/data/acpi/q35/DSDT.dsl:1954:
+                    0x02, $

ERROR: trailing whitespace
#36645: FILE: tests/data/acpi/q35/DSDT.dsl:1955:
+                    GSIH, $

ERROR: trailing whitespace
#36647: FILE: tests/data/acpi/q35/DSDT.dsl:1957:
+                }, $

ERROR: trailing whitespace
#36651: FILE: tests/data/acpi/q35/DSDT.dsl:1961:
+                    0x0015FFFF, $

ERROR: trailing whitespace
#36652: FILE: tests/data/acpi/q35/DSDT.dsl:1962:
+                    0x03, $

ERROR: trailing whitespace
#36653: FILE: tests/data/acpi/q35/DSDT.dsl:1963:
+                    GSIE, $

ERROR: trailing whitespace
#36655: FILE: tests/data/acpi/q35/DSDT.dsl:1965:
+                }, $

ERROR: trailing whitespace
#36659: FILE: tests/data/acpi/q35/DSDT.dsl:1969:
+                    0x0016FFFF, $

ERROR: trailing whitespace
#36660: FILE: tests/data/acpi/q35/DSDT.dsl:1970:
+                    Zero, $

ERROR: trailing whitespace
#36661: FILE: tests/data/acpi/q35/DSDT.dsl:1971:
+                    GSIG, $

ERROR: trailing whitespace
#36663: FILE: tests/data/acpi/q35/DSDT.dsl:1973:
+                }, $

ERROR: trailing whitespace
#36667: FILE: tests/data/acpi/q35/DSDT.dsl:1977:
+                    0x0016FFFF, $

ERROR: trailing whitespace
#36668: FILE: tests/data/acpi/q35/DSDT.dsl:1978:
+                    One, $

ERROR: trailing whitespace
#36669: FILE: tests/data/acpi/q35/DSDT.dsl:1979:
+                    GSIH, $

ERROR: trailing whitespace
#36671: FILE: tests/data/acpi/q35/DSDT.dsl:1981:
+                }, $

ERROR: trailing whitespace
#36675: FILE: tests/data/acpi/q35/DSDT.dsl:1985:
+                    0x0016FFFF, $

ERROR: trailing whitespace
#36676: FILE: tests/data/acpi/q35/DSDT.dsl:1986:
+                    0x02, $

ERROR: trailing whitespace
#36677: FILE: tests/data/acpi/q35/DSDT.dsl:1987:
+                    GSIE, $

ERROR: trailing whitespace
#36679: FILE: tests/data/acpi/q35/DSDT.dsl:1989:
+                }, $

ERROR: trailing whitespace
#36683: FILE: tests/data/acpi/q35/DSDT.dsl:1993:
+                    0x0016FFFF, $

ERROR: trailing whitespace
#36684: FILE: tests/data/acpi/q35/DSDT.dsl:1994:
+                    0x03, $

ERROR: trailing whitespace
#36685: FILE: tests/data/acpi/q35/DSDT.dsl:1995:
+                    GSIF, $

ERROR: trailing whitespace
#36687: FILE: tests/data/acpi/q35/DSDT.dsl:1997:
+                }, $

ERROR: trailing whitespace
#36691: FILE: tests/data/acpi/q35/DSDT.dsl:2001:
+                    0x0017FFFF, $

ERROR: trailing whitespace
#36692: FILE: tests/data/acpi/q35/DSDT.dsl:2002:
+                    Zero, $

ERROR: trailing whitespace
#36693: FILE: tests/data/acpi/q35/DSDT.dsl:2003:
+                    GSIH, $

ERROR: trailing whitespace
#36695: FILE: tests/data/acpi/q35/DSDT.dsl:2005:
+                }, $

ERROR: trailing whitespace
#36699: FILE: tests/data/acpi/q35/DSDT.dsl:2009:
+                    0x0017FFFF, $

ERROR: trailing whitespace
#36700: FILE: tests/data/acpi/q35/DSDT.dsl:2010:
+                    One, $

ERROR: trailing whitespace
#36701: FILE: tests/data/acpi/q35/DSDT.dsl:2011:
+                    GSIE, $

ERROR: trailing whitespace
#36703: FILE: tests/data/acpi/q35/DSDT.dsl:2013:
+                }, $

ERROR: trailing whitespace
#36707: FILE: tests/data/acpi/q35/DSDT.dsl:2017:
+                    0x0017FFFF, $

ERROR: trailing whitespace
#36708: FILE: tests/data/acpi/q35/DSDT.dsl:2018:
+                    0x02, $

ERROR: trailing whitespace
#36709: FILE: tests/data/acpi/q35/DSDT.dsl:2019:
+                    GSIF, $

ERROR: trailing whitespace
#36711: FILE: tests/data/acpi/q35/DSDT.dsl:2021:
+                }, $

ERROR: trailing whitespace
#36715: FILE: tests/data/acpi/q35/DSDT.dsl:2025:
+                    0x0017FFFF, $

ERROR: trailing whitespace
#36716: FILE: tests/data/acpi/q35/DSDT.dsl:2026:
+                    0x03, $

ERROR: trailing whitespace
#36717: FILE: tests/data/acpi/q35/DSDT.dsl:2027:
+                    GSIG, $

ERROR: trailing whitespace
#36719: FILE: tests/data/acpi/q35/DSDT.dsl:2029:
+                }, $

ERROR: trailing whitespace
#36723: FILE: tests/data/acpi/q35/DSDT.dsl:2033:
+                    0x0018FFFF, $

ERROR: trailing whitespace
#36724: FILE: tests/data/acpi/q35/DSDT.dsl:2034:
+                    Zero, $

ERROR: trailing whitespace
#36725: FILE: tests/data/acpi/q35/DSDT.dsl:2035:
+                    GSIE, $

ERROR: trailing whitespace
#36727: FILE: tests/data/acpi/q35/DSDT.dsl:2037:
+                }, $

ERROR: trailing whitespace
#36731: FILE: tests/data/acpi/q35/DSDT.dsl:2041:
+                    0x0018FFFF, $

ERROR: trailing whitespace
#36732: FILE: tests/data/acpi/q35/DSDT.dsl:2042:
+                    One, $

ERROR: trailing whitespace
#36733: FILE: tests/data/acpi/q35/DSDT.dsl:2043:
+                    GSIF, $

ERROR: trailing whitespace
#36735: FILE: tests/data/acpi/q35/DSDT.dsl:2045:
+                }, $

ERROR: trailing whitespace
#36739: FILE: tests/data/acpi/q35/DSDT.dsl:2049:
+                    0x0018FFFF, $

ERROR: trailing whitespace
#36740: FILE: tests/data/acpi/q35/DSDT.dsl:2050:
+                    0x02, $

ERROR: trailing whitespace
#36741: FILE: tests/data/acpi/q35/DSDT.dsl:2051:
+                    GSIG, $

ERROR: trailing whitespace
#36743: FILE: tests/data/acpi/q35/DSDT.dsl:2053:
+                }, $

ERROR: trailing whitespace
#36747: FILE: tests/data/acpi/q35/DSDT.dsl:2057:
+                    0x0018FFFF, $

ERROR: trailing whitespace
#36748: FILE: tests/data/acpi/q35/DSDT.dsl:2058:
+                    0x03, $

ERROR: trailing whitespace
#36749: FILE: tests/data/acpi/q35/DSDT.dsl:2059:
+                    GSIH, $

ERROR: trailing whitespace
#36751: FILE: tests/data/acpi/q35/DSDT.dsl:2061:
+                }, $

ERROR: trailing whitespace
#36755: FILE: tests/data/acpi/q35/DSDT.dsl:2065:
+                    0x0019FFFF, $

ERROR: trailing whitespace
#36756: FILE: tests/data/acpi/q35/DSDT.dsl:2066:
+                    Zero, $

ERROR: trailing whitespace
#36757: FILE: tests/data/acpi/q35/DSDT.dsl:2067:
+                    GSIA, $

ERROR: trailing whitespace
#36759: FILE: tests/data/acpi/q35/DSDT.dsl:2069:
+                }, $

ERROR: trailing whitespace
#36763: FILE: tests/data/acpi/q35/DSDT.dsl:2073:
+                    0x0019FFFF, $

ERROR: trailing whitespace
#36764: FILE: tests/data/acpi/q35/DSDT.dsl:2074:
+                    One, $

ERROR: trailing whitespace
#36765: FILE: tests/data/acpi/q35/DSDT.dsl:2075:
+                    GSIB, $

ERROR: trailing whitespace
#36767: FILE: tests/data/acpi/q35/DSDT.dsl:2077:
+                }, $

ERROR: trailing whitespace
#36771: FILE: tests/data/acpi/q35/DSDT.dsl:2081:
+                    0x0019FFFF, $

ERROR: trailing whitespace
#36772: FILE: tests/data/acpi/q35/DSDT.dsl:2082:
+                    0x02, $

ERROR: trailing whitespace
#36773: FILE: tests/data/acpi/q35/DSDT.dsl:2083:
+                    GSIC, $

ERROR: trailing whitespace
#36775: FILE: tests/data/acpi/q35/DSDT.dsl:2085:
+                }, $

ERROR: trailing whitespace
#36779: FILE: tests/data/acpi/q35/DSDT.dsl:2089:
+                    0x0019FFFF, $

ERROR: trailing whitespace
#36780: FILE: tests/data/acpi/q35/DSDT.dsl:2090:
+                    0x03, $

ERROR: trailing whitespace
#36781: FILE: tests/data/acpi/q35/DSDT.dsl:2091:
+                    GSID, $

ERROR: trailing whitespace
#36783: FILE: tests/data/acpi/q35/DSDT.dsl:2093:
+                }, $

ERROR: trailing whitespace
#36787: FILE: tests/data/acpi/q35/DSDT.dsl:2097:
+                    0x001AFFFF, $

ERROR: trailing whitespace
#36788: FILE: tests/data/acpi/q35/DSDT.dsl:2098:
+                    Zero, $

ERROR: trailing whitespace
#36789: FILE: tests/data/acpi/q35/DSDT.dsl:2099:
+                    GSIA, $

ERROR: trailing whitespace
#36791: FILE: tests/data/acpi/q35/DSDT.dsl:2101:
+                }, $

ERROR: trailing whitespace
#36795: FILE: tests/data/acpi/q35/DSDT.dsl:2105:
+                    0x001AFFFF, $

ERROR: trailing whitespace
#36796: FILE: tests/data/acpi/q35/DSDT.dsl:2106:
+                    One, $

ERROR: trailing whitespace
#36797: FILE: tests/data/acpi/q35/DSDT.dsl:2107:
+                    GSIB, $

ERROR: trailing whitespace
#36799: FILE: tests/data/acpi/q35/DSDT.dsl:2109:
+                }, $

ERROR: trailing whitespace
#36803: FILE: tests/data/acpi/q35/DSDT.dsl:2113:
+                    0x001AFFFF, $

ERROR: trailing whitespace
#36804: FILE: tests/data/acpi/q35/DSDT.dsl:2114:
+                    0x02, $

ERROR: trailing whitespace
#36805: FILE: tests/data/acpi/q35/DSDT.dsl:2115:
+                    GSIC, $

ERROR: trailing whitespace
#36807: FILE: tests/data/acpi/q35/DSDT.dsl:2117:
+                }, $

ERROR: trailing whitespace
#36811: FILE: tests/data/acpi/q35/DSDT.dsl:2121:
+                    0x001AFFFF, $

ERROR: trailing whitespace
#36812: FILE: tests/data/acpi/q35/DSDT.dsl:2122:
+                    0x03, $

ERROR: trailing whitespace
#36813: FILE: tests/data/acpi/q35/DSDT.dsl:2123:
+                    GSID, $

ERROR: trailing whitespace
#36815: FILE: tests/data/acpi/q35/DSDT.dsl:2125:
+                }, $

ERROR: trailing whitespace
#36819: FILE: tests/data/acpi/q35/DSDT.dsl:2129:
+                    0x001BFFFF, $

ERROR: trailing whitespace
#36820: FILE: tests/data/acpi/q35/DSDT.dsl:2130:
+                    Zero, $

ERROR: trailing whitespace
#36821: FILE: tests/data/acpi/q35/DSDT.dsl:2131:
+                    GSIA, $

ERROR: trailing whitespace
#36823: FILE: tests/data/acpi/q35/DSDT.dsl:2133:
+                }, $

ERROR: trailing whitespace
#36827: FILE: tests/data/acpi/q35/DSDT.dsl:2137:
+                    0x001BFFFF, $

ERROR: trailing whitespace
#36828: FILE: tests/data/acpi/q35/DSDT.dsl:2138:
+                    One, $

ERROR: trailing whitespace
#36829: FILE: tests/data/acpi/q35/DSDT.dsl:2139:
+                    GSIB, $

ERROR: trailing whitespace
#36831: FILE: tests/data/acpi/q35/DSDT.dsl:2141:
+                }, $

ERROR: trailing whitespace
#36835: FILE: tests/data/acpi/q35/DSDT.dsl:2145:
+                    0x001BFFFF, $

ERROR: trailing whitespace
#36836: FILE: tests/data/acpi/q35/DSDT.dsl:2146:
+                    0x02, $

ERROR: trailing whitespace
#36837: FILE: tests/data/acpi/q35/DSDT.dsl:2147:
+                    GSIC, $

ERROR: trailing whitespace
#36839: FILE: tests/data/acpi/q35/DSDT.dsl:2149:
+                }, $

ERROR: trailing whitespace
#36843: FILE: tests/data/acpi/q35/DSDT.dsl:2153:
+                    0x001BFFFF, $

ERROR: trailing whitespace
#36844: FILE: tests/data/acpi/q35/DSDT.dsl:2154:
+                    0x03, $

ERROR: trailing whitespace
#36845: FILE: tests/data/acpi/q35/DSDT.dsl:2155:
+                    GSID, $

ERROR: trailing whitespace
#36847: FILE: tests/data/acpi/q35/DSDT.dsl:2157:
+                }, $

ERROR: trailing whitespace
#36851: FILE: tests/data/acpi/q35/DSDT.dsl:2161:
+                    0x001CFFFF, $

ERROR: trailing whitespace
#36852: FILE: tests/data/acpi/q35/DSDT.dsl:2162:
+                    Zero, $

ERROR: trailing whitespace
#36853: FILE: tests/data/acpi/q35/DSDT.dsl:2163:
+                    GSIA, $

ERROR: trailing whitespace
#36855: FILE: tests/data/acpi/q35/DSDT.dsl:2165:
+                }, $

ERROR: trailing whitespace
#36859: FILE: tests/data/acpi/q35/DSDT.dsl:2169:
+                    0x001CFFFF, $

ERROR: trailing whitespace
#36860: FILE: tests/data/acpi/q35/DSDT.dsl:2170:
+                    One, $

ERROR: trailing whitespace
#36861: FILE: tests/data/acpi/q35/DSDT.dsl:2171:
+                    GSIB, $

ERROR: trailing whitespace
#36863: FILE: tests/data/acpi/q35/DSDT.dsl:2173:
+                }, $

ERROR: trailing whitespace
#36867: FILE: tests/data/acpi/q35/DSDT.dsl:2177:
+                    0x001CFFFF, $

ERROR: trailing whitespace
#36868: FILE: tests/data/acpi/q35/DSDT.dsl:2178:
+                    0x02, $

ERROR: trailing whitespace
#36869: FILE: tests/data/acpi/q35/DSDT.dsl:2179:
+                    GSIC, $

ERROR: trailing whitespace
#36871: FILE: tests/data/acpi/q35/DSDT.dsl:2181:
+                }, $

ERROR: trailing whitespace
#36875: FILE: tests/data/acpi/q35/DSDT.dsl:2185:
+                    0x001CFFFF, $

ERROR: trailing whitespace
#36876: FILE: tests/data/acpi/q35/DSDT.dsl:2186:
+                    0x03, $

ERROR: trailing whitespace
#36877: FILE: tests/data/acpi/q35/DSDT.dsl:2187:
+                    GSID, $

ERROR: trailing whitespace
#36879: FILE: tests/data/acpi/q35/DSDT.dsl:2189:
+                }, $

ERROR: trailing whitespace
#36883: FILE: tests/data/acpi/q35/DSDT.dsl:2193:
+                    0x001DFFFF, $

ERROR: trailing whitespace
#36884: FILE: tests/data/acpi/q35/DSDT.dsl:2194:
+                    Zero, $

ERROR: trailing whitespace
#36885: FILE: tests/data/acpi/q35/DSDT.dsl:2195:
+                    GSIA, $

ERROR: trailing whitespace
#36887: FILE: tests/data/acpi/q35/DSDT.dsl:2197:
+                }, $

ERROR: trailing whitespace
#36891: FILE: tests/data/acpi/q35/DSDT.dsl:2201:
+                    0x001DFFFF, $

ERROR: trailing whitespace
#36892: FILE: tests/data/acpi/q35/DSDT.dsl:2202:
+                    One, $

ERROR: trailing whitespace
#36893: FILE: tests/data/acpi/q35/DSDT.dsl:2203:
+                    GSIB, $

ERROR: trailing whitespace
#36895: FILE: tests/data/acpi/q35/DSDT.dsl:2205:
+                }, $

ERROR: trailing whitespace
#36899: FILE: tests/data/acpi/q35/DSDT.dsl:2209:
+                    0x001DFFFF, $

ERROR: trailing whitespace
#36900: FILE: tests/data/acpi/q35/DSDT.dsl:2210:
+                    0x02, $

ERROR: trailing whitespace
#36901: FILE: tests/data/acpi/q35/DSDT.dsl:2211:
+                    GSIC, $

ERROR: trailing whitespace
#36903: FILE: tests/data/acpi/q35/DSDT.dsl:2213:
+                }, $

ERROR: trailing whitespace
#36907: FILE: tests/data/acpi/q35/DSDT.dsl:2217:
+                    0x001DFFFF, $

ERROR: trailing whitespace
#36908: FILE: tests/data/acpi/q35/DSDT.dsl:2218:
+                    0x03, $

ERROR: trailing whitespace
#36909: FILE: tests/data/acpi/q35/DSDT.dsl:2219:
+                    GSID, $

ERROR: trailing whitespace
#36911: FILE: tests/data/acpi/q35/DSDT.dsl:2221:
+                }, $

ERROR: trailing whitespace
#36915: FILE: tests/data/acpi/q35/DSDT.dsl:2225:
+                    0x001EFFFF, $

ERROR: trailing whitespace
#36916: FILE: tests/data/acpi/q35/DSDT.dsl:2226:
+                    Zero, $

ERROR: trailing whitespace
#36917: FILE: tests/data/acpi/q35/DSDT.dsl:2227:
+                    GSIE, $

ERROR: trailing whitespace
#36919: FILE: tests/data/acpi/q35/DSDT.dsl:2229:
+                }, $

ERROR: trailing whitespace
#36923: FILE: tests/data/acpi/q35/DSDT.dsl:2233:
+                    0x001EFFFF, $

ERROR: trailing whitespace
#36924: FILE: tests/data/acpi/q35/DSDT.dsl:2234:
+                    One, $

ERROR: trailing whitespace
#36925: FILE: tests/data/acpi/q35/DSDT.dsl:2235:
+                    GSIF, $

ERROR: trailing whitespace
#36927: FILE: tests/data/acpi/q35/DSDT.dsl:2237:
+                }, $

ERROR: trailing whitespace
#36931: FILE: tests/data/acpi/q35/DSDT.dsl:2241:
+                    0x001EFFFF, $

ERROR: trailing whitespace
#36932: FILE: tests/data/acpi/q35/DSDT.dsl:2242:
+                    0x02, $

ERROR: trailing whitespace
#36933: FILE: tests/data/acpi/q35/DSDT.dsl:2243:
+                    GSIG, $

ERROR: trailing whitespace
#36935: FILE: tests/data/acpi/q35/DSDT.dsl:2245:
+                }, $

ERROR: trailing whitespace
#36939: FILE: tests/data/acpi/q35/DSDT.dsl:2249:
+                    0x001EFFFF, $

ERROR: trailing whitespace
#36940: FILE: tests/data/acpi/q35/DSDT.dsl:2250:
+                    0x03, $

ERROR: trailing whitespace
#36941: FILE: tests/data/acpi/q35/DSDT.dsl:2251:
+                    GSIH, $

ERROR: trailing whitespace
#36943: FILE: tests/data/acpi/q35/DSDT.dsl:2253:
+                }, $

ERROR: trailing whitespace
#36947: FILE: tests/data/acpi/q35/DSDT.dsl:2257:
+                    0x001FFFFF, $

ERROR: trailing whitespace
#36948: FILE: tests/data/acpi/q35/DSDT.dsl:2258:
+                    Zero, $

ERROR: trailing whitespace
#36949: FILE: tests/data/acpi/q35/DSDT.dsl:2259:
+                    GSIA, $

ERROR: trailing whitespace
#36951: FILE: tests/data/acpi/q35/DSDT.dsl:2261:
+                }, $

ERROR: trailing whitespace
#36955: FILE: tests/data/acpi/q35/DSDT.dsl:2265:
+                    0x001FFFFF, $

ERROR: trailing whitespace
#36956: FILE: tests/data/acpi/q35/DSDT.dsl:2266:
+                    One, $

ERROR: trailing whitespace
#36957: FILE: tests/data/acpi/q35/DSDT.dsl:2267:
+                    GSIB, $

ERROR: trailing whitespace
#36959: FILE: tests/data/acpi/q35/DSDT.dsl:2269:
+                }, $

ERROR: trailing whitespace
#36963: FILE: tests/data/acpi/q35/DSDT.dsl:2273:
+                    0x001FFFFF, $

ERROR: trailing whitespace
#36964: FILE: tests/data/acpi/q35/DSDT.dsl:2274:
+                    0x02, $

ERROR: trailing whitespace
#36965: FILE: tests/data/acpi/q35/DSDT.dsl:2275:
+                    GSIC, $

ERROR: trailing whitespace
#36967: FILE: tests/data/acpi/q35/DSDT.dsl:2277:
+                }, $

ERROR: trailing whitespace
#36971: FILE: tests/data/acpi/q35/DSDT.dsl:2281:
+                    0x001FFFFF, $

ERROR: trailing whitespace
#36972: FILE: tests/data/acpi/q35/DSDT.dsl:2282:
+                    0x03, $

ERROR: trailing whitespace
#36973: FILE: tests/data/acpi/q35/DSDT.dsl:2283:
+                    GSID, $

ERROR: trailing whitespace
#36992: FILE: tests/data/acpi/q35/DSDT.dsl:2302:
+            PRQA,   8, $

ERROR: trailing whitespace
#36993: FILE: tests/data/acpi/q35/DSDT.dsl:2303:
+            PRQB,   8, $

ERROR: trailing whitespace
#36994: FILE: tests/data/acpi/q35/DSDT.dsl:2304:
+            PRQC,   8, $

ERROR: trailing whitespace
#36995: FILE: tests/data/acpi/q35/DSDT.dsl:2305:
+            PRQD,   8, $

ERROR: trailing whitespace
#36996: FILE: tests/data/acpi/q35/DSDT.dsl:2306:
+            Offset (0x08), $

ERROR: trailing whitespace
#36997: FILE: tests/data/acpi/q35/DSDT.dsl:2307:
+            PRQE,   8, $

ERROR: trailing whitespace
#36998: FILE: tests/data/acpi/q35/DSDT.dsl:2308:
+            PRQF,   8, $

ERROR: trailing whitespace
#36999: FILE: tests/data/acpi/q35/DSDT.dsl:2309:
+            PRQG,   8, $

ERROR: trailing whitespace
#37551: FILE: tests/data/acpi/q35/DSDT.dsl:2861:
+                Offset (0x04), $

ERROR: trailing whitespace
#37552: FILE: tests/data/acpi/q35/DSDT.dsl:2862:
+                CPEN,   1, $

ERROR: trailing whitespace
#37553: FILE: tests/data/acpi/q35/DSDT.dsl:2863:
+                CINS,   1, $

ERROR: trailing whitespace
#37554: FILE: tests/data/acpi/q35/DSDT.dsl:2864:
+                CRMV,   1, $

ERROR: trailing whitespace
#37555: FILE: tests/data/acpi/q35/DSDT.dsl:2865:
+                CEJ0,   1, $

ERROR: trailing whitespace
#37556: FILE: tests/data/acpi/q35/DSDT.dsl:2866:
+                Offset (0x05), $

ERROR: trailing whitespace
#37562: FILE: tests/data/acpi/q35/DSDT.dsl:2872:
+                CSEL,   32, $

ERROR: trailing whitespace
#37563: FILE: tests/data/acpi/q35/DSDT.dsl:2873:
+                Offset (0x08), $

ERROR: trailing whitespace
#37791: FILE: tests/data/acpi/q35/DSDT.dsl:3101:
+            One, $

ERROR: trailing whitespace
#37792: FILE: tests/data/acpi/q35/DSDT.dsl:3102:
+            One, $

ERROR: trailing whitespace
#37793: FILE: tests/data/acpi/q35/DSDT.dsl:3103:
+            Zero, $

ERROR: trailing whitespace
#37798: FILE: tests/data/acpi/q35/DSDT.dsl:3108:
+            0x02, $

ERROR: trailing whitespace
#37799: FILE: tests/data/acpi/q35/DSDT.dsl:3109:
+            0x02, $

ERROR: trailing whitespace
#37800: FILE: tests/data/acpi/q35/DSDT.dsl:3110:
+            Zero, $

ERROR: trailing whitespace
#37805: FILE: tests/data/acpi/q35/DSDT.dsl:3115:
+            Zero, $

ERROR: trailing whitespace
#37806: FILE: tests/data/acpi/q35/DSDT.dsl:3116:
+            Zero, $

ERROR: trailing whitespace
#37807: FILE: tests/data/acpi/q35/DSDT.dsl:3117:
+            Zero, $

ERROR: trailing whitespace
#37872: FILE: tests/data/acpi/q35/DSDT.dsl:3182:
+                    PPIN,   8, $

ERROR: trailing whitespace
#37873: FILE: tests/data/acpi/q35/DSDT.dsl:3183:
+                    PPIP,   32, $

ERROR: trailing whitespace
#37874: FILE: tests/data/acpi/q35/DSDT.dsl:3184:
+                    PPRP,   32, $

ERROR: trailing whitespace
#37875: FILE: tests/data/acpi/q35/DSDT.dsl:3185:
+                    PPRQ,   32, $

ERROR: trailing whitespace
#37876: FILE: tests/data/acpi/q35/DSDT.dsl:3186:
+                    PPRM,   32, $

ERROR: trailing whitespace
#37904: FILE: tests/data/acpi/q35/DSDT.dsl:3214:
+                    Zero, $

ERROR: trailing whitespace
#37909: FILE: tests/data/acpi/q35/DSDT.dsl:3219:
+                    Zero, $

ERROR: trailing whitespace
#37910: FILE: tests/data/acpi/q35/DSDT.dsl:3220:
+                    Zero, $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/DSDT.ipmibt and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/DSDT.ipmibt.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/DSDT.ipmibt.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#38055: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:5:
+ * $

ERROR: trailing whitespace
#38145: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:95:
+                VEND,   32, $

ERROR: trailing whitespace
#38309: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:259:
+                    0xFFFF, $

ERROR: trailing whitespace
#38310: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:260:
+                    Zero, $

ERROR: trailing whitespace
#38311: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:261:
+                    LNKE, $

ERROR: trailing whitespace
#38313: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:263:
+                }, $

ERROR: trailing whitespace
#38317: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:267:
+                    0xFFFF, $

ERROR: trailing whitespace
#38318: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:268:
+                    One, $

ERROR: trailing whitespace
#38319: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:269:
+                    LNKF, $

ERROR: trailing whitespace
#38321: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:271:
+                }, $

ERROR: trailing whitespace
#38325: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:275:
+                    0xFFFF, $

ERROR: trailing whitespace
#38326: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:276:
+                    0x02, $

ERROR: trailing whitespace
#38327: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:277:
+                    LNKG, $

ERROR: trailing whitespace
#38329: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:279:
+                }, $

ERROR: trailing whitespace
#38333: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:283:
+                    0xFFFF, $

ERROR: trailing whitespace
#38334: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:284:
+                    0x03, $

ERROR: trailing whitespace
#38335: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:285:
+                    LNKH, $

ERROR: trailing whitespace
#38337: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:287:
+                }, $

ERROR: trailing whitespace
#38341: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:291:
+                    0x0001FFFF, $

ERROR: trailing whitespace
#38342: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:292:
+                    Zero, $

ERROR: trailing whitespace
#38343: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:293:
+                    LNKF, $

ERROR: trailing whitespace
#38345: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:295:
+                }, $

ERROR: trailing whitespace
#38349: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:299:
+                    0x0001FFFF, $

ERROR: trailing whitespace
#38350: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:300:
+                    One, $

ERROR: trailing whitespace
#38351: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:301:
+                    LNKG, $

ERROR: trailing whitespace
#38353: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:303:
+                }, $

ERROR: trailing whitespace
#38357: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:307:
+                    0x0001FFFF, $

ERROR: trailing whitespace
#38358: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:308:
+                    0x02, $

ERROR: trailing whitespace
#38359: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:309:
+                    LNKH, $

ERROR: trailing whitespace
#38361: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:311:
+                }, $

ERROR: trailing whitespace
#38365: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:315:
+                    0x0001FFFF, $

ERROR: trailing whitespace
#38366: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:316:
+                    0x03, $

ERROR: trailing whitespace
#38367: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:317:
+                    LNKE, $

ERROR: trailing whitespace
#38369: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:319:
+                }, $

ERROR: trailing whitespace
#38373: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:323:
+                    0x0002FFFF, $

ERROR: trailing whitespace
#38374: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:324:
+                    Zero, $

ERROR: trailing whitespace
#38375: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:325:
+                    LNKG, $

ERROR: trailing whitespace
#38377: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:327:
+                }, $

ERROR: trailing whitespace
#38381: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:331:
+                    0x0002FFFF, $

ERROR: trailing whitespace
#38382: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:332:
+                    One, $

ERROR: trailing whitespace
#38383: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:333:
+                    LNKH, $

ERROR: trailing whitespace
#38385: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:335:
+                }, $

ERROR: trailing whitespace
#38389: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:339:
+                    0x0002FFFF, $

ERROR: trailing whitespace
#38390: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:340:
+                    0x02, $

ERROR: trailing whitespace
#38391: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:341:
+                    LNKE, $

ERROR: trailing whitespace
#38393: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:343:
+                }, $

ERROR: trailing whitespace
#38397: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:347:
+                    0x0002FFFF, $

ERROR: trailing whitespace
#38398: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:348:
+                    0x03, $

ERROR: trailing whitespace
#38399: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:349:
+                    LNKF, $

ERROR: trailing whitespace
#38401: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:351:
+                }, $

ERROR: trailing whitespace
#38405: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:355:
+                    0x0003FFFF, $

ERROR: trailing whitespace
#38406: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:356:
+                    Zero, $

ERROR: trailing whitespace
#38407: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:357:
+                    LNKH, $

ERROR: trailing whitespace
#38409: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:359:
+                }, $

ERROR: trailing whitespace
#38413: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:363:
+                    0x0003FFFF, $

ERROR: trailing whitespace
#38414: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:364:
+                    One, $

ERROR: trailing whitespace
#38415: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:365:
+                    LNKE, $

ERROR: trailing whitespace
#38417: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:367:
+                }, $

ERROR: trailing whitespace
#38421: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:371:
+                    0x0003FFFF, $

ERROR: trailing whitespace
#38422: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:372:
+                    0x02, $

ERROR: trailing whitespace
#38423: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:373:
+                    LNKF, $

ERROR: trailing whitespace
#38425: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:375:
+                }, $

ERROR: trailing whitespace
#38429: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:379:
+                    0x0003FFFF, $

ERROR: trailing whitespace
#38430: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:380:
+                    0x03, $

ERROR: trailing whitespace
#38431: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:381:
+                    LNKG, $

ERROR: trailing whitespace
#38433: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:383:
+                }, $

ERROR: trailing whitespace
#38437: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:387:
+                    0x0004FFFF, $

ERROR: trailing whitespace
#38438: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:388:
+                    Zero, $

ERROR: trailing whitespace
#38439: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:389:
+                    LNKE, $

ERROR: trailing whitespace
#38441: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:391:
+                }, $

ERROR: trailing whitespace
#38445: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:395:
+                    0x0004FFFF, $

ERROR: trailing whitespace
#38446: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:396:
+                    One, $

ERROR: trailing whitespace
#38447: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:397:
+                    LNKF, $

ERROR: trailing whitespace
#38449: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:399:
+                }, $

ERROR: trailing whitespace
#38453: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:403:
+                    0x0004FFFF, $

ERROR: trailing whitespace
#38454: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:404:
+                    0x02, $

ERROR: trailing whitespace
#38455: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:405:
+                    LNKG, $

ERROR: trailing whitespace
#38457: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:407:
+                }, $

ERROR: trailing whitespace
#38461: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:411:
+                    0x0004FFFF, $

ERROR: trailing whitespace
#38462: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:412:
+                    0x03, $

ERROR: trailing whitespace
#38463: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:413:
+                    LNKH, $

ERROR: trailing whitespace
#38465: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:415:
+                }, $

ERROR: trailing whitespace
#38469: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:419:
+                    0x0005FFFF, $

ERROR: trailing whitespace
#38470: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:420:
+                    Zero, $

ERROR: trailing whitespace
#38471: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:421:
+                    LNKF, $

ERROR: trailing whitespace
#38473: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:423:
+                }, $

ERROR: trailing whitespace
#38477: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:427:
+                    0x0005FFFF, $

ERROR: trailing whitespace
#38478: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:428:
+                    One, $

ERROR: trailing whitespace
#38479: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:429:
+                    LNKG, $

ERROR: trailing whitespace
#38481: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:431:
+                }, $

ERROR: trailing whitespace
#38485: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:435:
+                    0x0005FFFF, $

ERROR: trailing whitespace
#38486: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:436:
+                    0x02, $

ERROR: trailing whitespace
#38487: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:437:
+                    LNKH, $

ERROR: trailing whitespace
#38489: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:439:
+                }, $

ERROR: trailing whitespace
#38493: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:443:
+                    0x0005FFFF, $

ERROR: trailing whitespace
#38494: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:444:
+                    0x03, $

ERROR: trailing whitespace
#38495: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:445:
+                    LNKE, $

ERROR: trailing whitespace
#38497: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:447:
+                }, $

ERROR: trailing whitespace
#38501: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:451:
+                    0x0006FFFF, $

ERROR: trailing whitespace
#38502: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:452:
+                    Zero, $

ERROR: trailing whitespace
#38503: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:453:
+                    LNKG, $

ERROR: trailing whitespace
#38505: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:455:
+                }, $

ERROR: trailing whitespace
#38509: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:459:
+                    0x0006FFFF, $

ERROR: trailing whitespace
#38510: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:460:
+                    One, $

ERROR: trailing whitespace
#38511: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:461:
+                    LNKH, $

ERROR: trailing whitespace
#38513: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:463:
+                }, $

ERROR: trailing whitespace
#38517: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:467:
+                    0x0006FFFF, $

ERROR: trailing whitespace
#38518: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:468:
+                    0x02, $

ERROR: trailing whitespace
#38519: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:469:
+                    LNKE, $

ERROR: trailing whitespace
#38521: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:471:
+                }, $

ERROR: trailing whitespace
#38525: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:475:
+                    0x0006FFFF, $

ERROR: trailing whitespace
#38526: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:476:
+                    0x03, $

ERROR: trailing whitespace
#38527: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:477:
+                    LNKF, $

ERROR: trailing whitespace
#38529: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:479:
+                }, $

ERROR: trailing whitespace
#38533: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:483:
+                    0x0007FFFF, $

ERROR: trailing whitespace
#38534: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:484:
+                    Zero, $

ERROR: trailing whitespace
#38535: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:485:
+                    LNKH, $

ERROR: trailing whitespace
#38537: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:487:
+                }, $

ERROR: trailing whitespace
#38541: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:491:
+                    0x0007FFFF, $

ERROR: trailing whitespace
#38542: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:492:
+                    One, $

ERROR: trailing whitespace
#38543: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:493:
+                    LNKE, $

ERROR: trailing whitespace
#38545: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:495:
+                }, $

ERROR: trailing whitespace
#38549: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:499:
+                    0x0007FFFF, $

ERROR: trailing whitespace
#38550: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:500:
+                    0x02, $

ERROR: trailing whitespace
#38551: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:501:
+                    LNKF, $

ERROR: trailing whitespace
#38553: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:503:
+                }, $

ERROR: trailing whitespace
#38557: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:507:
+                    0x0007FFFF, $

ERROR: trailing whitespace
#38558: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:508:
+                    0x03, $

ERROR: trailing whitespace
#38559: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:509:
+                    LNKG, $

ERROR: trailing whitespace
#38561: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:511:
+                }, $

ERROR: trailing whitespace
#38565: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:515:
+                    0x0008FFFF, $

ERROR: trailing whitespace
#38566: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:516:
+                    Zero, $

ERROR: trailing whitespace
#38567: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:517:
+                    LNKE, $

ERROR: trailing whitespace
#38569: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:519:
+                }, $

ERROR: trailing whitespace
#38573: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:523:
+                    0x0008FFFF, $

ERROR: trailing whitespace
#38574: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:524:
+                    One, $

ERROR: trailing whitespace
#38575: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:525:
+                    LNKF, $

ERROR: trailing whitespace
#38577: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:527:
+                }, $

ERROR: trailing whitespace
#38581: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:531:
+                    0x0008FFFF, $

ERROR: trailing whitespace
#38582: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:532:
+                    0x02, $

ERROR: trailing whitespace
#38583: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:533:
+                    LNKG, $

ERROR: trailing whitespace
#38585: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:535:
+                }, $

ERROR: trailing whitespace
#38589: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:539:
+                    0x0008FFFF, $

ERROR: trailing whitespace
#38590: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:540:
+                    0x03, $

ERROR: trailing whitespace
#38591: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:541:
+                    LNKH, $

ERROR: trailing whitespace
#38593: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:543:
+                }, $

ERROR: trailing whitespace
#38597: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:547:
+                    0x0009FFFF, $

ERROR: trailing whitespace
#38598: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:548:
+                    Zero, $

ERROR: trailing whitespace
#38599: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:549:
+                    LNKF, $

ERROR: trailing whitespace
#38601: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:551:
+                }, $

ERROR: trailing whitespace
#38605: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:555:
+                    0x0009FFFF, $

ERROR: trailing whitespace
#38606: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:556:
+                    One, $

ERROR: trailing whitespace
#38607: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:557:
+                    LNKG, $

ERROR: trailing whitespace
#38609: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:559:
+                }, $

ERROR: trailing whitespace
#38613: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:563:
+                    0x0009FFFF, $

ERROR: trailing whitespace
#38614: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:564:
+                    0x02, $

ERROR: trailing whitespace
#38615: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:565:
+                    LNKH, $

ERROR: trailing whitespace
#38617: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:567:
+                }, $

ERROR: trailing whitespace
#38621: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:571:
+                    0x0009FFFF, $

ERROR: trailing whitespace
#38622: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:572:
+                    0x03, $

ERROR: trailing whitespace
#38623: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:573:
+                    LNKE, $

ERROR: trailing whitespace
#38625: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:575:
+                }, $

ERROR: trailing whitespace
#38629: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:579:
+                    0x000AFFFF, $

ERROR: trailing whitespace
#38630: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:580:
+                    Zero, $

ERROR: trailing whitespace
#38631: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:581:
+                    LNKG, $

ERROR: trailing whitespace
#38633: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:583:
+                }, $

ERROR: trailing whitespace
#38637: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:587:
+                    0x000AFFFF, $

ERROR: trailing whitespace
#38638: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:588:
+                    One, $

ERROR: trailing whitespace
#38639: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:589:
+                    LNKH, $

ERROR: trailing whitespace
#38641: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:591:
+                }, $

ERROR: trailing whitespace
#38645: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:595:
+                    0x000AFFFF, $

ERROR: trailing whitespace
#38646: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:596:
+                    0x02, $

ERROR: trailing whitespace
#38647: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:597:
+                    LNKE, $

ERROR: trailing whitespace
#38649: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:599:
+                }, $

ERROR: trailing whitespace
#38653: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:603:
+                    0x000AFFFF, $

ERROR: trailing whitespace
#38654: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:604:
+                    0x03, $

ERROR: trailing whitespace
#38655: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:605:
+                    LNKF, $

ERROR: trailing whitespace
#38657: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:607:
+                }, $

ERROR: trailing whitespace
#38661: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:611:
+                    0x000BFFFF, $

ERROR: trailing whitespace
#38662: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:612:
+                    Zero, $

ERROR: trailing whitespace
#38663: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:613:
+                    LNKH, $

ERROR: trailing whitespace
#38665: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:615:
+                }, $

ERROR: trailing whitespace
#38669: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:619:
+                    0x000BFFFF, $

ERROR: trailing whitespace
#38670: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:620:
+                    One, $

ERROR: trailing whitespace
#38671: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:621:
+                    LNKE, $

ERROR: trailing whitespace
#38673: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:623:
+                }, $

ERROR: trailing whitespace
#38677: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:627:
+                    0x000BFFFF, $

ERROR: trailing whitespace
#38678: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:628:
+                    0x02, $

ERROR: trailing whitespace
#38679: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:629:
+                    LNKF, $

ERROR: trailing whitespace
#38681: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:631:
+                }, $

ERROR: trailing whitespace
#38685: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:635:
+                    0x000BFFFF, $

ERROR: trailing whitespace
#38686: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:636:
+                    0x03, $

ERROR: trailing whitespace
#38687: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:637:
+                    LNKG, $

ERROR: trailing whitespace
#38689: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:639:
+                }, $

ERROR: trailing whitespace
#38693: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:643:
+                    0x000CFFFF, $

ERROR: trailing whitespace
#38694: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:644:
+                    Zero, $

ERROR: trailing whitespace
#38695: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:645:
+                    LNKE, $

ERROR: trailing whitespace
#38697: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:647:
+                }, $

ERROR: trailing whitespace
#38701: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:651:
+                    0x000CFFFF, $

ERROR: trailing whitespace
#38702: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:652:
+                    One, $

ERROR: trailing whitespace
#38703: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:653:
+                    LNKF, $

ERROR: trailing whitespace
#38705: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:655:
+                }, $

ERROR: trailing whitespace
#38709: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:659:
+                    0x000CFFFF, $

ERROR: trailing whitespace
#38710: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:660:
+                    0x02, $

ERROR: trailing whitespace
#38711: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:661:
+                    LNKG, $

ERROR: trailing whitespace
#38713: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:663:
+                }, $

ERROR: trailing whitespace
#38717: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:667:
+                    0x000CFFFF, $

ERROR: trailing whitespace
#38718: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:668:
+                    0x03, $

ERROR: trailing whitespace
#38719: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:669:
+                    LNKH, $

ERROR: trailing whitespace
#38721: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:671:
+                }, $

ERROR: trailing whitespace
#38725: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:675:
+                    0x000DFFFF, $

ERROR: trailing whitespace
#38726: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:676:
+                    Zero, $

ERROR: trailing whitespace
#38727: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:677:
+                    LNKF, $

ERROR: trailing whitespace
#38729: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:679:
+                }, $

ERROR: trailing whitespace
#38733: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:683:
+                    0x000DFFFF, $

ERROR: trailing whitespace
#38734: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:684:
+                    One, $

ERROR: trailing whitespace
#38735: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:685:
+                    LNKG, $

ERROR: trailing whitespace
#38737: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:687:
+                }, $

ERROR: trailing whitespace
#38741: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:691:
+                    0x000DFFFF, $

ERROR: trailing whitespace
#38742: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:692:
+                    0x02, $

ERROR: trailing whitespace
#38743: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:693:
+                    LNKH, $

ERROR: trailing whitespace
#38745: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:695:
+                }, $

ERROR: trailing whitespace
#38749: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:699:
+                    0x000DFFFF, $

ERROR: trailing whitespace
#38750: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:700:
+                    0x03, $

ERROR: trailing whitespace
#38751: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:701:
+                    LNKE, $

ERROR: trailing whitespace
#38753: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:703:
+                }, $

ERROR: trailing whitespace
#38757: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:707:
+                    0x000EFFFF, $

ERROR: trailing whitespace
#38758: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:708:
+                    Zero, $

ERROR: trailing whitespace
#38759: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:709:
+                    LNKG, $

ERROR: trailing whitespace
#38761: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:711:
+                }, $

ERROR: trailing whitespace
#38765: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:715:
+                    0x000EFFFF, $

ERROR: trailing whitespace
#38766: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:716:
+                    One, $

ERROR: trailing whitespace
#38767: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:717:
+                    LNKH, $

ERROR: trailing whitespace
#38769: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:719:
+                }, $

ERROR: trailing whitespace
#38773: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:723:
+                    0x000EFFFF, $

ERROR: trailing whitespace
#38774: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:724:
+                    0x02, $

ERROR: trailing whitespace
#38775: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:725:
+                    LNKE, $

ERROR: trailing whitespace
#38777: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:727:
+                }, $

ERROR: trailing whitespace
#38781: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:731:
+                    0x000EFFFF, $

ERROR: trailing whitespace
#38782: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:732:
+                    0x03, $

ERROR: trailing whitespace
#38783: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:733:
+                    LNKF, $

ERROR: trailing whitespace
#38785: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:735:
+                }, $

ERROR: trailing whitespace
#38789: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:739:
+                    0x000FFFFF, $

ERROR: trailing whitespace
#38790: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:740:
+                    Zero, $

ERROR: trailing whitespace
#38791: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:741:
+                    LNKH, $

ERROR: trailing whitespace
#38793: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:743:
+                }, $

ERROR: trailing whitespace
#38797: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:747:
+                    0x000FFFFF, $

ERROR: trailing whitespace
#38798: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:748:
+                    One, $

ERROR: trailing whitespace
#38799: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:749:
+                    LNKE, $

ERROR: trailing whitespace
#38801: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:751:
+                }, $

ERROR: trailing whitespace
#38805: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:755:
+                    0x000FFFFF, $

ERROR: trailing whitespace
#38806: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:756:
+                    0x02, $

ERROR: trailing whitespace
#38807: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:757:
+                    LNKF, $

ERROR: trailing whitespace
#38809: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:759:
+                }, $

ERROR: trailing whitespace
#38813: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:763:
+                    0x000FFFFF, $

ERROR: trailing whitespace
#38814: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:764:
+                    0x03, $

ERROR: trailing whitespace
#38815: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:765:
+                    LNKG, $

ERROR: trailing whitespace
#38817: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:767:
+                }, $

ERROR: trailing whitespace
#38821: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:771:
+                    0x0010FFFF, $

ERROR: trailing whitespace
#38822: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:772:
+                    Zero, $

ERROR: trailing whitespace
#38823: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:773:
+                    LNKE, $

ERROR: trailing whitespace
#38825: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:775:
+                }, $

ERROR: trailing whitespace
#38829: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:779:
+                    0x0010FFFF, $

ERROR: trailing whitespace
#38830: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:780:
+                    One, $

ERROR: trailing whitespace
#38831: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:781:
+                    LNKF, $

ERROR: trailing whitespace
#38833: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:783:
+                }, $

ERROR: trailing whitespace
#38837: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:787:
+                    0x0010FFFF, $

ERROR: trailing whitespace
#38838: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:788:
+                    0x02, $

ERROR: trailing whitespace
#38839: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:789:
+                    LNKG, $

ERROR: trailing whitespace
#38841: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:791:
+                }, $

ERROR: trailing whitespace
#38845: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:795:
+                    0x0010FFFF, $

ERROR: trailing whitespace
#38846: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:796:
+                    0x03, $

ERROR: trailing whitespace
#38847: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:797:
+                    LNKH, $

ERROR: trailing whitespace
#38849: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:799:
+                }, $

ERROR: trailing whitespace
#38853: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:803:
+                    0x0011FFFF, $

ERROR: trailing whitespace
#38854: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:804:
+                    Zero, $

ERROR: trailing whitespace
#38855: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:805:
+                    LNKF, $

ERROR: trailing whitespace
#38857: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:807:
+                }, $

ERROR: trailing whitespace
#38861: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:811:
+                    0x0011FFFF, $

ERROR: trailing whitespace
#38862: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:812:
+                    One, $

ERROR: trailing whitespace
#38863: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:813:
+                    LNKG, $

ERROR: trailing whitespace
#38865: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:815:
+                }, $

ERROR: trailing whitespace
#38869: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:819:
+                    0x0011FFFF, $

ERROR: trailing whitespace
#38870: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:820:
+                    0x02, $

ERROR: trailing whitespace
#38871: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:821:
+                    LNKH, $

ERROR: trailing whitespace
#38873: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:823:
+                }, $

ERROR: trailing whitespace
#38877: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:827:
+                    0x0011FFFF, $

ERROR: trailing whitespace
#38878: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:828:
+                    0x03, $

ERROR: trailing whitespace
#38879: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:829:
+                    LNKE, $

ERROR: trailing whitespace
#38881: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:831:
+                }, $

ERROR: trailing whitespace
#38885: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:835:
+                    0x0012FFFF, $

ERROR: trailing whitespace
#38886: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:836:
+                    Zero, $

ERROR: trailing whitespace
#38887: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:837:
+                    LNKG, $

ERROR: trailing whitespace
#38889: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:839:
+                }, $

ERROR: trailing whitespace
#38893: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:843:
+                    0x0012FFFF, $

ERROR: trailing whitespace
#38894: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:844:
+                    One, $

ERROR: trailing whitespace
#38895: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:845:
+                    LNKH, $

ERROR: trailing whitespace
#38897: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:847:
+                }, $

ERROR: trailing whitespace
#38901: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:851:
+                    0x0012FFFF, $

ERROR: trailing whitespace
#38902: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:852:
+                    0x02, $

ERROR: trailing whitespace
#38903: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:853:
+                    LNKE, $

ERROR: trailing whitespace
#38905: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:855:
+                }, $

ERROR: trailing whitespace
#38909: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:859:
+                    0x0012FFFF, $

ERROR: trailing whitespace
#38910: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:860:
+                    0x03, $

ERROR: trailing whitespace
#38911: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:861:
+                    LNKF, $

ERROR: trailing whitespace
#38913: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:863:
+                }, $

ERROR: trailing whitespace
#38917: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:867:
+                    0x0013FFFF, $

ERROR: trailing whitespace
#38918: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:868:
+                    Zero, $

ERROR: trailing whitespace
#38919: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:869:
+                    LNKH, $

ERROR: trailing whitespace
#38921: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:871:
+                }, $

ERROR: trailing whitespace
#38925: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:875:
+                    0x0013FFFF, $

ERROR: trailing whitespace
#38926: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:876:
+                    One, $

ERROR: trailing whitespace
#38927: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:877:
+                    LNKE, $

ERROR: trailing whitespace
#38929: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:879:
+                }, $

ERROR: trailing whitespace
#38933: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:883:
+                    0x0013FFFF, $

ERROR: trailing whitespace
#38934: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:884:
+                    0x02, $

ERROR: trailing whitespace
#38935: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:885:
+                    LNKF, $

ERROR: trailing whitespace
#38937: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:887:
+                }, $

ERROR: trailing whitespace
#38941: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:891:
+                    0x0013FFFF, $

ERROR: trailing whitespace
#38942: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:892:
+                    0x03, $

ERROR: trailing whitespace
#38943: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:893:
+                    LNKG, $

ERROR: trailing whitespace
#38945: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:895:
+                }, $

ERROR: trailing whitespace
#38949: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:899:
+                    0x0014FFFF, $

ERROR: trailing whitespace
#38950: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:900:
+                    Zero, $

ERROR: trailing whitespace
#38951: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:901:
+                    LNKE, $

ERROR: trailing whitespace
#38953: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:903:
+                }, $

ERROR: trailing whitespace
#38957: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:907:
+                    0x0014FFFF, $

ERROR: trailing whitespace
#38958: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:908:
+                    One, $

ERROR: trailing whitespace
#38959: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:909:
+                    LNKF, $

ERROR: trailing whitespace
#38961: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:911:
+                }, $

ERROR: trailing whitespace
#38965: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:915:
+                    0x0014FFFF, $

ERROR: trailing whitespace
#38966: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:916:
+                    0x02, $

ERROR: trailing whitespace
#38967: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:917:
+                    LNKG, $

ERROR: trailing whitespace
#38969: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:919:
+                }, $

ERROR: trailing whitespace
#38973: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:923:
+                    0x0014FFFF, $

ERROR: trailing whitespace
#38974: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:924:
+                    0x03, $

ERROR: trailing whitespace
#38975: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:925:
+                    LNKH, $

ERROR: trailing whitespace
#38977: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:927:
+                }, $

ERROR: trailing whitespace
#38981: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:931:
+                    0x0015FFFF, $

ERROR: trailing whitespace
#38982: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:932:
+                    Zero, $

ERROR: trailing whitespace
#38983: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:933:
+                    LNKF, $

ERROR: trailing whitespace
#38985: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:935:
+                }, $

ERROR: trailing whitespace
#38989: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:939:
+                    0x0015FFFF, $

ERROR: trailing whitespace
#38990: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:940:
+                    One, $

ERROR: trailing whitespace
#38991: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:941:
+                    LNKG, $

ERROR: trailing whitespace
#38993: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:943:
+                }, $

ERROR: trailing whitespace
#38997: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:947:
+                    0x0015FFFF, $

ERROR: trailing whitespace
#38998: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:948:
+                    0x02, $

ERROR: trailing whitespace
#38999: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:949:
+                    LNKH, $

ERROR: trailing whitespace
#39001: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:951:
+                }, $

ERROR: trailing whitespace
#39005: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:955:
+                    0x0015FFFF, $

ERROR: trailing whitespace
#39006: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:956:
+                    0x03, $

ERROR: trailing whitespace
#39007: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:957:
+                    LNKE, $

ERROR: trailing whitespace
#39009: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:959:
+                }, $

ERROR: trailing whitespace
#39013: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:963:
+                    0x0016FFFF, $

ERROR: trailing whitespace
#39014: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:964:
+                    Zero, $

ERROR: trailing whitespace
#39015: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:965:
+                    LNKG, $

ERROR: trailing whitespace
#39017: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:967:
+                }, $

ERROR: trailing whitespace
#39021: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:971:
+                    0x0016FFFF, $

ERROR: trailing whitespace
#39022: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:972:
+                    One, $

ERROR: trailing whitespace
#39023: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:973:
+                    LNKH, $

ERROR: trailing whitespace
#39025: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:975:
+                }, $

ERROR: trailing whitespace
#39029: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:979:
+                    0x0016FFFF, $

ERROR: trailing whitespace
#39030: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:980:
+                    0x02, $

ERROR: trailing whitespace
#39031: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:981:
+                    LNKE, $

ERROR: trailing whitespace
#39033: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:983:
+                }, $

ERROR: trailing whitespace
#39037: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:987:
+                    0x0016FFFF, $

ERROR: trailing whitespace
#39038: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:988:
+                    0x03, $

ERROR: trailing whitespace
#39039: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:989:
+                    LNKF, $

ERROR: trailing whitespace
#39041: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:991:
+                }, $

ERROR: trailing whitespace
#39045: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:995:
+                    0x0017FFFF, $

ERROR: trailing whitespace
#39046: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:996:
+                    Zero, $

ERROR: trailing whitespace
#39047: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:997:
+                    LNKH, $

ERROR: trailing whitespace
#39049: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:999:
+                }, $

ERROR: trailing whitespace
#39053: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1003:
+                    0x0017FFFF, $

ERROR: trailing whitespace
#39054: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1004:
+                    One, $

ERROR: trailing whitespace
#39055: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1005:
+                    LNKE, $

ERROR: trailing whitespace
#39057: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1007:
+                }, $

ERROR: trailing whitespace
#39061: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1011:
+                    0x0017FFFF, $

ERROR: trailing whitespace
#39062: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1012:
+                    0x02, $

ERROR: trailing whitespace
#39063: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1013:
+                    LNKF, $

ERROR: trailing whitespace
#39065: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1015:
+                }, $

ERROR: trailing whitespace
#39069: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1019:
+                    0x0017FFFF, $

ERROR: trailing whitespace
#39070: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1020:
+                    0x03, $

ERROR: trailing whitespace
#39071: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1021:
+                    LNKG, $

ERROR: trailing whitespace
#39073: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1023:
+                }, $

ERROR: trailing whitespace
#39077: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1027:
+                    0x0018FFFF, $

ERROR: trailing whitespace
#39078: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1028:
+                    Zero, $

ERROR: trailing whitespace
#39079: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1029:
+                    LNKE, $

ERROR: trailing whitespace
#39081: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1031:
+                }, $

ERROR: trailing whitespace
#39085: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1035:
+                    0x0018FFFF, $

ERROR: trailing whitespace
#39086: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1036:
+                    One, $

ERROR: trailing whitespace
#39087: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1037:
+                    LNKF, $

ERROR: trailing whitespace
#39089: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1039:
+                }, $

ERROR: trailing whitespace
#39093: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1043:
+                    0x0018FFFF, $

ERROR: trailing whitespace
#39094: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1044:
+                    0x02, $

ERROR: trailing whitespace
#39095: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1045:
+                    LNKG, $

ERROR: trailing whitespace
#39097: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1047:
+                }, $

ERROR: trailing whitespace
#39101: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1051:
+                    0x0018FFFF, $

ERROR: trailing whitespace
#39102: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1052:
+                    0x03, $

ERROR: trailing whitespace
#39103: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1053:
+                    LNKH, $

ERROR: trailing whitespace
#39105: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1055:
+                }, $

ERROR: trailing whitespace
#39109: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1059:
+                    0x0019FFFF, $

ERROR: trailing whitespace
#39110: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1060:
+                    Zero, $

ERROR: trailing whitespace
#39111: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1061:
+                    LNKA, $

ERROR: trailing whitespace
#39113: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1063:
+                }, $

ERROR: trailing whitespace
#39117: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1067:
+                    0x0019FFFF, $

ERROR: trailing whitespace
#39118: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1068:
+                    One, $

ERROR: trailing whitespace
#39119: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1069:
+                    LNKB, $

ERROR: trailing whitespace
#39121: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1071:
+                }, $

ERROR: trailing whitespace
#39125: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1075:
+                    0x0019FFFF, $

ERROR: trailing whitespace
#39126: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1076:
+                    0x02, $

ERROR: trailing whitespace
#39127: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1077:
+                    LNKC, $

ERROR: trailing whitespace
#39129: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1079:
+                }, $

ERROR: trailing whitespace
#39133: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1083:
+                    0x0019FFFF, $

ERROR: trailing whitespace
#39134: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1084:
+                    0x03, $

ERROR: trailing whitespace
#39135: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1085:
+                    LNKD, $

ERROR: trailing whitespace
#39137: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1087:
+                }, $

ERROR: trailing whitespace
#39141: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1091:
+                    0x001AFFFF, $

ERROR: trailing whitespace
#39142: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1092:
+                    Zero, $

ERROR: trailing whitespace
#39143: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1093:
+                    LNKA, $

ERROR: trailing whitespace
#39145: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1095:
+                }, $

ERROR: trailing whitespace
#39149: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1099:
+                    0x001AFFFF, $

ERROR: trailing whitespace
#39150: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1100:
+                    One, $

ERROR: trailing whitespace
#39151: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1101:
+                    LNKB, $

ERROR: trailing whitespace
#39153: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1103:
+                }, $

ERROR: trailing whitespace
#39157: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1107:
+                    0x001AFFFF, $

ERROR: trailing whitespace
#39158: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1108:
+                    0x02, $

ERROR: trailing whitespace
#39159: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1109:
+                    LNKC, $

ERROR: trailing whitespace
#39161: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1111:
+                }, $

ERROR: trailing whitespace
#39165: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1115:
+                    0x001AFFFF, $

ERROR: trailing whitespace
#39166: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1116:
+                    0x03, $

ERROR: trailing whitespace
#39167: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1117:
+                    LNKD, $

ERROR: trailing whitespace
#39169: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1119:
+                }, $

ERROR: trailing whitespace
#39173: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1123:
+                    0x001BFFFF, $

ERROR: trailing whitespace
#39174: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1124:
+                    Zero, $

ERROR: trailing whitespace
#39175: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1125:
+                    LNKA, $

ERROR: trailing whitespace
#39177: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1127:
+                }, $

ERROR: trailing whitespace
#39181: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1131:
+                    0x001BFFFF, $

ERROR: trailing whitespace
#39182: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1132:
+                    One, $

ERROR: trailing whitespace
#39183: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1133:
+                    LNKB, $

ERROR: trailing whitespace
#39185: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1135:
+                }, $

ERROR: trailing whitespace
#39189: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1139:
+                    0x001BFFFF, $

ERROR: trailing whitespace
#39190: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1140:
+                    0x02, $

ERROR: trailing whitespace
#39191: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1141:
+                    LNKC, $

ERROR: trailing whitespace
#39193: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1143:
+                }, $

ERROR: trailing whitespace
#39197: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1147:
+                    0x001BFFFF, $

ERROR: trailing whitespace
#39198: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1148:
+                    0x03, $

ERROR: trailing whitespace
#39199: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1149:
+                    LNKD, $

ERROR: trailing whitespace
#39201: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1151:
+                }, $

ERROR: trailing whitespace
#39205: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1155:
+                    0x001CFFFF, $

ERROR: trailing whitespace
#39206: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1156:
+                    Zero, $

ERROR: trailing whitespace
#39207: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1157:
+                    LNKA, $

ERROR: trailing whitespace
#39209: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1159:
+                }, $

ERROR: trailing whitespace
#39213: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1163:
+                    0x001CFFFF, $

ERROR: trailing whitespace
#39214: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1164:
+                    One, $

ERROR: trailing whitespace
#39215: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1165:
+                    LNKB, $

ERROR: trailing whitespace
#39217: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1167:
+                }, $

ERROR: trailing whitespace
#39221: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1171:
+                    0x001CFFFF, $

ERROR: trailing whitespace
#39222: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1172:
+                    0x02, $

ERROR: trailing whitespace
#39223: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1173:
+                    LNKC, $

ERROR: trailing whitespace
#39225: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1175:
+                }, $

ERROR: trailing whitespace
#39229: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1179:
+                    0x001CFFFF, $

ERROR: trailing whitespace
#39230: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1180:
+                    0x03, $

ERROR: trailing whitespace
#39231: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1181:
+                    LNKD, $

ERROR: trailing whitespace
#39233: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1183:
+                }, $

ERROR: trailing whitespace
#39237: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1187:
+                    0x001DFFFF, $

ERROR: trailing whitespace
#39238: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1188:
+                    Zero, $

ERROR: trailing whitespace
#39239: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1189:
+                    LNKA, $

ERROR: trailing whitespace
#39241: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1191:
+                }, $

ERROR: trailing whitespace
#39245: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1195:
+                    0x001DFFFF, $

ERROR: trailing whitespace
#39246: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1196:
+                    One, $

ERROR: trailing whitespace
#39247: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1197:
+                    LNKB, $

ERROR: trailing whitespace
#39249: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1199:
+                }, $

ERROR: trailing whitespace
#39253: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1203:
+                    0x001DFFFF, $

ERROR: trailing whitespace
#39254: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1204:
+                    0x02, $

ERROR: trailing whitespace
#39255: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1205:
+                    LNKC, $

ERROR: trailing whitespace
#39257: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1207:
+                }, $

ERROR: trailing whitespace
#39261: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1211:
+                    0x001DFFFF, $

ERROR: trailing whitespace
#39262: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1212:
+                    0x03, $

ERROR: trailing whitespace
#39263: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1213:
+                    LNKD, $

ERROR: trailing whitespace
#39265: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1215:
+                }, $

ERROR: trailing whitespace
#39269: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1219:
+                    0x001EFFFF, $

ERROR: trailing whitespace
#39270: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1220:
+                    Zero, $

ERROR: trailing whitespace
#39271: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1221:
+                    LNKE, $

ERROR: trailing whitespace
#39273: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1223:
+                }, $

ERROR: trailing whitespace
#39277: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1227:
+                    0x001EFFFF, $

ERROR: trailing whitespace
#39278: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1228:
+                    One, $

ERROR: trailing whitespace
#39279: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1229:
+                    LNKF, $

ERROR: trailing whitespace
#39281: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1231:
+                }, $

ERROR: trailing whitespace
#39285: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1235:
+                    0x001EFFFF, $

ERROR: trailing whitespace
#39286: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1236:
+                    0x02, $

ERROR: trailing whitespace
#39287: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1237:
+                    LNKG, $

ERROR: trailing whitespace
#39289: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1239:
+                }, $

ERROR: trailing whitespace
#39293: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1243:
+                    0x001EFFFF, $

ERROR: trailing whitespace
#39294: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1244:
+                    0x03, $

ERROR: trailing whitespace
#39295: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1245:
+                    LNKH, $

ERROR: trailing whitespace
#39297: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1247:
+                }, $

ERROR: trailing whitespace
#39301: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1251:
+                    0x001FFFFF, $

ERROR: trailing whitespace
#39302: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1252:
+                    Zero, $

ERROR: trailing whitespace
#39303: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1253:
+                    LNKA, $

ERROR: trailing whitespace
#39305: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1255:
+                }, $

ERROR: trailing whitespace
#39309: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1259:
+                    0x001FFFFF, $

ERROR: trailing whitespace
#39310: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1260:
+                    One, $

ERROR: trailing whitespace
#39311: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1261:
+                    LNKB, $

ERROR: trailing whitespace
#39313: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1263:
+                }, $

ERROR: trailing whitespace
#39317: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1267:
+                    0x001FFFFF, $

ERROR: trailing whitespace
#39318: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1268:
+                    0x02, $

ERROR: trailing whitespace
#39319: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1269:
+                    LNKC, $

ERROR: trailing whitespace
#39321: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1271:
+                }, $

ERROR: trailing whitespace
#39325: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1275:
+                    0x001FFFFF, $

ERROR: trailing whitespace
#39326: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1276:
+                    0x03, $

ERROR: trailing whitespace
#39327: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1277:
+                    LNKD, $

ERROR: trailing whitespace
#39335: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1285:
+                    0xFFFF, $

ERROR: trailing whitespace
#39336: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1286:
+                    Zero, $

ERROR: trailing whitespace
#39337: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1287:
+                    GSIE, $

ERROR: trailing whitespace
#39339: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1289:
+                }, $

ERROR: trailing whitespace
#39343: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1293:
+                    0xFFFF, $

ERROR: trailing whitespace
#39344: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1294:
+                    One, $

ERROR: trailing whitespace
#39345: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1295:
+                    GSIF, $

ERROR: trailing whitespace
#39347: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1297:
+                }, $

ERROR: trailing whitespace
#39351: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1301:
+                    0xFFFF, $

ERROR: trailing whitespace
#39352: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1302:
+                    0x02, $

ERROR: trailing whitespace
#39353: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1303:
+                    GSIG, $

ERROR: trailing whitespace
#39355: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1305:
+                }, $

ERROR: trailing whitespace
#39359: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1309:
+                    0xFFFF, $

ERROR: trailing whitespace
#39360: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1310:
+                    0x03, $

ERROR: trailing whitespace
#39361: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1311:
+                    GSIH, $

ERROR: trailing whitespace
#39363: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1313:
+                }, $

ERROR: trailing whitespace
#39367: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1317:
+                    0x0001FFFF, $

ERROR: trailing whitespace
#39368: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1318:
+                    Zero, $

ERROR: trailing whitespace
#39369: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1319:
+                    GSIF, $

ERROR: trailing whitespace
#39371: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1321:
+                }, $

ERROR: trailing whitespace
#39375: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1325:
+                    0x0001FFFF, $

ERROR: trailing whitespace
#39376: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1326:
+                    One, $

ERROR: trailing whitespace
#39377: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1327:
+                    GSIG, $

ERROR: trailing whitespace
#39379: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1329:
+                }, $

ERROR: trailing whitespace
#39383: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1333:
+                    0x0001FFFF, $

ERROR: trailing whitespace
#39384: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1334:
+                    0x02, $

ERROR: trailing whitespace
#39385: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1335:
+                    GSIH, $

ERROR: trailing whitespace
#39387: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1337:
+                }, $

ERROR: trailing whitespace
#39391: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1341:
+                    0x0001FFFF, $

ERROR: trailing whitespace
#39392: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1342:
+                    0x03, $

ERROR: trailing whitespace
#39393: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1343:
+                    GSIE, $

ERROR: trailing whitespace
#39395: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1345:
+                }, $

ERROR: trailing whitespace
#39399: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1349:
+                    0x0002FFFF, $

ERROR: trailing whitespace
#39400: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1350:
+                    Zero, $

ERROR: trailing whitespace
#39401: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1351:
+                    GSIG, $

ERROR: trailing whitespace
#39403: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1353:
+                }, $

ERROR: trailing whitespace
#39407: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1357:
+                    0x0002FFFF, $

ERROR: trailing whitespace
#39408: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1358:
+                    One, $

ERROR: trailing whitespace
#39409: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1359:
+                    GSIH, $

ERROR: trailing whitespace
#39411: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1361:
+                }, $

ERROR: trailing whitespace
#39415: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1365:
+                    0x0002FFFF, $

ERROR: trailing whitespace
#39416: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1366:
+                    0x02, $

ERROR: trailing whitespace
#39417: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1367:
+                    GSIE, $

ERROR: trailing whitespace
#39419: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1369:
+                }, $

ERROR: trailing whitespace
#39423: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1373:
+                    0x0002FFFF, $

ERROR: trailing whitespace
#39424: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1374:
+                    0x03, $

ERROR: trailing whitespace
#39425: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1375:
+                    GSIF, $

ERROR: trailing whitespace
#39427: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1377:
+                }, $

ERROR: trailing whitespace
#39431: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1381:
+                    0x0003FFFF, $

ERROR: trailing whitespace
#39432: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1382:
+                    Zero, $

ERROR: trailing whitespace
#39433: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1383:
+                    GSIH, $

ERROR: trailing whitespace
#39435: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1385:
+                }, $

ERROR: trailing whitespace
#39439: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1389:
+                    0x0003FFFF, $

ERROR: trailing whitespace
#39440: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1390:
+                    One, $

ERROR: trailing whitespace
#39441: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1391:
+                    GSIE, $

ERROR: trailing whitespace
#39443: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1393:
+                }, $

ERROR: trailing whitespace
#39447: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1397:
+                    0x0003FFFF, $

ERROR: trailing whitespace
#39448: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1398:
+                    0x02, $

ERROR: trailing whitespace
#39449: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1399:
+                    GSIF, $

ERROR: trailing whitespace
#39451: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1401:
+                }, $

ERROR: trailing whitespace
#39455: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1405:
+                    0x0003FFFF, $

ERROR: trailing whitespace
#39456: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1406:
+                    0x03, $

ERROR: trailing whitespace
#39457: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1407:
+                    GSIG, $

ERROR: trailing whitespace
#39459: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1409:
+                }, $

ERROR: trailing whitespace
#39463: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1413:
+                    0x0004FFFF, $

ERROR: trailing whitespace
#39464: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1414:
+                    Zero, $

ERROR: trailing whitespace
#39465: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1415:
+                    GSIE, $

ERROR: trailing whitespace
#39467: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1417:
+                }, $

ERROR: trailing whitespace
#39471: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1421:
+                    0x0004FFFF, $

ERROR: trailing whitespace
#39472: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1422:
+                    One, $

ERROR: trailing whitespace
#39473: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1423:
+                    GSIF, $

ERROR: trailing whitespace
#39475: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1425:
+                }, $

ERROR: trailing whitespace
#39479: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1429:
+                    0x0004FFFF, $

ERROR: trailing whitespace
#39480: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1430:
+                    0x02, $

ERROR: trailing whitespace
#39481: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1431:
+                    GSIG, $

ERROR: trailing whitespace
#39483: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1433:
+                }, $

ERROR: trailing whitespace
#39487: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1437:
+                    0x0004FFFF, $

ERROR: trailing whitespace
#39488: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1438:
+                    0x03, $

ERROR: trailing whitespace
#39489: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1439:
+                    GSIH, $

ERROR: trailing whitespace
#39491: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1441:
+                }, $

ERROR: trailing whitespace
#39495: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1445:
+                    0x0005FFFF, $

ERROR: trailing whitespace
#39496: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1446:
+                    Zero, $

ERROR: trailing whitespace
#39497: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1447:
+                    GSIF, $

ERROR: trailing whitespace
#39499: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1449:
+                }, $

ERROR: trailing whitespace
#39503: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1453:
+                    0x0005FFFF, $

ERROR: trailing whitespace
#39504: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1454:
+                    One, $

ERROR: trailing whitespace
#39505: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1455:
+                    GSIG, $

ERROR: trailing whitespace
#39507: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1457:
+                }, $

ERROR: trailing whitespace
#39511: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1461:
+                    0x0005FFFF, $

ERROR: trailing whitespace
#39512: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1462:
+                    0x02, $

ERROR: trailing whitespace
#39513: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1463:
+                    GSIH, $

ERROR: trailing whitespace
#39515: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1465:
+                }, $

ERROR: trailing whitespace
#39519: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1469:
+                    0x0005FFFF, $

ERROR: trailing whitespace
#39520: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1470:
+                    0x03, $

ERROR: trailing whitespace
#39521: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1471:
+                    GSIE, $

ERROR: trailing whitespace
#39523: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1473:
+                }, $

ERROR: trailing whitespace
#39527: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1477:
+                    0x0006FFFF, $

ERROR: trailing whitespace
#39528: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1478:
+                    Zero, $

ERROR: trailing whitespace
#39529: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1479:
+                    GSIG, $

ERROR: trailing whitespace
#39531: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1481:
+                }, $

ERROR: trailing whitespace
#39535: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1485:
+                    0x0006FFFF, $

ERROR: trailing whitespace
#39536: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1486:
+                    One, $

ERROR: trailing whitespace
#39537: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1487:
+                    GSIH, $

ERROR: trailing whitespace
#39539: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1489:
+                }, $

ERROR: trailing whitespace
#39543: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1493:
+                    0x0006FFFF, $

ERROR: trailing whitespace
#39544: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1494:
+                    0x02, $

ERROR: trailing whitespace
#39545: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1495:
+                    GSIE, $

ERROR: trailing whitespace
#39547: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1497:
+                }, $

ERROR: trailing whitespace
#39551: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1501:
+                    0x0006FFFF, $

ERROR: trailing whitespace
#39552: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1502:
+                    0x03, $

ERROR: trailing whitespace
#39553: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1503:
+                    GSIF, $

ERROR: trailing whitespace
#39555: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1505:
+                }, $

ERROR: trailing whitespace
#39559: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1509:
+                    0x0007FFFF, $

ERROR: trailing whitespace
#39560: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1510:
+                    Zero, $

ERROR: trailing whitespace
#39561: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1511:
+                    GSIH, $

ERROR: trailing whitespace
#39563: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1513:
+                }, $

ERROR: trailing whitespace
#39567: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1517:
+                    0x0007FFFF, $

ERROR: trailing whitespace
#39568: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1518:
+                    One, $

ERROR: trailing whitespace
#39569: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1519:
+                    GSIE, $

ERROR: trailing whitespace
#39571: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1521:
+                }, $

ERROR: trailing whitespace
#39575: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1525:
+                    0x0007FFFF, $

ERROR: trailing whitespace
#39576: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1526:
+                    0x02, $

ERROR: trailing whitespace
#39577: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1527:
+                    GSIF, $

ERROR: trailing whitespace
#39579: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1529:
+                }, $

ERROR: trailing whitespace
#39583: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1533:
+                    0x0007FFFF, $

ERROR: trailing whitespace
#39584: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1534:
+                    0x03, $

ERROR: trailing whitespace
#39585: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1535:
+                    GSIG, $

ERROR: trailing whitespace
#39587: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1537:
+                }, $

ERROR: trailing whitespace
#39591: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1541:
+                    0x0008FFFF, $

ERROR: trailing whitespace
#39592: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1542:
+                    Zero, $

ERROR: trailing whitespace
#39593: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1543:
+                    GSIE, $

ERROR: trailing whitespace
#39595: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1545:
+                }, $

ERROR: trailing whitespace
#39599: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1549:
+                    0x0008FFFF, $

ERROR: trailing whitespace
#39600: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1550:
+                    One, $

ERROR: trailing whitespace
#39601: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1551:
+                    GSIF, $

ERROR: trailing whitespace
#39603: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1553:
+                }, $

ERROR: trailing whitespace
#39607: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1557:
+                    0x0008FFFF, $

ERROR: trailing whitespace
#39608: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1558:
+                    0x02, $

ERROR: trailing whitespace
#39609: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1559:
+                    GSIG, $

ERROR: trailing whitespace
#39611: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1561:
+                }, $

ERROR: trailing whitespace
#39615: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1565:
+                    0x0008FFFF, $

ERROR: trailing whitespace
#39616: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1566:
+                    0x03, $

ERROR: trailing whitespace
#39617: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1567:
+                    GSIH, $

ERROR: trailing whitespace
#39619: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1569:
+                }, $

ERROR: trailing whitespace
#39623: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1573:
+                    0x0009FFFF, $

ERROR: trailing whitespace
#39624: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1574:
+                    Zero, $

ERROR: trailing whitespace
#39625: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1575:
+                    GSIF, $

ERROR: trailing whitespace
#39627: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1577:
+                }, $

ERROR: trailing whitespace
#39631: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1581:
+                    0x0009FFFF, $

ERROR: trailing whitespace
#39632: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1582:
+                    One, $

ERROR: trailing whitespace
#39633: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1583:
+                    GSIG, $

ERROR: trailing whitespace
#39635: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1585:
+                }, $

ERROR: trailing whitespace
#39639: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1589:
+                    0x0009FFFF, $

ERROR: trailing whitespace
#39640: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1590:
+                    0x02, $

ERROR: trailing whitespace
#39641: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1591:
+                    GSIH, $

ERROR: trailing whitespace
#39643: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1593:
+                }, $

ERROR: trailing whitespace
#39647: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1597:
+                    0x0009FFFF, $

ERROR: trailing whitespace
#39648: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1598:
+                    0x03, $

ERROR: trailing whitespace
#39649: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1599:
+                    GSIE, $

ERROR: trailing whitespace
#39651: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1601:
+                }, $

ERROR: trailing whitespace
#39655: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1605:
+                    0x000AFFFF, $

ERROR: trailing whitespace
#39656: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1606:
+                    Zero, $

ERROR: trailing whitespace
#39657: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1607:
+                    GSIG, $

ERROR: trailing whitespace
#39659: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1609:
+                }, $

ERROR: trailing whitespace
#39663: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1613:
+                    0x000AFFFF, $

ERROR: trailing whitespace
#39664: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1614:
+                    One, $

ERROR: trailing whitespace
#39665: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1615:
+                    GSIH, $

ERROR: trailing whitespace
#39667: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1617:
+                }, $

ERROR: trailing whitespace
#39671: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1621:
+                    0x000AFFFF, $

ERROR: trailing whitespace
#39672: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1622:
+                    0x02, $

ERROR: trailing whitespace
#39673: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1623:
+                    GSIE, $

ERROR: trailing whitespace
#39675: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1625:
+                }, $

ERROR: trailing whitespace
#39679: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1629:
+                    0x000AFFFF, $

ERROR: trailing whitespace
#39680: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1630:
+                    0x03, $

ERROR: trailing whitespace
#39681: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1631:
+                    GSIF, $

ERROR: trailing whitespace
#39683: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1633:
+                }, $

ERROR: trailing whitespace
#39687: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1637:
+                    0x000BFFFF, $

ERROR: trailing whitespace
#39688: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1638:
+                    Zero, $

ERROR: trailing whitespace
#39689: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1639:
+                    GSIH, $

ERROR: trailing whitespace
#39691: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1641:
+                }, $

ERROR: trailing whitespace
#39695: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1645:
+                    0x000BFFFF, $

ERROR: trailing whitespace
#39696: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1646:
+                    One, $

ERROR: trailing whitespace
#39697: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1647:
+                    GSIE, $

ERROR: trailing whitespace
#39699: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1649:
+                }, $

ERROR: trailing whitespace
#39703: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1653:
+                    0x000BFFFF, $

ERROR: trailing whitespace
#39704: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1654:
+                    0x02, $

ERROR: trailing whitespace
#39705: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1655:
+                    GSIF, $

ERROR: trailing whitespace
#39707: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1657:
+                }, $

ERROR: trailing whitespace
#39711: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1661:
+                    0x000BFFFF, $

ERROR: trailing whitespace
#39712: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1662:
+                    0x03, $

ERROR: trailing whitespace
#39713: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1663:
+                    GSIG, $

ERROR: trailing whitespace
#39715: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1665:
+                }, $

ERROR: trailing whitespace
#39719: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1669:
+                    0x000CFFFF, $

ERROR: trailing whitespace
#39720: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1670:
+                    Zero, $

ERROR: trailing whitespace
#39721: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1671:
+                    GSIE, $

ERROR: trailing whitespace
#39723: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1673:
+                }, $

ERROR: trailing whitespace
#39727: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1677:
+                    0x000CFFFF, $

ERROR: trailing whitespace
#39728: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1678:
+                    One, $

ERROR: trailing whitespace
#39729: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1679:
+                    GSIF, $

ERROR: trailing whitespace
#39731: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1681:
+                }, $

ERROR: trailing whitespace
#39735: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1685:
+                    0x000CFFFF, $

ERROR: trailing whitespace
#39736: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1686:
+                    0x02, $

ERROR: trailing whitespace
#39737: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1687:
+                    GSIG, $

ERROR: trailing whitespace
#39739: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1689:
+                }, $

ERROR: trailing whitespace
#39743: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1693:
+                    0x000CFFFF, $

ERROR: trailing whitespace
#39744: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1694:
+                    0x03, $

ERROR: trailing whitespace
#39745: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1695:
+                    GSIH, $

ERROR: trailing whitespace
#39747: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1697:
+                }, $

ERROR: trailing whitespace
#39751: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1701:
+                    0x000DFFFF, $

ERROR: trailing whitespace
#39752: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1702:
+                    Zero, $

ERROR: trailing whitespace
#39753: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1703:
+                    GSIF, $

ERROR: trailing whitespace
#39755: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1705:
+                }, $

ERROR: trailing whitespace
#39759: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1709:
+                    0x000DFFFF, $

ERROR: trailing whitespace
#39760: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1710:
+                    One, $

ERROR: trailing whitespace
#39761: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1711:
+                    GSIG, $

ERROR: trailing whitespace
#39763: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1713:
+                }, $

ERROR: trailing whitespace
#39767: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1717:
+                    0x000DFFFF, $

ERROR: trailing whitespace
#39768: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1718:
+                    0x02, $

ERROR: trailing whitespace
#39769: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1719:
+                    GSIH, $

ERROR: trailing whitespace
#39771: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1721:
+                }, $

ERROR: trailing whitespace
#39775: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1725:
+                    0x000DFFFF, $

ERROR: trailing whitespace
#39776: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1726:
+                    0x03, $

ERROR: trailing whitespace
#39777: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1727:
+                    GSIE, $

ERROR: trailing whitespace
#39779: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1729:
+                }, $

ERROR: trailing whitespace
#39783: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1733:
+                    0x000EFFFF, $

ERROR: trailing whitespace
#39784: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1734:
+                    Zero, $

ERROR: trailing whitespace
#39785: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1735:
+                    GSIG, $

ERROR: trailing whitespace
#39787: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1737:
+                }, $

ERROR: trailing whitespace
#39791: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1741:
+                    0x000EFFFF, $

ERROR: trailing whitespace
#39792: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1742:
+                    One, $

ERROR: trailing whitespace
#39793: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1743:
+                    GSIH, $

ERROR: trailing whitespace
#39795: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1745:
+                }, $

ERROR: trailing whitespace
#39799: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1749:
+                    0x000EFFFF, $

ERROR: trailing whitespace
#39800: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1750:
+                    0x02, $

ERROR: trailing whitespace
#39801: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1751:
+                    GSIE, $

ERROR: trailing whitespace
#39803: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1753:
+                }, $

ERROR: trailing whitespace
#39807: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1757:
+                    0x000EFFFF, $

ERROR: trailing whitespace
#39808: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1758:
+                    0x03, $

ERROR: trailing whitespace
#39809: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1759:
+                    GSIF, $

ERROR: trailing whitespace
#39811: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1761:
+                }, $

ERROR: trailing whitespace
#39815: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1765:
+                    0x000FFFFF, $

ERROR: trailing whitespace
#39816: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1766:
+                    Zero, $

ERROR: trailing whitespace
#39817: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1767:
+                    GSIH, $

ERROR: trailing whitespace
#39819: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1769:
+                }, $

ERROR: trailing whitespace
#39823: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1773:
+                    0x000FFFFF, $

ERROR: trailing whitespace
#39824: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1774:
+                    One, $

ERROR: trailing whitespace
#39825: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1775:
+                    GSIE, $

ERROR: trailing whitespace
#39827: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1777:
+                }, $

ERROR: trailing whitespace
#39831: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1781:
+                    0x000FFFFF, $

ERROR: trailing whitespace
#39832: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1782:
+                    0x02, $

ERROR: trailing whitespace
#39833: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1783:
+                    GSIF, $

ERROR: trailing whitespace
#39835: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1785:
+                }, $

ERROR: trailing whitespace
#39839: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1789:
+                    0x000FFFFF, $

ERROR: trailing whitespace
#39840: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1790:
+                    0x03, $

ERROR: trailing whitespace
#39841: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1791:
+                    GSIG, $

ERROR: trailing whitespace
#39843: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1793:
+                }, $

ERROR: trailing whitespace
#39847: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1797:
+                    0x0010FFFF, $

ERROR: trailing whitespace
#39848: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1798:
+                    Zero, $

ERROR: trailing whitespace
#39849: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1799:
+                    GSIE, $

ERROR: trailing whitespace
#39851: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1801:
+                }, $

ERROR: trailing whitespace
#39855: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1805:
+                    0x0010FFFF, $

ERROR: trailing whitespace
#39856: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1806:
+                    One, $

ERROR: trailing whitespace
#39857: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1807:
+                    GSIF, $

ERROR: trailing whitespace
#39859: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1809:
+                }, $

ERROR: trailing whitespace
#39863: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1813:
+                    0x0010FFFF, $

ERROR: trailing whitespace
#39864: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1814:
+                    0x02, $

ERROR: trailing whitespace
#39865: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1815:
+                    GSIG, $

ERROR: trailing whitespace
#39867: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1817:
+                }, $

ERROR: trailing whitespace
#39871: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1821:
+                    0x0010FFFF, $

ERROR: trailing whitespace
#39872: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1822:
+                    0x03, $

ERROR: trailing whitespace
#39873: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1823:
+                    GSIH, $

ERROR: trailing whitespace
#39875: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1825:
+                }, $

ERROR: trailing whitespace
#39879: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1829:
+                    0x0011FFFF, $

ERROR: trailing whitespace
#39880: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1830:
+                    Zero, $

ERROR: trailing whitespace
#39881: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1831:
+                    GSIF, $

ERROR: trailing whitespace
#39883: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1833:
+                }, $

ERROR: trailing whitespace
#39887: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1837:
+                    0x0011FFFF, $

ERROR: trailing whitespace
#39888: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1838:
+                    One, $

ERROR: trailing whitespace
#39889: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1839:
+                    GSIG, $

ERROR: trailing whitespace
#39891: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1841:
+                }, $

ERROR: trailing whitespace
#39895: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1845:
+                    0x0011FFFF, $

ERROR: trailing whitespace
#39896: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1846:
+                    0x02, $

ERROR: trailing whitespace
#39897: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1847:
+                    GSIH, $

ERROR: trailing whitespace
#39899: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1849:
+                }, $

ERROR: trailing whitespace
#39903: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1853:
+                    0x0011FFFF, $

ERROR: trailing whitespace
#39904: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1854:
+                    0x03, $

ERROR: trailing whitespace
#39905: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1855:
+                    GSIE, $

ERROR: trailing whitespace
#39907: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1857:
+                }, $

ERROR: trailing whitespace
#39911: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1861:
+                    0x0012FFFF, $

ERROR: trailing whitespace
#39912: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1862:
+                    Zero, $

ERROR: trailing whitespace
#39913: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1863:
+                    GSIG, $

ERROR: trailing whitespace
#39915: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1865:
+                }, $

ERROR: trailing whitespace
#39919: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1869:
+                    0x0012FFFF, $

ERROR: trailing whitespace
#39920: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1870:
+                    One, $

ERROR: trailing whitespace
#39921: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1871:
+                    GSIH, $

ERROR: trailing whitespace
#39923: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1873:
+                }, $

ERROR: trailing whitespace
#39927: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1877:
+                    0x0012FFFF, $

ERROR: trailing whitespace
#39928: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1878:
+                    0x02, $

ERROR: trailing whitespace
#39929: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1879:
+                    GSIE, $

ERROR: trailing whitespace
#39931: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1881:
+                }, $

ERROR: trailing whitespace
#39935: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1885:
+                    0x0012FFFF, $

ERROR: trailing whitespace
#39936: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1886:
+                    0x03, $

ERROR: trailing whitespace
#39937: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1887:
+                    GSIF, $

ERROR: trailing whitespace
#39939: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1889:
+                }, $

ERROR: trailing whitespace
#39943: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1893:
+                    0x0013FFFF, $

ERROR: trailing whitespace
#39944: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1894:
+                    Zero, $

ERROR: trailing whitespace
#39945: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1895:
+                    GSIH, $

ERROR: trailing whitespace
#39947: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1897:
+                }, $

ERROR: trailing whitespace
#39951: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1901:
+                    0x0013FFFF, $

ERROR: trailing whitespace
#39952: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1902:
+                    One, $

ERROR: trailing whitespace
#39953: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1903:
+                    GSIE, $

ERROR: trailing whitespace
#39955: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1905:
+                }, $

ERROR: trailing whitespace
#39959: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1909:
+                    0x0013FFFF, $

ERROR: trailing whitespace
#39960: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1910:
+                    0x02, $

ERROR: trailing whitespace
#39961: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1911:
+                    GSIF, $

ERROR: trailing whitespace
#39963: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1913:
+                }, $

ERROR: trailing whitespace
#39967: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1917:
+                    0x0013FFFF, $

ERROR: trailing whitespace
#39968: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1918:
+                    0x03, $

ERROR: trailing whitespace
#39969: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1919:
+                    GSIG, $

ERROR: trailing whitespace
#39971: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1921:
+                }, $

ERROR: trailing whitespace
#39975: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1925:
+                    0x0014FFFF, $

ERROR: trailing whitespace
#39976: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1926:
+                    Zero, $

ERROR: trailing whitespace
#39977: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1927:
+                    GSIE, $

ERROR: trailing whitespace
#39979: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1929:
+                }, $

ERROR: trailing whitespace
#39983: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1933:
+                    0x0014FFFF, $

ERROR: trailing whitespace
#39984: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1934:
+                    One, $

ERROR: trailing whitespace
#39985: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1935:
+                    GSIF, $

ERROR: trailing whitespace
#39987: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1937:
+                }, $

ERROR: trailing whitespace
#39991: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1941:
+                    0x0014FFFF, $

ERROR: trailing whitespace
#39992: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1942:
+                    0x02, $

ERROR: trailing whitespace
#39993: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1943:
+                    GSIG, $

ERROR: trailing whitespace
#39995: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1945:
+                }, $

ERROR: trailing whitespace
#39999: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1949:
+                    0x0014FFFF, $

ERROR: trailing whitespace
#40000: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1950:
+                    0x03, $

ERROR: trailing whitespace
#40001: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1951:
+                    GSIH, $

ERROR: trailing whitespace
#40003: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1953:
+                }, $

ERROR: trailing whitespace
#40007: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1957:
+                    0x0015FFFF, $

ERROR: trailing whitespace
#40008: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1958:
+                    Zero, $

ERROR: trailing whitespace
#40009: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1959:
+                    GSIF, $

ERROR: trailing whitespace
#40011: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1961:
+                }, $

ERROR: trailing whitespace
#40015: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1965:
+                    0x0015FFFF, $

ERROR: trailing whitespace
#40016: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1966:
+                    One, $

ERROR: trailing whitespace
#40017: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1967:
+                    GSIG, $

ERROR: trailing whitespace
#40019: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1969:
+                }, $

ERROR: trailing whitespace
#40023: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1973:
+                    0x0015FFFF, $

ERROR: trailing whitespace
#40024: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1974:
+                    0x02, $

ERROR: trailing whitespace
#40025: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1975:
+                    GSIH, $

ERROR: trailing whitespace
#40027: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1977:
+                }, $

ERROR: trailing whitespace
#40031: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1981:
+                    0x0015FFFF, $

ERROR: trailing whitespace
#40032: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1982:
+                    0x03, $

ERROR: trailing whitespace
#40033: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1983:
+                    GSIE, $

ERROR: trailing whitespace
#40035: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1985:
+                }, $

ERROR: trailing whitespace
#40039: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1989:
+                    0x0016FFFF, $

ERROR: trailing whitespace
#40040: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1990:
+                    Zero, $

ERROR: trailing whitespace
#40041: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1991:
+                    GSIG, $

ERROR: trailing whitespace
#40043: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1993:
+                }, $

ERROR: trailing whitespace
#40047: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1997:
+                    0x0016FFFF, $

ERROR: trailing whitespace
#40048: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1998:
+                    One, $

ERROR: trailing whitespace
#40049: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:1999:
+                    GSIH, $

ERROR: trailing whitespace
#40051: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2001:
+                }, $

ERROR: trailing whitespace
#40055: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2005:
+                    0x0016FFFF, $

ERROR: trailing whitespace
#40056: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2006:
+                    0x02, $

ERROR: trailing whitespace
#40057: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2007:
+                    GSIE, $

ERROR: trailing whitespace
#40059: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2009:
+                }, $

ERROR: trailing whitespace
#40063: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2013:
+                    0x0016FFFF, $

ERROR: trailing whitespace
#40064: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2014:
+                    0x03, $

ERROR: trailing whitespace
#40065: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2015:
+                    GSIF, $

ERROR: trailing whitespace
#40067: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2017:
+                }, $

ERROR: trailing whitespace
#40071: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2021:
+                    0x0017FFFF, $

ERROR: trailing whitespace
#40072: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2022:
+                    Zero, $

ERROR: trailing whitespace
#40073: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2023:
+                    GSIH, $

ERROR: trailing whitespace
#40075: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2025:
+                }, $

ERROR: trailing whitespace
#40079: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2029:
+                    0x0017FFFF, $

ERROR: trailing whitespace
#40080: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2030:
+                    One, $

ERROR: trailing whitespace
#40081: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2031:
+                    GSIE, $

ERROR: trailing whitespace
#40083: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2033:
+                }, $

ERROR: trailing whitespace
#40087: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2037:
+                    0x0017FFFF, $

ERROR: trailing whitespace
#40088: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2038:
+                    0x02, $

ERROR: trailing whitespace
#40089: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2039:
+                    GSIF, $

ERROR: trailing whitespace
#40091: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2041:
+                }, $

ERROR: trailing whitespace
#40095: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2045:
+                    0x0017FFFF, $

ERROR: trailing whitespace
#40096: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2046:
+                    0x03, $

ERROR: trailing whitespace
#40097: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2047:
+                    GSIG, $

ERROR: trailing whitespace
#40099: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2049:
+                }, $

ERROR: trailing whitespace
#40103: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2053:
+                    0x0018FFFF, $

ERROR: trailing whitespace
#40104: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2054:
+                    Zero, $

ERROR: trailing whitespace
#40105: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2055:
+                    GSIE, $

ERROR: trailing whitespace
#40107: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2057:
+                }, $

ERROR: trailing whitespace
#40111: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2061:
+                    0x0018FFFF, $

ERROR: trailing whitespace
#40112: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2062:
+                    One, $

ERROR: trailing whitespace
#40113: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2063:
+                    GSIF, $

ERROR: trailing whitespace
#40115: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2065:
+                }, $

ERROR: trailing whitespace
#40119: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2069:
+                    0x0018FFFF, $

ERROR: trailing whitespace
#40120: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2070:
+                    0x02, $

ERROR: trailing whitespace
#40121: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2071:
+                    GSIG, $

ERROR: trailing whitespace
#40123: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2073:
+                }, $

ERROR: trailing whitespace
#40127: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2077:
+                    0x0018FFFF, $

ERROR: trailing whitespace
#40128: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2078:
+                    0x03, $

ERROR: trailing whitespace
#40129: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2079:
+                    GSIH, $

ERROR: trailing whitespace
#40131: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2081:
+                }, $

ERROR: trailing whitespace
#40135: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2085:
+                    0x0019FFFF, $

ERROR: trailing whitespace
#40136: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2086:
+                    Zero, $

ERROR: trailing whitespace
#40137: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2087:
+                    GSIA, $

ERROR: trailing whitespace
#40139: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2089:
+                }, $

ERROR: trailing whitespace
#40143: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2093:
+                    0x0019FFFF, $

ERROR: trailing whitespace
#40144: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2094:
+                    One, $

ERROR: trailing whitespace
#40145: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2095:
+                    GSIB, $

ERROR: trailing whitespace
#40147: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2097:
+                }, $

ERROR: trailing whitespace
#40151: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2101:
+                    0x0019FFFF, $

ERROR: trailing whitespace
#40152: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2102:
+                    0x02, $

ERROR: trailing whitespace
#40153: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2103:
+                    GSIC, $

ERROR: trailing whitespace
#40155: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2105:
+                }, $

ERROR: trailing whitespace
#40159: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2109:
+                    0x0019FFFF, $

ERROR: trailing whitespace
#40160: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2110:
+                    0x03, $

ERROR: trailing whitespace
#40161: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2111:
+                    GSID, $

ERROR: trailing whitespace
#40163: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2113:
+                }, $

ERROR: trailing whitespace
#40167: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2117:
+                    0x001AFFFF, $

ERROR: trailing whitespace
#40168: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2118:
+                    Zero, $

ERROR: trailing whitespace
#40169: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2119:
+                    GSIA, $

ERROR: trailing whitespace
#40171: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2121:
+                }, $

ERROR: trailing whitespace
#40175: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2125:
+                    0x001AFFFF, $

ERROR: trailing whitespace
#40176: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2126:
+                    One, $

ERROR: trailing whitespace
#40177: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2127:
+                    GSIB, $

ERROR: trailing whitespace
#40179: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2129:
+                }, $

ERROR: trailing whitespace
#40183: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2133:
+                    0x001AFFFF, $

ERROR: trailing whitespace
#40184: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2134:
+                    0x02, $

ERROR: trailing whitespace
#40185: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2135:
+                    GSIC, $

ERROR: trailing whitespace
#40187: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2137:
+                }, $

ERROR: trailing whitespace
#40191: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2141:
+                    0x001AFFFF, $

ERROR: trailing whitespace
#40192: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2142:
+                    0x03, $

ERROR: trailing whitespace
#40193: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2143:
+                    GSID, $

ERROR: trailing whitespace
#40195: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2145:
+                }, $

ERROR: trailing whitespace
#40199: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2149:
+                    0x001BFFFF, $

ERROR: trailing whitespace
#40200: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2150:
+                    Zero, $

ERROR: trailing whitespace
#40201: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2151:
+                    GSIA, $

ERROR: trailing whitespace
#40203: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2153:
+                }, $

ERROR: trailing whitespace
#40207: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2157:
+                    0x001BFFFF, $

ERROR: trailing whitespace
#40208: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2158:
+                    One, $

ERROR: trailing whitespace
#40209: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2159:
+                    GSIB, $

ERROR: trailing whitespace
#40211: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2161:
+                }, $

ERROR: trailing whitespace
#40215: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2165:
+                    0x001BFFFF, $

ERROR: trailing whitespace
#40216: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2166:
+                    0x02, $

ERROR: trailing whitespace
#40217: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2167:
+                    GSIC, $

ERROR: trailing whitespace
#40219: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2169:
+                }, $

ERROR: trailing whitespace
#40223: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2173:
+                    0x001BFFFF, $

ERROR: trailing whitespace
#40224: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2174:
+                    0x03, $

ERROR: trailing whitespace
#40225: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2175:
+                    GSID, $

ERROR: trailing whitespace
#40227: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2177:
+                }, $

ERROR: trailing whitespace
#40231: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2181:
+                    0x001CFFFF, $

ERROR: trailing whitespace
#40232: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2182:
+                    Zero, $

ERROR: trailing whitespace
#40233: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2183:
+                    GSIA, $

ERROR: trailing whitespace
#40235: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2185:
+                }, $

ERROR: trailing whitespace
#40239: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2189:
+                    0x001CFFFF, $

ERROR: trailing whitespace
#40240: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2190:
+                    One, $

ERROR: trailing whitespace
#40241: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2191:
+                    GSIB, $

ERROR: trailing whitespace
#40243: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2193:
+                }, $

ERROR: trailing whitespace
#40247: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2197:
+                    0x001CFFFF, $

ERROR: trailing whitespace
#40248: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2198:
+                    0x02, $

ERROR: trailing whitespace
#40249: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2199:
+                    GSIC, $

ERROR: trailing whitespace
#40251: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2201:
+                }, $

ERROR: trailing whitespace
#40255: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2205:
+                    0x001CFFFF, $

ERROR: trailing whitespace
#40256: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2206:
+                    0x03, $

ERROR: trailing whitespace
#40257: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2207:
+                    GSID, $

ERROR: trailing whitespace
#40259: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2209:
+                }, $

ERROR: trailing whitespace
#40263: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2213:
+                    0x001DFFFF, $

ERROR: trailing whitespace
#40264: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2214:
+                    Zero, $

ERROR: trailing whitespace
#40265: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2215:
+                    GSIA, $

ERROR: trailing whitespace
#40267: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2217:
+                }, $

ERROR: trailing whitespace
#40271: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2221:
+                    0x001DFFFF, $

ERROR: trailing whitespace
#40272: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2222:
+                    One, $

ERROR: trailing whitespace
#40273: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2223:
+                    GSIB, $

ERROR: trailing whitespace
#40275: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2225:
+                }, $

ERROR: trailing whitespace
#40279: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2229:
+                    0x001DFFFF, $

ERROR: trailing whitespace
#40280: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2230:
+                    0x02, $

ERROR: trailing whitespace
#40281: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2231:
+                    GSIC, $

ERROR: trailing whitespace
#40283: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2233:
+                }, $

ERROR: trailing whitespace
#40287: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2237:
+                    0x001DFFFF, $

ERROR: trailing whitespace
#40288: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2238:
+                    0x03, $

ERROR: trailing whitespace
#40289: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2239:
+                    GSID, $

ERROR: trailing whitespace
#40291: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2241:
+                }, $

ERROR: trailing whitespace
#40295: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2245:
+                    0x001EFFFF, $

ERROR: trailing whitespace
#40296: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2246:
+                    Zero, $

ERROR: trailing whitespace
#40297: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2247:
+                    GSIE, $

ERROR: trailing whitespace
#40299: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2249:
+                }, $

ERROR: trailing whitespace
#40303: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2253:
+                    0x001EFFFF, $

ERROR: trailing whitespace
#40304: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2254:
+                    One, $

ERROR: trailing whitespace
#40305: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2255:
+                    GSIF, $

ERROR: trailing whitespace
#40307: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2257:
+                }, $

ERROR: trailing whitespace
#40311: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2261:
+                    0x001EFFFF, $

ERROR: trailing whitespace
#40312: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2262:
+                    0x02, $

ERROR: trailing whitespace
#40313: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2263:
+                    GSIG, $

ERROR: trailing whitespace
#40315: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2265:
+                }, $

ERROR: trailing whitespace
#40319: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2269:
+                    0x001EFFFF, $

ERROR: trailing whitespace
#40320: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2270:
+                    0x03, $

ERROR: trailing whitespace
#40321: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2271:
+                    GSIH, $

ERROR: trailing whitespace
#40323: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2273:
+                }, $

ERROR: trailing whitespace
#40327: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2277:
+                    0x001FFFFF, $

ERROR: trailing whitespace
#40328: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2278:
+                    Zero, $

ERROR: trailing whitespace
#40329: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2279:
+                    GSIA, $

ERROR: trailing whitespace
#40331: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2281:
+                }, $

ERROR: trailing whitespace
#40335: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2285:
+                    0x001FFFFF, $

ERROR: trailing whitespace
#40336: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2286:
+                    One, $

ERROR: trailing whitespace
#40337: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2287:
+                    GSIB, $

ERROR: trailing whitespace
#40339: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2289:
+                }, $

ERROR: trailing whitespace
#40343: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2293:
+                    0x001FFFFF, $

ERROR: trailing whitespace
#40344: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2294:
+                    0x02, $

ERROR: trailing whitespace
#40345: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2295:
+                    GSIC, $

ERROR: trailing whitespace
#40347: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2297:
+                }, $

ERROR: trailing whitespace
#40351: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2301:
+                    0x001FFFFF, $

ERROR: trailing whitespace
#40352: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2302:
+                    0x03, $

ERROR: trailing whitespace
#40353: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2303:
+                    GSID, $

ERROR: trailing whitespace
#40372: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2322:
+            PRQA,   8, $

ERROR: trailing whitespace
#40373: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2323:
+            PRQB,   8, $

ERROR: trailing whitespace
#40374: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2324:
+            PRQC,   8, $

ERROR: trailing whitespace
#40375: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2325:
+            PRQD,   8, $

ERROR: trailing whitespace
#40376: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2326:
+            Offset (0x08), $

ERROR: trailing whitespace
#40377: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2327:
+            PRQE,   8, $

ERROR: trailing whitespace
#40378: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2328:
+            PRQF,   8, $

ERROR: trailing whitespace
#40379: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2329:
+            PRQG,   8, $

ERROR: trailing whitespace
#40931: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2881:
+                Offset (0x04), $

ERROR: trailing whitespace
#40932: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2882:
+                CPEN,   1, $

ERROR: trailing whitespace
#40933: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2883:
+                CINS,   1, $

ERROR: trailing whitespace
#40934: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2884:
+                CRMV,   1, $

ERROR: trailing whitespace
#40935: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2885:
+                CEJ0,   1, $

ERROR: trailing whitespace
#40936: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2886:
+                Offset (0x05), $

ERROR: trailing whitespace
#40942: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2892:
+                CSEL,   32, $

ERROR: trailing whitespace
#40943: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:2893:
+                Offset (0x08), $

ERROR: trailing whitespace
#41133: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:3083:
+            One, $

ERROR: trailing whitespace
#41134: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:3084:
+            One, $

ERROR: trailing whitespace
#41135: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:3085:
+            Zero, $

ERROR: trailing whitespace
#41140: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:3090:
+            0x02, $

ERROR: trailing whitespace
#41141: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:3091:
+            0x02, $

ERROR: trailing whitespace
#41142: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:3092:
+            Zero, $

ERROR: trailing whitespace
#41147: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:3097:
+            Zero, $

ERROR: trailing whitespace
#41148: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:3098:
+            Zero, $

ERROR: trailing whitespace
#41149: FILE: tests/data/acpi/q35/DSDT.ipmibt.dsl:3099:
+            Zero, $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/DSDT.memhp and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/DSDT.memhp.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/DSDT.memhp.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#41220: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:5:
+ * $

ERROR: trailing whitespace
#41310: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:95:
+                VEND,   32, $

ERROR: trailing whitespace
#41454: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:239:
+                    0xFFFF, $

ERROR: trailing whitespace
#41455: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:240:
+                    Zero, $

ERROR: trailing whitespace
#41456: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:241:
+                    LNKE, $

ERROR: trailing whitespace
#41458: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:243:
+                }, $

ERROR: trailing whitespace
#41462: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:247:
+                    0xFFFF, $

ERROR: trailing whitespace
#41463: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:248:
+                    One, $

ERROR: trailing whitespace
#41464: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:249:
+                    LNKF, $

ERROR: trailing whitespace
#41466: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:251:
+                }, $

ERROR: trailing whitespace
#41470: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:255:
+                    0xFFFF, $

ERROR: trailing whitespace
#41471: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:256:
+                    0x02, $

ERROR: trailing whitespace
#41472: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:257:
+                    LNKG, $

ERROR: trailing whitespace
#41474: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:259:
+                }, $

ERROR: trailing whitespace
#41478: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:263:
+                    0xFFFF, $

ERROR: trailing whitespace
#41479: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:264:
+                    0x03, $

ERROR: trailing whitespace
#41480: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:265:
+                    LNKH, $

ERROR: trailing whitespace
#41482: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:267:
+                }, $

ERROR: trailing whitespace
#41486: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:271:
+                    0x0001FFFF, $

ERROR: trailing whitespace
#41487: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:272:
+                    Zero, $

ERROR: trailing whitespace
#41488: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:273:
+                    LNKF, $

ERROR: trailing whitespace
#41490: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:275:
+                }, $

ERROR: trailing whitespace
#41494: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:279:
+                    0x0001FFFF, $

ERROR: trailing whitespace
#41495: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:280:
+                    One, $

ERROR: trailing whitespace
#41496: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:281:
+                    LNKG, $

ERROR: trailing whitespace
#41498: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:283:
+                }, $

ERROR: trailing whitespace
#41502: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:287:
+                    0x0001FFFF, $

ERROR: trailing whitespace
#41503: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:288:
+                    0x02, $

ERROR: trailing whitespace
#41504: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:289:
+                    LNKH, $

ERROR: trailing whitespace
#41506: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:291:
+                }, $

ERROR: trailing whitespace
#41510: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:295:
+                    0x0001FFFF, $

ERROR: trailing whitespace
#41511: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:296:
+                    0x03, $

ERROR: trailing whitespace
#41512: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:297:
+                    LNKE, $

ERROR: trailing whitespace
#41514: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:299:
+                }, $

ERROR: trailing whitespace
#41518: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:303:
+                    0x0002FFFF, $

ERROR: trailing whitespace
#41519: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:304:
+                    Zero, $

ERROR: trailing whitespace
#41520: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:305:
+                    LNKG, $

ERROR: trailing whitespace
#41522: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:307:
+                }, $

ERROR: trailing whitespace
#41526: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:311:
+                    0x0002FFFF, $

ERROR: trailing whitespace
#41527: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:312:
+                    One, $

ERROR: trailing whitespace
#41528: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:313:
+                    LNKH, $

ERROR: trailing whitespace
#41530: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:315:
+                }, $

ERROR: trailing whitespace
#41534: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:319:
+                    0x0002FFFF, $

ERROR: trailing whitespace
#41535: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:320:
+                    0x02, $

ERROR: trailing whitespace
#41536: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:321:
+                    LNKE, $

ERROR: trailing whitespace
#41538: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:323:
+                }, $

ERROR: trailing whitespace
#41542: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:327:
+                    0x0002FFFF, $

ERROR: trailing whitespace
#41543: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:328:
+                    0x03, $

ERROR: trailing whitespace
#41544: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:329:
+                    LNKF, $

ERROR: trailing whitespace
#41546: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:331:
+                }, $

ERROR: trailing whitespace
#41550: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:335:
+                    0x0003FFFF, $

ERROR: trailing whitespace
#41551: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:336:
+                    Zero, $

ERROR: trailing whitespace
#41552: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:337:
+                    LNKH, $

ERROR: trailing whitespace
#41554: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:339:
+                }, $

ERROR: trailing whitespace
#41558: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:343:
+                    0x0003FFFF, $

ERROR: trailing whitespace
#41559: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:344:
+                    One, $

ERROR: trailing whitespace
#41560: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:345:
+                    LNKE, $

ERROR: trailing whitespace
#41562: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:347:
+                }, $

ERROR: trailing whitespace
#41566: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:351:
+                    0x0003FFFF, $

ERROR: trailing whitespace
#41567: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:352:
+                    0x02, $

ERROR: trailing whitespace
#41568: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:353:
+                    LNKF, $

ERROR: trailing whitespace
#41570: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:355:
+                }, $

ERROR: trailing whitespace
#41574: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:359:
+                    0x0003FFFF, $

ERROR: trailing whitespace
#41575: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:360:
+                    0x03, $

ERROR: trailing whitespace
#41576: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:361:
+                    LNKG, $

ERROR: trailing whitespace
#41578: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:363:
+                }, $

ERROR: trailing whitespace
#41582: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:367:
+                    0x0004FFFF, $

ERROR: trailing whitespace
#41583: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:368:
+                    Zero, $

ERROR: trailing whitespace
#41584: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:369:
+                    LNKE, $

ERROR: trailing whitespace
#41586: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:371:
+                }, $

ERROR: trailing whitespace
#41590: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:375:
+                    0x0004FFFF, $

ERROR: trailing whitespace
#41591: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:376:
+                    One, $

ERROR: trailing whitespace
#41592: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:377:
+                    LNKF, $

ERROR: trailing whitespace
#41594: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:379:
+                }, $

ERROR: trailing whitespace
#41598: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:383:
+                    0x0004FFFF, $

ERROR: trailing whitespace
#41599: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:384:
+                    0x02, $

ERROR: trailing whitespace
#41600: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:385:
+                    LNKG, $

ERROR: trailing whitespace
#41602: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:387:
+                }, $

ERROR: trailing whitespace
#41606: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:391:
+                    0x0004FFFF, $

ERROR: trailing whitespace
#41607: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:392:
+                    0x03, $

ERROR: trailing whitespace
#41608: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:393:
+                    LNKH, $

ERROR: trailing whitespace
#41610: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:395:
+                }, $

ERROR: trailing whitespace
#41614: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:399:
+                    0x0005FFFF, $

ERROR: trailing whitespace
#41615: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:400:
+                    Zero, $

ERROR: trailing whitespace
#41616: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:401:
+                    LNKF, $

ERROR: trailing whitespace
#41618: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:403:
+                }, $

ERROR: trailing whitespace
#41622: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:407:
+                    0x0005FFFF, $

ERROR: trailing whitespace
#41623: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:408:
+                    One, $

ERROR: trailing whitespace
#41624: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:409:
+                    LNKG, $

ERROR: trailing whitespace
#41626: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:411:
+                }, $

ERROR: trailing whitespace
#41630: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:415:
+                    0x0005FFFF, $

ERROR: trailing whitespace
#41631: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:416:
+                    0x02, $

ERROR: trailing whitespace
#41632: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:417:
+                    LNKH, $

ERROR: trailing whitespace
#41634: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:419:
+                }, $

ERROR: trailing whitespace
#41638: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:423:
+                    0x0005FFFF, $

ERROR: trailing whitespace
#41639: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:424:
+                    0x03, $

ERROR: trailing whitespace
#41640: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:425:
+                    LNKE, $

ERROR: trailing whitespace
#41642: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:427:
+                }, $

ERROR: trailing whitespace
#41646: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:431:
+                    0x0006FFFF, $

ERROR: trailing whitespace
#41647: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:432:
+                    Zero, $

ERROR: trailing whitespace
#41648: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:433:
+                    LNKG, $

ERROR: trailing whitespace
#41650: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:435:
+                }, $

ERROR: trailing whitespace
#41654: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:439:
+                    0x0006FFFF, $

ERROR: trailing whitespace
#41655: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:440:
+                    One, $

ERROR: trailing whitespace
#41656: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:441:
+                    LNKH, $

ERROR: trailing whitespace
#41658: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:443:
+                }, $

ERROR: trailing whitespace
#41662: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:447:
+                    0x0006FFFF, $

ERROR: trailing whitespace
#41663: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:448:
+                    0x02, $

ERROR: trailing whitespace
#41664: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:449:
+                    LNKE, $

ERROR: trailing whitespace
#41666: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:451:
+                }, $

ERROR: trailing whitespace
#41670: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:455:
+                    0x0006FFFF, $

ERROR: trailing whitespace
#41671: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:456:
+                    0x03, $

ERROR: trailing whitespace
#41672: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:457:
+                    LNKF, $

ERROR: trailing whitespace
#41674: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:459:
+                }, $

ERROR: trailing whitespace
#41678: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:463:
+                    0x0007FFFF, $

ERROR: trailing whitespace
#41679: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:464:
+                    Zero, $

ERROR: trailing whitespace
#41680: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:465:
+                    LNKH, $

ERROR: trailing whitespace
#41682: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:467:
+                }, $

ERROR: trailing whitespace
#41686: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:471:
+                    0x0007FFFF, $

ERROR: trailing whitespace
#41687: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:472:
+                    One, $

ERROR: trailing whitespace
#41688: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:473:
+                    LNKE, $

ERROR: trailing whitespace
#41690: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:475:
+                }, $

ERROR: trailing whitespace
#41694: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:479:
+                    0x0007FFFF, $

ERROR: trailing whitespace
#41695: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:480:
+                    0x02, $

ERROR: trailing whitespace
#41696: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:481:
+                    LNKF, $

ERROR: trailing whitespace
#41698: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:483:
+                }, $

ERROR: trailing whitespace
#41702: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:487:
+                    0x0007FFFF, $

ERROR: trailing whitespace
#41703: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:488:
+                    0x03, $

ERROR: trailing whitespace
#41704: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:489:
+                    LNKG, $

ERROR: trailing whitespace
#41706: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:491:
+                }, $

ERROR: trailing whitespace
#41710: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:495:
+                    0x0008FFFF, $

ERROR: trailing whitespace
#41711: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:496:
+                    Zero, $

ERROR: trailing whitespace
#41712: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:497:
+                    LNKE, $

ERROR: trailing whitespace
#41714: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:499:
+                }, $

ERROR: trailing whitespace
#41718: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:503:
+                    0x0008FFFF, $

ERROR: trailing whitespace
#41719: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:504:
+                    One, $

ERROR: trailing whitespace
#41720: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:505:
+                    LNKF, $

ERROR: trailing whitespace
#41722: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:507:
+                }, $

ERROR: trailing whitespace
#41726: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:511:
+                    0x0008FFFF, $

ERROR: trailing whitespace
#41727: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:512:
+                    0x02, $

ERROR: trailing whitespace
#41728: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:513:
+                    LNKG, $

ERROR: trailing whitespace
#41730: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:515:
+                }, $

ERROR: trailing whitespace
#41734: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:519:
+                    0x0008FFFF, $

ERROR: trailing whitespace
#41735: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:520:
+                    0x03, $

ERROR: trailing whitespace
#41736: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:521:
+                    LNKH, $

ERROR: trailing whitespace
#41738: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:523:
+                }, $

ERROR: trailing whitespace
#41742: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:527:
+                    0x0009FFFF, $

ERROR: trailing whitespace
#41743: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:528:
+                    Zero, $

ERROR: trailing whitespace
#41744: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:529:
+                    LNKF, $

ERROR: trailing whitespace
#41746: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:531:
+                }, $

ERROR: trailing whitespace
#41750: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:535:
+                    0x0009FFFF, $

ERROR: trailing whitespace
#41751: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:536:
+                    One, $

ERROR: trailing whitespace
#41752: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:537:
+                    LNKG, $

ERROR: trailing whitespace
#41754: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:539:
+                }, $

ERROR: trailing whitespace
#41758: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:543:
+                    0x0009FFFF, $

ERROR: trailing whitespace
#41759: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:544:
+                    0x02, $

ERROR: trailing whitespace
#41760: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:545:
+                    LNKH, $

ERROR: trailing whitespace
#41762: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:547:
+                }, $

ERROR: trailing whitespace
#41766: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:551:
+                    0x0009FFFF, $

ERROR: trailing whitespace
#41767: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:552:
+                    0x03, $

ERROR: trailing whitespace
#41768: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:553:
+                    LNKE, $

ERROR: trailing whitespace
#41770: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:555:
+                }, $

ERROR: trailing whitespace
#41774: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:559:
+                    0x000AFFFF, $

ERROR: trailing whitespace
#41775: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:560:
+                    Zero, $

ERROR: trailing whitespace
#41776: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:561:
+                    LNKG, $

ERROR: trailing whitespace
#41778: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:563:
+                }, $

ERROR: trailing whitespace
#41782: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:567:
+                    0x000AFFFF, $

ERROR: trailing whitespace
#41783: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:568:
+                    One, $

ERROR: trailing whitespace
#41784: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:569:
+                    LNKH, $

ERROR: trailing whitespace
#41786: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:571:
+                }, $

ERROR: trailing whitespace
#41790: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:575:
+                    0x000AFFFF, $

ERROR: trailing whitespace
#41791: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:576:
+                    0x02, $

ERROR: trailing whitespace
#41792: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:577:
+                    LNKE, $

ERROR: trailing whitespace
#41794: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:579:
+                }, $

ERROR: trailing whitespace
#41798: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:583:
+                    0x000AFFFF, $

ERROR: trailing whitespace
#41799: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:584:
+                    0x03, $

ERROR: trailing whitespace
#41800: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:585:
+                    LNKF, $

ERROR: trailing whitespace
#41802: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:587:
+                }, $

ERROR: trailing whitespace
#41806: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:591:
+                    0x000BFFFF, $

ERROR: trailing whitespace
#41807: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:592:
+                    Zero, $

ERROR: trailing whitespace
#41808: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:593:
+                    LNKH, $

ERROR: trailing whitespace
#41810: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:595:
+                }, $

ERROR: trailing whitespace
#41814: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:599:
+                    0x000BFFFF, $

ERROR: trailing whitespace
#41815: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:600:
+                    One, $

ERROR: trailing whitespace
#41816: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:601:
+                    LNKE, $

ERROR: trailing whitespace
#41818: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:603:
+                }, $

ERROR: trailing whitespace
#41822: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:607:
+                    0x000BFFFF, $

ERROR: trailing whitespace
#41823: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:608:
+                    0x02, $

ERROR: trailing whitespace
#41824: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:609:
+                    LNKF, $

ERROR: trailing whitespace
#41826: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:611:
+                }, $

ERROR: trailing whitespace
#41830: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:615:
+                    0x000BFFFF, $

ERROR: trailing whitespace
#41831: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:616:
+                    0x03, $

ERROR: trailing whitespace
#41832: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:617:
+                    LNKG, $

ERROR: trailing whitespace
#41834: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:619:
+                }, $

ERROR: trailing whitespace
#41838: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:623:
+                    0x000CFFFF, $

ERROR: trailing whitespace
#41839: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:624:
+                    Zero, $

ERROR: trailing whitespace
#41840: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:625:
+                    LNKE, $

ERROR: trailing whitespace
#41842: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:627:
+                }, $

ERROR: trailing whitespace
#41846: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:631:
+                    0x000CFFFF, $

ERROR: trailing whitespace
#41847: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:632:
+                    One, $

ERROR: trailing whitespace
#41848: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:633:
+                    LNKF, $

ERROR: trailing whitespace
#41850: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:635:
+                }, $

ERROR: trailing whitespace
#41854: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:639:
+                    0x000CFFFF, $

ERROR: trailing whitespace
#41855: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:640:
+                    0x02, $

ERROR: trailing whitespace
#41856: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:641:
+                    LNKG, $

ERROR: trailing whitespace
#41858: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:643:
+                }, $

ERROR: trailing whitespace
#41862: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:647:
+                    0x000CFFFF, $

ERROR: trailing whitespace
#41863: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:648:
+                    0x03, $

ERROR: trailing whitespace
#41864: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:649:
+                    LNKH, $

ERROR: trailing whitespace
#41866: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:651:
+                }, $

ERROR: trailing whitespace
#41870: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:655:
+                    0x000DFFFF, $

ERROR: trailing whitespace
#41871: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:656:
+                    Zero, $

ERROR: trailing whitespace
#41872: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:657:
+                    LNKF, $

ERROR: trailing whitespace
#41874: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:659:
+                }, $

ERROR: trailing whitespace
#41878: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:663:
+                    0x000DFFFF, $

ERROR: trailing whitespace
#41879: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:664:
+                    One, $

ERROR: trailing whitespace
#41880: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:665:
+                    LNKG, $

ERROR: trailing whitespace
#41882: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:667:
+                }, $

ERROR: trailing whitespace
#41886: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:671:
+                    0x000DFFFF, $

ERROR: trailing whitespace
#41887: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:672:
+                    0x02, $

ERROR: trailing whitespace
#41888: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:673:
+                    LNKH, $

ERROR: trailing whitespace
#41890: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:675:
+                }, $

ERROR: trailing whitespace
#41894: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:679:
+                    0x000DFFFF, $

ERROR: trailing whitespace
#41895: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:680:
+                    0x03, $

ERROR: trailing whitespace
#41896: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:681:
+                    LNKE, $

ERROR: trailing whitespace
#41898: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:683:
+                }, $

ERROR: trailing whitespace
#41902: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:687:
+                    0x000EFFFF, $

ERROR: trailing whitespace
#41903: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:688:
+                    Zero, $

ERROR: trailing whitespace
#41904: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:689:
+                    LNKG, $

ERROR: trailing whitespace
#41906: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:691:
+                }, $

ERROR: trailing whitespace
#41910: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:695:
+                    0x000EFFFF, $

ERROR: trailing whitespace
#41911: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:696:
+                    One, $

ERROR: trailing whitespace
#41912: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:697:
+                    LNKH, $

ERROR: trailing whitespace
#41914: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:699:
+                }, $

ERROR: trailing whitespace
#41918: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:703:
+                    0x000EFFFF, $

ERROR: trailing whitespace
#41919: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:704:
+                    0x02, $

ERROR: trailing whitespace
#41920: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:705:
+                    LNKE, $

ERROR: trailing whitespace
#41922: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:707:
+                }, $

ERROR: trailing whitespace
#41926: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:711:
+                    0x000EFFFF, $

ERROR: trailing whitespace
#41927: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:712:
+                    0x03, $

ERROR: trailing whitespace
#41928: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:713:
+                    LNKF, $

ERROR: trailing whitespace
#41930: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:715:
+                }, $

ERROR: trailing whitespace
#41934: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:719:
+                    0x000FFFFF, $

ERROR: trailing whitespace
#41935: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:720:
+                    Zero, $

ERROR: trailing whitespace
#41936: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:721:
+                    LNKH, $

ERROR: trailing whitespace
#41938: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:723:
+                }, $

ERROR: trailing whitespace
#41942: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:727:
+                    0x000FFFFF, $

ERROR: trailing whitespace
#41943: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:728:
+                    One, $

ERROR: trailing whitespace
#41944: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:729:
+                    LNKE, $

ERROR: trailing whitespace
#41946: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:731:
+                }, $

ERROR: trailing whitespace
#41950: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:735:
+                    0x000FFFFF, $

ERROR: trailing whitespace
#41951: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:736:
+                    0x02, $

ERROR: trailing whitespace
#41952: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:737:
+                    LNKF, $

ERROR: trailing whitespace
#41954: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:739:
+                }, $

ERROR: trailing whitespace
#41958: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:743:
+                    0x000FFFFF, $

ERROR: trailing whitespace
#41959: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:744:
+                    0x03, $

ERROR: trailing whitespace
#41960: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:745:
+                    LNKG, $

ERROR: trailing whitespace
#41962: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:747:
+                }, $

ERROR: trailing whitespace
#41966: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:751:
+                    0x0010FFFF, $

ERROR: trailing whitespace
#41967: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:752:
+                    Zero, $

ERROR: trailing whitespace
#41968: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:753:
+                    LNKE, $

ERROR: trailing whitespace
#41970: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:755:
+                }, $

ERROR: trailing whitespace
#41974: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:759:
+                    0x0010FFFF, $

ERROR: trailing whitespace
#41975: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:760:
+                    One, $

ERROR: trailing whitespace
#41976: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:761:
+                    LNKF, $

ERROR: trailing whitespace
#41978: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:763:
+                }, $

ERROR: trailing whitespace
#41982: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:767:
+                    0x0010FFFF, $

ERROR: trailing whitespace
#41983: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:768:
+                    0x02, $

ERROR: trailing whitespace
#41984: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:769:
+                    LNKG, $

ERROR: trailing whitespace
#41986: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:771:
+                }, $

ERROR: trailing whitespace
#41990: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:775:
+                    0x0010FFFF, $

ERROR: trailing whitespace
#41991: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:776:
+                    0x03, $

ERROR: trailing whitespace
#41992: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:777:
+                    LNKH, $

ERROR: trailing whitespace
#41994: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:779:
+                }, $

ERROR: trailing whitespace
#41998: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:783:
+                    0x0011FFFF, $

ERROR: trailing whitespace
#41999: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:784:
+                    Zero, $

ERROR: trailing whitespace
#42000: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:785:
+                    LNKF, $

ERROR: trailing whitespace
#42002: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:787:
+                }, $

ERROR: trailing whitespace
#42006: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:791:
+                    0x0011FFFF, $

ERROR: trailing whitespace
#42007: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:792:
+                    One, $

ERROR: trailing whitespace
#42008: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:793:
+                    LNKG, $

ERROR: trailing whitespace
#42010: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:795:
+                }, $

ERROR: trailing whitespace
#42014: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:799:
+                    0x0011FFFF, $

ERROR: trailing whitespace
#42015: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:800:
+                    0x02, $

ERROR: trailing whitespace
#42016: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:801:
+                    LNKH, $

ERROR: trailing whitespace
#42018: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:803:
+                }, $

ERROR: trailing whitespace
#42022: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:807:
+                    0x0011FFFF, $

ERROR: trailing whitespace
#42023: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:808:
+                    0x03, $

ERROR: trailing whitespace
#42024: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:809:
+                    LNKE, $

ERROR: trailing whitespace
#42026: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:811:
+                }, $

ERROR: trailing whitespace
#42030: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:815:
+                    0x0012FFFF, $

ERROR: trailing whitespace
#42031: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:816:
+                    Zero, $

ERROR: trailing whitespace
#42032: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:817:
+                    LNKG, $

ERROR: trailing whitespace
#42034: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:819:
+                }, $

ERROR: trailing whitespace
#42038: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:823:
+                    0x0012FFFF, $

ERROR: trailing whitespace
#42039: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:824:
+                    One, $

ERROR: trailing whitespace
#42040: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:825:
+                    LNKH, $

ERROR: trailing whitespace
#42042: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:827:
+                }, $

ERROR: trailing whitespace
#42046: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:831:
+                    0x0012FFFF, $

ERROR: trailing whitespace
#42047: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:832:
+                    0x02, $

ERROR: trailing whitespace
#42048: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:833:
+                    LNKE, $

ERROR: trailing whitespace
#42050: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:835:
+                }, $

ERROR: trailing whitespace
#42054: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:839:
+                    0x0012FFFF, $

ERROR: trailing whitespace
#42055: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:840:
+                    0x03, $

ERROR: trailing whitespace
#42056: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:841:
+                    LNKF, $

ERROR: trailing whitespace
#42058: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:843:
+                }, $

ERROR: trailing whitespace
#42062: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:847:
+                    0x0013FFFF, $

ERROR: trailing whitespace
#42063: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:848:
+                    Zero, $

ERROR: trailing whitespace
#42064: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:849:
+                    LNKH, $

ERROR: trailing whitespace
#42066: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:851:
+                }, $

ERROR: trailing whitespace
#42070: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:855:
+                    0x0013FFFF, $

ERROR: trailing whitespace
#42071: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:856:
+                    One, $

ERROR: trailing whitespace
#42072: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:857:
+                    LNKE, $

ERROR: trailing whitespace
#42074: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:859:
+                }, $

ERROR: trailing whitespace
#42078: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:863:
+                    0x0013FFFF, $

ERROR: trailing whitespace
#42079: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:864:
+                    0x02, $

ERROR: trailing whitespace
#42080: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:865:
+                    LNKF, $

ERROR: trailing whitespace
#42082: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:867:
+                }, $

ERROR: trailing whitespace
#42086: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:871:
+                    0x0013FFFF, $

ERROR: trailing whitespace
#42087: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:872:
+                    0x03, $

ERROR: trailing whitespace
#42088: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:873:
+                    LNKG, $

ERROR: trailing whitespace
#42090: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:875:
+                }, $

ERROR: trailing whitespace
#42094: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:879:
+                    0x0014FFFF, $

ERROR: trailing whitespace
#42095: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:880:
+                    Zero, $

ERROR: trailing whitespace
#42096: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:881:
+                    LNKE, $

ERROR: trailing whitespace
#42098: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:883:
+                }, $

ERROR: trailing whitespace
#42102: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:887:
+                    0x0014FFFF, $

ERROR: trailing whitespace
#42103: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:888:
+                    One, $

ERROR: trailing whitespace
#42104: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:889:
+                    LNKF, $

ERROR: trailing whitespace
#42106: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:891:
+                }, $

ERROR: trailing whitespace
#42110: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:895:
+                    0x0014FFFF, $

ERROR: trailing whitespace
#42111: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:896:
+                    0x02, $

ERROR: trailing whitespace
#42112: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:897:
+                    LNKG, $

ERROR: trailing whitespace
#42114: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:899:
+                }, $

ERROR: trailing whitespace
#42118: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:903:
+                    0x0014FFFF, $

ERROR: trailing whitespace
#42119: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:904:
+                    0x03, $

ERROR: trailing whitespace
#42120: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:905:
+                    LNKH, $

ERROR: trailing whitespace
#42122: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:907:
+                }, $

ERROR: trailing whitespace
#42126: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:911:
+                    0x0015FFFF, $

ERROR: trailing whitespace
#42127: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:912:
+                    Zero, $

ERROR: trailing whitespace
#42128: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:913:
+                    LNKF, $

ERROR: trailing whitespace
#42130: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:915:
+                }, $

ERROR: trailing whitespace
#42134: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:919:
+                    0x0015FFFF, $

ERROR: trailing whitespace
#42135: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:920:
+                    One, $

ERROR: trailing whitespace
#42136: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:921:
+                    LNKG, $

ERROR: trailing whitespace
#42138: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:923:
+                }, $

ERROR: trailing whitespace
#42142: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:927:
+                    0x0015FFFF, $

ERROR: trailing whitespace
#42143: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:928:
+                    0x02, $

ERROR: trailing whitespace
#42144: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:929:
+                    LNKH, $

ERROR: trailing whitespace
#42146: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:931:
+                }, $

ERROR: trailing whitespace
#42150: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:935:
+                    0x0015FFFF, $

ERROR: trailing whitespace
#42151: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:936:
+                    0x03, $

ERROR: trailing whitespace
#42152: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:937:
+                    LNKE, $

ERROR: trailing whitespace
#42154: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:939:
+                }, $

ERROR: trailing whitespace
#42158: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:943:
+                    0x0016FFFF, $

ERROR: trailing whitespace
#42159: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:944:
+                    Zero, $

ERROR: trailing whitespace
#42160: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:945:
+                    LNKG, $

ERROR: trailing whitespace
#42162: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:947:
+                }, $

ERROR: trailing whitespace
#42166: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:951:
+                    0x0016FFFF, $

ERROR: trailing whitespace
#42167: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:952:
+                    One, $

ERROR: trailing whitespace
#42168: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:953:
+                    LNKH, $

ERROR: trailing whitespace
#42170: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:955:
+                }, $

ERROR: trailing whitespace
#42174: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:959:
+                    0x0016FFFF, $

ERROR: trailing whitespace
#42175: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:960:
+                    0x02, $

ERROR: trailing whitespace
#42176: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:961:
+                    LNKE, $

ERROR: trailing whitespace
#42178: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:963:
+                }, $

ERROR: trailing whitespace
#42182: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:967:
+                    0x0016FFFF, $

ERROR: trailing whitespace
#42183: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:968:
+                    0x03, $

ERROR: trailing whitespace
#42184: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:969:
+                    LNKF, $

ERROR: trailing whitespace
#42186: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:971:
+                }, $

ERROR: trailing whitespace
#42190: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:975:
+                    0x0017FFFF, $

ERROR: trailing whitespace
#42191: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:976:
+                    Zero, $

ERROR: trailing whitespace
#42192: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:977:
+                    LNKH, $

ERROR: trailing whitespace
#42194: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:979:
+                }, $

ERROR: trailing whitespace
#42198: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:983:
+                    0x0017FFFF, $

ERROR: trailing whitespace
#42199: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:984:
+                    One, $

ERROR: trailing whitespace
#42200: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:985:
+                    LNKE, $

ERROR: trailing whitespace
#42202: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:987:
+                }, $

ERROR: trailing whitespace
#42206: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:991:
+                    0x0017FFFF, $

ERROR: trailing whitespace
#42207: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:992:
+                    0x02, $

ERROR: trailing whitespace
#42208: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:993:
+                    LNKF, $

ERROR: trailing whitespace
#42210: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:995:
+                }, $

ERROR: trailing whitespace
#42214: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:999:
+                    0x0017FFFF, $

ERROR: trailing whitespace
#42215: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1000:
+                    0x03, $

ERROR: trailing whitespace
#42216: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1001:
+                    LNKG, $

ERROR: trailing whitespace
#42218: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1003:
+                }, $

ERROR: trailing whitespace
#42222: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1007:
+                    0x0018FFFF, $

ERROR: trailing whitespace
#42223: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1008:
+                    Zero, $

ERROR: trailing whitespace
#42224: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1009:
+                    LNKE, $

ERROR: trailing whitespace
#42226: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1011:
+                }, $

ERROR: trailing whitespace
#42230: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1015:
+                    0x0018FFFF, $

ERROR: trailing whitespace
#42231: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1016:
+                    One, $

ERROR: trailing whitespace
#42232: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1017:
+                    LNKF, $

ERROR: trailing whitespace
#42234: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1019:
+                }, $

ERROR: trailing whitespace
#42238: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1023:
+                    0x0018FFFF, $

ERROR: trailing whitespace
#42239: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1024:
+                    0x02, $

ERROR: trailing whitespace
#42240: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1025:
+                    LNKG, $

ERROR: trailing whitespace
#42242: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1027:
+                }, $

ERROR: trailing whitespace
#42246: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1031:
+                    0x0018FFFF, $

ERROR: trailing whitespace
#42247: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1032:
+                    0x03, $

ERROR: trailing whitespace
#42248: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1033:
+                    LNKH, $

ERROR: trailing whitespace
#42250: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1035:
+                }, $

ERROR: trailing whitespace
#42254: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1039:
+                    0x0019FFFF, $

ERROR: trailing whitespace
#42255: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1040:
+                    Zero, $

ERROR: trailing whitespace
#42256: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1041:
+                    LNKA, $

ERROR: trailing whitespace
#42258: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1043:
+                }, $

ERROR: trailing whitespace
#42262: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1047:
+                    0x0019FFFF, $

ERROR: trailing whitespace
#42263: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1048:
+                    One, $

ERROR: trailing whitespace
#42264: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1049:
+                    LNKB, $

ERROR: trailing whitespace
#42266: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1051:
+                }, $

ERROR: trailing whitespace
#42270: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1055:
+                    0x0019FFFF, $

ERROR: trailing whitespace
#42271: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1056:
+                    0x02, $

ERROR: trailing whitespace
#42272: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1057:
+                    LNKC, $

ERROR: trailing whitespace
#42274: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1059:
+                }, $

ERROR: trailing whitespace
#42278: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1063:
+                    0x0019FFFF, $

ERROR: trailing whitespace
#42279: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1064:
+                    0x03, $

ERROR: trailing whitespace
#42280: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1065:
+                    LNKD, $

ERROR: trailing whitespace
#42282: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1067:
+                }, $

ERROR: trailing whitespace
#42286: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1071:
+                    0x001AFFFF, $

ERROR: trailing whitespace
#42287: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1072:
+                    Zero, $

ERROR: trailing whitespace
#42288: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1073:
+                    LNKA, $

ERROR: trailing whitespace
#42290: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1075:
+                }, $

ERROR: trailing whitespace
#42294: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1079:
+                    0x001AFFFF, $

ERROR: trailing whitespace
#42295: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1080:
+                    One, $

ERROR: trailing whitespace
#42296: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1081:
+                    LNKB, $

ERROR: trailing whitespace
#42298: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1083:
+                }, $

ERROR: trailing whitespace
#42302: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1087:
+                    0x001AFFFF, $

ERROR: trailing whitespace
#42303: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1088:
+                    0x02, $

ERROR: trailing whitespace
#42304: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1089:
+                    LNKC, $

ERROR: trailing whitespace
#42306: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1091:
+                }, $

ERROR: trailing whitespace
#42310: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1095:
+                    0x001AFFFF, $

ERROR: trailing whitespace
#42311: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1096:
+                    0x03, $

ERROR: trailing whitespace
#42312: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1097:
+                    LNKD, $

ERROR: trailing whitespace
#42314: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1099:
+                }, $

ERROR: trailing whitespace
#42318: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1103:
+                    0x001BFFFF, $

ERROR: trailing whitespace
#42319: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1104:
+                    Zero, $

ERROR: trailing whitespace
#42320: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1105:
+                    LNKA, $

ERROR: trailing whitespace
#42322: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1107:
+                }, $

ERROR: trailing whitespace
#42326: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1111:
+                    0x001BFFFF, $

ERROR: trailing whitespace
#42327: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1112:
+                    One, $

ERROR: trailing whitespace
#42328: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1113:
+                    LNKB, $

ERROR: trailing whitespace
#42330: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1115:
+                }, $

ERROR: trailing whitespace
#42334: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1119:
+                    0x001BFFFF, $

ERROR: trailing whitespace
#42335: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1120:
+                    0x02, $

ERROR: trailing whitespace
#42336: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1121:
+                    LNKC, $

ERROR: trailing whitespace
#42338: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1123:
+                }, $

ERROR: trailing whitespace
#42342: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1127:
+                    0x001BFFFF, $

ERROR: trailing whitespace
#42343: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1128:
+                    0x03, $

ERROR: trailing whitespace
#42344: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1129:
+                    LNKD, $

ERROR: trailing whitespace
#42346: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1131:
+                }, $

ERROR: trailing whitespace
#42350: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1135:
+                    0x001CFFFF, $

ERROR: trailing whitespace
#42351: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1136:
+                    Zero, $

ERROR: trailing whitespace
#42352: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1137:
+                    LNKA, $

ERROR: trailing whitespace
#42354: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1139:
+                }, $

ERROR: trailing whitespace
#42358: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1143:
+                    0x001CFFFF, $

ERROR: trailing whitespace
#42359: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1144:
+                    One, $

ERROR: trailing whitespace
#42360: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1145:
+                    LNKB, $

ERROR: trailing whitespace
#42362: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1147:
+                }, $

ERROR: trailing whitespace
#42366: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1151:
+                    0x001CFFFF, $

ERROR: trailing whitespace
#42367: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1152:
+                    0x02, $

ERROR: trailing whitespace
#42368: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1153:
+                    LNKC, $

ERROR: trailing whitespace
#42370: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1155:
+                }, $

ERROR: trailing whitespace
#42374: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1159:
+                    0x001CFFFF, $

ERROR: trailing whitespace
#42375: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1160:
+                    0x03, $

ERROR: trailing whitespace
#42376: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1161:
+                    LNKD, $

ERROR: trailing whitespace
#42378: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1163:
+                }, $

ERROR: trailing whitespace
#42382: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1167:
+                    0x001DFFFF, $

ERROR: trailing whitespace
#42383: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1168:
+                    Zero, $

ERROR: trailing whitespace
#42384: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1169:
+                    LNKA, $

ERROR: trailing whitespace
#42386: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1171:
+                }, $

ERROR: trailing whitespace
#42390: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1175:
+                    0x001DFFFF, $

ERROR: trailing whitespace
#42391: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1176:
+                    One, $

ERROR: trailing whitespace
#42392: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1177:
+                    LNKB, $

ERROR: trailing whitespace
#42394: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1179:
+                }, $

ERROR: trailing whitespace
#42398: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1183:
+                    0x001DFFFF, $

ERROR: trailing whitespace
#42399: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1184:
+                    0x02, $

ERROR: trailing whitespace
#42400: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1185:
+                    LNKC, $

ERROR: trailing whitespace
#42402: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1187:
+                }, $

ERROR: trailing whitespace
#42406: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1191:
+                    0x001DFFFF, $

ERROR: trailing whitespace
#42407: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1192:
+                    0x03, $

ERROR: trailing whitespace
#42408: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1193:
+                    LNKD, $

ERROR: trailing whitespace
#42410: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1195:
+                }, $

ERROR: trailing whitespace
#42414: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1199:
+                    0x001EFFFF, $

ERROR: trailing whitespace
#42415: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1200:
+                    Zero, $

ERROR: trailing whitespace
#42416: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1201:
+                    LNKE, $

ERROR: trailing whitespace
#42418: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1203:
+                }, $

ERROR: trailing whitespace
#42422: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1207:
+                    0x001EFFFF, $

ERROR: trailing whitespace
#42423: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1208:
+                    One, $

ERROR: trailing whitespace
#42424: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1209:
+                    LNKF, $

ERROR: trailing whitespace
#42426: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1211:
+                }, $

ERROR: trailing whitespace
#42430: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1215:
+                    0x001EFFFF, $

ERROR: trailing whitespace
#42431: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1216:
+                    0x02, $

ERROR: trailing whitespace
#42432: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1217:
+                    LNKG, $

ERROR: trailing whitespace
#42434: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1219:
+                }, $

ERROR: trailing whitespace
#42438: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1223:
+                    0x001EFFFF, $

ERROR: trailing whitespace
#42439: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1224:
+                    0x03, $

ERROR: trailing whitespace
#42440: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1225:
+                    LNKH, $

ERROR: trailing whitespace
#42442: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1227:
+                }, $

ERROR: trailing whitespace
#42446: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1231:
+                    0x001FFFFF, $

ERROR: trailing whitespace
#42447: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1232:
+                    Zero, $

ERROR: trailing whitespace
#42448: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1233:
+                    LNKA, $

ERROR: trailing whitespace
#42450: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1235:
+                }, $

ERROR: trailing whitespace
#42454: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1239:
+                    0x001FFFFF, $

ERROR: trailing whitespace
#42455: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1240:
+                    One, $

ERROR: trailing whitespace
#42456: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1241:
+                    LNKB, $

ERROR: trailing whitespace
#42458: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1243:
+                }, $

ERROR: trailing whitespace
#42462: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1247:
+                    0x001FFFFF, $

ERROR: trailing whitespace
#42463: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1248:
+                    0x02, $

ERROR: trailing whitespace
#42464: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1249:
+                    LNKC, $

ERROR: trailing whitespace
#42466: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1251:
+                }, $

ERROR: trailing whitespace
#42470: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1255:
+                    0x001FFFFF, $

ERROR: trailing whitespace
#42471: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1256:
+                    0x03, $

ERROR: trailing whitespace
#42472: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1257:
+                    LNKD, $

ERROR: trailing whitespace
#42480: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1265:
+                    0xFFFF, $

ERROR: trailing whitespace
#42481: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1266:
+                    Zero, $

ERROR: trailing whitespace
#42482: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1267:
+                    GSIE, $

ERROR: trailing whitespace
#42484: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1269:
+                }, $

ERROR: trailing whitespace
#42488: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1273:
+                    0xFFFF, $

ERROR: trailing whitespace
#42489: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1274:
+                    One, $

ERROR: trailing whitespace
#42490: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1275:
+                    GSIF, $

ERROR: trailing whitespace
#42492: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1277:
+                }, $

ERROR: trailing whitespace
#42496: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1281:
+                    0xFFFF, $

ERROR: trailing whitespace
#42497: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1282:
+                    0x02, $

ERROR: trailing whitespace
#42498: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1283:
+                    GSIG, $

ERROR: trailing whitespace
#42500: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1285:
+                }, $

ERROR: trailing whitespace
#42504: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1289:
+                    0xFFFF, $

ERROR: trailing whitespace
#42505: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1290:
+                    0x03, $

ERROR: trailing whitespace
#42506: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1291:
+                    GSIH, $

ERROR: trailing whitespace
#42508: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1293:
+                }, $

ERROR: trailing whitespace
#42512: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1297:
+                    0x0001FFFF, $

ERROR: trailing whitespace
#42513: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1298:
+                    Zero, $

ERROR: trailing whitespace
#42514: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1299:
+                    GSIF, $

ERROR: trailing whitespace
#42516: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1301:
+                }, $

ERROR: trailing whitespace
#42520: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1305:
+                    0x0001FFFF, $

ERROR: trailing whitespace
#42521: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1306:
+                    One, $

ERROR: trailing whitespace
#42522: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1307:
+                    GSIG, $

ERROR: trailing whitespace
#42524: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1309:
+                }, $

ERROR: trailing whitespace
#42528: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1313:
+                    0x0001FFFF, $

ERROR: trailing whitespace
#42529: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1314:
+                    0x02, $

ERROR: trailing whitespace
#42530: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1315:
+                    GSIH, $

ERROR: trailing whitespace
#42532: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1317:
+                }, $

ERROR: trailing whitespace
#42536: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1321:
+                    0x0001FFFF, $

ERROR: trailing whitespace
#42537: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1322:
+                    0x03, $

ERROR: trailing whitespace
#42538: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1323:
+                    GSIE, $

ERROR: trailing whitespace
#42540: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1325:
+                }, $

ERROR: trailing whitespace
#42544: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1329:
+                    0x0002FFFF, $

ERROR: trailing whitespace
#42545: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1330:
+                    Zero, $

ERROR: trailing whitespace
#42546: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1331:
+                    GSIG, $

ERROR: trailing whitespace
#42548: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1333:
+                }, $

ERROR: trailing whitespace
#42552: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1337:
+                    0x0002FFFF, $

ERROR: trailing whitespace
#42553: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1338:
+                    One, $

ERROR: trailing whitespace
#42554: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1339:
+                    GSIH, $

ERROR: trailing whitespace
#42556: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1341:
+                }, $

ERROR: trailing whitespace
#42560: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1345:
+                    0x0002FFFF, $

ERROR: trailing whitespace
#42561: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1346:
+                    0x02, $

ERROR: trailing whitespace
#42562: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1347:
+                    GSIE, $

ERROR: trailing whitespace
#42564: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1349:
+                }, $

ERROR: trailing whitespace
#42568: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1353:
+                    0x0002FFFF, $

ERROR: trailing whitespace
#42569: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1354:
+                    0x03, $

ERROR: trailing whitespace
#42570: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1355:
+                    GSIF, $

ERROR: trailing whitespace
#42572: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1357:
+                }, $

ERROR: trailing whitespace
#42576: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1361:
+                    0x0003FFFF, $

ERROR: trailing whitespace
#42577: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1362:
+                    Zero, $

ERROR: trailing whitespace
#42578: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1363:
+                    GSIH, $

ERROR: trailing whitespace
#42580: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1365:
+                }, $

ERROR: trailing whitespace
#42584: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1369:
+                    0x0003FFFF, $

ERROR: trailing whitespace
#42585: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1370:
+                    One, $

ERROR: trailing whitespace
#42586: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1371:
+                    GSIE, $

ERROR: trailing whitespace
#42588: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1373:
+                }, $

ERROR: trailing whitespace
#42592: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1377:
+                    0x0003FFFF, $

ERROR: trailing whitespace
#42593: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1378:
+                    0x02, $

ERROR: trailing whitespace
#42594: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1379:
+                    GSIF, $

ERROR: trailing whitespace
#42596: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1381:
+                }, $

ERROR: trailing whitespace
#42600: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1385:
+                    0x0003FFFF, $

ERROR: trailing whitespace
#42601: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1386:
+                    0x03, $

ERROR: trailing whitespace
#42602: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1387:
+                    GSIG, $

ERROR: trailing whitespace
#42604: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1389:
+                }, $

ERROR: trailing whitespace
#42608: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1393:
+                    0x0004FFFF, $

ERROR: trailing whitespace
#42609: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1394:
+                    Zero, $

ERROR: trailing whitespace
#42610: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1395:
+                    GSIE, $

ERROR: trailing whitespace
#42612: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1397:
+                }, $

ERROR: trailing whitespace
#42616: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1401:
+                    0x0004FFFF, $

ERROR: trailing whitespace
#42617: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1402:
+                    One, $

ERROR: trailing whitespace
#42618: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1403:
+                    GSIF, $

ERROR: trailing whitespace
#42620: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1405:
+                }, $

ERROR: trailing whitespace
#42624: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1409:
+                    0x0004FFFF, $

ERROR: trailing whitespace
#42625: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1410:
+                    0x02, $

ERROR: trailing whitespace
#42626: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1411:
+                    GSIG, $

ERROR: trailing whitespace
#42628: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1413:
+                }, $

ERROR: trailing whitespace
#42632: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1417:
+                    0x0004FFFF, $

ERROR: trailing whitespace
#42633: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1418:
+                    0x03, $

ERROR: trailing whitespace
#42634: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1419:
+                    GSIH, $

ERROR: trailing whitespace
#42636: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1421:
+                }, $

ERROR: trailing whitespace
#42640: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1425:
+                    0x0005FFFF, $

ERROR: trailing whitespace
#42641: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1426:
+                    Zero, $

ERROR: trailing whitespace
#42642: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1427:
+                    GSIF, $

ERROR: trailing whitespace
#42644: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1429:
+                }, $

ERROR: trailing whitespace
#42648: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1433:
+                    0x0005FFFF, $

ERROR: trailing whitespace
#42649: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1434:
+                    One, $

ERROR: trailing whitespace
#42650: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1435:
+                    GSIG, $

ERROR: trailing whitespace
#42652: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1437:
+                }, $

ERROR: trailing whitespace
#42656: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1441:
+                    0x0005FFFF, $

ERROR: trailing whitespace
#42657: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1442:
+                    0x02, $

ERROR: trailing whitespace
#42658: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1443:
+                    GSIH, $

ERROR: trailing whitespace
#42660: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1445:
+                }, $

ERROR: trailing whitespace
#42664: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1449:
+                    0x0005FFFF, $

ERROR: trailing whitespace
#42665: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1450:
+                    0x03, $

ERROR: trailing whitespace
#42666: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1451:
+                    GSIE, $

ERROR: trailing whitespace
#42668: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1453:
+                }, $

ERROR: trailing whitespace
#42672: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1457:
+                    0x0006FFFF, $

ERROR: trailing whitespace
#42673: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1458:
+                    Zero, $

ERROR: trailing whitespace
#42674: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1459:
+                    GSIG, $

ERROR: trailing whitespace
#42676: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1461:
+                }, $

ERROR: trailing whitespace
#42680: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1465:
+                    0x0006FFFF, $

ERROR: trailing whitespace
#42681: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1466:
+                    One, $

ERROR: trailing whitespace
#42682: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1467:
+                    GSIH, $

ERROR: trailing whitespace
#42684: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1469:
+                }, $

ERROR: trailing whitespace
#42688: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1473:
+                    0x0006FFFF, $

ERROR: trailing whitespace
#42689: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1474:
+                    0x02, $

ERROR: trailing whitespace
#42690: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1475:
+                    GSIE, $

ERROR: trailing whitespace
#42692: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1477:
+                }, $

ERROR: trailing whitespace
#42696: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1481:
+                    0x0006FFFF, $

ERROR: trailing whitespace
#42697: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1482:
+                    0x03, $

ERROR: trailing whitespace
#42698: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1483:
+                    GSIF, $

ERROR: trailing whitespace
#42700: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1485:
+                }, $

ERROR: trailing whitespace
#42704: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1489:
+                    0x0007FFFF, $

ERROR: trailing whitespace
#42705: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1490:
+                    Zero, $

ERROR: trailing whitespace
#42706: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1491:
+                    GSIH, $

ERROR: trailing whitespace
#42708: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1493:
+                }, $

ERROR: trailing whitespace
#42712: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1497:
+                    0x0007FFFF, $

ERROR: trailing whitespace
#42713: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1498:
+                    One, $

ERROR: trailing whitespace
#42714: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1499:
+                    GSIE, $

ERROR: trailing whitespace
#42716: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1501:
+                }, $

ERROR: trailing whitespace
#42720: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1505:
+                    0x0007FFFF, $

ERROR: trailing whitespace
#42721: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1506:
+                    0x02, $

ERROR: trailing whitespace
#42722: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1507:
+                    GSIF, $

ERROR: trailing whitespace
#42724: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1509:
+                }, $

ERROR: trailing whitespace
#42728: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1513:
+                    0x0007FFFF, $

ERROR: trailing whitespace
#42729: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1514:
+                    0x03, $

ERROR: trailing whitespace
#42730: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1515:
+                    GSIG, $

ERROR: trailing whitespace
#42732: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1517:
+                }, $

ERROR: trailing whitespace
#42736: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1521:
+                    0x0008FFFF, $

ERROR: trailing whitespace
#42737: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1522:
+                    Zero, $

ERROR: trailing whitespace
#42738: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1523:
+                    GSIE, $

ERROR: trailing whitespace
#42740: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1525:
+                }, $

ERROR: trailing whitespace
#42744: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1529:
+                    0x0008FFFF, $

ERROR: trailing whitespace
#42745: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1530:
+                    One, $

ERROR: trailing whitespace
#42746: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1531:
+                    GSIF, $

ERROR: trailing whitespace
#42748: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1533:
+                }, $

ERROR: trailing whitespace
#42752: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1537:
+                    0x0008FFFF, $

ERROR: trailing whitespace
#42753: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1538:
+                    0x02, $

ERROR: trailing whitespace
#42754: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1539:
+                    GSIG, $

ERROR: trailing whitespace
#42756: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1541:
+                }, $

ERROR: trailing whitespace
#42760: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1545:
+                    0x0008FFFF, $

ERROR: trailing whitespace
#42761: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1546:
+                    0x03, $

ERROR: trailing whitespace
#42762: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1547:
+                    GSIH, $

ERROR: trailing whitespace
#42764: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1549:
+                }, $

ERROR: trailing whitespace
#42768: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1553:
+                    0x0009FFFF, $

ERROR: trailing whitespace
#42769: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1554:
+                    Zero, $

ERROR: trailing whitespace
#42770: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1555:
+                    GSIF, $

ERROR: trailing whitespace
#42772: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1557:
+                }, $

ERROR: trailing whitespace
#42776: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1561:
+                    0x0009FFFF, $

ERROR: trailing whitespace
#42777: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1562:
+                    One, $

ERROR: trailing whitespace
#42778: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1563:
+                    GSIG, $

ERROR: trailing whitespace
#42780: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1565:
+                }, $

ERROR: trailing whitespace
#42784: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1569:
+                    0x0009FFFF, $

ERROR: trailing whitespace
#42785: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1570:
+                    0x02, $

ERROR: trailing whitespace
#42786: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1571:
+                    GSIH, $

ERROR: trailing whitespace
#42788: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1573:
+                }, $

ERROR: trailing whitespace
#42792: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1577:
+                    0x0009FFFF, $

ERROR: trailing whitespace
#42793: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1578:
+                    0x03, $

ERROR: trailing whitespace
#42794: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1579:
+                    GSIE, $

ERROR: trailing whitespace
#42796: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1581:
+                }, $

ERROR: trailing whitespace
#42800: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1585:
+                    0x000AFFFF, $

ERROR: trailing whitespace
#42801: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1586:
+                    Zero, $

ERROR: trailing whitespace
#42802: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1587:
+                    GSIG, $

ERROR: trailing whitespace
#42804: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1589:
+                }, $

ERROR: trailing whitespace
#42808: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1593:
+                    0x000AFFFF, $

ERROR: trailing whitespace
#42809: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1594:
+                    One, $

ERROR: trailing whitespace
#42810: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1595:
+                    GSIH, $

ERROR: trailing whitespace
#42812: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1597:
+                }, $

ERROR: trailing whitespace
#42816: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1601:
+                    0x000AFFFF, $

ERROR: trailing whitespace
#42817: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1602:
+                    0x02, $

ERROR: trailing whitespace
#42818: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1603:
+                    GSIE, $

ERROR: trailing whitespace
#42820: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1605:
+                }, $

ERROR: trailing whitespace
#42824: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1609:
+                    0x000AFFFF, $

ERROR: trailing whitespace
#42825: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1610:
+                    0x03, $

ERROR: trailing whitespace
#42826: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1611:
+                    GSIF, $

ERROR: trailing whitespace
#42828: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1613:
+                }, $

ERROR: trailing whitespace
#42832: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1617:
+                    0x000BFFFF, $

ERROR: trailing whitespace
#42833: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1618:
+                    Zero, $

ERROR: trailing whitespace
#42834: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1619:
+                    GSIH, $

ERROR: trailing whitespace
#42836: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1621:
+                }, $

ERROR: trailing whitespace
#42840: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1625:
+                    0x000BFFFF, $

ERROR: trailing whitespace
#42841: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1626:
+                    One, $

ERROR: trailing whitespace
#42842: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1627:
+                    GSIE, $

ERROR: trailing whitespace
#42844: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1629:
+                }, $

ERROR: trailing whitespace
#42848: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1633:
+                    0x000BFFFF, $

ERROR: trailing whitespace
#42849: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1634:
+                    0x02, $

ERROR: trailing whitespace
#42850: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1635:
+                    GSIF, $

ERROR: trailing whitespace
#42852: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1637:
+                }, $

ERROR: trailing whitespace
#42856: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1641:
+                    0x000BFFFF, $

ERROR: trailing whitespace
#42857: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1642:
+                    0x03, $

ERROR: trailing whitespace
#42858: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1643:
+                    GSIG, $

ERROR: trailing whitespace
#42860: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1645:
+                }, $

ERROR: trailing whitespace
#42864: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1649:
+                    0x000CFFFF, $

ERROR: trailing whitespace
#42865: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1650:
+                    Zero, $

ERROR: trailing whitespace
#42866: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1651:
+                    GSIE, $

ERROR: trailing whitespace
#42868: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1653:
+                }, $

ERROR: trailing whitespace
#42872: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1657:
+                    0x000CFFFF, $

ERROR: trailing whitespace
#42873: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1658:
+                    One, $

ERROR: trailing whitespace
#42874: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1659:
+                    GSIF, $

ERROR: trailing whitespace
#42876: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1661:
+                }, $

ERROR: trailing whitespace
#42880: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1665:
+                    0x000CFFFF, $

ERROR: trailing whitespace
#42881: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1666:
+                    0x02, $

ERROR: trailing whitespace
#42882: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1667:
+                    GSIG, $

ERROR: trailing whitespace
#42884: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1669:
+                }, $

ERROR: trailing whitespace
#42888: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1673:
+                    0x000CFFFF, $

ERROR: trailing whitespace
#42889: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1674:
+                    0x03, $

ERROR: trailing whitespace
#42890: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1675:
+                    GSIH, $

ERROR: trailing whitespace
#42892: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1677:
+                }, $

ERROR: trailing whitespace
#42896: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1681:
+                    0x000DFFFF, $

ERROR: trailing whitespace
#42897: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1682:
+                    Zero, $

ERROR: trailing whitespace
#42898: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1683:
+                    GSIF, $

ERROR: trailing whitespace
#42900: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1685:
+                }, $

ERROR: trailing whitespace
#42904: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1689:
+                    0x000DFFFF, $

ERROR: trailing whitespace
#42905: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1690:
+                    One, $

ERROR: trailing whitespace
#42906: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1691:
+                    GSIG, $

ERROR: trailing whitespace
#42908: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1693:
+                }, $

ERROR: trailing whitespace
#42912: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1697:
+                    0x000DFFFF, $

ERROR: trailing whitespace
#42913: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1698:
+                    0x02, $

ERROR: trailing whitespace
#42914: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1699:
+                    GSIH, $

ERROR: trailing whitespace
#42916: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1701:
+                }, $

ERROR: trailing whitespace
#42920: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1705:
+                    0x000DFFFF, $

ERROR: trailing whitespace
#42921: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1706:
+                    0x03, $

ERROR: trailing whitespace
#42922: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1707:
+                    GSIE, $

ERROR: trailing whitespace
#42924: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1709:
+                }, $

ERROR: trailing whitespace
#42928: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1713:
+                    0x000EFFFF, $

ERROR: trailing whitespace
#42929: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1714:
+                    Zero, $

ERROR: trailing whitespace
#42930: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1715:
+                    GSIG, $

ERROR: trailing whitespace
#42932: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1717:
+                }, $

ERROR: trailing whitespace
#42936: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1721:
+                    0x000EFFFF, $

ERROR: trailing whitespace
#42937: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1722:
+                    One, $

ERROR: trailing whitespace
#42938: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1723:
+                    GSIH, $

ERROR: trailing whitespace
#42940: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1725:
+                }, $

ERROR: trailing whitespace
#42944: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1729:
+                    0x000EFFFF, $

ERROR: trailing whitespace
#42945: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1730:
+                    0x02, $

ERROR: trailing whitespace
#42946: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1731:
+                    GSIE, $

ERROR: trailing whitespace
#42948: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1733:
+                }, $

ERROR: trailing whitespace
#42952: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1737:
+                    0x000EFFFF, $

ERROR: trailing whitespace
#42953: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1738:
+                    0x03, $

ERROR: trailing whitespace
#42954: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1739:
+                    GSIF, $

ERROR: trailing whitespace
#42956: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1741:
+                }, $

ERROR: trailing whitespace
#42960: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1745:
+                    0x000FFFFF, $

ERROR: trailing whitespace
#42961: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1746:
+                    Zero, $

ERROR: trailing whitespace
#42962: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1747:
+                    GSIH, $

ERROR: trailing whitespace
#42964: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1749:
+                }, $

ERROR: trailing whitespace
#42968: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1753:
+                    0x000FFFFF, $

ERROR: trailing whitespace
#42969: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1754:
+                    One, $

ERROR: trailing whitespace
#42970: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1755:
+                    GSIE, $

ERROR: trailing whitespace
#42972: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1757:
+                }, $

ERROR: trailing whitespace
#42976: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1761:
+                    0x000FFFFF, $

ERROR: trailing whitespace
#42977: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1762:
+                    0x02, $

ERROR: trailing whitespace
#42978: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1763:
+                    GSIF, $

ERROR: trailing whitespace
#42980: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1765:
+                }, $

ERROR: trailing whitespace
#42984: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1769:
+                    0x000FFFFF, $

ERROR: trailing whitespace
#42985: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1770:
+                    0x03, $

ERROR: trailing whitespace
#42986: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1771:
+                    GSIG, $

ERROR: trailing whitespace
#42988: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1773:
+                }, $

ERROR: trailing whitespace
#42992: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1777:
+                    0x0010FFFF, $

ERROR: trailing whitespace
#42993: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1778:
+                    Zero, $

ERROR: trailing whitespace
#42994: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1779:
+                    GSIE, $

ERROR: trailing whitespace
#42996: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1781:
+                }, $

ERROR: trailing whitespace
#43000: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1785:
+                    0x0010FFFF, $

ERROR: trailing whitespace
#43001: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1786:
+                    One, $

ERROR: trailing whitespace
#43002: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1787:
+                    GSIF, $

ERROR: trailing whitespace
#43004: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1789:
+                }, $

ERROR: trailing whitespace
#43008: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1793:
+                    0x0010FFFF, $

ERROR: trailing whitespace
#43009: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1794:
+                    0x02, $

ERROR: trailing whitespace
#43010: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1795:
+                    GSIG, $

ERROR: trailing whitespace
#43012: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1797:
+                }, $

ERROR: trailing whitespace
#43016: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1801:
+                    0x0010FFFF, $

ERROR: trailing whitespace
#43017: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1802:
+                    0x03, $

ERROR: trailing whitespace
#43018: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1803:
+                    GSIH, $

ERROR: trailing whitespace
#43020: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1805:
+                }, $

ERROR: trailing whitespace
#43024: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1809:
+                    0x0011FFFF, $

ERROR: trailing whitespace
#43025: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1810:
+                    Zero, $

ERROR: trailing whitespace
#43026: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1811:
+                    GSIF, $

ERROR: trailing whitespace
#43028: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1813:
+                }, $

ERROR: trailing whitespace
#43032: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1817:
+                    0x0011FFFF, $

ERROR: trailing whitespace
#43033: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1818:
+                    One, $

ERROR: trailing whitespace
#43034: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1819:
+                    GSIG, $

ERROR: trailing whitespace
#43036: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1821:
+                }, $

ERROR: trailing whitespace
#43040: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1825:
+                    0x0011FFFF, $

ERROR: trailing whitespace
#43041: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1826:
+                    0x02, $

ERROR: trailing whitespace
#43042: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1827:
+                    GSIH, $

ERROR: trailing whitespace
#43044: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1829:
+                }, $

ERROR: trailing whitespace
#43048: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1833:
+                    0x0011FFFF, $

ERROR: trailing whitespace
#43049: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1834:
+                    0x03, $

ERROR: trailing whitespace
#43050: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1835:
+                    GSIE, $

ERROR: trailing whitespace
#43052: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1837:
+                }, $

ERROR: trailing whitespace
#43056: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1841:
+                    0x0012FFFF, $

ERROR: trailing whitespace
#43057: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1842:
+                    Zero, $

ERROR: trailing whitespace
#43058: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1843:
+                    GSIG, $

ERROR: trailing whitespace
#43060: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1845:
+                }, $

ERROR: trailing whitespace
#43064: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1849:
+                    0x0012FFFF, $

ERROR: trailing whitespace
#43065: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1850:
+                    One, $

ERROR: trailing whitespace
#43066: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1851:
+                    GSIH, $

ERROR: trailing whitespace
#43068: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1853:
+                }, $

ERROR: trailing whitespace
#43072: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1857:
+                    0x0012FFFF, $

ERROR: trailing whitespace
#43073: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1858:
+                    0x02, $

ERROR: trailing whitespace
#43074: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1859:
+                    GSIE, $

ERROR: trailing whitespace
#43076: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1861:
+                }, $

ERROR: trailing whitespace
#43080: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1865:
+                    0x0012FFFF, $

ERROR: trailing whitespace
#43081: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1866:
+                    0x03, $

ERROR: trailing whitespace
#43082: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1867:
+                    GSIF, $

ERROR: trailing whitespace
#43084: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1869:
+                }, $

ERROR: trailing whitespace
#43088: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1873:
+                    0x0013FFFF, $

ERROR: trailing whitespace
#43089: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1874:
+                    Zero, $

ERROR: trailing whitespace
#43090: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1875:
+                    GSIH, $

ERROR: trailing whitespace
#43092: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1877:
+                }, $

ERROR: trailing whitespace
#43096: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1881:
+                    0x0013FFFF, $

ERROR: trailing whitespace
#43097: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1882:
+                    One, $

ERROR: trailing whitespace
#43098: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1883:
+                    GSIE, $

ERROR: trailing whitespace
#43100: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1885:
+                }, $

ERROR: trailing whitespace
#43104: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1889:
+                    0x0013FFFF, $

ERROR: trailing whitespace
#43105: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1890:
+                    0x02, $

ERROR: trailing whitespace
#43106: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1891:
+                    GSIF, $

ERROR: trailing whitespace
#43108: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1893:
+                }, $

ERROR: trailing whitespace
#43112: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1897:
+                    0x0013FFFF, $

ERROR: trailing whitespace
#43113: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1898:
+                    0x03, $

ERROR: trailing whitespace
#43114: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1899:
+                    GSIG, $

ERROR: trailing whitespace
#43116: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1901:
+                }, $

ERROR: trailing whitespace
#43120: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1905:
+                    0x0014FFFF, $

ERROR: trailing whitespace
#43121: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1906:
+                    Zero, $

ERROR: trailing whitespace
#43122: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1907:
+                    GSIE, $

ERROR: trailing whitespace
#43124: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1909:
+                }, $

ERROR: trailing whitespace
#43128: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1913:
+                    0x0014FFFF, $

ERROR: trailing whitespace
#43129: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1914:
+                    One, $

ERROR: trailing whitespace
#43130: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1915:
+                    GSIF, $

ERROR: trailing whitespace
#43132: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1917:
+                }, $

ERROR: trailing whitespace
#43136: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1921:
+                    0x0014FFFF, $

ERROR: trailing whitespace
#43137: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1922:
+                    0x02, $

ERROR: trailing whitespace
#43138: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1923:
+                    GSIG, $

ERROR: trailing whitespace
#43140: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1925:
+                }, $

ERROR: trailing whitespace
#43144: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1929:
+                    0x0014FFFF, $

ERROR: trailing whitespace
#43145: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1930:
+                    0x03, $

ERROR: trailing whitespace
#43146: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1931:
+                    GSIH, $

ERROR: trailing whitespace
#43148: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1933:
+                }, $

ERROR: trailing whitespace
#43152: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1937:
+                    0x0015FFFF, $

ERROR: trailing whitespace
#43153: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1938:
+                    Zero, $

ERROR: trailing whitespace
#43154: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1939:
+                    GSIF, $

ERROR: trailing whitespace
#43156: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1941:
+                }, $

ERROR: trailing whitespace
#43160: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1945:
+                    0x0015FFFF, $

ERROR: trailing whitespace
#43161: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1946:
+                    One, $

ERROR: trailing whitespace
#43162: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1947:
+                    GSIG, $

ERROR: trailing whitespace
#43164: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1949:
+                }, $

ERROR: trailing whitespace
#43168: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1953:
+                    0x0015FFFF, $

ERROR: trailing whitespace
#43169: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1954:
+                    0x02, $

ERROR: trailing whitespace
#43170: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1955:
+                    GSIH, $

ERROR: trailing whitespace
#43172: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1957:
+                }, $

ERROR: trailing whitespace
#43176: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1961:
+                    0x0015FFFF, $

ERROR: trailing whitespace
#43177: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1962:
+                    0x03, $

ERROR: trailing whitespace
#43178: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1963:
+                    GSIE, $

ERROR: trailing whitespace
#43180: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1965:
+                }, $

ERROR: trailing whitespace
#43184: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1969:
+                    0x0016FFFF, $

ERROR: trailing whitespace
#43185: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1970:
+                    Zero, $

ERROR: trailing whitespace
#43186: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1971:
+                    GSIG, $

ERROR: trailing whitespace
#43188: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1973:
+                }, $

ERROR: trailing whitespace
#43192: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1977:
+                    0x0016FFFF, $

ERROR: trailing whitespace
#43193: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1978:
+                    One, $

ERROR: trailing whitespace
#43194: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1979:
+                    GSIH, $

ERROR: trailing whitespace
#43196: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1981:
+                }, $

ERROR: trailing whitespace
#43200: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1985:
+                    0x0016FFFF, $

ERROR: trailing whitespace
#43201: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1986:
+                    0x02, $

ERROR: trailing whitespace
#43202: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1987:
+                    GSIE, $

ERROR: trailing whitespace
#43204: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1989:
+                }, $

ERROR: trailing whitespace
#43208: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1993:
+                    0x0016FFFF, $

ERROR: trailing whitespace
#43209: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1994:
+                    0x03, $

ERROR: trailing whitespace
#43210: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1995:
+                    GSIF, $

ERROR: trailing whitespace
#43212: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:1997:
+                }, $

ERROR: trailing whitespace
#43216: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2001:
+                    0x0017FFFF, $

ERROR: trailing whitespace
#43217: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2002:
+                    Zero, $

ERROR: trailing whitespace
#43218: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2003:
+                    GSIH, $

ERROR: trailing whitespace
#43220: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2005:
+                }, $

ERROR: trailing whitespace
#43224: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2009:
+                    0x0017FFFF, $

ERROR: trailing whitespace
#43225: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2010:
+                    One, $

ERROR: trailing whitespace
#43226: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2011:
+                    GSIE, $

ERROR: trailing whitespace
#43228: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2013:
+                }, $

ERROR: trailing whitespace
#43232: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2017:
+                    0x0017FFFF, $

ERROR: trailing whitespace
#43233: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2018:
+                    0x02, $

ERROR: trailing whitespace
#43234: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2019:
+                    GSIF, $

ERROR: trailing whitespace
#43236: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2021:
+                }, $

ERROR: trailing whitespace
#43240: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2025:
+                    0x0017FFFF, $

ERROR: trailing whitespace
#43241: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2026:
+                    0x03, $

ERROR: trailing whitespace
#43242: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2027:
+                    GSIG, $

ERROR: trailing whitespace
#43244: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2029:
+                }, $

ERROR: trailing whitespace
#43248: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2033:
+                    0x0018FFFF, $

ERROR: trailing whitespace
#43249: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2034:
+                    Zero, $

ERROR: trailing whitespace
#43250: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2035:
+                    GSIE, $

ERROR: trailing whitespace
#43252: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2037:
+                }, $

ERROR: trailing whitespace
#43256: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2041:
+                    0x0018FFFF, $

ERROR: trailing whitespace
#43257: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2042:
+                    One, $

ERROR: trailing whitespace
#43258: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2043:
+                    GSIF, $

ERROR: trailing whitespace
#43260: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2045:
+                }, $

ERROR: trailing whitespace
#43264: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2049:
+                    0x0018FFFF, $

ERROR: trailing whitespace
#43265: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2050:
+                    0x02, $

ERROR: trailing whitespace
#43266: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2051:
+                    GSIG, $

ERROR: trailing whitespace
#43268: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2053:
+                }, $

ERROR: trailing whitespace
#43272: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2057:
+                    0x0018FFFF, $

ERROR: trailing whitespace
#43273: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2058:
+                    0x03, $

ERROR: trailing whitespace
#43274: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2059:
+                    GSIH, $

ERROR: trailing whitespace
#43276: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2061:
+                }, $

ERROR: trailing whitespace
#43280: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2065:
+                    0x0019FFFF, $

ERROR: trailing whitespace
#43281: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2066:
+                    Zero, $

ERROR: trailing whitespace
#43282: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2067:
+                    GSIA, $

ERROR: trailing whitespace
#43284: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2069:
+                }, $

ERROR: trailing whitespace
#43288: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2073:
+                    0x0019FFFF, $

ERROR: trailing whitespace
#43289: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2074:
+                    One, $

ERROR: trailing whitespace
#43290: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2075:
+                    GSIB, $

ERROR: trailing whitespace
#43292: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2077:
+                }, $

ERROR: trailing whitespace
#43296: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2081:
+                    0x0019FFFF, $

ERROR: trailing whitespace
#43297: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2082:
+                    0x02, $

ERROR: trailing whitespace
#43298: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2083:
+                    GSIC, $

ERROR: trailing whitespace
#43300: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2085:
+                }, $

ERROR: trailing whitespace
#43304: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2089:
+                    0x0019FFFF, $

ERROR: trailing whitespace
#43305: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2090:
+                    0x03, $

ERROR: trailing whitespace
#43306: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2091:
+                    GSID, $

ERROR: trailing whitespace
#43308: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2093:
+                }, $

ERROR: trailing whitespace
#43312: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2097:
+                    0x001AFFFF, $

ERROR: trailing whitespace
#43313: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2098:
+                    Zero, $

ERROR: trailing whitespace
#43314: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2099:
+                    GSIA, $

ERROR: trailing whitespace
#43316: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2101:
+                }, $

ERROR: trailing whitespace
#43320: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2105:
+                    0x001AFFFF, $

ERROR: trailing whitespace
#43321: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2106:
+                    One, $

ERROR: trailing whitespace
#43322: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2107:
+                    GSIB, $

ERROR: trailing whitespace
#43324: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2109:
+                }, $

ERROR: trailing whitespace
#43328: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2113:
+                    0x001AFFFF, $

ERROR: trailing whitespace
#43329: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2114:
+                    0x02, $

ERROR: trailing whitespace
#43330: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2115:
+                    GSIC, $

ERROR: trailing whitespace
#43332: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2117:
+                }, $

ERROR: trailing whitespace
#43336: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2121:
+                    0x001AFFFF, $

ERROR: trailing whitespace
#43337: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2122:
+                    0x03, $

ERROR: trailing whitespace
#43338: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2123:
+                    GSID, $

ERROR: trailing whitespace
#43340: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2125:
+                }, $

ERROR: trailing whitespace
#43344: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2129:
+                    0x001BFFFF, $

ERROR: trailing whitespace
#43345: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2130:
+                    Zero, $

ERROR: trailing whitespace
#43346: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2131:
+                    GSIA, $

ERROR: trailing whitespace
#43348: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2133:
+                }, $

ERROR: trailing whitespace
#43352: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2137:
+                    0x001BFFFF, $

ERROR: trailing whitespace
#43353: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2138:
+                    One, $

ERROR: trailing whitespace
#43354: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2139:
+                    GSIB, $

ERROR: trailing whitespace
#43356: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2141:
+                }, $

ERROR: trailing whitespace
#43360: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2145:
+                    0x001BFFFF, $

ERROR: trailing whitespace
#43361: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2146:
+                    0x02, $

ERROR: trailing whitespace
#43362: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2147:
+                    GSIC, $

ERROR: trailing whitespace
#43364: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2149:
+                }, $

ERROR: trailing whitespace
#43368: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2153:
+                    0x001BFFFF, $

ERROR: trailing whitespace
#43369: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2154:
+                    0x03, $

ERROR: trailing whitespace
#43370: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2155:
+                    GSID, $

ERROR: trailing whitespace
#43372: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2157:
+                }, $

ERROR: trailing whitespace
#43376: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2161:
+                    0x001CFFFF, $

ERROR: trailing whitespace
#43377: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2162:
+                    Zero, $

ERROR: trailing whitespace
#43378: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2163:
+                    GSIA, $

ERROR: trailing whitespace
#43380: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2165:
+                }, $

ERROR: trailing whitespace
#43384: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2169:
+                    0x001CFFFF, $

ERROR: trailing whitespace
#43385: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2170:
+                    One, $

ERROR: trailing whitespace
#43386: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2171:
+                    GSIB, $

ERROR: trailing whitespace
#43388: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2173:
+                }, $

ERROR: trailing whitespace
#43392: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2177:
+                    0x001CFFFF, $

ERROR: trailing whitespace
#43393: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2178:
+                    0x02, $

ERROR: trailing whitespace
#43394: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2179:
+                    GSIC, $

ERROR: trailing whitespace
#43396: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2181:
+                }, $

ERROR: trailing whitespace
#43400: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2185:
+                    0x001CFFFF, $

ERROR: trailing whitespace
#43401: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2186:
+                    0x03, $

ERROR: trailing whitespace
#43402: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2187:
+                    GSID, $

ERROR: trailing whitespace
#43404: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2189:
+                }, $

ERROR: trailing whitespace
#43408: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2193:
+                    0x001DFFFF, $

ERROR: trailing whitespace
#43409: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2194:
+                    Zero, $

ERROR: trailing whitespace
#43410: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2195:
+                    GSIA, $

ERROR: trailing whitespace
#43412: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2197:
+                }, $

ERROR: trailing whitespace
#43416: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2201:
+                    0x001DFFFF, $

ERROR: trailing whitespace
#43417: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2202:
+                    One, $

ERROR: trailing whitespace
#43418: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2203:
+                    GSIB, $

ERROR: trailing whitespace
#43420: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2205:
+                }, $

ERROR: trailing whitespace
#43424: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2209:
+                    0x001DFFFF, $

ERROR: trailing whitespace
#43425: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2210:
+                    0x02, $

ERROR: trailing whitespace
#43426: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2211:
+                    GSIC, $

ERROR: trailing whitespace
#43428: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2213:
+                }, $

ERROR: trailing whitespace
#43432: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2217:
+                    0x001DFFFF, $

ERROR: trailing whitespace
#43433: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2218:
+                    0x03, $

ERROR: trailing whitespace
#43434: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2219:
+                    GSID, $

ERROR: trailing whitespace
#43436: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2221:
+                }, $

ERROR: trailing whitespace
#43440: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2225:
+                    0x001EFFFF, $

ERROR: trailing whitespace
#43441: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2226:
+                    Zero, $

ERROR: trailing whitespace
#43442: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2227:
+                    GSIE, $

ERROR: trailing whitespace
#43444: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2229:
+                }, $

ERROR: trailing whitespace
#43448: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2233:
+                    0x001EFFFF, $

ERROR: trailing whitespace
#43449: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2234:
+                    One, $

ERROR: trailing whitespace
#43450: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2235:
+                    GSIF, $

ERROR: trailing whitespace
#43452: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2237:
+                }, $

ERROR: trailing whitespace
#43456: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2241:
+                    0x001EFFFF, $

ERROR: trailing whitespace
#43457: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2242:
+                    0x02, $

ERROR: trailing whitespace
#43458: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2243:
+                    GSIG, $

ERROR: trailing whitespace
#43460: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2245:
+                }, $

ERROR: trailing whitespace
#43464: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2249:
+                    0x001EFFFF, $

ERROR: trailing whitespace
#43465: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2250:
+                    0x03, $

ERROR: trailing whitespace
#43466: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2251:
+                    GSIH, $

ERROR: trailing whitespace
#43468: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2253:
+                }, $

ERROR: trailing whitespace
#43472: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2257:
+                    0x001FFFFF, $

ERROR: trailing whitespace
#43473: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2258:
+                    Zero, $

ERROR: trailing whitespace
#43474: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2259:
+                    GSIA, $

ERROR: trailing whitespace
#43476: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2261:
+                }, $

ERROR: trailing whitespace
#43480: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2265:
+                    0x001FFFFF, $

ERROR: trailing whitespace
#43481: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2266:
+                    One, $

ERROR: trailing whitespace
#43482: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2267:
+                    GSIB, $

ERROR: trailing whitespace
#43484: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2269:
+                }, $

ERROR: trailing whitespace
#43488: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2273:
+                    0x001FFFFF, $

ERROR: trailing whitespace
#43489: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2274:
+                    0x02, $

ERROR: trailing whitespace
#43490: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2275:
+                    GSIC, $

ERROR: trailing whitespace
#43492: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2277:
+                }, $

ERROR: trailing whitespace
#43496: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2281:
+                    0x001FFFFF, $

ERROR: trailing whitespace
#43497: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2282:
+                    0x03, $

ERROR: trailing whitespace
#43498: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2283:
+                    GSID, $

ERROR: trailing whitespace
#43517: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2302:
+            PRQA,   8, $

ERROR: trailing whitespace
#43518: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2303:
+            PRQB,   8, $

ERROR: trailing whitespace
#43519: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2304:
+            PRQC,   8, $

ERROR: trailing whitespace
#43520: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2305:
+            PRQD,   8, $

ERROR: trailing whitespace
#43521: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2306:
+            Offset (0x08), $

ERROR: trailing whitespace
#43522: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2307:
+            PRQE,   8, $

ERROR: trailing whitespace
#43523: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2308:
+            PRQF,   8, $

ERROR: trailing whitespace
#43524: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2309:
+            PRQG,   8, $

ERROR: trailing whitespace
#44076: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2861:
+                Offset (0x04), $

ERROR: trailing whitespace
#44077: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2862:
+                CPEN,   1, $

ERROR: trailing whitespace
#44078: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2863:
+                CINS,   1, $

ERROR: trailing whitespace
#44079: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2864:
+                CRMV,   1, $

ERROR: trailing whitespace
#44080: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2865:
+                CEJ0,   1, $

ERROR: trailing whitespace
#44081: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2866:
+                Offset (0x05), $

ERROR: trailing whitespace
#44087: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2872:
+                CSEL,   32, $

ERROR: trailing whitespace
#44088: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:2873:
+                Offset (0x08), $

ERROR: trailing whitespace
#44217: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:3002:
+            MRBL,   32, $

ERROR: trailing whitespace
#44218: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:3003:
+            MRBH,   32, $

ERROR: trailing whitespace
#44219: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:3004:
+            MRLL,   32, $

ERROR: trailing whitespace
#44220: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:3005:
+            MRLH,   32, $

ERROR: trailing whitespace
#44226: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:3011:
+            Offset (0x14), $

ERROR: trailing whitespace
#44227: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:3012:
+            MES,    1, $

ERROR: trailing whitespace
#44228: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:3013:
+            MINS,   1, $

ERROR: trailing whitespace
#44229: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:3014:
+            MRMV,   1, $

ERROR: trailing whitespace
#44235: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:3020:
+            MSEL,   32, $

ERROR: trailing whitespace
#44236: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:3021:
+            MOEV,   32, $

ERROR: trailing whitespace
#44584: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:3369:
+            One, $

ERROR: trailing whitespace
#44585: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:3370:
+            One, $

ERROR: trailing whitespace
#44586: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:3371:
+            Zero, $

ERROR: trailing whitespace
#44591: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:3376:
+            0x02, $

ERROR: trailing whitespace
#44592: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:3377:
+            0x02, $

ERROR: trailing whitespace
#44593: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:3378:
+            Zero, $

ERROR: trailing whitespace
#44598: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:3383:
+            Zero, $

ERROR: trailing whitespace
#44599: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:3384:
+            Zero, $

ERROR: trailing whitespace
#44600: FILE: tests/data/acpi/q35/DSDT.memhp.dsl:3385:
+            Zero, $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/DSDT.mmio64 and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/DSDT.mmio64.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/DSDT.mmio64.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#44671: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:5:
+ * $

ERROR: trailing whitespace
#44761: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:95:
+                VEND,   32, $

ERROR: trailing whitespace
#44905: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:239:
+                    0xFFFF, $

ERROR: trailing whitespace
#44906: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:240:
+                    Zero, $

ERROR: trailing whitespace
#44907: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:241:
+                    LNKE, $

ERROR: trailing whitespace
#44909: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:243:
+                }, $

ERROR: trailing whitespace
#44913: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:247:
+                    0xFFFF, $

ERROR: trailing whitespace
#44914: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:248:
+                    One, $

ERROR: trailing whitespace
#44915: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:249:
+                    LNKF, $

ERROR: trailing whitespace
#44917: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:251:
+                }, $

ERROR: trailing whitespace
#44921: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:255:
+                    0xFFFF, $

ERROR: trailing whitespace
#44922: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:256:
+                    0x02, $

ERROR: trailing whitespace
#44923: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:257:
+                    LNKG, $

ERROR: trailing whitespace
#44925: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:259:
+                }, $

ERROR: trailing whitespace
#44929: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:263:
+                    0xFFFF, $

ERROR: trailing whitespace
#44930: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:264:
+                    0x03, $

ERROR: trailing whitespace
#44931: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:265:
+                    LNKH, $

ERROR: trailing whitespace
#44933: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:267:
+                }, $

ERROR: trailing whitespace
#44937: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:271:
+                    0x0001FFFF, $

ERROR: trailing whitespace
#44938: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:272:
+                    Zero, $

ERROR: trailing whitespace
#44939: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:273:
+                    LNKF, $

ERROR: trailing whitespace
#44941: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:275:
+                }, $

ERROR: trailing whitespace
#44945: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:279:
+                    0x0001FFFF, $

ERROR: trailing whitespace
#44946: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:280:
+                    One, $

ERROR: trailing whitespace
#44947: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:281:
+                    LNKG, $

ERROR: trailing whitespace
#44949: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:283:
+                }, $

ERROR: trailing whitespace
#44953: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:287:
+                    0x0001FFFF, $

ERROR: trailing whitespace
#44954: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:288:
+                    0x02, $

ERROR: trailing whitespace
#44955: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:289:
+                    LNKH, $

ERROR: trailing whitespace
#44957: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:291:
+                }, $

ERROR: trailing whitespace
#44961: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:295:
+                    0x0001FFFF, $

ERROR: trailing whitespace
#44962: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:296:
+                    0x03, $

ERROR: trailing whitespace
#44963: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:297:
+                    LNKE, $

ERROR: trailing whitespace
#44965: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:299:
+                }, $

ERROR: trailing whitespace
#44969: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:303:
+                    0x0002FFFF, $

ERROR: trailing whitespace
#44970: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:304:
+                    Zero, $

ERROR: trailing whitespace
#44971: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:305:
+                    LNKG, $

ERROR: trailing whitespace
#44973: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:307:
+                }, $

ERROR: trailing whitespace
#44977: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:311:
+                    0x0002FFFF, $

ERROR: trailing whitespace
#44978: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:312:
+                    One, $

ERROR: trailing whitespace
#44979: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:313:
+                    LNKH, $

ERROR: trailing whitespace
#44981: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:315:
+                }, $

ERROR: trailing whitespace
#44985: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:319:
+                    0x0002FFFF, $

ERROR: trailing whitespace
#44986: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:320:
+                    0x02, $

ERROR: trailing whitespace
#44987: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:321:
+                    LNKE, $

ERROR: trailing whitespace
#44989: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:323:
+                }, $

ERROR: trailing whitespace
#44993: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:327:
+                    0x0002FFFF, $

ERROR: trailing whitespace
#44994: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:328:
+                    0x03, $

ERROR: trailing whitespace
#44995: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:329:
+                    LNKF, $

ERROR: trailing whitespace
#44997: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:331:
+                }, $

ERROR: trailing whitespace
#45001: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:335:
+                    0x0003FFFF, $

ERROR: trailing whitespace
#45002: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:336:
+                    Zero, $

ERROR: trailing whitespace
#45003: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:337:
+                    LNKH, $

ERROR: trailing whitespace
#45005: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:339:
+                }, $

ERROR: trailing whitespace
#45009: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:343:
+                    0x0003FFFF, $

ERROR: trailing whitespace
#45010: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:344:
+                    One, $

ERROR: trailing whitespace
#45011: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:345:
+                    LNKE, $

ERROR: trailing whitespace
#45013: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:347:
+                }, $

ERROR: trailing whitespace
#45017: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:351:
+                    0x0003FFFF, $

ERROR: trailing whitespace
#45018: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:352:
+                    0x02, $

ERROR: trailing whitespace
#45019: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:353:
+                    LNKF, $

ERROR: trailing whitespace
#45021: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:355:
+                }, $

ERROR: trailing whitespace
#45025: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:359:
+                    0x0003FFFF, $

ERROR: trailing whitespace
#45026: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:360:
+                    0x03, $

ERROR: trailing whitespace
#45027: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:361:
+                    LNKG, $

ERROR: trailing whitespace
#45029: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:363:
+                }, $

ERROR: trailing whitespace
#45033: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:367:
+                    0x0004FFFF, $

ERROR: trailing whitespace
#45034: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:368:
+                    Zero, $

ERROR: trailing whitespace
#45035: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:369:
+                    LNKE, $

ERROR: trailing whitespace
#45037: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:371:
+                }, $

ERROR: trailing whitespace
#45041: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:375:
+                    0x0004FFFF, $

ERROR: trailing whitespace
#45042: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:376:
+                    One, $

ERROR: trailing whitespace
#45043: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:377:
+                    LNKF, $

ERROR: trailing whitespace
#45045: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:379:
+                }, $

ERROR: trailing whitespace
#45049: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:383:
+                    0x0004FFFF, $

ERROR: trailing whitespace
#45050: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:384:
+                    0x02, $

ERROR: trailing whitespace
#45051: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:385:
+                    LNKG, $

ERROR: trailing whitespace
#45053: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:387:
+                }, $

ERROR: trailing whitespace
#45057: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:391:
+                    0x0004FFFF, $

ERROR: trailing whitespace
#45058: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:392:
+                    0x03, $

ERROR: trailing whitespace
#45059: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:393:
+                    LNKH, $

ERROR: trailing whitespace
#45061: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:395:
+                }, $

ERROR: trailing whitespace
#45065: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:399:
+                    0x0005FFFF, $

ERROR: trailing whitespace
#45066: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:400:
+                    Zero, $

ERROR: trailing whitespace
#45067: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:401:
+                    LNKF, $

ERROR: trailing whitespace
#45069: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:403:
+                }, $

ERROR: trailing whitespace
#45073: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:407:
+                    0x0005FFFF, $

ERROR: trailing whitespace
#45074: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:408:
+                    One, $

ERROR: trailing whitespace
#45075: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:409:
+                    LNKG, $

ERROR: trailing whitespace
#45077: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:411:
+                }, $

ERROR: trailing whitespace
#45081: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:415:
+                    0x0005FFFF, $

ERROR: trailing whitespace
#45082: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:416:
+                    0x02, $

ERROR: trailing whitespace
#45083: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:417:
+                    LNKH, $

ERROR: trailing whitespace
#45085: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:419:
+                }, $

ERROR: trailing whitespace
#45089: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:423:
+                    0x0005FFFF, $

ERROR: trailing whitespace
#45090: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:424:
+                    0x03, $

ERROR: trailing whitespace
#45091: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:425:
+                    LNKE, $

ERROR: trailing whitespace
#45093: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:427:
+                }, $

ERROR: trailing whitespace
#45097: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:431:
+                    0x0006FFFF, $

ERROR: trailing whitespace
#45098: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:432:
+                    Zero, $

ERROR: trailing whitespace
#45099: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:433:
+                    LNKG, $

ERROR: trailing whitespace
#45101: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:435:
+                }, $

ERROR: trailing whitespace
#45105: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:439:
+                    0x0006FFFF, $

ERROR: trailing whitespace
#45106: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:440:
+                    One, $

ERROR: trailing whitespace
#45107: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:441:
+                    LNKH, $

ERROR: trailing whitespace
#45109: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:443:
+                }, $

ERROR: trailing whitespace
#45113: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:447:
+                    0x0006FFFF, $

ERROR: trailing whitespace
#45114: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:448:
+                    0x02, $

ERROR: trailing whitespace
#45115: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:449:
+                    LNKE, $

ERROR: trailing whitespace
#45117: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:451:
+                }, $

ERROR: trailing whitespace
#45121: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:455:
+                    0x0006FFFF, $

ERROR: trailing whitespace
#45122: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:456:
+                    0x03, $

ERROR: trailing whitespace
#45123: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:457:
+                    LNKF, $

ERROR: trailing whitespace
#45125: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:459:
+                }, $

ERROR: trailing whitespace
#45129: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:463:
+                    0x0007FFFF, $

ERROR: trailing whitespace
#45130: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:464:
+                    Zero, $

ERROR: trailing whitespace
#45131: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:465:
+                    LNKH, $

ERROR: trailing whitespace
#45133: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:467:
+                }, $

ERROR: trailing whitespace
#45137: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:471:
+                    0x0007FFFF, $

ERROR: trailing whitespace
#45138: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:472:
+                    One, $

ERROR: trailing whitespace
#45139: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:473:
+                    LNKE, $

ERROR: trailing whitespace
#45141: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:475:
+                }, $

ERROR: trailing whitespace
#45145: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:479:
+                    0x0007FFFF, $

ERROR: trailing whitespace
#45146: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:480:
+                    0x02, $

ERROR: trailing whitespace
#45147: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:481:
+                    LNKF, $

ERROR: trailing whitespace
#45149: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:483:
+                }, $

ERROR: trailing whitespace
#45153: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:487:
+                    0x0007FFFF, $

ERROR: trailing whitespace
#45154: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:488:
+                    0x03, $

ERROR: trailing whitespace
#45155: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:489:
+                    LNKG, $

ERROR: trailing whitespace
#45157: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:491:
+                }, $

ERROR: trailing whitespace
#45161: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:495:
+                    0x0008FFFF, $

ERROR: trailing whitespace
#45162: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:496:
+                    Zero, $

ERROR: trailing whitespace
#45163: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:497:
+                    LNKE, $

ERROR: trailing whitespace
#45165: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:499:
+                }, $

ERROR: trailing whitespace
#45169: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:503:
+                    0x0008FFFF, $

ERROR: trailing whitespace
#45170: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:504:
+                    One, $

ERROR: trailing whitespace
#45171: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:505:
+                    LNKF, $

ERROR: trailing whitespace
#45173: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:507:
+                }, $

ERROR: trailing whitespace
#45177: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:511:
+                    0x0008FFFF, $

ERROR: trailing whitespace
#45178: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:512:
+                    0x02, $

ERROR: trailing whitespace
#45179: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:513:
+                    LNKG, $

ERROR: trailing whitespace
#45181: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:515:
+                }, $

ERROR: trailing whitespace
#45185: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:519:
+                    0x0008FFFF, $

ERROR: trailing whitespace
#45186: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:520:
+                    0x03, $

ERROR: trailing whitespace
#45187: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:521:
+                    LNKH, $

ERROR: trailing whitespace
#45189: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:523:
+                }, $

ERROR: trailing whitespace
#45193: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:527:
+                    0x0009FFFF, $

ERROR: trailing whitespace
#45194: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:528:
+                    Zero, $

ERROR: trailing whitespace
#45195: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:529:
+                    LNKF, $

ERROR: trailing whitespace
#45197: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:531:
+                }, $

ERROR: trailing whitespace
#45201: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:535:
+                    0x0009FFFF, $

ERROR: trailing whitespace
#45202: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:536:
+                    One, $

ERROR: trailing whitespace
#45203: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:537:
+                    LNKG, $

ERROR: trailing whitespace
#45205: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:539:
+                }, $

ERROR: trailing whitespace
#45209: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:543:
+                    0x0009FFFF, $

ERROR: trailing whitespace
#45210: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:544:
+                    0x02, $

ERROR: trailing whitespace
#45211: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:545:
+                    LNKH, $

ERROR: trailing whitespace
#45213: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:547:
+                }, $

ERROR: trailing whitespace
#45217: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:551:
+                    0x0009FFFF, $

ERROR: trailing whitespace
#45218: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:552:
+                    0x03, $

ERROR: trailing whitespace
#45219: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:553:
+                    LNKE, $

ERROR: trailing whitespace
#45221: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:555:
+                }, $

ERROR: trailing whitespace
#45225: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:559:
+                    0x000AFFFF, $

ERROR: trailing whitespace
#45226: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:560:
+                    Zero, $

ERROR: trailing whitespace
#45227: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:561:
+                    LNKG, $

ERROR: trailing whitespace
#45229: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:563:
+                }, $

ERROR: trailing whitespace
#45233: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:567:
+                    0x000AFFFF, $

ERROR: trailing whitespace
#45234: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:568:
+                    One, $

ERROR: trailing whitespace
#45235: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:569:
+                    LNKH, $

ERROR: trailing whitespace
#45237: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:571:
+                }, $

ERROR: trailing whitespace
#45241: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:575:
+                    0x000AFFFF, $

ERROR: trailing whitespace
#45242: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:576:
+                    0x02, $

ERROR: trailing whitespace
#45243: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:577:
+                    LNKE, $

ERROR: trailing whitespace
#45245: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:579:
+                }, $

ERROR: trailing whitespace
#45249: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:583:
+                    0x000AFFFF, $

ERROR: trailing whitespace
#45250: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:584:
+                    0x03, $

ERROR: trailing whitespace
#45251: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:585:
+                    LNKF, $

ERROR: trailing whitespace
#45253: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:587:
+                }, $

ERROR: trailing whitespace
#45257: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:591:
+                    0x000BFFFF, $

ERROR: trailing whitespace
#45258: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:592:
+                    Zero, $

ERROR: trailing whitespace
#45259: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:593:
+                    LNKH, $

ERROR: trailing whitespace
#45261: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:595:
+                }, $

ERROR: trailing whitespace
#45265: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:599:
+                    0x000BFFFF, $

ERROR: trailing whitespace
#45266: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:600:
+                    One, $

ERROR: trailing whitespace
#45267: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:601:
+                    LNKE, $

ERROR: trailing whitespace
#45269: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:603:
+                }, $

ERROR: trailing whitespace
#45273: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:607:
+                    0x000BFFFF, $

ERROR: trailing whitespace
#45274: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:608:
+                    0x02, $

ERROR: trailing whitespace
#45275: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:609:
+                    LNKF, $

ERROR: trailing whitespace
#45277: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:611:
+                }, $

ERROR: trailing whitespace
#45281: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:615:
+                    0x000BFFFF, $

ERROR: trailing whitespace
#45282: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:616:
+                    0x03, $

ERROR: trailing whitespace
#45283: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:617:
+                    LNKG, $

ERROR: trailing whitespace
#45285: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:619:
+                }, $

ERROR: trailing whitespace
#45289: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:623:
+                    0x000CFFFF, $

ERROR: trailing whitespace
#45290: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:624:
+                    Zero, $

ERROR: trailing whitespace
#45291: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:625:
+                    LNKE, $

ERROR: trailing whitespace
#45293: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:627:
+                }, $

ERROR: trailing whitespace
#45297: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:631:
+                    0x000CFFFF, $

ERROR: trailing whitespace
#45298: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:632:
+                    One, $

ERROR: trailing whitespace
#45299: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:633:
+                    LNKF, $

ERROR: trailing whitespace
#45301: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:635:
+                }, $

ERROR: trailing whitespace
#45305: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:639:
+                    0x000CFFFF, $

ERROR: trailing whitespace
#45306: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:640:
+                    0x02, $

ERROR: trailing whitespace
#45307: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:641:
+                    LNKG, $

ERROR: trailing whitespace
#45309: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:643:
+                }, $

ERROR: trailing whitespace
#45313: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:647:
+                    0x000CFFFF, $

ERROR: trailing whitespace
#45314: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:648:
+                    0x03, $

ERROR: trailing whitespace
#45315: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:649:
+                    LNKH, $

ERROR: trailing whitespace
#45317: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:651:
+                }, $

ERROR: trailing whitespace
#45321: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:655:
+                    0x000DFFFF, $

ERROR: trailing whitespace
#45322: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:656:
+                    Zero, $

ERROR: trailing whitespace
#45323: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:657:
+                    LNKF, $

ERROR: trailing whitespace
#45325: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:659:
+                }, $

ERROR: trailing whitespace
#45329: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:663:
+                    0x000DFFFF, $

ERROR: trailing whitespace
#45330: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:664:
+                    One, $

ERROR: trailing whitespace
#45331: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:665:
+                    LNKG, $

ERROR: trailing whitespace
#45333: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:667:
+                }, $

ERROR: trailing whitespace
#45337: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:671:
+                    0x000DFFFF, $

ERROR: trailing whitespace
#45338: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:672:
+                    0x02, $

ERROR: trailing whitespace
#45339: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:673:
+                    LNKH, $

ERROR: trailing whitespace
#45341: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:675:
+                }, $

ERROR: trailing whitespace
#45345: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:679:
+                    0x000DFFFF, $

ERROR: trailing whitespace
#45346: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:680:
+                    0x03, $

ERROR: trailing whitespace
#45347: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:681:
+                    LNKE, $

ERROR: trailing whitespace
#45349: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:683:
+                }, $

ERROR: trailing whitespace
#45353: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:687:
+                    0x000EFFFF, $

ERROR: trailing whitespace
#45354: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:688:
+                    Zero, $

ERROR: trailing whitespace
#45355: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:689:
+                    LNKG, $

ERROR: trailing whitespace
#45357: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:691:
+                }, $

ERROR: trailing whitespace
#45361: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:695:
+                    0x000EFFFF, $

ERROR: trailing whitespace
#45362: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:696:
+                    One, $

ERROR: trailing whitespace
#45363: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:697:
+                    LNKH, $

ERROR: trailing whitespace
#45365: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:699:
+                }, $

ERROR: trailing whitespace
#45369: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:703:
+                    0x000EFFFF, $

ERROR: trailing whitespace
#45370: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:704:
+                    0x02, $

ERROR: trailing whitespace
#45371: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:705:
+                    LNKE, $

ERROR: trailing whitespace
#45373: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:707:
+                }, $

ERROR: trailing whitespace
#45377: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:711:
+                    0x000EFFFF, $

ERROR: trailing whitespace
#45378: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:712:
+                    0x03, $

ERROR: trailing whitespace
#45379: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:713:
+                    LNKF, $

ERROR: trailing whitespace
#45381: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:715:
+                }, $

ERROR: trailing whitespace
#45385: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:719:
+                    0x000FFFFF, $

ERROR: trailing whitespace
#45386: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:720:
+                    Zero, $

ERROR: trailing whitespace
#45387: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:721:
+                    LNKH, $

ERROR: trailing whitespace
#45389: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:723:
+                }, $

ERROR: trailing whitespace
#45393: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:727:
+                    0x000FFFFF, $

ERROR: trailing whitespace
#45394: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:728:
+                    One, $

ERROR: trailing whitespace
#45395: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:729:
+                    LNKE, $

ERROR: trailing whitespace
#45397: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:731:
+                }, $

ERROR: trailing whitespace
#45401: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:735:
+                    0x000FFFFF, $

ERROR: trailing whitespace
#45402: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:736:
+                    0x02, $

ERROR: trailing whitespace
#45403: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:737:
+                    LNKF, $

ERROR: trailing whitespace
#45405: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:739:
+                }, $

ERROR: trailing whitespace
#45409: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:743:
+                    0x000FFFFF, $

ERROR: trailing whitespace
#45410: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:744:
+                    0x03, $

ERROR: trailing whitespace
#45411: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:745:
+                    LNKG, $

ERROR: trailing whitespace
#45413: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:747:
+                }, $

ERROR: trailing whitespace
#45417: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:751:
+                    0x0010FFFF, $

ERROR: trailing whitespace
#45418: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:752:
+                    Zero, $

ERROR: trailing whitespace
#45419: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:753:
+                    LNKE, $

ERROR: trailing whitespace
#45421: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:755:
+                }, $

ERROR: trailing whitespace
#45425: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:759:
+                    0x0010FFFF, $

ERROR: trailing whitespace
#45426: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:760:
+                    One, $

ERROR: trailing whitespace
#45427: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:761:
+                    LNKF, $

ERROR: trailing whitespace
#45429: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:763:
+                }, $

ERROR: trailing whitespace
#45433: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:767:
+                    0x0010FFFF, $

ERROR: trailing whitespace
#45434: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:768:
+                    0x02, $

ERROR: trailing whitespace
#45435: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:769:
+                    LNKG, $

ERROR: trailing whitespace
#45437: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:771:
+                }, $

ERROR: trailing whitespace
#45441: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:775:
+                    0x0010FFFF, $

ERROR: trailing whitespace
#45442: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:776:
+                    0x03, $

ERROR: trailing whitespace
#45443: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:777:
+                    LNKH, $

ERROR: trailing whitespace
#45445: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:779:
+                }, $

ERROR: trailing whitespace
#45449: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:783:
+                    0x0011FFFF, $

ERROR: trailing whitespace
#45450: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:784:
+                    Zero, $

ERROR: trailing whitespace
#45451: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:785:
+                    LNKF, $

ERROR: trailing whitespace
#45453: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:787:
+                }, $

ERROR: trailing whitespace
#45457: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:791:
+                    0x0011FFFF, $

ERROR: trailing whitespace
#45458: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:792:
+                    One, $

ERROR: trailing whitespace
#45459: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:793:
+                    LNKG, $

ERROR: trailing whitespace
#45461: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:795:
+                }, $

ERROR: trailing whitespace
#45465: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:799:
+                    0x0011FFFF, $

ERROR: trailing whitespace
#45466: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:800:
+                    0x02, $

ERROR: trailing whitespace
#45467: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:801:
+                    LNKH, $

ERROR: trailing whitespace
#45469: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:803:
+                }, $

ERROR: trailing whitespace
#45473: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:807:
+                    0x0011FFFF, $

ERROR: trailing whitespace
#45474: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:808:
+                    0x03, $

ERROR: trailing whitespace
#45475: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:809:
+                    LNKE, $

ERROR: trailing whitespace
#45477: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:811:
+                }, $

ERROR: trailing whitespace
#45481: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:815:
+                    0x0012FFFF, $

ERROR: trailing whitespace
#45482: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:816:
+                    Zero, $

ERROR: trailing whitespace
#45483: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:817:
+                    LNKG, $

ERROR: trailing whitespace
#45485: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:819:
+                }, $

ERROR: trailing whitespace
#45489: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:823:
+                    0x0012FFFF, $

ERROR: trailing whitespace
#45490: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:824:
+                    One, $

ERROR: trailing whitespace
#45491: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:825:
+                    LNKH, $

ERROR: trailing whitespace
#45493: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:827:
+                }, $

ERROR: trailing whitespace
#45497: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:831:
+                    0x0012FFFF, $

ERROR: trailing whitespace
#45498: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:832:
+                    0x02, $

ERROR: trailing whitespace
#45499: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:833:
+                    LNKE, $

ERROR: trailing whitespace
#45501: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:835:
+                }, $

ERROR: trailing whitespace
#45505: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:839:
+                    0x0012FFFF, $

ERROR: trailing whitespace
#45506: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:840:
+                    0x03, $

ERROR: trailing whitespace
#45507: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:841:
+                    LNKF, $

ERROR: trailing whitespace
#45509: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:843:
+                }, $

ERROR: trailing whitespace
#45513: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:847:
+                    0x0013FFFF, $

ERROR: trailing whitespace
#45514: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:848:
+                    Zero, $

ERROR: trailing whitespace
#45515: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:849:
+                    LNKH, $

ERROR: trailing whitespace
#45517: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:851:
+                }, $

ERROR: trailing whitespace
#45521: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:855:
+                    0x0013FFFF, $

ERROR: trailing whitespace
#45522: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:856:
+                    One, $

ERROR: trailing whitespace
#45523: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:857:
+                    LNKE, $

ERROR: trailing whitespace
#45525: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:859:
+                }, $

ERROR: trailing whitespace
#45529: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:863:
+                    0x0013FFFF, $

ERROR: trailing whitespace
#45530: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:864:
+                    0x02, $

ERROR: trailing whitespace
#45531: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:865:
+                    LNKF, $

ERROR: trailing whitespace
#45533: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:867:
+                }, $

ERROR: trailing whitespace
#45537: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:871:
+                    0x0013FFFF, $

ERROR: trailing whitespace
#45538: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:872:
+                    0x03, $

ERROR: trailing whitespace
#45539: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:873:
+                    LNKG, $

ERROR: trailing whitespace
#45541: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:875:
+                }, $

ERROR: trailing whitespace
#45545: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:879:
+                    0x0014FFFF, $

ERROR: trailing whitespace
#45546: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:880:
+                    Zero, $

ERROR: trailing whitespace
#45547: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:881:
+                    LNKE, $

ERROR: trailing whitespace
#45549: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:883:
+                }, $

ERROR: trailing whitespace
#45553: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:887:
+                    0x0014FFFF, $

ERROR: trailing whitespace
#45554: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:888:
+                    One, $

ERROR: trailing whitespace
#45555: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:889:
+                    LNKF, $

ERROR: trailing whitespace
#45557: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:891:
+                }, $

ERROR: trailing whitespace
#45561: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:895:
+                    0x0014FFFF, $

ERROR: trailing whitespace
#45562: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:896:
+                    0x02, $

ERROR: trailing whitespace
#45563: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:897:
+                    LNKG, $

ERROR: trailing whitespace
#45565: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:899:
+                }, $

ERROR: trailing whitespace
#45569: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:903:
+                    0x0014FFFF, $

ERROR: trailing whitespace
#45570: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:904:
+                    0x03, $

ERROR: trailing whitespace
#45571: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:905:
+                    LNKH, $

ERROR: trailing whitespace
#45573: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:907:
+                }, $

ERROR: trailing whitespace
#45577: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:911:
+                    0x0015FFFF, $

ERROR: trailing whitespace
#45578: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:912:
+                    Zero, $

ERROR: trailing whitespace
#45579: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:913:
+                    LNKF, $

ERROR: trailing whitespace
#45581: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:915:
+                }, $

ERROR: trailing whitespace
#45585: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:919:
+                    0x0015FFFF, $

ERROR: trailing whitespace
#45586: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:920:
+                    One, $

ERROR: trailing whitespace
#45587: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:921:
+                    LNKG, $

ERROR: trailing whitespace
#45589: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:923:
+                }, $

ERROR: trailing whitespace
#45593: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:927:
+                    0x0015FFFF, $

ERROR: trailing whitespace
#45594: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:928:
+                    0x02, $

ERROR: trailing whitespace
#45595: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:929:
+                    LNKH, $

ERROR: trailing whitespace
#45597: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:931:
+                }, $

ERROR: trailing whitespace
#45601: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:935:
+                    0x0015FFFF, $

ERROR: trailing whitespace
#45602: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:936:
+                    0x03, $

ERROR: trailing whitespace
#45603: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:937:
+                    LNKE, $

ERROR: trailing whitespace
#45605: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:939:
+                }, $

ERROR: trailing whitespace
#45609: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:943:
+                    0x0016FFFF, $

ERROR: trailing whitespace
#45610: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:944:
+                    Zero, $

ERROR: trailing whitespace
#45611: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:945:
+                    LNKG, $

ERROR: trailing whitespace
#45613: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:947:
+                }, $

ERROR: trailing whitespace
#45617: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:951:
+                    0x0016FFFF, $

ERROR: trailing whitespace
#45618: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:952:
+                    One, $

ERROR: trailing whitespace
#45619: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:953:
+                    LNKH, $

ERROR: trailing whitespace
#45621: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:955:
+                }, $

ERROR: trailing whitespace
#45625: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:959:
+                    0x0016FFFF, $

ERROR: trailing whitespace
#45626: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:960:
+                    0x02, $

ERROR: trailing whitespace
#45627: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:961:
+                    LNKE, $

ERROR: trailing whitespace
#45629: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:963:
+                }, $

ERROR: trailing whitespace
#45633: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:967:
+                    0x0016FFFF, $

ERROR: trailing whitespace
#45634: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:968:
+                    0x03, $

ERROR: trailing whitespace
#45635: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:969:
+                    LNKF, $

ERROR: trailing whitespace
#45637: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:971:
+                }, $

ERROR: trailing whitespace
#45641: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:975:
+                    0x0017FFFF, $

ERROR: trailing whitespace
#45642: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:976:
+                    Zero, $

ERROR: trailing whitespace
#45643: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:977:
+                    LNKH, $

ERROR: trailing whitespace
#45645: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:979:
+                }, $

ERROR: trailing whitespace
#45649: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:983:
+                    0x0017FFFF, $

ERROR: trailing whitespace
#45650: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:984:
+                    One, $

ERROR: trailing whitespace
#45651: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:985:
+                    LNKE, $

ERROR: trailing whitespace
#45653: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:987:
+                }, $

ERROR: trailing whitespace
#45657: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:991:
+                    0x0017FFFF, $

ERROR: trailing whitespace
#45658: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:992:
+                    0x02, $

ERROR: trailing whitespace
#45659: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:993:
+                    LNKF, $

ERROR: trailing whitespace
#45661: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:995:
+                }, $

ERROR: trailing whitespace
#45665: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:999:
+                    0x0017FFFF, $

ERROR: trailing whitespace
#45666: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1000:
+                    0x03, $

ERROR: trailing whitespace
#45667: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1001:
+                    LNKG, $

ERROR: trailing whitespace
#45669: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1003:
+                }, $

ERROR: trailing whitespace
#45673: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1007:
+                    0x0018FFFF, $

ERROR: trailing whitespace
#45674: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1008:
+                    Zero, $

ERROR: trailing whitespace
#45675: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1009:
+                    LNKE, $

ERROR: trailing whitespace
#45677: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1011:
+                }, $

ERROR: trailing whitespace
#45681: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1015:
+                    0x0018FFFF, $

ERROR: trailing whitespace
#45682: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1016:
+                    One, $

ERROR: trailing whitespace
#45683: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1017:
+                    LNKF, $

ERROR: trailing whitespace
#45685: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1019:
+                }, $

ERROR: trailing whitespace
#45689: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1023:
+                    0x0018FFFF, $

ERROR: trailing whitespace
#45690: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1024:
+                    0x02, $

ERROR: trailing whitespace
#45691: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1025:
+                    LNKG, $

ERROR: trailing whitespace
#45693: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1027:
+                }, $

ERROR: trailing whitespace
#45697: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1031:
+                    0x0018FFFF, $

ERROR: trailing whitespace
#45698: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1032:
+                    0x03, $

ERROR: trailing whitespace
#45699: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1033:
+                    LNKH, $

ERROR: trailing whitespace
#45701: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1035:
+                }, $

ERROR: trailing whitespace
#45705: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1039:
+                    0x0019FFFF, $

ERROR: trailing whitespace
#45706: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1040:
+                    Zero, $

ERROR: trailing whitespace
#45707: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1041:
+                    LNKA, $

ERROR: trailing whitespace
#45709: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1043:
+                }, $

ERROR: trailing whitespace
#45713: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1047:
+                    0x0019FFFF, $

ERROR: trailing whitespace
#45714: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1048:
+                    One, $

ERROR: trailing whitespace
#45715: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1049:
+                    LNKB, $

ERROR: trailing whitespace
#45717: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1051:
+                }, $

ERROR: trailing whitespace
#45721: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1055:
+                    0x0019FFFF, $

ERROR: trailing whitespace
#45722: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1056:
+                    0x02, $

ERROR: trailing whitespace
#45723: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1057:
+                    LNKC, $

ERROR: trailing whitespace
#45725: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1059:
+                }, $

ERROR: trailing whitespace
#45729: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1063:
+                    0x0019FFFF, $

ERROR: trailing whitespace
#45730: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1064:
+                    0x03, $

ERROR: trailing whitespace
#45731: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1065:
+                    LNKD, $

ERROR: trailing whitespace
#45733: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1067:
+                }, $

ERROR: trailing whitespace
#45737: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1071:
+                    0x001AFFFF, $

ERROR: trailing whitespace
#45738: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1072:
+                    Zero, $

ERROR: trailing whitespace
#45739: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1073:
+                    LNKA, $

ERROR: trailing whitespace
#45741: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1075:
+                }, $

ERROR: trailing whitespace
#45745: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1079:
+                    0x001AFFFF, $

ERROR: trailing whitespace
#45746: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1080:
+                    One, $

ERROR: trailing whitespace
#45747: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1081:
+                    LNKB, $

ERROR: trailing whitespace
#45749: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1083:
+                }, $

ERROR: trailing whitespace
#45753: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1087:
+                    0x001AFFFF, $

ERROR: trailing whitespace
#45754: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1088:
+                    0x02, $

ERROR: trailing whitespace
#45755: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1089:
+                    LNKC, $

ERROR: trailing whitespace
#45757: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1091:
+                }, $

ERROR: trailing whitespace
#45761: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1095:
+                    0x001AFFFF, $

ERROR: trailing whitespace
#45762: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1096:
+                    0x03, $

ERROR: trailing whitespace
#45763: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1097:
+                    LNKD, $

ERROR: trailing whitespace
#45765: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1099:
+                }, $

ERROR: trailing whitespace
#45769: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1103:
+                    0x001BFFFF, $

ERROR: trailing whitespace
#45770: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1104:
+                    Zero, $

ERROR: trailing whitespace
#45771: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1105:
+                    LNKA, $

ERROR: trailing whitespace
#45773: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1107:
+                }, $

ERROR: trailing whitespace
#45777: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1111:
+                    0x001BFFFF, $

ERROR: trailing whitespace
#45778: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1112:
+                    One, $

ERROR: trailing whitespace
#45779: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1113:
+                    LNKB, $

ERROR: trailing whitespace
#45781: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1115:
+                }, $

ERROR: trailing whitespace
#45785: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1119:
+                    0x001BFFFF, $

ERROR: trailing whitespace
#45786: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1120:
+                    0x02, $

ERROR: trailing whitespace
#45787: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1121:
+                    LNKC, $

ERROR: trailing whitespace
#45789: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1123:
+                }, $

ERROR: trailing whitespace
#45793: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1127:
+                    0x001BFFFF, $

ERROR: trailing whitespace
#45794: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1128:
+                    0x03, $

ERROR: trailing whitespace
#45795: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1129:
+                    LNKD, $

ERROR: trailing whitespace
#45797: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1131:
+                }, $

ERROR: trailing whitespace
#45801: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1135:
+                    0x001CFFFF, $

ERROR: trailing whitespace
#45802: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1136:
+                    Zero, $

ERROR: trailing whitespace
#45803: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1137:
+                    LNKA, $

ERROR: trailing whitespace
#45805: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1139:
+                }, $

ERROR: trailing whitespace
#45809: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1143:
+                    0x001CFFFF, $

ERROR: trailing whitespace
#45810: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1144:
+                    One, $

ERROR: trailing whitespace
#45811: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1145:
+                    LNKB, $

ERROR: trailing whitespace
#45813: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1147:
+                }, $

ERROR: trailing whitespace
#45817: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1151:
+                    0x001CFFFF, $

ERROR: trailing whitespace
#45818: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1152:
+                    0x02, $

ERROR: trailing whitespace
#45819: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1153:
+                    LNKC, $

ERROR: trailing whitespace
#45821: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1155:
+                }, $

ERROR: trailing whitespace
#45825: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1159:
+                    0x001CFFFF, $

ERROR: trailing whitespace
#45826: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1160:
+                    0x03, $

ERROR: trailing whitespace
#45827: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1161:
+                    LNKD, $

ERROR: trailing whitespace
#45829: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1163:
+                }, $

ERROR: trailing whitespace
#45833: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1167:
+                    0x001DFFFF, $

ERROR: trailing whitespace
#45834: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1168:
+                    Zero, $

ERROR: trailing whitespace
#45835: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1169:
+                    LNKA, $

ERROR: trailing whitespace
#45837: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1171:
+                }, $

ERROR: trailing whitespace
#45841: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1175:
+                    0x001DFFFF, $

ERROR: trailing whitespace
#45842: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1176:
+                    One, $

ERROR: trailing whitespace
#45843: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1177:
+                    LNKB, $

ERROR: trailing whitespace
#45845: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1179:
+                }, $

ERROR: trailing whitespace
#45849: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1183:
+                    0x001DFFFF, $

ERROR: trailing whitespace
#45850: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1184:
+                    0x02, $

ERROR: trailing whitespace
#45851: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1185:
+                    LNKC, $

ERROR: trailing whitespace
#45853: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1187:
+                }, $

ERROR: trailing whitespace
#45857: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1191:
+                    0x001DFFFF, $

ERROR: trailing whitespace
#45858: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1192:
+                    0x03, $

ERROR: trailing whitespace
#45859: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1193:
+                    LNKD, $

ERROR: trailing whitespace
#45861: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1195:
+                }, $

ERROR: trailing whitespace
#45865: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1199:
+                    0x001EFFFF, $

ERROR: trailing whitespace
#45866: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1200:
+                    Zero, $

ERROR: trailing whitespace
#45867: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1201:
+                    LNKE, $

ERROR: trailing whitespace
#45869: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1203:
+                }, $

ERROR: trailing whitespace
#45873: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1207:
+                    0x001EFFFF, $

ERROR: trailing whitespace
#45874: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1208:
+                    One, $

ERROR: trailing whitespace
#45875: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1209:
+                    LNKF, $

ERROR: trailing whitespace
#45877: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1211:
+                }, $

ERROR: trailing whitespace
#45881: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1215:
+                    0x001EFFFF, $

ERROR: trailing whitespace
#45882: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1216:
+                    0x02, $

ERROR: trailing whitespace
#45883: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1217:
+                    LNKG, $

ERROR: trailing whitespace
#45885: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1219:
+                }, $

ERROR: trailing whitespace
#45889: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1223:
+                    0x001EFFFF, $

ERROR: trailing whitespace
#45890: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1224:
+                    0x03, $

ERROR: trailing whitespace
#45891: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1225:
+                    LNKH, $

ERROR: trailing whitespace
#45893: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1227:
+                }, $

ERROR: trailing whitespace
#45897: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1231:
+                    0x001FFFFF, $

ERROR: trailing whitespace
#45898: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1232:
+                    Zero, $

ERROR: trailing whitespace
#45899: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1233:
+                    LNKA, $

ERROR: trailing whitespace
#45901: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1235:
+                }, $

ERROR: trailing whitespace
#45905: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1239:
+                    0x001FFFFF, $

ERROR: trailing whitespace
#45906: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1240:
+                    One, $

ERROR: trailing whitespace
#45907: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1241:
+                    LNKB, $

ERROR: trailing whitespace
#45909: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1243:
+                }, $

ERROR: trailing whitespace
#45913: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1247:
+                    0x001FFFFF, $

ERROR: trailing whitespace
#45914: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1248:
+                    0x02, $

ERROR: trailing whitespace
#45915: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1249:
+                    LNKC, $

ERROR: trailing whitespace
#45917: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1251:
+                }, $

ERROR: trailing whitespace
#45921: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1255:
+                    0x001FFFFF, $

ERROR: trailing whitespace
#45922: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1256:
+                    0x03, $

ERROR: trailing whitespace
#45923: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1257:
+                    LNKD, $

ERROR: trailing whitespace
#45931: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1265:
+                    0xFFFF, $

ERROR: trailing whitespace
#45932: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1266:
+                    Zero, $

ERROR: trailing whitespace
#45933: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1267:
+                    GSIE, $

ERROR: trailing whitespace
#45935: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1269:
+                }, $

ERROR: trailing whitespace
#45939: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1273:
+                    0xFFFF, $

ERROR: trailing whitespace
#45940: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1274:
+                    One, $

ERROR: trailing whitespace
#45941: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1275:
+                    GSIF, $

ERROR: trailing whitespace
#45943: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1277:
+                }, $

ERROR: trailing whitespace
#45947: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1281:
+                    0xFFFF, $

ERROR: trailing whitespace
#45948: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1282:
+                    0x02, $

ERROR: trailing whitespace
#45949: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1283:
+                    GSIG, $

ERROR: trailing whitespace
#45951: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1285:
+                }, $

ERROR: trailing whitespace
#45955: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1289:
+                    0xFFFF, $

ERROR: trailing whitespace
#45956: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1290:
+                    0x03, $

ERROR: trailing whitespace
#45957: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1291:
+                    GSIH, $

ERROR: trailing whitespace
#45959: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1293:
+                }, $

ERROR: trailing whitespace
#45963: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1297:
+                    0x0001FFFF, $

ERROR: trailing whitespace
#45964: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1298:
+                    Zero, $

ERROR: trailing whitespace
#45965: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1299:
+                    GSIF, $

ERROR: trailing whitespace
#45967: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1301:
+                }, $

ERROR: trailing whitespace
#45971: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1305:
+                    0x0001FFFF, $

ERROR: trailing whitespace
#45972: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1306:
+                    One, $

ERROR: trailing whitespace
#45973: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1307:
+                    GSIG, $

ERROR: trailing whitespace
#45975: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1309:
+                }, $

ERROR: trailing whitespace
#45979: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1313:
+                    0x0001FFFF, $

ERROR: trailing whitespace
#45980: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1314:
+                    0x02, $

ERROR: trailing whitespace
#45981: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1315:
+                    GSIH, $

ERROR: trailing whitespace
#45983: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1317:
+                }, $

ERROR: trailing whitespace
#45987: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1321:
+                    0x0001FFFF, $

ERROR: trailing whitespace
#45988: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1322:
+                    0x03, $

ERROR: trailing whitespace
#45989: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1323:
+                    GSIE, $

ERROR: trailing whitespace
#45991: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1325:
+                }, $

ERROR: trailing whitespace
#45995: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1329:
+                    0x0002FFFF, $

ERROR: trailing whitespace
#45996: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1330:
+                    Zero, $

ERROR: trailing whitespace
#45997: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1331:
+                    GSIG, $

ERROR: trailing whitespace
#45999: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1333:
+                }, $

ERROR: trailing whitespace
#46003: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1337:
+                    0x0002FFFF, $

ERROR: trailing whitespace
#46004: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1338:
+                    One, $

ERROR: trailing whitespace
#46005: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1339:
+                    GSIH, $

ERROR: trailing whitespace
#46007: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1341:
+                }, $

ERROR: trailing whitespace
#46011: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1345:
+                    0x0002FFFF, $

ERROR: trailing whitespace
#46012: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1346:
+                    0x02, $

ERROR: trailing whitespace
#46013: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1347:
+                    GSIE, $

ERROR: trailing whitespace
#46015: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1349:
+                }, $

ERROR: trailing whitespace
#46019: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1353:
+                    0x0002FFFF, $

ERROR: trailing whitespace
#46020: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1354:
+                    0x03, $

ERROR: trailing whitespace
#46021: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1355:
+                    GSIF, $

ERROR: trailing whitespace
#46023: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1357:
+                }, $

ERROR: trailing whitespace
#46027: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1361:
+                    0x0003FFFF, $

ERROR: trailing whitespace
#46028: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1362:
+                    Zero, $

ERROR: trailing whitespace
#46029: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1363:
+                    GSIH, $

ERROR: trailing whitespace
#46031: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1365:
+                }, $

ERROR: trailing whitespace
#46035: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1369:
+                    0x0003FFFF, $

ERROR: trailing whitespace
#46036: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1370:
+                    One, $

ERROR: trailing whitespace
#46037: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1371:
+                    GSIE, $

ERROR: trailing whitespace
#46039: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1373:
+                }, $

ERROR: trailing whitespace
#46043: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1377:
+                    0x0003FFFF, $

ERROR: trailing whitespace
#46044: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1378:
+                    0x02, $

ERROR: trailing whitespace
#46045: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1379:
+                    GSIF, $

ERROR: trailing whitespace
#46047: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1381:
+                }, $

ERROR: trailing whitespace
#46051: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1385:
+                    0x0003FFFF, $

ERROR: trailing whitespace
#46052: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1386:
+                    0x03, $

ERROR: trailing whitespace
#46053: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1387:
+                    GSIG, $

ERROR: trailing whitespace
#46055: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1389:
+                }, $

ERROR: trailing whitespace
#46059: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1393:
+                    0x0004FFFF, $

ERROR: trailing whitespace
#46060: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1394:
+                    Zero, $

ERROR: trailing whitespace
#46061: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1395:
+                    GSIE, $

ERROR: trailing whitespace
#46063: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1397:
+                }, $

ERROR: trailing whitespace
#46067: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1401:
+                    0x0004FFFF, $

ERROR: trailing whitespace
#46068: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1402:
+                    One, $

ERROR: trailing whitespace
#46069: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1403:
+                    GSIF, $

ERROR: trailing whitespace
#46071: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1405:
+                }, $

ERROR: trailing whitespace
#46075: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1409:
+                    0x0004FFFF, $

ERROR: trailing whitespace
#46076: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1410:
+                    0x02, $

ERROR: trailing whitespace
#46077: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1411:
+                    GSIG, $

ERROR: trailing whitespace
#46079: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1413:
+                }, $

ERROR: trailing whitespace
#46083: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1417:
+                    0x0004FFFF, $

ERROR: trailing whitespace
#46084: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1418:
+                    0x03, $

ERROR: trailing whitespace
#46085: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1419:
+                    GSIH, $

ERROR: trailing whitespace
#46087: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1421:
+                }, $

ERROR: trailing whitespace
#46091: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1425:
+                    0x0005FFFF, $

ERROR: trailing whitespace
#46092: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1426:
+                    Zero, $

ERROR: trailing whitespace
#46093: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1427:
+                    GSIF, $

ERROR: trailing whitespace
#46095: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1429:
+                }, $

ERROR: trailing whitespace
#46099: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1433:
+                    0x0005FFFF, $

ERROR: trailing whitespace
#46100: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1434:
+                    One, $

ERROR: trailing whitespace
#46101: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1435:
+                    GSIG, $

ERROR: trailing whitespace
#46103: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1437:
+                }, $

ERROR: trailing whitespace
#46107: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1441:
+                    0x0005FFFF, $

ERROR: trailing whitespace
#46108: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1442:
+                    0x02, $

ERROR: trailing whitespace
#46109: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1443:
+                    GSIH, $

ERROR: trailing whitespace
#46111: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1445:
+                }, $

ERROR: trailing whitespace
#46115: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1449:
+                    0x0005FFFF, $

ERROR: trailing whitespace
#46116: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1450:
+                    0x03, $

ERROR: trailing whitespace
#46117: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1451:
+                    GSIE, $

ERROR: trailing whitespace
#46119: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1453:
+                }, $

ERROR: trailing whitespace
#46123: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1457:
+                    0x0006FFFF, $

ERROR: trailing whitespace
#46124: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1458:
+                    Zero, $

ERROR: trailing whitespace
#46125: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1459:
+                    GSIG, $

ERROR: trailing whitespace
#46127: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1461:
+                }, $

ERROR: trailing whitespace
#46131: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1465:
+                    0x0006FFFF, $

ERROR: trailing whitespace
#46132: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1466:
+                    One, $

ERROR: trailing whitespace
#46133: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1467:
+                    GSIH, $

ERROR: trailing whitespace
#46135: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1469:
+                }, $

ERROR: trailing whitespace
#46139: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1473:
+                    0x0006FFFF, $

ERROR: trailing whitespace
#46140: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1474:
+                    0x02, $

ERROR: trailing whitespace
#46141: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1475:
+                    GSIE, $

ERROR: trailing whitespace
#46143: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1477:
+                }, $

ERROR: trailing whitespace
#46147: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1481:
+                    0x0006FFFF, $

ERROR: trailing whitespace
#46148: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1482:
+                    0x03, $

ERROR: trailing whitespace
#46149: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1483:
+                    GSIF, $

ERROR: trailing whitespace
#46151: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1485:
+                }, $

ERROR: trailing whitespace
#46155: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1489:
+                    0x0007FFFF, $

ERROR: trailing whitespace
#46156: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1490:
+                    Zero, $

ERROR: trailing whitespace
#46157: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1491:
+                    GSIH, $

ERROR: trailing whitespace
#46159: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1493:
+                }, $

ERROR: trailing whitespace
#46163: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1497:
+                    0x0007FFFF, $

ERROR: trailing whitespace
#46164: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1498:
+                    One, $

ERROR: trailing whitespace
#46165: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1499:
+                    GSIE, $

ERROR: trailing whitespace
#46167: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1501:
+                }, $

ERROR: trailing whitespace
#46171: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1505:
+                    0x0007FFFF, $

ERROR: trailing whitespace
#46172: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1506:
+                    0x02, $

ERROR: trailing whitespace
#46173: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1507:
+                    GSIF, $

ERROR: trailing whitespace
#46175: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1509:
+                }, $

ERROR: trailing whitespace
#46179: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1513:
+                    0x0007FFFF, $

ERROR: trailing whitespace
#46180: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1514:
+                    0x03, $

ERROR: trailing whitespace
#46181: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1515:
+                    GSIG, $

ERROR: trailing whitespace
#46183: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1517:
+                }, $

ERROR: trailing whitespace
#46187: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1521:
+                    0x0008FFFF, $

ERROR: trailing whitespace
#46188: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1522:
+                    Zero, $

ERROR: trailing whitespace
#46189: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1523:
+                    GSIE, $

ERROR: trailing whitespace
#46191: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1525:
+                }, $

ERROR: trailing whitespace
#46195: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1529:
+                    0x0008FFFF, $

ERROR: trailing whitespace
#46196: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1530:
+                    One, $

ERROR: trailing whitespace
#46197: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1531:
+                    GSIF, $

ERROR: trailing whitespace
#46199: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1533:
+                }, $

ERROR: trailing whitespace
#46203: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1537:
+                    0x0008FFFF, $

ERROR: trailing whitespace
#46204: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1538:
+                    0x02, $

ERROR: trailing whitespace
#46205: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1539:
+                    GSIG, $

ERROR: trailing whitespace
#46207: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1541:
+                }, $

ERROR: trailing whitespace
#46211: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1545:
+                    0x0008FFFF, $

ERROR: trailing whitespace
#46212: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1546:
+                    0x03, $

ERROR: trailing whitespace
#46213: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1547:
+                    GSIH, $

ERROR: trailing whitespace
#46215: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1549:
+                }, $

ERROR: trailing whitespace
#46219: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1553:
+                    0x0009FFFF, $

ERROR: trailing whitespace
#46220: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1554:
+                    Zero, $

ERROR: trailing whitespace
#46221: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1555:
+                    GSIF, $

ERROR: trailing whitespace
#46223: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1557:
+                }, $

ERROR: trailing whitespace
#46227: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1561:
+                    0x0009FFFF, $

ERROR: trailing whitespace
#46228: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1562:
+                    One, $

ERROR: trailing whitespace
#46229: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1563:
+                    GSIG, $

ERROR: trailing whitespace
#46231: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1565:
+                }, $

ERROR: trailing whitespace
#46235: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1569:
+                    0x0009FFFF, $

ERROR: trailing whitespace
#46236: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1570:
+                    0x02, $

ERROR: trailing whitespace
#46237: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1571:
+                    GSIH, $

ERROR: trailing whitespace
#46239: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1573:
+                }, $

ERROR: trailing whitespace
#46243: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1577:
+                    0x0009FFFF, $

ERROR: trailing whitespace
#46244: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1578:
+                    0x03, $

ERROR: trailing whitespace
#46245: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1579:
+                    GSIE, $

ERROR: trailing whitespace
#46247: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1581:
+                }, $

ERROR: trailing whitespace
#46251: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1585:
+                    0x000AFFFF, $

ERROR: trailing whitespace
#46252: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1586:
+                    Zero, $

ERROR: trailing whitespace
#46253: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1587:
+                    GSIG, $

ERROR: trailing whitespace
#46255: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1589:
+                }, $

ERROR: trailing whitespace
#46259: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1593:
+                    0x000AFFFF, $

ERROR: trailing whitespace
#46260: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1594:
+                    One, $

ERROR: trailing whitespace
#46261: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1595:
+                    GSIH, $

ERROR: trailing whitespace
#46263: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1597:
+                }, $

ERROR: trailing whitespace
#46267: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1601:
+                    0x000AFFFF, $

ERROR: trailing whitespace
#46268: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1602:
+                    0x02, $

ERROR: trailing whitespace
#46269: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1603:
+                    GSIE, $

ERROR: trailing whitespace
#46271: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1605:
+                }, $

ERROR: trailing whitespace
#46275: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1609:
+                    0x000AFFFF, $

ERROR: trailing whitespace
#46276: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1610:
+                    0x03, $

ERROR: trailing whitespace
#46277: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1611:
+                    GSIF, $

ERROR: trailing whitespace
#46279: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1613:
+                }, $

ERROR: trailing whitespace
#46283: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1617:
+                    0x000BFFFF, $

ERROR: trailing whitespace
#46284: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1618:
+                    Zero, $

ERROR: trailing whitespace
#46285: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1619:
+                    GSIH, $

ERROR: trailing whitespace
#46287: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1621:
+                }, $

ERROR: trailing whitespace
#46291: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1625:
+                    0x000BFFFF, $

ERROR: trailing whitespace
#46292: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1626:
+                    One, $

ERROR: trailing whitespace
#46293: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1627:
+                    GSIE, $

ERROR: trailing whitespace
#46295: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1629:
+                }, $

ERROR: trailing whitespace
#46299: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1633:
+                    0x000BFFFF, $

ERROR: trailing whitespace
#46300: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1634:
+                    0x02, $

ERROR: trailing whitespace
#46301: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1635:
+                    GSIF, $

ERROR: trailing whitespace
#46303: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1637:
+                }, $

ERROR: trailing whitespace
#46307: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1641:
+                    0x000BFFFF, $

ERROR: trailing whitespace
#46308: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1642:
+                    0x03, $

ERROR: trailing whitespace
#46309: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1643:
+                    GSIG, $

ERROR: trailing whitespace
#46311: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1645:
+                }, $

ERROR: trailing whitespace
#46315: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1649:
+                    0x000CFFFF, $

ERROR: trailing whitespace
#46316: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1650:
+                    Zero, $

ERROR: trailing whitespace
#46317: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1651:
+                    GSIE, $

ERROR: trailing whitespace
#46319: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1653:
+                }, $

ERROR: trailing whitespace
#46323: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1657:
+                    0x000CFFFF, $

ERROR: trailing whitespace
#46324: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1658:
+                    One, $

ERROR: trailing whitespace
#46325: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1659:
+                    GSIF, $

ERROR: trailing whitespace
#46327: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1661:
+                }, $

ERROR: trailing whitespace
#46331: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1665:
+                    0x000CFFFF, $

ERROR: trailing whitespace
#46332: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1666:
+                    0x02, $

ERROR: trailing whitespace
#46333: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1667:
+                    GSIG, $

ERROR: trailing whitespace
#46335: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1669:
+                }, $

ERROR: trailing whitespace
#46339: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1673:
+                    0x000CFFFF, $

ERROR: trailing whitespace
#46340: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1674:
+                    0x03, $

ERROR: trailing whitespace
#46341: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1675:
+                    GSIH, $

ERROR: trailing whitespace
#46343: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1677:
+                }, $

ERROR: trailing whitespace
#46347: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1681:
+                    0x000DFFFF, $

ERROR: trailing whitespace
#46348: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1682:
+                    Zero, $

ERROR: trailing whitespace
#46349: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1683:
+                    GSIF, $

ERROR: trailing whitespace
#46351: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1685:
+                }, $

ERROR: trailing whitespace
#46355: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1689:
+                    0x000DFFFF, $

ERROR: trailing whitespace
#46356: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1690:
+                    One, $

ERROR: trailing whitespace
#46357: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1691:
+                    GSIG, $

ERROR: trailing whitespace
#46359: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1693:
+                }, $

ERROR: trailing whitespace
#46363: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1697:
+                    0x000DFFFF, $

ERROR: trailing whitespace
#46364: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1698:
+                    0x02, $

ERROR: trailing whitespace
#46365: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1699:
+                    GSIH, $

ERROR: trailing whitespace
#46367: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1701:
+                }, $

ERROR: trailing whitespace
#46371: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1705:
+                    0x000DFFFF, $

ERROR: trailing whitespace
#46372: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1706:
+                    0x03, $

ERROR: trailing whitespace
#46373: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1707:
+                    GSIE, $

ERROR: trailing whitespace
#46375: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1709:
+                }, $

ERROR: trailing whitespace
#46379: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1713:
+                    0x000EFFFF, $

ERROR: trailing whitespace
#46380: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1714:
+                    Zero, $

ERROR: trailing whitespace
#46381: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1715:
+                    GSIG, $

ERROR: trailing whitespace
#46383: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1717:
+                }, $

ERROR: trailing whitespace
#46387: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1721:
+                    0x000EFFFF, $

ERROR: trailing whitespace
#46388: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1722:
+                    One, $

ERROR: trailing whitespace
#46389: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1723:
+                    GSIH, $

ERROR: trailing whitespace
#46391: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1725:
+                }, $

ERROR: trailing whitespace
#46395: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1729:
+                    0x000EFFFF, $

ERROR: trailing whitespace
#46396: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1730:
+                    0x02, $

ERROR: trailing whitespace
#46397: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1731:
+                    GSIE, $

ERROR: trailing whitespace
#46399: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1733:
+                }, $

ERROR: trailing whitespace
#46403: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1737:
+                    0x000EFFFF, $

ERROR: trailing whitespace
#46404: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1738:
+                    0x03, $

ERROR: trailing whitespace
#46405: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1739:
+                    GSIF, $

ERROR: trailing whitespace
#46407: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1741:
+                }, $

ERROR: trailing whitespace
#46411: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1745:
+                    0x000FFFFF, $

ERROR: trailing whitespace
#46412: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1746:
+                    Zero, $

ERROR: trailing whitespace
#46413: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1747:
+                    GSIH, $

ERROR: trailing whitespace
#46415: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1749:
+                }, $

ERROR: trailing whitespace
#46419: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1753:
+                    0x000FFFFF, $

ERROR: trailing whitespace
#46420: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1754:
+                    One, $

ERROR: trailing whitespace
#46421: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1755:
+                    GSIE, $

ERROR: trailing whitespace
#46423: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1757:
+                }, $

ERROR: trailing whitespace
#46427: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1761:
+                    0x000FFFFF, $

ERROR: trailing whitespace
#46428: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1762:
+                    0x02, $

ERROR: trailing whitespace
#46429: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1763:
+                    GSIF, $

ERROR: trailing whitespace
#46431: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1765:
+                }, $

ERROR: trailing whitespace
#46435: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1769:
+                    0x000FFFFF, $

ERROR: trailing whitespace
#46436: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1770:
+                    0x03, $

ERROR: trailing whitespace
#46437: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1771:
+                    GSIG, $

ERROR: trailing whitespace
#46439: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1773:
+                }, $

ERROR: trailing whitespace
#46443: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1777:
+                    0x0010FFFF, $

ERROR: trailing whitespace
#46444: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1778:
+                    Zero, $

ERROR: trailing whitespace
#46445: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1779:
+                    GSIE, $

ERROR: trailing whitespace
#46447: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1781:
+                }, $

ERROR: trailing whitespace
#46451: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1785:
+                    0x0010FFFF, $

ERROR: trailing whitespace
#46452: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1786:
+                    One, $

ERROR: trailing whitespace
#46453: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1787:
+                    GSIF, $

ERROR: trailing whitespace
#46455: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1789:
+                }, $

ERROR: trailing whitespace
#46459: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1793:
+                    0x0010FFFF, $

ERROR: trailing whitespace
#46460: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1794:
+                    0x02, $

ERROR: trailing whitespace
#46461: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1795:
+                    GSIG, $

ERROR: trailing whitespace
#46463: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1797:
+                }, $

ERROR: trailing whitespace
#46467: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1801:
+                    0x0010FFFF, $

ERROR: trailing whitespace
#46468: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1802:
+                    0x03, $

ERROR: trailing whitespace
#46469: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1803:
+                    GSIH, $

ERROR: trailing whitespace
#46471: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1805:
+                }, $

ERROR: trailing whitespace
#46475: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1809:
+                    0x0011FFFF, $

ERROR: trailing whitespace
#46476: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1810:
+                    Zero, $

ERROR: trailing whitespace
#46477: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1811:
+                    GSIF, $

ERROR: trailing whitespace
#46479: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1813:
+                }, $

ERROR: trailing whitespace
#46483: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1817:
+                    0x0011FFFF, $

ERROR: trailing whitespace
#46484: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1818:
+                    One, $

ERROR: trailing whitespace
#46485: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1819:
+                    GSIG, $

ERROR: trailing whitespace
#46487: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1821:
+                }, $

ERROR: trailing whitespace
#46491: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1825:
+                    0x0011FFFF, $

ERROR: trailing whitespace
#46492: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1826:
+                    0x02, $

ERROR: trailing whitespace
#46493: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1827:
+                    GSIH, $

ERROR: trailing whitespace
#46495: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1829:
+                }, $

ERROR: trailing whitespace
#46499: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1833:
+                    0x0011FFFF, $

ERROR: trailing whitespace
#46500: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1834:
+                    0x03, $

ERROR: trailing whitespace
#46501: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1835:
+                    GSIE, $

ERROR: trailing whitespace
#46503: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1837:
+                }, $

ERROR: trailing whitespace
#46507: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1841:
+                    0x0012FFFF, $

ERROR: trailing whitespace
#46508: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1842:
+                    Zero, $

ERROR: trailing whitespace
#46509: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1843:
+                    GSIG, $

ERROR: trailing whitespace
#46511: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1845:
+                }, $

ERROR: trailing whitespace
#46515: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1849:
+                    0x0012FFFF, $

ERROR: trailing whitespace
#46516: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1850:
+                    One, $

ERROR: trailing whitespace
#46517: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1851:
+                    GSIH, $

ERROR: trailing whitespace
#46519: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1853:
+                }, $

ERROR: trailing whitespace
#46523: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1857:
+                    0x0012FFFF, $

ERROR: trailing whitespace
#46524: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1858:
+                    0x02, $

ERROR: trailing whitespace
#46525: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1859:
+                    GSIE, $

ERROR: trailing whitespace
#46527: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1861:
+                }, $

ERROR: trailing whitespace
#46531: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1865:
+                    0x0012FFFF, $

ERROR: trailing whitespace
#46532: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1866:
+                    0x03, $

ERROR: trailing whitespace
#46533: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1867:
+                    GSIF, $

ERROR: trailing whitespace
#46535: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1869:
+                }, $

ERROR: trailing whitespace
#46539: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1873:
+                    0x0013FFFF, $

ERROR: trailing whitespace
#46540: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1874:
+                    Zero, $

ERROR: trailing whitespace
#46541: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1875:
+                    GSIH, $

ERROR: trailing whitespace
#46543: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1877:
+                }, $

ERROR: trailing whitespace
#46547: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1881:
+                    0x0013FFFF, $

ERROR: trailing whitespace
#46548: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1882:
+                    One, $

ERROR: trailing whitespace
#46549: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1883:
+                    GSIE, $

ERROR: trailing whitespace
#46551: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1885:
+                }, $

ERROR: trailing whitespace
#46555: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1889:
+                    0x0013FFFF, $

ERROR: trailing whitespace
#46556: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1890:
+                    0x02, $

ERROR: trailing whitespace
#46557: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1891:
+                    GSIF, $

ERROR: trailing whitespace
#46559: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1893:
+                }, $

ERROR: trailing whitespace
#46563: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1897:
+                    0x0013FFFF, $

ERROR: trailing whitespace
#46564: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1898:
+                    0x03, $

ERROR: trailing whitespace
#46565: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1899:
+                    GSIG, $

ERROR: trailing whitespace
#46567: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1901:
+                }, $

ERROR: trailing whitespace
#46571: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1905:
+                    0x0014FFFF, $

ERROR: trailing whitespace
#46572: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1906:
+                    Zero, $

ERROR: trailing whitespace
#46573: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1907:
+                    GSIE, $

ERROR: trailing whitespace
#46575: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1909:
+                }, $

ERROR: trailing whitespace
#46579: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1913:
+                    0x0014FFFF, $

ERROR: trailing whitespace
#46580: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1914:
+                    One, $

ERROR: trailing whitespace
#46581: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1915:
+                    GSIF, $

ERROR: trailing whitespace
#46583: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1917:
+                }, $

ERROR: trailing whitespace
#46587: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1921:
+                    0x0014FFFF, $

ERROR: trailing whitespace
#46588: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1922:
+                    0x02, $

ERROR: trailing whitespace
#46589: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1923:
+                    GSIG, $

ERROR: trailing whitespace
#46591: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1925:
+                }, $

ERROR: trailing whitespace
#46595: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1929:
+                    0x0014FFFF, $

ERROR: trailing whitespace
#46596: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1930:
+                    0x03, $

ERROR: trailing whitespace
#46597: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1931:
+                    GSIH, $

ERROR: trailing whitespace
#46599: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1933:
+                }, $

ERROR: trailing whitespace
#46603: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1937:
+                    0x0015FFFF, $

ERROR: trailing whitespace
#46604: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1938:
+                    Zero, $

ERROR: trailing whitespace
#46605: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1939:
+                    GSIF, $

ERROR: trailing whitespace
#46607: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1941:
+                }, $

ERROR: trailing whitespace
#46611: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1945:
+                    0x0015FFFF, $

ERROR: trailing whitespace
#46612: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1946:
+                    One, $

ERROR: trailing whitespace
#46613: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1947:
+                    GSIG, $

ERROR: trailing whitespace
#46615: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1949:
+                }, $

ERROR: trailing whitespace
#46619: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1953:
+                    0x0015FFFF, $

ERROR: trailing whitespace
#46620: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1954:
+                    0x02, $

ERROR: trailing whitespace
#46621: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1955:
+                    GSIH, $

ERROR: trailing whitespace
#46623: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1957:
+                }, $

ERROR: trailing whitespace
#46627: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1961:
+                    0x0015FFFF, $

ERROR: trailing whitespace
#46628: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1962:
+                    0x03, $

ERROR: trailing whitespace
#46629: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1963:
+                    GSIE, $

ERROR: trailing whitespace
#46631: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1965:
+                }, $

ERROR: trailing whitespace
#46635: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1969:
+                    0x0016FFFF, $

ERROR: trailing whitespace
#46636: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1970:
+                    Zero, $

ERROR: trailing whitespace
#46637: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1971:
+                    GSIG, $

ERROR: trailing whitespace
#46639: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1973:
+                }, $

ERROR: trailing whitespace
#46643: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1977:
+                    0x0016FFFF, $

ERROR: trailing whitespace
#46644: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1978:
+                    One, $

ERROR: trailing whitespace
#46645: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1979:
+                    GSIH, $

ERROR: trailing whitespace
#46647: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1981:
+                }, $

ERROR: trailing whitespace
#46651: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1985:
+                    0x0016FFFF, $

ERROR: trailing whitespace
#46652: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1986:
+                    0x02, $

ERROR: trailing whitespace
#46653: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1987:
+                    GSIE, $

ERROR: trailing whitespace
#46655: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1989:
+                }, $

ERROR: trailing whitespace
#46659: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1993:
+                    0x0016FFFF, $

ERROR: trailing whitespace
#46660: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1994:
+                    0x03, $

ERROR: trailing whitespace
#46661: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1995:
+                    GSIF, $

ERROR: trailing whitespace
#46663: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:1997:
+                }, $

ERROR: trailing whitespace
#46667: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2001:
+                    0x0017FFFF, $

ERROR: trailing whitespace
#46668: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2002:
+                    Zero, $

ERROR: trailing whitespace
#46669: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2003:
+                    GSIH, $

ERROR: trailing whitespace
#46671: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2005:
+                }, $

ERROR: trailing whitespace
#46675: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2009:
+                    0x0017FFFF, $

ERROR: trailing whitespace
#46676: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2010:
+                    One, $

ERROR: trailing whitespace
#46677: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2011:
+                    GSIE, $

ERROR: trailing whitespace
#46679: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2013:
+                }, $

ERROR: trailing whitespace
#46683: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2017:
+                    0x0017FFFF, $

ERROR: trailing whitespace
#46684: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2018:
+                    0x02, $

ERROR: trailing whitespace
#46685: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2019:
+                    GSIF, $

ERROR: trailing whitespace
#46687: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2021:
+                }, $

ERROR: trailing whitespace
#46691: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2025:
+                    0x0017FFFF, $

ERROR: trailing whitespace
#46692: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2026:
+                    0x03, $

ERROR: trailing whitespace
#46693: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2027:
+                    GSIG, $

ERROR: trailing whitespace
#46695: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2029:
+                }, $

ERROR: trailing whitespace
#46699: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2033:
+                    0x0018FFFF, $

ERROR: trailing whitespace
#46700: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2034:
+                    Zero, $

ERROR: trailing whitespace
#46701: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2035:
+                    GSIE, $

ERROR: trailing whitespace
#46703: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2037:
+                }, $

ERROR: trailing whitespace
#46707: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2041:
+                    0x0018FFFF, $

ERROR: trailing whitespace
#46708: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2042:
+                    One, $

ERROR: trailing whitespace
#46709: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2043:
+                    GSIF, $

ERROR: trailing whitespace
#46711: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2045:
+                }, $

ERROR: trailing whitespace
#46715: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2049:
+                    0x0018FFFF, $

ERROR: trailing whitespace
#46716: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2050:
+                    0x02, $

ERROR: trailing whitespace
#46717: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2051:
+                    GSIG, $

ERROR: trailing whitespace
#46719: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2053:
+                }, $

ERROR: trailing whitespace
#46723: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2057:
+                    0x0018FFFF, $

ERROR: trailing whitespace
#46724: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2058:
+                    0x03, $

ERROR: trailing whitespace
#46725: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2059:
+                    GSIH, $

ERROR: trailing whitespace
#46727: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2061:
+                }, $

ERROR: trailing whitespace
#46731: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2065:
+                    0x0019FFFF, $

ERROR: trailing whitespace
#46732: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2066:
+                    Zero, $

ERROR: trailing whitespace
#46733: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2067:
+                    GSIA, $

ERROR: trailing whitespace
#46735: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2069:
+                }, $

ERROR: trailing whitespace
#46739: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2073:
+                    0x0019FFFF, $

ERROR: trailing whitespace
#46740: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2074:
+                    One, $

ERROR: trailing whitespace
#46741: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2075:
+                    GSIB, $

ERROR: trailing whitespace
#46743: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2077:
+                }, $

ERROR: trailing whitespace
#46747: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2081:
+                    0x0019FFFF, $

ERROR: trailing whitespace
#46748: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2082:
+                    0x02, $

ERROR: trailing whitespace
#46749: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2083:
+                    GSIC, $

ERROR: trailing whitespace
#46751: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2085:
+                }, $

ERROR: trailing whitespace
#46755: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2089:
+                    0x0019FFFF, $

ERROR: trailing whitespace
#46756: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2090:
+                    0x03, $

ERROR: trailing whitespace
#46757: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2091:
+                    GSID, $

ERROR: trailing whitespace
#46759: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2093:
+                }, $

ERROR: trailing whitespace
#46763: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2097:
+                    0x001AFFFF, $

ERROR: trailing whitespace
#46764: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2098:
+                    Zero, $

ERROR: trailing whitespace
#46765: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2099:
+                    GSIA, $

ERROR: trailing whitespace
#46767: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2101:
+                }, $

ERROR: trailing whitespace
#46771: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2105:
+                    0x001AFFFF, $

ERROR: trailing whitespace
#46772: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2106:
+                    One, $

ERROR: trailing whitespace
#46773: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2107:
+                    GSIB, $

ERROR: trailing whitespace
#46775: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2109:
+                }, $

ERROR: trailing whitespace
#46779: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2113:
+                    0x001AFFFF, $

ERROR: trailing whitespace
#46780: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2114:
+                    0x02, $

ERROR: trailing whitespace
#46781: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2115:
+                    GSIC, $

ERROR: trailing whitespace
#46783: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2117:
+                }, $

ERROR: trailing whitespace
#46787: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2121:
+                    0x001AFFFF, $

ERROR: trailing whitespace
#46788: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2122:
+                    0x03, $

ERROR: trailing whitespace
#46789: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2123:
+                    GSID, $

ERROR: trailing whitespace
#46791: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2125:
+                }, $

ERROR: trailing whitespace
#46795: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2129:
+                    0x001BFFFF, $

ERROR: trailing whitespace
#46796: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2130:
+                    Zero, $

ERROR: trailing whitespace
#46797: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2131:
+                    GSIA, $

ERROR: trailing whitespace
#46799: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2133:
+                }, $

ERROR: trailing whitespace
#46803: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2137:
+                    0x001BFFFF, $

ERROR: trailing whitespace
#46804: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2138:
+                    One, $

ERROR: trailing whitespace
#46805: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2139:
+                    GSIB, $

ERROR: trailing whitespace
#46807: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2141:
+                }, $

ERROR: trailing whitespace
#46811: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2145:
+                    0x001BFFFF, $

ERROR: trailing whitespace
#46812: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2146:
+                    0x02, $

ERROR: trailing whitespace
#46813: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2147:
+                    GSIC, $

ERROR: trailing whitespace
#46815: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2149:
+                }, $

ERROR: trailing whitespace
#46819: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2153:
+                    0x001BFFFF, $

ERROR: trailing whitespace
#46820: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2154:
+                    0x03, $

ERROR: trailing whitespace
#46821: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2155:
+                    GSID, $

ERROR: trailing whitespace
#46823: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2157:
+                }, $

ERROR: trailing whitespace
#46827: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2161:
+                    0x001CFFFF, $

ERROR: trailing whitespace
#46828: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2162:
+                    Zero, $

ERROR: trailing whitespace
#46829: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2163:
+                    GSIA, $

ERROR: trailing whitespace
#46831: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2165:
+                }, $

ERROR: trailing whitespace
#46835: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2169:
+                    0x001CFFFF, $

ERROR: trailing whitespace
#46836: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2170:
+                    One, $

ERROR: trailing whitespace
#46837: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2171:
+                    GSIB, $

ERROR: trailing whitespace
#46839: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2173:
+                }, $

ERROR: trailing whitespace
#46843: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2177:
+                    0x001CFFFF, $

ERROR: trailing whitespace
#46844: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2178:
+                    0x02, $

ERROR: trailing whitespace
#46845: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2179:
+                    GSIC, $

ERROR: trailing whitespace
#46847: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2181:
+                }, $

ERROR: trailing whitespace
#46851: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2185:
+                    0x001CFFFF, $

ERROR: trailing whitespace
#46852: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2186:
+                    0x03, $

ERROR: trailing whitespace
#46853: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2187:
+                    GSID, $

ERROR: trailing whitespace
#46855: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2189:
+                }, $

ERROR: trailing whitespace
#46859: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2193:
+                    0x001DFFFF, $

ERROR: trailing whitespace
#46860: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2194:
+                    Zero, $

ERROR: trailing whitespace
#46861: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2195:
+                    GSIA, $

ERROR: trailing whitespace
#46863: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2197:
+                }, $

ERROR: trailing whitespace
#46867: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2201:
+                    0x001DFFFF, $

ERROR: trailing whitespace
#46868: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2202:
+                    One, $

ERROR: trailing whitespace
#46869: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2203:
+                    GSIB, $

ERROR: trailing whitespace
#46871: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2205:
+                }, $

ERROR: trailing whitespace
#46875: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2209:
+                    0x001DFFFF, $

ERROR: trailing whitespace
#46876: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2210:
+                    0x02, $

ERROR: trailing whitespace
#46877: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2211:
+                    GSIC, $

ERROR: trailing whitespace
#46879: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2213:
+                }, $

ERROR: trailing whitespace
#46883: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2217:
+                    0x001DFFFF, $

ERROR: trailing whitespace
#46884: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2218:
+                    0x03, $

ERROR: trailing whitespace
#46885: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2219:
+                    GSID, $

ERROR: trailing whitespace
#46887: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2221:
+                }, $

ERROR: trailing whitespace
#46891: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2225:
+                    0x001EFFFF, $

ERROR: trailing whitespace
#46892: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2226:
+                    Zero, $

ERROR: trailing whitespace
#46893: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2227:
+                    GSIE, $

ERROR: trailing whitespace
#46895: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2229:
+                }, $

ERROR: trailing whitespace
#46899: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2233:
+                    0x001EFFFF, $

ERROR: trailing whitespace
#46900: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2234:
+                    One, $

ERROR: trailing whitespace
#46901: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2235:
+                    GSIF, $

ERROR: trailing whitespace
#46903: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2237:
+                }, $

ERROR: trailing whitespace
#46907: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2241:
+                    0x001EFFFF, $

ERROR: trailing whitespace
#46908: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2242:
+                    0x02, $

ERROR: trailing whitespace
#46909: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2243:
+                    GSIG, $

ERROR: trailing whitespace
#46911: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2245:
+                }, $

ERROR: trailing whitespace
#46915: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2249:
+                    0x001EFFFF, $

ERROR: trailing whitespace
#46916: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2250:
+                    0x03, $

ERROR: trailing whitespace
#46917: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2251:
+                    GSIH, $

ERROR: trailing whitespace
#46919: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2253:
+                }, $

ERROR: trailing whitespace
#46923: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2257:
+                    0x001FFFFF, $

ERROR: trailing whitespace
#46924: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2258:
+                    Zero, $

ERROR: trailing whitespace
#46925: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2259:
+                    GSIA, $

ERROR: trailing whitespace
#46927: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2261:
+                }, $

ERROR: trailing whitespace
#46931: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2265:
+                    0x001FFFFF, $

ERROR: trailing whitespace
#46932: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2266:
+                    One, $

ERROR: trailing whitespace
#46933: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2267:
+                    GSIB, $

ERROR: trailing whitespace
#46935: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2269:
+                }, $

ERROR: trailing whitespace
#46939: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2273:
+                    0x001FFFFF, $

ERROR: trailing whitespace
#46940: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2274:
+                    0x02, $

ERROR: trailing whitespace
#46941: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2275:
+                    GSIC, $

ERROR: trailing whitespace
#46943: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2277:
+                }, $

ERROR: trailing whitespace
#46947: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2281:
+                    0x001FFFFF, $

ERROR: trailing whitespace
#46948: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2282:
+                    0x03, $

ERROR: trailing whitespace
#46949: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2283:
+                    GSID, $

ERROR: trailing whitespace
#46968: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2302:
+            PRQA,   8, $

ERROR: trailing whitespace
#46969: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2303:
+            PRQB,   8, $

ERROR: trailing whitespace
#46970: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2304:
+            PRQC,   8, $

ERROR: trailing whitespace
#46971: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2305:
+            PRQD,   8, $

ERROR: trailing whitespace
#46972: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2306:
+            Offset (0x08), $

ERROR: trailing whitespace
#46973: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2307:
+            PRQE,   8, $

ERROR: trailing whitespace
#46974: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2308:
+            PRQF,   8, $

ERROR: trailing whitespace
#46975: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2309:
+            PRQG,   8, $

ERROR: trailing whitespace
#47527: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2861:
+                Offset (0x04), $

ERROR: trailing whitespace
#47528: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2862:
+                CPEN,   1, $

ERROR: trailing whitespace
#47529: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2863:
+                CINS,   1, $

ERROR: trailing whitespace
#47530: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2864:
+                CRMV,   1, $

ERROR: trailing whitespace
#47531: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2865:
+                CEJ0,   1, $

ERROR: trailing whitespace
#47532: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2866:
+                Offset (0x05), $

ERROR: trailing whitespace
#47538: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2872:
+                CSEL,   32, $

ERROR: trailing whitespace
#47539: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:2873:
+                Offset (0x08), $

ERROR: trailing whitespace
#47668: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:3002:
+            MRBL,   32, $

ERROR: trailing whitespace
#47669: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:3003:
+            MRBH,   32, $

ERROR: trailing whitespace
#47670: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:3004:
+            MRLL,   32, $

ERROR: trailing whitespace
#47671: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:3005:
+            MRLH,   32, $

ERROR: trailing whitespace
#47677: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:3011:
+            Offset (0x14), $

ERROR: trailing whitespace
#47678: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:3012:
+            MES,    1, $

ERROR: trailing whitespace
#47679: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:3013:
+            MINS,   1, $

ERROR: trailing whitespace
#47680: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:3014:
+            MRMV,   1, $

ERROR: trailing whitespace
#47686: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:3020:
+            MSEL,   32, $

ERROR: trailing whitespace
#47687: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:3021:
+            MOEV,   32, $

ERROR: trailing whitespace
#47965: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:3299:
+            One, $

ERROR: trailing whitespace
#47966: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:3300:
+            One, $

ERROR: trailing whitespace
#47967: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:3301:
+            Zero, $

ERROR: trailing whitespace
#47972: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:3306:
+            0x02, $

ERROR: trailing whitespace
#47973: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:3307:
+            0x02, $

ERROR: trailing whitespace
#47974: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:3308:
+            Zero, $

ERROR: trailing whitespace
#47979: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:3313:
+            Zero, $

ERROR: trailing whitespace
#47980: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:3314:
+            Zero, $

ERROR: trailing whitespace
#47981: FILE: tests/data/acpi/q35/DSDT.mmio64.dsl:3315:
+            Zero, $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/DSDT.numamem and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/DSDT.numamem.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/DSDT.numamem.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#48057: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:5:
+ * $

ERROR: trailing whitespace
#48147: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:95:
+                VEND,   32, $

ERROR: trailing whitespace
#48291: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:239:
+                    0xFFFF, $

ERROR: trailing whitespace
#48292: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:240:
+                    Zero, $

ERROR: trailing whitespace
#48293: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:241:
+                    LNKE, $

ERROR: trailing whitespace
#48295: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:243:
+                }, $

ERROR: trailing whitespace
#48299: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:247:
+                    0xFFFF, $

ERROR: trailing whitespace
#48300: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:248:
+                    One, $

ERROR: trailing whitespace
#48301: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:249:
+                    LNKF, $

ERROR: trailing whitespace
#48303: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:251:
+                }, $

ERROR: trailing whitespace
#48307: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:255:
+                    0xFFFF, $

ERROR: trailing whitespace
#48308: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:256:
+                    0x02, $

ERROR: trailing whitespace
#48309: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:257:
+                    LNKG, $

ERROR: trailing whitespace
#48311: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:259:
+                }, $

ERROR: trailing whitespace
#48315: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:263:
+                    0xFFFF, $

ERROR: trailing whitespace
#48316: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:264:
+                    0x03, $

ERROR: trailing whitespace
#48317: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:265:
+                    LNKH, $

ERROR: trailing whitespace
#48319: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:267:
+                }, $

ERROR: trailing whitespace
#48323: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:271:
+                    0x0001FFFF, $

ERROR: trailing whitespace
#48324: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:272:
+                    Zero, $

ERROR: trailing whitespace
#48325: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:273:
+                    LNKF, $

ERROR: trailing whitespace
#48327: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:275:
+                }, $

ERROR: trailing whitespace
#48331: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:279:
+                    0x0001FFFF, $

ERROR: trailing whitespace
#48332: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:280:
+                    One, $

ERROR: trailing whitespace
#48333: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:281:
+                    LNKG, $

ERROR: trailing whitespace
#48335: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:283:
+                }, $

ERROR: trailing whitespace
#48339: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:287:
+                    0x0001FFFF, $

ERROR: trailing whitespace
#48340: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:288:
+                    0x02, $

ERROR: trailing whitespace
#48341: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:289:
+                    LNKH, $

ERROR: trailing whitespace
#48343: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:291:
+                }, $

ERROR: trailing whitespace
#48347: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:295:
+                    0x0001FFFF, $

ERROR: trailing whitespace
#48348: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:296:
+                    0x03, $

ERROR: trailing whitespace
#48349: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:297:
+                    LNKE, $

ERROR: trailing whitespace
#48351: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:299:
+                }, $

ERROR: trailing whitespace
#48355: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:303:
+                    0x0002FFFF, $

ERROR: trailing whitespace
#48356: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:304:
+                    Zero, $

ERROR: trailing whitespace
#48357: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:305:
+                    LNKG, $

ERROR: trailing whitespace
#48359: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:307:
+                }, $

ERROR: trailing whitespace
#48363: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:311:
+                    0x0002FFFF, $

ERROR: trailing whitespace
#48364: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:312:
+                    One, $

ERROR: trailing whitespace
#48365: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:313:
+                    LNKH, $

ERROR: trailing whitespace
#48367: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:315:
+                }, $

ERROR: trailing whitespace
#48371: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:319:
+                    0x0002FFFF, $

ERROR: trailing whitespace
#48372: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:320:
+                    0x02, $

ERROR: trailing whitespace
#48373: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:321:
+                    LNKE, $

ERROR: trailing whitespace
#48375: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:323:
+                }, $

ERROR: trailing whitespace
#48379: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:327:
+                    0x0002FFFF, $

ERROR: trailing whitespace
#48380: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:328:
+                    0x03, $

ERROR: trailing whitespace
#48381: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:329:
+                    LNKF, $

ERROR: trailing whitespace
#48383: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:331:
+                }, $

ERROR: trailing whitespace
#48387: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:335:
+                    0x0003FFFF, $

ERROR: trailing whitespace
#48388: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:336:
+                    Zero, $

ERROR: trailing whitespace
#48389: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:337:
+                    LNKH, $

ERROR: trailing whitespace
#48391: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:339:
+                }, $

ERROR: trailing whitespace
#48395: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:343:
+                    0x0003FFFF, $

ERROR: trailing whitespace
#48396: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:344:
+                    One, $

ERROR: trailing whitespace
#48397: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:345:
+                    LNKE, $

ERROR: trailing whitespace
#48399: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:347:
+                }, $

ERROR: trailing whitespace
#48403: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:351:
+                    0x0003FFFF, $

ERROR: trailing whitespace
#48404: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:352:
+                    0x02, $

ERROR: trailing whitespace
#48405: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:353:
+                    LNKF, $

ERROR: trailing whitespace
#48407: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:355:
+                }, $

ERROR: trailing whitespace
#48411: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:359:
+                    0x0003FFFF, $

ERROR: trailing whitespace
#48412: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:360:
+                    0x03, $

ERROR: trailing whitespace
#48413: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:361:
+                    LNKG, $

ERROR: trailing whitespace
#48415: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:363:
+                }, $

ERROR: trailing whitespace
#48419: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:367:
+                    0x0004FFFF, $

ERROR: trailing whitespace
#48420: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:368:
+                    Zero, $

ERROR: trailing whitespace
#48421: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:369:
+                    LNKE, $

ERROR: trailing whitespace
#48423: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:371:
+                }, $

ERROR: trailing whitespace
#48427: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:375:
+                    0x0004FFFF, $

ERROR: trailing whitespace
#48428: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:376:
+                    One, $

ERROR: trailing whitespace
#48429: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:377:
+                    LNKF, $

ERROR: trailing whitespace
#48431: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:379:
+                }, $

ERROR: trailing whitespace
#48435: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:383:
+                    0x0004FFFF, $

ERROR: trailing whitespace
#48436: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:384:
+                    0x02, $

ERROR: trailing whitespace
#48437: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:385:
+                    LNKG, $

ERROR: trailing whitespace
#48439: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:387:
+                }, $

ERROR: trailing whitespace
#48443: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:391:
+                    0x0004FFFF, $

ERROR: trailing whitespace
#48444: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:392:
+                    0x03, $

ERROR: trailing whitespace
#48445: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:393:
+                    LNKH, $

ERROR: trailing whitespace
#48447: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:395:
+                }, $

ERROR: trailing whitespace
#48451: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:399:
+                    0x0005FFFF, $

ERROR: trailing whitespace
#48452: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:400:
+                    Zero, $

ERROR: trailing whitespace
#48453: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:401:
+                    LNKF, $

ERROR: trailing whitespace
#48455: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:403:
+                }, $

ERROR: trailing whitespace
#48459: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:407:
+                    0x0005FFFF, $

ERROR: trailing whitespace
#48460: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:408:
+                    One, $

ERROR: trailing whitespace
#48461: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:409:
+                    LNKG, $

ERROR: trailing whitespace
#48463: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:411:
+                }, $

ERROR: trailing whitespace
#48467: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:415:
+                    0x0005FFFF, $

ERROR: trailing whitespace
#48468: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:416:
+                    0x02, $

ERROR: trailing whitespace
#48469: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:417:
+                    LNKH, $

ERROR: trailing whitespace
#48471: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:419:
+                }, $

ERROR: trailing whitespace
#48475: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:423:
+                    0x0005FFFF, $

ERROR: trailing whitespace
#48476: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:424:
+                    0x03, $

ERROR: trailing whitespace
#48477: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:425:
+                    LNKE, $

ERROR: trailing whitespace
#48479: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:427:
+                }, $

ERROR: trailing whitespace
#48483: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:431:
+                    0x0006FFFF, $

ERROR: trailing whitespace
#48484: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:432:
+                    Zero, $

ERROR: trailing whitespace
#48485: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:433:
+                    LNKG, $

ERROR: trailing whitespace
#48487: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:435:
+                }, $

ERROR: trailing whitespace
#48491: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:439:
+                    0x0006FFFF, $

ERROR: trailing whitespace
#48492: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:440:
+                    One, $

ERROR: trailing whitespace
#48493: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:441:
+                    LNKH, $

ERROR: trailing whitespace
#48495: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:443:
+                }, $

ERROR: trailing whitespace
#48499: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:447:
+                    0x0006FFFF, $

ERROR: trailing whitespace
#48500: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:448:
+                    0x02, $

ERROR: trailing whitespace
#48501: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:449:
+                    LNKE, $

ERROR: trailing whitespace
#48503: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:451:
+                }, $

ERROR: trailing whitespace
#48507: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:455:
+                    0x0006FFFF, $

ERROR: trailing whitespace
#48508: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:456:
+                    0x03, $

ERROR: trailing whitespace
#48509: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:457:
+                    LNKF, $

ERROR: trailing whitespace
#48511: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:459:
+                }, $

ERROR: trailing whitespace
#48515: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:463:
+                    0x0007FFFF, $

ERROR: trailing whitespace
#48516: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:464:
+                    Zero, $

ERROR: trailing whitespace
#48517: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:465:
+                    LNKH, $

ERROR: trailing whitespace
#48519: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:467:
+                }, $

ERROR: trailing whitespace
#48523: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:471:
+                    0x0007FFFF, $

ERROR: trailing whitespace
#48524: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:472:
+                    One, $

ERROR: trailing whitespace
#48525: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:473:
+                    LNKE, $

ERROR: trailing whitespace
#48527: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:475:
+                }, $

ERROR: trailing whitespace
#48531: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:479:
+                    0x0007FFFF, $

ERROR: trailing whitespace
#48532: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:480:
+                    0x02, $

ERROR: trailing whitespace
#48533: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:481:
+                    LNKF, $

ERROR: trailing whitespace
#48535: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:483:
+                }, $

ERROR: trailing whitespace
#48539: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:487:
+                    0x0007FFFF, $

ERROR: trailing whitespace
#48540: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:488:
+                    0x03, $

ERROR: trailing whitespace
#48541: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:489:
+                    LNKG, $

ERROR: trailing whitespace
#48543: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:491:
+                }, $

ERROR: trailing whitespace
#48547: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:495:
+                    0x0008FFFF, $

ERROR: trailing whitespace
#48548: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:496:
+                    Zero, $

ERROR: trailing whitespace
#48549: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:497:
+                    LNKE, $

ERROR: trailing whitespace
#48551: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:499:
+                }, $

ERROR: trailing whitespace
#48555: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:503:
+                    0x0008FFFF, $

ERROR: trailing whitespace
#48556: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:504:
+                    One, $

ERROR: trailing whitespace
#48557: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:505:
+                    LNKF, $

ERROR: trailing whitespace
#48559: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:507:
+                }, $

ERROR: trailing whitespace
#48563: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:511:
+                    0x0008FFFF, $

ERROR: trailing whitespace
#48564: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:512:
+                    0x02, $

ERROR: trailing whitespace
#48565: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:513:
+                    LNKG, $

ERROR: trailing whitespace
#48567: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:515:
+                }, $

ERROR: trailing whitespace
#48571: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:519:
+                    0x0008FFFF, $

ERROR: trailing whitespace
#48572: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:520:
+                    0x03, $

ERROR: trailing whitespace
#48573: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:521:
+                    LNKH, $

ERROR: trailing whitespace
#48575: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:523:
+                }, $

ERROR: trailing whitespace
#48579: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:527:
+                    0x0009FFFF, $

ERROR: trailing whitespace
#48580: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:528:
+                    Zero, $

ERROR: trailing whitespace
#48581: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:529:
+                    LNKF, $

ERROR: trailing whitespace
#48583: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:531:
+                }, $

ERROR: trailing whitespace
#48587: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:535:
+                    0x0009FFFF, $

ERROR: trailing whitespace
#48588: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:536:
+                    One, $

ERROR: trailing whitespace
#48589: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:537:
+                    LNKG, $

ERROR: trailing whitespace
#48591: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:539:
+                }, $

ERROR: trailing whitespace
#48595: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:543:
+                    0x0009FFFF, $

ERROR: trailing whitespace
#48596: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:544:
+                    0x02, $

ERROR: trailing whitespace
#48597: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:545:
+                    LNKH, $

ERROR: trailing whitespace
#48599: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:547:
+                }, $

ERROR: trailing whitespace
#48603: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:551:
+                    0x0009FFFF, $

ERROR: trailing whitespace
#48604: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:552:
+                    0x03, $

ERROR: trailing whitespace
#48605: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:553:
+                    LNKE, $

ERROR: trailing whitespace
#48607: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:555:
+                }, $

ERROR: trailing whitespace
#48611: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:559:
+                    0x000AFFFF, $

ERROR: trailing whitespace
#48612: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:560:
+                    Zero, $

ERROR: trailing whitespace
#48613: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:561:
+                    LNKG, $

ERROR: trailing whitespace
#48615: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:563:
+                }, $

ERROR: trailing whitespace
#48619: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:567:
+                    0x000AFFFF, $

ERROR: trailing whitespace
#48620: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:568:
+                    One, $

ERROR: trailing whitespace
#48621: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:569:
+                    LNKH, $

ERROR: trailing whitespace
#48623: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:571:
+                }, $

ERROR: trailing whitespace
#48627: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:575:
+                    0x000AFFFF, $

ERROR: trailing whitespace
#48628: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:576:
+                    0x02, $

ERROR: trailing whitespace
#48629: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:577:
+                    LNKE, $

ERROR: trailing whitespace
#48631: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:579:
+                }, $

ERROR: trailing whitespace
#48635: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:583:
+                    0x000AFFFF, $

ERROR: trailing whitespace
#48636: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:584:
+                    0x03, $

ERROR: trailing whitespace
#48637: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:585:
+                    LNKF, $

ERROR: trailing whitespace
#48639: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:587:
+                }, $

ERROR: trailing whitespace
#48643: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:591:
+                    0x000BFFFF, $

ERROR: trailing whitespace
#48644: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:592:
+                    Zero, $

ERROR: trailing whitespace
#48645: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:593:
+                    LNKH, $

ERROR: trailing whitespace
#48647: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:595:
+                }, $

ERROR: trailing whitespace
#48651: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:599:
+                    0x000BFFFF, $

ERROR: trailing whitespace
#48652: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:600:
+                    One, $

ERROR: trailing whitespace
#48653: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:601:
+                    LNKE, $

ERROR: trailing whitespace
#48655: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:603:
+                }, $

ERROR: trailing whitespace
#48659: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:607:
+                    0x000BFFFF, $

ERROR: trailing whitespace
#48660: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:608:
+                    0x02, $

ERROR: trailing whitespace
#48661: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:609:
+                    LNKF, $

ERROR: trailing whitespace
#48663: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:611:
+                }, $

ERROR: trailing whitespace
#48667: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:615:
+                    0x000BFFFF, $

ERROR: trailing whitespace
#48668: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:616:
+                    0x03, $

ERROR: trailing whitespace
#48669: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:617:
+                    LNKG, $

ERROR: trailing whitespace
#48671: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:619:
+                }, $

ERROR: trailing whitespace
#48675: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:623:
+                    0x000CFFFF, $

ERROR: trailing whitespace
#48676: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:624:
+                    Zero, $

ERROR: trailing whitespace
#48677: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:625:
+                    LNKE, $

ERROR: trailing whitespace
#48679: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:627:
+                }, $

ERROR: trailing whitespace
#48683: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:631:
+                    0x000CFFFF, $

ERROR: trailing whitespace
#48684: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:632:
+                    One, $

ERROR: trailing whitespace
#48685: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:633:
+                    LNKF, $

ERROR: trailing whitespace
#48687: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:635:
+                }, $

ERROR: trailing whitespace
#48691: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:639:
+                    0x000CFFFF, $

ERROR: trailing whitespace
#48692: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:640:
+                    0x02, $

ERROR: trailing whitespace
#48693: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:641:
+                    LNKG, $

ERROR: trailing whitespace
#48695: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:643:
+                }, $

ERROR: trailing whitespace
#48699: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:647:
+                    0x000CFFFF, $

ERROR: trailing whitespace
#48700: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:648:
+                    0x03, $

ERROR: trailing whitespace
#48701: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:649:
+                    LNKH, $

ERROR: trailing whitespace
#48703: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:651:
+                }, $

ERROR: trailing whitespace
#48707: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:655:
+                    0x000DFFFF, $

ERROR: trailing whitespace
#48708: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:656:
+                    Zero, $

ERROR: trailing whitespace
#48709: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:657:
+                    LNKF, $

ERROR: trailing whitespace
#48711: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:659:
+                }, $

ERROR: trailing whitespace
#48715: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:663:
+                    0x000DFFFF, $

ERROR: trailing whitespace
#48716: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:664:
+                    One, $

ERROR: trailing whitespace
#48717: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:665:
+                    LNKG, $

ERROR: trailing whitespace
#48719: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:667:
+                }, $

ERROR: trailing whitespace
#48723: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:671:
+                    0x000DFFFF, $

ERROR: trailing whitespace
#48724: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:672:
+                    0x02, $

ERROR: trailing whitespace
#48725: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:673:
+                    LNKH, $

ERROR: trailing whitespace
#48727: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:675:
+                }, $

ERROR: trailing whitespace
#48731: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:679:
+                    0x000DFFFF, $

ERROR: trailing whitespace
#48732: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:680:
+                    0x03, $

ERROR: trailing whitespace
#48733: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:681:
+                    LNKE, $

ERROR: trailing whitespace
#48735: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:683:
+                }, $

ERROR: trailing whitespace
#48739: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:687:
+                    0x000EFFFF, $

ERROR: trailing whitespace
#48740: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:688:
+                    Zero, $

ERROR: trailing whitespace
#48741: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:689:
+                    LNKG, $

ERROR: trailing whitespace
#48743: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:691:
+                }, $

ERROR: trailing whitespace
#48747: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:695:
+                    0x000EFFFF, $

ERROR: trailing whitespace
#48748: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:696:
+                    One, $

ERROR: trailing whitespace
#48749: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:697:
+                    LNKH, $

ERROR: trailing whitespace
#48751: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:699:
+                }, $

ERROR: trailing whitespace
#48755: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:703:
+                    0x000EFFFF, $

ERROR: trailing whitespace
#48756: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:704:
+                    0x02, $

ERROR: trailing whitespace
#48757: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:705:
+                    LNKE, $

ERROR: trailing whitespace
#48759: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:707:
+                }, $

ERROR: trailing whitespace
#48763: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:711:
+                    0x000EFFFF, $

ERROR: trailing whitespace
#48764: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:712:
+                    0x03, $

ERROR: trailing whitespace
#48765: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:713:
+                    LNKF, $

ERROR: trailing whitespace
#48767: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:715:
+                }, $

ERROR: trailing whitespace
#48771: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:719:
+                    0x000FFFFF, $

ERROR: trailing whitespace
#48772: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:720:
+                    Zero, $

ERROR: trailing whitespace
#48773: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:721:
+                    LNKH, $

ERROR: trailing whitespace
#48775: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:723:
+                }, $

ERROR: trailing whitespace
#48779: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:727:
+                    0x000FFFFF, $

ERROR: trailing whitespace
#48780: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:728:
+                    One, $

ERROR: trailing whitespace
#48781: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:729:
+                    LNKE, $

ERROR: trailing whitespace
#48783: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:731:
+                }, $

ERROR: trailing whitespace
#48787: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:735:
+                    0x000FFFFF, $

ERROR: trailing whitespace
#48788: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:736:
+                    0x02, $

ERROR: trailing whitespace
#48789: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:737:
+                    LNKF, $

ERROR: trailing whitespace
#48791: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:739:
+                }, $

ERROR: trailing whitespace
#48795: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:743:
+                    0x000FFFFF, $

ERROR: trailing whitespace
#48796: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:744:
+                    0x03, $

ERROR: trailing whitespace
#48797: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:745:
+                    LNKG, $

ERROR: trailing whitespace
#48799: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:747:
+                }, $

ERROR: trailing whitespace
#48803: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:751:
+                    0x0010FFFF, $

ERROR: trailing whitespace
#48804: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:752:
+                    Zero, $

ERROR: trailing whitespace
#48805: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:753:
+                    LNKE, $

ERROR: trailing whitespace
#48807: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:755:
+                }, $

ERROR: trailing whitespace
#48811: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:759:
+                    0x0010FFFF, $

ERROR: trailing whitespace
#48812: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:760:
+                    One, $

ERROR: trailing whitespace
#48813: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:761:
+                    LNKF, $

ERROR: trailing whitespace
#48815: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:763:
+                }, $

ERROR: trailing whitespace
#48819: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:767:
+                    0x0010FFFF, $

ERROR: trailing whitespace
#48820: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:768:
+                    0x02, $

ERROR: trailing whitespace
#48821: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:769:
+                    LNKG, $

ERROR: trailing whitespace
#48823: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:771:
+                }, $

ERROR: trailing whitespace
#48827: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:775:
+                    0x0010FFFF, $

ERROR: trailing whitespace
#48828: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:776:
+                    0x03, $

ERROR: trailing whitespace
#48829: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:777:
+                    LNKH, $

ERROR: trailing whitespace
#48831: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:779:
+                }, $

ERROR: trailing whitespace
#48835: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:783:
+                    0x0011FFFF, $

ERROR: trailing whitespace
#48836: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:784:
+                    Zero, $

ERROR: trailing whitespace
#48837: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:785:
+                    LNKF, $

ERROR: trailing whitespace
#48839: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:787:
+                }, $

ERROR: trailing whitespace
#48843: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:791:
+                    0x0011FFFF, $

ERROR: trailing whitespace
#48844: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:792:
+                    One, $

ERROR: trailing whitespace
#48845: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:793:
+                    LNKG, $

ERROR: trailing whitespace
#48847: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:795:
+                }, $

ERROR: trailing whitespace
#48851: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:799:
+                    0x0011FFFF, $

ERROR: trailing whitespace
#48852: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:800:
+                    0x02, $

ERROR: trailing whitespace
#48853: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:801:
+                    LNKH, $

ERROR: trailing whitespace
#48855: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:803:
+                }, $

ERROR: trailing whitespace
#48859: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:807:
+                    0x0011FFFF, $

ERROR: trailing whitespace
#48860: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:808:
+                    0x03, $

ERROR: trailing whitespace
#48861: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:809:
+                    LNKE, $

ERROR: trailing whitespace
#48863: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:811:
+                }, $

ERROR: trailing whitespace
#48867: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:815:
+                    0x0012FFFF, $

ERROR: trailing whitespace
#48868: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:816:
+                    Zero, $

ERROR: trailing whitespace
#48869: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:817:
+                    LNKG, $

ERROR: trailing whitespace
#48871: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:819:
+                }, $

ERROR: trailing whitespace
#48875: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:823:
+                    0x0012FFFF, $

ERROR: trailing whitespace
#48876: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:824:
+                    One, $

ERROR: trailing whitespace
#48877: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:825:
+                    LNKH, $

ERROR: trailing whitespace
#48879: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:827:
+                }, $

ERROR: trailing whitespace
#48883: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:831:
+                    0x0012FFFF, $

ERROR: trailing whitespace
#48884: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:832:
+                    0x02, $

ERROR: trailing whitespace
#48885: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:833:
+                    LNKE, $

ERROR: trailing whitespace
#48887: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:835:
+                }, $

ERROR: trailing whitespace
#48891: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:839:
+                    0x0012FFFF, $

ERROR: trailing whitespace
#48892: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:840:
+                    0x03, $

ERROR: trailing whitespace
#48893: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:841:
+                    LNKF, $

ERROR: trailing whitespace
#48895: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:843:
+                }, $

ERROR: trailing whitespace
#48899: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:847:
+                    0x0013FFFF, $

ERROR: trailing whitespace
#48900: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:848:
+                    Zero, $

ERROR: trailing whitespace
#48901: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:849:
+                    LNKH, $

ERROR: trailing whitespace
#48903: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:851:
+                }, $

ERROR: trailing whitespace
#48907: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:855:
+                    0x0013FFFF, $

ERROR: trailing whitespace
#48908: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:856:
+                    One, $

ERROR: trailing whitespace
#48909: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:857:
+                    LNKE, $

ERROR: trailing whitespace
#48911: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:859:
+                }, $

ERROR: trailing whitespace
#48915: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:863:
+                    0x0013FFFF, $

ERROR: trailing whitespace
#48916: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:864:
+                    0x02, $

ERROR: trailing whitespace
#48917: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:865:
+                    LNKF, $

ERROR: trailing whitespace
#48919: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:867:
+                }, $

ERROR: trailing whitespace
#48923: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:871:
+                    0x0013FFFF, $

ERROR: trailing whitespace
#48924: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:872:
+                    0x03, $

ERROR: trailing whitespace
#48925: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:873:
+                    LNKG, $

ERROR: trailing whitespace
#48927: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:875:
+                }, $

ERROR: trailing whitespace
#48931: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:879:
+                    0x0014FFFF, $

ERROR: trailing whitespace
#48932: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:880:
+                    Zero, $

ERROR: trailing whitespace
#48933: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:881:
+                    LNKE, $

ERROR: trailing whitespace
#48935: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:883:
+                }, $

ERROR: trailing whitespace
#48939: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:887:
+                    0x0014FFFF, $

ERROR: trailing whitespace
#48940: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:888:
+                    One, $

ERROR: trailing whitespace
#48941: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:889:
+                    LNKF, $

ERROR: trailing whitespace
#48943: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:891:
+                }, $

ERROR: trailing whitespace
#48947: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:895:
+                    0x0014FFFF, $

ERROR: trailing whitespace
#48948: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:896:
+                    0x02, $

ERROR: trailing whitespace
#48949: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:897:
+                    LNKG, $

ERROR: trailing whitespace
#48951: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:899:
+                }, $

ERROR: trailing whitespace
#48955: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:903:
+                    0x0014FFFF, $

ERROR: trailing whitespace
#48956: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:904:
+                    0x03, $

ERROR: trailing whitespace
#48957: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:905:
+                    LNKH, $

ERROR: trailing whitespace
#48959: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:907:
+                }, $

ERROR: trailing whitespace
#48963: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:911:
+                    0x0015FFFF, $

ERROR: trailing whitespace
#48964: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:912:
+                    Zero, $

ERROR: trailing whitespace
#48965: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:913:
+                    LNKF, $

ERROR: trailing whitespace
#48967: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:915:
+                }, $

ERROR: trailing whitespace
#48971: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:919:
+                    0x0015FFFF, $

ERROR: trailing whitespace
#48972: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:920:
+                    One, $

ERROR: trailing whitespace
#48973: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:921:
+                    LNKG, $

ERROR: trailing whitespace
#48975: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:923:
+                }, $

ERROR: trailing whitespace
#48979: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:927:
+                    0x0015FFFF, $

ERROR: trailing whitespace
#48980: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:928:
+                    0x02, $

ERROR: trailing whitespace
#48981: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:929:
+                    LNKH, $

ERROR: trailing whitespace
#48983: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:931:
+                }, $

ERROR: trailing whitespace
#48987: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:935:
+                    0x0015FFFF, $

ERROR: trailing whitespace
#48988: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:936:
+                    0x03, $

ERROR: trailing whitespace
#48989: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:937:
+                    LNKE, $

ERROR: trailing whitespace
#48991: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:939:
+                }, $

ERROR: trailing whitespace
#48995: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:943:
+                    0x0016FFFF, $

ERROR: trailing whitespace
#48996: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:944:
+                    Zero, $

ERROR: trailing whitespace
#48997: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:945:
+                    LNKG, $

ERROR: trailing whitespace
#48999: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:947:
+                }, $

ERROR: trailing whitespace
#49003: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:951:
+                    0x0016FFFF, $

ERROR: trailing whitespace
#49004: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:952:
+                    One, $

ERROR: trailing whitespace
#49005: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:953:
+                    LNKH, $

ERROR: trailing whitespace
#49007: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:955:
+                }, $

ERROR: trailing whitespace
#49011: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:959:
+                    0x0016FFFF, $

ERROR: trailing whitespace
#49012: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:960:
+                    0x02, $

ERROR: trailing whitespace
#49013: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:961:
+                    LNKE, $

ERROR: trailing whitespace
#49015: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:963:
+                }, $

ERROR: trailing whitespace
#49019: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:967:
+                    0x0016FFFF, $

ERROR: trailing whitespace
#49020: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:968:
+                    0x03, $

ERROR: trailing whitespace
#49021: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:969:
+                    LNKF, $

ERROR: trailing whitespace
#49023: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:971:
+                }, $

ERROR: trailing whitespace
#49027: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:975:
+                    0x0017FFFF, $

ERROR: trailing whitespace
#49028: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:976:
+                    Zero, $

ERROR: trailing whitespace
#49029: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:977:
+                    LNKH, $

ERROR: trailing whitespace
#49031: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:979:
+                }, $

ERROR: trailing whitespace
#49035: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:983:
+                    0x0017FFFF, $

ERROR: trailing whitespace
#49036: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:984:
+                    One, $

ERROR: trailing whitespace
#49037: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:985:
+                    LNKE, $

ERROR: trailing whitespace
#49039: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:987:
+                }, $

ERROR: trailing whitespace
#49043: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:991:
+                    0x0017FFFF, $

ERROR: trailing whitespace
#49044: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:992:
+                    0x02, $

ERROR: trailing whitespace
#49045: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:993:
+                    LNKF, $

ERROR: trailing whitespace
#49047: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:995:
+                }, $

ERROR: trailing whitespace
#49051: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:999:
+                    0x0017FFFF, $

ERROR: trailing whitespace
#49052: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1000:
+                    0x03, $

ERROR: trailing whitespace
#49053: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1001:
+                    LNKG, $

ERROR: trailing whitespace
#49055: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1003:
+                }, $

ERROR: trailing whitespace
#49059: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1007:
+                    0x0018FFFF, $

ERROR: trailing whitespace
#49060: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1008:
+                    Zero, $

ERROR: trailing whitespace
#49061: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1009:
+                    LNKE, $

ERROR: trailing whitespace
#49063: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1011:
+                }, $

ERROR: trailing whitespace
#49067: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1015:
+                    0x0018FFFF, $

ERROR: trailing whitespace
#49068: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1016:
+                    One, $

ERROR: trailing whitespace
#49069: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1017:
+                    LNKF, $

ERROR: trailing whitespace
#49071: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1019:
+                }, $

ERROR: trailing whitespace
#49075: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1023:
+                    0x0018FFFF, $

ERROR: trailing whitespace
#49076: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1024:
+                    0x02, $

ERROR: trailing whitespace
#49077: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1025:
+                    LNKG, $

ERROR: trailing whitespace
#49079: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1027:
+                }, $

ERROR: trailing whitespace
#49083: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1031:
+                    0x0018FFFF, $

ERROR: trailing whitespace
#49084: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1032:
+                    0x03, $

ERROR: trailing whitespace
#49085: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1033:
+                    LNKH, $

ERROR: trailing whitespace
#49087: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1035:
+                }, $

ERROR: trailing whitespace
#49091: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1039:
+                    0x0019FFFF, $

ERROR: trailing whitespace
#49092: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1040:
+                    Zero, $

ERROR: trailing whitespace
#49093: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1041:
+                    LNKA, $

ERROR: trailing whitespace
#49095: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1043:
+                }, $

ERROR: trailing whitespace
#49099: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1047:
+                    0x0019FFFF, $

ERROR: trailing whitespace
#49100: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1048:
+                    One, $

ERROR: trailing whitespace
#49101: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1049:
+                    LNKB, $

ERROR: trailing whitespace
#49103: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1051:
+                }, $

ERROR: trailing whitespace
#49107: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1055:
+                    0x0019FFFF, $

ERROR: trailing whitespace
#49108: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1056:
+                    0x02, $

ERROR: trailing whitespace
#49109: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1057:
+                    LNKC, $

ERROR: trailing whitespace
#49111: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1059:
+                }, $

ERROR: trailing whitespace
#49115: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1063:
+                    0x0019FFFF, $

ERROR: trailing whitespace
#49116: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1064:
+                    0x03, $

ERROR: trailing whitespace
#49117: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1065:
+                    LNKD, $

ERROR: trailing whitespace
#49119: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1067:
+                }, $

ERROR: trailing whitespace
#49123: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1071:
+                    0x001AFFFF, $

ERROR: trailing whitespace
#49124: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1072:
+                    Zero, $

ERROR: trailing whitespace
#49125: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1073:
+                    LNKA, $

ERROR: trailing whitespace
#49127: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1075:
+                }, $

ERROR: trailing whitespace
#49131: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1079:
+                    0x001AFFFF, $

ERROR: trailing whitespace
#49132: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1080:
+                    One, $

ERROR: trailing whitespace
#49133: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1081:
+                    LNKB, $

ERROR: trailing whitespace
#49135: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1083:
+                }, $

ERROR: trailing whitespace
#49139: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1087:
+                    0x001AFFFF, $

ERROR: trailing whitespace
#49140: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1088:
+                    0x02, $

ERROR: trailing whitespace
#49141: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1089:
+                    LNKC, $

ERROR: trailing whitespace
#49143: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1091:
+                }, $

ERROR: trailing whitespace
#49147: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1095:
+                    0x001AFFFF, $

ERROR: trailing whitespace
#49148: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1096:
+                    0x03, $

ERROR: trailing whitespace
#49149: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1097:
+                    LNKD, $

ERROR: trailing whitespace
#49151: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1099:
+                }, $

ERROR: trailing whitespace
#49155: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1103:
+                    0x001BFFFF, $

ERROR: trailing whitespace
#49156: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1104:
+                    Zero, $

ERROR: trailing whitespace
#49157: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1105:
+                    LNKA, $

ERROR: trailing whitespace
#49159: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1107:
+                }, $

ERROR: trailing whitespace
#49163: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1111:
+                    0x001BFFFF, $

ERROR: trailing whitespace
#49164: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1112:
+                    One, $

ERROR: trailing whitespace
#49165: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1113:
+                    LNKB, $

ERROR: trailing whitespace
#49167: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1115:
+                }, $

ERROR: trailing whitespace
#49171: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1119:
+                    0x001BFFFF, $

ERROR: trailing whitespace
#49172: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1120:
+                    0x02, $

ERROR: trailing whitespace
#49173: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1121:
+                    LNKC, $

ERROR: trailing whitespace
#49175: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1123:
+                }, $

ERROR: trailing whitespace
#49179: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1127:
+                    0x001BFFFF, $

ERROR: trailing whitespace
#49180: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1128:
+                    0x03, $

ERROR: trailing whitespace
#49181: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1129:
+                    LNKD, $

ERROR: trailing whitespace
#49183: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1131:
+                }, $

ERROR: trailing whitespace
#49187: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1135:
+                    0x001CFFFF, $

ERROR: trailing whitespace
#49188: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1136:
+                    Zero, $

ERROR: trailing whitespace
#49189: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1137:
+                    LNKA, $

ERROR: trailing whitespace
#49191: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1139:
+                }, $

ERROR: trailing whitespace
#49195: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1143:
+                    0x001CFFFF, $

ERROR: trailing whitespace
#49196: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1144:
+                    One, $

ERROR: trailing whitespace
#49197: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1145:
+                    LNKB, $

ERROR: trailing whitespace
#49199: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1147:
+                }, $

ERROR: trailing whitespace
#49203: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1151:
+                    0x001CFFFF, $

ERROR: trailing whitespace
#49204: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1152:
+                    0x02, $

ERROR: trailing whitespace
#49205: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1153:
+                    LNKC, $

ERROR: trailing whitespace
#49207: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1155:
+                }, $

ERROR: trailing whitespace
#49211: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1159:
+                    0x001CFFFF, $

ERROR: trailing whitespace
#49212: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1160:
+                    0x03, $

ERROR: trailing whitespace
#49213: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1161:
+                    LNKD, $

ERROR: trailing whitespace
#49215: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1163:
+                }, $

ERROR: trailing whitespace
#49219: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1167:
+                    0x001DFFFF, $

ERROR: trailing whitespace
#49220: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1168:
+                    Zero, $

ERROR: trailing whitespace
#49221: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1169:
+                    LNKA, $

ERROR: trailing whitespace
#49223: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1171:
+                }, $

ERROR: trailing whitespace
#49227: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1175:
+                    0x001DFFFF, $

ERROR: trailing whitespace
#49228: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1176:
+                    One, $

ERROR: trailing whitespace
#49229: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1177:
+                    LNKB, $

ERROR: trailing whitespace
#49231: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1179:
+                }, $

ERROR: trailing whitespace
#49235: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1183:
+                    0x001DFFFF, $

ERROR: trailing whitespace
#49236: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1184:
+                    0x02, $

ERROR: trailing whitespace
#49237: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1185:
+                    LNKC, $

ERROR: trailing whitespace
#49239: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1187:
+                }, $

ERROR: trailing whitespace
#49243: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1191:
+                    0x001DFFFF, $

ERROR: trailing whitespace
#49244: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1192:
+                    0x03, $

ERROR: trailing whitespace
#49245: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1193:
+                    LNKD, $

ERROR: trailing whitespace
#49247: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1195:
+                }, $

ERROR: trailing whitespace
#49251: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1199:
+                    0x001EFFFF, $

ERROR: trailing whitespace
#49252: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1200:
+                    Zero, $

ERROR: trailing whitespace
#49253: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1201:
+                    LNKE, $

ERROR: trailing whitespace
#49255: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1203:
+                }, $

ERROR: trailing whitespace
#49259: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1207:
+                    0x001EFFFF, $

ERROR: trailing whitespace
#49260: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1208:
+                    One, $

ERROR: trailing whitespace
#49261: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1209:
+                    LNKF, $

ERROR: trailing whitespace
#49263: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1211:
+                }, $

ERROR: trailing whitespace
#49267: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1215:
+                    0x001EFFFF, $

ERROR: trailing whitespace
#49268: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1216:
+                    0x02, $

ERROR: trailing whitespace
#49269: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1217:
+                    LNKG, $

ERROR: trailing whitespace
#49271: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1219:
+                }, $

ERROR: trailing whitespace
#49275: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1223:
+                    0x001EFFFF, $

ERROR: trailing whitespace
#49276: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1224:
+                    0x03, $

ERROR: trailing whitespace
#49277: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1225:
+                    LNKH, $

ERROR: trailing whitespace
#49279: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1227:
+                }, $

ERROR: trailing whitespace
#49283: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1231:
+                    0x001FFFFF, $

ERROR: trailing whitespace
#49284: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1232:
+                    Zero, $

ERROR: trailing whitespace
#49285: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1233:
+                    LNKA, $

ERROR: trailing whitespace
#49287: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1235:
+                }, $

ERROR: trailing whitespace
#49291: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1239:
+                    0x001FFFFF, $

ERROR: trailing whitespace
#49292: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1240:
+                    One, $

ERROR: trailing whitespace
#49293: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1241:
+                    LNKB, $

ERROR: trailing whitespace
#49295: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1243:
+                }, $

ERROR: trailing whitespace
#49299: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1247:
+                    0x001FFFFF, $

ERROR: trailing whitespace
#49300: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1248:
+                    0x02, $

ERROR: trailing whitespace
#49301: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1249:
+                    LNKC, $

ERROR: trailing whitespace
#49303: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1251:
+                }, $

ERROR: trailing whitespace
#49307: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1255:
+                    0x001FFFFF, $

ERROR: trailing whitespace
#49308: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1256:
+                    0x03, $

ERROR: trailing whitespace
#49309: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1257:
+                    LNKD, $

ERROR: trailing whitespace
#49317: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1265:
+                    0xFFFF, $

ERROR: trailing whitespace
#49318: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1266:
+                    Zero, $

ERROR: trailing whitespace
#49319: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1267:
+                    GSIE, $

ERROR: trailing whitespace
#49321: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1269:
+                }, $

ERROR: trailing whitespace
#49325: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1273:
+                    0xFFFF, $

ERROR: trailing whitespace
#49326: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1274:
+                    One, $

ERROR: trailing whitespace
#49327: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1275:
+                    GSIF, $

ERROR: trailing whitespace
#49329: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1277:
+                }, $

ERROR: trailing whitespace
#49333: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1281:
+                    0xFFFF, $

ERROR: trailing whitespace
#49334: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1282:
+                    0x02, $

ERROR: trailing whitespace
#49335: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1283:
+                    GSIG, $

ERROR: trailing whitespace
#49337: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1285:
+                }, $

ERROR: trailing whitespace
#49341: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1289:
+                    0xFFFF, $

ERROR: trailing whitespace
#49342: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1290:
+                    0x03, $

ERROR: trailing whitespace
#49343: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1291:
+                    GSIH, $

ERROR: trailing whitespace
#49345: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1293:
+                }, $

ERROR: trailing whitespace
#49349: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1297:
+                    0x0001FFFF, $

ERROR: trailing whitespace
#49350: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1298:
+                    Zero, $

ERROR: trailing whitespace
#49351: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1299:
+                    GSIF, $

ERROR: trailing whitespace
#49353: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1301:
+                }, $

ERROR: trailing whitespace
#49357: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1305:
+                    0x0001FFFF, $

ERROR: trailing whitespace
#49358: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1306:
+                    One, $

ERROR: trailing whitespace
#49359: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1307:
+                    GSIG, $

ERROR: trailing whitespace
#49361: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1309:
+                }, $

ERROR: trailing whitespace
#49365: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1313:
+                    0x0001FFFF, $

ERROR: trailing whitespace
#49366: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1314:
+                    0x02, $

ERROR: trailing whitespace
#49367: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1315:
+                    GSIH, $

ERROR: trailing whitespace
#49369: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1317:
+                }, $

ERROR: trailing whitespace
#49373: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1321:
+                    0x0001FFFF, $

ERROR: trailing whitespace
#49374: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1322:
+                    0x03, $

ERROR: trailing whitespace
#49375: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1323:
+                    GSIE, $

ERROR: trailing whitespace
#49377: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1325:
+                }, $

ERROR: trailing whitespace
#49381: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1329:
+                    0x0002FFFF, $

ERROR: trailing whitespace
#49382: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1330:
+                    Zero, $

ERROR: trailing whitespace
#49383: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1331:
+                    GSIG, $

ERROR: trailing whitespace
#49385: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1333:
+                }, $

ERROR: trailing whitespace
#49389: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1337:
+                    0x0002FFFF, $

ERROR: trailing whitespace
#49390: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1338:
+                    One, $

ERROR: trailing whitespace
#49391: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1339:
+                    GSIH, $

ERROR: trailing whitespace
#49393: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1341:
+                }, $

ERROR: trailing whitespace
#49397: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1345:
+                    0x0002FFFF, $

ERROR: trailing whitespace
#49398: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1346:
+                    0x02, $

ERROR: trailing whitespace
#49399: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1347:
+                    GSIE, $

ERROR: trailing whitespace
#49401: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1349:
+                }, $

ERROR: trailing whitespace
#49405: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1353:
+                    0x0002FFFF, $

ERROR: trailing whitespace
#49406: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1354:
+                    0x03, $

ERROR: trailing whitespace
#49407: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1355:
+                    GSIF, $

ERROR: trailing whitespace
#49409: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1357:
+                }, $

ERROR: trailing whitespace
#49413: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1361:
+                    0x0003FFFF, $

ERROR: trailing whitespace
#49414: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1362:
+                    Zero, $

ERROR: trailing whitespace
#49415: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1363:
+                    GSIH, $

ERROR: trailing whitespace
#49417: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1365:
+                }, $

ERROR: trailing whitespace
#49421: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1369:
+                    0x0003FFFF, $

ERROR: trailing whitespace
#49422: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1370:
+                    One, $

ERROR: trailing whitespace
#49423: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1371:
+                    GSIE, $

ERROR: trailing whitespace
#49425: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1373:
+                }, $

ERROR: trailing whitespace
#49429: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1377:
+                    0x0003FFFF, $

ERROR: trailing whitespace
#49430: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1378:
+                    0x02, $

ERROR: trailing whitespace
#49431: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1379:
+                    GSIF, $

ERROR: trailing whitespace
#49433: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1381:
+                }, $

ERROR: trailing whitespace
#49437: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1385:
+                    0x0003FFFF, $

ERROR: trailing whitespace
#49438: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1386:
+                    0x03, $

ERROR: trailing whitespace
#49439: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1387:
+                    GSIG, $

ERROR: trailing whitespace
#49441: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1389:
+                }, $

ERROR: trailing whitespace
#49445: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1393:
+                    0x0004FFFF, $

ERROR: trailing whitespace
#49446: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1394:
+                    Zero, $

ERROR: trailing whitespace
#49447: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1395:
+                    GSIE, $

ERROR: trailing whitespace
#49449: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1397:
+                }, $

ERROR: trailing whitespace
#49453: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1401:
+                    0x0004FFFF, $

ERROR: trailing whitespace
#49454: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1402:
+                    One, $

ERROR: trailing whitespace
#49455: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1403:
+                    GSIF, $

ERROR: trailing whitespace
#49457: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1405:
+                }, $

ERROR: trailing whitespace
#49461: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1409:
+                    0x0004FFFF, $

ERROR: trailing whitespace
#49462: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1410:
+                    0x02, $

ERROR: trailing whitespace
#49463: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1411:
+                    GSIG, $

ERROR: trailing whitespace
#49465: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1413:
+                }, $

ERROR: trailing whitespace
#49469: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1417:
+                    0x0004FFFF, $

ERROR: trailing whitespace
#49470: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1418:
+                    0x03, $

ERROR: trailing whitespace
#49471: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1419:
+                    GSIH, $

ERROR: trailing whitespace
#49473: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1421:
+                }, $

ERROR: trailing whitespace
#49477: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1425:
+                    0x0005FFFF, $

ERROR: trailing whitespace
#49478: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1426:
+                    Zero, $

ERROR: trailing whitespace
#49479: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1427:
+                    GSIF, $

ERROR: trailing whitespace
#49481: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1429:
+                }, $

ERROR: trailing whitespace
#49485: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1433:
+                    0x0005FFFF, $

ERROR: trailing whitespace
#49486: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1434:
+                    One, $

ERROR: trailing whitespace
#49487: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1435:
+                    GSIG, $

ERROR: trailing whitespace
#49489: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1437:
+                }, $

ERROR: trailing whitespace
#49493: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1441:
+                    0x0005FFFF, $

ERROR: trailing whitespace
#49494: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1442:
+                    0x02, $

ERROR: trailing whitespace
#49495: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1443:
+                    GSIH, $

ERROR: trailing whitespace
#49497: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1445:
+                }, $

ERROR: trailing whitespace
#49501: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1449:
+                    0x0005FFFF, $

ERROR: trailing whitespace
#49502: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1450:
+                    0x03, $

ERROR: trailing whitespace
#49503: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1451:
+                    GSIE, $

ERROR: trailing whitespace
#49505: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1453:
+                }, $

ERROR: trailing whitespace
#49509: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1457:
+                    0x0006FFFF, $

ERROR: trailing whitespace
#49510: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1458:
+                    Zero, $

ERROR: trailing whitespace
#49511: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1459:
+                    GSIG, $

ERROR: trailing whitespace
#49513: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1461:
+                }, $

ERROR: trailing whitespace
#49517: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1465:
+                    0x0006FFFF, $

ERROR: trailing whitespace
#49518: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1466:
+                    One, $

ERROR: trailing whitespace
#49519: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1467:
+                    GSIH, $

ERROR: trailing whitespace
#49521: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1469:
+                }, $

ERROR: trailing whitespace
#49525: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1473:
+                    0x0006FFFF, $

ERROR: trailing whitespace
#49526: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1474:
+                    0x02, $

ERROR: trailing whitespace
#49527: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1475:
+                    GSIE, $

ERROR: trailing whitespace
#49529: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1477:
+                }, $

ERROR: trailing whitespace
#49533: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1481:
+                    0x0006FFFF, $

ERROR: trailing whitespace
#49534: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1482:
+                    0x03, $

ERROR: trailing whitespace
#49535: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1483:
+                    GSIF, $

ERROR: trailing whitespace
#49537: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1485:
+                }, $

ERROR: trailing whitespace
#49541: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1489:
+                    0x0007FFFF, $

ERROR: trailing whitespace
#49542: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1490:
+                    Zero, $

ERROR: trailing whitespace
#49543: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1491:
+                    GSIH, $

ERROR: trailing whitespace
#49545: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1493:
+                }, $

ERROR: trailing whitespace
#49549: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1497:
+                    0x0007FFFF, $

ERROR: trailing whitespace
#49550: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1498:
+                    One, $

ERROR: trailing whitespace
#49551: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1499:
+                    GSIE, $

ERROR: trailing whitespace
#49553: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1501:
+                }, $

ERROR: trailing whitespace
#49557: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1505:
+                    0x0007FFFF, $

ERROR: trailing whitespace
#49558: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1506:
+                    0x02, $

ERROR: trailing whitespace
#49559: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1507:
+                    GSIF, $

ERROR: trailing whitespace
#49561: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1509:
+                }, $

ERROR: trailing whitespace
#49565: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1513:
+                    0x0007FFFF, $

ERROR: trailing whitespace
#49566: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1514:
+                    0x03, $

ERROR: trailing whitespace
#49567: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1515:
+                    GSIG, $

ERROR: trailing whitespace
#49569: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1517:
+                }, $

ERROR: trailing whitespace
#49573: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1521:
+                    0x0008FFFF, $

ERROR: trailing whitespace
#49574: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1522:
+                    Zero, $

ERROR: trailing whitespace
#49575: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1523:
+                    GSIE, $

ERROR: trailing whitespace
#49577: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1525:
+                }, $

ERROR: trailing whitespace
#49581: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1529:
+                    0x0008FFFF, $

ERROR: trailing whitespace
#49582: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1530:
+                    One, $

ERROR: trailing whitespace
#49583: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1531:
+                    GSIF, $

ERROR: trailing whitespace
#49585: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1533:
+                }, $

ERROR: trailing whitespace
#49589: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1537:
+                    0x0008FFFF, $

ERROR: trailing whitespace
#49590: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1538:
+                    0x02, $

ERROR: trailing whitespace
#49591: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1539:
+                    GSIG, $

ERROR: trailing whitespace
#49593: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1541:
+                }, $

ERROR: trailing whitespace
#49597: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1545:
+                    0x0008FFFF, $

ERROR: trailing whitespace
#49598: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1546:
+                    0x03, $

ERROR: trailing whitespace
#49599: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1547:
+                    GSIH, $

ERROR: trailing whitespace
#49601: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1549:
+                }, $

ERROR: trailing whitespace
#49605: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1553:
+                    0x0009FFFF, $

ERROR: trailing whitespace
#49606: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1554:
+                    Zero, $

ERROR: trailing whitespace
#49607: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1555:
+                    GSIF, $

ERROR: trailing whitespace
#49609: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1557:
+                }, $

ERROR: trailing whitespace
#49613: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1561:
+                    0x0009FFFF, $

ERROR: trailing whitespace
#49614: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1562:
+                    One, $

ERROR: trailing whitespace
#49615: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1563:
+                    GSIG, $

ERROR: trailing whitespace
#49617: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1565:
+                }, $

ERROR: trailing whitespace
#49621: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1569:
+                    0x0009FFFF, $

ERROR: trailing whitespace
#49622: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1570:
+                    0x02, $

ERROR: trailing whitespace
#49623: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1571:
+                    GSIH, $

ERROR: trailing whitespace
#49625: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1573:
+                }, $

ERROR: trailing whitespace
#49629: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1577:
+                    0x0009FFFF, $

ERROR: trailing whitespace
#49630: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1578:
+                    0x03, $

ERROR: trailing whitespace
#49631: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1579:
+                    GSIE, $

ERROR: trailing whitespace
#49633: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1581:
+                }, $

ERROR: trailing whitespace
#49637: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1585:
+                    0x000AFFFF, $

ERROR: trailing whitespace
#49638: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1586:
+                    Zero, $

ERROR: trailing whitespace
#49639: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1587:
+                    GSIG, $

ERROR: trailing whitespace
#49641: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1589:
+                }, $

ERROR: trailing whitespace
#49645: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1593:
+                    0x000AFFFF, $

ERROR: trailing whitespace
#49646: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1594:
+                    One, $

ERROR: trailing whitespace
#49647: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1595:
+                    GSIH, $

ERROR: trailing whitespace
#49649: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1597:
+                }, $

ERROR: trailing whitespace
#49653: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1601:
+                    0x000AFFFF, $

ERROR: trailing whitespace
#49654: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1602:
+                    0x02, $

ERROR: trailing whitespace
#49655: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1603:
+                    GSIE, $

ERROR: trailing whitespace
#49657: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1605:
+                }, $

ERROR: trailing whitespace
#49661: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1609:
+                    0x000AFFFF, $

ERROR: trailing whitespace
#49662: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1610:
+                    0x03, $

ERROR: trailing whitespace
#49663: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1611:
+                    GSIF, $

ERROR: trailing whitespace
#49665: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1613:
+                }, $

ERROR: trailing whitespace
#49669: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1617:
+                    0x000BFFFF, $

ERROR: trailing whitespace
#49670: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1618:
+                    Zero, $

ERROR: trailing whitespace
#49671: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1619:
+                    GSIH, $

ERROR: trailing whitespace
#49673: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1621:
+                }, $

ERROR: trailing whitespace
#49677: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1625:
+                    0x000BFFFF, $

ERROR: trailing whitespace
#49678: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1626:
+                    One, $

ERROR: trailing whitespace
#49679: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1627:
+                    GSIE, $

ERROR: trailing whitespace
#49681: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1629:
+                }, $

ERROR: trailing whitespace
#49685: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1633:
+                    0x000BFFFF, $

ERROR: trailing whitespace
#49686: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1634:
+                    0x02, $

ERROR: trailing whitespace
#49687: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1635:
+                    GSIF, $

ERROR: trailing whitespace
#49689: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1637:
+                }, $

ERROR: trailing whitespace
#49693: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1641:
+                    0x000BFFFF, $

ERROR: trailing whitespace
#49694: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1642:
+                    0x03, $

ERROR: trailing whitespace
#49695: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1643:
+                    GSIG, $

ERROR: trailing whitespace
#49697: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1645:
+                }, $

ERROR: trailing whitespace
#49701: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1649:
+                    0x000CFFFF, $

ERROR: trailing whitespace
#49702: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1650:
+                    Zero, $

ERROR: trailing whitespace
#49703: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1651:
+                    GSIE, $

ERROR: trailing whitespace
#49705: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1653:
+                }, $

ERROR: trailing whitespace
#49709: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1657:
+                    0x000CFFFF, $

ERROR: trailing whitespace
#49710: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1658:
+                    One, $

ERROR: trailing whitespace
#49711: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1659:
+                    GSIF, $

ERROR: trailing whitespace
#49713: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1661:
+                }, $

ERROR: trailing whitespace
#49717: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1665:
+                    0x000CFFFF, $

ERROR: trailing whitespace
#49718: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1666:
+                    0x02, $

ERROR: trailing whitespace
#49719: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1667:
+                    GSIG, $

ERROR: trailing whitespace
#49721: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1669:
+                }, $

ERROR: trailing whitespace
#49725: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1673:
+                    0x000CFFFF, $

ERROR: trailing whitespace
#49726: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1674:
+                    0x03, $

ERROR: trailing whitespace
#49727: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1675:
+                    GSIH, $

ERROR: trailing whitespace
#49729: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1677:
+                }, $

ERROR: trailing whitespace
#49733: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1681:
+                    0x000DFFFF, $

ERROR: trailing whitespace
#49734: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1682:
+                    Zero, $

ERROR: trailing whitespace
#49735: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1683:
+                    GSIF, $

ERROR: trailing whitespace
#49737: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1685:
+                }, $

ERROR: trailing whitespace
#49741: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1689:
+                    0x000DFFFF, $

ERROR: trailing whitespace
#49742: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1690:
+                    One, $

ERROR: trailing whitespace
#49743: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1691:
+                    GSIG, $

ERROR: trailing whitespace
#49745: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1693:
+                }, $

ERROR: trailing whitespace
#49749: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1697:
+                    0x000DFFFF, $

ERROR: trailing whitespace
#49750: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1698:
+                    0x02, $

ERROR: trailing whitespace
#49751: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1699:
+                    GSIH, $

ERROR: trailing whitespace
#49753: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1701:
+                }, $

ERROR: trailing whitespace
#49757: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1705:
+                    0x000DFFFF, $

ERROR: trailing whitespace
#49758: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1706:
+                    0x03, $

ERROR: trailing whitespace
#49759: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1707:
+                    GSIE, $

ERROR: trailing whitespace
#49761: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1709:
+                }, $

ERROR: trailing whitespace
#49765: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1713:
+                    0x000EFFFF, $

ERROR: trailing whitespace
#49766: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1714:
+                    Zero, $

ERROR: trailing whitespace
#49767: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1715:
+                    GSIG, $

ERROR: trailing whitespace
#49769: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1717:
+                }, $

ERROR: trailing whitespace
#49773: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1721:
+                    0x000EFFFF, $

ERROR: trailing whitespace
#49774: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1722:
+                    One, $

ERROR: trailing whitespace
#49775: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1723:
+                    GSIH, $

ERROR: trailing whitespace
#49777: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1725:
+                }, $

ERROR: trailing whitespace
#49781: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1729:
+                    0x000EFFFF, $

ERROR: trailing whitespace
#49782: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1730:
+                    0x02, $

ERROR: trailing whitespace
#49783: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1731:
+                    GSIE, $

ERROR: trailing whitespace
#49785: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1733:
+                }, $

ERROR: trailing whitespace
#49789: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1737:
+                    0x000EFFFF, $

ERROR: trailing whitespace
#49790: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1738:
+                    0x03, $

ERROR: trailing whitespace
#49791: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1739:
+                    GSIF, $

ERROR: trailing whitespace
#49793: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1741:
+                }, $

ERROR: trailing whitespace
#49797: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1745:
+                    0x000FFFFF, $

ERROR: trailing whitespace
#49798: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1746:
+                    Zero, $

ERROR: trailing whitespace
#49799: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1747:
+                    GSIH, $

ERROR: trailing whitespace
#49801: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1749:
+                }, $

ERROR: trailing whitespace
#49805: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1753:
+                    0x000FFFFF, $

ERROR: trailing whitespace
#49806: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1754:
+                    One, $

ERROR: trailing whitespace
#49807: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1755:
+                    GSIE, $

ERROR: trailing whitespace
#49809: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1757:
+                }, $

ERROR: trailing whitespace
#49813: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1761:
+                    0x000FFFFF, $

ERROR: trailing whitespace
#49814: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1762:
+                    0x02, $

ERROR: trailing whitespace
#49815: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1763:
+                    GSIF, $

ERROR: trailing whitespace
#49817: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1765:
+                }, $

ERROR: trailing whitespace
#49821: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1769:
+                    0x000FFFFF, $

ERROR: trailing whitespace
#49822: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1770:
+                    0x03, $

ERROR: trailing whitespace
#49823: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1771:
+                    GSIG, $

ERROR: trailing whitespace
#49825: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1773:
+                }, $

ERROR: trailing whitespace
#49829: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1777:
+                    0x0010FFFF, $

ERROR: trailing whitespace
#49830: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1778:
+                    Zero, $

ERROR: trailing whitespace
#49831: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1779:
+                    GSIE, $

ERROR: trailing whitespace
#49833: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1781:
+                }, $

ERROR: trailing whitespace
#49837: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1785:
+                    0x0010FFFF, $

ERROR: trailing whitespace
#49838: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1786:
+                    One, $

ERROR: trailing whitespace
#49839: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1787:
+                    GSIF, $

ERROR: trailing whitespace
#49841: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1789:
+                }, $

ERROR: trailing whitespace
#49845: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1793:
+                    0x0010FFFF, $

ERROR: trailing whitespace
#49846: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1794:
+                    0x02, $

ERROR: trailing whitespace
#49847: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1795:
+                    GSIG, $

ERROR: trailing whitespace
#49849: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1797:
+                }, $

ERROR: trailing whitespace
#49853: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1801:
+                    0x0010FFFF, $

ERROR: trailing whitespace
#49854: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1802:
+                    0x03, $

ERROR: trailing whitespace
#49855: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1803:
+                    GSIH, $

ERROR: trailing whitespace
#49857: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1805:
+                }, $

ERROR: trailing whitespace
#49861: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1809:
+                    0x0011FFFF, $

ERROR: trailing whitespace
#49862: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1810:
+                    Zero, $

ERROR: trailing whitespace
#49863: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1811:
+                    GSIF, $

ERROR: trailing whitespace
#49865: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1813:
+                }, $

ERROR: trailing whitespace
#49869: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1817:
+                    0x0011FFFF, $

ERROR: trailing whitespace
#49870: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1818:
+                    One, $

ERROR: trailing whitespace
#49871: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1819:
+                    GSIG, $

ERROR: trailing whitespace
#49873: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1821:
+                }, $

ERROR: trailing whitespace
#49877: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1825:
+                    0x0011FFFF, $

ERROR: trailing whitespace
#49878: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1826:
+                    0x02, $

ERROR: trailing whitespace
#49879: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1827:
+                    GSIH, $

ERROR: trailing whitespace
#49881: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1829:
+                }, $

ERROR: trailing whitespace
#49885: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1833:
+                    0x0011FFFF, $

ERROR: trailing whitespace
#49886: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1834:
+                    0x03, $

ERROR: trailing whitespace
#49887: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1835:
+                    GSIE, $

ERROR: trailing whitespace
#49889: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1837:
+                }, $

ERROR: trailing whitespace
#49893: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1841:
+                    0x0012FFFF, $

ERROR: trailing whitespace
#49894: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1842:
+                    Zero, $

ERROR: trailing whitespace
#49895: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1843:
+                    GSIG, $

ERROR: trailing whitespace
#49897: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1845:
+                }, $

ERROR: trailing whitespace
#49901: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1849:
+                    0x0012FFFF, $

ERROR: trailing whitespace
#49902: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1850:
+                    One, $

ERROR: trailing whitespace
#49903: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1851:
+                    GSIH, $

ERROR: trailing whitespace
#49905: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1853:
+                }, $

ERROR: trailing whitespace
#49909: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1857:
+                    0x0012FFFF, $

ERROR: trailing whitespace
#49910: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1858:
+                    0x02, $

ERROR: trailing whitespace
#49911: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1859:
+                    GSIE, $

ERROR: trailing whitespace
#49913: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1861:
+                }, $

ERROR: trailing whitespace
#49917: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1865:
+                    0x0012FFFF, $

ERROR: trailing whitespace
#49918: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1866:
+                    0x03, $

ERROR: trailing whitespace
#49919: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1867:
+                    GSIF, $

ERROR: trailing whitespace
#49921: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1869:
+                }, $

ERROR: trailing whitespace
#49925: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1873:
+                    0x0013FFFF, $

ERROR: trailing whitespace
#49926: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1874:
+                    Zero, $

ERROR: trailing whitespace
#49927: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1875:
+                    GSIH, $

ERROR: trailing whitespace
#49929: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1877:
+                }, $

ERROR: trailing whitespace
#49933: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1881:
+                    0x0013FFFF, $

ERROR: trailing whitespace
#49934: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1882:
+                    One, $

ERROR: trailing whitespace
#49935: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1883:
+                    GSIE, $

ERROR: trailing whitespace
#49937: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1885:
+                }, $

ERROR: trailing whitespace
#49941: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1889:
+                    0x0013FFFF, $

ERROR: trailing whitespace
#49942: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1890:
+                    0x02, $

ERROR: trailing whitespace
#49943: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1891:
+                    GSIF, $

ERROR: trailing whitespace
#49945: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1893:
+                }, $

ERROR: trailing whitespace
#49949: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1897:
+                    0x0013FFFF, $

ERROR: trailing whitespace
#49950: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1898:
+                    0x03, $

ERROR: trailing whitespace
#49951: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1899:
+                    GSIG, $

ERROR: trailing whitespace
#49953: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1901:
+                }, $

ERROR: trailing whitespace
#49957: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1905:
+                    0x0014FFFF, $

ERROR: trailing whitespace
#49958: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1906:
+                    Zero, $

ERROR: trailing whitespace
#49959: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1907:
+                    GSIE, $

ERROR: trailing whitespace
#49961: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1909:
+                }, $

ERROR: trailing whitespace
#49965: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1913:
+                    0x0014FFFF, $

ERROR: trailing whitespace
#49966: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1914:
+                    One, $

ERROR: trailing whitespace
#49967: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1915:
+                    GSIF, $

ERROR: trailing whitespace
#49969: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1917:
+                }, $

ERROR: trailing whitespace
#49973: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1921:
+                    0x0014FFFF, $

ERROR: trailing whitespace
#49974: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1922:
+                    0x02, $

ERROR: trailing whitespace
#49975: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1923:
+                    GSIG, $

ERROR: trailing whitespace
#49977: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1925:
+                }, $

ERROR: trailing whitespace
#49981: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1929:
+                    0x0014FFFF, $

ERROR: trailing whitespace
#49982: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1930:
+                    0x03, $

ERROR: trailing whitespace
#49983: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1931:
+                    GSIH, $

ERROR: trailing whitespace
#49985: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1933:
+                }, $

ERROR: trailing whitespace
#49989: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1937:
+                    0x0015FFFF, $

ERROR: trailing whitespace
#49990: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1938:
+                    Zero, $

ERROR: trailing whitespace
#49991: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1939:
+                    GSIF, $

ERROR: trailing whitespace
#49993: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1941:
+                }, $

ERROR: trailing whitespace
#49997: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1945:
+                    0x0015FFFF, $

ERROR: trailing whitespace
#49998: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1946:
+                    One, $

ERROR: trailing whitespace
#49999: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1947:
+                    GSIG, $

ERROR: trailing whitespace
#50001: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1949:
+                }, $

ERROR: trailing whitespace
#50005: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1953:
+                    0x0015FFFF, $

ERROR: trailing whitespace
#50006: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1954:
+                    0x02, $

ERROR: trailing whitespace
#50007: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1955:
+                    GSIH, $

ERROR: trailing whitespace
#50009: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1957:
+                }, $

ERROR: trailing whitespace
#50013: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1961:
+                    0x0015FFFF, $

ERROR: trailing whitespace
#50014: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1962:
+                    0x03, $

ERROR: trailing whitespace
#50015: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1963:
+                    GSIE, $

ERROR: trailing whitespace
#50017: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1965:
+                }, $

ERROR: trailing whitespace
#50021: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1969:
+                    0x0016FFFF, $

ERROR: trailing whitespace
#50022: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1970:
+                    Zero, $

ERROR: trailing whitespace
#50023: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1971:
+                    GSIG, $

ERROR: trailing whitespace
#50025: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1973:
+                }, $

ERROR: trailing whitespace
#50029: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1977:
+                    0x0016FFFF, $

ERROR: trailing whitespace
#50030: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1978:
+                    One, $

ERROR: trailing whitespace
#50031: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1979:
+                    GSIH, $

ERROR: trailing whitespace
#50033: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1981:
+                }, $

ERROR: trailing whitespace
#50037: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1985:
+                    0x0016FFFF, $

ERROR: trailing whitespace
#50038: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1986:
+                    0x02, $

ERROR: trailing whitespace
#50039: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1987:
+                    GSIE, $

ERROR: trailing whitespace
#50041: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1989:
+                }, $

ERROR: trailing whitespace
#50045: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1993:
+                    0x0016FFFF, $

ERROR: trailing whitespace
#50046: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1994:
+                    0x03, $

ERROR: trailing whitespace
#50047: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1995:
+                    GSIF, $

ERROR: trailing whitespace
#50049: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:1997:
+                }, $

ERROR: trailing whitespace
#50053: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2001:
+                    0x0017FFFF, $

ERROR: trailing whitespace
#50054: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2002:
+                    Zero, $

ERROR: trailing whitespace
#50055: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2003:
+                    GSIH, $

ERROR: trailing whitespace
#50057: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2005:
+                }, $

ERROR: trailing whitespace
#50061: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2009:
+                    0x0017FFFF, $

ERROR: trailing whitespace
#50062: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2010:
+                    One, $

ERROR: trailing whitespace
#50063: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2011:
+                    GSIE, $

ERROR: trailing whitespace
#50065: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2013:
+                }, $

ERROR: trailing whitespace
#50069: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2017:
+                    0x0017FFFF, $

ERROR: trailing whitespace
#50070: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2018:
+                    0x02, $

ERROR: trailing whitespace
#50071: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2019:
+                    GSIF, $

ERROR: trailing whitespace
#50073: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2021:
+                }, $

ERROR: trailing whitespace
#50077: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2025:
+                    0x0017FFFF, $

ERROR: trailing whitespace
#50078: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2026:
+                    0x03, $

ERROR: trailing whitespace
#50079: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2027:
+                    GSIG, $

ERROR: trailing whitespace
#50081: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2029:
+                }, $

ERROR: trailing whitespace
#50085: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2033:
+                    0x0018FFFF, $

ERROR: trailing whitespace
#50086: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2034:
+                    Zero, $

ERROR: trailing whitespace
#50087: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2035:
+                    GSIE, $

ERROR: trailing whitespace
#50089: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2037:
+                }, $

ERROR: trailing whitespace
#50093: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2041:
+                    0x0018FFFF, $

ERROR: trailing whitespace
#50094: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2042:
+                    One, $

ERROR: trailing whitespace
#50095: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2043:
+                    GSIF, $

ERROR: trailing whitespace
#50097: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2045:
+                }, $

ERROR: trailing whitespace
#50101: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2049:
+                    0x0018FFFF, $

ERROR: trailing whitespace
#50102: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2050:
+                    0x02, $

ERROR: trailing whitespace
#50103: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2051:
+                    GSIG, $

ERROR: trailing whitespace
#50105: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2053:
+                }, $

ERROR: trailing whitespace
#50109: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2057:
+                    0x0018FFFF, $

ERROR: trailing whitespace
#50110: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2058:
+                    0x03, $

ERROR: trailing whitespace
#50111: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2059:
+                    GSIH, $

ERROR: trailing whitespace
#50113: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2061:
+                }, $

ERROR: trailing whitespace
#50117: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2065:
+                    0x0019FFFF, $

ERROR: trailing whitespace
#50118: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2066:
+                    Zero, $

ERROR: trailing whitespace
#50119: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2067:
+                    GSIA, $

ERROR: trailing whitespace
#50121: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2069:
+                }, $

ERROR: trailing whitespace
#50125: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2073:
+                    0x0019FFFF, $

ERROR: trailing whitespace
#50126: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2074:
+                    One, $

ERROR: trailing whitespace
#50127: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2075:
+                    GSIB, $

ERROR: trailing whitespace
#50129: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2077:
+                }, $

ERROR: trailing whitespace
#50133: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2081:
+                    0x0019FFFF, $

ERROR: trailing whitespace
#50134: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2082:
+                    0x02, $

ERROR: trailing whitespace
#50135: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2083:
+                    GSIC, $

ERROR: trailing whitespace
#50137: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2085:
+                }, $

ERROR: trailing whitespace
#50141: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2089:
+                    0x0019FFFF, $

ERROR: trailing whitespace
#50142: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2090:
+                    0x03, $

ERROR: trailing whitespace
#50143: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2091:
+                    GSID, $

ERROR: trailing whitespace
#50145: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2093:
+                }, $

ERROR: trailing whitespace
#50149: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2097:
+                    0x001AFFFF, $

ERROR: trailing whitespace
#50150: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2098:
+                    Zero, $

ERROR: trailing whitespace
#50151: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2099:
+                    GSIA, $

ERROR: trailing whitespace
#50153: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2101:
+                }, $

ERROR: trailing whitespace
#50157: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2105:
+                    0x001AFFFF, $

ERROR: trailing whitespace
#50158: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2106:
+                    One, $

ERROR: trailing whitespace
#50159: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2107:
+                    GSIB, $

ERROR: trailing whitespace
#50161: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2109:
+                }, $

ERROR: trailing whitespace
#50165: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2113:
+                    0x001AFFFF, $

ERROR: trailing whitespace
#50166: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2114:
+                    0x02, $

ERROR: trailing whitespace
#50167: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2115:
+                    GSIC, $

ERROR: trailing whitespace
#50169: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2117:
+                }, $

ERROR: trailing whitespace
#50173: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2121:
+                    0x001AFFFF, $

ERROR: trailing whitespace
#50174: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2122:
+                    0x03, $

ERROR: trailing whitespace
#50175: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2123:
+                    GSID, $

ERROR: trailing whitespace
#50177: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2125:
+                }, $

ERROR: trailing whitespace
#50181: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2129:
+                    0x001BFFFF, $

ERROR: trailing whitespace
#50182: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2130:
+                    Zero, $

ERROR: trailing whitespace
#50183: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2131:
+                    GSIA, $

ERROR: trailing whitespace
#50185: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2133:
+                }, $

ERROR: trailing whitespace
#50189: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2137:
+                    0x001BFFFF, $

ERROR: trailing whitespace
#50190: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2138:
+                    One, $

ERROR: trailing whitespace
#50191: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2139:
+                    GSIB, $

ERROR: trailing whitespace
#50193: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2141:
+                }, $

ERROR: trailing whitespace
#50197: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2145:
+                    0x001BFFFF, $

ERROR: trailing whitespace
#50198: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2146:
+                    0x02, $

ERROR: trailing whitespace
#50199: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2147:
+                    GSIC, $

ERROR: trailing whitespace
#50201: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2149:
+                }, $

ERROR: trailing whitespace
#50205: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2153:
+                    0x001BFFFF, $

ERROR: trailing whitespace
#50206: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2154:
+                    0x03, $

ERROR: trailing whitespace
#50207: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2155:
+                    GSID, $

ERROR: trailing whitespace
#50209: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2157:
+                }, $

ERROR: trailing whitespace
#50213: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2161:
+                    0x001CFFFF, $

ERROR: trailing whitespace
#50214: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2162:
+                    Zero, $

ERROR: trailing whitespace
#50215: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2163:
+                    GSIA, $

ERROR: trailing whitespace
#50217: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2165:
+                }, $

ERROR: trailing whitespace
#50221: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2169:
+                    0x001CFFFF, $

ERROR: trailing whitespace
#50222: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2170:
+                    One, $

ERROR: trailing whitespace
#50223: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2171:
+                    GSIB, $

ERROR: trailing whitespace
#50225: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2173:
+                }, $

ERROR: trailing whitespace
#50229: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2177:
+                    0x001CFFFF, $

ERROR: trailing whitespace
#50230: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2178:
+                    0x02, $

ERROR: trailing whitespace
#50231: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2179:
+                    GSIC, $

ERROR: trailing whitespace
#50233: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2181:
+                }, $

ERROR: trailing whitespace
#50237: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2185:
+                    0x001CFFFF, $

ERROR: trailing whitespace
#50238: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2186:
+                    0x03, $

ERROR: trailing whitespace
#50239: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2187:
+                    GSID, $

ERROR: trailing whitespace
#50241: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2189:
+                }, $

ERROR: trailing whitespace
#50245: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2193:
+                    0x001DFFFF, $

ERROR: trailing whitespace
#50246: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2194:
+                    Zero, $

ERROR: trailing whitespace
#50247: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2195:
+                    GSIA, $

ERROR: trailing whitespace
#50249: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2197:
+                }, $

ERROR: trailing whitespace
#50253: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2201:
+                    0x001DFFFF, $

ERROR: trailing whitespace
#50254: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2202:
+                    One, $

ERROR: trailing whitespace
#50255: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2203:
+                    GSIB, $

ERROR: trailing whitespace
#50257: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2205:
+                }, $

ERROR: trailing whitespace
#50261: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2209:
+                    0x001DFFFF, $

ERROR: trailing whitespace
#50262: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2210:
+                    0x02, $

ERROR: trailing whitespace
#50263: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2211:
+                    GSIC, $

ERROR: trailing whitespace
#50265: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2213:
+                }, $

ERROR: trailing whitespace
#50269: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2217:
+                    0x001DFFFF, $

ERROR: trailing whitespace
#50270: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2218:
+                    0x03, $

ERROR: trailing whitespace
#50271: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2219:
+                    GSID, $

ERROR: trailing whitespace
#50273: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2221:
+                }, $

ERROR: trailing whitespace
#50277: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2225:
+                    0x001EFFFF, $

ERROR: trailing whitespace
#50278: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2226:
+                    Zero, $

ERROR: trailing whitespace
#50279: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2227:
+                    GSIE, $

ERROR: trailing whitespace
#50281: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2229:
+                }, $

ERROR: trailing whitespace
#50285: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2233:
+                    0x001EFFFF, $

ERROR: trailing whitespace
#50286: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2234:
+                    One, $

ERROR: trailing whitespace
#50287: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2235:
+                    GSIF, $

ERROR: trailing whitespace
#50289: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2237:
+                }, $

ERROR: trailing whitespace
#50293: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2241:
+                    0x001EFFFF, $

ERROR: trailing whitespace
#50294: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2242:
+                    0x02, $

ERROR: trailing whitespace
#50295: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2243:
+                    GSIG, $

ERROR: trailing whitespace
#50297: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2245:
+                }, $

ERROR: trailing whitespace
#50301: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2249:
+                    0x001EFFFF, $

ERROR: trailing whitespace
#50302: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2250:
+                    0x03, $

ERROR: trailing whitespace
#50303: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2251:
+                    GSIH, $

ERROR: trailing whitespace
#50305: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2253:
+                }, $

ERROR: trailing whitespace
#50309: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2257:
+                    0x001FFFFF, $

ERROR: trailing whitespace
#50310: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2258:
+                    Zero, $

ERROR: trailing whitespace
#50311: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2259:
+                    GSIA, $

ERROR: trailing whitespace
#50313: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2261:
+                }, $

ERROR: trailing whitespace
#50317: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2265:
+                    0x001FFFFF, $

ERROR: trailing whitespace
#50318: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2266:
+                    One, $

ERROR: trailing whitespace
#50319: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2267:
+                    GSIB, $

ERROR: trailing whitespace
#50321: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2269:
+                }, $

ERROR: trailing whitespace
#50325: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2273:
+                    0x001FFFFF, $

ERROR: trailing whitespace
#50326: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2274:
+                    0x02, $

ERROR: trailing whitespace
#50327: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2275:
+                    GSIC, $

ERROR: trailing whitespace
#50329: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2277:
+                }, $

ERROR: trailing whitespace
#50333: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2281:
+                    0x001FFFFF, $

ERROR: trailing whitespace
#50334: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2282:
+                    0x03, $

ERROR: trailing whitespace
#50335: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2283:
+                    GSID, $

ERROR: trailing whitespace
#50354: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2302:
+            PRQA,   8, $

ERROR: trailing whitespace
#50355: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2303:
+            PRQB,   8, $

ERROR: trailing whitespace
#50356: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2304:
+            PRQC,   8, $

ERROR: trailing whitespace
#50357: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2305:
+            PRQD,   8, $

ERROR: trailing whitespace
#50358: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2306:
+            Offset (0x08), $

ERROR: trailing whitespace
#50359: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2307:
+            PRQE,   8, $

ERROR: trailing whitespace
#50360: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2308:
+            PRQF,   8, $

ERROR: trailing whitespace
#50361: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2309:
+            PRQG,   8, $

ERROR: trailing whitespace
#50913: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2861:
+                Offset (0x04), $

ERROR: trailing whitespace
#50914: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2862:
+                CPEN,   1, $

ERROR: trailing whitespace
#50915: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2863:
+                CINS,   1, $

ERROR: trailing whitespace
#50916: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2864:
+                CRMV,   1, $

ERROR: trailing whitespace
#50917: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2865:
+                CEJ0,   1, $

ERROR: trailing whitespace
#50918: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2866:
+                Offset (0x05), $

ERROR: trailing whitespace
#50924: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2872:
+                CSEL,   32, $

ERROR: trailing whitespace
#50925: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:2873:
+                Offset (0x08), $

ERROR: trailing whitespace
#51117: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:3065:
+            One, $

ERROR: trailing whitespace
#51118: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:3066:
+            One, $

ERROR: trailing whitespace
#51119: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:3067:
+            Zero, $

ERROR: trailing whitespace
#51124: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:3072:
+            0x02, $

ERROR: trailing whitespace
#51125: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:3073:
+            0x02, $

ERROR: trailing whitespace
#51126: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:3074:
+            Zero, $

ERROR: trailing whitespace
#51131: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:3079:
+            Zero, $

ERROR: trailing whitespace
#51132: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:3080:
+            Zero, $

ERROR: trailing whitespace
#51133: FILE: tests/data/acpi/q35/DSDT.numamem.dsl:3081:
+            Zero, $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/DSDT.tis and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/DSDT.tis.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/DSDT.tis.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#51204: FILE: tests/data/acpi/q35/DSDT.tis.dsl:5:
+ * $

ERROR: trailing whitespace
#51294: FILE: tests/data/acpi/q35/DSDT.tis.dsl:95:
+                VEND,   32, $

ERROR: trailing whitespace
#51438: FILE: tests/data/acpi/q35/DSDT.tis.dsl:239:
+                    0xFFFF, $

ERROR: trailing whitespace
#51439: FILE: tests/data/acpi/q35/DSDT.tis.dsl:240:
+                    Zero, $

ERROR: trailing whitespace
#51440: FILE: tests/data/acpi/q35/DSDT.tis.dsl:241:
+                    LNKE, $

ERROR: trailing whitespace
#51442: FILE: tests/data/acpi/q35/DSDT.tis.dsl:243:
+                }, $

ERROR: trailing whitespace
#51446: FILE: tests/data/acpi/q35/DSDT.tis.dsl:247:
+                    0xFFFF, $

ERROR: trailing whitespace
#51447: FILE: tests/data/acpi/q35/DSDT.tis.dsl:248:
+                    One, $

ERROR: trailing whitespace
#51448: FILE: tests/data/acpi/q35/DSDT.tis.dsl:249:
+                    LNKF, $

ERROR: trailing whitespace
#51450: FILE: tests/data/acpi/q35/DSDT.tis.dsl:251:
+                }, $

ERROR: trailing whitespace
#51454: FILE: tests/data/acpi/q35/DSDT.tis.dsl:255:
+                    0xFFFF, $

ERROR: trailing whitespace
#51455: FILE: tests/data/acpi/q35/DSDT.tis.dsl:256:
+                    0x02, $

ERROR: trailing whitespace
#51456: FILE: tests/data/acpi/q35/DSDT.tis.dsl:257:
+                    LNKG, $

ERROR: trailing whitespace
#51458: FILE: tests/data/acpi/q35/DSDT.tis.dsl:259:
+                }, $

ERROR: trailing whitespace
#51462: FILE: tests/data/acpi/q35/DSDT.tis.dsl:263:
+                    0xFFFF, $

ERROR: trailing whitespace
#51463: FILE: tests/data/acpi/q35/DSDT.tis.dsl:264:
+                    0x03, $

ERROR: trailing whitespace
#51464: FILE: tests/data/acpi/q35/DSDT.tis.dsl:265:
+                    LNKH, $

ERROR: trailing whitespace
#51466: FILE: tests/data/acpi/q35/DSDT.tis.dsl:267:
+                }, $

ERROR: trailing whitespace
#51470: FILE: tests/data/acpi/q35/DSDT.tis.dsl:271:
+                    0x0001FFFF, $

ERROR: trailing whitespace
#51471: FILE: tests/data/acpi/q35/DSDT.tis.dsl:272:
+                    Zero, $

ERROR: trailing whitespace
#51472: FILE: tests/data/acpi/q35/DSDT.tis.dsl:273:
+                    LNKF, $

ERROR: trailing whitespace
#51474: FILE: tests/data/acpi/q35/DSDT.tis.dsl:275:
+                }, $

ERROR: trailing whitespace
#51478: FILE: tests/data/acpi/q35/DSDT.tis.dsl:279:
+                    0x0001FFFF, $

ERROR: trailing whitespace
#51479: FILE: tests/data/acpi/q35/DSDT.tis.dsl:280:
+                    One, $

ERROR: trailing whitespace
#51480: FILE: tests/data/acpi/q35/DSDT.tis.dsl:281:
+                    LNKG, $

ERROR: trailing whitespace
#51482: FILE: tests/data/acpi/q35/DSDT.tis.dsl:283:
+                }, $

ERROR: trailing whitespace
#51486: FILE: tests/data/acpi/q35/DSDT.tis.dsl:287:
+                    0x0001FFFF, $

ERROR: trailing whitespace
#51487: FILE: tests/data/acpi/q35/DSDT.tis.dsl:288:
+                    0x02, $

ERROR: trailing whitespace
#51488: FILE: tests/data/acpi/q35/DSDT.tis.dsl:289:
+                    LNKH, $

ERROR: trailing whitespace
#51490: FILE: tests/data/acpi/q35/DSDT.tis.dsl:291:
+                }, $

ERROR: trailing whitespace
#51494: FILE: tests/data/acpi/q35/DSDT.tis.dsl:295:
+                    0x0001FFFF, $

ERROR: trailing whitespace
#51495: FILE: tests/data/acpi/q35/DSDT.tis.dsl:296:
+                    0x03, $

ERROR: trailing whitespace
#51496: FILE: tests/data/acpi/q35/DSDT.tis.dsl:297:
+                    LNKE, $

ERROR: trailing whitespace
#51498: FILE: tests/data/acpi/q35/DSDT.tis.dsl:299:
+                }, $

ERROR: trailing whitespace
#51502: FILE: tests/data/acpi/q35/DSDT.tis.dsl:303:
+                    0x0002FFFF, $

ERROR: trailing whitespace
#51503: FILE: tests/data/acpi/q35/DSDT.tis.dsl:304:
+                    Zero, $

ERROR: trailing whitespace
#51504: FILE: tests/data/acpi/q35/DSDT.tis.dsl:305:
+                    LNKG, $

ERROR: trailing whitespace
#51506: FILE: tests/data/acpi/q35/DSDT.tis.dsl:307:
+                }, $

ERROR: trailing whitespace
#51510: FILE: tests/data/acpi/q35/DSDT.tis.dsl:311:
+                    0x0002FFFF, $

ERROR: trailing whitespace
#51511: FILE: tests/data/acpi/q35/DSDT.tis.dsl:312:
+                    One, $

ERROR: trailing whitespace
#51512: FILE: tests/data/acpi/q35/DSDT.tis.dsl:313:
+                    LNKH, $

ERROR: trailing whitespace
#51514: FILE: tests/data/acpi/q35/DSDT.tis.dsl:315:
+                }, $

ERROR: trailing whitespace
#51518: FILE: tests/data/acpi/q35/DSDT.tis.dsl:319:
+                    0x0002FFFF, $

ERROR: trailing whitespace
#51519: FILE: tests/data/acpi/q35/DSDT.tis.dsl:320:
+                    0x02, $

ERROR: trailing whitespace
#51520: FILE: tests/data/acpi/q35/DSDT.tis.dsl:321:
+                    LNKE, $

ERROR: trailing whitespace
#51522: FILE: tests/data/acpi/q35/DSDT.tis.dsl:323:
+                }, $

ERROR: trailing whitespace
#51526: FILE: tests/data/acpi/q35/DSDT.tis.dsl:327:
+                    0x0002FFFF, $

ERROR: trailing whitespace
#51527: FILE: tests/data/acpi/q35/DSDT.tis.dsl:328:
+                    0x03, $

ERROR: trailing whitespace
#51528: FILE: tests/data/acpi/q35/DSDT.tis.dsl:329:
+                    LNKF, $

ERROR: trailing whitespace
#51530: FILE: tests/data/acpi/q35/DSDT.tis.dsl:331:
+                }, $

ERROR: trailing whitespace
#51534: FILE: tests/data/acpi/q35/DSDT.tis.dsl:335:
+                    0x0003FFFF, $

ERROR: trailing whitespace
#51535: FILE: tests/data/acpi/q35/DSDT.tis.dsl:336:
+                    Zero, $

ERROR: trailing whitespace
#51536: FILE: tests/data/acpi/q35/DSDT.tis.dsl:337:
+                    LNKH, $

ERROR: trailing whitespace
#51538: FILE: tests/data/acpi/q35/DSDT.tis.dsl:339:
+                }, $

ERROR: trailing whitespace
#51542: FILE: tests/data/acpi/q35/DSDT.tis.dsl:343:
+                    0x0003FFFF, $

ERROR: trailing whitespace
#51543: FILE: tests/data/acpi/q35/DSDT.tis.dsl:344:
+                    One, $

ERROR: trailing whitespace
#51544: FILE: tests/data/acpi/q35/DSDT.tis.dsl:345:
+                    LNKE, $

ERROR: trailing whitespace
#51546: FILE: tests/data/acpi/q35/DSDT.tis.dsl:347:
+                }, $

ERROR: trailing whitespace
#51550: FILE: tests/data/acpi/q35/DSDT.tis.dsl:351:
+                    0x0003FFFF, $

ERROR: trailing whitespace
#51551: FILE: tests/data/acpi/q35/DSDT.tis.dsl:352:
+                    0x02, $

ERROR: trailing whitespace
#51552: FILE: tests/data/acpi/q35/DSDT.tis.dsl:353:
+                    LNKF, $

ERROR: trailing whitespace
#51554: FILE: tests/data/acpi/q35/DSDT.tis.dsl:355:
+                }, $

ERROR: trailing whitespace
#51558: FILE: tests/data/acpi/q35/DSDT.tis.dsl:359:
+                    0x0003FFFF, $

ERROR: trailing whitespace
#51559: FILE: tests/data/acpi/q35/DSDT.tis.dsl:360:
+                    0x03, $

ERROR: trailing whitespace
#51560: FILE: tests/data/acpi/q35/DSDT.tis.dsl:361:
+                    LNKG, $

ERROR: trailing whitespace
#51562: FILE: tests/data/acpi/q35/DSDT.tis.dsl:363:
+                }, $

ERROR: trailing whitespace
#51566: FILE: tests/data/acpi/q35/DSDT.tis.dsl:367:
+                    0x0004FFFF, $

ERROR: trailing whitespace
#51567: FILE: tests/data/acpi/q35/DSDT.tis.dsl:368:
+                    Zero, $

ERROR: trailing whitespace
#51568: FILE: tests/data/acpi/q35/DSDT.tis.dsl:369:
+                    LNKE, $

ERROR: trailing whitespace
#51570: FILE: tests/data/acpi/q35/DSDT.tis.dsl:371:
+                }, $

ERROR: trailing whitespace
#51574: FILE: tests/data/acpi/q35/DSDT.tis.dsl:375:
+                    0x0004FFFF, $

ERROR: trailing whitespace
#51575: FILE: tests/data/acpi/q35/DSDT.tis.dsl:376:
+                    One, $

ERROR: trailing whitespace
#51576: FILE: tests/data/acpi/q35/DSDT.tis.dsl:377:
+                    LNKF, $

ERROR: trailing whitespace
#51578: FILE: tests/data/acpi/q35/DSDT.tis.dsl:379:
+                }, $

ERROR: trailing whitespace
#51582: FILE: tests/data/acpi/q35/DSDT.tis.dsl:383:
+                    0x0004FFFF, $

ERROR: trailing whitespace
#51583: FILE: tests/data/acpi/q35/DSDT.tis.dsl:384:
+                    0x02, $

ERROR: trailing whitespace
#51584: FILE: tests/data/acpi/q35/DSDT.tis.dsl:385:
+                    LNKG, $

ERROR: trailing whitespace
#51586: FILE: tests/data/acpi/q35/DSDT.tis.dsl:387:
+                }, $

ERROR: trailing whitespace
#51590: FILE: tests/data/acpi/q35/DSDT.tis.dsl:391:
+                    0x0004FFFF, $

ERROR: trailing whitespace
#51591: FILE: tests/data/acpi/q35/DSDT.tis.dsl:392:
+                    0x03, $

ERROR: trailing whitespace
#51592: FILE: tests/data/acpi/q35/DSDT.tis.dsl:393:
+                    LNKH, $

ERROR: trailing whitespace
#51594: FILE: tests/data/acpi/q35/DSDT.tis.dsl:395:
+                }, $

ERROR: trailing whitespace
#51598: FILE: tests/data/acpi/q35/DSDT.tis.dsl:399:
+                    0x0005FFFF, $

ERROR: trailing whitespace
#51599: FILE: tests/data/acpi/q35/DSDT.tis.dsl:400:
+                    Zero, $

ERROR: trailing whitespace
#51600: FILE: tests/data/acpi/q35/DSDT.tis.dsl:401:
+                    LNKF, $

ERROR: trailing whitespace
#51602: FILE: tests/data/acpi/q35/DSDT.tis.dsl:403:
+                }, $

ERROR: trailing whitespace
#51606: FILE: tests/data/acpi/q35/DSDT.tis.dsl:407:
+                    0x0005FFFF, $

ERROR: trailing whitespace
#51607: FILE: tests/data/acpi/q35/DSDT.tis.dsl:408:
+                    One, $

ERROR: trailing whitespace
#51608: FILE: tests/data/acpi/q35/DSDT.tis.dsl:409:
+                    LNKG, $

ERROR: trailing whitespace
#51610: FILE: tests/data/acpi/q35/DSDT.tis.dsl:411:
+                }, $

ERROR: trailing whitespace
#51614: FILE: tests/data/acpi/q35/DSDT.tis.dsl:415:
+                    0x0005FFFF, $

ERROR: trailing whitespace
#51615: FILE: tests/data/acpi/q35/DSDT.tis.dsl:416:
+                    0x02, $

ERROR: trailing whitespace
#51616: FILE: tests/data/acpi/q35/DSDT.tis.dsl:417:
+                    LNKH, $

ERROR: trailing whitespace
#51618: FILE: tests/data/acpi/q35/DSDT.tis.dsl:419:
+                }, $

ERROR: trailing whitespace
#51622: FILE: tests/data/acpi/q35/DSDT.tis.dsl:423:
+                    0x0005FFFF, $

ERROR: trailing whitespace
#51623: FILE: tests/data/acpi/q35/DSDT.tis.dsl:424:
+                    0x03, $

ERROR: trailing whitespace
#51624: FILE: tests/data/acpi/q35/DSDT.tis.dsl:425:
+                    LNKE, $

ERROR: trailing whitespace
#51626: FILE: tests/data/acpi/q35/DSDT.tis.dsl:427:
+                }, $

ERROR: trailing whitespace
#51630: FILE: tests/data/acpi/q35/DSDT.tis.dsl:431:
+                    0x0006FFFF, $

ERROR: trailing whitespace
#51631: FILE: tests/data/acpi/q35/DSDT.tis.dsl:432:
+                    Zero, $

ERROR: trailing whitespace
#51632: FILE: tests/data/acpi/q35/DSDT.tis.dsl:433:
+                    LNKG, $

ERROR: trailing whitespace
#51634: FILE: tests/data/acpi/q35/DSDT.tis.dsl:435:
+                }, $

ERROR: trailing whitespace
#51638: FILE: tests/data/acpi/q35/DSDT.tis.dsl:439:
+                    0x0006FFFF, $

ERROR: trailing whitespace
#51639: FILE: tests/data/acpi/q35/DSDT.tis.dsl:440:
+                    One, $

ERROR: trailing whitespace
#51640: FILE: tests/data/acpi/q35/DSDT.tis.dsl:441:
+                    LNKH, $

ERROR: trailing whitespace
#51642: FILE: tests/data/acpi/q35/DSDT.tis.dsl:443:
+                }, $

ERROR: trailing whitespace
#51646: FILE: tests/data/acpi/q35/DSDT.tis.dsl:447:
+                    0x0006FFFF, $

ERROR: trailing whitespace
#51647: FILE: tests/data/acpi/q35/DSDT.tis.dsl:448:
+                    0x02, $

ERROR: trailing whitespace
#51648: FILE: tests/data/acpi/q35/DSDT.tis.dsl:449:
+                    LNKE, $

ERROR: trailing whitespace
#51650: FILE: tests/data/acpi/q35/DSDT.tis.dsl:451:
+                }, $

ERROR: trailing whitespace
#51654: FILE: tests/data/acpi/q35/DSDT.tis.dsl:455:
+                    0x0006FFFF, $

ERROR: trailing whitespace
#51655: FILE: tests/data/acpi/q35/DSDT.tis.dsl:456:
+                    0x03, $

ERROR: trailing whitespace
#51656: FILE: tests/data/acpi/q35/DSDT.tis.dsl:457:
+                    LNKF, $

ERROR: trailing whitespace
#51658: FILE: tests/data/acpi/q35/DSDT.tis.dsl:459:
+                }, $

ERROR: trailing whitespace
#51662: FILE: tests/data/acpi/q35/DSDT.tis.dsl:463:
+                    0x0007FFFF, $

ERROR: trailing whitespace
#51663: FILE: tests/data/acpi/q35/DSDT.tis.dsl:464:
+                    Zero, $

ERROR: trailing whitespace
#51664: FILE: tests/data/acpi/q35/DSDT.tis.dsl:465:
+                    LNKH, $

ERROR: trailing whitespace
#51666: FILE: tests/data/acpi/q35/DSDT.tis.dsl:467:
+                }, $

ERROR: trailing whitespace
#51670: FILE: tests/data/acpi/q35/DSDT.tis.dsl:471:
+                    0x0007FFFF, $

ERROR: trailing whitespace
#51671: FILE: tests/data/acpi/q35/DSDT.tis.dsl:472:
+                    One, $

ERROR: trailing whitespace
#51672: FILE: tests/data/acpi/q35/DSDT.tis.dsl:473:
+                    LNKE, $

ERROR: trailing whitespace
#51674: FILE: tests/data/acpi/q35/DSDT.tis.dsl:475:
+                }, $

ERROR: trailing whitespace
#51678: FILE: tests/data/acpi/q35/DSDT.tis.dsl:479:
+                    0x0007FFFF, $

ERROR: trailing whitespace
#51679: FILE: tests/data/acpi/q35/DSDT.tis.dsl:480:
+                    0x02, $

ERROR: trailing whitespace
#51680: FILE: tests/data/acpi/q35/DSDT.tis.dsl:481:
+                    LNKF, $

ERROR: trailing whitespace
#51682: FILE: tests/data/acpi/q35/DSDT.tis.dsl:483:
+                }, $

ERROR: trailing whitespace
#51686: FILE: tests/data/acpi/q35/DSDT.tis.dsl:487:
+                    0x0007FFFF, $

ERROR: trailing whitespace
#51687: FILE: tests/data/acpi/q35/DSDT.tis.dsl:488:
+                    0x03, $

ERROR: trailing whitespace
#51688: FILE: tests/data/acpi/q35/DSDT.tis.dsl:489:
+                    LNKG, $

ERROR: trailing whitespace
#51690: FILE: tests/data/acpi/q35/DSDT.tis.dsl:491:
+                }, $

ERROR: trailing whitespace
#51694: FILE: tests/data/acpi/q35/DSDT.tis.dsl:495:
+                    0x0008FFFF, $

ERROR: trailing whitespace
#51695: FILE: tests/data/acpi/q35/DSDT.tis.dsl:496:
+                    Zero, $

ERROR: trailing whitespace
#51696: FILE: tests/data/acpi/q35/DSDT.tis.dsl:497:
+                    LNKE, $

ERROR: trailing whitespace
#51698: FILE: tests/data/acpi/q35/DSDT.tis.dsl:499:
+                }, $

ERROR: trailing whitespace
#51702: FILE: tests/data/acpi/q35/DSDT.tis.dsl:503:
+                    0x0008FFFF, $

ERROR: trailing whitespace
#51703: FILE: tests/data/acpi/q35/DSDT.tis.dsl:504:
+                    One, $

ERROR: trailing whitespace
#51704: FILE: tests/data/acpi/q35/DSDT.tis.dsl:505:
+                    LNKF, $

ERROR: trailing whitespace
#51706: FILE: tests/data/acpi/q35/DSDT.tis.dsl:507:
+                }, $

ERROR: trailing whitespace
#51710: FILE: tests/data/acpi/q35/DSDT.tis.dsl:511:
+                    0x0008FFFF, $

ERROR: trailing whitespace
#51711: FILE: tests/data/acpi/q35/DSDT.tis.dsl:512:
+                    0x02, $

ERROR: trailing whitespace
#51712: FILE: tests/data/acpi/q35/DSDT.tis.dsl:513:
+                    LNKG, $

ERROR: trailing whitespace
#51714: FILE: tests/data/acpi/q35/DSDT.tis.dsl:515:
+                }, $

ERROR: trailing whitespace
#51718: FILE: tests/data/acpi/q35/DSDT.tis.dsl:519:
+                    0x0008FFFF, $

ERROR: trailing whitespace
#51719: FILE: tests/data/acpi/q35/DSDT.tis.dsl:520:
+                    0x03, $

ERROR: trailing whitespace
#51720: FILE: tests/data/acpi/q35/DSDT.tis.dsl:521:
+                    LNKH, $

ERROR: trailing whitespace
#51722: FILE: tests/data/acpi/q35/DSDT.tis.dsl:523:
+                }, $

ERROR: trailing whitespace
#51726: FILE: tests/data/acpi/q35/DSDT.tis.dsl:527:
+                    0x0009FFFF, $

ERROR: trailing whitespace
#51727: FILE: tests/data/acpi/q35/DSDT.tis.dsl:528:
+                    Zero, $

ERROR: trailing whitespace
#51728: FILE: tests/data/acpi/q35/DSDT.tis.dsl:529:
+                    LNKF, $

ERROR: trailing whitespace
#51730: FILE: tests/data/acpi/q35/DSDT.tis.dsl:531:
+                }, $

ERROR: trailing whitespace
#51734: FILE: tests/data/acpi/q35/DSDT.tis.dsl:535:
+                    0x0009FFFF, $

ERROR: trailing whitespace
#51735: FILE: tests/data/acpi/q35/DSDT.tis.dsl:536:
+                    One, $

ERROR: trailing whitespace
#51736: FILE: tests/data/acpi/q35/DSDT.tis.dsl:537:
+                    LNKG, $

ERROR: trailing whitespace
#51738: FILE: tests/data/acpi/q35/DSDT.tis.dsl:539:
+                }, $

ERROR: trailing whitespace
#51742: FILE: tests/data/acpi/q35/DSDT.tis.dsl:543:
+                    0x0009FFFF, $

ERROR: trailing whitespace
#51743: FILE: tests/data/acpi/q35/DSDT.tis.dsl:544:
+                    0x02, $

ERROR: trailing whitespace
#51744: FILE: tests/data/acpi/q35/DSDT.tis.dsl:545:
+                    LNKH, $

ERROR: trailing whitespace
#51746: FILE: tests/data/acpi/q35/DSDT.tis.dsl:547:
+                }, $

ERROR: trailing whitespace
#51750: FILE: tests/data/acpi/q35/DSDT.tis.dsl:551:
+                    0x0009FFFF, $

ERROR: trailing whitespace
#51751: FILE: tests/data/acpi/q35/DSDT.tis.dsl:552:
+                    0x03, $

ERROR: trailing whitespace
#51752: FILE: tests/data/acpi/q35/DSDT.tis.dsl:553:
+                    LNKE, $

ERROR: trailing whitespace
#51754: FILE: tests/data/acpi/q35/DSDT.tis.dsl:555:
+                }, $

ERROR: trailing whitespace
#51758: FILE: tests/data/acpi/q35/DSDT.tis.dsl:559:
+                    0x000AFFFF, $

ERROR: trailing whitespace
#51759: FILE: tests/data/acpi/q35/DSDT.tis.dsl:560:
+                    Zero, $

ERROR: trailing whitespace
#51760: FILE: tests/data/acpi/q35/DSDT.tis.dsl:561:
+                    LNKG, $

ERROR: trailing whitespace
#51762: FILE: tests/data/acpi/q35/DSDT.tis.dsl:563:
+                }, $

ERROR: trailing whitespace
#51766: FILE: tests/data/acpi/q35/DSDT.tis.dsl:567:
+                    0x000AFFFF, $

ERROR: trailing whitespace
#51767: FILE: tests/data/acpi/q35/DSDT.tis.dsl:568:
+                    One, $

ERROR: trailing whitespace
#51768: FILE: tests/data/acpi/q35/DSDT.tis.dsl:569:
+                    LNKH, $

ERROR: trailing whitespace
#51770: FILE: tests/data/acpi/q35/DSDT.tis.dsl:571:
+                }, $

ERROR: trailing whitespace
#51774: FILE: tests/data/acpi/q35/DSDT.tis.dsl:575:
+                    0x000AFFFF, $

ERROR: trailing whitespace
#51775: FILE: tests/data/acpi/q35/DSDT.tis.dsl:576:
+                    0x02, $

ERROR: trailing whitespace
#51776: FILE: tests/data/acpi/q35/DSDT.tis.dsl:577:
+                    LNKE, $

ERROR: trailing whitespace
#51778: FILE: tests/data/acpi/q35/DSDT.tis.dsl:579:
+                }, $

ERROR: trailing whitespace
#51782: FILE: tests/data/acpi/q35/DSDT.tis.dsl:583:
+                    0x000AFFFF, $

ERROR: trailing whitespace
#51783: FILE: tests/data/acpi/q35/DSDT.tis.dsl:584:
+                    0x03, $

ERROR: trailing whitespace
#51784: FILE: tests/data/acpi/q35/DSDT.tis.dsl:585:
+                    LNKF, $

ERROR: trailing whitespace
#51786: FILE: tests/data/acpi/q35/DSDT.tis.dsl:587:
+                }, $

ERROR: trailing whitespace
#51790: FILE: tests/data/acpi/q35/DSDT.tis.dsl:591:
+                    0x000BFFFF, $

ERROR: trailing whitespace
#51791: FILE: tests/data/acpi/q35/DSDT.tis.dsl:592:
+                    Zero, $

ERROR: trailing whitespace
#51792: FILE: tests/data/acpi/q35/DSDT.tis.dsl:593:
+                    LNKH, $

ERROR: trailing whitespace
#51794: FILE: tests/data/acpi/q35/DSDT.tis.dsl:595:
+                }, $

ERROR: trailing whitespace
#51798: FILE: tests/data/acpi/q35/DSDT.tis.dsl:599:
+                    0x000BFFFF, $

ERROR: trailing whitespace
#51799: FILE: tests/data/acpi/q35/DSDT.tis.dsl:600:
+                    One, $

ERROR: trailing whitespace
#51800: FILE: tests/data/acpi/q35/DSDT.tis.dsl:601:
+                    LNKE, $

ERROR: trailing whitespace
#51802: FILE: tests/data/acpi/q35/DSDT.tis.dsl:603:
+                }, $

ERROR: trailing whitespace
#51806: FILE: tests/data/acpi/q35/DSDT.tis.dsl:607:
+                    0x000BFFFF, $

ERROR: trailing whitespace
#51807: FILE: tests/data/acpi/q35/DSDT.tis.dsl:608:
+                    0x02, $

ERROR: trailing whitespace
#51808: FILE: tests/data/acpi/q35/DSDT.tis.dsl:609:
+                    LNKF, $

ERROR: trailing whitespace
#51810: FILE: tests/data/acpi/q35/DSDT.tis.dsl:611:
+                }, $

ERROR: trailing whitespace
#51814: FILE: tests/data/acpi/q35/DSDT.tis.dsl:615:
+                    0x000BFFFF, $

ERROR: trailing whitespace
#51815: FILE: tests/data/acpi/q35/DSDT.tis.dsl:616:
+                    0x03, $

ERROR: trailing whitespace
#51816: FILE: tests/data/acpi/q35/DSDT.tis.dsl:617:
+                    LNKG, $

ERROR: trailing whitespace
#51818: FILE: tests/data/acpi/q35/DSDT.tis.dsl:619:
+                }, $

ERROR: trailing whitespace
#51822: FILE: tests/data/acpi/q35/DSDT.tis.dsl:623:
+                    0x000CFFFF, $

ERROR: trailing whitespace
#51823: FILE: tests/data/acpi/q35/DSDT.tis.dsl:624:
+                    Zero, $

ERROR: trailing whitespace
#51824: FILE: tests/data/acpi/q35/DSDT.tis.dsl:625:
+                    LNKE, $

ERROR: trailing whitespace
#51826: FILE: tests/data/acpi/q35/DSDT.tis.dsl:627:
+                }, $

ERROR: trailing whitespace
#51830: FILE: tests/data/acpi/q35/DSDT.tis.dsl:631:
+                    0x000CFFFF, $

ERROR: trailing whitespace
#51831: FILE: tests/data/acpi/q35/DSDT.tis.dsl:632:
+                    One, $

ERROR: trailing whitespace
#51832: FILE: tests/data/acpi/q35/DSDT.tis.dsl:633:
+                    LNKF, $

ERROR: trailing whitespace
#51834: FILE: tests/data/acpi/q35/DSDT.tis.dsl:635:
+                }, $

ERROR: trailing whitespace
#51838: FILE: tests/data/acpi/q35/DSDT.tis.dsl:639:
+                    0x000CFFFF, $

ERROR: trailing whitespace
#51839: FILE: tests/data/acpi/q35/DSDT.tis.dsl:640:
+                    0x02, $

ERROR: trailing whitespace
#51840: FILE: tests/data/acpi/q35/DSDT.tis.dsl:641:
+                    LNKG, $

ERROR: trailing whitespace
#51842: FILE: tests/data/acpi/q35/DSDT.tis.dsl:643:
+                }, $

ERROR: trailing whitespace
#51846: FILE: tests/data/acpi/q35/DSDT.tis.dsl:647:
+                    0x000CFFFF, $

ERROR: trailing whitespace
#51847: FILE: tests/data/acpi/q35/DSDT.tis.dsl:648:
+                    0x03, $

ERROR: trailing whitespace
#51848: FILE: tests/data/acpi/q35/DSDT.tis.dsl:649:
+                    LNKH, $

ERROR: trailing whitespace
#51850: FILE: tests/data/acpi/q35/DSDT.tis.dsl:651:
+                }, $

ERROR: trailing whitespace
#51854: FILE: tests/data/acpi/q35/DSDT.tis.dsl:655:
+                    0x000DFFFF, $

ERROR: trailing whitespace
#51855: FILE: tests/data/acpi/q35/DSDT.tis.dsl:656:
+                    Zero, $

ERROR: trailing whitespace
#51856: FILE: tests/data/acpi/q35/DSDT.tis.dsl:657:
+                    LNKF, $

ERROR: trailing whitespace
#51858: FILE: tests/data/acpi/q35/DSDT.tis.dsl:659:
+                }, $

ERROR: trailing whitespace
#51862: FILE: tests/data/acpi/q35/DSDT.tis.dsl:663:
+                    0x000DFFFF, $

ERROR: trailing whitespace
#51863: FILE: tests/data/acpi/q35/DSDT.tis.dsl:664:
+                    One, $

ERROR: trailing whitespace
#51864: FILE: tests/data/acpi/q35/DSDT.tis.dsl:665:
+                    LNKG, $

ERROR: trailing whitespace
#51866: FILE: tests/data/acpi/q35/DSDT.tis.dsl:667:
+                }, $

ERROR: trailing whitespace
#51870: FILE: tests/data/acpi/q35/DSDT.tis.dsl:671:
+                    0x000DFFFF, $

ERROR: trailing whitespace
#51871: FILE: tests/data/acpi/q35/DSDT.tis.dsl:672:
+                    0x02, $

ERROR: trailing whitespace
#51872: FILE: tests/data/acpi/q35/DSDT.tis.dsl:673:
+                    LNKH, $

ERROR: trailing whitespace
#51874: FILE: tests/data/acpi/q35/DSDT.tis.dsl:675:
+                }, $

ERROR: trailing whitespace
#51878: FILE: tests/data/acpi/q35/DSDT.tis.dsl:679:
+                    0x000DFFFF, $

ERROR: trailing whitespace
#51879: FILE: tests/data/acpi/q35/DSDT.tis.dsl:680:
+                    0x03, $

ERROR: trailing whitespace
#51880: FILE: tests/data/acpi/q35/DSDT.tis.dsl:681:
+                    LNKE, $

ERROR: trailing whitespace
#51882: FILE: tests/data/acpi/q35/DSDT.tis.dsl:683:
+                }, $

ERROR: trailing whitespace
#51886: FILE: tests/data/acpi/q35/DSDT.tis.dsl:687:
+                    0x000EFFFF, $

ERROR: trailing whitespace
#51887: FILE: tests/data/acpi/q35/DSDT.tis.dsl:688:
+                    Zero, $

ERROR: trailing whitespace
#51888: FILE: tests/data/acpi/q35/DSDT.tis.dsl:689:
+                    LNKG, $

ERROR: trailing whitespace
#51890: FILE: tests/data/acpi/q35/DSDT.tis.dsl:691:
+                }, $

ERROR: trailing whitespace
#51894: FILE: tests/data/acpi/q35/DSDT.tis.dsl:695:
+                    0x000EFFFF, $

ERROR: trailing whitespace
#51895: FILE: tests/data/acpi/q35/DSDT.tis.dsl:696:
+                    One, $

ERROR: trailing whitespace
#51896: FILE: tests/data/acpi/q35/DSDT.tis.dsl:697:
+                    LNKH, $

ERROR: trailing whitespace
#51898: FILE: tests/data/acpi/q35/DSDT.tis.dsl:699:
+                }, $

ERROR: trailing whitespace
#51902: FILE: tests/data/acpi/q35/DSDT.tis.dsl:703:
+                    0x000EFFFF, $

ERROR: trailing whitespace
#51903: FILE: tests/data/acpi/q35/DSDT.tis.dsl:704:
+                    0x02, $

ERROR: trailing whitespace
#51904: FILE: tests/data/acpi/q35/DSDT.tis.dsl:705:
+                    LNKE, $

ERROR: trailing whitespace
#51906: FILE: tests/data/acpi/q35/DSDT.tis.dsl:707:
+                }, $

ERROR: trailing whitespace
#51910: FILE: tests/data/acpi/q35/DSDT.tis.dsl:711:
+                    0x000EFFFF, $

ERROR: trailing whitespace
#51911: FILE: tests/data/acpi/q35/DSDT.tis.dsl:712:
+                    0x03, $

ERROR: trailing whitespace
#51912: FILE: tests/data/acpi/q35/DSDT.tis.dsl:713:
+                    LNKF, $

ERROR: trailing whitespace
#51914: FILE: tests/data/acpi/q35/DSDT.tis.dsl:715:
+                }, $

ERROR: trailing whitespace
#51918: FILE: tests/data/acpi/q35/DSDT.tis.dsl:719:
+                    0x000FFFFF, $

ERROR: trailing whitespace
#51919: FILE: tests/data/acpi/q35/DSDT.tis.dsl:720:
+                    Zero, $

ERROR: trailing whitespace
#51920: FILE: tests/data/acpi/q35/DSDT.tis.dsl:721:
+                    LNKH, $

ERROR: trailing whitespace
#51922: FILE: tests/data/acpi/q35/DSDT.tis.dsl:723:
+                }, $

ERROR: trailing whitespace
#51926: FILE: tests/data/acpi/q35/DSDT.tis.dsl:727:
+                    0x000FFFFF, $

ERROR: trailing whitespace
#51927: FILE: tests/data/acpi/q35/DSDT.tis.dsl:728:
+                    One, $

ERROR: trailing whitespace
#51928: FILE: tests/data/acpi/q35/DSDT.tis.dsl:729:
+                    LNKE, $

ERROR: trailing whitespace
#51930: FILE: tests/data/acpi/q35/DSDT.tis.dsl:731:
+                }, $

ERROR: trailing whitespace
#51934: FILE: tests/data/acpi/q35/DSDT.tis.dsl:735:
+                    0x000FFFFF, $

ERROR: trailing whitespace
#51935: FILE: tests/data/acpi/q35/DSDT.tis.dsl:736:
+                    0x02, $

ERROR: trailing whitespace
#51936: FILE: tests/data/acpi/q35/DSDT.tis.dsl:737:
+                    LNKF, $

ERROR: trailing whitespace
#51938: FILE: tests/data/acpi/q35/DSDT.tis.dsl:739:
+                }, $

ERROR: trailing whitespace
#51942: FILE: tests/data/acpi/q35/DSDT.tis.dsl:743:
+                    0x000FFFFF, $

ERROR: trailing whitespace
#51943: FILE: tests/data/acpi/q35/DSDT.tis.dsl:744:
+                    0x03, $

ERROR: trailing whitespace
#51944: FILE: tests/data/acpi/q35/DSDT.tis.dsl:745:
+                    LNKG, $

ERROR: trailing whitespace
#51946: FILE: tests/data/acpi/q35/DSDT.tis.dsl:747:
+                }, $

ERROR: trailing whitespace
#51950: FILE: tests/data/acpi/q35/DSDT.tis.dsl:751:
+                    0x0010FFFF, $

ERROR: trailing whitespace
#51951: FILE: tests/data/acpi/q35/DSDT.tis.dsl:752:
+                    Zero, $

ERROR: trailing whitespace
#51952: FILE: tests/data/acpi/q35/DSDT.tis.dsl:753:
+                    LNKE, $

ERROR: trailing whitespace
#51954: FILE: tests/data/acpi/q35/DSDT.tis.dsl:755:
+                }, $

ERROR: trailing whitespace
#51958: FILE: tests/data/acpi/q35/DSDT.tis.dsl:759:
+                    0x0010FFFF, $

ERROR: trailing whitespace
#51959: FILE: tests/data/acpi/q35/DSDT.tis.dsl:760:
+                    One, $

ERROR: trailing whitespace
#51960: FILE: tests/data/acpi/q35/DSDT.tis.dsl:761:
+                    LNKF, $

ERROR: trailing whitespace
#51962: FILE: tests/data/acpi/q35/DSDT.tis.dsl:763:
+                }, $

ERROR: trailing whitespace
#51966: FILE: tests/data/acpi/q35/DSDT.tis.dsl:767:
+                    0x0010FFFF, $

ERROR: trailing whitespace
#51967: FILE: tests/data/acpi/q35/DSDT.tis.dsl:768:
+                    0x02, $

ERROR: trailing whitespace
#51968: FILE: tests/data/acpi/q35/DSDT.tis.dsl:769:
+                    LNKG, $

ERROR: trailing whitespace
#51970: FILE: tests/data/acpi/q35/DSDT.tis.dsl:771:
+                }, $

ERROR: trailing whitespace
#51974: FILE: tests/data/acpi/q35/DSDT.tis.dsl:775:
+                    0x0010FFFF, $

ERROR: trailing whitespace
#51975: FILE: tests/data/acpi/q35/DSDT.tis.dsl:776:
+                    0x03, $

ERROR: trailing whitespace
#51976: FILE: tests/data/acpi/q35/DSDT.tis.dsl:777:
+                    LNKH, $

ERROR: trailing whitespace
#51978: FILE: tests/data/acpi/q35/DSDT.tis.dsl:779:
+                }, $

ERROR: trailing whitespace
#51982: FILE: tests/data/acpi/q35/DSDT.tis.dsl:783:
+                    0x0011FFFF, $

ERROR: trailing whitespace
#51983: FILE: tests/data/acpi/q35/DSDT.tis.dsl:784:
+                    Zero, $

ERROR: trailing whitespace
#51984: FILE: tests/data/acpi/q35/DSDT.tis.dsl:785:
+                    LNKF, $

ERROR: trailing whitespace
#51986: FILE: tests/data/acpi/q35/DSDT.tis.dsl:787:
+                }, $

ERROR: trailing whitespace
#51990: FILE: tests/data/acpi/q35/DSDT.tis.dsl:791:
+                    0x0011FFFF, $

ERROR: trailing whitespace
#51991: FILE: tests/data/acpi/q35/DSDT.tis.dsl:792:
+                    One, $

ERROR: trailing whitespace
#51992: FILE: tests/data/acpi/q35/DSDT.tis.dsl:793:
+                    LNKG, $

ERROR: trailing whitespace
#51994: FILE: tests/data/acpi/q35/DSDT.tis.dsl:795:
+                }, $

ERROR: trailing whitespace
#51998: FILE: tests/data/acpi/q35/DSDT.tis.dsl:799:
+                    0x0011FFFF, $

ERROR: trailing whitespace
#51999: FILE: tests/data/acpi/q35/DSDT.tis.dsl:800:
+                    0x02, $

ERROR: trailing whitespace
#52000: FILE: tests/data/acpi/q35/DSDT.tis.dsl:801:
+                    LNKH, $

ERROR: trailing whitespace
#52002: FILE: tests/data/acpi/q35/DSDT.tis.dsl:803:
+                }, $

ERROR: trailing whitespace
#52006: FILE: tests/data/acpi/q35/DSDT.tis.dsl:807:
+                    0x0011FFFF, $

ERROR: trailing whitespace
#52007: FILE: tests/data/acpi/q35/DSDT.tis.dsl:808:
+                    0x03, $

ERROR: trailing whitespace
#52008: FILE: tests/data/acpi/q35/DSDT.tis.dsl:809:
+                    LNKE, $

ERROR: trailing whitespace
#52010: FILE: tests/data/acpi/q35/DSDT.tis.dsl:811:
+                }, $

ERROR: trailing whitespace
#52014: FILE: tests/data/acpi/q35/DSDT.tis.dsl:815:
+                    0x0012FFFF, $

ERROR: trailing whitespace
#52015: FILE: tests/data/acpi/q35/DSDT.tis.dsl:816:
+                    Zero, $

ERROR: trailing whitespace
#52016: FILE: tests/data/acpi/q35/DSDT.tis.dsl:817:
+                    LNKG, $

ERROR: trailing whitespace
#52018: FILE: tests/data/acpi/q35/DSDT.tis.dsl:819:
+                }, $

ERROR: trailing whitespace
#52022: FILE: tests/data/acpi/q35/DSDT.tis.dsl:823:
+                    0x0012FFFF, $

ERROR: trailing whitespace
#52023: FILE: tests/data/acpi/q35/DSDT.tis.dsl:824:
+                    One, $

ERROR: trailing whitespace
#52024: FILE: tests/data/acpi/q35/DSDT.tis.dsl:825:
+                    LNKH, $

ERROR: trailing whitespace
#52026: FILE: tests/data/acpi/q35/DSDT.tis.dsl:827:
+                }, $

ERROR: trailing whitespace
#52030: FILE: tests/data/acpi/q35/DSDT.tis.dsl:831:
+                    0x0012FFFF, $

ERROR: trailing whitespace
#52031: FILE: tests/data/acpi/q35/DSDT.tis.dsl:832:
+                    0x02, $

ERROR: trailing whitespace
#52032: FILE: tests/data/acpi/q35/DSDT.tis.dsl:833:
+                    LNKE, $

ERROR: trailing whitespace
#52034: FILE: tests/data/acpi/q35/DSDT.tis.dsl:835:
+                }, $

ERROR: trailing whitespace
#52038: FILE: tests/data/acpi/q35/DSDT.tis.dsl:839:
+                    0x0012FFFF, $

ERROR: trailing whitespace
#52039: FILE: tests/data/acpi/q35/DSDT.tis.dsl:840:
+                    0x03, $

ERROR: trailing whitespace
#52040: FILE: tests/data/acpi/q35/DSDT.tis.dsl:841:
+                    LNKF, $

ERROR: trailing whitespace
#52042: FILE: tests/data/acpi/q35/DSDT.tis.dsl:843:
+                }, $

ERROR: trailing whitespace
#52046: FILE: tests/data/acpi/q35/DSDT.tis.dsl:847:
+                    0x0013FFFF, $

ERROR: trailing whitespace
#52047: FILE: tests/data/acpi/q35/DSDT.tis.dsl:848:
+                    Zero, $

ERROR: trailing whitespace
#52048: FILE: tests/data/acpi/q35/DSDT.tis.dsl:849:
+                    LNKH, $

ERROR: trailing whitespace
#52050: FILE: tests/data/acpi/q35/DSDT.tis.dsl:851:
+                }, $

ERROR: trailing whitespace
#52054: FILE: tests/data/acpi/q35/DSDT.tis.dsl:855:
+                    0x0013FFFF, $

ERROR: trailing whitespace
#52055: FILE: tests/data/acpi/q35/DSDT.tis.dsl:856:
+                    One, $

ERROR: trailing whitespace
#52056: FILE: tests/data/acpi/q35/DSDT.tis.dsl:857:
+                    LNKE, $

ERROR: trailing whitespace
#52058: FILE: tests/data/acpi/q35/DSDT.tis.dsl:859:
+                }, $

ERROR: trailing whitespace
#52062: FILE: tests/data/acpi/q35/DSDT.tis.dsl:863:
+                    0x0013FFFF, $

ERROR: trailing whitespace
#52063: FILE: tests/data/acpi/q35/DSDT.tis.dsl:864:
+                    0x02, $

ERROR: trailing whitespace
#52064: FILE: tests/data/acpi/q35/DSDT.tis.dsl:865:
+                    LNKF, $

ERROR: trailing whitespace
#52066: FILE: tests/data/acpi/q35/DSDT.tis.dsl:867:
+                }, $

ERROR: trailing whitespace
#52070: FILE: tests/data/acpi/q35/DSDT.tis.dsl:871:
+                    0x0013FFFF, $

ERROR: trailing whitespace
#52071: FILE: tests/data/acpi/q35/DSDT.tis.dsl:872:
+                    0x03, $

ERROR: trailing whitespace
#52072: FILE: tests/data/acpi/q35/DSDT.tis.dsl:873:
+                    LNKG, $

ERROR: trailing whitespace
#52074: FILE: tests/data/acpi/q35/DSDT.tis.dsl:875:
+                }, $

ERROR: trailing whitespace
#52078: FILE: tests/data/acpi/q35/DSDT.tis.dsl:879:
+                    0x0014FFFF, $

ERROR: trailing whitespace
#52079: FILE: tests/data/acpi/q35/DSDT.tis.dsl:880:
+                    Zero, $

ERROR: trailing whitespace
#52080: FILE: tests/data/acpi/q35/DSDT.tis.dsl:881:
+                    LNKE, $

ERROR: trailing whitespace
#52082: FILE: tests/data/acpi/q35/DSDT.tis.dsl:883:
+                }, $

ERROR: trailing whitespace
#52086: FILE: tests/data/acpi/q35/DSDT.tis.dsl:887:
+                    0x0014FFFF, $

ERROR: trailing whitespace
#52087: FILE: tests/data/acpi/q35/DSDT.tis.dsl:888:
+                    One, $

ERROR: trailing whitespace
#52088: FILE: tests/data/acpi/q35/DSDT.tis.dsl:889:
+                    LNKF, $

ERROR: trailing whitespace
#52090: FILE: tests/data/acpi/q35/DSDT.tis.dsl:891:
+                }, $

ERROR: trailing whitespace
#52094: FILE: tests/data/acpi/q35/DSDT.tis.dsl:895:
+                    0x0014FFFF, $

ERROR: trailing whitespace
#52095: FILE: tests/data/acpi/q35/DSDT.tis.dsl:896:
+                    0x02, $

ERROR: trailing whitespace
#52096: FILE: tests/data/acpi/q35/DSDT.tis.dsl:897:
+                    LNKG, $

ERROR: trailing whitespace
#52098: FILE: tests/data/acpi/q35/DSDT.tis.dsl:899:
+                }, $

ERROR: trailing whitespace
#52102: FILE: tests/data/acpi/q35/DSDT.tis.dsl:903:
+                    0x0014FFFF, $

ERROR: trailing whitespace
#52103: FILE: tests/data/acpi/q35/DSDT.tis.dsl:904:
+                    0x03, $

ERROR: trailing whitespace
#52104: FILE: tests/data/acpi/q35/DSDT.tis.dsl:905:
+                    LNKH, $

ERROR: trailing whitespace
#52106: FILE: tests/data/acpi/q35/DSDT.tis.dsl:907:
+                }, $

ERROR: trailing whitespace
#52110: FILE: tests/data/acpi/q35/DSDT.tis.dsl:911:
+                    0x0015FFFF, $

ERROR: trailing whitespace
#52111: FILE: tests/data/acpi/q35/DSDT.tis.dsl:912:
+                    Zero, $

ERROR: trailing whitespace
#52112: FILE: tests/data/acpi/q35/DSDT.tis.dsl:913:
+                    LNKF, $

ERROR: trailing whitespace
#52114: FILE: tests/data/acpi/q35/DSDT.tis.dsl:915:
+                }, $

ERROR: trailing whitespace
#52118: FILE: tests/data/acpi/q35/DSDT.tis.dsl:919:
+                    0x0015FFFF, $

ERROR: trailing whitespace
#52119: FILE: tests/data/acpi/q35/DSDT.tis.dsl:920:
+                    One, $

ERROR: trailing whitespace
#52120: FILE: tests/data/acpi/q35/DSDT.tis.dsl:921:
+                    LNKG, $

ERROR: trailing whitespace
#52122: FILE: tests/data/acpi/q35/DSDT.tis.dsl:923:
+                }, $

ERROR: trailing whitespace
#52126: FILE: tests/data/acpi/q35/DSDT.tis.dsl:927:
+                    0x0015FFFF, $

ERROR: trailing whitespace
#52127: FILE: tests/data/acpi/q35/DSDT.tis.dsl:928:
+                    0x02, $

ERROR: trailing whitespace
#52128: FILE: tests/data/acpi/q35/DSDT.tis.dsl:929:
+                    LNKH, $

ERROR: trailing whitespace
#52130: FILE: tests/data/acpi/q35/DSDT.tis.dsl:931:
+                }, $

ERROR: trailing whitespace
#52134: FILE: tests/data/acpi/q35/DSDT.tis.dsl:935:
+                    0x0015FFFF, $

ERROR: trailing whitespace
#52135: FILE: tests/data/acpi/q35/DSDT.tis.dsl:936:
+                    0x03, $

ERROR: trailing whitespace
#52136: FILE: tests/data/acpi/q35/DSDT.tis.dsl:937:
+                    LNKE, $

ERROR: trailing whitespace
#52138: FILE: tests/data/acpi/q35/DSDT.tis.dsl:939:
+                }, $

ERROR: trailing whitespace
#52142: FILE: tests/data/acpi/q35/DSDT.tis.dsl:943:
+                    0x0016FFFF, $

ERROR: trailing whitespace
#52143: FILE: tests/data/acpi/q35/DSDT.tis.dsl:944:
+                    Zero, $

ERROR: trailing whitespace
#52144: FILE: tests/data/acpi/q35/DSDT.tis.dsl:945:
+                    LNKG, $

ERROR: trailing whitespace
#52146: FILE: tests/data/acpi/q35/DSDT.tis.dsl:947:
+                }, $

ERROR: trailing whitespace
#52150: FILE: tests/data/acpi/q35/DSDT.tis.dsl:951:
+                    0x0016FFFF, $

ERROR: trailing whitespace
#52151: FILE: tests/data/acpi/q35/DSDT.tis.dsl:952:
+                    One, $

ERROR: trailing whitespace
#52152: FILE: tests/data/acpi/q35/DSDT.tis.dsl:953:
+                    LNKH, $

ERROR: trailing whitespace
#52154: FILE: tests/data/acpi/q35/DSDT.tis.dsl:955:
+                }, $

ERROR: trailing whitespace
#52158: FILE: tests/data/acpi/q35/DSDT.tis.dsl:959:
+                    0x0016FFFF, $

ERROR: trailing whitespace
#52159: FILE: tests/data/acpi/q35/DSDT.tis.dsl:960:
+                    0x02, $

ERROR: trailing whitespace
#52160: FILE: tests/data/acpi/q35/DSDT.tis.dsl:961:
+                    LNKE, $

ERROR: trailing whitespace
#52162: FILE: tests/data/acpi/q35/DSDT.tis.dsl:963:
+                }, $

ERROR: trailing whitespace
#52166: FILE: tests/data/acpi/q35/DSDT.tis.dsl:967:
+                    0x0016FFFF, $

ERROR: trailing whitespace
#52167: FILE: tests/data/acpi/q35/DSDT.tis.dsl:968:
+                    0x03, $

ERROR: trailing whitespace
#52168: FILE: tests/data/acpi/q35/DSDT.tis.dsl:969:
+                    LNKF, $

ERROR: trailing whitespace
#52170: FILE: tests/data/acpi/q35/DSDT.tis.dsl:971:
+                }, $

ERROR: trailing whitespace
#52174: FILE: tests/data/acpi/q35/DSDT.tis.dsl:975:
+                    0x0017FFFF, $

ERROR: trailing whitespace
#52175: FILE: tests/data/acpi/q35/DSDT.tis.dsl:976:
+                    Zero, $

ERROR: trailing whitespace
#52176: FILE: tests/data/acpi/q35/DSDT.tis.dsl:977:
+                    LNKH, $

ERROR: trailing whitespace
#52178: FILE: tests/data/acpi/q35/DSDT.tis.dsl:979:
+                }, $

ERROR: trailing whitespace
#52182: FILE: tests/data/acpi/q35/DSDT.tis.dsl:983:
+                    0x0017FFFF, $

ERROR: trailing whitespace
#52183: FILE: tests/data/acpi/q35/DSDT.tis.dsl:984:
+                    One, $

ERROR: trailing whitespace
#52184: FILE: tests/data/acpi/q35/DSDT.tis.dsl:985:
+                    LNKE, $

ERROR: trailing whitespace
#52186: FILE: tests/data/acpi/q35/DSDT.tis.dsl:987:
+                }, $

ERROR: trailing whitespace
#52190: FILE: tests/data/acpi/q35/DSDT.tis.dsl:991:
+                    0x0017FFFF, $

ERROR: trailing whitespace
#52191: FILE: tests/data/acpi/q35/DSDT.tis.dsl:992:
+                    0x02, $

ERROR: trailing whitespace
#52192: FILE: tests/data/acpi/q35/DSDT.tis.dsl:993:
+                    LNKF, $

ERROR: trailing whitespace
#52194: FILE: tests/data/acpi/q35/DSDT.tis.dsl:995:
+                }, $

ERROR: trailing whitespace
#52198: FILE: tests/data/acpi/q35/DSDT.tis.dsl:999:
+                    0x0017FFFF, $

ERROR: trailing whitespace
#52199: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1000:
+                    0x03, $

ERROR: trailing whitespace
#52200: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1001:
+                    LNKG, $

ERROR: trailing whitespace
#52202: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1003:
+                }, $

ERROR: trailing whitespace
#52206: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1007:
+                    0x0018FFFF, $

ERROR: trailing whitespace
#52207: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1008:
+                    Zero, $

ERROR: trailing whitespace
#52208: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1009:
+                    LNKE, $

ERROR: trailing whitespace
#52210: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1011:
+                }, $

ERROR: trailing whitespace
#52214: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1015:
+                    0x0018FFFF, $

ERROR: trailing whitespace
#52215: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1016:
+                    One, $

ERROR: trailing whitespace
#52216: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1017:
+                    LNKF, $

ERROR: trailing whitespace
#52218: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1019:
+                }, $

ERROR: trailing whitespace
#52222: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1023:
+                    0x0018FFFF, $

ERROR: trailing whitespace
#52223: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1024:
+                    0x02, $

ERROR: trailing whitespace
#52224: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1025:
+                    LNKG, $

ERROR: trailing whitespace
#52226: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1027:
+                }, $

ERROR: trailing whitespace
#52230: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1031:
+                    0x0018FFFF, $

ERROR: trailing whitespace
#52231: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1032:
+                    0x03, $

ERROR: trailing whitespace
#52232: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1033:
+                    LNKH, $

ERROR: trailing whitespace
#52234: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1035:
+                }, $

ERROR: trailing whitespace
#52238: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1039:
+                    0x0019FFFF, $

ERROR: trailing whitespace
#52239: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1040:
+                    Zero, $

ERROR: trailing whitespace
#52240: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1041:
+                    LNKA, $

ERROR: trailing whitespace
#52242: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1043:
+                }, $

ERROR: trailing whitespace
#52246: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1047:
+                    0x0019FFFF, $

ERROR: trailing whitespace
#52247: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1048:
+                    One, $

ERROR: trailing whitespace
#52248: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1049:
+                    LNKB, $

ERROR: trailing whitespace
#52250: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1051:
+                }, $

ERROR: trailing whitespace
#52254: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1055:
+                    0x0019FFFF, $

ERROR: trailing whitespace
#52255: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1056:
+                    0x02, $

ERROR: trailing whitespace
#52256: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1057:
+                    LNKC, $

ERROR: trailing whitespace
#52258: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1059:
+                }, $

ERROR: trailing whitespace
#52262: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1063:
+                    0x0019FFFF, $

ERROR: trailing whitespace
#52263: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1064:
+                    0x03, $

ERROR: trailing whitespace
#52264: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1065:
+                    LNKD, $

ERROR: trailing whitespace
#52266: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1067:
+                }, $

ERROR: trailing whitespace
#52270: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1071:
+                    0x001AFFFF, $

ERROR: trailing whitespace
#52271: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1072:
+                    Zero, $

ERROR: trailing whitespace
#52272: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1073:
+                    LNKA, $

ERROR: trailing whitespace
#52274: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1075:
+                }, $

ERROR: trailing whitespace
#52278: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1079:
+                    0x001AFFFF, $

ERROR: trailing whitespace
#52279: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1080:
+                    One, $

ERROR: trailing whitespace
#52280: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1081:
+                    LNKB, $

ERROR: trailing whitespace
#52282: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1083:
+                }, $

ERROR: trailing whitespace
#52286: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1087:
+                    0x001AFFFF, $

ERROR: trailing whitespace
#52287: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1088:
+                    0x02, $

ERROR: trailing whitespace
#52288: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1089:
+                    LNKC, $

ERROR: trailing whitespace
#52290: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1091:
+                }, $

ERROR: trailing whitespace
#52294: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1095:
+                    0x001AFFFF, $

ERROR: trailing whitespace
#52295: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1096:
+                    0x03, $

ERROR: trailing whitespace
#52296: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1097:
+                    LNKD, $

ERROR: trailing whitespace
#52298: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1099:
+                }, $

ERROR: trailing whitespace
#52302: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1103:
+                    0x001BFFFF, $

ERROR: trailing whitespace
#52303: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1104:
+                    Zero, $

ERROR: trailing whitespace
#52304: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1105:
+                    LNKA, $

ERROR: trailing whitespace
#52306: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1107:
+                }, $

ERROR: trailing whitespace
#52310: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1111:
+                    0x001BFFFF, $

ERROR: trailing whitespace
#52311: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1112:
+                    One, $

ERROR: trailing whitespace
#52312: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1113:
+                    LNKB, $

ERROR: trailing whitespace
#52314: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1115:
+                }, $

ERROR: trailing whitespace
#52318: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1119:
+                    0x001BFFFF, $

ERROR: trailing whitespace
#52319: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1120:
+                    0x02, $

ERROR: trailing whitespace
#52320: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1121:
+                    LNKC, $

ERROR: trailing whitespace
#52322: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1123:
+                }, $

ERROR: trailing whitespace
#52326: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1127:
+                    0x001BFFFF, $

ERROR: trailing whitespace
#52327: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1128:
+                    0x03, $

ERROR: trailing whitespace
#52328: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1129:
+                    LNKD, $

ERROR: trailing whitespace
#52330: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1131:
+                }, $

ERROR: trailing whitespace
#52334: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1135:
+                    0x001CFFFF, $

ERROR: trailing whitespace
#52335: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1136:
+                    Zero, $

ERROR: trailing whitespace
#52336: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1137:
+                    LNKA, $

ERROR: trailing whitespace
#52338: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1139:
+                }, $

ERROR: trailing whitespace
#52342: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1143:
+                    0x001CFFFF, $

ERROR: trailing whitespace
#52343: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1144:
+                    One, $

ERROR: trailing whitespace
#52344: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1145:
+                    LNKB, $

ERROR: trailing whitespace
#52346: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1147:
+                }, $

ERROR: trailing whitespace
#52350: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1151:
+                    0x001CFFFF, $

ERROR: trailing whitespace
#52351: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1152:
+                    0x02, $

ERROR: trailing whitespace
#52352: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1153:
+                    LNKC, $

ERROR: trailing whitespace
#52354: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1155:
+                }, $

ERROR: trailing whitespace
#52358: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1159:
+                    0x001CFFFF, $

ERROR: trailing whitespace
#52359: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1160:
+                    0x03, $

ERROR: trailing whitespace
#52360: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1161:
+                    LNKD, $

ERROR: trailing whitespace
#52362: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1163:
+                }, $

ERROR: trailing whitespace
#52366: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1167:
+                    0x001DFFFF, $

ERROR: trailing whitespace
#52367: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1168:
+                    Zero, $

ERROR: trailing whitespace
#52368: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1169:
+                    LNKA, $

ERROR: trailing whitespace
#52370: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1171:
+                }, $

ERROR: trailing whitespace
#52374: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1175:
+                    0x001DFFFF, $

ERROR: trailing whitespace
#52375: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1176:
+                    One, $

ERROR: trailing whitespace
#52376: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1177:
+                    LNKB, $

ERROR: trailing whitespace
#52378: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1179:
+                }, $

ERROR: trailing whitespace
#52382: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1183:
+                    0x001DFFFF, $

ERROR: trailing whitespace
#52383: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1184:
+                    0x02, $

ERROR: trailing whitespace
#52384: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1185:
+                    LNKC, $

ERROR: trailing whitespace
#52386: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1187:
+                }, $

ERROR: trailing whitespace
#52390: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1191:
+                    0x001DFFFF, $

ERROR: trailing whitespace
#52391: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1192:
+                    0x03, $

ERROR: trailing whitespace
#52392: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1193:
+                    LNKD, $

ERROR: trailing whitespace
#52394: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1195:
+                }, $

ERROR: trailing whitespace
#52398: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1199:
+                    0x001EFFFF, $

ERROR: trailing whitespace
#52399: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1200:
+                    Zero, $

ERROR: trailing whitespace
#52400: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1201:
+                    LNKE, $

ERROR: trailing whitespace
#52402: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1203:
+                }, $

ERROR: trailing whitespace
#52406: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1207:
+                    0x001EFFFF, $

ERROR: trailing whitespace
#52407: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1208:
+                    One, $

ERROR: trailing whitespace
#52408: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1209:
+                    LNKF, $

ERROR: trailing whitespace
#52410: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1211:
+                }, $

ERROR: trailing whitespace
#52414: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1215:
+                    0x001EFFFF, $

ERROR: trailing whitespace
#52415: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1216:
+                    0x02, $

ERROR: trailing whitespace
#52416: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1217:
+                    LNKG, $

ERROR: trailing whitespace
#52418: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1219:
+                }, $

ERROR: trailing whitespace
#52422: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1223:
+                    0x001EFFFF, $

ERROR: trailing whitespace
#52423: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1224:
+                    0x03, $

ERROR: trailing whitespace
#52424: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1225:
+                    LNKH, $

ERROR: trailing whitespace
#52426: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1227:
+                }, $

ERROR: trailing whitespace
#52430: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1231:
+                    0x001FFFFF, $

ERROR: trailing whitespace
#52431: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1232:
+                    Zero, $

ERROR: trailing whitespace
#52432: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1233:
+                    LNKA, $

ERROR: trailing whitespace
#52434: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1235:
+                }, $

ERROR: trailing whitespace
#52438: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1239:
+                    0x001FFFFF, $

ERROR: trailing whitespace
#52439: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1240:
+                    One, $

ERROR: trailing whitespace
#52440: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1241:
+                    LNKB, $

ERROR: trailing whitespace
#52442: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1243:
+                }, $

ERROR: trailing whitespace
#52446: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1247:
+                    0x001FFFFF, $

ERROR: trailing whitespace
#52447: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1248:
+                    0x02, $

ERROR: trailing whitespace
#52448: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1249:
+                    LNKC, $

ERROR: trailing whitespace
#52450: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1251:
+                }, $

ERROR: trailing whitespace
#52454: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1255:
+                    0x001FFFFF, $

ERROR: trailing whitespace
#52455: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1256:
+                    0x03, $

ERROR: trailing whitespace
#52456: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1257:
+                    LNKD, $

ERROR: trailing whitespace
#52464: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1265:
+                    0xFFFF, $

ERROR: trailing whitespace
#52465: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1266:
+                    Zero, $

ERROR: trailing whitespace
#52466: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1267:
+                    GSIE, $

ERROR: trailing whitespace
#52468: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1269:
+                }, $

ERROR: trailing whitespace
#52472: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1273:
+                    0xFFFF, $

ERROR: trailing whitespace
#52473: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1274:
+                    One, $

ERROR: trailing whitespace
#52474: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1275:
+                    GSIF, $

ERROR: trailing whitespace
#52476: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1277:
+                }, $

ERROR: trailing whitespace
#52480: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1281:
+                    0xFFFF, $

ERROR: trailing whitespace
#52481: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1282:
+                    0x02, $

ERROR: trailing whitespace
#52482: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1283:
+                    GSIG, $

ERROR: trailing whitespace
#52484: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1285:
+                }, $

ERROR: trailing whitespace
#52488: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1289:
+                    0xFFFF, $

ERROR: trailing whitespace
#52489: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1290:
+                    0x03, $

ERROR: trailing whitespace
#52490: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1291:
+                    GSIH, $

ERROR: trailing whitespace
#52492: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1293:
+                }, $

ERROR: trailing whitespace
#52496: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1297:
+                    0x0001FFFF, $

ERROR: trailing whitespace
#52497: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1298:
+                    Zero, $

ERROR: trailing whitespace
#52498: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1299:
+                    GSIF, $

ERROR: trailing whitespace
#52500: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1301:
+                }, $

ERROR: trailing whitespace
#52504: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1305:
+                    0x0001FFFF, $

ERROR: trailing whitespace
#52505: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1306:
+                    One, $

ERROR: trailing whitespace
#52506: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1307:
+                    GSIG, $

ERROR: trailing whitespace
#52508: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1309:
+                }, $

ERROR: trailing whitespace
#52512: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1313:
+                    0x0001FFFF, $

ERROR: trailing whitespace
#52513: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1314:
+                    0x02, $

ERROR: trailing whitespace
#52514: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1315:
+                    GSIH, $

ERROR: trailing whitespace
#52516: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1317:
+                }, $

ERROR: trailing whitespace
#52520: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1321:
+                    0x0001FFFF, $

ERROR: trailing whitespace
#52521: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1322:
+                    0x03, $

ERROR: trailing whitespace
#52522: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1323:
+                    GSIE, $

ERROR: trailing whitespace
#52524: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1325:
+                }, $

ERROR: trailing whitespace
#52528: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1329:
+                    0x0002FFFF, $

ERROR: trailing whitespace
#52529: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1330:
+                    Zero, $

ERROR: trailing whitespace
#52530: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1331:
+                    GSIG, $

ERROR: trailing whitespace
#52532: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1333:
+                }, $

ERROR: trailing whitespace
#52536: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1337:
+                    0x0002FFFF, $

ERROR: trailing whitespace
#52537: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1338:
+                    One, $

ERROR: trailing whitespace
#52538: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1339:
+                    GSIH, $

ERROR: trailing whitespace
#52540: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1341:
+                }, $

ERROR: trailing whitespace
#52544: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1345:
+                    0x0002FFFF, $

ERROR: trailing whitespace
#52545: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1346:
+                    0x02, $

ERROR: trailing whitespace
#52546: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1347:
+                    GSIE, $

ERROR: trailing whitespace
#52548: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1349:
+                }, $

ERROR: trailing whitespace
#52552: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1353:
+                    0x0002FFFF, $

ERROR: trailing whitespace
#52553: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1354:
+                    0x03, $

ERROR: trailing whitespace
#52554: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1355:
+                    GSIF, $

ERROR: trailing whitespace
#52556: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1357:
+                }, $

ERROR: trailing whitespace
#52560: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1361:
+                    0x0003FFFF, $

ERROR: trailing whitespace
#52561: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1362:
+                    Zero, $

ERROR: trailing whitespace
#52562: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1363:
+                    GSIH, $

ERROR: trailing whitespace
#52564: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1365:
+                }, $

ERROR: trailing whitespace
#52568: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1369:
+                    0x0003FFFF, $

ERROR: trailing whitespace
#52569: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1370:
+                    One, $

ERROR: trailing whitespace
#52570: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1371:
+                    GSIE, $

ERROR: trailing whitespace
#52572: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1373:
+                }, $

ERROR: trailing whitespace
#52576: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1377:
+                    0x0003FFFF, $

ERROR: trailing whitespace
#52577: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1378:
+                    0x02, $

ERROR: trailing whitespace
#52578: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1379:
+                    GSIF, $

ERROR: trailing whitespace
#52580: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1381:
+                }, $

ERROR: trailing whitespace
#52584: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1385:
+                    0x0003FFFF, $

ERROR: trailing whitespace
#52585: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1386:
+                    0x03, $

ERROR: trailing whitespace
#52586: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1387:
+                    GSIG, $

ERROR: trailing whitespace
#52588: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1389:
+                }, $

ERROR: trailing whitespace
#52592: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1393:
+                    0x0004FFFF, $

ERROR: trailing whitespace
#52593: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1394:
+                    Zero, $

ERROR: trailing whitespace
#52594: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1395:
+                    GSIE, $

ERROR: trailing whitespace
#52596: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1397:
+                }, $

ERROR: trailing whitespace
#52600: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1401:
+                    0x0004FFFF, $

ERROR: trailing whitespace
#52601: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1402:
+                    One, $

ERROR: trailing whitespace
#52602: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1403:
+                    GSIF, $

ERROR: trailing whitespace
#52604: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1405:
+                }, $

ERROR: trailing whitespace
#52608: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1409:
+                    0x0004FFFF, $

ERROR: trailing whitespace
#52609: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1410:
+                    0x02, $

ERROR: trailing whitespace
#52610: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1411:
+                    GSIG, $

ERROR: trailing whitespace
#52612: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1413:
+                }, $

ERROR: trailing whitespace
#52616: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1417:
+                    0x0004FFFF, $

ERROR: trailing whitespace
#52617: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1418:
+                    0x03, $

ERROR: trailing whitespace
#52618: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1419:
+                    GSIH, $

ERROR: trailing whitespace
#52620: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1421:
+                }, $

ERROR: trailing whitespace
#52624: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1425:
+                    0x0005FFFF, $

ERROR: trailing whitespace
#52625: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1426:
+                    Zero, $

ERROR: trailing whitespace
#52626: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1427:
+                    GSIF, $

ERROR: trailing whitespace
#52628: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1429:
+                }, $

ERROR: trailing whitespace
#52632: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1433:
+                    0x0005FFFF, $

ERROR: trailing whitespace
#52633: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1434:
+                    One, $

ERROR: trailing whitespace
#52634: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1435:
+                    GSIG, $

ERROR: trailing whitespace
#52636: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1437:
+                }, $

ERROR: trailing whitespace
#52640: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1441:
+                    0x0005FFFF, $

ERROR: trailing whitespace
#52641: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1442:
+                    0x02, $

ERROR: trailing whitespace
#52642: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1443:
+                    GSIH, $

ERROR: trailing whitespace
#52644: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1445:
+                }, $

ERROR: trailing whitespace
#52648: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1449:
+                    0x0005FFFF, $

ERROR: trailing whitespace
#52649: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1450:
+                    0x03, $

ERROR: trailing whitespace
#52650: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1451:
+                    GSIE, $

ERROR: trailing whitespace
#52652: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1453:
+                }, $

ERROR: trailing whitespace
#52656: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1457:
+                    0x0006FFFF, $

ERROR: trailing whitespace
#52657: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1458:
+                    Zero, $

ERROR: trailing whitespace
#52658: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1459:
+                    GSIG, $

ERROR: trailing whitespace
#52660: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1461:
+                }, $

ERROR: trailing whitespace
#52664: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1465:
+                    0x0006FFFF, $

ERROR: trailing whitespace
#52665: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1466:
+                    One, $

ERROR: trailing whitespace
#52666: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1467:
+                    GSIH, $

ERROR: trailing whitespace
#52668: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1469:
+                }, $

ERROR: trailing whitespace
#52672: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1473:
+                    0x0006FFFF, $

ERROR: trailing whitespace
#52673: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1474:
+                    0x02, $

ERROR: trailing whitespace
#52674: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1475:
+                    GSIE, $

ERROR: trailing whitespace
#52676: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1477:
+                }, $

ERROR: trailing whitespace
#52680: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1481:
+                    0x0006FFFF, $

ERROR: trailing whitespace
#52681: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1482:
+                    0x03, $

ERROR: trailing whitespace
#52682: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1483:
+                    GSIF, $

ERROR: trailing whitespace
#52684: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1485:
+                }, $

ERROR: trailing whitespace
#52688: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1489:
+                    0x0007FFFF, $

ERROR: trailing whitespace
#52689: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1490:
+                    Zero, $

ERROR: trailing whitespace
#52690: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1491:
+                    GSIH, $

ERROR: trailing whitespace
#52692: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1493:
+                }, $

ERROR: trailing whitespace
#52696: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1497:
+                    0x0007FFFF, $

ERROR: trailing whitespace
#52697: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1498:
+                    One, $

ERROR: trailing whitespace
#52698: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1499:
+                    GSIE, $

ERROR: trailing whitespace
#52700: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1501:
+                }, $

ERROR: trailing whitespace
#52704: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1505:
+                    0x0007FFFF, $

ERROR: trailing whitespace
#52705: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1506:
+                    0x02, $

ERROR: trailing whitespace
#52706: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1507:
+                    GSIF, $

ERROR: trailing whitespace
#52708: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1509:
+                }, $

ERROR: trailing whitespace
#52712: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1513:
+                    0x0007FFFF, $

ERROR: trailing whitespace
#52713: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1514:
+                    0x03, $

ERROR: trailing whitespace
#52714: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1515:
+                    GSIG, $

ERROR: trailing whitespace
#52716: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1517:
+                }, $

ERROR: trailing whitespace
#52720: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1521:
+                    0x0008FFFF, $

ERROR: trailing whitespace
#52721: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1522:
+                    Zero, $

ERROR: trailing whitespace
#52722: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1523:
+                    GSIE, $

ERROR: trailing whitespace
#52724: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1525:
+                }, $

ERROR: trailing whitespace
#52728: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1529:
+                    0x0008FFFF, $

ERROR: trailing whitespace
#52729: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1530:
+                    One, $

ERROR: trailing whitespace
#52730: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1531:
+                    GSIF, $

ERROR: trailing whitespace
#52732: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1533:
+                }, $

ERROR: trailing whitespace
#52736: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1537:
+                    0x0008FFFF, $

ERROR: trailing whitespace
#52737: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1538:
+                    0x02, $

ERROR: trailing whitespace
#52738: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1539:
+                    GSIG, $

ERROR: trailing whitespace
#52740: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1541:
+                }, $

ERROR: trailing whitespace
#52744: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1545:
+                    0x0008FFFF, $

ERROR: trailing whitespace
#52745: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1546:
+                    0x03, $

ERROR: trailing whitespace
#52746: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1547:
+                    GSIH, $

ERROR: trailing whitespace
#52748: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1549:
+                }, $

ERROR: trailing whitespace
#52752: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1553:
+                    0x0009FFFF, $

ERROR: trailing whitespace
#52753: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1554:
+                    Zero, $

ERROR: trailing whitespace
#52754: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1555:
+                    GSIF, $

ERROR: trailing whitespace
#52756: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1557:
+                }, $

ERROR: trailing whitespace
#52760: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1561:
+                    0x0009FFFF, $

ERROR: trailing whitespace
#52761: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1562:
+                    One, $

ERROR: trailing whitespace
#52762: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1563:
+                    GSIG, $

ERROR: trailing whitespace
#52764: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1565:
+                }, $

ERROR: trailing whitespace
#52768: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1569:
+                    0x0009FFFF, $

ERROR: trailing whitespace
#52769: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1570:
+                    0x02, $

ERROR: trailing whitespace
#52770: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1571:
+                    GSIH, $

ERROR: trailing whitespace
#52772: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1573:
+                }, $

ERROR: trailing whitespace
#52776: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1577:
+                    0x0009FFFF, $

ERROR: trailing whitespace
#52777: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1578:
+                    0x03, $

ERROR: trailing whitespace
#52778: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1579:
+                    GSIE, $

ERROR: trailing whitespace
#52780: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1581:
+                }, $

ERROR: trailing whitespace
#52784: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1585:
+                    0x000AFFFF, $

ERROR: trailing whitespace
#52785: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1586:
+                    Zero, $

ERROR: trailing whitespace
#52786: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1587:
+                    GSIG, $

ERROR: trailing whitespace
#52788: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1589:
+                }, $

ERROR: trailing whitespace
#52792: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1593:
+                    0x000AFFFF, $

ERROR: trailing whitespace
#52793: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1594:
+                    One, $

ERROR: trailing whitespace
#52794: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1595:
+                    GSIH, $

ERROR: trailing whitespace
#52796: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1597:
+                }, $

ERROR: trailing whitespace
#52800: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1601:
+                    0x000AFFFF, $

ERROR: trailing whitespace
#52801: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1602:
+                    0x02, $

ERROR: trailing whitespace
#52802: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1603:
+                    GSIE, $

ERROR: trailing whitespace
#52804: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1605:
+                }, $

ERROR: trailing whitespace
#52808: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1609:
+                    0x000AFFFF, $

ERROR: trailing whitespace
#52809: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1610:
+                    0x03, $

ERROR: trailing whitespace
#52810: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1611:
+                    GSIF, $

ERROR: trailing whitespace
#52812: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1613:
+                }, $

ERROR: trailing whitespace
#52816: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1617:
+                    0x000BFFFF, $

ERROR: trailing whitespace
#52817: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1618:
+                    Zero, $

ERROR: trailing whitespace
#52818: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1619:
+                    GSIH, $

ERROR: trailing whitespace
#52820: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1621:
+                }, $

ERROR: trailing whitespace
#52824: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1625:
+                    0x000BFFFF, $

ERROR: trailing whitespace
#52825: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1626:
+                    One, $

ERROR: trailing whitespace
#52826: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1627:
+                    GSIE, $

ERROR: trailing whitespace
#52828: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1629:
+                }, $

ERROR: trailing whitespace
#52832: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1633:
+                    0x000BFFFF, $

ERROR: trailing whitespace
#52833: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1634:
+                    0x02, $

ERROR: trailing whitespace
#52834: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1635:
+                    GSIF, $

ERROR: trailing whitespace
#52836: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1637:
+                }, $

ERROR: trailing whitespace
#52840: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1641:
+                    0x000BFFFF, $

ERROR: trailing whitespace
#52841: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1642:
+                    0x03, $

ERROR: trailing whitespace
#52842: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1643:
+                    GSIG, $

ERROR: trailing whitespace
#52844: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1645:
+                }, $

ERROR: trailing whitespace
#52848: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1649:
+                    0x000CFFFF, $

ERROR: trailing whitespace
#52849: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1650:
+                    Zero, $

ERROR: trailing whitespace
#52850: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1651:
+                    GSIE, $

ERROR: trailing whitespace
#52852: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1653:
+                }, $

ERROR: trailing whitespace
#52856: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1657:
+                    0x000CFFFF, $

ERROR: trailing whitespace
#52857: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1658:
+                    One, $

ERROR: trailing whitespace
#52858: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1659:
+                    GSIF, $

ERROR: trailing whitespace
#52860: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1661:
+                }, $

ERROR: trailing whitespace
#52864: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1665:
+                    0x000CFFFF, $

ERROR: trailing whitespace
#52865: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1666:
+                    0x02, $

ERROR: trailing whitespace
#52866: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1667:
+                    GSIG, $

ERROR: trailing whitespace
#52868: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1669:
+                }, $

ERROR: trailing whitespace
#52872: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1673:
+                    0x000CFFFF, $

ERROR: trailing whitespace
#52873: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1674:
+                    0x03, $

ERROR: trailing whitespace
#52874: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1675:
+                    GSIH, $

ERROR: trailing whitespace
#52876: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1677:
+                }, $

ERROR: trailing whitespace
#52880: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1681:
+                    0x000DFFFF, $

ERROR: trailing whitespace
#52881: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1682:
+                    Zero, $

ERROR: trailing whitespace
#52882: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1683:
+                    GSIF, $

ERROR: trailing whitespace
#52884: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1685:
+                }, $

ERROR: trailing whitespace
#52888: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1689:
+                    0x000DFFFF, $

ERROR: trailing whitespace
#52889: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1690:
+                    One, $

ERROR: trailing whitespace
#52890: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1691:
+                    GSIG, $

ERROR: trailing whitespace
#52892: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1693:
+                }, $

ERROR: trailing whitespace
#52896: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1697:
+                    0x000DFFFF, $

ERROR: trailing whitespace
#52897: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1698:
+                    0x02, $

ERROR: trailing whitespace
#52898: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1699:
+                    GSIH, $

ERROR: trailing whitespace
#52900: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1701:
+                }, $

ERROR: trailing whitespace
#52904: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1705:
+                    0x000DFFFF, $

ERROR: trailing whitespace
#52905: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1706:
+                    0x03, $

ERROR: trailing whitespace
#52906: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1707:
+                    GSIE, $

ERROR: trailing whitespace
#52908: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1709:
+                }, $

ERROR: trailing whitespace
#52912: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1713:
+                    0x000EFFFF, $

ERROR: trailing whitespace
#52913: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1714:
+                    Zero, $

ERROR: trailing whitespace
#52914: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1715:
+                    GSIG, $

ERROR: trailing whitespace
#52916: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1717:
+                }, $

ERROR: trailing whitespace
#52920: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1721:
+                    0x000EFFFF, $

ERROR: trailing whitespace
#52921: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1722:
+                    One, $

ERROR: trailing whitespace
#52922: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1723:
+                    GSIH, $

ERROR: trailing whitespace
#52924: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1725:
+                }, $

ERROR: trailing whitespace
#52928: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1729:
+                    0x000EFFFF, $

ERROR: trailing whitespace
#52929: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1730:
+                    0x02, $

ERROR: trailing whitespace
#52930: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1731:
+                    GSIE, $

ERROR: trailing whitespace
#52932: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1733:
+                }, $

ERROR: trailing whitespace
#52936: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1737:
+                    0x000EFFFF, $

ERROR: trailing whitespace
#52937: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1738:
+                    0x03, $

ERROR: trailing whitespace
#52938: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1739:
+                    GSIF, $

ERROR: trailing whitespace
#52940: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1741:
+                }, $

ERROR: trailing whitespace
#52944: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1745:
+                    0x000FFFFF, $

ERROR: trailing whitespace
#52945: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1746:
+                    Zero, $

ERROR: trailing whitespace
#52946: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1747:
+                    GSIH, $

ERROR: trailing whitespace
#52948: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1749:
+                }, $

ERROR: trailing whitespace
#52952: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1753:
+                    0x000FFFFF, $

ERROR: trailing whitespace
#52953: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1754:
+                    One, $

ERROR: trailing whitespace
#52954: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1755:
+                    GSIE, $

ERROR: trailing whitespace
#52956: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1757:
+                }, $

ERROR: trailing whitespace
#52960: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1761:
+                    0x000FFFFF, $

ERROR: trailing whitespace
#52961: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1762:
+                    0x02, $

ERROR: trailing whitespace
#52962: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1763:
+                    GSIF, $

ERROR: trailing whitespace
#52964: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1765:
+                }, $

ERROR: trailing whitespace
#52968: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1769:
+                    0x000FFFFF, $

ERROR: trailing whitespace
#52969: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1770:
+                    0x03, $

ERROR: trailing whitespace
#52970: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1771:
+                    GSIG, $

ERROR: trailing whitespace
#52972: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1773:
+                }, $

ERROR: trailing whitespace
#52976: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1777:
+                    0x0010FFFF, $

ERROR: trailing whitespace
#52977: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1778:
+                    Zero, $

ERROR: trailing whitespace
#52978: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1779:
+                    GSIE, $

ERROR: trailing whitespace
#52980: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1781:
+                }, $

ERROR: trailing whitespace
#52984: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1785:
+                    0x0010FFFF, $

ERROR: trailing whitespace
#52985: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1786:
+                    One, $

ERROR: trailing whitespace
#52986: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1787:
+                    GSIF, $

ERROR: trailing whitespace
#52988: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1789:
+                }, $

ERROR: trailing whitespace
#52992: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1793:
+                    0x0010FFFF, $

ERROR: trailing whitespace
#52993: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1794:
+                    0x02, $

ERROR: trailing whitespace
#52994: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1795:
+                    GSIG, $

ERROR: trailing whitespace
#52996: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1797:
+                }, $

ERROR: trailing whitespace
#53000: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1801:
+                    0x0010FFFF, $

ERROR: trailing whitespace
#53001: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1802:
+                    0x03, $

ERROR: trailing whitespace
#53002: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1803:
+                    GSIH, $

ERROR: trailing whitespace
#53004: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1805:
+                }, $

ERROR: trailing whitespace
#53008: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1809:
+                    0x0011FFFF, $

ERROR: trailing whitespace
#53009: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1810:
+                    Zero, $

ERROR: trailing whitespace
#53010: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1811:
+                    GSIF, $

ERROR: trailing whitespace
#53012: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1813:
+                }, $

ERROR: trailing whitespace
#53016: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1817:
+                    0x0011FFFF, $

ERROR: trailing whitespace
#53017: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1818:
+                    One, $

ERROR: trailing whitespace
#53018: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1819:
+                    GSIG, $

ERROR: trailing whitespace
#53020: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1821:
+                }, $

ERROR: trailing whitespace
#53024: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1825:
+                    0x0011FFFF, $

ERROR: trailing whitespace
#53025: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1826:
+                    0x02, $

ERROR: trailing whitespace
#53026: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1827:
+                    GSIH, $

ERROR: trailing whitespace
#53028: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1829:
+                }, $

ERROR: trailing whitespace
#53032: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1833:
+                    0x0011FFFF, $

ERROR: trailing whitespace
#53033: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1834:
+                    0x03, $

ERROR: trailing whitespace
#53034: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1835:
+                    GSIE, $

ERROR: trailing whitespace
#53036: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1837:
+                }, $

ERROR: trailing whitespace
#53040: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1841:
+                    0x0012FFFF, $

ERROR: trailing whitespace
#53041: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1842:
+                    Zero, $

ERROR: trailing whitespace
#53042: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1843:
+                    GSIG, $

ERROR: trailing whitespace
#53044: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1845:
+                }, $

ERROR: trailing whitespace
#53048: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1849:
+                    0x0012FFFF, $

ERROR: trailing whitespace
#53049: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1850:
+                    One, $

ERROR: trailing whitespace
#53050: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1851:
+                    GSIH, $

ERROR: trailing whitespace
#53052: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1853:
+                }, $

ERROR: trailing whitespace
#53056: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1857:
+                    0x0012FFFF, $

ERROR: trailing whitespace
#53057: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1858:
+                    0x02, $

ERROR: trailing whitespace
#53058: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1859:
+                    GSIE, $

ERROR: trailing whitespace
#53060: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1861:
+                }, $

ERROR: trailing whitespace
#53064: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1865:
+                    0x0012FFFF, $

ERROR: trailing whitespace
#53065: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1866:
+                    0x03, $

ERROR: trailing whitespace
#53066: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1867:
+                    GSIF, $

ERROR: trailing whitespace
#53068: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1869:
+                }, $

ERROR: trailing whitespace
#53072: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1873:
+                    0x0013FFFF, $

ERROR: trailing whitespace
#53073: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1874:
+                    Zero, $

ERROR: trailing whitespace
#53074: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1875:
+                    GSIH, $

ERROR: trailing whitespace
#53076: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1877:
+                }, $

ERROR: trailing whitespace
#53080: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1881:
+                    0x0013FFFF, $

ERROR: trailing whitespace
#53081: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1882:
+                    One, $

ERROR: trailing whitespace
#53082: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1883:
+                    GSIE, $

ERROR: trailing whitespace
#53084: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1885:
+                }, $

ERROR: trailing whitespace
#53088: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1889:
+                    0x0013FFFF, $

ERROR: trailing whitespace
#53089: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1890:
+                    0x02, $

ERROR: trailing whitespace
#53090: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1891:
+                    GSIF, $

ERROR: trailing whitespace
#53092: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1893:
+                }, $

ERROR: trailing whitespace
#53096: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1897:
+                    0x0013FFFF, $

ERROR: trailing whitespace
#53097: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1898:
+                    0x03, $

ERROR: trailing whitespace
#53098: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1899:
+                    GSIG, $

ERROR: trailing whitespace
#53100: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1901:
+                }, $

ERROR: trailing whitespace
#53104: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1905:
+                    0x0014FFFF, $

ERROR: trailing whitespace
#53105: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1906:
+                    Zero, $

ERROR: trailing whitespace
#53106: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1907:
+                    GSIE, $

ERROR: trailing whitespace
#53108: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1909:
+                }, $

ERROR: trailing whitespace
#53112: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1913:
+                    0x0014FFFF, $

ERROR: trailing whitespace
#53113: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1914:
+                    One, $

ERROR: trailing whitespace
#53114: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1915:
+                    GSIF, $

ERROR: trailing whitespace
#53116: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1917:
+                }, $

ERROR: trailing whitespace
#53120: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1921:
+                    0x0014FFFF, $

ERROR: trailing whitespace
#53121: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1922:
+                    0x02, $

ERROR: trailing whitespace
#53122: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1923:
+                    GSIG, $

ERROR: trailing whitespace
#53124: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1925:
+                }, $

ERROR: trailing whitespace
#53128: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1929:
+                    0x0014FFFF, $

ERROR: trailing whitespace
#53129: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1930:
+                    0x03, $

ERROR: trailing whitespace
#53130: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1931:
+                    GSIH, $

ERROR: trailing whitespace
#53132: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1933:
+                }, $

ERROR: trailing whitespace
#53136: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1937:
+                    0x0015FFFF, $

ERROR: trailing whitespace
#53137: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1938:
+                    Zero, $

ERROR: trailing whitespace
#53138: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1939:
+                    GSIF, $

ERROR: trailing whitespace
#53140: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1941:
+                }, $

ERROR: trailing whitespace
#53144: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1945:
+                    0x0015FFFF, $

ERROR: trailing whitespace
#53145: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1946:
+                    One, $

ERROR: trailing whitespace
#53146: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1947:
+                    GSIG, $

ERROR: trailing whitespace
#53148: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1949:
+                }, $

ERROR: trailing whitespace
#53152: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1953:
+                    0x0015FFFF, $

ERROR: trailing whitespace
#53153: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1954:
+                    0x02, $

ERROR: trailing whitespace
#53154: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1955:
+                    GSIH, $

ERROR: trailing whitespace
#53156: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1957:
+                }, $

ERROR: trailing whitespace
#53160: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1961:
+                    0x0015FFFF, $

ERROR: trailing whitespace
#53161: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1962:
+                    0x03, $

ERROR: trailing whitespace
#53162: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1963:
+                    GSIE, $

ERROR: trailing whitespace
#53164: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1965:
+                }, $

ERROR: trailing whitespace
#53168: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1969:
+                    0x0016FFFF, $

ERROR: trailing whitespace
#53169: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1970:
+                    Zero, $

ERROR: trailing whitespace
#53170: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1971:
+                    GSIG, $

ERROR: trailing whitespace
#53172: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1973:
+                }, $

ERROR: trailing whitespace
#53176: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1977:
+                    0x0016FFFF, $

ERROR: trailing whitespace
#53177: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1978:
+                    One, $

ERROR: trailing whitespace
#53178: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1979:
+                    GSIH, $

ERROR: trailing whitespace
#53180: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1981:
+                }, $

ERROR: trailing whitespace
#53184: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1985:
+                    0x0016FFFF, $

ERROR: trailing whitespace
#53185: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1986:
+                    0x02, $

ERROR: trailing whitespace
#53186: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1987:
+                    GSIE, $

ERROR: trailing whitespace
#53188: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1989:
+                }, $

ERROR: trailing whitespace
#53192: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1993:
+                    0x0016FFFF, $

ERROR: trailing whitespace
#53193: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1994:
+                    0x03, $

ERROR: trailing whitespace
#53194: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1995:
+                    GSIF, $

ERROR: trailing whitespace
#53196: FILE: tests/data/acpi/q35/DSDT.tis.dsl:1997:
+                }, $

ERROR: trailing whitespace
#53200: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2001:
+                    0x0017FFFF, $

ERROR: trailing whitespace
#53201: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2002:
+                    Zero, $

ERROR: trailing whitespace
#53202: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2003:
+                    GSIH, $

ERROR: trailing whitespace
#53204: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2005:
+                }, $

ERROR: trailing whitespace
#53208: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2009:
+                    0x0017FFFF, $

ERROR: trailing whitespace
#53209: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2010:
+                    One, $

ERROR: trailing whitespace
#53210: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2011:
+                    GSIE, $

ERROR: trailing whitespace
#53212: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2013:
+                }, $

ERROR: trailing whitespace
#53216: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2017:
+                    0x0017FFFF, $

ERROR: trailing whitespace
#53217: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2018:
+                    0x02, $

ERROR: trailing whitespace
#53218: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2019:
+                    GSIF, $

ERROR: trailing whitespace
#53220: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2021:
+                }, $

ERROR: trailing whitespace
#53224: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2025:
+                    0x0017FFFF, $

ERROR: trailing whitespace
#53225: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2026:
+                    0x03, $

ERROR: trailing whitespace
#53226: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2027:
+                    GSIG, $

ERROR: trailing whitespace
#53228: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2029:
+                }, $

ERROR: trailing whitespace
#53232: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2033:
+                    0x0018FFFF, $

ERROR: trailing whitespace
#53233: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2034:
+                    Zero, $

ERROR: trailing whitespace
#53234: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2035:
+                    GSIE, $

ERROR: trailing whitespace
#53236: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2037:
+                }, $

ERROR: trailing whitespace
#53240: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2041:
+                    0x0018FFFF, $

ERROR: trailing whitespace
#53241: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2042:
+                    One, $

ERROR: trailing whitespace
#53242: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2043:
+                    GSIF, $

ERROR: trailing whitespace
#53244: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2045:
+                }, $

ERROR: trailing whitespace
#53248: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2049:
+                    0x0018FFFF, $

ERROR: trailing whitespace
#53249: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2050:
+                    0x02, $

ERROR: trailing whitespace
#53250: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2051:
+                    GSIG, $

ERROR: trailing whitespace
#53252: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2053:
+                }, $

ERROR: trailing whitespace
#53256: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2057:
+                    0x0018FFFF, $

ERROR: trailing whitespace
#53257: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2058:
+                    0x03, $

ERROR: trailing whitespace
#53258: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2059:
+                    GSIH, $

ERROR: trailing whitespace
#53260: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2061:
+                }, $

ERROR: trailing whitespace
#53264: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2065:
+                    0x0019FFFF, $

ERROR: trailing whitespace
#53265: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2066:
+                    Zero, $

ERROR: trailing whitespace
#53266: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2067:
+                    GSIA, $

ERROR: trailing whitespace
#53268: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2069:
+                }, $

ERROR: trailing whitespace
#53272: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2073:
+                    0x0019FFFF, $

ERROR: trailing whitespace
#53273: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2074:
+                    One, $

ERROR: trailing whitespace
#53274: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2075:
+                    GSIB, $

ERROR: trailing whitespace
#53276: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2077:
+                }, $

ERROR: trailing whitespace
#53280: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2081:
+                    0x0019FFFF, $

ERROR: trailing whitespace
#53281: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2082:
+                    0x02, $

ERROR: trailing whitespace
#53282: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2083:
+                    GSIC, $

ERROR: trailing whitespace
#53284: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2085:
+                }, $

ERROR: trailing whitespace
#53288: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2089:
+                    0x0019FFFF, $

ERROR: trailing whitespace
#53289: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2090:
+                    0x03, $

ERROR: trailing whitespace
#53290: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2091:
+                    GSID, $

ERROR: trailing whitespace
#53292: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2093:
+                }, $

ERROR: trailing whitespace
#53296: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2097:
+                    0x001AFFFF, $

ERROR: trailing whitespace
#53297: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2098:
+                    Zero, $

ERROR: trailing whitespace
#53298: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2099:
+                    GSIA, $

ERROR: trailing whitespace
#53300: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2101:
+                }, $

ERROR: trailing whitespace
#53304: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2105:
+                    0x001AFFFF, $

ERROR: trailing whitespace
#53305: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2106:
+                    One, $

ERROR: trailing whitespace
#53306: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2107:
+                    GSIB, $

ERROR: trailing whitespace
#53308: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2109:
+                }, $

ERROR: trailing whitespace
#53312: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2113:
+                    0x001AFFFF, $

ERROR: trailing whitespace
#53313: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2114:
+                    0x02, $

ERROR: trailing whitespace
#53314: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2115:
+                    GSIC, $

ERROR: trailing whitespace
#53316: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2117:
+                }, $

ERROR: trailing whitespace
#53320: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2121:
+                    0x001AFFFF, $

ERROR: trailing whitespace
#53321: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2122:
+                    0x03, $

ERROR: trailing whitespace
#53322: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2123:
+                    GSID, $

ERROR: trailing whitespace
#53324: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2125:
+                }, $

ERROR: trailing whitespace
#53328: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2129:
+                    0x001BFFFF, $

ERROR: trailing whitespace
#53329: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2130:
+                    Zero, $

ERROR: trailing whitespace
#53330: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2131:
+                    GSIA, $

ERROR: trailing whitespace
#53332: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2133:
+                }, $

ERROR: trailing whitespace
#53336: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2137:
+                    0x001BFFFF, $

ERROR: trailing whitespace
#53337: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2138:
+                    One, $

ERROR: trailing whitespace
#53338: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2139:
+                    GSIB, $

ERROR: trailing whitespace
#53340: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2141:
+                }, $

ERROR: trailing whitespace
#53344: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2145:
+                    0x001BFFFF, $

ERROR: trailing whitespace
#53345: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2146:
+                    0x02, $

ERROR: trailing whitespace
#53346: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2147:
+                    GSIC, $

ERROR: trailing whitespace
#53348: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2149:
+                }, $

ERROR: trailing whitespace
#53352: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2153:
+                    0x001BFFFF, $

ERROR: trailing whitespace
#53353: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2154:
+                    0x03, $

ERROR: trailing whitespace
#53354: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2155:
+                    GSID, $

ERROR: trailing whitespace
#53356: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2157:
+                }, $

ERROR: trailing whitespace
#53360: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2161:
+                    0x001CFFFF, $

ERROR: trailing whitespace
#53361: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2162:
+                    Zero, $

ERROR: trailing whitespace
#53362: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2163:
+                    GSIA, $

ERROR: trailing whitespace
#53364: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2165:
+                }, $

ERROR: trailing whitespace
#53368: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2169:
+                    0x001CFFFF, $

ERROR: trailing whitespace
#53369: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2170:
+                    One, $

ERROR: trailing whitespace
#53370: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2171:
+                    GSIB, $

ERROR: trailing whitespace
#53372: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2173:
+                }, $

ERROR: trailing whitespace
#53376: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2177:
+                    0x001CFFFF, $

ERROR: trailing whitespace
#53377: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2178:
+                    0x02, $

ERROR: trailing whitespace
#53378: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2179:
+                    GSIC, $

ERROR: trailing whitespace
#53380: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2181:
+                }, $

ERROR: trailing whitespace
#53384: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2185:
+                    0x001CFFFF, $

ERROR: trailing whitespace
#53385: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2186:
+                    0x03, $

ERROR: trailing whitespace
#53386: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2187:
+                    GSID, $

ERROR: trailing whitespace
#53388: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2189:
+                }, $

ERROR: trailing whitespace
#53392: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2193:
+                    0x001DFFFF, $

ERROR: trailing whitespace
#53393: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2194:
+                    Zero, $

ERROR: trailing whitespace
#53394: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2195:
+                    GSIA, $

ERROR: trailing whitespace
#53396: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2197:
+                }, $

ERROR: trailing whitespace
#53400: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2201:
+                    0x001DFFFF, $

ERROR: trailing whitespace
#53401: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2202:
+                    One, $

ERROR: trailing whitespace
#53402: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2203:
+                    GSIB, $

ERROR: trailing whitespace
#53404: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2205:
+                }, $

ERROR: trailing whitespace
#53408: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2209:
+                    0x001DFFFF, $

ERROR: trailing whitespace
#53409: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2210:
+                    0x02, $

ERROR: trailing whitespace
#53410: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2211:
+                    GSIC, $

ERROR: trailing whitespace
#53412: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2213:
+                }, $

ERROR: trailing whitespace
#53416: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2217:
+                    0x001DFFFF, $

ERROR: trailing whitespace
#53417: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2218:
+                    0x03, $

ERROR: trailing whitespace
#53418: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2219:
+                    GSID, $

ERROR: trailing whitespace
#53420: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2221:
+                }, $

ERROR: trailing whitespace
#53424: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2225:
+                    0x001EFFFF, $

ERROR: trailing whitespace
#53425: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2226:
+                    Zero, $

ERROR: trailing whitespace
#53426: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2227:
+                    GSIE, $

ERROR: trailing whitespace
#53428: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2229:
+                }, $

ERROR: trailing whitespace
#53432: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2233:
+                    0x001EFFFF, $

ERROR: trailing whitespace
#53433: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2234:
+                    One, $

ERROR: trailing whitespace
#53434: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2235:
+                    GSIF, $

ERROR: trailing whitespace
#53436: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2237:
+                }, $

ERROR: trailing whitespace
#53440: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2241:
+                    0x001EFFFF, $

ERROR: trailing whitespace
#53441: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2242:
+                    0x02, $

ERROR: trailing whitespace
#53442: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2243:
+                    GSIG, $

ERROR: trailing whitespace
#53444: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2245:
+                }, $

ERROR: trailing whitespace
#53448: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2249:
+                    0x001EFFFF, $

ERROR: trailing whitespace
#53449: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2250:
+                    0x03, $

ERROR: trailing whitespace
#53450: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2251:
+                    GSIH, $

ERROR: trailing whitespace
#53452: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2253:
+                }, $

ERROR: trailing whitespace
#53456: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2257:
+                    0x001FFFFF, $

ERROR: trailing whitespace
#53457: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2258:
+                    Zero, $

ERROR: trailing whitespace
#53458: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2259:
+                    GSIA, $

ERROR: trailing whitespace
#53460: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2261:
+                }, $

ERROR: trailing whitespace
#53464: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2265:
+                    0x001FFFFF, $

ERROR: trailing whitespace
#53465: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2266:
+                    One, $

ERROR: trailing whitespace
#53466: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2267:
+                    GSIB, $

ERROR: trailing whitespace
#53468: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2269:
+                }, $

ERROR: trailing whitespace
#53472: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2273:
+                    0x001FFFFF, $

ERROR: trailing whitespace
#53473: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2274:
+                    0x02, $

ERROR: trailing whitespace
#53474: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2275:
+                    GSIC, $

ERROR: trailing whitespace
#53476: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2277:
+                }, $

ERROR: trailing whitespace
#53480: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2281:
+                    0x001FFFFF, $

ERROR: trailing whitespace
#53481: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2282:
+                    0x03, $

ERROR: trailing whitespace
#53482: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2283:
+                    GSID, $

ERROR: trailing whitespace
#53501: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2302:
+            PRQA,   8, $

ERROR: trailing whitespace
#53502: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2303:
+            PRQB,   8, $

ERROR: trailing whitespace
#53503: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2304:
+            PRQC,   8, $

ERROR: trailing whitespace
#53504: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2305:
+            PRQD,   8, $

ERROR: trailing whitespace
#53505: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2306:
+            Offset (0x08), $

ERROR: trailing whitespace
#53506: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2307:
+            PRQE,   8, $

ERROR: trailing whitespace
#53507: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2308:
+            PRQF,   8, $

ERROR: trailing whitespace
#53508: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2309:
+            PRQG,   8, $

ERROR: trailing whitespace
#54060: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2861:
+                Offset (0x04), $

ERROR: trailing whitespace
#54061: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2862:
+                CPEN,   1, $

ERROR: trailing whitespace
#54062: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2863:
+                CINS,   1, $

ERROR: trailing whitespace
#54063: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2864:
+                CRMV,   1, $

ERROR: trailing whitespace
#54064: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2865:
+                CEJ0,   1, $

ERROR: trailing whitespace
#54065: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2866:
+                Offset (0x05), $

ERROR: trailing whitespace
#54071: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2872:
+                CSEL,   32, $

ERROR: trailing whitespace
#54072: FILE: tests/data/acpi/q35/DSDT.tis.dsl:2873:
+                Offset (0x08), $

ERROR: trailing whitespace
#54266: FILE: tests/data/acpi/q35/DSDT.tis.dsl:3067:
+            One, $

ERROR: trailing whitespace
#54267: FILE: tests/data/acpi/q35/DSDT.tis.dsl:3068:
+            One, $

ERROR: trailing whitespace
#54268: FILE: tests/data/acpi/q35/DSDT.tis.dsl:3069:
+            Zero, $

ERROR: trailing whitespace
#54273: FILE: tests/data/acpi/q35/DSDT.tis.dsl:3074:
+            0x02, $

ERROR: trailing whitespace
#54274: FILE: tests/data/acpi/q35/DSDT.tis.dsl:3075:
+            0x02, $

ERROR: trailing whitespace
#54275: FILE: tests/data/acpi/q35/DSDT.tis.dsl:3076:
+            Zero, $

ERROR: trailing whitespace
#54280: FILE: tests/data/acpi/q35/DSDT.tis.dsl:3081:
+            Zero, $

ERROR: trailing whitespace
#54281: FILE: tests/data/acpi/q35/DSDT.tis.dsl:3082:
+            Zero, $

ERROR: trailing whitespace
#54282: FILE: tests/data/acpi/q35/DSDT.tis.dsl:3083:
+            Zero, $

ERROR: trailing whitespace
#54351: FILE: tests/data/acpi/q35/DSDT.tis.dsl:3152:
+                    PPIN,   8, $

ERROR: trailing whitespace
#54352: FILE: tests/data/acpi/q35/DSDT.tis.dsl:3153:
+                    PPIP,   32, $

ERROR: trailing whitespace
#54353: FILE: tests/data/acpi/q35/DSDT.tis.dsl:3154:
+                    PPRP,   32, $

ERROR: trailing whitespace
#54354: FILE: tests/data/acpi/q35/DSDT.tis.dsl:3155:
+                    PPRQ,   32, $

ERROR: trailing whitespace
#54355: FILE: tests/data/acpi/q35/DSDT.tis.dsl:3156:
+                    PPRM,   32, $

ERROR: trailing whitespace
#54383: FILE: tests/data/acpi/q35/DSDT.tis.dsl:3184:
+                    Zero, $

ERROR: trailing whitespace
#54388: FILE: tests/data/acpi/q35/DSDT.tis.dsl:3189:
+                    Zero, $

ERROR: trailing whitespace
#54389: FILE: tests/data/acpi/q35/DSDT.tis.dsl:3190:
+                    Zero, $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/FACP.acpihmat and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/FACP.acpihmat.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/FACP.acpihmat.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#54535: FILE: tests/data/acpi/q35/FACP.acpihmat.dsl:5:
+ * $

ERROR: trailing whitespace
#54694: FILE: tests/data/acpi/q35/FACP.acpihmat.dsl:164:
+    0000: 46 41 43 50 F4 00 00 00 03 1F 42 4F 43 48 53 20  // FACP......BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/FACP.bridge and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/FACP.bridge.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/FACP.bridge.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#54724: FILE: tests/data/acpi/q35/FACP.bridge.dsl:5:
+ * $

ERROR: trailing whitespace
#54883: FILE: tests/data/acpi/q35/FACP.bridge.dsl:164:
+    0000: 46 41 43 50 F4 00 00 00 03 1F 42 4F 43 48 53 20  // FACP......BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/FACP.cphp and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/FACP.cphp.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/FACP.cphp.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#54913: FILE: tests/data/acpi/q35/FACP.cphp.dsl:5:
+ * $

ERROR: trailing whitespace
#55072: FILE: tests/data/acpi/q35/FACP.cphp.dsl:164:
+    0000: 46 41 43 50 F4 00 00 00 03 1F 42 4F 43 48 53 20  // FACP......BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/FACP.dimmpxm and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/FACP.dimmpxm.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/FACP.dimmpxm.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#55102: FILE: tests/data/acpi/q35/FACP.dimmpxm.dsl:5:
+ * $

ERROR: trailing whitespace
#55261: FILE: tests/data/acpi/q35/FACP.dimmpxm.dsl:164:
+    0000: 46 41 43 50 F4 00 00 00 03 1F 42 4F 43 48 53 20  // FACP......BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/FACP.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/FACP.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#55287: FILE: tests/data/acpi/q35/FACP.dsl:5:
+ * $

ERROR: trailing whitespace
#55446: FILE: tests/data/acpi/q35/FACP.dsl:164:
+    0000: 46 41 43 50 F4 00 00 00 03 1F 42 4F 43 48 53 20  // FACP......BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/FACP.ipmibt and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/FACP.ipmibt.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/FACP.ipmibt.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#55476: FILE: tests/data/acpi/q35/FACP.ipmibt.dsl:5:
+ * $

ERROR: trailing whitespace
#55635: FILE: tests/data/acpi/q35/FACP.ipmibt.dsl:164:
+    0000: 46 41 43 50 F4 00 00 00 03 1F 42 4F 43 48 53 20  // FACP......BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/FACP.memhp and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/FACP.memhp.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/FACP.memhp.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#55665: FILE: tests/data/acpi/q35/FACP.memhp.dsl:5:
+ * $

ERROR: trailing whitespace
#55824: FILE: tests/data/acpi/q35/FACP.memhp.dsl:164:
+    0000: 46 41 43 50 F4 00 00 00 03 1F 42 4F 43 48 53 20  // FACP......BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/FACP.mmio64 and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/FACP.mmio64.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/FACP.mmio64.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#55854: FILE: tests/data/acpi/q35/FACP.mmio64.dsl:5:
+ * $

ERROR: trailing whitespace
#56013: FILE: tests/data/acpi/q35/FACP.mmio64.dsl:164:
+    0000: 46 41 43 50 F4 00 00 00 03 1F 42 4F 43 48 53 20  // FACP......BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/FACP.numamem and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/FACP.numamem.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/FACP.numamem.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#56043: FILE: tests/data/acpi/q35/FACP.numamem.dsl:5:
+ * $

ERROR: trailing whitespace
#56202: FILE: tests/data/acpi/q35/FACP.numamem.dsl:164:
+    0000: 46 41 43 50 F4 00 00 00 03 1F 42 4F 43 48 53 20  // FACP......BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/FACP.tis and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/FACP.tis.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/FACP.tis.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#56232: FILE: tests/data/acpi/q35/FACP.tis.dsl:5:
+ * $

ERROR: trailing whitespace
#56391: FILE: tests/data/acpi/q35/FACP.tis.dsl:164:
+    0000: 46 41 43 50 F4 00 00 00 03 1F 42 4F 43 48 53 20  // FACP......BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/FACS.acpihmat and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/FACS.acpihmat.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/FACS.acpihmat.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#56421: FILE: tests/data/acpi/q35/FACS.acpihmat.dsl:5:
+ * $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/FACS.bridge and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/FACS.bridge.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/FACS.bridge.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#56463: FILE: tests/data/acpi/q35/FACS.bridge.dsl:5:
+ * $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/FACS.cphp and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/FACS.cphp.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/FACS.cphp.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#56505: FILE: tests/data/acpi/q35/FACS.cphp.dsl:5:
+ * $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/FACS.dimmpxm and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/FACS.dimmpxm.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/FACS.dimmpxm.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#56547: FILE: tests/data/acpi/q35/FACS.dimmpxm.dsl:5:
+ * $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/FACS.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/FACS.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#56585: FILE: tests/data/acpi/q35/FACS.dsl:5:
+ * $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/FACS.ipmibt and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/FACS.ipmibt.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/FACS.ipmibt.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#56627: FILE: tests/data/acpi/q35/FACS.ipmibt.dsl:5:
+ * $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/FACS.memhp and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/FACS.memhp.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/FACS.memhp.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#56669: FILE: tests/data/acpi/q35/FACS.memhp.dsl:5:
+ * $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/FACS.mmio64 and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/FACS.mmio64.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/FACS.mmio64.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#56711: FILE: tests/data/acpi/q35/FACS.mmio64.dsl:5:
+ * $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/FACS.numamem and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/FACS.numamem.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/FACS.numamem.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#56753: FILE: tests/data/acpi/q35/FACS.numamem.dsl:5:
+ * $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/FACS.tis and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/FACS.tis.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/FACS.tis.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#56795: FILE: tests/data/acpi/q35/FACS.tis.dsl:5:
+ * $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/HMAT.acpihmat.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/HMAT.acpihmat.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#56833: FILE: tests/data/acpi/q35/HMAT.acpihmat.dsl:5:
+ * $

ERROR: trailing whitespace
#56943: FILE: tests/data/acpi/q35/HMAT.acpihmat.dsl:115:
+    0000: 48 4D 41 54 18 01 00 00 02 98 42 4F 43 48 53 20  // HMAT......BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/HMAT.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/HMAT.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#56971: FILE: tests/data/acpi/q35/HMAT.dsl:5:
+ * $

ERROR: trailing whitespace
#57081: FILE: tests/data/acpi/q35/HMAT.dsl:115:
+    0000: 48 4D 41 54 18 01 00 00 02 98 42 4F 43 48 53 20  // HMAT......BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/HPET.acpihmat and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/HPET.acpihmat.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/HPET.acpihmat.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#57113: FILE: tests/data/acpi/q35/HPET.acpihmat.dsl:5:
+ * $

ERROR: trailing whitespace
#57148: FILE: tests/data/acpi/q35/HPET.acpihmat.dsl:40:
+    0000: 48 50 45 54 38 00 00 00 01 03 42 4F 43 48 53 20  // HPET8.....BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/HPET.bridge and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/HPET.bridge.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/HPET.bridge.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#57166: FILE: tests/data/acpi/q35/HPET.bridge.dsl:5:
+ * $

ERROR: trailing whitespace
#57201: FILE: tests/data/acpi/q35/HPET.bridge.dsl:40:
+    0000: 48 50 45 54 38 00 00 00 01 03 42 4F 43 48 53 20  // HPET8.....BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/HPET.cphp and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/HPET.cphp.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/HPET.cphp.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#57219: FILE: tests/data/acpi/q35/HPET.cphp.dsl:5:
+ * $

ERROR: trailing whitespace
#57254: FILE: tests/data/acpi/q35/HPET.cphp.dsl:40:
+    0000: 48 50 45 54 38 00 00 00 01 03 42 4F 43 48 53 20  // HPET8.....BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/HPET.dimmpxm and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/HPET.dimmpxm.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/HPET.dimmpxm.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#57272: FILE: tests/data/acpi/q35/HPET.dimmpxm.dsl:5:
+ * $

ERROR: trailing whitespace
#57307: FILE: tests/data/acpi/q35/HPET.dimmpxm.dsl:40:
+    0000: 48 50 45 54 38 00 00 00 01 03 42 4F 43 48 53 20  // HPET8.....BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/HPET.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/HPET.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#57321: FILE: tests/data/acpi/q35/HPET.dsl:5:
+ * $

ERROR: trailing whitespace
#57356: FILE: tests/data/acpi/q35/HPET.dsl:40:
+    0000: 48 50 45 54 38 00 00 00 01 03 42 4F 43 48 53 20  // HPET8.....BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/HPET.ipmibt and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/HPET.ipmibt.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/HPET.ipmibt.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#57374: FILE: tests/data/acpi/q35/HPET.ipmibt.dsl:5:
+ * $

ERROR: trailing whitespace
#57409: FILE: tests/data/acpi/q35/HPET.ipmibt.dsl:40:
+    0000: 48 50 45 54 38 00 00 00 01 03 42 4F 43 48 53 20  // HPET8.....BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/HPET.memhp and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/HPET.memhp.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/HPET.memhp.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#57427: FILE: tests/data/acpi/q35/HPET.memhp.dsl:5:
+ * $

ERROR: trailing whitespace
#57462: FILE: tests/data/acpi/q35/HPET.memhp.dsl:40:
+    0000: 48 50 45 54 38 00 00 00 01 03 42 4F 43 48 53 20  // HPET8.....BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/HPET.mmio64 and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/HPET.mmio64.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/HPET.mmio64.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#57480: FILE: tests/data/acpi/q35/HPET.mmio64.dsl:5:
+ * $

ERROR: trailing whitespace
#57515: FILE: tests/data/acpi/q35/HPET.mmio64.dsl:40:
+    0000: 48 50 45 54 38 00 00 00 01 03 42 4F 43 48 53 20  // HPET8.....BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/HPET.numamem and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/HPET.numamem.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/HPET.numamem.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#57533: FILE: tests/data/acpi/q35/HPET.numamem.dsl:5:
+ * $

ERROR: trailing whitespace
#57568: FILE: tests/data/acpi/q35/HPET.numamem.dsl:40:
+    0000: 48 50 45 54 38 00 00 00 01 03 42 4F 43 48 53 20  // HPET8.....BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/HPET.tis and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/HPET.tis.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/HPET.tis.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#57586: FILE: tests/data/acpi/q35/HPET.tis.dsl:5:
+ * $

ERROR: trailing whitespace
#57621: FILE: tests/data/acpi/q35/HPET.tis.dsl:40:
+    0000: 48 50 45 54 38 00 00 00 01 03 42 4F 43 48 53 20  // HPET8.....BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/MCFG.acpihmat and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/MCFG.acpihmat.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/MCFG.acpihmat.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#57639: FILE: tests/data/acpi/q35/MCFG.acpihmat.dsl:5:
+ * $

ERROR: trailing whitespace
#57667: FILE: tests/data/acpi/q35/MCFG.acpihmat.dsl:33:
+    0000: 4D 43 46 47 3C 00 00 00 01 EF 42 4F 43 48 53 20  // MCFG<.....BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/MCFG.bridge and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/MCFG.bridge.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/MCFG.bridge.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#57685: FILE: tests/data/acpi/q35/MCFG.bridge.dsl:5:
+ * $

ERROR: trailing whitespace
#57713: FILE: tests/data/acpi/q35/MCFG.bridge.dsl:33:
+    0000: 4D 43 46 47 3C 00 00 00 01 EF 42 4F 43 48 53 20  // MCFG<.....BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/MCFG.cphp and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/MCFG.cphp.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/MCFG.cphp.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#57731: FILE: tests/data/acpi/q35/MCFG.cphp.dsl:5:
+ * $

ERROR: trailing whitespace
#57759: FILE: tests/data/acpi/q35/MCFG.cphp.dsl:33:
+    0000: 4D 43 46 47 3C 00 00 00 01 EF 42 4F 43 48 53 20  // MCFG<.....BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/MCFG.dimmpxm and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/MCFG.dimmpxm.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/MCFG.dimmpxm.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#57777: FILE: tests/data/acpi/q35/MCFG.dimmpxm.dsl:5:
+ * $

ERROR: trailing whitespace
#57805: FILE: tests/data/acpi/q35/MCFG.dimmpxm.dsl:33:
+    0000: 4D 43 46 47 3C 00 00 00 01 EF 42 4F 43 48 53 20  // MCFG<.....BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/MCFG.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/MCFG.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#57819: FILE: tests/data/acpi/q35/MCFG.dsl:5:
+ * $

ERROR: trailing whitespace
#57847: FILE: tests/data/acpi/q35/MCFG.dsl:33:
+    0000: 4D 43 46 47 3C 00 00 00 01 EF 42 4F 43 48 53 20  // MCFG<.....BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/MCFG.ipmibt and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/MCFG.ipmibt.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/MCFG.ipmibt.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#57865: FILE: tests/data/acpi/q35/MCFG.ipmibt.dsl:5:
+ * $

ERROR: trailing whitespace
#57893: FILE: tests/data/acpi/q35/MCFG.ipmibt.dsl:33:
+    0000: 4D 43 46 47 3C 00 00 00 01 EF 42 4F 43 48 53 20  // MCFG<.....BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/MCFG.memhp and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/MCFG.memhp.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/MCFG.memhp.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#57911: FILE: tests/data/acpi/q35/MCFG.memhp.dsl:5:
+ * $

ERROR: trailing whitespace
#57939: FILE: tests/data/acpi/q35/MCFG.memhp.dsl:33:
+    0000: 4D 43 46 47 3C 00 00 00 01 EF 42 4F 43 48 53 20  // MCFG<.....BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/MCFG.mmio64 and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/MCFG.mmio64.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/MCFG.mmio64.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#57957: FILE: tests/data/acpi/q35/MCFG.mmio64.dsl:5:
+ * $

ERROR: trailing whitespace
#57985: FILE: tests/data/acpi/q35/MCFG.mmio64.dsl:33:
+    0000: 4D 43 46 47 3C 00 00 00 01 EF 42 4F 43 48 53 20  // MCFG<.....BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/MCFG.numamem and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/MCFG.numamem.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/MCFG.numamem.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#58003: FILE: tests/data/acpi/q35/MCFG.numamem.dsl:5:
+ * $

ERROR: trailing whitespace
#58031: FILE: tests/data/acpi/q35/MCFG.numamem.dsl:33:
+    0000: 4D 43 46 47 3C 00 00 00 01 EF 42 4F 43 48 53 20  // MCFG<.....BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/MCFG.tis and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/MCFG.tis.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/MCFG.tis.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#58049: FILE: tests/data/acpi/q35/MCFG.tis.dsl:5:
+ * $

ERROR: trailing whitespace
#58077: FILE: tests/data/acpi/q35/MCFG.tis.dsl:33:
+    0000: 4D 43 46 47 3C 00 00 00 01 EF 42 4F 43 48 53 20  // MCFG<.....BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/NFIT.dimmpxm.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/NFIT.dimmpxm.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#58091: FILE: tests/data/acpi/q35/NFIT.dimmpxm.dsl:5:
+ * $

ERROR: trailing whitespace
#58187: FILE: tests/data/acpi/q35/NFIT.dimmpxm.dsl:101:
+    0000: 4E 46 49 54 F0 00 00 00 01 24 42 4F 43 48 53 20  // NFIT.....$BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/NFIT.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/NFIT.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#58212: FILE: tests/data/acpi/q35/NFIT.dsl:5:
+ * $

ERROR: trailing whitespace
#58308: FILE: tests/data/acpi/q35/NFIT.dsl:101:
+    0000: 4E 46 49 54 F0 00 00 00 01 24 42 4F 43 48 53 20  // NFIT.....$BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/SLIT.cphp.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/SLIT.cphp.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#58333: FILE: tests/data/acpi/q35/SLIT.cphp.dsl:5:
+ * $

ERROR: trailing whitespace
#58357: FILE: tests/data/acpi/q35/SLIT.cphp.dsl:29:
+    0000: 53 4C 49 54 30 00 00 00 01 2C 42 4F 43 48 53 20  // SLIT0....,BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/SLIT.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/SLIT.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#58370: FILE: tests/data/acpi/q35/SLIT.dsl:5:
+ * $

ERROR: trailing whitespace
#58394: FILE: tests/data/acpi/q35/SLIT.dsl:29:
+    0000: 53 4C 49 54 30 00 00 00 01 2C 42 4F 43 48 53 20  // SLIT0....,BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/SLIT.memhp.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/SLIT.memhp.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#58407: FILE: tests/data/acpi/q35/SLIT.memhp.dsl:5:
+ * $

ERROR: trailing whitespace
#58431: FILE: tests/data/acpi/q35/SLIT.memhp.dsl:29:
+    0000: 53 4C 49 54 30 00 00 00 01 2C 42 4F 43 48 53 20  // SLIT0....,BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/SRAT.acpihmat.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/SRAT.acpihmat.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#58444: FILE: tests/data/acpi/q35/SRAT.acpihmat.dsl:5:
+ * $

ERROR: trailing whitespace
#58559: FILE: tests/data/acpi/q35/SRAT.acpihmat.dsl:120:
+    0000: 53 52 41 54 18 01 00 00 01 C0 42 4F 43 48 53 20  // SRAT......BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/SRAT.cphp.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/SRAT.cphp.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#58587: FILE: tests/data/acpi/q35/SRAT.cphp.dsl:5:
+ * $

ERROR: trailing whitespace
#58732: FILE: tests/data/acpi/q35/SRAT.cphp.dsl:150:
+    0000: 53 52 41 54 30 01 00 00 01 36 42 4F 43 48 53 20  // SRAT0....6BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/SRAT.dimmpxm.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/SRAT.dimmpxm.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#58761: FILE: tests/data/acpi/q35/SRAT.dimmpxm.dsl:5:
+ * $

ERROR: trailing whitespace
#58926: FILE: tests/data/acpi/q35/SRAT.dimmpxm.dsl:170:
+    0000: 53 52 41 54 88 01 00 00 01 68 42 4F 43 48 53 20  // SRAT.....hBOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/SRAT.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/SRAT.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#58961: FILE: tests/data/acpi/q35/SRAT.dsl:5:
+ * $

ERROR: trailing whitespace
#59051: FILE: tests/data/acpi/q35/SRAT.dsl:95:
+    0000: 53 52 41 54 E0 00 00 00 01 F5 42 4F 43 48 53 20  // SRAT......BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/SRAT.memhp.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/SRAT.memhp.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#59075: FILE: tests/data/acpi/q35/SRAT.memhp.dsl:5:
+ * $

ERROR: trailing whitespace
#59179: FILE: tests/data/acpi/q35/SRAT.memhp.dsl:109:
+    0000: 53 52 41 54 08 01 00 00 01 A2 42 4F 43 48 53 20  // SRAT......BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/SRAT.mmio64.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/SRAT.mmio64.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#59206: FILE: tests/data/acpi/q35/SRAT.mmio64.dsl:5:
+ * $

ERROR: trailing whitespace
#59296: FILE: tests/data/acpi/q35/SRAT.mmio64.dsl:95:
+    0000: 53 52 41 54 E0 00 00 00 01 3B 42 4F 43 48 53 20  // SRAT.....;BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/SRAT.numamem.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/SRAT.numamem.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#59320: FILE: tests/data/acpi/q35/SRAT.numamem.dsl:5:
+ * $

ERROR: trailing whitespace
#59410: FILE: tests/data/acpi/q35/SRAT.numamem.dsl:95:
+    0000: 53 52 41 54 E0 00 00 00 01 F5 42 4F 43 48 53 20  // SRAT......BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/SSDT.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/SSDT.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#59434: FILE: tests/data/acpi/q35/SSDT.dsl:5:
+ * $

ERROR: trailing whitespace
#59469: FILE: tests/data/acpi/q35/SSDT.dsl:40:
+                    HDLE,   32, $

ERROR: trailing whitespace
#59470: FILE: tests/data/acpi/q35/SSDT.dsl:41:
+                    REVS,   32, $

ERROR: trailing whitespace
#59471: FILE: tests/data/acpi/q35/SSDT.dsl:42:
+                    FUNC,   32, $

ERROR: trailing whitespace
#59477: FILE: tests/data/acpi/q35/SSDT.dsl:48:
+                    RLEN,   32, $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/TPM2.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/TPM2.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#59645: FILE: tests/data/acpi/q35/TPM2.dsl:5:
+ * $

ERROR: trailing whitespace
#59674: FILE: tests/data/acpi/q35/TPM2.dsl:34:
+    0000: 54 50 4D 32 4C 00 00 00 04 72 42 4F 43 48 53 20  // TPM2L....rBOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/TPM2.tis.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/TPM2.tis.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#59689: FILE: tests/data/acpi/q35/TPM2.tis.dsl:5:
+ * $

ERROR: trailing whitespace
#59718: FILE: tests/data/acpi/q35/TPM2.tis.dsl:34:
+    0000: 54 50 4D 32 4C 00 00 00 04 72 42 4F 43 48 53 20  // TPM2L....rBOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/WAET.acpihmat and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/WAET.acpihmat.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/WAET.acpihmat.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#59737: FILE: tests/data/acpi/q35/WAET.acpihmat.dsl:5:
+ * $

ERROR: trailing whitespace
#59761: FILE: tests/data/acpi/q35/WAET.acpihmat.dsl:29:
+    0000: 57 41 45 54 28 00 00 00 01 88 42 4F 43 48 53 20  // WAET(.....BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/WAET.bridge and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/WAET.bridge.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/WAET.bridge.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#59778: FILE: tests/data/acpi/q35/WAET.bridge.dsl:5:
+ * $

ERROR: trailing whitespace
#59802: FILE: tests/data/acpi/q35/WAET.bridge.dsl:29:
+    0000: 57 41 45 54 28 00 00 00 01 88 42 4F 43 48 53 20  // WAET(.....BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/WAET.cphp and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/WAET.cphp.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/WAET.cphp.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#59819: FILE: tests/data/acpi/q35/WAET.cphp.dsl:5:
+ * $

ERROR: trailing whitespace
#59843: FILE: tests/data/acpi/q35/WAET.cphp.dsl:29:
+    0000: 57 41 45 54 28 00 00 00 01 88 42 4F 43 48 53 20  // WAET(.....BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/WAET.dimmpxm and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/WAET.dimmpxm.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/WAET.dimmpxm.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#59860: FILE: tests/data/acpi/q35/WAET.dimmpxm.dsl:5:
+ * $

ERROR: trailing whitespace
#59884: FILE: tests/data/acpi/q35/WAET.dimmpxm.dsl:29:
+    0000: 57 41 45 54 28 00 00 00 01 88 42 4F 43 48 53 20  // WAET(.....BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/WAET.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/WAET.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#59897: FILE: tests/data/acpi/q35/WAET.dsl:5:
+ * $

ERROR: trailing whitespace
#59921: FILE: tests/data/acpi/q35/WAET.dsl:29:
+    0000: 57 41 45 54 28 00 00 00 01 88 42 4F 43 48 53 20  // WAET(.....BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/WAET.ipmibt and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/WAET.ipmibt.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/WAET.ipmibt.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#59938: FILE: tests/data/acpi/q35/WAET.ipmibt.dsl:5:
+ * $

ERROR: trailing whitespace
#59962: FILE: tests/data/acpi/q35/WAET.ipmibt.dsl:29:
+    0000: 57 41 45 54 28 00 00 00 01 88 42 4F 43 48 53 20  // WAET(.....BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/WAET.memhp and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/WAET.memhp.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/WAET.memhp.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#59979: FILE: tests/data/acpi/q35/WAET.memhp.dsl:5:
+ * $

ERROR: trailing whitespace
#60003: FILE: tests/data/acpi/q35/WAET.memhp.dsl:29:
+    0000: 57 41 45 54 28 00 00 00 01 88 42 4F 43 48 53 20  // WAET(.....BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/WAET.mmio64 and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/WAET.mmio64.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/WAET.mmio64.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#60020: FILE: tests/data/acpi/q35/WAET.mmio64.dsl:5:
+ * $

ERROR: trailing whitespace
#60044: FILE: tests/data/acpi/q35/WAET.mmio64.dsl:29:
+    0000: 57 41 45 54 28 00 00 00 01 88 42 4F 43 48 53 20  // WAET(.....BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/WAET.numamem and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/WAET.numamem.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/WAET.numamem.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#60061: FILE: tests/data/acpi/q35/WAET.numamem.dsl:5:
+ * $

ERROR: trailing whitespace
#60085: FILE: tests/data/acpi/q35/WAET.numamem.dsl:29:
+    0000: 57 41 45 54 28 00 00 00 01 88 42 4F 43 48 53 20  // WAET(.....BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/WAET.tis and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/WAET.tis.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/q35/WAET.tis.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#60102: FILE: tests/data/acpi/q35/WAET.tis.dsl:5:
+ * $

ERROR: trailing whitespace
#60126: FILE: tests/data/acpi/q35/WAET.tis.dsl:29:
+    0000: 57 41 45 54 28 00 00 00 01 88 42 4F 43 48 53 20  // WAET(.....BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/virt/APIC.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/virt/APIC.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#60139: FILE: tests/data/acpi/virt/APIC.dsl:5:
+ * $

ERROR: trailing whitespace
#60202: FILE: tests/data/acpi/virt/APIC.dsl:68:
+    0000: 41 50 49 43 A8 00 00 00 03 B3 42 4F 43 48 53 20  // APIC......BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/virt/APIC.memhp.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/virt/APIC.memhp.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#60223: FILE: tests/data/acpi/virt/APIC.memhp.dsl:5:
+ * $

ERROR: trailing whitespace
#60286: FILE: tests/data/acpi/virt/APIC.memhp.dsl:68:
+    0000: 41 50 49 43 A8 00 00 00 03 B3 42 4F 43 48 53 20  // APIC......BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/virt/APIC.numamem.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/virt/APIC.numamem.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#60307: FILE: tests/data/acpi/virt/APIC.numamem.dsl:5:
+ * $

ERROR: trailing whitespace
#60370: FILE: tests/data/acpi/virt/APIC.numamem.dsl:68:
+    0000: 41 50 49 43 A8 00 00 00 03 B3 42 4F 43 48 53 20  // APIC......BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/virt/DSDT.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/virt/DSDT.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#60391: FILE: tests/data/acpi/virt/DSDT.dsl:5:
+ * $

ERROR: trailing whitespace
#61037: FILE: tests/data/acpi/virt/DSDT.dsl:651:
+                    0xFFFF, $

ERROR: trailing whitespace
#61038: FILE: tests/data/acpi/virt/DSDT.dsl:652:
+                    Zero, $

ERROR: trailing whitespace
#61039: FILE: tests/data/acpi/virt/DSDT.dsl:653:
+                    GSI0, $

ERROR: trailing whitespace
#61041: FILE: tests/data/acpi/virt/DSDT.dsl:655:
+                }, $

ERROR: trailing whitespace
#61045: FILE: tests/data/acpi/virt/DSDT.dsl:659:
+                    0xFFFF, $

ERROR: trailing whitespace
#61046: FILE: tests/data/acpi/virt/DSDT.dsl:660:
+                    One, $

ERROR: trailing whitespace
#61047: FILE: tests/data/acpi/virt/DSDT.dsl:661:
+                    GSI1, $

ERROR: trailing whitespace
#61049: FILE: tests/data/acpi/virt/DSDT.dsl:663:
+                }, $

ERROR: trailing whitespace
#61053: FILE: tests/data/acpi/virt/DSDT.dsl:667:
+                    0xFFFF, $

ERROR: trailing whitespace
#61054: FILE: tests/data/acpi/virt/DSDT.dsl:668:
+                    0x02, $

ERROR: trailing whitespace
#61055: FILE: tests/data/acpi/virt/DSDT.dsl:669:
+                    GSI2, $

ERROR: trailing whitespace
#61057: FILE: tests/data/acpi/virt/DSDT.dsl:671:
+                }, $

ERROR: trailing whitespace
#61061: FILE: tests/data/acpi/virt/DSDT.dsl:675:
+                    0xFFFF, $

ERROR: trailing whitespace
#61062: FILE: tests/data/acpi/virt/DSDT.dsl:676:
+                    0x03, $

ERROR: trailing whitespace
#61063: FILE: tests/data/acpi/virt/DSDT.dsl:677:
+                    GSI3, $

ERROR: trailing whitespace
#61065: FILE: tests/data/acpi/virt/DSDT.dsl:679:
+                }, $

ERROR: trailing whitespace
#61069: FILE: tests/data/acpi/virt/DSDT.dsl:683:
+                    0x0001FFFF, $

ERROR: trailing whitespace
#61070: FILE: tests/data/acpi/virt/DSDT.dsl:684:
+                    Zero, $

ERROR: trailing whitespace
#61071: FILE: tests/data/acpi/virt/DSDT.dsl:685:
+                    GSI1, $

ERROR: trailing whitespace
#61073: FILE: tests/data/acpi/virt/DSDT.dsl:687:
+                }, $

ERROR: trailing whitespace
#61077: FILE: tests/data/acpi/virt/DSDT.dsl:691:
+                    0x0001FFFF, $

ERROR: trailing whitespace
#61078: FILE: tests/data/acpi/virt/DSDT.dsl:692:
+                    One, $

ERROR: trailing whitespace
#61079: FILE: tests/data/acpi/virt/DSDT.dsl:693:
+                    GSI2, $

ERROR: trailing whitespace
#61081: FILE: tests/data/acpi/virt/DSDT.dsl:695:
+                }, $

ERROR: trailing whitespace
#61085: FILE: tests/data/acpi/virt/DSDT.dsl:699:
+                    0x0001FFFF, $

ERROR: trailing whitespace
#61086: FILE: tests/data/acpi/virt/DSDT.dsl:700:
+                    0x02, $

ERROR: trailing whitespace
#61087: FILE: tests/data/acpi/virt/DSDT.dsl:701:
+                    GSI3, $

ERROR: trailing whitespace
#61089: FILE: tests/data/acpi/virt/DSDT.dsl:703:
+                }, $

ERROR: trailing whitespace
#61093: FILE: tests/data/acpi/virt/DSDT.dsl:707:
+                    0x0001FFFF, $

ERROR: trailing whitespace
#61094: FILE: tests/data/acpi/virt/DSDT.dsl:708:
+                    0x03, $

ERROR: trailing whitespace
#61095: FILE: tests/data/acpi/virt/DSDT.dsl:709:
+                    GSI0, $

ERROR: trailing whitespace
#61097: FILE: tests/data/acpi/virt/DSDT.dsl:711:
+                }, $

ERROR: trailing whitespace
#61101: FILE: tests/data/acpi/virt/DSDT.dsl:715:
+                    0x0002FFFF, $

ERROR: trailing whitespace
#61102: FILE: tests/data/acpi/virt/DSDT.dsl:716:
+                    Zero, $

ERROR: trailing whitespace
#61103: FILE: tests/data/acpi/virt/DSDT.dsl:717:
+                    GSI2, $

ERROR: trailing whitespace
#61105: FILE: tests/data/acpi/virt/DSDT.dsl:719:
+                }, $

ERROR: trailing whitespace
#61109: FILE: tests/data/acpi/virt/DSDT.dsl:723:
+                    0x0002FFFF, $

ERROR: trailing whitespace
#61110: FILE: tests/data/acpi/virt/DSDT.dsl:724:
+                    One, $

ERROR: trailing whitespace
#61111: FILE: tests/data/acpi/virt/DSDT.dsl:725:
+                    GSI3, $

ERROR: trailing whitespace
#61113: FILE: tests/data/acpi/virt/DSDT.dsl:727:
+                }, $

ERROR: trailing whitespace
#61117: FILE: tests/data/acpi/virt/DSDT.dsl:731:
+                    0x0002FFFF, $

ERROR: trailing whitespace
#61118: FILE: tests/data/acpi/virt/DSDT.dsl:732:
+                    0x02, $

ERROR: trailing whitespace
#61119: FILE: tests/data/acpi/virt/DSDT.dsl:733:
+                    GSI0, $

ERROR: trailing whitespace
#61121: FILE: tests/data/acpi/virt/DSDT.dsl:735:
+                }, $

ERROR: trailing whitespace
#61125: FILE: tests/data/acpi/virt/DSDT.dsl:739:
+                    0x0002FFFF, $

ERROR: trailing whitespace
#61126: FILE: tests/data/acpi/virt/DSDT.dsl:740:
+                    0x03, $

ERROR: trailing whitespace
#61127: FILE: tests/data/acpi/virt/DSDT.dsl:741:
+                    GSI1, $

ERROR: trailing whitespace
#61129: FILE: tests/data/acpi/virt/DSDT.dsl:743:
+                }, $

ERROR: trailing whitespace
#61133: FILE: tests/data/acpi/virt/DSDT.dsl:747:
+                    0x0003FFFF, $

ERROR: trailing whitespace
#61134: FILE: tests/data/acpi/virt/DSDT.dsl:748:
+                    Zero, $

ERROR: trailing whitespace
#61135: FILE: tests/data/acpi/virt/DSDT.dsl:749:
+                    GSI3, $

ERROR: trailing whitespace
#61137: FILE: tests/data/acpi/virt/DSDT.dsl:751:
+                }, $

ERROR: trailing whitespace
#61141: FILE: tests/data/acpi/virt/DSDT.dsl:755:
+                    0x0003FFFF, $

ERROR: trailing whitespace
#61142: FILE: tests/data/acpi/virt/DSDT.dsl:756:
+                    One, $

ERROR: trailing whitespace
#61143: FILE: tests/data/acpi/virt/DSDT.dsl:757:
+                    GSI0, $

ERROR: trailing whitespace
#61145: FILE: tests/data/acpi/virt/DSDT.dsl:759:
+                }, $

ERROR: trailing whitespace
#61149: FILE: tests/data/acpi/virt/DSDT.dsl:763:
+                    0x0003FFFF, $

ERROR: trailing whitespace
#61150: FILE: tests/data/acpi/virt/DSDT.dsl:764:
+                    0x02, $

ERROR: trailing whitespace
#61151: FILE: tests/data/acpi/virt/DSDT.dsl:765:
+                    GSI1, $

ERROR: trailing whitespace
#61153: FILE: tests/data/acpi/virt/DSDT.dsl:767:
+                }, $

ERROR: trailing whitespace
#61157: FILE: tests/data/acpi/virt/DSDT.dsl:771:
+                    0x0003FFFF, $

ERROR: trailing whitespace
#61158: FILE: tests/data/acpi/virt/DSDT.dsl:772:
+                    0x03, $

ERROR: trailing whitespace
#61159: FILE: tests/data/acpi/virt/DSDT.dsl:773:
+                    GSI2, $

ERROR: trailing whitespace
#61161: FILE: tests/data/acpi/virt/DSDT.dsl:775:
+                }, $

ERROR: trailing whitespace
#61165: FILE: tests/data/acpi/virt/DSDT.dsl:779:
+                    0x0004FFFF, $

ERROR: trailing whitespace
#61166: FILE: tests/data/acpi/virt/DSDT.dsl:780:
+                    Zero, $

ERROR: trailing whitespace
#61167: FILE: tests/data/acpi/virt/DSDT.dsl:781:
+                    GSI0, $

ERROR: trailing whitespace
#61169: FILE: tests/data/acpi/virt/DSDT.dsl:783:
+                }, $

ERROR: trailing whitespace
#61173: FILE: tests/data/acpi/virt/DSDT.dsl:787:
+                    0x0004FFFF, $

ERROR: trailing whitespace
#61174: FILE: tests/data/acpi/virt/DSDT.dsl:788:
+                    One, $

ERROR: trailing whitespace
#61175: FILE: tests/data/acpi/virt/DSDT.dsl:789:
+                    GSI1, $

ERROR: trailing whitespace
#61177: FILE: tests/data/acpi/virt/DSDT.dsl:791:
+                }, $

ERROR: trailing whitespace
#61181: FILE: tests/data/acpi/virt/DSDT.dsl:795:
+                    0x0004FFFF, $

ERROR: trailing whitespace
#61182: FILE: tests/data/acpi/virt/DSDT.dsl:796:
+                    0x02, $

ERROR: trailing whitespace
#61183: FILE: tests/data/acpi/virt/DSDT.dsl:797:
+                    GSI2, $

ERROR: trailing whitespace
#61185: FILE: tests/data/acpi/virt/DSDT.dsl:799:
+                }, $

ERROR: trailing whitespace
#61189: FILE: tests/data/acpi/virt/DSDT.dsl:803:
+                    0x0004FFFF, $

ERROR: trailing whitespace
#61190: FILE: tests/data/acpi/virt/DSDT.dsl:804:
+                    0x03, $

ERROR: trailing whitespace
#61191: FILE: tests/data/acpi/virt/DSDT.dsl:805:
+                    GSI3, $

ERROR: trailing whitespace
#61193: FILE: tests/data/acpi/virt/DSDT.dsl:807:
+                }, $

ERROR: trailing whitespace
#61197: FILE: tests/data/acpi/virt/DSDT.dsl:811:
+                    0x0005FFFF, $

ERROR: trailing whitespace
#61198: FILE: tests/data/acpi/virt/DSDT.dsl:812:
+                    Zero, $

ERROR: trailing whitespace
#61199: FILE: tests/data/acpi/virt/DSDT.dsl:813:
+                    GSI1, $

ERROR: trailing whitespace
#61201: FILE: tests/data/acpi/virt/DSDT.dsl:815:
+                }, $

ERROR: trailing whitespace
#61205: FILE: tests/data/acpi/virt/DSDT.dsl:819:
+                    0x0005FFFF, $

ERROR: trailing whitespace
#61206: FILE: tests/data/acpi/virt/DSDT.dsl:820:
+                    One, $

ERROR: trailing whitespace
#61207: FILE: tests/data/acpi/virt/DSDT.dsl:821:
+                    GSI2, $

ERROR: trailing whitespace
#61209: FILE: tests/data/acpi/virt/DSDT.dsl:823:
+                }, $

ERROR: trailing whitespace
#61213: FILE: tests/data/acpi/virt/DSDT.dsl:827:
+                    0x0005FFFF, $

ERROR: trailing whitespace
#61214: FILE: tests/data/acpi/virt/DSDT.dsl:828:
+                    0x02, $

ERROR: trailing whitespace
#61215: FILE: tests/data/acpi/virt/DSDT.dsl:829:
+                    GSI3, $

ERROR: trailing whitespace
#61217: FILE: tests/data/acpi/virt/DSDT.dsl:831:
+                }, $

ERROR: trailing whitespace
#61221: FILE: tests/data/acpi/virt/DSDT.dsl:835:
+                    0x0005FFFF, $

ERROR: trailing whitespace
#61222: FILE: tests/data/acpi/virt/DSDT.dsl:836:
+                    0x03, $

ERROR: trailing whitespace
#61223: FILE: tests/data/acpi/virt/DSDT.dsl:837:
+                    GSI0, $

ERROR: trailing whitespace
#61225: FILE: tests/data/acpi/virt/DSDT.dsl:839:
+                }, $

ERROR: trailing whitespace
#61229: FILE: tests/data/acpi/virt/DSDT.dsl:843:
+                    0x0006FFFF, $

ERROR: trailing whitespace
#61230: FILE: tests/data/acpi/virt/DSDT.dsl:844:
+                    Zero, $

ERROR: trailing whitespace
#61231: FILE: tests/data/acpi/virt/DSDT.dsl:845:
+                    GSI2, $

ERROR: trailing whitespace
#61233: FILE: tests/data/acpi/virt/DSDT.dsl:847:
+                }, $

ERROR: trailing whitespace
#61237: FILE: tests/data/acpi/virt/DSDT.dsl:851:
+                    0x0006FFFF, $

ERROR: trailing whitespace
#61238: FILE: tests/data/acpi/virt/DSDT.dsl:852:
+                    One, $

ERROR: trailing whitespace
#61239: FILE: tests/data/acpi/virt/DSDT.dsl:853:
+                    GSI3, $

ERROR: trailing whitespace
#61241: FILE: tests/data/acpi/virt/DSDT.dsl:855:
+                }, $

ERROR: trailing whitespace
#61245: FILE: tests/data/acpi/virt/DSDT.dsl:859:
+                    0x0006FFFF, $

ERROR: trailing whitespace
#61246: FILE: tests/data/acpi/virt/DSDT.dsl:860:
+                    0x02, $

ERROR: trailing whitespace
#61247: FILE: tests/data/acpi/virt/DSDT.dsl:861:
+                    GSI0, $

ERROR: trailing whitespace
#61249: FILE: tests/data/acpi/virt/DSDT.dsl:863:
+                }, $

ERROR: trailing whitespace
#61253: FILE: tests/data/acpi/virt/DSDT.dsl:867:
+                    0x0006FFFF, $

ERROR: trailing whitespace
#61254: FILE: tests/data/acpi/virt/DSDT.dsl:868:
+                    0x03, $

ERROR: trailing whitespace
#61255: FILE: tests/data/acpi/virt/DSDT.dsl:869:
+                    GSI1, $

ERROR: trailing whitespace
#61257: FILE: tests/data/acpi/virt/DSDT.dsl:871:
+                }, $

ERROR: trailing whitespace
#61261: FILE: tests/data/acpi/virt/DSDT.dsl:875:
+                    0x0007FFFF, $

ERROR: trailing whitespace
#61262: FILE: tests/data/acpi/virt/DSDT.dsl:876:
+                    Zero, $

ERROR: trailing whitespace
#61263: FILE: tests/data/acpi/virt/DSDT.dsl:877:
+                    GSI3, $

ERROR: trailing whitespace
#61265: FILE: tests/data/acpi/virt/DSDT.dsl:879:
+                }, $

ERROR: trailing whitespace
#61269: FILE: tests/data/acpi/virt/DSDT.dsl:883:
+                    0x0007FFFF, $

ERROR: trailing whitespace
#61270: FILE: tests/data/acpi/virt/DSDT.dsl:884:
+                    One, $

ERROR: trailing whitespace
#61271: FILE: tests/data/acpi/virt/DSDT.dsl:885:
+                    GSI0, $

ERROR: trailing whitespace
#61273: FILE: tests/data/acpi/virt/DSDT.dsl:887:
+                }, $

ERROR: trailing whitespace
#61277: FILE: tests/data/acpi/virt/DSDT.dsl:891:
+                    0x0007FFFF, $

ERROR: trailing whitespace
#61278: FILE: tests/data/acpi/virt/DSDT.dsl:892:
+                    0x02, $

ERROR: trailing whitespace
#61279: FILE: tests/data/acpi/virt/DSDT.dsl:893:
+                    GSI1, $

ERROR: trailing whitespace
#61281: FILE: tests/data/acpi/virt/DSDT.dsl:895:
+                }, $

ERROR: trailing whitespace
#61285: FILE: tests/data/acpi/virt/DSDT.dsl:899:
+                    0x0007FFFF, $

ERROR: trailing whitespace
#61286: FILE: tests/data/acpi/virt/DSDT.dsl:900:
+                    0x03, $

ERROR: trailing whitespace
#61287: FILE: tests/data/acpi/virt/DSDT.dsl:901:
+                    GSI2, $

ERROR: trailing whitespace
#61289: FILE: tests/data/acpi/virt/DSDT.dsl:903:
+                }, $

ERROR: trailing whitespace
#61293: FILE: tests/data/acpi/virt/DSDT.dsl:907:
+                    0x0008FFFF, $

ERROR: trailing whitespace
#61294: FILE: tests/data/acpi/virt/DSDT.dsl:908:
+                    Zero, $

ERROR: trailing whitespace
#61295: FILE: tests/data/acpi/virt/DSDT.dsl:909:
+                    GSI0, $

ERROR: trailing whitespace
#61297: FILE: tests/data/acpi/virt/DSDT.dsl:911:
+                }, $

ERROR: trailing whitespace
#61301: FILE: tests/data/acpi/virt/DSDT.dsl:915:
+                    0x0008FFFF, $

ERROR: trailing whitespace
#61302: FILE: tests/data/acpi/virt/DSDT.dsl:916:
+                    One, $

ERROR: trailing whitespace
#61303: FILE: tests/data/acpi/virt/DSDT.dsl:917:
+                    GSI1, $

ERROR: trailing whitespace
#61305: FILE: tests/data/acpi/virt/DSDT.dsl:919:
+                }, $

ERROR: trailing whitespace
#61309: FILE: tests/data/acpi/virt/DSDT.dsl:923:
+                    0x0008FFFF, $

ERROR: trailing whitespace
#61310: FILE: tests/data/acpi/virt/DSDT.dsl:924:
+                    0x02, $

ERROR: trailing whitespace
#61311: FILE: tests/data/acpi/virt/DSDT.dsl:925:
+                    GSI2, $

ERROR: trailing whitespace
#61313: FILE: tests/data/acpi/virt/DSDT.dsl:927:
+                }, $

ERROR: trailing whitespace
#61317: FILE: tests/data/acpi/virt/DSDT.dsl:931:
+                    0x0008FFFF, $

ERROR: trailing whitespace
#61318: FILE: tests/data/acpi/virt/DSDT.dsl:932:
+                    0x03, $

ERROR: trailing whitespace
#61319: FILE: tests/data/acpi/virt/DSDT.dsl:933:
+                    GSI3, $

ERROR: trailing whitespace
#61321: FILE: tests/data/acpi/virt/DSDT.dsl:935:
+                }, $

ERROR: trailing whitespace
#61325: FILE: tests/data/acpi/virt/DSDT.dsl:939:
+                    0x0009FFFF, $

ERROR: trailing whitespace
#61326: FILE: tests/data/acpi/virt/DSDT.dsl:940:
+                    Zero, $

ERROR: trailing whitespace
#61327: FILE: tests/data/acpi/virt/DSDT.dsl:941:
+                    GSI1, $

ERROR: trailing whitespace
#61329: FILE: tests/data/acpi/virt/DSDT.dsl:943:
+                }, $

ERROR: trailing whitespace
#61333: FILE: tests/data/acpi/virt/DSDT.dsl:947:
+                    0x0009FFFF, $

ERROR: trailing whitespace
#61334: FILE: tests/data/acpi/virt/DSDT.dsl:948:
+                    One, $

ERROR: trailing whitespace
#61335: FILE: tests/data/acpi/virt/DSDT.dsl:949:
+                    GSI2, $

ERROR: trailing whitespace
#61337: FILE: tests/data/acpi/virt/DSDT.dsl:951:
+                }, $

ERROR: trailing whitespace
#61341: FILE: tests/data/acpi/virt/DSDT.dsl:955:
+                    0x0009FFFF, $

ERROR: trailing whitespace
#61342: FILE: tests/data/acpi/virt/DSDT.dsl:956:
+                    0x02, $

ERROR: trailing whitespace
#61343: FILE: tests/data/acpi/virt/DSDT.dsl:957:
+                    GSI3, $

ERROR: trailing whitespace
#61345: FILE: tests/data/acpi/virt/DSDT.dsl:959:
+                }, $

ERROR: trailing whitespace
#61349: FILE: tests/data/acpi/virt/DSDT.dsl:963:
+                    0x0009FFFF, $

ERROR: trailing whitespace
#61350: FILE: tests/data/acpi/virt/DSDT.dsl:964:
+                    0x03, $

ERROR: trailing whitespace
#61351: FILE: tests/data/acpi/virt/DSDT.dsl:965:
+                    GSI0, $

ERROR: trailing whitespace
#61353: FILE: tests/data/acpi/virt/DSDT.dsl:967:
+                }, $

ERROR: trailing whitespace
#61357: FILE: tests/data/acpi/virt/DSDT.dsl:971:
+                    0x000AFFFF, $

ERROR: trailing whitespace
#61358: FILE: tests/data/acpi/virt/DSDT.dsl:972:
+                    Zero, $

ERROR: trailing whitespace
#61359: FILE: tests/data/acpi/virt/DSDT.dsl:973:
+                    GSI2, $

ERROR: trailing whitespace
#61361: FILE: tests/data/acpi/virt/DSDT.dsl:975:
+                }, $

ERROR: trailing whitespace
#61365: FILE: tests/data/acpi/virt/DSDT.dsl:979:
+                    0x000AFFFF, $

ERROR: trailing whitespace
#61366: FILE: tests/data/acpi/virt/DSDT.dsl:980:
+                    One, $

ERROR: trailing whitespace
#61367: FILE: tests/data/acpi/virt/DSDT.dsl:981:
+                    GSI3, $

ERROR: trailing whitespace
#61369: FILE: tests/data/acpi/virt/DSDT.dsl:983:
+                }, $

ERROR: trailing whitespace
#61373: FILE: tests/data/acpi/virt/DSDT.dsl:987:
+                    0x000AFFFF, $

ERROR: trailing whitespace
#61374: FILE: tests/data/acpi/virt/DSDT.dsl:988:
+                    0x02, $

ERROR: trailing whitespace
#61375: FILE: tests/data/acpi/virt/DSDT.dsl:989:
+                    GSI0, $

ERROR: trailing whitespace
#61377: FILE: tests/data/acpi/virt/DSDT.dsl:991:
+                }, $

ERROR: trailing whitespace
#61381: FILE: tests/data/acpi/virt/DSDT.dsl:995:
+                    0x000AFFFF, $

ERROR: trailing whitespace
#61382: FILE: tests/data/acpi/virt/DSDT.dsl:996:
+                    0x03, $

ERROR: trailing whitespace
#61383: FILE: tests/data/acpi/virt/DSDT.dsl:997:
+                    GSI1, $

ERROR: trailing whitespace
#61385: FILE: tests/data/acpi/virt/DSDT.dsl:999:
+                }, $

ERROR: trailing whitespace
#61389: FILE: tests/data/acpi/virt/DSDT.dsl:1003:
+                    0x000BFFFF, $

ERROR: trailing whitespace
#61390: FILE: tests/data/acpi/virt/DSDT.dsl:1004:
+                    Zero, $

ERROR: trailing whitespace
#61391: FILE: tests/data/acpi/virt/DSDT.dsl:1005:
+                    GSI3, $

ERROR: trailing whitespace
#61393: FILE: tests/data/acpi/virt/DSDT.dsl:1007:
+                }, $

ERROR: trailing whitespace
#61397: FILE: tests/data/acpi/virt/DSDT.dsl:1011:
+                    0x000BFFFF, $

ERROR: trailing whitespace
#61398: FILE: tests/data/acpi/virt/DSDT.dsl:1012:
+                    One, $

ERROR: trailing whitespace
#61399: FILE: tests/data/acpi/virt/DSDT.dsl:1013:
+                    GSI0, $

ERROR: trailing whitespace
#61401: FILE: tests/data/acpi/virt/DSDT.dsl:1015:
+                }, $

ERROR: trailing whitespace
#61405: FILE: tests/data/acpi/virt/DSDT.dsl:1019:
+                    0x000BFFFF, $

ERROR: trailing whitespace
#61406: FILE: tests/data/acpi/virt/DSDT.dsl:1020:
+                    0x02, $

ERROR: trailing whitespace
#61407: FILE: tests/data/acpi/virt/DSDT.dsl:1021:
+                    GSI1, $

ERROR: trailing whitespace
#61409: FILE: tests/data/acpi/virt/DSDT.dsl:1023:
+                }, $

ERROR: trailing whitespace
#61413: FILE: tests/data/acpi/virt/DSDT.dsl:1027:
+                    0x000BFFFF, $

ERROR: trailing whitespace
#61414: FILE: tests/data/acpi/virt/DSDT.dsl:1028:
+                    0x03, $

ERROR: trailing whitespace
#61415: FILE: tests/data/acpi/virt/DSDT.dsl:1029:
+                    GSI2, $

ERROR: trailing whitespace
#61417: FILE: tests/data/acpi/virt/DSDT.dsl:1031:
+                }, $

ERROR: trailing whitespace
#61421: FILE: tests/data/acpi/virt/DSDT.dsl:1035:
+                    0x000CFFFF, $

ERROR: trailing whitespace
#61422: FILE: tests/data/acpi/virt/DSDT.dsl:1036:
+                    Zero, $

ERROR: trailing whitespace
#61423: FILE: tests/data/acpi/virt/DSDT.dsl:1037:
+                    GSI0, $

ERROR: trailing whitespace
#61425: FILE: tests/data/acpi/virt/DSDT.dsl:1039:
+                }, $

ERROR: trailing whitespace
#61429: FILE: tests/data/acpi/virt/DSDT.dsl:1043:
+                    0x000CFFFF, $

ERROR: trailing whitespace
#61430: FILE: tests/data/acpi/virt/DSDT.dsl:1044:
+                    One, $

ERROR: trailing whitespace
#61431: FILE: tests/data/acpi/virt/DSDT.dsl:1045:
+                    GSI1, $

ERROR: trailing whitespace
#61433: FILE: tests/data/acpi/virt/DSDT.dsl:1047:
+                }, $

ERROR: trailing whitespace
#61437: FILE: tests/data/acpi/virt/DSDT.dsl:1051:
+                    0x000CFFFF, $

ERROR: trailing whitespace
#61438: FILE: tests/data/acpi/virt/DSDT.dsl:1052:
+                    0x02, $

ERROR: trailing whitespace
#61439: FILE: tests/data/acpi/virt/DSDT.dsl:1053:
+                    GSI2, $

ERROR: trailing whitespace
#61441: FILE: tests/data/acpi/virt/DSDT.dsl:1055:
+                }, $

ERROR: trailing whitespace
#61445: FILE: tests/data/acpi/virt/DSDT.dsl:1059:
+                    0x000CFFFF, $

ERROR: trailing whitespace
#61446: FILE: tests/data/acpi/virt/DSDT.dsl:1060:
+                    0x03, $

ERROR: trailing whitespace
#61447: FILE: tests/data/acpi/virt/DSDT.dsl:1061:
+                    GSI3, $

ERROR: trailing whitespace
#61449: FILE: tests/data/acpi/virt/DSDT.dsl:1063:
+                }, $

ERROR: trailing whitespace
#61453: FILE: tests/data/acpi/virt/DSDT.dsl:1067:
+                    0x000DFFFF, $

ERROR: trailing whitespace
#61454: FILE: tests/data/acpi/virt/DSDT.dsl:1068:
+                    Zero, $

ERROR: trailing whitespace
#61455: FILE: tests/data/acpi/virt/DSDT.dsl:1069:
+                    GSI1, $

ERROR: trailing whitespace
#61457: FILE: tests/data/acpi/virt/DSDT.dsl:1071:
+                }, $

ERROR: trailing whitespace
#61461: FILE: tests/data/acpi/virt/DSDT.dsl:1075:
+                    0x000DFFFF, $

ERROR: trailing whitespace
#61462: FILE: tests/data/acpi/virt/DSDT.dsl:1076:
+                    One, $

ERROR: trailing whitespace
#61463: FILE: tests/data/acpi/virt/DSDT.dsl:1077:
+                    GSI2, $

ERROR: trailing whitespace
#61465: FILE: tests/data/acpi/virt/DSDT.dsl:1079:
+                }, $

ERROR: trailing whitespace
#61469: FILE: tests/data/acpi/virt/DSDT.dsl:1083:
+                    0x000DFFFF, $

ERROR: trailing whitespace
#61470: FILE: tests/data/acpi/virt/DSDT.dsl:1084:
+                    0x02, $

ERROR: trailing whitespace
#61471: FILE: tests/data/acpi/virt/DSDT.dsl:1085:
+                    GSI3, $

ERROR: trailing whitespace
#61473: FILE: tests/data/acpi/virt/DSDT.dsl:1087:
+                }, $

ERROR: trailing whitespace
#61477: FILE: tests/data/acpi/virt/DSDT.dsl:1091:
+                    0x000DFFFF, $

ERROR: trailing whitespace
#61478: FILE: tests/data/acpi/virt/DSDT.dsl:1092:
+                    0x03, $

ERROR: trailing whitespace
#61479: FILE: tests/data/acpi/virt/DSDT.dsl:1093:
+                    GSI0, $

ERROR: trailing whitespace
#61481: FILE: tests/data/acpi/virt/DSDT.dsl:1095:
+                }, $

ERROR: trailing whitespace
#61485: FILE: tests/data/acpi/virt/DSDT.dsl:1099:
+                    0x000EFFFF, $

ERROR: trailing whitespace
#61486: FILE: tests/data/acpi/virt/DSDT.dsl:1100:
+                    Zero, $

ERROR: trailing whitespace
#61487: FILE: tests/data/acpi/virt/DSDT.dsl:1101:
+                    GSI2, $

ERROR: trailing whitespace
#61489: FILE: tests/data/acpi/virt/DSDT.dsl:1103:
+                }, $

ERROR: trailing whitespace
#61493: FILE: tests/data/acpi/virt/DSDT.dsl:1107:
+                    0x000EFFFF, $

ERROR: trailing whitespace
#61494: FILE: tests/data/acpi/virt/DSDT.dsl:1108:
+                    One, $

ERROR: trailing whitespace
#61495: FILE: tests/data/acpi/virt/DSDT.dsl:1109:
+                    GSI3, $

ERROR: trailing whitespace
#61497: FILE: tests/data/acpi/virt/DSDT.dsl:1111:
+                }, $

ERROR: trailing whitespace
#61501: FILE: tests/data/acpi/virt/DSDT.dsl:1115:
+                    0x000EFFFF, $

ERROR: trailing whitespace
#61502: FILE: tests/data/acpi/virt/DSDT.dsl:1116:
+                    0x02, $

ERROR: trailing whitespace
#61503: FILE: tests/data/acpi/virt/DSDT.dsl:1117:
+                    GSI0, $

ERROR: trailing whitespace
#61505: FILE: tests/data/acpi/virt/DSDT.dsl:1119:
+                }, $

ERROR: trailing whitespace
#61509: FILE: tests/data/acpi/virt/DSDT.dsl:1123:
+                    0x000EFFFF, $

ERROR: trailing whitespace
#61510: FILE: tests/data/acpi/virt/DSDT.dsl:1124:
+                    0x03, $

ERROR: trailing whitespace
#61511: FILE: tests/data/acpi/virt/DSDT.dsl:1125:
+                    GSI1, $

ERROR: trailing whitespace
#61513: FILE: tests/data/acpi/virt/DSDT.dsl:1127:
+                }, $

ERROR: trailing whitespace
#61517: FILE: tests/data/acpi/virt/DSDT.dsl:1131:
+                    0x000FFFFF, $

ERROR: trailing whitespace
#61518: FILE: tests/data/acpi/virt/DSDT.dsl:1132:
+                    Zero, $

ERROR: trailing whitespace
#61519: FILE: tests/data/acpi/virt/DSDT.dsl:1133:
+                    GSI3, $

ERROR: trailing whitespace
#61521: FILE: tests/data/acpi/virt/DSDT.dsl:1135:
+                }, $

ERROR: trailing whitespace
#61525: FILE: tests/data/acpi/virt/DSDT.dsl:1139:
+                    0x000FFFFF, $

ERROR: trailing whitespace
#61526: FILE: tests/data/acpi/virt/DSDT.dsl:1140:
+                    One, $

ERROR: trailing whitespace
#61527: FILE: tests/data/acpi/virt/DSDT.dsl:1141:
+                    GSI0, $

ERROR: trailing whitespace
#61529: FILE: tests/data/acpi/virt/DSDT.dsl:1143:
+                }, $

ERROR: trailing whitespace
#61533: FILE: tests/data/acpi/virt/DSDT.dsl:1147:
+                    0x000FFFFF, $

ERROR: trailing whitespace
#61534: FILE: tests/data/acpi/virt/DSDT.dsl:1148:
+                    0x02, $

ERROR: trailing whitespace
#61535: FILE: tests/data/acpi/virt/DSDT.dsl:1149:
+                    GSI1, $

ERROR: trailing whitespace
#61537: FILE: tests/data/acpi/virt/DSDT.dsl:1151:
+                }, $

ERROR: trailing whitespace
#61541: FILE: tests/data/acpi/virt/DSDT.dsl:1155:
+                    0x000FFFFF, $

ERROR: trailing whitespace
#61542: FILE: tests/data/acpi/virt/DSDT.dsl:1156:
+                    0x03, $

ERROR: trailing whitespace
#61543: FILE: tests/data/acpi/virt/DSDT.dsl:1157:
+                    GSI2, $

ERROR: trailing whitespace
#61545: FILE: tests/data/acpi/virt/DSDT.dsl:1159:
+                }, $

ERROR: trailing whitespace
#61549: FILE: tests/data/acpi/virt/DSDT.dsl:1163:
+                    0x0010FFFF, $

ERROR: trailing whitespace
#61550: FILE: tests/data/acpi/virt/DSDT.dsl:1164:
+                    Zero, $

ERROR: trailing whitespace
#61551: FILE: tests/data/acpi/virt/DSDT.dsl:1165:
+                    GSI0, $

ERROR: trailing whitespace
#61553: FILE: tests/data/acpi/virt/DSDT.dsl:1167:
+                }, $

ERROR: trailing whitespace
#61557: FILE: tests/data/acpi/virt/DSDT.dsl:1171:
+                    0x0010FFFF, $

ERROR: trailing whitespace
#61558: FILE: tests/data/acpi/virt/DSDT.dsl:1172:
+                    One, $

ERROR: trailing whitespace
#61559: FILE: tests/data/acpi/virt/DSDT.dsl:1173:
+                    GSI1, $

ERROR: trailing whitespace
#61561: FILE: tests/data/acpi/virt/DSDT.dsl:1175:
+                }, $

ERROR: trailing whitespace
#61565: FILE: tests/data/acpi/virt/DSDT.dsl:1179:
+                    0x0010FFFF, $

ERROR: trailing whitespace
#61566: FILE: tests/data/acpi/virt/DSDT.dsl:1180:
+                    0x02, $

ERROR: trailing whitespace
#61567: FILE: tests/data/acpi/virt/DSDT.dsl:1181:
+                    GSI2, $

ERROR: trailing whitespace
#61569: FILE: tests/data/acpi/virt/DSDT.dsl:1183:
+                }, $

ERROR: trailing whitespace
#61573: FILE: tests/data/acpi/virt/DSDT.dsl:1187:
+                    0x0010FFFF, $

ERROR: trailing whitespace
#61574: FILE: tests/data/acpi/virt/DSDT.dsl:1188:
+                    0x03, $

ERROR: trailing whitespace
#61575: FILE: tests/data/acpi/virt/DSDT.dsl:1189:
+                    GSI3, $

ERROR: trailing whitespace
#61577: FILE: tests/data/acpi/virt/DSDT.dsl:1191:
+                }, $

ERROR: trailing whitespace
#61581: FILE: tests/data/acpi/virt/DSDT.dsl:1195:
+                    0x0011FFFF, $

ERROR: trailing whitespace
#61582: FILE: tests/data/acpi/virt/DSDT.dsl:1196:
+                    Zero, $

ERROR: trailing whitespace
#61583: FILE: tests/data/acpi/virt/DSDT.dsl:1197:
+                    GSI1, $

ERROR: trailing whitespace
#61585: FILE: tests/data/acpi/virt/DSDT.dsl:1199:
+                }, $

ERROR: trailing whitespace
#61589: FILE: tests/data/acpi/virt/DSDT.dsl:1203:
+                    0x0011FFFF, $

ERROR: trailing whitespace
#61590: FILE: tests/data/acpi/virt/DSDT.dsl:1204:
+                    One, $

ERROR: trailing whitespace
#61591: FILE: tests/data/acpi/virt/DSDT.dsl:1205:
+                    GSI2, $

ERROR: trailing whitespace
#61593: FILE: tests/data/acpi/virt/DSDT.dsl:1207:
+                }, $

ERROR: trailing whitespace
#61597: FILE: tests/data/acpi/virt/DSDT.dsl:1211:
+                    0x0011FFFF, $

ERROR: trailing whitespace
#61598: FILE: tests/data/acpi/virt/DSDT.dsl:1212:
+                    0x02, $

ERROR: trailing whitespace
#61599: FILE: tests/data/acpi/virt/DSDT.dsl:1213:
+                    GSI3, $

ERROR: trailing whitespace
#61601: FILE: tests/data/acpi/virt/DSDT.dsl:1215:
+                }, $

ERROR: trailing whitespace
#61605: FILE: tests/data/acpi/virt/DSDT.dsl:1219:
+                    0x0011FFFF, $

ERROR: trailing whitespace
#61606: FILE: tests/data/acpi/virt/DSDT.dsl:1220:
+                    0x03, $

ERROR: trailing whitespace
#61607: FILE: tests/data/acpi/virt/DSDT.dsl:1221:
+                    GSI0, $

ERROR: trailing whitespace
#61609: FILE: tests/data/acpi/virt/DSDT.dsl:1223:
+                }, $

ERROR: trailing whitespace
#61613: FILE: tests/data/acpi/virt/DSDT.dsl:1227:
+                    0x0012FFFF, $

ERROR: trailing whitespace
#61614: FILE: tests/data/acpi/virt/DSDT.dsl:1228:
+                    Zero, $

ERROR: trailing whitespace
#61615: FILE: tests/data/acpi/virt/DSDT.dsl:1229:
+                    GSI2, $

ERROR: trailing whitespace
#61617: FILE: tests/data/acpi/virt/DSDT.dsl:1231:
+                }, $

ERROR: trailing whitespace
#61621: FILE: tests/data/acpi/virt/DSDT.dsl:1235:
+                    0x0012FFFF, $

ERROR: trailing whitespace
#61622: FILE: tests/data/acpi/virt/DSDT.dsl:1236:
+                    One, $

ERROR: trailing whitespace
#61623: FILE: tests/data/acpi/virt/DSDT.dsl:1237:
+                    GSI3, $

ERROR: trailing whitespace
#61625: FILE: tests/data/acpi/virt/DSDT.dsl:1239:
+                }, $

ERROR: trailing whitespace
#61629: FILE: tests/data/acpi/virt/DSDT.dsl:1243:
+                    0x0012FFFF, $

ERROR: trailing whitespace
#61630: FILE: tests/data/acpi/virt/DSDT.dsl:1244:
+                    0x02, $

ERROR: trailing whitespace
#61631: FILE: tests/data/acpi/virt/DSDT.dsl:1245:
+                    GSI0, $

ERROR: trailing whitespace
#61633: FILE: tests/data/acpi/virt/DSDT.dsl:1247:
+                }, $

ERROR: trailing whitespace
#61637: FILE: tests/data/acpi/virt/DSDT.dsl:1251:
+                    0x0012FFFF, $

ERROR: trailing whitespace
#61638: FILE: tests/data/acpi/virt/DSDT.dsl:1252:
+                    0x03, $

ERROR: trailing whitespace
#61639: FILE: tests/data/acpi/virt/DSDT.dsl:1253:
+                    GSI1, $

ERROR: trailing whitespace
#61641: FILE: tests/data/acpi/virt/DSDT.dsl:1255:
+                }, $

ERROR: trailing whitespace
#61645: FILE: tests/data/acpi/virt/DSDT.dsl:1259:
+                    0x0013FFFF, $

ERROR: trailing whitespace
#61646: FILE: tests/data/acpi/virt/DSDT.dsl:1260:
+                    Zero, $

ERROR: trailing whitespace
#61647: FILE: tests/data/acpi/virt/DSDT.dsl:1261:
+                    GSI3, $

ERROR: trailing whitespace
#61649: FILE: tests/data/acpi/virt/DSDT.dsl:1263:
+                }, $

ERROR: trailing whitespace
#61653: FILE: tests/data/acpi/virt/DSDT.dsl:1267:
+                    0x0013FFFF, $

ERROR: trailing whitespace
#61654: FILE: tests/data/acpi/virt/DSDT.dsl:1268:
+                    One, $

ERROR: trailing whitespace
#61655: FILE: tests/data/acpi/virt/DSDT.dsl:1269:
+                    GSI0, $

ERROR: trailing whitespace
#61657: FILE: tests/data/acpi/virt/DSDT.dsl:1271:
+                }, $

ERROR: trailing whitespace
#61661: FILE: tests/data/acpi/virt/DSDT.dsl:1275:
+                    0x0013FFFF, $

ERROR: trailing whitespace
#61662: FILE: tests/data/acpi/virt/DSDT.dsl:1276:
+                    0x02, $

ERROR: trailing whitespace
#61663: FILE: tests/data/acpi/virt/DSDT.dsl:1277:
+                    GSI1, $

ERROR: trailing whitespace
#61665: FILE: tests/data/acpi/virt/DSDT.dsl:1279:
+                }, $

ERROR: trailing whitespace
#61669: FILE: tests/data/acpi/virt/DSDT.dsl:1283:
+                    0x0013FFFF, $

ERROR: trailing whitespace
#61670: FILE: tests/data/acpi/virt/DSDT.dsl:1284:
+                    0x03, $

ERROR: trailing whitespace
#61671: FILE: tests/data/acpi/virt/DSDT.dsl:1285:
+                    GSI2, $

ERROR: trailing whitespace
#61673: FILE: tests/data/acpi/virt/DSDT.dsl:1287:
+                }, $

ERROR: trailing whitespace
#61677: FILE: tests/data/acpi/virt/DSDT.dsl:1291:
+                    0x0014FFFF, $

ERROR: trailing whitespace
#61678: FILE: tests/data/acpi/virt/DSDT.dsl:1292:
+                    Zero, $

ERROR: trailing whitespace
#61679: FILE: tests/data/acpi/virt/DSDT.dsl:1293:
+                    GSI0, $

ERROR: trailing whitespace
#61681: FILE: tests/data/acpi/virt/DSDT.dsl:1295:
+                }, $

ERROR: trailing whitespace
#61685: FILE: tests/data/acpi/virt/DSDT.dsl:1299:
+                    0x0014FFFF, $

ERROR: trailing whitespace
#61686: FILE: tests/data/acpi/virt/DSDT.dsl:1300:
+                    One, $

ERROR: trailing whitespace
#61687: FILE: tests/data/acpi/virt/DSDT.dsl:1301:
+                    GSI1, $

ERROR: trailing whitespace
#61689: FILE: tests/data/acpi/virt/DSDT.dsl:1303:
+                }, $

ERROR: trailing whitespace
#61693: FILE: tests/data/acpi/virt/DSDT.dsl:1307:
+                    0x0014FFFF, $

ERROR: trailing whitespace
#61694: FILE: tests/data/acpi/virt/DSDT.dsl:1308:
+                    0x02, $

ERROR: trailing whitespace
#61695: FILE: tests/data/acpi/virt/DSDT.dsl:1309:
+                    GSI2, $

ERROR: trailing whitespace
#61697: FILE: tests/data/acpi/virt/DSDT.dsl:1311:
+                }, $

ERROR: trailing whitespace
#61701: FILE: tests/data/acpi/virt/DSDT.dsl:1315:
+                    0x0014FFFF, $

ERROR: trailing whitespace
#61702: FILE: tests/data/acpi/virt/DSDT.dsl:1316:
+                    0x03, $

ERROR: trailing whitespace
#61703: FILE: tests/data/acpi/virt/DSDT.dsl:1317:
+                    GSI3, $

ERROR: trailing whitespace
#61705: FILE: tests/data/acpi/virt/DSDT.dsl:1319:
+                }, $

ERROR: trailing whitespace
#61709: FILE: tests/data/acpi/virt/DSDT.dsl:1323:
+                    0x0015FFFF, $

ERROR: trailing whitespace
#61710: FILE: tests/data/acpi/virt/DSDT.dsl:1324:
+                    Zero, $

ERROR: trailing whitespace
#61711: FILE: tests/data/acpi/virt/DSDT.dsl:1325:
+                    GSI1, $

ERROR: trailing whitespace
#61713: FILE: tests/data/acpi/virt/DSDT.dsl:1327:
+                }, $

ERROR: trailing whitespace
#61717: FILE: tests/data/acpi/virt/DSDT.dsl:1331:
+                    0x0015FFFF, $

ERROR: trailing whitespace
#61718: FILE: tests/data/acpi/virt/DSDT.dsl:1332:
+                    One, $

ERROR: trailing whitespace
#61719: FILE: tests/data/acpi/virt/DSDT.dsl:1333:
+                    GSI2, $

ERROR: trailing whitespace
#61721: FILE: tests/data/acpi/virt/DSDT.dsl:1335:
+                }, $

ERROR: trailing whitespace
#61725: FILE: tests/data/acpi/virt/DSDT.dsl:1339:
+                    0x0015FFFF, $

ERROR: trailing whitespace
#61726: FILE: tests/data/acpi/virt/DSDT.dsl:1340:
+                    0x02, $

ERROR: trailing whitespace
#61727: FILE: tests/data/acpi/virt/DSDT.dsl:1341:
+                    GSI3, $

ERROR: trailing whitespace
#61729: FILE: tests/data/acpi/virt/DSDT.dsl:1343:
+                }, $

ERROR: trailing whitespace
#61733: FILE: tests/data/acpi/virt/DSDT.dsl:1347:
+                    0x0015FFFF, $

ERROR: trailing whitespace
#61734: FILE: tests/data/acpi/virt/DSDT.dsl:1348:
+                    0x03, $

ERROR: trailing whitespace
#61735: FILE: tests/data/acpi/virt/DSDT.dsl:1349:
+                    GSI0, $

ERROR: trailing whitespace
#61737: FILE: tests/data/acpi/virt/DSDT.dsl:1351:
+                }, $

ERROR: trailing whitespace
#61741: FILE: tests/data/acpi/virt/DSDT.dsl:1355:
+                    0x0016FFFF, $

ERROR: trailing whitespace
#61742: FILE: tests/data/acpi/virt/DSDT.dsl:1356:
+                    Zero, $

ERROR: trailing whitespace
#61743: FILE: tests/data/acpi/virt/DSDT.dsl:1357:
+                    GSI2, $

ERROR: trailing whitespace
#61745: FILE: tests/data/acpi/virt/DSDT.dsl:1359:
+                }, $

ERROR: trailing whitespace
#61749: FILE: tests/data/acpi/virt/DSDT.dsl:1363:
+                    0x0016FFFF, $

ERROR: trailing whitespace
#61750: FILE: tests/data/acpi/virt/DSDT.dsl:1364:
+                    One, $

ERROR: trailing whitespace
#61751: FILE: tests/data/acpi/virt/DSDT.dsl:1365:
+                    GSI3, $

ERROR: trailing whitespace
#61753: FILE: tests/data/acpi/virt/DSDT.dsl:1367:
+                }, $

ERROR: trailing whitespace
#61757: FILE: tests/data/acpi/virt/DSDT.dsl:1371:
+                    0x0016FFFF, $

ERROR: trailing whitespace
#61758: FILE: tests/data/acpi/virt/DSDT.dsl:1372:
+                    0x02, $

ERROR: trailing whitespace
#61759: FILE: tests/data/acpi/virt/DSDT.dsl:1373:
+                    GSI0, $

ERROR: trailing whitespace
#61761: FILE: tests/data/acpi/virt/DSDT.dsl:1375:
+                }, $

ERROR: trailing whitespace
#61765: FILE: tests/data/acpi/virt/DSDT.dsl:1379:
+                    0x0016FFFF, $

ERROR: trailing whitespace
#61766: FILE: tests/data/acpi/virt/DSDT.dsl:1380:
+                    0x03, $

ERROR: trailing whitespace
#61767: FILE: tests/data/acpi/virt/DSDT.dsl:1381:
+                    GSI1, $

ERROR: trailing whitespace
#61769: FILE: tests/data/acpi/virt/DSDT.dsl:1383:
+                }, $

ERROR: trailing whitespace
#61773: FILE: tests/data/acpi/virt/DSDT.dsl:1387:
+                    0x0017FFFF, $

ERROR: trailing whitespace
#61774: FILE: tests/data/acpi/virt/DSDT.dsl:1388:
+                    Zero, $

ERROR: trailing whitespace
#61775: FILE: tests/data/acpi/virt/DSDT.dsl:1389:
+                    GSI3, $

ERROR: trailing whitespace
#61777: FILE: tests/data/acpi/virt/DSDT.dsl:1391:
+                }, $

ERROR: trailing whitespace
#61781: FILE: tests/data/acpi/virt/DSDT.dsl:1395:
+                    0x0017FFFF, $

ERROR: trailing whitespace
#61782: FILE: tests/data/acpi/virt/DSDT.dsl:1396:
+                    One, $

ERROR: trailing whitespace
#61783: FILE: tests/data/acpi/virt/DSDT.dsl:1397:
+                    GSI0, $

ERROR: trailing whitespace
#61785: FILE: tests/data/acpi/virt/DSDT.dsl:1399:
+                }, $

ERROR: trailing whitespace
#61789: FILE: tests/data/acpi/virt/DSDT.dsl:1403:
+                    0x0017FFFF, $

ERROR: trailing whitespace
#61790: FILE: tests/data/acpi/virt/DSDT.dsl:1404:
+                    0x02, $

ERROR: trailing whitespace
#61791: FILE: tests/data/acpi/virt/DSDT.dsl:1405:
+                    GSI1, $

ERROR: trailing whitespace
#61793: FILE: tests/data/acpi/virt/DSDT.dsl:1407:
+                }, $

ERROR: trailing whitespace
#61797: FILE: tests/data/acpi/virt/DSDT.dsl:1411:
+                    0x0017FFFF, $

ERROR: trailing whitespace
#61798: FILE: tests/data/acpi/virt/DSDT.dsl:1412:
+                    0x03, $

ERROR: trailing whitespace
#61799: FILE: tests/data/acpi/virt/DSDT.dsl:1413:
+                    GSI2, $

ERROR: trailing whitespace
#61801: FILE: tests/data/acpi/virt/DSDT.dsl:1415:
+                }, $

ERROR: trailing whitespace
#61805: FILE: tests/data/acpi/virt/DSDT.dsl:1419:
+                    0x0018FFFF, $

ERROR: trailing whitespace
#61806: FILE: tests/data/acpi/virt/DSDT.dsl:1420:
+                    Zero, $

ERROR: trailing whitespace
#61807: FILE: tests/data/acpi/virt/DSDT.dsl:1421:
+                    GSI0, $

ERROR: trailing whitespace
#61809: FILE: tests/data/acpi/virt/DSDT.dsl:1423:
+                }, $

ERROR: trailing whitespace
#61813: FILE: tests/data/acpi/virt/DSDT.dsl:1427:
+                    0x0018FFFF, $

ERROR: trailing whitespace
#61814: FILE: tests/data/acpi/virt/DSDT.dsl:1428:
+                    One, $

ERROR: trailing whitespace
#61815: FILE: tests/data/acpi/virt/DSDT.dsl:1429:
+                    GSI1, $

ERROR: trailing whitespace
#61817: FILE: tests/data/acpi/virt/DSDT.dsl:1431:
+                }, $

ERROR: trailing whitespace
#61821: FILE: tests/data/acpi/virt/DSDT.dsl:1435:
+                    0x0018FFFF, $

ERROR: trailing whitespace
#61822: FILE: tests/data/acpi/virt/DSDT.dsl:1436:
+                    0x02, $

ERROR: trailing whitespace
#61823: FILE: tests/data/acpi/virt/DSDT.dsl:1437:
+                    GSI2, $

ERROR: trailing whitespace
#61825: FILE: tests/data/acpi/virt/DSDT.dsl:1439:
+                }, $

ERROR: trailing whitespace
#61829: FILE: tests/data/acpi/virt/DSDT.dsl:1443:
+                    0x0018FFFF, $

ERROR: trailing whitespace
#61830: FILE: tests/data/acpi/virt/DSDT.dsl:1444:
+                    0x03, $

ERROR: trailing whitespace
#61831: FILE: tests/data/acpi/virt/DSDT.dsl:1445:
+                    GSI3, $

ERROR: trailing whitespace
#61833: FILE: tests/data/acpi/virt/DSDT.dsl:1447:
+                }, $

ERROR: trailing whitespace
#61837: FILE: tests/data/acpi/virt/DSDT.dsl:1451:
+                    0x0019FFFF, $

ERROR: trailing whitespace
#61838: FILE: tests/data/acpi/virt/DSDT.dsl:1452:
+                    Zero, $

ERROR: trailing whitespace
#61839: FILE: tests/data/acpi/virt/DSDT.dsl:1453:
+                    GSI1, $

ERROR: trailing whitespace
#61841: FILE: tests/data/acpi/virt/DSDT.dsl:1455:
+                }, $

ERROR: trailing whitespace
#61845: FILE: tests/data/acpi/virt/DSDT.dsl:1459:
+                    0x0019FFFF, $

ERROR: trailing whitespace
#61846: FILE: tests/data/acpi/virt/DSDT.dsl:1460:
+                    One, $

ERROR: trailing whitespace
#61847: FILE: tests/data/acpi/virt/DSDT.dsl:1461:
+                    GSI2, $

ERROR: trailing whitespace
#61849: FILE: tests/data/acpi/virt/DSDT.dsl:1463:
+                }, $

ERROR: trailing whitespace
#61853: FILE: tests/data/acpi/virt/DSDT.dsl:1467:
+                    0x0019FFFF, $

ERROR: trailing whitespace
#61854: FILE: tests/data/acpi/virt/DSDT.dsl:1468:
+                    0x02, $

ERROR: trailing whitespace
#61855: FILE: tests/data/acpi/virt/DSDT.dsl:1469:
+                    GSI3, $

ERROR: trailing whitespace
#61857: FILE: tests/data/acpi/virt/DSDT.dsl:1471:
+                }, $

ERROR: trailing whitespace
#61861: FILE: tests/data/acpi/virt/DSDT.dsl:1475:
+                    0x0019FFFF, $

ERROR: trailing whitespace
#61862: FILE: tests/data/acpi/virt/DSDT.dsl:1476:
+                    0x03, $

ERROR: trailing whitespace
#61863: FILE: tests/data/acpi/virt/DSDT.dsl:1477:
+                    GSI0, $

ERROR: trailing whitespace
#61865: FILE: tests/data/acpi/virt/DSDT.dsl:1479:
+                }, $

ERROR: trailing whitespace
#61869: FILE: tests/data/acpi/virt/DSDT.dsl:1483:
+                    0x001AFFFF, $

ERROR: trailing whitespace
#61870: FILE: tests/data/acpi/virt/DSDT.dsl:1484:
+                    Zero, $

ERROR: trailing whitespace
#61871: FILE: tests/data/acpi/virt/DSDT.dsl:1485:
+                    GSI2, $

ERROR: trailing whitespace
#61873: FILE: tests/data/acpi/virt/DSDT.dsl:1487:
+                }, $

ERROR: trailing whitespace
#61877: FILE: tests/data/acpi/virt/DSDT.dsl:1491:
+                    0x001AFFFF, $

ERROR: trailing whitespace
#61878: FILE: tests/data/acpi/virt/DSDT.dsl:1492:
+                    One, $

ERROR: trailing whitespace
#61879: FILE: tests/data/acpi/virt/DSDT.dsl:1493:
+                    GSI3, $

ERROR: trailing whitespace
#61881: FILE: tests/data/acpi/virt/DSDT.dsl:1495:
+                }, $

ERROR: trailing whitespace
#61885: FILE: tests/data/acpi/virt/DSDT.dsl:1499:
+                    0x001AFFFF, $

ERROR: trailing whitespace
#61886: FILE: tests/data/acpi/virt/DSDT.dsl:1500:
+                    0x02, $

ERROR: trailing whitespace
#61887: FILE: tests/data/acpi/virt/DSDT.dsl:1501:
+                    GSI0, $

ERROR: trailing whitespace
#61889: FILE: tests/data/acpi/virt/DSDT.dsl:1503:
+                }, $

ERROR: trailing whitespace
#61893: FILE: tests/data/acpi/virt/DSDT.dsl:1507:
+                    0x001AFFFF, $

ERROR: trailing whitespace
#61894: FILE: tests/data/acpi/virt/DSDT.dsl:1508:
+                    0x03, $

ERROR: trailing whitespace
#61895: FILE: tests/data/acpi/virt/DSDT.dsl:1509:
+                    GSI1, $

ERROR: trailing whitespace
#61897: FILE: tests/data/acpi/virt/DSDT.dsl:1511:
+                }, $

ERROR: trailing whitespace
#61901: FILE: tests/data/acpi/virt/DSDT.dsl:1515:
+                    0x001BFFFF, $

ERROR: trailing whitespace
#61902: FILE: tests/data/acpi/virt/DSDT.dsl:1516:
+                    Zero, $

ERROR: trailing whitespace
#61903: FILE: tests/data/acpi/virt/DSDT.dsl:1517:
+                    GSI3, $

ERROR: trailing whitespace
#61905: FILE: tests/data/acpi/virt/DSDT.dsl:1519:
+                }, $

ERROR: trailing whitespace
#61909: FILE: tests/data/acpi/virt/DSDT.dsl:1523:
+                    0x001BFFFF, $

ERROR: trailing whitespace
#61910: FILE: tests/data/acpi/virt/DSDT.dsl:1524:
+                    One, $

ERROR: trailing whitespace
#61911: FILE: tests/data/acpi/virt/DSDT.dsl:1525:
+                    GSI0, $

ERROR: trailing whitespace
#61913: FILE: tests/data/acpi/virt/DSDT.dsl:1527:
+                }, $

ERROR: trailing whitespace
#61917: FILE: tests/data/acpi/virt/DSDT.dsl:1531:
+                    0x001BFFFF, $

ERROR: trailing whitespace
#61918: FILE: tests/data/acpi/virt/DSDT.dsl:1532:
+                    0x02, $

ERROR: trailing whitespace
#61919: FILE: tests/data/acpi/virt/DSDT.dsl:1533:
+                    GSI1, $

ERROR: trailing whitespace
#61921: FILE: tests/data/acpi/virt/DSDT.dsl:1535:
+                }, $

ERROR: trailing whitespace
#61925: FILE: tests/data/acpi/virt/DSDT.dsl:1539:
+                    0x001BFFFF, $

ERROR: trailing whitespace
#61926: FILE: tests/data/acpi/virt/DSDT.dsl:1540:
+                    0x03, $

ERROR: trailing whitespace
#61927: FILE: tests/data/acpi/virt/DSDT.dsl:1541:
+                    GSI2, $

ERROR: trailing whitespace
#61929: FILE: tests/data/acpi/virt/DSDT.dsl:1543:
+                }, $

ERROR: trailing whitespace
#61933: FILE: tests/data/acpi/virt/DSDT.dsl:1547:
+                    0x001CFFFF, $

ERROR: trailing whitespace
#61934: FILE: tests/data/acpi/virt/DSDT.dsl:1548:
+                    Zero, $

ERROR: trailing whitespace
#61935: FILE: tests/data/acpi/virt/DSDT.dsl:1549:
+                    GSI0, $

ERROR: trailing whitespace
#61937: FILE: tests/data/acpi/virt/DSDT.dsl:1551:
+                }, $

ERROR: trailing whitespace
#61941: FILE: tests/data/acpi/virt/DSDT.dsl:1555:
+                    0x001CFFFF, $

ERROR: trailing whitespace
#61942: FILE: tests/data/acpi/virt/DSDT.dsl:1556:
+                    One, $

ERROR: trailing whitespace
#61943: FILE: tests/data/acpi/virt/DSDT.dsl:1557:
+                    GSI1, $

ERROR: trailing whitespace
#61945: FILE: tests/data/acpi/virt/DSDT.dsl:1559:
+                }, $

ERROR: trailing whitespace
#61949: FILE: tests/data/acpi/virt/DSDT.dsl:1563:
+                    0x001CFFFF, $

ERROR: trailing whitespace
#61950: FILE: tests/data/acpi/virt/DSDT.dsl:1564:
+                    0x02, $

ERROR: trailing whitespace
#61951: FILE: tests/data/acpi/virt/DSDT.dsl:1565:
+                    GSI2, $

ERROR: trailing whitespace
#61953: FILE: tests/data/acpi/virt/DSDT.dsl:1567:
+                }, $

ERROR: trailing whitespace
#61957: FILE: tests/data/acpi/virt/DSDT.dsl:1571:
+                    0x001CFFFF, $

ERROR: trailing whitespace
#61958: FILE: tests/data/acpi/virt/DSDT.dsl:1572:
+                    0x03, $

ERROR: trailing whitespace
#61959: FILE: tests/data/acpi/virt/DSDT.dsl:1573:
+                    GSI3, $

ERROR: trailing whitespace
#61961: FILE: tests/data/acpi/virt/DSDT.dsl:1575:
+                }, $

ERROR: trailing whitespace
#61965: FILE: tests/data/acpi/virt/DSDT.dsl:1579:
+                    0x001DFFFF, $

ERROR: trailing whitespace
#61966: FILE: tests/data/acpi/virt/DSDT.dsl:1580:
+                    Zero, $

ERROR: trailing whitespace
#61967: FILE: tests/data/acpi/virt/DSDT.dsl:1581:
+                    GSI1, $

ERROR: trailing whitespace
#61969: FILE: tests/data/acpi/virt/DSDT.dsl:1583:
+                }, $

ERROR: trailing whitespace
#61973: FILE: tests/data/acpi/virt/DSDT.dsl:1587:
+                    0x001DFFFF, $

ERROR: trailing whitespace
#61974: FILE: tests/data/acpi/virt/DSDT.dsl:1588:
+                    One, $

ERROR: trailing whitespace
#61975: FILE: tests/data/acpi/virt/DSDT.dsl:1589:
+                    GSI2, $

ERROR: trailing whitespace
#61977: FILE: tests/data/acpi/virt/DSDT.dsl:1591:
+                }, $

ERROR: trailing whitespace
#61981: FILE: tests/data/acpi/virt/DSDT.dsl:1595:
+                    0x001DFFFF, $

ERROR: trailing whitespace
#61982: FILE: tests/data/acpi/virt/DSDT.dsl:1596:
+                    0x02, $

ERROR: trailing whitespace
#61983: FILE: tests/data/acpi/virt/DSDT.dsl:1597:
+                    GSI3, $

ERROR: trailing whitespace
#61985: FILE: tests/data/acpi/virt/DSDT.dsl:1599:
+                }, $

ERROR: trailing whitespace
#61989: FILE: tests/data/acpi/virt/DSDT.dsl:1603:
+                    0x001DFFFF, $

ERROR: trailing whitespace
#61990: FILE: tests/data/acpi/virt/DSDT.dsl:1604:
+                    0x03, $

ERROR: trailing whitespace
#61991: FILE: tests/data/acpi/virt/DSDT.dsl:1605:
+                    GSI0, $

ERROR: trailing whitespace
#61993: FILE: tests/data/acpi/virt/DSDT.dsl:1607:
+                }, $

ERROR: trailing whitespace
#61997: FILE: tests/data/acpi/virt/DSDT.dsl:1611:
+                    0x001EFFFF, $

ERROR: trailing whitespace
#61998: FILE: tests/data/acpi/virt/DSDT.dsl:1612:
+                    Zero, $

ERROR: trailing whitespace
#61999: FILE: tests/data/acpi/virt/DSDT.dsl:1613:
+                    GSI2, $

ERROR: trailing whitespace
#62001: FILE: tests/data/acpi/virt/DSDT.dsl:1615:
+                }, $

ERROR: trailing whitespace
#62005: FILE: tests/data/acpi/virt/DSDT.dsl:1619:
+                    0x001EFFFF, $

ERROR: trailing whitespace
#62006: FILE: tests/data/acpi/virt/DSDT.dsl:1620:
+                    One, $

ERROR: trailing whitespace
#62007: FILE: tests/data/acpi/virt/DSDT.dsl:1621:
+                    GSI3, $

ERROR: trailing whitespace
#62009: FILE: tests/data/acpi/virt/DSDT.dsl:1623:
+                }, $

ERROR: trailing whitespace
#62013: FILE: tests/data/acpi/virt/DSDT.dsl:1627:
+                    0x001EFFFF, $

ERROR: trailing whitespace
#62014: FILE: tests/data/acpi/virt/DSDT.dsl:1628:
+                    0x02, $

ERROR: trailing whitespace
#62015: FILE: tests/data/acpi/virt/DSDT.dsl:1629:
+                    GSI0, $

ERROR: trailing whitespace
#62017: FILE: tests/data/acpi/virt/DSDT.dsl:1631:
+                }, $

ERROR: trailing whitespace
#62021: FILE: tests/data/acpi/virt/DSDT.dsl:1635:
+                    0x001EFFFF, $

ERROR: trailing whitespace
#62022: FILE: tests/data/acpi/virt/DSDT.dsl:1636:
+                    0x03, $

ERROR: trailing whitespace
#62023: FILE: tests/data/acpi/virt/DSDT.dsl:1637:
+                    GSI1, $

ERROR: trailing whitespace
#62025: FILE: tests/data/acpi/virt/DSDT.dsl:1639:
+                }, $

ERROR: trailing whitespace
#62029: FILE: tests/data/acpi/virt/DSDT.dsl:1643:
+                    0x001FFFFF, $

ERROR: trailing whitespace
#62030: FILE: tests/data/acpi/virt/DSDT.dsl:1644:
+                    Zero, $

ERROR: trailing whitespace
#62031: FILE: tests/data/acpi/virt/DSDT.dsl:1645:
+                    GSI3, $

ERROR: trailing whitespace
#62033: FILE: tests/data/acpi/virt/DSDT.dsl:1647:
+                }, $

ERROR: trailing whitespace
#62037: FILE: tests/data/acpi/virt/DSDT.dsl:1651:
+                    0x001FFFFF, $

ERROR: trailing whitespace
#62038: FILE: tests/data/acpi/virt/DSDT.dsl:1652:
+                    One, $

ERROR: trailing whitespace
#62039: FILE: tests/data/acpi/virt/DSDT.dsl:1653:
+                    GSI0, $

ERROR: trailing whitespace
#62041: FILE: tests/data/acpi/virt/DSDT.dsl:1655:
+                }, $

ERROR: trailing whitespace
#62045: FILE: tests/data/acpi/virt/DSDT.dsl:1659:
+                    0x001FFFFF, $

ERROR: trailing whitespace
#62046: FILE: tests/data/acpi/virt/DSDT.dsl:1660:
+                    0x02, $

ERROR: trailing whitespace
#62047: FILE: tests/data/acpi/virt/DSDT.dsl:1661:
+                    GSI1, $

ERROR: trailing whitespace
#62049: FILE: tests/data/acpi/virt/DSDT.dsl:1663:
+                }, $

ERROR: trailing whitespace
#62053: FILE: tests/data/acpi/virt/DSDT.dsl:1667:
+                    0x001FFFFF, $

ERROR: trailing whitespace
#62054: FILE: tests/data/acpi/virt/DSDT.dsl:1668:
+                    0x03, $

ERROR: trailing whitespace
#62055: FILE: tests/data/acpi/virt/DSDT.dsl:1669:
+                    GSI2, $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/virt/DSDT.memhp.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/virt/DSDT.memhp.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#62303: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:5:
+ * $

ERROR: trailing whitespace
#62951: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:653:
+                    0xFFFF, $

ERROR: trailing whitespace
#62952: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:654:
+                    Zero, $

ERROR: trailing whitespace
#62953: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:655:
+                    GSI0, $

ERROR: trailing whitespace
#62955: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:657:
+                }, $

ERROR: trailing whitespace
#62959: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:661:
+                    0xFFFF, $

ERROR: trailing whitespace
#62960: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:662:
+                    One, $

ERROR: trailing whitespace
#62961: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:663:
+                    GSI1, $

ERROR: trailing whitespace
#62963: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:665:
+                }, $

ERROR: trailing whitespace
#62967: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:669:
+                    0xFFFF, $

ERROR: trailing whitespace
#62968: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:670:
+                    0x02, $

ERROR: trailing whitespace
#62969: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:671:
+                    GSI2, $

ERROR: trailing whitespace
#62971: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:673:
+                }, $

ERROR: trailing whitespace
#62975: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:677:
+                    0xFFFF, $

ERROR: trailing whitespace
#62976: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:678:
+                    0x03, $

ERROR: trailing whitespace
#62977: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:679:
+                    GSI3, $

ERROR: trailing whitespace
#62979: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:681:
+                }, $

ERROR: trailing whitespace
#62983: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:685:
+                    0x0001FFFF, $

ERROR: trailing whitespace
#62984: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:686:
+                    Zero, $

ERROR: trailing whitespace
#62985: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:687:
+                    GSI1, $

ERROR: trailing whitespace
#62987: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:689:
+                }, $

ERROR: trailing whitespace
#62991: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:693:
+                    0x0001FFFF, $

ERROR: trailing whitespace
#62992: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:694:
+                    One, $

ERROR: trailing whitespace
#62993: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:695:
+                    GSI2, $

ERROR: trailing whitespace
#62995: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:697:
+                }, $

ERROR: trailing whitespace
#62999: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:701:
+                    0x0001FFFF, $

ERROR: trailing whitespace
#63000: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:702:
+                    0x02, $

ERROR: trailing whitespace
#63001: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:703:
+                    GSI3, $

ERROR: trailing whitespace
#63003: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:705:
+                }, $

ERROR: trailing whitespace
#63007: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:709:
+                    0x0001FFFF, $

ERROR: trailing whitespace
#63008: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:710:
+                    0x03, $

ERROR: trailing whitespace
#63009: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:711:
+                    GSI0, $

ERROR: trailing whitespace
#63011: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:713:
+                }, $

ERROR: trailing whitespace
#63015: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:717:
+                    0x0002FFFF, $

ERROR: trailing whitespace
#63016: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:718:
+                    Zero, $

ERROR: trailing whitespace
#63017: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:719:
+                    GSI2, $

ERROR: trailing whitespace
#63019: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:721:
+                }, $

ERROR: trailing whitespace
#63023: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:725:
+                    0x0002FFFF, $

ERROR: trailing whitespace
#63024: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:726:
+                    One, $

ERROR: trailing whitespace
#63025: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:727:
+                    GSI3, $

ERROR: trailing whitespace
#63027: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:729:
+                }, $

ERROR: trailing whitespace
#63031: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:733:
+                    0x0002FFFF, $

ERROR: trailing whitespace
#63032: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:734:
+                    0x02, $

ERROR: trailing whitespace
#63033: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:735:
+                    GSI0, $

ERROR: trailing whitespace
#63035: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:737:
+                }, $

ERROR: trailing whitespace
#63039: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:741:
+                    0x0002FFFF, $

ERROR: trailing whitespace
#63040: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:742:
+                    0x03, $

ERROR: trailing whitespace
#63041: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:743:
+                    GSI1, $

ERROR: trailing whitespace
#63043: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:745:
+                }, $

ERROR: trailing whitespace
#63047: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:749:
+                    0x0003FFFF, $

ERROR: trailing whitespace
#63048: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:750:
+                    Zero, $

ERROR: trailing whitespace
#63049: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:751:
+                    GSI3, $

ERROR: trailing whitespace
#63051: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:753:
+                }, $

ERROR: trailing whitespace
#63055: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:757:
+                    0x0003FFFF, $

ERROR: trailing whitespace
#63056: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:758:
+                    One, $

ERROR: trailing whitespace
#63057: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:759:
+                    GSI0, $

ERROR: trailing whitespace
#63059: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:761:
+                }, $

ERROR: trailing whitespace
#63063: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:765:
+                    0x0003FFFF, $

ERROR: trailing whitespace
#63064: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:766:
+                    0x02, $

ERROR: trailing whitespace
#63065: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:767:
+                    GSI1, $

ERROR: trailing whitespace
#63067: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:769:
+                }, $

ERROR: trailing whitespace
#63071: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:773:
+                    0x0003FFFF, $

ERROR: trailing whitespace
#63072: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:774:
+                    0x03, $

ERROR: trailing whitespace
#63073: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:775:
+                    GSI2, $

ERROR: trailing whitespace
#63075: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:777:
+                }, $

ERROR: trailing whitespace
#63079: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:781:
+                    0x0004FFFF, $

ERROR: trailing whitespace
#63080: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:782:
+                    Zero, $

ERROR: trailing whitespace
#63081: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:783:
+                    GSI0, $

ERROR: trailing whitespace
#63083: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:785:
+                }, $

ERROR: trailing whitespace
#63087: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:789:
+                    0x0004FFFF, $

ERROR: trailing whitespace
#63088: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:790:
+                    One, $

ERROR: trailing whitespace
#63089: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:791:
+                    GSI1, $

ERROR: trailing whitespace
#63091: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:793:
+                }, $

ERROR: trailing whitespace
#63095: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:797:
+                    0x0004FFFF, $

ERROR: trailing whitespace
#63096: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:798:
+                    0x02, $

ERROR: trailing whitespace
#63097: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:799:
+                    GSI2, $

ERROR: trailing whitespace
#63099: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:801:
+                }, $

ERROR: trailing whitespace
#63103: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:805:
+                    0x0004FFFF, $

ERROR: trailing whitespace
#63104: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:806:
+                    0x03, $

ERROR: trailing whitespace
#63105: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:807:
+                    GSI3, $

ERROR: trailing whitespace
#63107: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:809:
+                }, $

ERROR: trailing whitespace
#63111: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:813:
+                    0x0005FFFF, $

ERROR: trailing whitespace
#63112: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:814:
+                    Zero, $

ERROR: trailing whitespace
#63113: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:815:
+                    GSI1, $

ERROR: trailing whitespace
#63115: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:817:
+                }, $

ERROR: trailing whitespace
#63119: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:821:
+                    0x0005FFFF, $

ERROR: trailing whitespace
#63120: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:822:
+                    One, $

ERROR: trailing whitespace
#63121: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:823:
+                    GSI2, $

ERROR: trailing whitespace
#63123: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:825:
+                }, $

ERROR: trailing whitespace
#63127: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:829:
+                    0x0005FFFF, $

ERROR: trailing whitespace
#63128: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:830:
+                    0x02, $

ERROR: trailing whitespace
#63129: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:831:
+                    GSI3, $

ERROR: trailing whitespace
#63131: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:833:
+                }, $

ERROR: trailing whitespace
#63135: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:837:
+                    0x0005FFFF, $

ERROR: trailing whitespace
#63136: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:838:
+                    0x03, $

ERROR: trailing whitespace
#63137: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:839:
+                    GSI0, $

ERROR: trailing whitespace
#63139: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:841:
+                }, $

ERROR: trailing whitespace
#63143: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:845:
+                    0x0006FFFF, $

ERROR: trailing whitespace
#63144: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:846:
+                    Zero, $

ERROR: trailing whitespace
#63145: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:847:
+                    GSI2, $

ERROR: trailing whitespace
#63147: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:849:
+                }, $

ERROR: trailing whitespace
#63151: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:853:
+                    0x0006FFFF, $

ERROR: trailing whitespace
#63152: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:854:
+                    One, $

ERROR: trailing whitespace
#63153: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:855:
+                    GSI3, $

ERROR: trailing whitespace
#63155: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:857:
+                }, $

ERROR: trailing whitespace
#63159: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:861:
+                    0x0006FFFF, $

ERROR: trailing whitespace
#63160: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:862:
+                    0x02, $

ERROR: trailing whitespace
#63161: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:863:
+                    GSI0, $

ERROR: trailing whitespace
#63163: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:865:
+                }, $

ERROR: trailing whitespace
#63167: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:869:
+                    0x0006FFFF, $

ERROR: trailing whitespace
#63168: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:870:
+                    0x03, $

ERROR: trailing whitespace
#63169: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:871:
+                    GSI1, $

ERROR: trailing whitespace
#63171: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:873:
+                }, $

ERROR: trailing whitespace
#63175: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:877:
+                    0x0007FFFF, $

ERROR: trailing whitespace
#63176: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:878:
+                    Zero, $

ERROR: trailing whitespace
#63177: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:879:
+                    GSI3, $

ERROR: trailing whitespace
#63179: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:881:
+                }, $

ERROR: trailing whitespace
#63183: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:885:
+                    0x0007FFFF, $

ERROR: trailing whitespace
#63184: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:886:
+                    One, $

ERROR: trailing whitespace
#63185: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:887:
+                    GSI0, $

ERROR: trailing whitespace
#63187: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:889:
+                }, $

ERROR: trailing whitespace
#63191: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:893:
+                    0x0007FFFF, $

ERROR: trailing whitespace
#63192: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:894:
+                    0x02, $

ERROR: trailing whitespace
#63193: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:895:
+                    GSI1, $

ERROR: trailing whitespace
#63195: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:897:
+                }, $

ERROR: trailing whitespace
#63199: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:901:
+                    0x0007FFFF, $

ERROR: trailing whitespace
#63200: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:902:
+                    0x03, $

ERROR: trailing whitespace
#63201: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:903:
+                    GSI2, $

ERROR: trailing whitespace
#63203: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:905:
+                }, $

ERROR: trailing whitespace
#63207: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:909:
+                    0x0008FFFF, $

ERROR: trailing whitespace
#63208: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:910:
+                    Zero, $

ERROR: trailing whitespace
#63209: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:911:
+                    GSI0, $

ERROR: trailing whitespace
#63211: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:913:
+                }, $

ERROR: trailing whitespace
#63215: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:917:
+                    0x0008FFFF, $

ERROR: trailing whitespace
#63216: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:918:
+                    One, $

ERROR: trailing whitespace
#63217: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:919:
+                    GSI1, $

ERROR: trailing whitespace
#63219: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:921:
+                }, $

ERROR: trailing whitespace
#63223: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:925:
+                    0x0008FFFF, $

ERROR: trailing whitespace
#63224: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:926:
+                    0x02, $

ERROR: trailing whitespace
#63225: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:927:
+                    GSI2, $

ERROR: trailing whitespace
#63227: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:929:
+                }, $

ERROR: trailing whitespace
#63231: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:933:
+                    0x0008FFFF, $

ERROR: trailing whitespace
#63232: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:934:
+                    0x03, $

ERROR: trailing whitespace
#63233: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:935:
+                    GSI3, $

ERROR: trailing whitespace
#63235: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:937:
+                }, $

ERROR: trailing whitespace
#63239: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:941:
+                    0x0009FFFF, $

ERROR: trailing whitespace
#63240: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:942:
+                    Zero, $

ERROR: trailing whitespace
#63241: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:943:
+                    GSI1, $

ERROR: trailing whitespace
#63243: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:945:
+                }, $

ERROR: trailing whitespace
#63247: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:949:
+                    0x0009FFFF, $

ERROR: trailing whitespace
#63248: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:950:
+                    One, $

ERROR: trailing whitespace
#63249: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:951:
+                    GSI2, $

ERROR: trailing whitespace
#63251: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:953:
+                }, $

ERROR: trailing whitespace
#63255: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:957:
+                    0x0009FFFF, $

ERROR: trailing whitespace
#63256: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:958:
+                    0x02, $

ERROR: trailing whitespace
#63257: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:959:
+                    GSI3, $

ERROR: trailing whitespace
#63259: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:961:
+                }, $

ERROR: trailing whitespace
#63263: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:965:
+                    0x0009FFFF, $

ERROR: trailing whitespace
#63264: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:966:
+                    0x03, $

ERROR: trailing whitespace
#63265: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:967:
+                    GSI0, $

ERROR: trailing whitespace
#63267: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:969:
+                }, $

ERROR: trailing whitespace
#63271: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:973:
+                    0x000AFFFF, $

ERROR: trailing whitespace
#63272: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:974:
+                    Zero, $

ERROR: trailing whitespace
#63273: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:975:
+                    GSI2, $

ERROR: trailing whitespace
#63275: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:977:
+                }, $

ERROR: trailing whitespace
#63279: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:981:
+                    0x000AFFFF, $

ERROR: trailing whitespace
#63280: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:982:
+                    One, $

ERROR: trailing whitespace
#63281: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:983:
+                    GSI3, $

ERROR: trailing whitespace
#63283: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:985:
+                }, $

ERROR: trailing whitespace
#63287: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:989:
+                    0x000AFFFF, $

ERROR: trailing whitespace
#63288: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:990:
+                    0x02, $

ERROR: trailing whitespace
#63289: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:991:
+                    GSI0, $

ERROR: trailing whitespace
#63291: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:993:
+                }, $

ERROR: trailing whitespace
#63295: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:997:
+                    0x000AFFFF, $

ERROR: trailing whitespace
#63296: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:998:
+                    0x03, $

ERROR: trailing whitespace
#63297: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:999:
+                    GSI1, $

ERROR: trailing whitespace
#63299: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1001:
+                }, $

ERROR: trailing whitespace
#63303: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1005:
+                    0x000BFFFF, $

ERROR: trailing whitespace
#63304: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1006:
+                    Zero, $

ERROR: trailing whitespace
#63305: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1007:
+                    GSI3, $

ERROR: trailing whitespace
#63307: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1009:
+                }, $

ERROR: trailing whitespace
#63311: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1013:
+                    0x000BFFFF, $

ERROR: trailing whitespace
#63312: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1014:
+                    One, $

ERROR: trailing whitespace
#63313: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1015:
+                    GSI0, $

ERROR: trailing whitespace
#63315: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1017:
+                }, $

ERROR: trailing whitespace
#63319: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1021:
+                    0x000BFFFF, $

ERROR: trailing whitespace
#63320: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1022:
+                    0x02, $

ERROR: trailing whitespace
#63321: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1023:
+                    GSI1, $

ERROR: trailing whitespace
#63323: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1025:
+                }, $

ERROR: trailing whitespace
#63327: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1029:
+                    0x000BFFFF, $

ERROR: trailing whitespace
#63328: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1030:
+                    0x03, $

ERROR: trailing whitespace
#63329: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1031:
+                    GSI2, $

ERROR: trailing whitespace
#63331: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1033:
+                }, $

ERROR: trailing whitespace
#63335: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1037:
+                    0x000CFFFF, $

ERROR: trailing whitespace
#63336: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1038:
+                    Zero, $

ERROR: trailing whitespace
#63337: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1039:
+                    GSI0, $

ERROR: trailing whitespace
#63339: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1041:
+                }, $

ERROR: trailing whitespace
#63343: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1045:
+                    0x000CFFFF, $

ERROR: trailing whitespace
#63344: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1046:
+                    One, $

ERROR: trailing whitespace
#63345: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1047:
+                    GSI1, $

ERROR: trailing whitespace
#63347: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1049:
+                }, $

ERROR: trailing whitespace
#63351: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1053:
+                    0x000CFFFF, $

ERROR: trailing whitespace
#63352: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1054:
+                    0x02, $

ERROR: trailing whitespace
#63353: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1055:
+                    GSI2, $

ERROR: trailing whitespace
#63355: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1057:
+                }, $

ERROR: trailing whitespace
#63359: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1061:
+                    0x000CFFFF, $

ERROR: trailing whitespace
#63360: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1062:
+                    0x03, $

ERROR: trailing whitespace
#63361: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1063:
+                    GSI3, $

ERROR: trailing whitespace
#63363: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1065:
+                }, $

ERROR: trailing whitespace
#63367: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1069:
+                    0x000DFFFF, $

ERROR: trailing whitespace
#63368: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1070:
+                    Zero, $

ERROR: trailing whitespace
#63369: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1071:
+                    GSI1, $

ERROR: trailing whitespace
#63371: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1073:
+                }, $

ERROR: trailing whitespace
#63375: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1077:
+                    0x000DFFFF, $

ERROR: trailing whitespace
#63376: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1078:
+                    One, $

ERROR: trailing whitespace
#63377: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1079:
+                    GSI2, $

ERROR: trailing whitespace
#63379: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1081:
+                }, $

ERROR: trailing whitespace
#63383: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1085:
+                    0x000DFFFF, $

ERROR: trailing whitespace
#63384: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1086:
+                    0x02, $

ERROR: trailing whitespace
#63385: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1087:
+                    GSI3, $

ERROR: trailing whitespace
#63387: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1089:
+                }, $

ERROR: trailing whitespace
#63391: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1093:
+                    0x000DFFFF, $

ERROR: trailing whitespace
#63392: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1094:
+                    0x03, $

ERROR: trailing whitespace
#63393: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1095:
+                    GSI0, $

ERROR: trailing whitespace
#63395: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1097:
+                }, $

ERROR: trailing whitespace
#63399: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1101:
+                    0x000EFFFF, $

ERROR: trailing whitespace
#63400: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1102:
+                    Zero, $

ERROR: trailing whitespace
#63401: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1103:
+                    GSI2, $

ERROR: trailing whitespace
#63403: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1105:
+                }, $

ERROR: trailing whitespace
#63407: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1109:
+                    0x000EFFFF, $

ERROR: trailing whitespace
#63408: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1110:
+                    One, $

ERROR: trailing whitespace
#63409: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1111:
+                    GSI3, $

ERROR: trailing whitespace
#63411: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1113:
+                }, $

ERROR: trailing whitespace
#63415: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1117:
+                    0x000EFFFF, $

ERROR: trailing whitespace
#63416: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1118:
+                    0x02, $

ERROR: trailing whitespace
#63417: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1119:
+                    GSI0, $

ERROR: trailing whitespace
#63419: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1121:
+                }, $

ERROR: trailing whitespace
#63423: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1125:
+                    0x000EFFFF, $

ERROR: trailing whitespace
#63424: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1126:
+                    0x03, $

ERROR: trailing whitespace
#63425: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1127:
+                    GSI1, $

ERROR: trailing whitespace
#63427: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1129:
+                }, $

ERROR: trailing whitespace
#63431: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1133:
+                    0x000FFFFF, $

ERROR: trailing whitespace
#63432: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1134:
+                    Zero, $

ERROR: trailing whitespace
#63433: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1135:
+                    GSI3, $

ERROR: trailing whitespace
#63435: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1137:
+                }, $

ERROR: trailing whitespace
#63439: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1141:
+                    0x000FFFFF, $

ERROR: trailing whitespace
#63440: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1142:
+                    One, $

ERROR: trailing whitespace
#63441: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1143:
+                    GSI0, $

ERROR: trailing whitespace
#63443: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1145:
+                }, $

ERROR: trailing whitespace
#63447: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1149:
+                    0x000FFFFF, $

ERROR: trailing whitespace
#63448: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1150:
+                    0x02, $

ERROR: trailing whitespace
#63449: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1151:
+                    GSI1, $

ERROR: trailing whitespace
#63451: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1153:
+                }, $

ERROR: trailing whitespace
#63455: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1157:
+                    0x000FFFFF, $

ERROR: trailing whitespace
#63456: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1158:
+                    0x03, $

ERROR: trailing whitespace
#63457: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1159:
+                    GSI2, $

ERROR: trailing whitespace
#63459: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1161:
+                }, $

ERROR: trailing whitespace
#63463: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1165:
+                    0x0010FFFF, $

ERROR: trailing whitespace
#63464: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1166:
+                    Zero, $

ERROR: trailing whitespace
#63465: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1167:
+                    GSI0, $

ERROR: trailing whitespace
#63467: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1169:
+                }, $

ERROR: trailing whitespace
#63471: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1173:
+                    0x0010FFFF, $

ERROR: trailing whitespace
#63472: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1174:
+                    One, $

ERROR: trailing whitespace
#63473: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1175:
+                    GSI1, $

ERROR: trailing whitespace
#63475: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1177:
+                }, $

ERROR: trailing whitespace
#63479: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1181:
+                    0x0010FFFF, $

ERROR: trailing whitespace
#63480: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1182:
+                    0x02, $

ERROR: trailing whitespace
#63481: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1183:
+                    GSI2, $

ERROR: trailing whitespace
#63483: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1185:
+                }, $

ERROR: trailing whitespace
#63487: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1189:
+                    0x0010FFFF, $

ERROR: trailing whitespace
#63488: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1190:
+                    0x03, $

ERROR: trailing whitespace
#63489: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1191:
+                    GSI3, $

ERROR: trailing whitespace
#63491: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1193:
+                }, $

ERROR: trailing whitespace
#63495: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1197:
+                    0x0011FFFF, $

ERROR: trailing whitespace
#63496: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1198:
+                    Zero, $

ERROR: trailing whitespace
#63497: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1199:
+                    GSI1, $

ERROR: trailing whitespace
#63499: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1201:
+                }, $

ERROR: trailing whitespace
#63503: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1205:
+                    0x0011FFFF, $

ERROR: trailing whitespace
#63504: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1206:
+                    One, $

ERROR: trailing whitespace
#63505: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1207:
+                    GSI2, $

ERROR: trailing whitespace
#63507: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1209:
+                }, $

ERROR: trailing whitespace
#63511: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1213:
+                    0x0011FFFF, $

ERROR: trailing whitespace
#63512: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1214:
+                    0x02, $

ERROR: trailing whitespace
#63513: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1215:
+                    GSI3, $

ERROR: trailing whitespace
#63515: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1217:
+                }, $

ERROR: trailing whitespace
#63519: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1221:
+                    0x0011FFFF, $

ERROR: trailing whitespace
#63520: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1222:
+                    0x03, $

ERROR: trailing whitespace
#63521: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1223:
+                    GSI0, $

ERROR: trailing whitespace
#63523: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1225:
+                }, $

ERROR: trailing whitespace
#63527: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1229:
+                    0x0012FFFF, $

ERROR: trailing whitespace
#63528: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1230:
+                    Zero, $

ERROR: trailing whitespace
#63529: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1231:
+                    GSI2, $

ERROR: trailing whitespace
#63531: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1233:
+                }, $

ERROR: trailing whitespace
#63535: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1237:
+                    0x0012FFFF, $

ERROR: trailing whitespace
#63536: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1238:
+                    One, $

ERROR: trailing whitespace
#63537: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1239:
+                    GSI3, $

ERROR: trailing whitespace
#63539: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1241:
+                }, $

ERROR: trailing whitespace
#63543: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1245:
+                    0x0012FFFF, $

ERROR: trailing whitespace
#63544: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1246:
+                    0x02, $

ERROR: trailing whitespace
#63545: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1247:
+                    GSI0, $

ERROR: trailing whitespace
#63547: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1249:
+                }, $

ERROR: trailing whitespace
#63551: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1253:
+                    0x0012FFFF, $

ERROR: trailing whitespace
#63552: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1254:
+                    0x03, $

ERROR: trailing whitespace
#63553: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1255:
+                    GSI1, $

ERROR: trailing whitespace
#63555: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1257:
+                }, $

ERROR: trailing whitespace
#63559: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1261:
+                    0x0013FFFF, $

ERROR: trailing whitespace
#63560: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1262:
+                    Zero, $

ERROR: trailing whitespace
#63561: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1263:
+                    GSI3, $

ERROR: trailing whitespace
#63563: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1265:
+                }, $

ERROR: trailing whitespace
#63567: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1269:
+                    0x0013FFFF, $

ERROR: trailing whitespace
#63568: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1270:
+                    One, $

ERROR: trailing whitespace
#63569: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1271:
+                    GSI0, $

ERROR: trailing whitespace
#63571: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1273:
+                }, $

ERROR: trailing whitespace
#63575: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1277:
+                    0x0013FFFF, $

ERROR: trailing whitespace
#63576: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1278:
+                    0x02, $

ERROR: trailing whitespace
#63577: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1279:
+                    GSI1, $

ERROR: trailing whitespace
#63579: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1281:
+                }, $

ERROR: trailing whitespace
#63583: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1285:
+                    0x0013FFFF, $

ERROR: trailing whitespace
#63584: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1286:
+                    0x03, $

ERROR: trailing whitespace
#63585: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1287:
+                    GSI2, $

ERROR: trailing whitespace
#63587: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1289:
+                }, $

ERROR: trailing whitespace
#63591: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1293:
+                    0x0014FFFF, $

ERROR: trailing whitespace
#63592: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1294:
+                    Zero, $

ERROR: trailing whitespace
#63593: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1295:
+                    GSI0, $

ERROR: trailing whitespace
#63595: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1297:
+                }, $

ERROR: trailing whitespace
#63599: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1301:
+                    0x0014FFFF, $

ERROR: trailing whitespace
#63600: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1302:
+                    One, $

ERROR: trailing whitespace
#63601: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1303:
+                    GSI1, $

ERROR: trailing whitespace
#63603: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1305:
+                }, $

ERROR: trailing whitespace
#63607: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1309:
+                    0x0014FFFF, $

ERROR: trailing whitespace
#63608: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1310:
+                    0x02, $

ERROR: trailing whitespace
#63609: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1311:
+                    GSI2, $

ERROR: trailing whitespace
#63611: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1313:
+                }, $

ERROR: trailing whitespace
#63615: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1317:
+                    0x0014FFFF, $

ERROR: trailing whitespace
#63616: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1318:
+                    0x03, $

ERROR: trailing whitespace
#63617: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1319:
+                    GSI3, $

ERROR: trailing whitespace
#63619: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1321:
+                }, $

ERROR: trailing whitespace
#63623: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1325:
+                    0x0015FFFF, $

ERROR: trailing whitespace
#63624: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1326:
+                    Zero, $

ERROR: trailing whitespace
#63625: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1327:
+                    GSI1, $

ERROR: trailing whitespace
#63627: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1329:
+                }, $

ERROR: trailing whitespace
#63631: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1333:
+                    0x0015FFFF, $

ERROR: trailing whitespace
#63632: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1334:
+                    One, $

ERROR: trailing whitespace
#63633: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1335:
+                    GSI2, $

ERROR: trailing whitespace
#63635: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1337:
+                }, $

ERROR: trailing whitespace
#63639: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1341:
+                    0x0015FFFF, $

ERROR: trailing whitespace
#63640: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1342:
+                    0x02, $

ERROR: trailing whitespace
#63641: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1343:
+                    GSI3, $

ERROR: trailing whitespace
#63643: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1345:
+                }, $

ERROR: trailing whitespace
#63647: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1349:
+                    0x0015FFFF, $

ERROR: trailing whitespace
#63648: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1350:
+                    0x03, $

ERROR: trailing whitespace
#63649: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1351:
+                    GSI0, $

ERROR: trailing whitespace
#63651: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1353:
+                }, $

ERROR: trailing whitespace
#63655: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1357:
+                    0x0016FFFF, $

ERROR: trailing whitespace
#63656: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1358:
+                    Zero, $

ERROR: trailing whitespace
#63657: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1359:
+                    GSI2, $

ERROR: trailing whitespace
#63659: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1361:
+                }, $

ERROR: trailing whitespace
#63663: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1365:
+                    0x0016FFFF, $

ERROR: trailing whitespace
#63664: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1366:
+                    One, $

ERROR: trailing whitespace
#63665: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1367:
+                    GSI3, $

ERROR: trailing whitespace
#63667: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1369:
+                }, $

ERROR: trailing whitespace
#63671: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1373:
+                    0x0016FFFF, $

ERROR: trailing whitespace
#63672: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1374:
+                    0x02, $

ERROR: trailing whitespace
#63673: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1375:
+                    GSI0, $

ERROR: trailing whitespace
#63675: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1377:
+                }, $

ERROR: trailing whitespace
#63679: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1381:
+                    0x0016FFFF, $

ERROR: trailing whitespace
#63680: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1382:
+                    0x03, $

ERROR: trailing whitespace
#63681: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1383:
+                    GSI1, $

ERROR: trailing whitespace
#63683: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1385:
+                }, $

ERROR: trailing whitespace
#63687: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1389:
+                    0x0017FFFF, $

ERROR: trailing whitespace
#63688: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1390:
+                    Zero, $

ERROR: trailing whitespace
#63689: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1391:
+                    GSI3, $

ERROR: trailing whitespace
#63691: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1393:
+                }, $

ERROR: trailing whitespace
#63695: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1397:
+                    0x0017FFFF, $

ERROR: trailing whitespace
#63696: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1398:
+                    One, $

ERROR: trailing whitespace
#63697: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1399:
+                    GSI0, $

ERROR: trailing whitespace
#63699: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1401:
+                }, $

ERROR: trailing whitespace
#63703: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1405:
+                    0x0017FFFF, $

ERROR: trailing whitespace
#63704: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1406:
+                    0x02, $

ERROR: trailing whitespace
#63705: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1407:
+                    GSI1, $

ERROR: trailing whitespace
#63707: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1409:
+                }, $

ERROR: trailing whitespace
#63711: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1413:
+                    0x0017FFFF, $

ERROR: trailing whitespace
#63712: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1414:
+                    0x03, $

ERROR: trailing whitespace
#63713: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1415:
+                    GSI2, $

ERROR: trailing whitespace
#63715: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1417:
+                }, $

ERROR: trailing whitespace
#63719: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1421:
+                    0x0018FFFF, $

ERROR: trailing whitespace
#63720: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1422:
+                    Zero, $

ERROR: trailing whitespace
#63721: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1423:
+                    GSI0, $

ERROR: trailing whitespace
#63723: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1425:
+                }, $

ERROR: trailing whitespace
#63727: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1429:
+                    0x0018FFFF, $

ERROR: trailing whitespace
#63728: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1430:
+                    One, $

ERROR: trailing whitespace
#63729: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1431:
+                    GSI1, $

ERROR: trailing whitespace
#63731: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1433:
+                }, $

ERROR: trailing whitespace
#63735: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1437:
+                    0x0018FFFF, $

ERROR: trailing whitespace
#63736: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1438:
+                    0x02, $

ERROR: trailing whitespace
#63737: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1439:
+                    GSI2, $

ERROR: trailing whitespace
#63739: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1441:
+                }, $

ERROR: trailing whitespace
#63743: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1445:
+                    0x0018FFFF, $

ERROR: trailing whitespace
#63744: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1446:
+                    0x03, $

ERROR: trailing whitespace
#63745: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1447:
+                    GSI3, $

ERROR: trailing whitespace
#63747: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1449:
+                }, $

ERROR: trailing whitespace
#63751: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1453:
+                    0x0019FFFF, $

ERROR: trailing whitespace
#63752: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1454:
+                    Zero, $

ERROR: trailing whitespace
#63753: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1455:
+                    GSI1, $

ERROR: trailing whitespace
#63755: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1457:
+                }, $

ERROR: trailing whitespace
#63759: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1461:
+                    0x0019FFFF, $

ERROR: trailing whitespace
#63760: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1462:
+                    One, $

ERROR: trailing whitespace
#63761: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1463:
+                    GSI2, $

ERROR: trailing whitespace
#63763: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1465:
+                }, $

ERROR: trailing whitespace
#63767: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1469:
+                    0x0019FFFF, $

ERROR: trailing whitespace
#63768: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1470:
+                    0x02, $

ERROR: trailing whitespace
#63769: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1471:
+                    GSI3, $

ERROR: trailing whitespace
#63771: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1473:
+                }, $

ERROR: trailing whitespace
#63775: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1477:
+                    0x0019FFFF, $

ERROR: trailing whitespace
#63776: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1478:
+                    0x03, $

ERROR: trailing whitespace
#63777: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1479:
+                    GSI0, $

ERROR: trailing whitespace
#63779: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1481:
+                }, $

ERROR: trailing whitespace
#63783: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1485:
+                    0x001AFFFF, $

ERROR: trailing whitespace
#63784: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1486:
+                    Zero, $

ERROR: trailing whitespace
#63785: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1487:
+                    GSI2, $

ERROR: trailing whitespace
#63787: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1489:
+                }, $

ERROR: trailing whitespace
#63791: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1493:
+                    0x001AFFFF, $

ERROR: trailing whitespace
#63792: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1494:
+                    One, $

ERROR: trailing whitespace
#63793: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1495:
+                    GSI3, $

ERROR: trailing whitespace
#63795: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1497:
+                }, $

ERROR: trailing whitespace
#63799: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1501:
+                    0x001AFFFF, $

ERROR: trailing whitespace
#63800: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1502:
+                    0x02, $

ERROR: trailing whitespace
#63801: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1503:
+                    GSI0, $

ERROR: trailing whitespace
#63803: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1505:
+                }, $

ERROR: trailing whitespace
#63807: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1509:
+                    0x001AFFFF, $

ERROR: trailing whitespace
#63808: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1510:
+                    0x03, $

ERROR: trailing whitespace
#63809: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1511:
+                    GSI1, $

ERROR: trailing whitespace
#63811: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1513:
+                }, $

ERROR: trailing whitespace
#63815: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1517:
+                    0x001BFFFF, $

ERROR: trailing whitespace
#63816: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1518:
+                    Zero, $

ERROR: trailing whitespace
#63817: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1519:
+                    GSI3, $

ERROR: trailing whitespace
#63819: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1521:
+                }, $

ERROR: trailing whitespace
#63823: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1525:
+                    0x001BFFFF, $

ERROR: trailing whitespace
#63824: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1526:
+                    One, $

ERROR: trailing whitespace
#63825: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1527:
+                    GSI0, $

ERROR: trailing whitespace
#63827: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1529:
+                }, $

ERROR: trailing whitespace
#63831: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1533:
+                    0x001BFFFF, $

ERROR: trailing whitespace
#63832: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1534:
+                    0x02, $

ERROR: trailing whitespace
#63833: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1535:
+                    GSI1, $

ERROR: trailing whitespace
#63835: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1537:
+                }, $

ERROR: trailing whitespace
#63839: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1541:
+                    0x001BFFFF, $

ERROR: trailing whitespace
#63840: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1542:
+                    0x03, $

ERROR: trailing whitespace
#63841: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1543:
+                    GSI2, $

ERROR: trailing whitespace
#63843: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1545:
+                }, $

ERROR: trailing whitespace
#63847: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1549:
+                    0x001CFFFF, $

ERROR: trailing whitespace
#63848: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1550:
+                    Zero, $

ERROR: trailing whitespace
#63849: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1551:
+                    GSI0, $

ERROR: trailing whitespace
#63851: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1553:
+                }, $

ERROR: trailing whitespace
#63855: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1557:
+                    0x001CFFFF, $

ERROR: trailing whitespace
#63856: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1558:
+                    One, $

ERROR: trailing whitespace
#63857: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1559:
+                    GSI1, $

ERROR: trailing whitespace
#63859: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1561:
+                }, $

ERROR: trailing whitespace
#63863: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1565:
+                    0x001CFFFF, $

ERROR: trailing whitespace
#63864: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1566:
+                    0x02, $

ERROR: trailing whitespace
#63865: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1567:
+                    GSI2, $

ERROR: trailing whitespace
#63867: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1569:
+                }, $

ERROR: trailing whitespace
#63871: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1573:
+                    0x001CFFFF, $

ERROR: trailing whitespace
#63872: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1574:
+                    0x03, $

ERROR: trailing whitespace
#63873: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1575:
+                    GSI3, $

ERROR: trailing whitespace
#63875: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1577:
+                }, $

ERROR: trailing whitespace
#63879: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1581:
+                    0x001DFFFF, $

ERROR: trailing whitespace
#63880: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1582:
+                    Zero, $

ERROR: trailing whitespace
#63881: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1583:
+                    GSI1, $

ERROR: trailing whitespace
#63883: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1585:
+                }, $

ERROR: trailing whitespace
#63887: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1589:
+                    0x001DFFFF, $

ERROR: trailing whitespace
#63888: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1590:
+                    One, $

ERROR: trailing whitespace
#63889: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1591:
+                    GSI2, $

ERROR: trailing whitespace
#63891: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1593:
+                }, $

ERROR: trailing whitespace
#63895: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1597:
+                    0x001DFFFF, $

ERROR: trailing whitespace
#63896: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1598:
+                    0x02, $

ERROR: trailing whitespace
#63897: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1599:
+                    GSI3, $

ERROR: trailing whitespace
#63899: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1601:
+                }, $

ERROR: trailing whitespace
#63903: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1605:
+                    0x001DFFFF, $

ERROR: trailing whitespace
#63904: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1606:
+                    0x03, $

ERROR: trailing whitespace
#63905: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1607:
+                    GSI0, $

ERROR: trailing whitespace
#63907: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1609:
+                }, $

ERROR: trailing whitespace
#63911: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1613:
+                    0x001EFFFF, $

ERROR: trailing whitespace
#63912: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1614:
+                    Zero, $

ERROR: trailing whitespace
#63913: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1615:
+                    GSI2, $

ERROR: trailing whitespace
#63915: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1617:
+                }, $

ERROR: trailing whitespace
#63919: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1621:
+                    0x001EFFFF, $

ERROR: trailing whitespace
#63920: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1622:
+                    One, $

ERROR: trailing whitespace
#63921: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1623:
+                    GSI3, $

ERROR: trailing whitespace
#63923: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1625:
+                }, $

ERROR: trailing whitespace
#63927: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1629:
+                    0x001EFFFF, $

ERROR: trailing whitespace
#63928: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1630:
+                    0x02, $

ERROR: trailing whitespace
#63929: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1631:
+                    GSI0, $

ERROR: trailing whitespace
#63931: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1633:
+                }, $

ERROR: trailing whitespace
#63935: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1637:
+                    0x001EFFFF, $

ERROR: trailing whitespace
#63936: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1638:
+                    0x03, $

ERROR: trailing whitespace
#63937: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1639:
+                    GSI1, $

ERROR: trailing whitespace
#63939: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1641:
+                }, $

ERROR: trailing whitespace
#63943: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1645:
+                    0x001FFFFF, $

ERROR: trailing whitespace
#63944: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1646:
+                    Zero, $

ERROR: trailing whitespace
#63945: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1647:
+                    GSI3, $

ERROR: trailing whitespace
#63947: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1649:
+                }, $

ERROR: trailing whitespace
#63951: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1653:
+                    0x001FFFFF, $

ERROR: trailing whitespace
#63952: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1654:
+                    One, $

ERROR: trailing whitespace
#63953: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1655:
+                    GSI0, $

ERROR: trailing whitespace
#63955: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1657:
+                }, $

ERROR: trailing whitespace
#63959: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1661:
+                    0x001FFFFF, $

ERROR: trailing whitespace
#63960: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1662:
+                    0x02, $

ERROR: trailing whitespace
#63961: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1663:
+                    GSI1, $

ERROR: trailing whitespace
#63963: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1665:
+                }, $

ERROR: trailing whitespace
#63967: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1669:
+                    0x001FFFFF, $

ERROR: trailing whitespace
#63968: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1670:
+                    0x03, $

ERROR: trailing whitespace
#63969: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1671:
+                    GSI2, $

ERROR: trailing whitespace
#64230: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1932:
+                MRBL,   32, $

ERROR: trailing whitespace
#64231: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1933:
+                MRBH,   32, $

ERROR: trailing whitespace
#64232: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1934:
+                MRLL,   32, $

ERROR: trailing whitespace
#64233: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1935:
+                MRLH,   32, $

ERROR: trailing whitespace
#64239: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1941:
+                Offset (0x14), $

ERROR: trailing whitespace
#64240: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1942:
+                MES,    1, $

ERROR: trailing whitespace
#64241: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1943:
+                MINS,   1, $

ERROR: trailing whitespace
#64242: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1944:
+                MRMV,   1, $

ERROR: trailing whitespace
#64248: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1950:
+                MSEL,   32, $

ERROR: trailing whitespace
#64249: FILE: tests/data/acpi/virt/DSDT.memhp.dsl:1951:
+                MOEV,   32, $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/virt/DSDT.numamem.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/virt/DSDT.numamem.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#64524: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:5:
+ * $

ERROR: trailing whitespace
#65170: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:651:
+                    0xFFFF, $

ERROR: trailing whitespace
#65171: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:652:
+                    Zero, $

ERROR: trailing whitespace
#65172: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:653:
+                    GSI0, $

ERROR: trailing whitespace
#65174: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:655:
+                }, $

ERROR: trailing whitespace
#65178: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:659:
+                    0xFFFF, $

ERROR: trailing whitespace
#65179: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:660:
+                    One, $

ERROR: trailing whitespace
#65180: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:661:
+                    GSI1, $

ERROR: trailing whitespace
#65182: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:663:
+                }, $

ERROR: trailing whitespace
#65186: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:667:
+                    0xFFFF, $

ERROR: trailing whitespace
#65187: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:668:
+                    0x02, $

ERROR: trailing whitespace
#65188: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:669:
+                    GSI2, $

ERROR: trailing whitespace
#65190: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:671:
+                }, $

ERROR: trailing whitespace
#65194: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:675:
+                    0xFFFF, $

ERROR: trailing whitespace
#65195: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:676:
+                    0x03, $

ERROR: trailing whitespace
#65196: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:677:
+                    GSI3, $

ERROR: trailing whitespace
#65198: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:679:
+                }, $

ERROR: trailing whitespace
#65202: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:683:
+                    0x0001FFFF, $

ERROR: trailing whitespace
#65203: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:684:
+                    Zero, $

ERROR: trailing whitespace
#65204: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:685:
+                    GSI1, $

ERROR: trailing whitespace
#65206: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:687:
+                }, $

ERROR: trailing whitespace
#65210: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:691:
+                    0x0001FFFF, $

ERROR: trailing whitespace
#65211: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:692:
+                    One, $

ERROR: trailing whitespace
#65212: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:693:
+                    GSI2, $

ERROR: trailing whitespace
#65214: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:695:
+                }, $

ERROR: trailing whitespace
#65218: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:699:
+                    0x0001FFFF, $

ERROR: trailing whitespace
#65219: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:700:
+                    0x02, $

ERROR: trailing whitespace
#65220: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:701:
+                    GSI3, $

ERROR: trailing whitespace
#65222: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:703:
+                }, $

ERROR: trailing whitespace
#65226: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:707:
+                    0x0001FFFF, $

ERROR: trailing whitespace
#65227: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:708:
+                    0x03, $

ERROR: trailing whitespace
#65228: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:709:
+                    GSI0, $

ERROR: trailing whitespace
#65230: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:711:
+                }, $

ERROR: trailing whitespace
#65234: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:715:
+                    0x0002FFFF, $

ERROR: trailing whitespace
#65235: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:716:
+                    Zero, $

ERROR: trailing whitespace
#65236: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:717:
+                    GSI2, $

ERROR: trailing whitespace
#65238: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:719:
+                }, $

ERROR: trailing whitespace
#65242: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:723:
+                    0x0002FFFF, $

ERROR: trailing whitespace
#65243: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:724:
+                    One, $

ERROR: trailing whitespace
#65244: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:725:
+                    GSI3, $

ERROR: trailing whitespace
#65246: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:727:
+                }, $

ERROR: trailing whitespace
#65250: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:731:
+                    0x0002FFFF, $

ERROR: trailing whitespace
#65251: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:732:
+                    0x02, $

ERROR: trailing whitespace
#65252: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:733:
+                    GSI0, $

ERROR: trailing whitespace
#65254: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:735:
+                }, $

ERROR: trailing whitespace
#65258: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:739:
+                    0x0002FFFF, $

ERROR: trailing whitespace
#65259: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:740:
+                    0x03, $

ERROR: trailing whitespace
#65260: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:741:
+                    GSI1, $

ERROR: trailing whitespace
#65262: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:743:
+                }, $

ERROR: trailing whitespace
#65266: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:747:
+                    0x0003FFFF, $

ERROR: trailing whitespace
#65267: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:748:
+                    Zero, $

ERROR: trailing whitespace
#65268: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:749:
+                    GSI3, $

ERROR: trailing whitespace
#65270: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:751:
+                }, $

ERROR: trailing whitespace
#65274: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:755:
+                    0x0003FFFF, $

ERROR: trailing whitespace
#65275: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:756:
+                    One, $

ERROR: trailing whitespace
#65276: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:757:
+                    GSI0, $

ERROR: trailing whitespace
#65278: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:759:
+                }, $

ERROR: trailing whitespace
#65282: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:763:
+                    0x0003FFFF, $

ERROR: trailing whitespace
#65283: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:764:
+                    0x02, $

ERROR: trailing whitespace
#65284: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:765:
+                    GSI1, $

ERROR: trailing whitespace
#65286: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:767:
+                }, $

ERROR: trailing whitespace
#65290: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:771:
+                    0x0003FFFF, $

ERROR: trailing whitespace
#65291: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:772:
+                    0x03, $

ERROR: trailing whitespace
#65292: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:773:
+                    GSI2, $

ERROR: trailing whitespace
#65294: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:775:
+                }, $

ERROR: trailing whitespace
#65298: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:779:
+                    0x0004FFFF, $

ERROR: trailing whitespace
#65299: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:780:
+                    Zero, $

ERROR: trailing whitespace
#65300: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:781:
+                    GSI0, $

ERROR: trailing whitespace
#65302: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:783:
+                }, $

ERROR: trailing whitespace
#65306: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:787:
+                    0x0004FFFF, $

ERROR: trailing whitespace
#65307: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:788:
+                    One, $

ERROR: trailing whitespace
#65308: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:789:
+                    GSI1, $

ERROR: trailing whitespace
#65310: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:791:
+                }, $

ERROR: trailing whitespace
#65314: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:795:
+                    0x0004FFFF, $

ERROR: trailing whitespace
#65315: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:796:
+                    0x02, $

ERROR: trailing whitespace
#65316: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:797:
+                    GSI2, $

ERROR: trailing whitespace
#65318: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:799:
+                }, $

ERROR: trailing whitespace
#65322: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:803:
+                    0x0004FFFF, $

ERROR: trailing whitespace
#65323: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:804:
+                    0x03, $

ERROR: trailing whitespace
#65324: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:805:
+                    GSI3, $

ERROR: trailing whitespace
#65326: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:807:
+                }, $

ERROR: trailing whitespace
#65330: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:811:
+                    0x0005FFFF, $

ERROR: trailing whitespace
#65331: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:812:
+                    Zero, $

ERROR: trailing whitespace
#65332: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:813:
+                    GSI1, $

ERROR: trailing whitespace
#65334: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:815:
+                }, $

ERROR: trailing whitespace
#65338: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:819:
+                    0x0005FFFF, $

ERROR: trailing whitespace
#65339: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:820:
+                    One, $

ERROR: trailing whitespace
#65340: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:821:
+                    GSI2, $

ERROR: trailing whitespace
#65342: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:823:
+                }, $

ERROR: trailing whitespace
#65346: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:827:
+                    0x0005FFFF, $

ERROR: trailing whitespace
#65347: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:828:
+                    0x02, $

ERROR: trailing whitespace
#65348: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:829:
+                    GSI3, $

ERROR: trailing whitespace
#65350: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:831:
+                }, $

ERROR: trailing whitespace
#65354: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:835:
+                    0x0005FFFF, $

ERROR: trailing whitespace
#65355: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:836:
+                    0x03, $

ERROR: trailing whitespace
#65356: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:837:
+                    GSI0, $

ERROR: trailing whitespace
#65358: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:839:
+                }, $

ERROR: trailing whitespace
#65362: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:843:
+                    0x0006FFFF, $

ERROR: trailing whitespace
#65363: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:844:
+                    Zero, $

ERROR: trailing whitespace
#65364: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:845:
+                    GSI2, $

ERROR: trailing whitespace
#65366: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:847:
+                }, $

ERROR: trailing whitespace
#65370: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:851:
+                    0x0006FFFF, $

ERROR: trailing whitespace
#65371: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:852:
+                    One, $

ERROR: trailing whitespace
#65372: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:853:
+                    GSI3, $

ERROR: trailing whitespace
#65374: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:855:
+                }, $

ERROR: trailing whitespace
#65378: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:859:
+                    0x0006FFFF, $

ERROR: trailing whitespace
#65379: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:860:
+                    0x02, $

ERROR: trailing whitespace
#65380: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:861:
+                    GSI0, $

ERROR: trailing whitespace
#65382: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:863:
+                }, $

ERROR: trailing whitespace
#65386: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:867:
+                    0x0006FFFF, $

ERROR: trailing whitespace
#65387: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:868:
+                    0x03, $

ERROR: trailing whitespace
#65388: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:869:
+                    GSI1, $

ERROR: trailing whitespace
#65390: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:871:
+                }, $

ERROR: trailing whitespace
#65394: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:875:
+                    0x0007FFFF, $

ERROR: trailing whitespace
#65395: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:876:
+                    Zero, $

ERROR: trailing whitespace
#65396: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:877:
+                    GSI3, $

ERROR: trailing whitespace
#65398: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:879:
+                }, $

ERROR: trailing whitespace
#65402: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:883:
+                    0x0007FFFF, $

ERROR: trailing whitespace
#65403: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:884:
+                    One, $

ERROR: trailing whitespace
#65404: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:885:
+                    GSI0, $

ERROR: trailing whitespace
#65406: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:887:
+                }, $

ERROR: trailing whitespace
#65410: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:891:
+                    0x0007FFFF, $

ERROR: trailing whitespace
#65411: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:892:
+                    0x02, $

ERROR: trailing whitespace
#65412: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:893:
+                    GSI1, $

ERROR: trailing whitespace
#65414: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:895:
+                }, $

ERROR: trailing whitespace
#65418: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:899:
+                    0x0007FFFF, $

ERROR: trailing whitespace
#65419: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:900:
+                    0x03, $

ERROR: trailing whitespace
#65420: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:901:
+                    GSI2, $

ERROR: trailing whitespace
#65422: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:903:
+                }, $

ERROR: trailing whitespace
#65426: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:907:
+                    0x0008FFFF, $

ERROR: trailing whitespace
#65427: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:908:
+                    Zero, $

ERROR: trailing whitespace
#65428: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:909:
+                    GSI0, $

ERROR: trailing whitespace
#65430: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:911:
+                }, $

ERROR: trailing whitespace
#65434: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:915:
+                    0x0008FFFF, $

ERROR: trailing whitespace
#65435: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:916:
+                    One, $

ERROR: trailing whitespace
#65436: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:917:
+                    GSI1, $

ERROR: trailing whitespace
#65438: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:919:
+                }, $

ERROR: trailing whitespace
#65442: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:923:
+                    0x0008FFFF, $

ERROR: trailing whitespace
#65443: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:924:
+                    0x02, $

ERROR: trailing whitespace
#65444: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:925:
+                    GSI2, $

ERROR: trailing whitespace
#65446: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:927:
+                }, $

ERROR: trailing whitespace
#65450: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:931:
+                    0x0008FFFF, $

ERROR: trailing whitespace
#65451: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:932:
+                    0x03, $

ERROR: trailing whitespace
#65452: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:933:
+                    GSI3, $

ERROR: trailing whitespace
#65454: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:935:
+                }, $

ERROR: trailing whitespace
#65458: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:939:
+                    0x0009FFFF, $

ERROR: trailing whitespace
#65459: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:940:
+                    Zero, $

ERROR: trailing whitespace
#65460: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:941:
+                    GSI1, $

ERROR: trailing whitespace
#65462: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:943:
+                }, $

ERROR: trailing whitespace
#65466: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:947:
+                    0x0009FFFF, $

ERROR: trailing whitespace
#65467: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:948:
+                    One, $

ERROR: trailing whitespace
#65468: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:949:
+                    GSI2, $

ERROR: trailing whitespace
#65470: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:951:
+                }, $

ERROR: trailing whitespace
#65474: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:955:
+                    0x0009FFFF, $

ERROR: trailing whitespace
#65475: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:956:
+                    0x02, $

ERROR: trailing whitespace
#65476: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:957:
+                    GSI3, $

ERROR: trailing whitespace
#65478: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:959:
+                }, $

ERROR: trailing whitespace
#65482: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:963:
+                    0x0009FFFF, $

ERROR: trailing whitespace
#65483: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:964:
+                    0x03, $

ERROR: trailing whitespace
#65484: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:965:
+                    GSI0, $

ERROR: trailing whitespace
#65486: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:967:
+                }, $

ERROR: trailing whitespace
#65490: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:971:
+                    0x000AFFFF, $

ERROR: trailing whitespace
#65491: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:972:
+                    Zero, $

ERROR: trailing whitespace
#65492: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:973:
+                    GSI2, $

ERROR: trailing whitespace
#65494: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:975:
+                }, $

ERROR: trailing whitespace
#65498: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:979:
+                    0x000AFFFF, $

ERROR: trailing whitespace
#65499: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:980:
+                    One, $

ERROR: trailing whitespace
#65500: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:981:
+                    GSI3, $

ERROR: trailing whitespace
#65502: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:983:
+                }, $

ERROR: trailing whitespace
#65506: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:987:
+                    0x000AFFFF, $

ERROR: trailing whitespace
#65507: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:988:
+                    0x02, $

ERROR: trailing whitespace
#65508: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:989:
+                    GSI0, $

ERROR: trailing whitespace
#65510: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:991:
+                }, $

ERROR: trailing whitespace
#65514: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:995:
+                    0x000AFFFF, $

ERROR: trailing whitespace
#65515: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:996:
+                    0x03, $

ERROR: trailing whitespace
#65516: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:997:
+                    GSI1, $

ERROR: trailing whitespace
#65518: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:999:
+                }, $

ERROR: trailing whitespace
#65522: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1003:
+                    0x000BFFFF, $

ERROR: trailing whitespace
#65523: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1004:
+                    Zero, $

ERROR: trailing whitespace
#65524: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1005:
+                    GSI3, $

ERROR: trailing whitespace
#65526: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1007:
+                }, $

ERROR: trailing whitespace
#65530: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1011:
+                    0x000BFFFF, $

ERROR: trailing whitespace
#65531: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1012:
+                    One, $

ERROR: trailing whitespace
#65532: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1013:
+                    GSI0, $

ERROR: trailing whitespace
#65534: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1015:
+                }, $

ERROR: trailing whitespace
#65538: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1019:
+                    0x000BFFFF, $

ERROR: trailing whitespace
#65539: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1020:
+                    0x02, $

ERROR: trailing whitespace
#65540: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1021:
+                    GSI1, $

ERROR: trailing whitespace
#65542: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1023:
+                }, $

ERROR: trailing whitespace
#65546: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1027:
+                    0x000BFFFF, $

ERROR: trailing whitespace
#65547: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1028:
+                    0x03, $

ERROR: trailing whitespace
#65548: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1029:
+                    GSI2, $

ERROR: trailing whitespace
#65550: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1031:
+                }, $

ERROR: trailing whitespace
#65554: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1035:
+                    0x000CFFFF, $

ERROR: trailing whitespace
#65555: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1036:
+                    Zero, $

ERROR: trailing whitespace
#65556: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1037:
+                    GSI0, $

ERROR: trailing whitespace
#65558: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1039:
+                }, $

ERROR: trailing whitespace
#65562: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1043:
+                    0x000CFFFF, $

ERROR: trailing whitespace
#65563: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1044:
+                    One, $

ERROR: trailing whitespace
#65564: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1045:
+                    GSI1, $

ERROR: trailing whitespace
#65566: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1047:
+                }, $

ERROR: trailing whitespace
#65570: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1051:
+                    0x000CFFFF, $

ERROR: trailing whitespace
#65571: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1052:
+                    0x02, $

ERROR: trailing whitespace
#65572: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1053:
+                    GSI2, $

ERROR: trailing whitespace
#65574: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1055:
+                }, $

ERROR: trailing whitespace
#65578: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1059:
+                    0x000CFFFF, $

ERROR: trailing whitespace
#65579: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1060:
+                    0x03, $

ERROR: trailing whitespace
#65580: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1061:
+                    GSI3, $

ERROR: trailing whitespace
#65582: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1063:
+                }, $

ERROR: trailing whitespace
#65586: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1067:
+                    0x000DFFFF, $

ERROR: trailing whitespace
#65587: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1068:
+                    Zero, $

ERROR: trailing whitespace
#65588: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1069:
+                    GSI1, $

ERROR: trailing whitespace
#65590: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1071:
+                }, $

ERROR: trailing whitespace
#65594: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1075:
+                    0x000DFFFF, $

ERROR: trailing whitespace
#65595: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1076:
+                    One, $

ERROR: trailing whitespace
#65596: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1077:
+                    GSI2, $

ERROR: trailing whitespace
#65598: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1079:
+                }, $

ERROR: trailing whitespace
#65602: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1083:
+                    0x000DFFFF, $

ERROR: trailing whitespace
#65603: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1084:
+                    0x02, $

ERROR: trailing whitespace
#65604: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1085:
+                    GSI3, $

ERROR: trailing whitespace
#65606: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1087:
+                }, $

ERROR: trailing whitespace
#65610: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1091:
+                    0x000DFFFF, $

ERROR: trailing whitespace
#65611: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1092:
+                    0x03, $

ERROR: trailing whitespace
#65612: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1093:
+                    GSI0, $

ERROR: trailing whitespace
#65614: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1095:
+                }, $

ERROR: trailing whitespace
#65618: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1099:
+                    0x000EFFFF, $

ERROR: trailing whitespace
#65619: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1100:
+                    Zero, $

ERROR: trailing whitespace
#65620: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1101:
+                    GSI2, $

ERROR: trailing whitespace
#65622: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1103:
+                }, $

ERROR: trailing whitespace
#65626: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1107:
+                    0x000EFFFF, $

ERROR: trailing whitespace
#65627: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1108:
+                    One, $

ERROR: trailing whitespace
#65628: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1109:
+                    GSI3, $

ERROR: trailing whitespace
#65630: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1111:
+                }, $

ERROR: trailing whitespace
#65634: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1115:
+                    0x000EFFFF, $

ERROR: trailing whitespace
#65635: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1116:
+                    0x02, $

ERROR: trailing whitespace
#65636: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1117:
+                    GSI0, $

ERROR: trailing whitespace
#65638: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1119:
+                }, $

ERROR: trailing whitespace
#65642: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1123:
+                    0x000EFFFF, $

ERROR: trailing whitespace
#65643: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1124:
+                    0x03, $

ERROR: trailing whitespace
#65644: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1125:
+                    GSI1, $

ERROR: trailing whitespace
#65646: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1127:
+                }, $

ERROR: trailing whitespace
#65650: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1131:
+                    0x000FFFFF, $

ERROR: trailing whitespace
#65651: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1132:
+                    Zero, $

ERROR: trailing whitespace
#65652: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1133:
+                    GSI3, $

ERROR: trailing whitespace
#65654: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1135:
+                }, $

ERROR: trailing whitespace
#65658: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1139:
+                    0x000FFFFF, $

ERROR: trailing whitespace
#65659: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1140:
+                    One, $

ERROR: trailing whitespace
#65660: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1141:
+                    GSI0, $

ERROR: trailing whitespace
#65662: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1143:
+                }, $

ERROR: trailing whitespace
#65666: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1147:
+                    0x000FFFFF, $

ERROR: trailing whitespace
#65667: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1148:
+                    0x02, $

ERROR: trailing whitespace
#65668: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1149:
+                    GSI1, $

ERROR: trailing whitespace
#65670: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1151:
+                }, $

ERROR: trailing whitespace
#65674: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1155:
+                    0x000FFFFF, $

ERROR: trailing whitespace
#65675: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1156:
+                    0x03, $

ERROR: trailing whitespace
#65676: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1157:
+                    GSI2, $

ERROR: trailing whitespace
#65678: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1159:
+                }, $

ERROR: trailing whitespace
#65682: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1163:
+                    0x0010FFFF, $

ERROR: trailing whitespace
#65683: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1164:
+                    Zero, $

ERROR: trailing whitespace
#65684: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1165:
+                    GSI0, $

ERROR: trailing whitespace
#65686: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1167:
+                }, $

ERROR: trailing whitespace
#65690: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1171:
+                    0x0010FFFF, $

ERROR: trailing whitespace
#65691: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1172:
+                    One, $

ERROR: trailing whitespace
#65692: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1173:
+                    GSI1, $

ERROR: trailing whitespace
#65694: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1175:
+                }, $

ERROR: trailing whitespace
#65698: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1179:
+                    0x0010FFFF, $

ERROR: trailing whitespace
#65699: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1180:
+                    0x02, $

ERROR: trailing whitespace
#65700: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1181:
+                    GSI2, $

ERROR: trailing whitespace
#65702: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1183:
+                }, $

ERROR: trailing whitespace
#65706: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1187:
+                    0x0010FFFF, $

ERROR: trailing whitespace
#65707: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1188:
+                    0x03, $

ERROR: trailing whitespace
#65708: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1189:
+                    GSI3, $

ERROR: trailing whitespace
#65710: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1191:
+                }, $

ERROR: trailing whitespace
#65714: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1195:
+                    0x0011FFFF, $

ERROR: trailing whitespace
#65715: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1196:
+                    Zero, $

ERROR: trailing whitespace
#65716: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1197:
+                    GSI1, $

ERROR: trailing whitespace
#65718: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1199:
+                }, $

ERROR: trailing whitespace
#65722: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1203:
+                    0x0011FFFF, $

ERROR: trailing whitespace
#65723: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1204:
+                    One, $

ERROR: trailing whitespace
#65724: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1205:
+                    GSI2, $

ERROR: trailing whitespace
#65726: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1207:
+                }, $

ERROR: trailing whitespace
#65730: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1211:
+                    0x0011FFFF, $

ERROR: trailing whitespace
#65731: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1212:
+                    0x02, $

ERROR: trailing whitespace
#65732: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1213:
+                    GSI3, $

ERROR: trailing whitespace
#65734: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1215:
+                }, $

ERROR: trailing whitespace
#65738: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1219:
+                    0x0011FFFF, $

ERROR: trailing whitespace
#65739: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1220:
+                    0x03, $

ERROR: trailing whitespace
#65740: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1221:
+                    GSI0, $

ERROR: trailing whitespace
#65742: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1223:
+                }, $

ERROR: trailing whitespace
#65746: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1227:
+                    0x0012FFFF, $

ERROR: trailing whitespace
#65747: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1228:
+                    Zero, $

ERROR: trailing whitespace
#65748: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1229:
+                    GSI2, $

ERROR: trailing whitespace
#65750: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1231:
+                }, $

ERROR: trailing whitespace
#65754: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1235:
+                    0x0012FFFF, $

ERROR: trailing whitespace
#65755: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1236:
+                    One, $

ERROR: trailing whitespace
#65756: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1237:
+                    GSI3, $

ERROR: trailing whitespace
#65758: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1239:
+                }, $

ERROR: trailing whitespace
#65762: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1243:
+                    0x0012FFFF, $

ERROR: trailing whitespace
#65763: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1244:
+                    0x02, $

ERROR: trailing whitespace
#65764: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1245:
+                    GSI0, $

ERROR: trailing whitespace
#65766: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1247:
+                }, $

ERROR: trailing whitespace
#65770: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1251:
+                    0x0012FFFF, $

ERROR: trailing whitespace
#65771: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1252:
+                    0x03, $

ERROR: trailing whitespace
#65772: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1253:
+                    GSI1, $

ERROR: trailing whitespace
#65774: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1255:
+                }, $

ERROR: trailing whitespace
#65778: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1259:
+                    0x0013FFFF, $

ERROR: trailing whitespace
#65779: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1260:
+                    Zero, $

ERROR: trailing whitespace
#65780: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1261:
+                    GSI3, $

ERROR: trailing whitespace
#65782: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1263:
+                }, $

ERROR: trailing whitespace
#65786: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1267:
+                    0x0013FFFF, $

ERROR: trailing whitespace
#65787: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1268:
+                    One, $

ERROR: trailing whitespace
#65788: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1269:
+                    GSI0, $

ERROR: trailing whitespace
#65790: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1271:
+                }, $

ERROR: trailing whitespace
#65794: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1275:
+                    0x0013FFFF, $

ERROR: trailing whitespace
#65795: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1276:
+                    0x02, $

ERROR: trailing whitespace
#65796: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1277:
+                    GSI1, $

ERROR: trailing whitespace
#65798: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1279:
+                }, $

ERROR: trailing whitespace
#65802: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1283:
+                    0x0013FFFF, $

ERROR: trailing whitespace
#65803: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1284:
+                    0x03, $

ERROR: trailing whitespace
#65804: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1285:
+                    GSI2, $

ERROR: trailing whitespace
#65806: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1287:
+                }, $

ERROR: trailing whitespace
#65810: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1291:
+                    0x0014FFFF, $

ERROR: trailing whitespace
#65811: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1292:
+                    Zero, $

ERROR: trailing whitespace
#65812: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1293:
+                    GSI0, $

ERROR: trailing whitespace
#65814: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1295:
+                }, $

ERROR: trailing whitespace
#65818: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1299:
+                    0x0014FFFF, $

ERROR: trailing whitespace
#65819: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1300:
+                    One, $

ERROR: trailing whitespace
#65820: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1301:
+                    GSI1, $

ERROR: trailing whitespace
#65822: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1303:
+                }, $

ERROR: trailing whitespace
#65826: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1307:
+                    0x0014FFFF, $

ERROR: trailing whitespace
#65827: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1308:
+                    0x02, $

ERROR: trailing whitespace
#65828: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1309:
+                    GSI2, $

ERROR: trailing whitespace
#65830: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1311:
+                }, $

ERROR: trailing whitespace
#65834: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1315:
+                    0x0014FFFF, $

ERROR: trailing whitespace
#65835: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1316:
+                    0x03, $

ERROR: trailing whitespace
#65836: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1317:
+                    GSI3, $

ERROR: trailing whitespace
#65838: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1319:
+                }, $

ERROR: trailing whitespace
#65842: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1323:
+                    0x0015FFFF, $

ERROR: trailing whitespace
#65843: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1324:
+                    Zero, $

ERROR: trailing whitespace
#65844: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1325:
+                    GSI1, $

ERROR: trailing whitespace
#65846: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1327:
+                }, $

ERROR: trailing whitespace
#65850: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1331:
+                    0x0015FFFF, $

ERROR: trailing whitespace
#65851: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1332:
+                    One, $

ERROR: trailing whitespace
#65852: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1333:
+                    GSI2, $

ERROR: trailing whitespace
#65854: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1335:
+                }, $

ERROR: trailing whitespace
#65858: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1339:
+                    0x0015FFFF, $

ERROR: trailing whitespace
#65859: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1340:
+                    0x02, $

ERROR: trailing whitespace
#65860: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1341:
+                    GSI3, $

ERROR: trailing whitespace
#65862: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1343:
+                }, $

ERROR: trailing whitespace
#65866: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1347:
+                    0x0015FFFF, $

ERROR: trailing whitespace
#65867: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1348:
+                    0x03, $

ERROR: trailing whitespace
#65868: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1349:
+                    GSI0, $

ERROR: trailing whitespace
#65870: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1351:
+                }, $

ERROR: trailing whitespace
#65874: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1355:
+                    0x0016FFFF, $

ERROR: trailing whitespace
#65875: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1356:
+                    Zero, $

ERROR: trailing whitespace
#65876: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1357:
+                    GSI2, $

ERROR: trailing whitespace
#65878: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1359:
+                }, $

ERROR: trailing whitespace
#65882: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1363:
+                    0x0016FFFF, $

ERROR: trailing whitespace
#65883: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1364:
+                    One, $

ERROR: trailing whitespace
#65884: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1365:
+                    GSI3, $

ERROR: trailing whitespace
#65886: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1367:
+                }, $

ERROR: trailing whitespace
#65890: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1371:
+                    0x0016FFFF, $

ERROR: trailing whitespace
#65891: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1372:
+                    0x02, $

ERROR: trailing whitespace
#65892: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1373:
+                    GSI0, $

ERROR: trailing whitespace
#65894: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1375:
+                }, $

ERROR: trailing whitespace
#65898: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1379:
+                    0x0016FFFF, $

ERROR: trailing whitespace
#65899: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1380:
+                    0x03, $

ERROR: trailing whitespace
#65900: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1381:
+                    GSI1, $

ERROR: trailing whitespace
#65902: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1383:
+                }, $

ERROR: trailing whitespace
#65906: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1387:
+                    0x0017FFFF, $

ERROR: trailing whitespace
#65907: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1388:
+                    Zero, $

ERROR: trailing whitespace
#65908: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1389:
+                    GSI3, $

ERROR: trailing whitespace
#65910: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1391:
+                }, $

ERROR: trailing whitespace
#65914: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1395:
+                    0x0017FFFF, $

ERROR: trailing whitespace
#65915: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1396:
+                    One, $

ERROR: trailing whitespace
#65916: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1397:
+                    GSI0, $

ERROR: trailing whitespace
#65918: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1399:
+                }, $

ERROR: trailing whitespace
#65922: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1403:
+                    0x0017FFFF, $

ERROR: trailing whitespace
#65923: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1404:
+                    0x02, $

ERROR: trailing whitespace
#65924: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1405:
+                    GSI1, $

ERROR: trailing whitespace
#65926: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1407:
+                }, $

ERROR: trailing whitespace
#65930: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1411:
+                    0x0017FFFF, $

ERROR: trailing whitespace
#65931: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1412:
+                    0x03, $

ERROR: trailing whitespace
#65932: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1413:
+                    GSI2, $

ERROR: trailing whitespace
#65934: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1415:
+                }, $

ERROR: trailing whitespace
#65938: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1419:
+                    0x0018FFFF, $

ERROR: trailing whitespace
#65939: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1420:
+                    Zero, $

ERROR: trailing whitespace
#65940: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1421:
+                    GSI0, $

ERROR: trailing whitespace
#65942: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1423:
+                }, $

ERROR: trailing whitespace
#65946: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1427:
+                    0x0018FFFF, $

ERROR: trailing whitespace
#65947: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1428:
+                    One, $

ERROR: trailing whitespace
#65948: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1429:
+                    GSI1, $

ERROR: trailing whitespace
#65950: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1431:
+                }, $

ERROR: trailing whitespace
#65954: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1435:
+                    0x0018FFFF, $

ERROR: trailing whitespace
#65955: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1436:
+                    0x02, $

ERROR: trailing whitespace
#65956: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1437:
+                    GSI2, $

ERROR: trailing whitespace
#65958: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1439:
+                }, $

ERROR: trailing whitespace
#65962: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1443:
+                    0x0018FFFF, $

ERROR: trailing whitespace
#65963: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1444:
+                    0x03, $

ERROR: trailing whitespace
#65964: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1445:
+                    GSI3, $

ERROR: trailing whitespace
#65966: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1447:
+                }, $

ERROR: trailing whitespace
#65970: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1451:
+                    0x0019FFFF, $

ERROR: trailing whitespace
#65971: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1452:
+                    Zero, $

ERROR: trailing whitespace
#65972: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1453:
+                    GSI1, $

ERROR: trailing whitespace
#65974: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1455:
+                }, $

ERROR: trailing whitespace
#65978: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1459:
+                    0x0019FFFF, $

ERROR: trailing whitespace
#65979: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1460:
+                    One, $

ERROR: trailing whitespace
#65980: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1461:
+                    GSI2, $

ERROR: trailing whitespace
#65982: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1463:
+                }, $

ERROR: trailing whitespace
#65986: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1467:
+                    0x0019FFFF, $

ERROR: trailing whitespace
#65987: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1468:
+                    0x02, $

ERROR: trailing whitespace
#65988: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1469:
+                    GSI3, $

ERROR: trailing whitespace
#65990: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1471:
+                }, $

ERROR: trailing whitespace
#65994: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1475:
+                    0x0019FFFF, $

ERROR: trailing whitespace
#65995: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1476:
+                    0x03, $

ERROR: trailing whitespace
#65996: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1477:
+                    GSI0, $

ERROR: trailing whitespace
#65998: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1479:
+                }, $

ERROR: trailing whitespace
#66002: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1483:
+                    0x001AFFFF, $

ERROR: trailing whitespace
#66003: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1484:
+                    Zero, $

ERROR: trailing whitespace
#66004: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1485:
+                    GSI2, $

ERROR: trailing whitespace
#66006: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1487:
+                }, $

ERROR: trailing whitespace
#66010: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1491:
+                    0x001AFFFF, $

ERROR: trailing whitespace
#66011: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1492:
+                    One, $

ERROR: trailing whitespace
#66012: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1493:
+                    GSI3, $

ERROR: trailing whitespace
#66014: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1495:
+                }, $

ERROR: trailing whitespace
#66018: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1499:
+                    0x001AFFFF, $

ERROR: trailing whitespace
#66019: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1500:
+                    0x02, $

ERROR: trailing whitespace
#66020: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1501:
+                    GSI0, $

ERROR: trailing whitespace
#66022: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1503:
+                }, $

ERROR: trailing whitespace
#66026: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1507:
+                    0x001AFFFF, $

ERROR: trailing whitespace
#66027: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1508:
+                    0x03, $

ERROR: trailing whitespace
#66028: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1509:
+                    GSI1, $

ERROR: trailing whitespace
#66030: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1511:
+                }, $

ERROR: trailing whitespace
#66034: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1515:
+                    0x001BFFFF, $

ERROR: trailing whitespace
#66035: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1516:
+                    Zero, $

ERROR: trailing whitespace
#66036: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1517:
+                    GSI3, $

ERROR: trailing whitespace
#66038: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1519:
+                }, $

ERROR: trailing whitespace
#66042: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1523:
+                    0x001BFFFF, $

ERROR: trailing whitespace
#66043: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1524:
+                    One, $

ERROR: trailing whitespace
#66044: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1525:
+                    GSI0, $

ERROR: trailing whitespace
#66046: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1527:
+                }, $

ERROR: trailing whitespace
#66050: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1531:
+                    0x001BFFFF, $

ERROR: trailing whitespace
#66051: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1532:
+                    0x02, $

ERROR: trailing whitespace
#66052: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1533:
+                    GSI1, $

ERROR: trailing whitespace
#66054: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1535:
+                }, $

ERROR: trailing whitespace
#66058: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1539:
+                    0x001BFFFF, $

ERROR: trailing whitespace
#66059: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1540:
+                    0x03, $

ERROR: trailing whitespace
#66060: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1541:
+                    GSI2, $

ERROR: trailing whitespace
#66062: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1543:
+                }, $

ERROR: trailing whitespace
#66066: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1547:
+                    0x001CFFFF, $

ERROR: trailing whitespace
#66067: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1548:
+                    Zero, $

ERROR: trailing whitespace
#66068: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1549:
+                    GSI0, $

ERROR: trailing whitespace
#66070: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1551:
+                }, $

ERROR: trailing whitespace
#66074: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1555:
+                    0x001CFFFF, $

ERROR: trailing whitespace
#66075: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1556:
+                    One, $

ERROR: trailing whitespace
#66076: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1557:
+                    GSI1, $

ERROR: trailing whitespace
#66078: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1559:
+                }, $

ERROR: trailing whitespace
#66082: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1563:
+                    0x001CFFFF, $

ERROR: trailing whitespace
#66083: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1564:
+                    0x02, $

ERROR: trailing whitespace
#66084: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1565:
+                    GSI2, $

ERROR: trailing whitespace
#66086: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1567:
+                }, $

ERROR: trailing whitespace
#66090: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1571:
+                    0x001CFFFF, $

ERROR: trailing whitespace
#66091: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1572:
+                    0x03, $

ERROR: trailing whitespace
#66092: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1573:
+                    GSI3, $

ERROR: trailing whitespace
#66094: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1575:
+                }, $

ERROR: trailing whitespace
#66098: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1579:
+                    0x001DFFFF, $

ERROR: trailing whitespace
#66099: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1580:
+                    Zero, $

ERROR: trailing whitespace
#66100: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1581:
+                    GSI1, $

ERROR: trailing whitespace
#66102: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1583:
+                }, $

ERROR: trailing whitespace
#66106: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1587:
+                    0x001DFFFF, $

ERROR: trailing whitespace
#66107: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1588:
+                    One, $

ERROR: trailing whitespace
#66108: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1589:
+                    GSI2, $

ERROR: trailing whitespace
#66110: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1591:
+                }, $

ERROR: trailing whitespace
#66114: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1595:
+                    0x001DFFFF, $

ERROR: trailing whitespace
#66115: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1596:
+                    0x02, $

ERROR: trailing whitespace
#66116: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1597:
+                    GSI3, $

ERROR: trailing whitespace
#66118: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1599:
+                }, $

ERROR: trailing whitespace
#66122: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1603:
+                    0x001DFFFF, $

ERROR: trailing whitespace
#66123: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1604:
+                    0x03, $

ERROR: trailing whitespace
#66124: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1605:
+                    GSI0, $

ERROR: trailing whitespace
#66126: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1607:
+                }, $

ERROR: trailing whitespace
#66130: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1611:
+                    0x001EFFFF, $

ERROR: trailing whitespace
#66131: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1612:
+                    Zero, $

ERROR: trailing whitespace
#66132: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1613:
+                    GSI2, $

ERROR: trailing whitespace
#66134: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1615:
+                }, $

ERROR: trailing whitespace
#66138: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1619:
+                    0x001EFFFF, $

ERROR: trailing whitespace
#66139: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1620:
+                    One, $

ERROR: trailing whitespace
#66140: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1621:
+                    GSI3, $

ERROR: trailing whitespace
#66142: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1623:
+                }, $

ERROR: trailing whitespace
#66146: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1627:
+                    0x001EFFFF, $

ERROR: trailing whitespace
#66147: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1628:
+                    0x02, $

ERROR: trailing whitespace
#66148: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1629:
+                    GSI0, $

ERROR: trailing whitespace
#66150: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1631:
+                }, $

ERROR: trailing whitespace
#66154: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1635:
+                    0x001EFFFF, $

ERROR: trailing whitespace
#66155: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1636:
+                    0x03, $

ERROR: trailing whitespace
#66156: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1637:
+                    GSI1, $

ERROR: trailing whitespace
#66158: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1639:
+                }, $

ERROR: trailing whitespace
#66162: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1643:
+                    0x001FFFFF, $

ERROR: trailing whitespace
#66163: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1644:
+                    Zero, $

ERROR: trailing whitespace
#66164: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1645:
+                    GSI3, $

ERROR: trailing whitespace
#66166: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1647:
+                }, $

ERROR: trailing whitespace
#66170: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1651:
+                    0x001FFFFF, $

ERROR: trailing whitespace
#66171: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1652:
+                    One, $

ERROR: trailing whitespace
#66172: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1653:
+                    GSI0, $

ERROR: trailing whitespace
#66174: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1655:
+                }, $

ERROR: trailing whitespace
#66178: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1659:
+                    0x001FFFFF, $

ERROR: trailing whitespace
#66179: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1660:
+                    0x02, $

ERROR: trailing whitespace
#66180: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1661:
+                    GSI1, $

ERROR: trailing whitespace
#66182: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1663:
+                }, $

ERROR: trailing whitespace
#66186: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1667:
+                    0x001FFFFF, $

ERROR: trailing whitespace
#66187: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1668:
+                    0x03, $

ERROR: trailing whitespace
#66188: FILE: tests/data/acpi/virt/DSDT.numamem.dsl:1669:
+                    GSI2, $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/virt/FACP.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/virt/FACP.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#66436: FILE: tests/data/acpi/virt/FACP.dsl:5:
+ * $

ERROR: trailing whitespace
#66611: FILE: tests/data/acpi/virt/FACP.dsl:180:
+    0000: 46 41 43 50 0C 01 00 00 05 BB 42 4F 43 48 53 20  // FACP......BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/virt/FACP.memhp.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/virt/FACP.memhp.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#66638: FILE: tests/data/acpi/virt/FACP.memhp.dsl:5:
+ * $

ERROR: trailing whitespace
#66813: FILE: tests/data/acpi/virt/FACP.memhp.dsl:180:
+    0000: 46 41 43 50 0C 01 00 00 05 BB 42 4F 43 48 53 20  // FACP......BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/virt/FACP.numamem.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/virt/FACP.numamem.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#66840: FILE: tests/data/acpi/virt/FACP.numamem.dsl:5:
+ * $

ERROR: trailing whitespace
#67015: FILE: tests/data/acpi/virt/FACP.numamem.dsl:180:
+    0000: 46 41 43 50 0C 01 00 00 05 BB 42 4F 43 48 53 20  // FACP......BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/virt/GTDT.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/virt/GTDT.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#67042: FILE: tests/data/acpi/virt/GTDT.dsl:5:
+ * $

ERROR: trailing whitespace
#67093: FILE: tests/data/acpi/virt/GTDT.dsl:56:
+    0000: 47 54 44 54 60 00 00 00 02 D9 42 4F 43 48 53 20  // GTDT`.....BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/virt/GTDT.memhp.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/virt/GTDT.memhp.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#67109: FILE: tests/data/acpi/virt/GTDT.memhp.dsl:5:
+ * $

ERROR: trailing whitespace
#67160: FILE: tests/data/acpi/virt/GTDT.memhp.dsl:56:
+    0000: 47 54 44 54 60 00 00 00 02 D9 42 4F 43 48 53 20  // GTDT`.....BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/virt/GTDT.numamem.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/virt/GTDT.numamem.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#67176: FILE: tests/data/acpi/virt/GTDT.numamem.dsl:5:
+ * $

ERROR: trailing whitespace
#67227: FILE: tests/data/acpi/virt/GTDT.numamem.dsl:56:
+    0000: 47 54 44 54 60 00 00 00 02 D9 42 4F 43 48 53 20  // GTDT`.....BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/virt/MCFG.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/virt/MCFG.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#67243: FILE: tests/data/acpi/virt/MCFG.dsl:5:
+ * $

ERROR: trailing whitespace
#67271: FILE: tests/data/acpi/virt/MCFG.dsl:33:
+    0000: 4D 43 46 47 3C 00 00 00 01 4F 42 4F 43 48 53 20  // MCFG<....OBOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/virt/MCFG.memhp.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/virt/MCFG.memhp.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#67285: FILE: tests/data/acpi/virt/MCFG.memhp.dsl:5:
+ * $

ERROR: trailing whitespace
#67313: FILE: tests/data/acpi/virt/MCFG.memhp.dsl:33:
+    0000: 4D 43 46 47 3C 00 00 00 01 4F 42 4F 43 48 53 20  // MCFG<....OBOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/virt/MCFG.numamem.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/virt/MCFG.numamem.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#67327: FILE: tests/data/acpi/virt/MCFG.numamem.dsl:5:
+ * $

ERROR: trailing whitespace
#67355: FILE: tests/data/acpi/virt/MCFG.numamem.dsl:33:
+    0000: 4D 43 46 47 3C 00 00 00 01 4F 42 4F 43 48 53 20  // MCFG<....OBOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/virt/NFIT.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/virt/NFIT.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#67369: FILE: tests/data/acpi/virt/NFIT.dsl:5:
+ * $

ERROR: trailing whitespace
#67454: FILE: tests/data/acpi/virt/NFIT.dsl:90:
+    0000: 4E 46 49 54 E0 00 00 00 01 D1 42 4F 43 48 53 20  // NFIT......BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/virt/NFIT.memhp.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/virt/NFIT.memhp.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#67478: FILE: tests/data/acpi/virt/NFIT.memhp.dsl:5:
+ * $

ERROR: trailing whitespace
#67563: FILE: tests/data/acpi/virt/NFIT.memhp.dsl:90:
+    0000: 4E 46 49 54 E0 00 00 00 01 D1 42 4F 43 48 53 20  // NFIT......BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/virt/SLIT.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/virt/SLIT.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#67587: FILE: tests/data/acpi/virt/SLIT.dsl:5:
+ * $

ERROR: trailing whitespace
#67611: FILE: tests/data/acpi/virt/SLIT.dsl:29:
+    0000: 53 4C 49 54 30 00 00 00 01 2C 42 4F 43 48 53 20  // SLIT0....,BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/virt/SLIT.memhp.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/virt/SLIT.memhp.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#67624: FILE: tests/data/acpi/virt/SLIT.memhp.dsl:5:
+ * $

ERROR: trailing whitespace
#67648: FILE: tests/data/acpi/virt/SLIT.memhp.dsl:29:
+    0000: 53 4C 49 54 30 00 00 00 01 2C 42 4F 43 48 53 20  // SLIT0....,BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/virt/SPCR.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/virt/SPCR.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#67661: FILE: tests/data/acpi/virt/SPCR.dsl:5:
+ * $

ERROR: trailing whitespace
#67709: FILE: tests/data/acpi/virt/SPCR.dsl:53:
+    0000: 53 50 43 52 50 00 00 00 02 13 42 4F 43 48 53 20  // SPCRP.....BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/virt/SPCR.memhp.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/virt/SPCR.memhp.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#67724: FILE: tests/data/acpi/virt/SPCR.memhp.dsl:5:
+ * $

ERROR: trailing whitespace
#67772: FILE: tests/data/acpi/virt/SPCR.memhp.dsl:53:
+    0000: 53 50 43 52 50 00 00 00 02 13 42 4F 43 48 53 20  // SPCRP.....BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/virt/SPCR.numamem.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/virt/SPCR.numamem.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#67787: FILE: tests/data/acpi/virt/SPCR.numamem.dsl:5:
+ * $

ERROR: trailing whitespace
#67835: FILE: tests/data/acpi/virt/SPCR.numamem.dsl:53:
+    0000: 53 50 43 52 50 00 00 00 02 13 42 4F 43 48 53 20  // SPCRP.....BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/virt/SRAT.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/virt/SRAT.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#67850: FILE: tests/data/acpi/virt/SRAT.dsl:5:
+ * $

ERROR: trailing whitespace
#67896: FILE: tests/data/acpi/virt/SRAT.dsl:51:
+    0000: 53 52 41 54 6A 00 00 00 03 AB 42 4F 43 48 53 20  // SRATj.....BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/virt/SRAT.memhp.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/virt/SRAT.memhp.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#67913: FILE: tests/data/acpi/virt/SRAT.memhp.dsl:5:
+ * $

ERROR: trailing whitespace
#68001: FILE: tests/data/acpi/virt/SRAT.memhp.dsl:93:
+    0000: 53 52 41 54 E2 00 00 00 03 5C 42 4F 43 48 53 20  // SRAT.....\BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/virt/SRAT.numamem.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/virt/SRAT.numamem.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#68026: FILE: tests/data/acpi/virt/SRAT.numamem.dsl:5:
+ * $

ERROR: trailing whitespace
#68072: FILE: tests/data/acpi/virt/SRAT.numamem.dsl:51:
+    0000: 53 52 41 54 6A 00 00 00 03 AB 42 4F 43 48 53 20  // SRATj.....BOCHS $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/virt/SSDT.dsl and tests/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/virt/SSDT.dsl and tests/bios-tables-test.c.orig found

ERROR: trailing whitespace
#68089: FILE: tests/data/acpi/virt/SSDT.dsl:5:
+ * $

ERROR: trailing whitespace
#68124: FILE: tests/data/acpi/virt/SSDT.dsl:40:
+                    HDLE,   32, $

ERROR: trailing whitespace
#68125: FILE: tests/data/acpi/virt/SSDT.dsl:41:
+                    REVS,   32, $

ERROR: trailing whitespace
#68126: FILE: tests/data/acpi/virt/SSDT.dsl:42:
+                    FUNC,   32, $

ERROR: trailing whitespace
#68132: FILE: tests/data/acpi/virt/SSDT.dsl:48:
+                    RLEN,   32, $

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/virt/SSDT.dsl and tests/data/uefi-boot-images/bios-tables-test.x86_64.iso.raw found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/virt/SSDT.dsl and tests/libqtest.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/virt/SSDT.dsl and tests/libqtest.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/virt/SSDT.dsl and tests/qemu-iotests/core.12067 found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/virt/SSDT.dsl and tests/qemu-iotests/core.12067 found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/virt/SSDT.dsl and tests/qemu-iotests/core.12067 found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/virt/SSDT.dsl and tests/qtest/bios-tables-test-allowed-diff.h.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/virt/SSDT.dsl and tests/qtest/bios-tables-test-allowed-diff.h.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/virt/SSDT.dsl and tests/qtest/bios-tables-test-allowed-diff.h.rej found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/virt/SSDT.dsl and tests/qtest/bios-tables-test-allowed-diff.h.rej found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/virt/SSDT.dsl and tests/qtest/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/virt/SSDT.dsl and tests/qtest/bios-tables-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/virt/SSDT.dsl and tests/qtest/bios-tables-test.c.rej found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/virt/SSDT.dsl and tests/qtest/bios-tables-test.c.rej found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/virt/SSDT.dsl and tests/test-qapi-event.c found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/virt/SSDT.dsl and tests/test-qapi-event.c found

ERROR: line over 90 characters
#70766: FILE: tests/test-qapi-event.c:62:
+void qapi_event_send_event_c(bool has_a, int64_t a, bool has_b, UserDefOne *b, const char *c, Error **errp)

ERROR: line over 90 characters
#70809: FILE: tests/test-qapi-event.c:105:
+void qapi_event_send_event_d(EventStructOne *a, const char *b, bool has_c, const char *c, bool has_enum3, EnumOne enum3, Error **errp)

ERROR: line over 90 characters
#70852: FILE: tests/test-qapi-event.c:148:
+void qapi_event_send___org_qemu_x_event(__org_qemu_x_Enum __org_qemu_x_member1, const char *__org_qemu_x_member2, bool has_q_wchar_t, int64_t q_wchar_t, Error **errp)

WARNING: line over 80 characters
#70860: FILE: tests/test-qapi-event.c:156:
+        __org_qemu_x_member1, (char *)__org_qemu_x_member2, has_q_wchar_t, q_wchar_t

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/virt/SSDT.dsl and tests/test-qmp-introspect.c found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/virt/SSDT.dsl and tests/test-qmp-introspect.c found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/virt/SSDT.dsl and tests/test-qmp-marshal.c found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/virt/SSDT.dsl and tests/test-qmp-marshal.c found

ERROR: line over 90 characters
#71002: FILE: tests/test-qmp-marshal.c:30:
+static void qmp_marshal_output___org_qemu_x_Union1(__org_qemu_x_Union1 *ret_in, QObject **ret_out, Error **errp)

WARNING: line over 80 characters
#71025: FILE: tests/test-qmp-marshal.c:53:
+static void qmp_marshal___org_qemu_x_command(QDict *args, QObject **ret, Error **errp)

WARNING: line over 80 characters
#71066: FILE: tests/test-qmp-marshal.c:94:
+static void qmp_marshal_output_int(int64_t ret_in, QObject **ret_out, Error **errp)

WARNING: line over 80 characters
#71130: FILE: tests/test-qmp-marshal.c:158:
+static void qmp_marshal_output_any(QObject *ret_in, QObject **ret_out, Error **errp)

WARNING: line over 80 characters
#71204: FILE: tests/test-qmp-marshal.c:232:
+static void qmp_marshal_output_Empty2(Empty2 *ret_in, QObject **ret_out, Error **errp)

ERROR: line over 90 characters
#71280: FILE: tests/test-qmp-marshal.c:308:
+static void qmp_marshal_output_UserDefTwo(UserDefTwo *ret_in, QObject **ret_out, Error **errp)

ERROR: line over 90 characters
#71346: FILE: tests/test-qmp-marshal.c:374:
+    qmp_register_command("__org.qemu_x-command", qmp_marshal___org_qemu_x_command, QCO_NO_OPTIONS);

WARNING: line over 80 characters
#71347: FILE: tests/test-qmp-marshal.c:375:
+    qmp_register_command("guest-get-time", qmp_marshal_guest_get_time, QCO_NO_OPTIONS);

WARNING: line over 80 characters
#71349: FILE: tests/test-qmp-marshal.c:377:
+    qmp_register_command("user_def_cmd", qmp_marshal_user_def_cmd, QCO_NO_OPTIONS);

WARNING: line over 80 characters
#71350: FILE: tests/test-qmp-marshal.c:378:
+    qmp_register_command("user_def_cmd0", qmp_marshal_user_def_cmd0, QCO_NO_OPTIONS);

WARNING: line over 80 characters
#71351: FILE: tests/test-qmp-marshal.c:379:
+    qmp_register_command("user_def_cmd1", qmp_marshal_user_def_cmd1, QCO_NO_OPTIONS);

WARNING: line over 80 characters
#71352: FILE: tests/test-qmp-marshal.c:380:
+    qmp_register_command("user_def_cmd2", qmp_marshal_user_def_cmd2, QCO_NO_OPTIONS);

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/virt/SSDT.dsl and tests/vhost-user-bridge found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/virt/SSDT.dsl and tests/vhost-user-bridge.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/virt/SSDT.dsl and tests/vhost-user-bridge.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/virt/SSDT.dsl and tests/vhost-user-test.c.orig found

ERROR: Do not add expected files together with tests, follow instructions in tests/qtest/bios-tables-test.c: both tests/data/acpi/virt/SSDT.dsl and tests/vhost-user-test.c.orig found

total: 13349 errors, 11 warnings, 71490 lines checked

Patch 45/48 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.

46/48 Checking commit 213edc527b71 (hw: virtio-pmem: detach the element fromt the virtqueue when error occurs)
47/48 Checking commit 77556134b890 (libvhost-user: return early on virtqueue errors)
48/48 Checking commit 8faf4c1e1084 (libvhost-user: return on error in vu_log_queue_fill())
=== OUTPUT END ===

Test command exited with code: 1


The full log is available at
http://patchew.org/logs/20200929071948.281157-1-mst@redhat.com/testing.checkpatch/?type=message.
---
Email generated automatically by Patchew [https://patchew.org/].
Please send your feedback to patchew-devel@redhat.com

^ permalink raw reply	[flat|nested] 63+ messages in thread

* Re: [PULL v4 00/48] virtio,pc,acpi: fixes, tests
  2020-09-29  7:20 [PULL v4 00/48] virtio,pc,acpi: fixes, tests Michael S. Tsirkin
                   ` (48 preceding siblings ...)
  2020-09-29  8:13 ` [PULL v4 00/48] virtio,pc,acpi: fixes, tests no-reply
@ 2020-09-29  8:50 ` no-reply
  2020-09-29 11:02 ` Peter Maydell
  2020-09-29 11:04 ` Michael S. Tsirkin
  51 siblings, 0 replies; 63+ messages in thread
From: no-reply @ 2020-09-29  8:50 UTC (permalink / raw)
  To: mst; +Cc: peter.maydell, qemu-devel

Patchew URL: https://patchew.org/QEMU/20200929071948.281157-1-mst@redhat.com/



Hi,

This series failed the docker-quick@centos7 build test. Please find the testing commands and
their output below. If you have Docker installed, you can probably reproduce it
locally.

=== TEST SCRIPT BEGIN ===
#!/bin/bash
make docker-image-centos7 V=1 NETWORK=1
time make docker-test-quick@centos7 SHOW_ENV=1 J=14 NETWORK=1
=== TEST SCRIPT END ===

C linker for the host machine: cc ld.bfd 2.27-43
Host machine cpu family: x86_64
Host machine cpu: x86_64
../src/meson.build:10: WARNING: Module unstable-keyval has no backwards or forwards compatibility and might not exist in future releases.
Program sh found: YES
Program python3 found: YES (/usr/bin/python3)
Configuring ninjatool using configuration
---
Could not allocate dynamic translator buffer
Running test qtest-aarch64: numa-test
**
ERROR:../src/tests/qtest/tpm-emu.c:97:tpm_emu_ctrl_thread: assertion failed (cmd == CMD_SET_DATAFD): (0 == 16)
ERROR qtest-aarch64: tpm-tis-device-test - Bail out! ERROR:../src/tests/qtest/tpm-emu.c:97:tpm_emu_ctrl_thread: assertion failed (cmd == CMD_SET_DATAFD): (0 == 16)
../src/tests/qtest/libqtest.c:166: kill_qemu() tried to terminate QEMU process but encountered exit status 1 (expected 0)
make: *** [run-test-160] Error 1
make: *** Waiting for unfinished jobs....
Could not access KVM kernel module: No such file or directory
qemu-system-x86_64: -accel kvm: failed to initialize kvm: No such file or directory
---
Using expected file 'tests/data/acpi/virt/DSDT.numamem'
socket_accept failed: Resource temporarily unavailable
**
ERROR:../src/tests/qtest/libqtest.c:301:qtest_init_without_qmp_handshake: assertion failed: (s->fd >= 0 && s->qmp_fd >= 0)
../src/tests/qtest/libqtest.c:166: kill_qemu() tried to terminate QEMU process but encountered exit status 1 (expected 0)
ERROR qtest-x86_64: bios-tables-test - Bail out! ERROR:../src/tests/qtest/libqtest.c:301:qtest_init_without_qmp_handshake: assertion failed: (s->fd >= 0 && s->qmp_fd >= 0)
make: *** [run-test-138] Error 1
Could not access KVM kernel module: No such file or directory
qemu-system-x86_64: -accel kvm: failed to initialize kvm: No such file or directory
qemu-system-x86_64: falling back to tcg
---
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['sudo', '-n', 'docker', 'run', '--rm', '--label', 'com.qemu.instance.uuid=3fe38e7b6fa6409cb97ac61c748d7472', '-u', '1003', '--security-opt', 'seccomp=unconfined', '-e', 'TARGET_LIST=', '-e', 'EXTRA_CONFIGURE_OPTS=', '-e', 'V=', '-e', 'J=14', '-e', 'DEBUG=', '-e', 'SHOW_ENV=1', '-e', 'CCACHE_DIR=/var/tmp/ccache', '-v', '/home/patchew2/.cache/qemu-docker-ccache:/var/tmp/ccache:z', '-v', '/var/tmp/patchew-tester-tmp-8ifvwte0/src/docker-src.2020-09-29-04.36.49.20090:/var/tmp/qemu:z,ro', 'qemu/centos7', '/var/tmp/qemu/run', 'test-quick']' returned non-zero exit status 2.
filter=--filter=label=com.qemu.instance.uuid=3fe38e7b6fa6409cb97ac61c748d7472
make[1]: *** [docker-run] Error 1
make[1]: Leaving directory `/var/tmp/patchew-tester-tmp-8ifvwte0/src'
make: *** [docker-run-test-quick@centos7] Error 2

real    13m24.716s
user    0m15.509s


The full log is available at
http://patchew.org/logs/20200929071948.281157-1-mst@redhat.com/testing.docker-quick@centos7/?type=message.
---
Email generated automatically by Patchew [https://patchew.org/].
Please send your feedback to patchew-devel@redhat.com

^ permalink raw reply	[flat|nested] 63+ messages in thread

* Re: [PULL v4 00/48] virtio,pc,acpi: fixes, tests
  2020-09-29  7:20 [PULL v4 00/48] virtio,pc,acpi: fixes, tests Michael S. Tsirkin
                   ` (49 preceding siblings ...)
  2020-09-29  8:50 ` no-reply
@ 2020-09-29 11:02 ` Peter Maydell
  2020-09-29 11:04 ` Michael S. Tsirkin
  51 siblings, 0 replies; 63+ messages in thread
From: Peter Maydell @ 2020-09-29 11:02 UTC (permalink / raw)
  To: Michael S. Tsirkin; +Cc: QEMU Developers

On Tue, 29 Sep 2020 at 08:21, Michael S. Tsirkin <mst@redhat.com> wrote:
>
> Changes from v3:
> - dropped reconnect tests
> - added more fixes, an smbios feature
>
> The following changes since commit 74504514b154ebebdff577d88e4bf5c13074e9ed:
>
>   Merge remote-tracking branch 'remotes/alistair/tags/pull-register-20200927' into staging (2020-09-28 16:49:10 +0100)
>
> are available in the Git repository at:
>
>   git://git.kernel.org/pub/scm/virt/kvm/mst/qemu.git tags/for_upstream
>
> for you to fetch changes up to 8138405528c29af2a850cd672a8f8a0b33b7ab40:
>
>   libvhost-user: return on error in vu_log_queue_fill() (2020-09-29 03:06:12 -0400)
>
> ----------------------------------------------------------------
> virtio,pc,acpi: fixes, tests
>
> Fixes and tests all over the place.
> Batch iommu updates for vdpa.
> Removal of deprecated cpu hotplug commands.
> SMBIOS OEM string support.
>
> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
>


Applied, thanks.

Please update the changelog at https://wiki.qemu.org/ChangeLog/5.2
for any user-visible changes.

-- PMM


^ permalink raw reply	[flat|nested] 63+ messages in thread

* Re: [PULL v4 00/48] virtio,pc,acpi: fixes, tests
  2020-09-29  7:20 [PULL v4 00/48] virtio,pc,acpi: fixes, tests Michael S. Tsirkin
                   ` (50 preceding siblings ...)
  2020-09-29 11:02 ` Peter Maydell
@ 2020-09-29 11:04 ` Michael S. Tsirkin
  2020-09-29 11:07   ` Peter Maydell
  51 siblings, 1 reply; 63+ messages in thread
From: Michael S. Tsirkin @ 2020-09-29 11:04 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell

On Tue, Sep 29, 2020 at 03:20:52AM -0400, Michael S. Tsirkin wrote:
> Changes from v3:
> - dropped reconnect tests
> - added more fixes, an smbios feature
> 
> The following changes since commit 74504514b154ebebdff577d88e4bf5c13074e9ed:
> 
>   Merge remote-tracking branch 'remotes/alistair/tags/pull-register-20200927' into staging (2020-09-28 16:49:10 +0100)
> 
> are available in the Git repository at:
> 
>   git://git.kernel.org/pub/scm/virt/kvm/mst/qemu.git tags/for_upstream
> 
> for you to fetch changes up to 8138405528c29af2a850cd672a8f8a0b33b7ab40:

Ani Sinha pointed out that this included unnecessary files, I pushed out
a new commit 192d48b4ae4216f0dc40fba35e8edf3b92713aa7 which should be
ok.


> 
>   libvhost-user: return on error in vu_log_queue_fill() (2020-09-29 03:06:12 -0400)
> 
> ----------------------------------------------------------------
> virtio,pc,acpi: fixes, tests
> 
> Fixes and tests all over the place.
> Batch iommu updates for vdpa.
> Removal of deprecated cpu hotplug commands.
> SMBIOS OEM string support.
> 
> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
> ----------------------------------------------------------------
> Ani Sinha (11):
>       tests/acpi: mark addition of table DSDT.roothp for unit testing root pci hotplug
>       tests/acpi: add new unit test to test hotplug off/on feature on the root pci bus
>       tests/acpi: add a new ACPI table in order to test root pci hotplug on/off
>       Fix a gap where acpi_pcihp_find_hotplug_bus() returns a non-hotpluggable bus
>       i440fx/acpi: do not add hotplug related amls for cold plugged bridges
>       tests/acpi: list added acpi table binary file for pci bridge hotplug test
>       tests/acpi: unit test for 'acpi-pci-hotplug-with-bridge-support' bridge flag
>       tests/acpi: add newly added acpi DSDT table blob for pci bridge hotplug flag
>       Add ACPI DSDT tables for q35 that are being updated by the next patch
>       piix4: don't reserve hw resources when hotplug is off globally
>       tests/acpi: update golden master DSDT binary table blobs for q35
> 
> Daniel P. Berrangé (3):
>       hw/smbios: support loading OEM strings values from a file
>       hw/smbios: report error if table size is too large
>       qemu-options: document SMBIOS type 11 settings
> 
> David Hildenbrand (1):
>       pc: fix auto_enable_numa_with_memhp/auto_enable_numa_with_memdev for the 5.0 machine
> 
> Dima Stepanov (3):
>       vhost: recheck dev state in the vhost_migration_log routine
>       vhost: check queue state in the vhost_dev_set_log routine
>       tests/qtest/vhost-user-test: prepare the tests for adding new dev class
> 
> Eric Auger (2):
>       virtio-iommu: Check gtrees are non null before destroying them
>       virtio-iommu-pci: force virtio version 1
> 
> Igor Mammedov (11):
>       cphp: remove deprecated cpu-add command(s)
>       x86: lpc9: let firmware negotiate 'CPU hotplug with SMI' features
>       x86: cpuhp: prevent guest crash on CPU hotplug when broadcast SMI is in use
>       x86: cpuhp: refuse cpu hot-unplug request earlier if not supported
>       acpi: add aml_land() and aml_break() primitives
>       tests: acpi: mark to be changed tables in bios-tables-test-allowed-diff
>       x86: ich9: expose "smi_negotiated_features" as a QOM property
>       x86: acpi: introduce AcpiPmInfo::smi_on_cpuhp
>       x86: acpi: introduce the PCI0.SMI0 ACPI device
>       x68: acpi: trigger SMI before sending hotplug Notify event to OSPM
>       tests: acpi: update acpi blobs with new AML
> 
> Jason Wang (3):
>       linux headers: sync to 5.9-rc4
>       vhost: switch to use IOTLB v2 format
>       vhost-vdpa: batch updating IOTLB mappings
> 
> Laurent Vivier (3):
>       util/hexdump: introduce qemu_hexdump_line()
>       vhost-vdpa: add trace-events
>       configure: Fix build dependencies with vhost-vdpa.
> 
> Li Qiang (3):
>       virtio-mem: detach the element from the virtqueue when error occurs
>       virtio: update MemoryRegionCaches when guest set bad features
>       hw: virtio-pmem: detach the element fromt the virtqueue when error occurs
> 
> Pankaj Gupta (1):
>       virtio-pmem-pci: force virtio version 1
> 
> Stefan Hajnoczi (2):
>       libvhost-user: return early on virtqueue errors
>       libvhost-user: return on error in vu_log_queue_fill()
> 
> Stefano Garzarella (4):
>       virtio: skip legacy support check on machine types less than 5.1
>       vhost-vsock-pci: force virtio version 1
>       vhost-user-vsock-pci: force virtio version 1
>       vhost-vsock-ccw: force virtio version 1
> 
> haibinzhang(张海斌) (1):
>       vhost-user: save features of multiqueues if chardev is closed
> 
>  configure                                          |    3 +-
>  qapi/machine.json                                  |   24 -
>  include/hw/acpi/aml-build.h                        |    2 +
>  include/hw/acpi/cpu.h                              |    1 +
>  include/hw/boards.h                                |    1 -
>  include/hw/i386/ich9.h                             |    4 +
>  include/hw/i386/pc.h                               |    1 -
>  include/hw/virtio/vhost-backend.h                  |    2 +
>  include/hw/virtio/vhost-user-blk.h                 |   10 +
>  include/hw/virtio/vhost-vdpa.h                     |    1 +
>  include/hw/virtio/vhost.h                          |    1 +
>  include/hw/virtio/virtio.h                         |    2 +
>  include/monitor/hmp.h                              |    1 -
>  include/qemu-common.h                              |    8 +
>  include/standard-headers/drm/drm_fourcc.h          |  140 +
>  include/standard-headers/linux/ethtool.h           |   87 +
>  include/standard-headers/linux/input-event-codes.h |    3 +-
>  include/standard-headers/linux/vhost_types.h       |   11 +
>  include/standard-headers/linux/virtio_9p.h         |    4 +-
>  include/standard-headers/linux/virtio_blk.h        |   26 +-
>  include/standard-headers/linux/virtio_config.h     |    8 +-
>  include/standard-headers/linux/virtio_console.h    |    8 +-
>  include/standard-headers/linux/virtio_net.h        |    6 +-
>  include/standard-headers/linux/virtio_scsi.h       |   20 +-
>  linux-headers/asm-generic/unistd.h                 |    6 +-
>  linux-headers/asm-mips/unistd_n32.h                |    1 +
>  linux-headers/asm-mips/unistd_n64.h                |    1 +
>  linux-headers/asm-mips/unistd_o32.h                |    1 +
>  linux-headers/asm-powerpc/kvm.h                    |    5 +
>  linux-headers/asm-powerpc/unistd_32.h              |    1 +
>  linux-headers/asm-powerpc/unistd_64.h              |    1 +
>  linux-headers/asm-s390/kvm.h                       |    7 +-
>  linux-headers/asm-s390/unistd_32.h                 |    1 +
>  linux-headers/asm-s390/unistd_64.h                 |    1 +
>  linux-headers/asm-x86/unistd_32.h                  |    1 +
>  linux-headers/asm-x86/unistd_64.h                  |    1 +
>  linux-headers/asm-x86/unistd_x32.h                 |    1 +
>  linux-headers/linux/kvm.h                          |    4 +
>  linux-headers/linux/vfio.h                         |    2 +-
>  linux-headers/linux/vhost.h                        |    2 +
>  contrib/libvhost-user/libvhost-user.c              |   26 +-
>  hw/acpi/aml-build.c                                |   16 +
>  hw/acpi/cpu.c                                      |  165 +-
>  hw/acpi/ich9.c                                     |   24 +-
>  hw/acpi/pcihp.c                                    |   15 +
>  hw/acpi/piix4.c                                    |    6 +-
>  hw/block/vhost-user-blk.c                          |   19 +-
>  hw/core/machine-hmp-cmds.c                         |   12 -
>  hw/core/machine-qmp-cmds.c                         |   12 -
>  hw/core/machine.c                                  |    1 +
>  hw/i386/acpi-build.c                               |   72 +-
>  hw/i386/pc.c                                       |   31 +-
>  hw/i386/pc_piix.c                                  |    1 -
>  hw/i386/pc_q35.c                                   |    2 +-
>  hw/i386/x86.c                                      |   11 +
>  hw/isa/lpc_ich9.c                                  |   16 +
>  hw/s390x/s390-virtio-ccw.c                         |   12 -
>  hw/s390x/vhost-vsock-ccw.c                         |   12 +
>  hw/s390x/virtio-ccw.c                              |   15 +-
>  hw/smbios/smbios.c                                 |   85 +-
>  hw/virtio/vhost-backend.c                          |   88 +-
>  hw/virtio/vhost-user-vsock-pci.c                   |    4 +-
>  hw/virtio/vhost-vdpa.c                             |  158 +-
>  hw/virtio/vhost-vsock-pci.c                        |   10 +-
>  hw/virtio/vhost.c                                  |   49 +-
>  hw/virtio/virtio-iommu-pci.c                       |    2 +-
>  hw/virtio/virtio-iommu.c                           |    8 +-
>  hw/virtio/virtio-mem.c                             |    3 +
>  hw/virtio/virtio-pci.c                             |   14 +-
>  hw/virtio/virtio-pmem-pci.c                        |    1 +
>  hw/virtio/virtio-pmem.c                            |    1 +
>  hw/virtio/virtio.c                                 |   24 +-
>  net/vhost-user.c                                   |   10 +-
>  tests/qtest/bios-tables-test.c                     |   32 +
>  tests/qtest/cpu-plug-test.c                        |  100 +-
>  tests/qtest/test-hmp.c                             |    1 -
>  tests/qtest/vhost-user-test.c                      |  105 +-
>  tests/test-qapi-event.c                            |  198 ++
>  tests/test-qmp-introspect.c                        |   58 +
>  tests/test-qmp-marshal.c                           |  383 +++
>  util/hexdump.c                                     |   54 +-
>  Kconfig.host                                       |    4 +
>  docs/system/deprecated.rst                         |   25 +-
>  hmp-commands.hx                                    |   15 -
>  hw/virtio/trace-events                             |   31 +
>  meson.build                                        |    1 +
>  qemu-options.hx                                    |   41 +
>  tests/.vhost-user-test.c.swo                       |  Bin 0 -> 16384 bytes
>  tests/Makefile.include.orig                        | 1012 ++++++
>  tests/Makefile.orig                                |  569 ++++
>  tests/bios-tables-test.c.orig                      |  925 +++++
>  tests/data/acpi/diff-aml.sh                        |    0
>  tests/data/acpi/disassemle-aml.py                  |   21 +
>  tests/data/acpi/microvm/APIC.dsl                   |   56 +
>  tests/data/acpi/microvm/DSDT.dsl                   |  121 +
>  tests/data/acpi/microvm/FACP.dsl                   |  196 ++
>  tests/data/acpi/pc/APIC.acpihmat.dsl               |  112 +
>  tests/data/acpi/pc/APIC.bridge                     |  Bin 0 -> 120 bytes
>  tests/data/acpi/pc/APIC.bridge.dsl                 |  104 +
>  tests/data/acpi/pc/APIC.cphp.dsl                   |  146 +
>  tests/data/acpi/pc/APIC.dimmpxm.dsl                |  129 +
>  tests/data/acpi/pc/APIC.dsl                        |  104 +
>  tests/data/acpi/pc/APIC.hpbridge                   |  Bin 0 -> 120 bytes
>  tests/data/acpi/pc/APIC.ipmikcs                    |  Bin 0 -> 120 bytes
>  tests/data/acpi/pc/APIC.ipmikcs.dsl                |  104 +
>  tests/data/acpi/pc/APIC.memhp                      |  Bin 0 -> 120 bytes
>  tests/data/acpi/pc/APIC.memhp.dsl                  |  104 +
>  tests/data/acpi/pc/APIC.numamem                    |  Bin 0 -> 120 bytes
>  tests/data/acpi/pc/APIC.numamem.dsl                |  104 +
>  tests/data/acpi/pc/APIC.roothp                     |  Bin 0 -> 120 bytes
>  tests/data/acpi/pc/DSDT                            |  Bin 4934 -> 5060 bytes
>  tests/data/acpi/pc/DSDT.acpihmat                   |  Bin 6258 -> 6385 bytes
>  tests/data/acpi/pc/DSDT.acpihmat.dsl               | 1619 +++++++++
>  tests/data/acpi/pc/DSDT.bridge                     |  Bin 6793 -> 6919 bytes
>  tests/data/acpi/pc/DSDT.bridge.dsl                 | 1800 ++++++++++
>  tests/data/acpi/pc/DSDT.cphp                       |  Bin 5397 -> 5524 bytes
>  tests/data/acpi/pc/DSDT.cphp.dsl                   | 1466 ++++++++
>  tests/data/acpi/pc/DSDT.dimmpxm                    |  Bin 6587 -> 6714 bytes
>  tests/data/acpi/pc/DSDT.dimmpxm.dsl                | 1719 ++++++++++
>  tests/data/acpi/pc/DSDT.dsl                        | 1407 ++++++++
>  tests/data/acpi/pc/DSDT.hpbridge                   |  Bin 0 -> 5021 bytes
>  tests/data/acpi/pc/DSDT.ipmikcs                    |  Bin 5006 -> 5132 bytes
>  tests/data/acpi/pc/DSDT.ipmikcs.dsl                | 1337 ++++++++
>  tests/data/acpi/pc/DSDT.memhp                      |  Bin 6293 -> 6419 bytes
>  tests/data/acpi/pc/DSDT.memhp.dsl                  | 1625 +++++++++
>  tests/data/acpi/pc/DSDT.numamem                    |  Bin 4940 -> 5066 bytes
>  tests/data/acpi/pc/DSDT.numamem.dsl                | 1321 ++++++++
>  tests/data/acpi/pc/DSDT.roothp                     |  Bin 0 -> 5256 bytes
>  tests/data/acpi/pc/FACP.acpihmat                   |  Bin 0 -> 116 bytes
>  tests/data/acpi/pc/FACP.acpihmat.dsl               |   99 +
>  tests/data/acpi/pc/FACP.bridge                     |  Bin 0 -> 116 bytes
>  tests/data/acpi/pc/FACP.bridge.dsl                 |   99 +
>  tests/data/acpi/pc/FACP.cphp                       |  Bin 0 -> 116 bytes
>  tests/data/acpi/pc/FACP.cphp.dsl                   |   99 +
>  tests/data/acpi/pc/FACP.dimmpxm                    |  Bin 0 -> 116 bytes
>  tests/data/acpi/pc/FACP.dimmpxm.dsl                |   99 +
>  tests/data/acpi/pc/FACP.dsl                        |   99 +
>  tests/data/acpi/pc/FACP.hpbridge                   |  Bin 0 -> 116 bytes
>  tests/data/acpi/pc/FACP.ipmikcs                    |  Bin 0 -> 116 bytes
>  tests/data/acpi/pc/FACP.ipmikcs.dsl                |   99 +
>  tests/data/acpi/pc/FACP.memhp                      |  Bin 0 -> 116 bytes
>  tests/data/acpi/pc/FACP.memhp.dsl                  |   99 +
>  tests/data/acpi/pc/FACP.numamem                    |  Bin 0 -> 116 bytes
>  tests/data/acpi/pc/FACP.numamem.dsl                |   99 +
>  tests/data/acpi/pc/FACP.roothp                     |  Bin 0 -> 116 bytes
>  tests/data/acpi/pc/FACS.acpihmat                   |  Bin 0 -> 64 bytes
>  tests/data/acpi/pc/FACS.acpihmat.dsl               |   32 +
>  tests/data/acpi/pc/FACS.bridge                     |  Bin 0 -> 64 bytes
>  tests/data/acpi/pc/FACS.bridge.dsl                 |   32 +
>  tests/data/acpi/pc/FACS.cphp                       |  Bin 0 -> 64 bytes
>  tests/data/acpi/pc/FACS.cphp.dsl                   |   32 +
>  tests/data/acpi/pc/FACS.dimmpxm                    |  Bin 0 -> 64 bytes
>  tests/data/acpi/pc/FACS.dimmpxm.dsl                |   32 +
>  tests/data/acpi/pc/FACS.dsl                        |   32 +
>  tests/data/acpi/pc/FACS.hpbridge                   |  Bin 0 -> 64 bytes
>  tests/data/acpi/pc/FACS.ipmikcs                    |  Bin 0 -> 64 bytes
>  tests/data/acpi/pc/FACS.ipmikcs.dsl                |   32 +
>  tests/data/acpi/pc/FACS.memhp                      |  Bin 0 -> 64 bytes
>  tests/data/acpi/pc/FACS.memhp.dsl                  |   32 +
>  tests/data/acpi/pc/FACS.numamem                    |  Bin 0 -> 64 bytes
>  tests/data/acpi/pc/FACS.numamem.dsl                |   32 +
>  tests/data/acpi/pc/FACS.roothp                     |  Bin 0 -> 64 bytes
>  tests/data/acpi/pc/HMAT.acpihmat.dsl               |  132 +
>  tests/data/acpi/pc/HMAT.dsl                        |  132 +
>  tests/data/acpi/pc/HPET.acpihmat                   |  Bin 0 -> 56 bytes
>  tests/data/acpi/pc/HPET.acpihmat.dsl               |   43 +
>  tests/data/acpi/pc/HPET.bridge                     |  Bin 0 -> 56 bytes
>  tests/data/acpi/pc/HPET.bridge.dsl                 |   43 +
>  tests/data/acpi/pc/HPET.cphp                       |  Bin 0 -> 56 bytes
>  tests/data/acpi/pc/HPET.cphp.dsl                   |   43 +
>  tests/data/acpi/pc/HPET.dimmpxm                    |  Bin 0 -> 56 bytes
>  tests/data/acpi/pc/HPET.dimmpxm.dsl                |   43 +
>  tests/data/acpi/pc/HPET.dsl                        |   43 +
>  tests/data/acpi/pc/HPET.hpbridge                   |  Bin 0 -> 56 bytes
>  tests/data/acpi/pc/HPET.ipmikcs                    |  Bin 0 -> 56 bytes
>  tests/data/acpi/pc/HPET.ipmikcs.dsl                |   43 +
>  tests/data/acpi/pc/HPET.memhp                      |  Bin 0 -> 56 bytes
>  tests/data/acpi/pc/HPET.memhp.dsl                  |   43 +
>  tests/data/acpi/pc/HPET.numamem                    |  Bin 0 -> 56 bytes
>  tests/data/acpi/pc/HPET.numamem.dsl                |   43 +
>  tests/data/acpi/pc/HPET.roothp                     |  Bin 0 -> 56 bytes
>  tests/data/acpi/pc/NFIT.dimmpxm.dsl                |  115 +
>  tests/data/acpi/pc/NFIT.dsl                        |  115 +
>  tests/data/acpi/pc/SLIT.cphp.dsl                   |   31 +
>  tests/data/acpi/pc/SLIT.dsl                        |   31 +
>  tests/data/acpi/pc/SLIT.memhp.dsl                  |   31 +
>  tests/data/acpi/pc/SRAT.acpihmat.dsl               |  137 +
>  tests/data/acpi/pc/SRAT.cphp.dsl                   |  168 +
>  tests/data/acpi/pc/SRAT.dimmpxm.dsl                |  194 ++
>  tests/data/acpi/pc/SRAT.dsl                        |  108 +
>  tests/data/acpi/pc/SRAT.memhp.dsl                  |  125 +
>  tests/data/acpi/pc/SRAT.numamem.dsl                |  108 +
>  tests/data/acpi/pc/SSDT.dsl                        |  205 ++
>  tests/data/acpi/pc/WAET.acpihmat                   |  Bin 0 -> 40 bytes
>  tests/data/acpi/pc/WAET.acpihmat.dsl               |   31 +
>  tests/data/acpi/pc/WAET.bridge                     |  Bin 0 -> 40 bytes
>  tests/data/acpi/pc/WAET.bridge.dsl                 |   31 +
>  tests/data/acpi/pc/WAET.cphp                       |  Bin 0 -> 40 bytes
>  tests/data/acpi/pc/WAET.cphp.dsl                   |   31 +
>  tests/data/acpi/pc/WAET.dimmpxm                    |  Bin 0 -> 40 bytes
>  tests/data/acpi/pc/WAET.dimmpxm.dsl                |   31 +
>  tests/data/acpi/pc/WAET.dsl                        |   31 +
>  tests/data/acpi/pc/WAET.hpbridge                   |  Bin 0 -> 40 bytes
>  tests/data/acpi/pc/WAET.ipmikcs                    |  Bin 0 -> 40 bytes
>  tests/data/acpi/pc/WAET.ipmikcs.dsl                |   31 +
>  tests/data/acpi/pc/WAET.memhp                      |  Bin 0 -> 40 bytes
>  tests/data/acpi/pc/WAET.memhp.dsl                  |   31 +
>  tests/data/acpi/pc/WAET.numamem                    |  Bin 0 -> 40 bytes
>  tests/data/acpi/pc/WAET.numamem.dsl                |   31 +
>  tests/data/acpi/pc/WAET.roothp                     |  Bin 0 -> 40 bytes
>  tests/data/acpi/q35/APIC.acpihmat.dsl              |  112 +
>  tests/data/acpi/q35/APIC.bridge                    |  Bin 0 -> 120 bytes
>  tests/data/acpi/q35/APIC.bridge.dsl                |  104 +
>  tests/data/acpi/q35/APIC.cphp.dsl                  |  146 +
>  tests/data/acpi/q35/APIC.dimmpxm.dsl               |  129 +
>  tests/data/acpi/q35/APIC.dsl                       |  104 +
>  tests/data/acpi/q35/APIC.ipmibt                    |  Bin 0 -> 120 bytes
>  tests/data/acpi/q35/APIC.ipmibt.dsl                |  104 +
>  tests/data/acpi/q35/APIC.memhp                     |  Bin 0 -> 120 bytes
>  tests/data/acpi/q35/APIC.memhp.dsl                 |  104 +
>  tests/data/acpi/q35/APIC.mmio64                    |  Bin 0 -> 120 bytes
>  tests/data/acpi/q35/APIC.mmio64.dsl                |  104 +
>  tests/data/acpi/q35/APIC.numamem                   |  Bin 0 -> 120 bytes
>  tests/data/acpi/q35/APIC.numamem.dsl               |  104 +
>  tests/data/acpi/q35/APIC.tis                       |  Bin 0 -> 120 bytes
>  tests/data/acpi/q35/APIC.tis.dsl                   |  104 +
>  tests/data/acpi/q35/DSDT                           |  Bin 7678 -> 7796 bytes
>  tests/data/acpi/q35/DSDT.acpihmat                  |  Bin 9002 -> 9121 bytes
>  tests/data/acpi/q35/DSDT.acpihmat.dsl              | 3436 +++++++++++++++++++
>  tests/data/acpi/q35/DSDT.bridge                    |  Bin 7695 -> 7814 bytes
>  tests/data/acpi/q35/DSDT.bridge.dsl                | 3141 +++++++++++++++++
>  tests/data/acpi/q35/DSDT.cphp                      |  Bin 8141 -> 8260 bytes
>  tests/data/acpi/q35/DSDT.cphp.dsl                  | 3283 ++++++++++++++++++
>  tests/data/acpi/q35/DSDT.dimmpxm                   |  Bin 9331 -> 9450 bytes
>  tests/data/acpi/q35/DSDT.dimmpxm.dsl               | 3535 ++++++++++++++++++++
>  tests/data/acpi/q35/DSDT.dsl                       | 3351 +++++++++++++++++++
>  tests/data/acpi/q35/DSDT.ipmibt                    |  Bin 7753 -> 7871 bytes
>  tests/data/acpi/q35/DSDT.ipmibt.dsl                | 3156 +++++++++++++++++
>  tests/data/acpi/q35/DSDT.memhp                     |  Bin 9037 -> 9155 bytes
>  tests/data/acpi/q35/DSDT.memhp.dsl                 | 3442 +++++++++++++++++++
>  tests/data/acpi/q35/DSDT.mmio64                    |  Bin 8808 -> 8927 bytes
>  tests/data/acpi/q35/DSDT.mmio64.dsl                | 3377 +++++++++++++++++++
>  tests/data/acpi/q35/DSDT.numamem                   |  Bin 7684 -> 7802 bytes
>  tests/data/acpi/q35/DSDT.numamem.dsl               | 3138 +++++++++++++++++
>  tests/data/acpi/q35/DSDT.tis                       |  Bin 8283 -> 8402 bytes
>  tests/data/acpi/q35/DSDT.tis.dsl                   | 3321 ++++++++++++++++++
>  tests/data/acpi/q35/FACP.acpihmat                  |  Bin 0 -> 244 bytes
>  tests/data/acpi/q35/FACP.acpihmat.dsl              |  179 +
>  tests/data/acpi/q35/FACP.bridge                    |  Bin 0 -> 244 bytes
>  tests/data/acpi/q35/FACP.bridge.dsl                |  179 +
>  tests/data/acpi/q35/FACP.cphp                      |  Bin 0 -> 244 bytes
>  tests/data/acpi/q35/FACP.cphp.dsl                  |  179 +
>  tests/data/acpi/q35/FACP.dimmpxm                   |  Bin 0 -> 244 bytes
>  tests/data/acpi/q35/FACP.dimmpxm.dsl               |  179 +
>  tests/data/acpi/q35/FACP.dsl                       |  179 +
>  tests/data/acpi/q35/FACP.ipmibt                    |  Bin 0 -> 244 bytes
>  tests/data/acpi/q35/FACP.ipmibt.dsl                |  179 +
>  tests/data/acpi/q35/FACP.memhp                     |  Bin 0 -> 244 bytes
>  tests/data/acpi/q35/FACP.memhp.dsl                 |  179 +
>  tests/data/acpi/q35/FACP.mmio64                    |  Bin 0 -> 244 bytes
>  tests/data/acpi/q35/FACP.mmio64.dsl                |  179 +
>  tests/data/acpi/q35/FACP.numamem                   |  Bin 0 -> 244 bytes
>  tests/data/acpi/q35/FACP.numamem.dsl               |  179 +
>  tests/data/acpi/q35/FACP.tis                       |  Bin 0 -> 244 bytes
>  tests/data/acpi/q35/FACP.tis.dsl                   |  179 +
>  tests/data/acpi/q35/FACS.acpihmat                  |  Bin 0 -> 64 bytes
>  tests/data/acpi/q35/FACS.acpihmat.dsl              |   32 +
>  tests/data/acpi/q35/FACS.bridge                    |  Bin 0 -> 64 bytes
>  tests/data/acpi/q35/FACS.bridge.dsl                |   32 +
>  tests/data/acpi/q35/FACS.cphp                      |  Bin 0 -> 64 bytes
>  tests/data/acpi/q35/FACS.cphp.dsl                  |   32 +
>  tests/data/acpi/q35/FACS.dimmpxm                   |  Bin 0 -> 64 bytes
>  tests/data/acpi/q35/FACS.dimmpxm.dsl               |   32 +
>  tests/data/acpi/q35/FACS.dsl                       |   32 +
>  tests/data/acpi/q35/FACS.ipmibt                    |  Bin 0 -> 64 bytes
>  tests/data/acpi/q35/FACS.ipmibt.dsl                |   32 +
>  tests/data/acpi/q35/FACS.memhp                     |  Bin 0 -> 64 bytes
>  tests/data/acpi/q35/FACS.memhp.dsl                 |   32 +
>  tests/data/acpi/q35/FACS.mmio64                    |  Bin 0 -> 64 bytes
>  tests/data/acpi/q35/FACS.mmio64.dsl                |   32 +
>  tests/data/acpi/q35/FACS.numamem                   |  Bin 0 -> 64 bytes
>  tests/data/acpi/q35/FACS.numamem.dsl               |   32 +
>  tests/data/acpi/q35/FACS.tis                       |  Bin 0 -> 64 bytes
>  tests/data/acpi/q35/FACS.tis.dsl                   |   32 +
>  tests/data/acpi/q35/HMAT.acpihmat.dsl              |  132 +
>  tests/data/acpi/q35/HMAT.dsl                       |  132 +
>  tests/data/acpi/q35/HPET.acpihmat                  |  Bin 0 -> 56 bytes
>  tests/data/acpi/q35/HPET.acpihmat.dsl              |   43 +
>  tests/data/acpi/q35/HPET.bridge                    |  Bin 0 -> 56 bytes
>  tests/data/acpi/q35/HPET.bridge.dsl                |   43 +
>  tests/data/acpi/q35/HPET.cphp                      |  Bin 0 -> 56 bytes
>  tests/data/acpi/q35/HPET.cphp.dsl                  |   43 +
>  tests/data/acpi/q35/HPET.dimmpxm                   |  Bin 0 -> 56 bytes
>  tests/data/acpi/q35/HPET.dimmpxm.dsl               |   43 +
>  tests/data/acpi/q35/HPET.dsl                       |   43 +
>  tests/data/acpi/q35/HPET.ipmibt                    |  Bin 0 -> 56 bytes
>  tests/data/acpi/q35/HPET.ipmibt.dsl                |   43 +
>  tests/data/acpi/q35/HPET.memhp                     |  Bin 0 -> 56 bytes
>  tests/data/acpi/q35/HPET.memhp.dsl                 |   43 +
>  tests/data/acpi/q35/HPET.mmio64                    |  Bin 0 -> 56 bytes
>  tests/data/acpi/q35/HPET.mmio64.dsl                |   43 +
>  tests/data/acpi/q35/HPET.numamem                   |  Bin 0 -> 56 bytes
>  tests/data/acpi/q35/HPET.numamem.dsl               |   43 +
>  tests/data/acpi/q35/HPET.tis                       |  Bin 0 -> 56 bytes
>  tests/data/acpi/q35/HPET.tis.dsl                   |   43 +
>  tests/data/acpi/q35/MCFG.acpihmat                  |  Bin 0 -> 60 bytes
>  tests/data/acpi/q35/MCFG.acpihmat.dsl              |   36 +
>  tests/data/acpi/q35/MCFG.bridge                    |  Bin 0 -> 60 bytes
>  tests/data/acpi/q35/MCFG.bridge.dsl                |   36 +
>  tests/data/acpi/q35/MCFG.cphp                      |  Bin 0 -> 60 bytes
>  tests/data/acpi/q35/MCFG.cphp.dsl                  |   36 +
>  tests/data/acpi/q35/MCFG.dimmpxm                   |  Bin 0 -> 60 bytes
>  tests/data/acpi/q35/MCFG.dimmpxm.dsl               |   36 +
>  tests/data/acpi/q35/MCFG.dsl                       |   36 +
>  tests/data/acpi/q35/MCFG.ipmibt                    |  Bin 0 -> 60 bytes
>  tests/data/acpi/q35/MCFG.ipmibt.dsl                |   36 +
>  tests/data/acpi/q35/MCFG.memhp                     |  Bin 0 -> 60 bytes
>  tests/data/acpi/q35/MCFG.memhp.dsl                 |   36 +
>  tests/data/acpi/q35/MCFG.mmio64                    |  Bin 0 -> 60 bytes
>  tests/data/acpi/q35/MCFG.mmio64.dsl                |   36 +
>  tests/data/acpi/q35/MCFG.numamem                   |  Bin 0 -> 60 bytes
>  tests/data/acpi/q35/MCFG.numamem.dsl               |   36 +
>  tests/data/acpi/q35/MCFG.tis                       |  Bin 0 -> 60 bytes
>  tests/data/acpi/q35/MCFG.tis.dsl                   |   36 +
>  tests/data/acpi/q35/NFIT.dimmpxm.dsl               |  115 +
>  tests/data/acpi/q35/NFIT.dsl                       |  115 +
>  tests/data/acpi/q35/SLIT.cphp.dsl                  |   31 +
>  tests/data/acpi/q35/SLIT.dsl                       |   31 +
>  tests/data/acpi/q35/SLIT.memhp.dsl                 |   31 +
>  tests/data/acpi/q35/SRAT.acpihmat.dsl              |  137 +
>  tests/data/acpi/q35/SRAT.cphp.dsl                  |  168 +
>  tests/data/acpi/q35/SRAT.dimmpxm.dsl               |  194 ++
>  tests/data/acpi/q35/SRAT.dsl                       |  108 +
>  tests/data/acpi/q35/SRAT.memhp.dsl                 |  125 +
>  tests/data/acpi/q35/SRAT.mmio64.dsl                |  108 +
>  tests/data/acpi/q35/SRAT.numamem.dsl               |  108 +
>  tests/data/acpi/q35/SSDT.dsl                       |  205 ++
>  tests/data/acpi/q35/TPM2.dsl                       |   38 +
>  tests/data/acpi/q35/TPM2.tis.dsl                   |   38 +
>  tests/data/acpi/q35/WAET.acpihmat                  |  Bin 0 -> 40 bytes
>  tests/data/acpi/q35/WAET.acpihmat.dsl              |   31 +
>  tests/data/acpi/q35/WAET.bridge                    |  Bin 0 -> 40 bytes
>  tests/data/acpi/q35/WAET.bridge.dsl                |   31 +
>  tests/data/acpi/q35/WAET.cphp                      |  Bin 0 -> 40 bytes
>  tests/data/acpi/q35/WAET.cphp.dsl                  |   31 +
>  tests/data/acpi/q35/WAET.dimmpxm                   |  Bin 0 -> 40 bytes
>  tests/data/acpi/q35/WAET.dimmpxm.dsl               |   31 +
>  tests/data/acpi/q35/WAET.dsl                       |   31 +
>  tests/data/acpi/q35/WAET.ipmibt                    |  Bin 0 -> 40 bytes
>  tests/data/acpi/q35/WAET.ipmibt.dsl                |   31 +
>  tests/data/acpi/q35/WAET.memhp                     |  Bin 0 -> 40 bytes
>  tests/data/acpi/q35/WAET.memhp.dsl                 |   31 +
>  tests/data/acpi/q35/WAET.mmio64                    |  Bin 0 -> 40 bytes
>  tests/data/acpi/q35/WAET.mmio64.dsl                |   31 +
>  tests/data/acpi/q35/WAET.numamem                   |  Bin 0 -> 40 bytes
>  tests/data/acpi/q35/WAET.numamem.dsl               |   31 +
>  tests/data/acpi/q35/WAET.tis                       |  Bin 0 -> 40 bytes
>  tests/data/acpi/q35/WAET.tis.dsl                   |   31 +
>  tests/data/acpi/virt/APIC.dsl                      |   78 +
>  tests/data/acpi/virt/APIC.memhp.dsl                |   78 +
>  tests/data/acpi/virt/APIC.numamem.dsl              |   78 +
>  tests/data/acpi/virt/DSDT.dsl                      | 1906 +++++++++++
>  tests/data/acpi/virt/DSDT.memhp.dsl                | 2215 ++++++++++++
>  tests/data/acpi/virt/DSDT.numamem.dsl              | 1906 +++++++++++
>  tests/data/acpi/virt/FACP.dsl                      |  196 ++
>  tests/data/acpi/virt/FACP.memhp.dsl                |  196 ++
>  tests/data/acpi/virt/FACP.numamem.dsl              |  196 ++
>  tests/data/acpi/virt/GTDT.dsl                      |   61 +
>  tests/data/acpi/virt/GTDT.memhp.dsl                |   61 +
>  tests/data/acpi/virt/GTDT.numamem.dsl              |   61 +
>  tests/data/acpi/virt/MCFG.dsl                      |   36 +
>  tests/data/acpi/virt/MCFG.memhp.dsl                |   36 +
>  tests/data/acpi/virt/MCFG.numamem.dsl              |   36 +
>  tests/data/acpi/virt/NFIT.dsl                      |  103 +
>  tests/data/acpi/virt/NFIT.memhp.dsl                |  103 +
>  tests/data/acpi/virt/SLIT.dsl                      |   31 +
>  tests/data/acpi/virt/SLIT.memhp.dsl                |   31 +
>  tests/data/acpi/virt/SPCR.dsl                      |   57 +
>  tests/data/acpi/virt/SPCR.memhp.dsl                |   57 +
>  tests/data/acpi/virt/SPCR.numamem.dsl              |   57 +
>  tests/data/acpi/virt/SRAT.dsl                      |   57 +
>  tests/data/acpi/virt/SRAT.memhp.dsl                |  107 +
>  tests/data/acpi/virt/SRAT.numamem.dsl              |   57 +
>  tests/data/acpi/virt/SSDT.dsl                      |  205 ++
>  .../bios-tables-test.x86_64.iso.raw                |  Bin 0 -> 425984 bytes
>  tests/libqtest.c.orig                              | 1106 ++++++
>  tests/qemu-iotests/core.12067                      |  Bin 0 -> 22716416 bytes
>  tests/qtest/bios-tables-test-allowed-diff.h.orig   |   18 +
>  tests/qtest/bios-tables-test-allowed-diff.h.rej    |    9 +
>  tests/qtest/bios-tables-test.c.orig                | 1200 +++++++
>  tests/qtest/bios-tables-test.c.rej                 |   22 +
>  tests/vhost-user-bridge                            |  Bin 0 -> 83120 bytes
>  tests/vhost-user-bridge.c.orig                     | 1432 ++++++++
>  tests/vhost-user-test.c.orig                       |  364 ++
>  394 files changed, 72814 insertions(+), 419 deletions(-)
>  create mode 100644 tests/test-qapi-event.c
>  create mode 100644 tests/test-qmp-introspect.c
>  create mode 100644 tests/test-qmp-marshal.c
>  create mode 100644 tests/.vhost-user-test.c.swo
>  create mode 100644 tests/Makefile.include.orig
>  create mode 100644 tests/Makefile.orig
>  create mode 100644 tests/bios-tables-test.c.orig
>  create mode 100644 tests/data/acpi/diff-aml.sh
>  create mode 100644 tests/data/acpi/disassemle-aml.py
>  create mode 100644 tests/data/acpi/microvm/APIC.dsl
>  create mode 100644 tests/data/acpi/microvm/DSDT.dsl
>  create mode 100644 tests/data/acpi/microvm/FACP.dsl
>  create mode 100644 tests/data/acpi/pc/APIC.acpihmat.dsl
>  create mode 100644 tests/data/acpi/pc/APIC.bridge
>  create mode 100644 tests/data/acpi/pc/APIC.bridge.dsl
>  create mode 100644 tests/data/acpi/pc/APIC.cphp.dsl
>  create mode 100644 tests/data/acpi/pc/APIC.dimmpxm.dsl
>  create mode 100644 tests/data/acpi/pc/APIC.dsl
>  create mode 100644 tests/data/acpi/pc/APIC.hpbridge
>  create mode 100644 tests/data/acpi/pc/APIC.ipmikcs
>  create mode 100644 tests/data/acpi/pc/APIC.ipmikcs.dsl
>  create mode 100644 tests/data/acpi/pc/APIC.memhp
>  create mode 100644 tests/data/acpi/pc/APIC.memhp.dsl
>  create mode 100644 tests/data/acpi/pc/APIC.numamem
>  create mode 100644 tests/data/acpi/pc/APIC.numamem.dsl
>  create mode 100644 tests/data/acpi/pc/APIC.roothp
>  create mode 100644 tests/data/acpi/pc/DSDT.acpihmat.dsl
>  create mode 100644 tests/data/acpi/pc/DSDT.bridge.dsl
>  create mode 100644 tests/data/acpi/pc/DSDT.cphp.dsl
>  create mode 100644 tests/data/acpi/pc/DSDT.dimmpxm.dsl
>  create mode 100644 tests/data/acpi/pc/DSDT.dsl
>  create mode 100644 tests/data/acpi/pc/DSDT.hpbridge
>  create mode 100644 tests/data/acpi/pc/DSDT.ipmikcs.dsl
>  create mode 100644 tests/data/acpi/pc/DSDT.memhp.dsl
>  create mode 100644 tests/data/acpi/pc/DSDT.numamem.dsl
>  create mode 100644 tests/data/acpi/pc/DSDT.roothp
>  create mode 100644 tests/data/acpi/pc/FACP.acpihmat
>  create mode 100644 tests/data/acpi/pc/FACP.acpihmat.dsl
>  create mode 100644 tests/data/acpi/pc/FACP.bridge
>  create mode 100644 tests/data/acpi/pc/FACP.bridge.dsl
>  create mode 100644 tests/data/acpi/pc/FACP.cphp
>  create mode 100644 tests/data/acpi/pc/FACP.cphp.dsl
>  create mode 100644 tests/data/acpi/pc/FACP.dimmpxm
>  create mode 100644 tests/data/acpi/pc/FACP.dimmpxm.dsl
>  create mode 100644 tests/data/acpi/pc/FACP.dsl
>  create mode 100644 tests/data/acpi/pc/FACP.hpbridge
>  create mode 100644 tests/data/acpi/pc/FACP.ipmikcs
>  create mode 100644 tests/data/acpi/pc/FACP.ipmikcs.dsl
>  create mode 100644 tests/data/acpi/pc/FACP.memhp
>  create mode 100644 tests/data/acpi/pc/FACP.memhp.dsl
>  create mode 100644 tests/data/acpi/pc/FACP.numamem
>  create mode 100644 tests/data/acpi/pc/FACP.numamem.dsl
>  create mode 100644 tests/data/acpi/pc/FACP.roothp
>  create mode 100644 tests/data/acpi/pc/FACS.acpihmat
>  create mode 100644 tests/data/acpi/pc/FACS.acpihmat.dsl
>  create mode 100644 tests/data/acpi/pc/FACS.bridge
>  create mode 100644 tests/data/acpi/pc/FACS.bridge.dsl
>  create mode 100644 tests/data/acpi/pc/FACS.cphp
>  create mode 100644 tests/data/acpi/pc/FACS.cphp.dsl
>  create mode 100644 tests/data/acpi/pc/FACS.dimmpxm
>  create mode 100644 tests/data/acpi/pc/FACS.dimmpxm.dsl
>  create mode 100644 tests/data/acpi/pc/FACS.dsl
>  create mode 100644 tests/data/acpi/pc/FACS.hpbridge
>  create mode 100644 tests/data/acpi/pc/FACS.ipmikcs
>  create mode 100644 tests/data/acpi/pc/FACS.ipmikcs.dsl
>  create mode 100644 tests/data/acpi/pc/FACS.memhp
>  create mode 100644 tests/data/acpi/pc/FACS.memhp.dsl
>  create mode 100644 tests/data/acpi/pc/FACS.numamem
>  create mode 100644 tests/data/acpi/pc/FACS.numamem.dsl
>  create mode 100644 tests/data/acpi/pc/FACS.roothp
>  create mode 100644 tests/data/acpi/pc/HMAT.acpihmat.dsl
>  create mode 100644 tests/data/acpi/pc/HMAT.dsl
>  create mode 100644 tests/data/acpi/pc/HPET.acpihmat
>  create mode 100644 tests/data/acpi/pc/HPET.acpihmat.dsl
>  create mode 100644 tests/data/acpi/pc/HPET.bridge
>  create mode 100644 tests/data/acpi/pc/HPET.bridge.dsl
>  create mode 100644 tests/data/acpi/pc/HPET.cphp
>  create mode 100644 tests/data/acpi/pc/HPET.cphp.dsl
>  create mode 100644 tests/data/acpi/pc/HPET.dimmpxm
>  create mode 100644 tests/data/acpi/pc/HPET.dimmpxm.dsl
>  create mode 100644 tests/data/acpi/pc/HPET.dsl
>  create mode 100644 tests/data/acpi/pc/HPET.hpbridge
>  create mode 100644 tests/data/acpi/pc/HPET.ipmikcs
>  create mode 100644 tests/data/acpi/pc/HPET.ipmikcs.dsl
>  create mode 100644 tests/data/acpi/pc/HPET.memhp
>  create mode 100644 tests/data/acpi/pc/HPET.memhp.dsl
>  create mode 100644 tests/data/acpi/pc/HPET.numamem
>  create mode 100644 tests/data/acpi/pc/HPET.numamem.dsl
>  create mode 100644 tests/data/acpi/pc/HPET.roothp
>  create mode 100644 tests/data/acpi/pc/NFIT.dimmpxm.dsl
>  create mode 100644 tests/data/acpi/pc/NFIT.dsl
>  create mode 100644 tests/data/acpi/pc/SLIT.cphp.dsl
>  create mode 100644 tests/data/acpi/pc/SLIT.dsl
>  create mode 100644 tests/data/acpi/pc/SLIT.memhp.dsl
>  create mode 100644 tests/data/acpi/pc/SRAT.acpihmat.dsl
>  create mode 100644 tests/data/acpi/pc/SRAT.cphp.dsl
>  create mode 100644 tests/data/acpi/pc/SRAT.dimmpxm.dsl
>  create mode 100644 tests/data/acpi/pc/SRAT.dsl
>  create mode 100644 tests/data/acpi/pc/SRAT.memhp.dsl
>  create mode 100644 tests/data/acpi/pc/SRAT.numamem.dsl
>  create mode 100644 tests/data/acpi/pc/SSDT.dsl
>  create mode 100644 tests/data/acpi/pc/WAET.acpihmat
>  create mode 100644 tests/data/acpi/pc/WAET.acpihmat.dsl
>  create mode 100644 tests/data/acpi/pc/WAET.bridge
>  create mode 100644 tests/data/acpi/pc/WAET.bridge.dsl
>  create mode 100644 tests/data/acpi/pc/WAET.cphp
>  create mode 100644 tests/data/acpi/pc/WAET.cphp.dsl
>  create mode 100644 tests/data/acpi/pc/WAET.dimmpxm
>  create mode 100644 tests/data/acpi/pc/WAET.dimmpxm.dsl
>  create mode 100644 tests/data/acpi/pc/WAET.dsl
>  create mode 100644 tests/data/acpi/pc/WAET.hpbridge
>  create mode 100644 tests/data/acpi/pc/WAET.ipmikcs
>  create mode 100644 tests/data/acpi/pc/WAET.ipmikcs.dsl
>  create mode 100644 tests/data/acpi/pc/WAET.memhp
>  create mode 100644 tests/data/acpi/pc/WAET.memhp.dsl
>  create mode 100644 tests/data/acpi/pc/WAET.numamem
>  create mode 100644 tests/data/acpi/pc/WAET.numamem.dsl
>  create mode 100644 tests/data/acpi/pc/WAET.roothp
>  create mode 100644 tests/data/acpi/q35/APIC.acpihmat.dsl
>  create mode 100644 tests/data/acpi/q35/APIC.bridge
>  create mode 100644 tests/data/acpi/q35/APIC.bridge.dsl
>  create mode 100644 tests/data/acpi/q35/APIC.cphp.dsl
>  create mode 100644 tests/data/acpi/q35/APIC.dimmpxm.dsl
>  create mode 100644 tests/data/acpi/q35/APIC.dsl
>  create mode 100644 tests/data/acpi/q35/APIC.ipmibt
>  create mode 100644 tests/data/acpi/q35/APIC.ipmibt.dsl
>  create mode 100644 tests/data/acpi/q35/APIC.memhp
>  create mode 100644 tests/data/acpi/q35/APIC.memhp.dsl
>  create mode 100644 tests/data/acpi/q35/APIC.mmio64
>  create mode 100644 tests/data/acpi/q35/APIC.mmio64.dsl
>  create mode 100644 tests/data/acpi/q35/APIC.numamem
>  create mode 100644 tests/data/acpi/q35/APIC.numamem.dsl
>  create mode 100644 tests/data/acpi/q35/APIC.tis
>  create mode 100644 tests/data/acpi/q35/APIC.tis.dsl
>  create mode 100644 tests/data/acpi/q35/DSDT.acpihmat.dsl
>  create mode 100644 tests/data/acpi/q35/DSDT.bridge.dsl
>  create mode 100644 tests/data/acpi/q35/DSDT.cphp.dsl
>  create mode 100644 tests/data/acpi/q35/DSDT.dimmpxm.dsl
>  create mode 100644 tests/data/acpi/q35/DSDT.dsl
>  create mode 100644 tests/data/acpi/q35/DSDT.ipmibt.dsl
>  create mode 100644 tests/data/acpi/q35/DSDT.memhp.dsl
>  create mode 100644 tests/data/acpi/q35/DSDT.mmio64.dsl
>  create mode 100644 tests/data/acpi/q35/DSDT.numamem.dsl
>  create mode 100644 tests/data/acpi/q35/DSDT.tis.dsl
>  create mode 100644 tests/data/acpi/q35/FACP.acpihmat
>  create mode 100644 tests/data/acpi/q35/FACP.acpihmat.dsl
>  create mode 100644 tests/data/acpi/q35/FACP.bridge
>  create mode 100644 tests/data/acpi/q35/FACP.bridge.dsl
>  create mode 100644 tests/data/acpi/q35/FACP.cphp
>  create mode 100644 tests/data/acpi/q35/FACP.cphp.dsl
>  create mode 100644 tests/data/acpi/q35/FACP.dimmpxm
>  create mode 100644 tests/data/acpi/q35/FACP.dimmpxm.dsl
>  create mode 100644 tests/data/acpi/q35/FACP.dsl
>  create mode 100644 tests/data/acpi/q35/FACP.ipmibt
>  create mode 100644 tests/data/acpi/q35/FACP.ipmibt.dsl
>  create mode 100644 tests/data/acpi/q35/FACP.memhp
>  create mode 100644 tests/data/acpi/q35/FACP.memhp.dsl
>  create mode 100644 tests/data/acpi/q35/FACP.mmio64
>  create mode 100644 tests/data/acpi/q35/FACP.mmio64.dsl
>  create mode 100644 tests/data/acpi/q35/FACP.numamem
>  create mode 100644 tests/data/acpi/q35/FACP.numamem.dsl
>  create mode 100644 tests/data/acpi/q35/FACP.tis
>  create mode 100644 tests/data/acpi/q35/FACP.tis.dsl
>  create mode 100644 tests/data/acpi/q35/FACS.acpihmat
>  create mode 100644 tests/data/acpi/q35/FACS.acpihmat.dsl
>  create mode 100644 tests/data/acpi/q35/FACS.bridge
>  create mode 100644 tests/data/acpi/q35/FACS.bridge.dsl
>  create mode 100644 tests/data/acpi/q35/FACS.cphp
>  create mode 100644 tests/data/acpi/q35/FACS.cphp.dsl
>  create mode 100644 tests/data/acpi/q35/FACS.dimmpxm
>  create mode 100644 tests/data/acpi/q35/FACS.dimmpxm.dsl
>  create mode 100644 tests/data/acpi/q35/FACS.dsl
>  create mode 100644 tests/data/acpi/q35/FACS.ipmibt
>  create mode 100644 tests/data/acpi/q35/FACS.ipmibt.dsl
>  create mode 100644 tests/data/acpi/q35/FACS.memhp
>  create mode 100644 tests/data/acpi/q35/FACS.memhp.dsl
>  create mode 100644 tests/data/acpi/q35/FACS.mmio64
>  create mode 100644 tests/data/acpi/q35/FACS.mmio64.dsl
>  create mode 100644 tests/data/acpi/q35/FACS.numamem
>  create mode 100644 tests/data/acpi/q35/FACS.numamem.dsl
>  create mode 100644 tests/data/acpi/q35/FACS.tis
>  create mode 100644 tests/data/acpi/q35/FACS.tis.dsl
>  create mode 100644 tests/data/acpi/q35/HMAT.acpihmat.dsl
>  create mode 100644 tests/data/acpi/q35/HMAT.dsl
>  create mode 100644 tests/data/acpi/q35/HPET.acpihmat
>  create mode 100644 tests/data/acpi/q35/HPET.acpihmat.dsl
>  create mode 100644 tests/data/acpi/q35/HPET.bridge
>  create mode 100644 tests/data/acpi/q35/HPET.bridge.dsl
>  create mode 100644 tests/data/acpi/q35/HPET.cphp
>  create mode 100644 tests/data/acpi/q35/HPET.cphp.dsl
>  create mode 100644 tests/data/acpi/q35/HPET.dimmpxm
>  create mode 100644 tests/data/acpi/q35/HPET.dimmpxm.dsl
>  create mode 100644 tests/data/acpi/q35/HPET.dsl
>  create mode 100644 tests/data/acpi/q35/HPET.ipmibt
>  create mode 100644 tests/data/acpi/q35/HPET.ipmibt.dsl
>  create mode 100644 tests/data/acpi/q35/HPET.memhp
>  create mode 100644 tests/data/acpi/q35/HPET.memhp.dsl
>  create mode 100644 tests/data/acpi/q35/HPET.mmio64
>  create mode 100644 tests/data/acpi/q35/HPET.mmio64.dsl
>  create mode 100644 tests/data/acpi/q35/HPET.numamem
>  create mode 100644 tests/data/acpi/q35/HPET.numamem.dsl
>  create mode 100644 tests/data/acpi/q35/HPET.tis
>  create mode 100644 tests/data/acpi/q35/HPET.tis.dsl
>  create mode 100644 tests/data/acpi/q35/MCFG.acpihmat
>  create mode 100644 tests/data/acpi/q35/MCFG.acpihmat.dsl
>  create mode 100644 tests/data/acpi/q35/MCFG.bridge
>  create mode 100644 tests/data/acpi/q35/MCFG.bridge.dsl
>  create mode 100644 tests/data/acpi/q35/MCFG.cphp
>  create mode 100644 tests/data/acpi/q35/MCFG.cphp.dsl
>  create mode 100644 tests/data/acpi/q35/MCFG.dimmpxm
>  create mode 100644 tests/data/acpi/q35/MCFG.dimmpxm.dsl
>  create mode 100644 tests/data/acpi/q35/MCFG.dsl
>  create mode 100644 tests/data/acpi/q35/MCFG.ipmibt
>  create mode 100644 tests/data/acpi/q35/MCFG.ipmibt.dsl
>  create mode 100644 tests/data/acpi/q35/MCFG.memhp
>  create mode 100644 tests/data/acpi/q35/MCFG.memhp.dsl
>  create mode 100644 tests/data/acpi/q35/MCFG.mmio64
>  create mode 100644 tests/data/acpi/q35/MCFG.mmio64.dsl
>  create mode 100644 tests/data/acpi/q35/MCFG.numamem
>  create mode 100644 tests/data/acpi/q35/MCFG.numamem.dsl
>  create mode 100644 tests/data/acpi/q35/MCFG.tis
>  create mode 100644 tests/data/acpi/q35/MCFG.tis.dsl
>  create mode 100644 tests/data/acpi/q35/NFIT.dimmpxm.dsl
>  create mode 100644 tests/data/acpi/q35/NFIT.dsl
>  create mode 100644 tests/data/acpi/q35/SLIT.cphp.dsl
>  create mode 100644 tests/data/acpi/q35/SLIT.dsl
>  create mode 100644 tests/data/acpi/q35/SLIT.memhp.dsl
>  create mode 100644 tests/data/acpi/q35/SRAT.acpihmat.dsl
>  create mode 100644 tests/data/acpi/q35/SRAT.cphp.dsl
>  create mode 100644 tests/data/acpi/q35/SRAT.dimmpxm.dsl
>  create mode 100644 tests/data/acpi/q35/SRAT.dsl
>  create mode 100644 tests/data/acpi/q35/SRAT.memhp.dsl
>  create mode 100644 tests/data/acpi/q35/SRAT.mmio64.dsl
>  create mode 100644 tests/data/acpi/q35/SRAT.numamem.dsl
>  create mode 100644 tests/data/acpi/q35/SSDT.dsl
>  create mode 100644 tests/data/acpi/q35/TPM2.dsl
>  create mode 100644 tests/data/acpi/q35/TPM2.tis.dsl
>  create mode 100644 tests/data/acpi/q35/WAET.acpihmat
>  create mode 100644 tests/data/acpi/q35/WAET.acpihmat.dsl
>  create mode 100644 tests/data/acpi/q35/WAET.bridge
>  create mode 100644 tests/data/acpi/q35/WAET.bridge.dsl
>  create mode 100644 tests/data/acpi/q35/WAET.cphp
>  create mode 100644 tests/data/acpi/q35/WAET.cphp.dsl
>  create mode 100644 tests/data/acpi/q35/WAET.dimmpxm
>  create mode 100644 tests/data/acpi/q35/WAET.dimmpxm.dsl
>  create mode 100644 tests/data/acpi/q35/WAET.dsl
>  create mode 100644 tests/data/acpi/q35/WAET.ipmibt
>  create mode 100644 tests/data/acpi/q35/WAET.ipmibt.dsl
>  create mode 100644 tests/data/acpi/q35/WAET.memhp
>  create mode 100644 tests/data/acpi/q35/WAET.memhp.dsl
>  create mode 100644 tests/data/acpi/q35/WAET.mmio64
>  create mode 100644 tests/data/acpi/q35/WAET.mmio64.dsl
>  create mode 100644 tests/data/acpi/q35/WAET.numamem
>  create mode 100644 tests/data/acpi/q35/WAET.numamem.dsl
>  create mode 100644 tests/data/acpi/q35/WAET.tis
>  create mode 100644 tests/data/acpi/q35/WAET.tis.dsl
>  create mode 100644 tests/data/acpi/virt/APIC.dsl
>  create mode 100644 tests/data/acpi/virt/APIC.memhp.dsl
>  create mode 100644 tests/data/acpi/virt/APIC.numamem.dsl
>  create mode 100644 tests/data/acpi/virt/DSDT.dsl
>  create mode 100644 tests/data/acpi/virt/DSDT.memhp.dsl
>  create mode 100644 tests/data/acpi/virt/DSDT.numamem.dsl
>  create mode 100644 tests/data/acpi/virt/FACP.dsl
>  create mode 100644 tests/data/acpi/virt/FACP.memhp.dsl
>  create mode 100644 tests/data/acpi/virt/FACP.numamem.dsl
>  create mode 100644 tests/data/acpi/virt/GTDT.dsl
>  create mode 100644 tests/data/acpi/virt/GTDT.memhp.dsl
>  create mode 100644 tests/data/acpi/virt/GTDT.numamem.dsl
>  create mode 100644 tests/data/acpi/virt/MCFG.dsl
>  create mode 100644 tests/data/acpi/virt/MCFG.memhp.dsl
>  create mode 100644 tests/data/acpi/virt/MCFG.numamem.dsl
>  create mode 100644 tests/data/acpi/virt/NFIT.dsl
>  create mode 100644 tests/data/acpi/virt/NFIT.memhp.dsl
>  create mode 100644 tests/data/acpi/virt/SLIT.dsl
>  create mode 100644 tests/data/acpi/virt/SLIT.memhp.dsl
>  create mode 100644 tests/data/acpi/virt/SPCR.dsl
>  create mode 100644 tests/data/acpi/virt/SPCR.memhp.dsl
>  create mode 100644 tests/data/acpi/virt/SPCR.numamem.dsl
>  create mode 100644 tests/data/acpi/virt/SRAT.dsl
>  create mode 100644 tests/data/acpi/virt/SRAT.memhp.dsl
>  create mode 100644 tests/data/acpi/virt/SRAT.numamem.dsl
>  create mode 100644 tests/data/acpi/virt/SSDT.dsl
>  create mode 100644 tests/data/uefi-boot-images/bios-tables-test.x86_64.iso.raw
>  create mode 100644 tests/libqtest.c.orig
>  create mode 100644 tests/qemu-iotests/core.12067
>  create mode 100644 tests/qtest/bios-tables-test-allowed-diff.h.orig
>  create mode 100644 tests/qtest/bios-tables-test-allowed-diff.h.rej
>  create mode 100644 tests/qtest/bios-tables-test.c.orig
>  create mode 100644 tests/qtest/bios-tables-test.c.rej
>  create mode 100755 tests/vhost-user-bridge
>  create mode 100644 tests/vhost-user-bridge.c.orig
>  create mode 100644 tests/vhost-user-test.c.orig
> 



^ permalink raw reply	[flat|nested] 63+ messages in thread

* Re: [PULL v4 00/48] virtio,pc,acpi: fixes, tests
  2020-09-29 11:04 ` Michael S. Tsirkin
@ 2020-09-29 11:07   ` Peter Maydell
  2020-09-29 11:13     ` Michael S. Tsirkin
  0 siblings, 1 reply; 63+ messages in thread
From: Peter Maydell @ 2020-09-29 11:07 UTC (permalink / raw)
  To: Michael S. Tsirkin; +Cc: QEMU Developers

On Tue, 29 Sep 2020 at 12:04, Michael S. Tsirkin <mst@redhat.com> wrote:
>
> On Tue, Sep 29, 2020 at 03:20:52AM -0400, Michael S. Tsirkin wrote:
> > Changes from v3:
> > - dropped reconnect tests
> > - added more fixes, an smbios feature
> >
> > The following changes since commit 74504514b154ebebdff577d88e4bf5c13074e9ed:
> >
> >   Merge remote-tracking branch 'remotes/alistair/tags/pull-register-20200927' into staging (2020-09-28 16:49:10 +0100)
> >
> > are available in the Git repository at:
> >
> >   git://git.kernel.org/pub/scm/virt/kvm/mst/qemu.git tags/for_upstream
> >
> > for you to fetch changes up to 8138405528c29af2a850cd672a8f8a0b33b7ab40:
>
> Ani Sinha pointed out that this included unnecessary files, I pushed out
> a new commit 192d48b4ae4216f0dc40fba35e8edf3b92713aa7 which should be
> ok.

Oops, I just merged 8138405528c before reading this mail. Could
you send another pullreq which makes the fixes as changes to master,
please?

thanks
-- PMM


^ permalink raw reply	[flat|nested] 63+ messages in thread

* Re: [PULL v4 00/48] virtio,pc,acpi: fixes, tests
  2020-09-29 11:07   ` Peter Maydell
@ 2020-09-29 11:13     ` Michael S. Tsirkin
  2020-10-01  9:16       ` Laszlo Ersek
  0 siblings, 1 reply; 63+ messages in thread
From: Michael S. Tsirkin @ 2020-09-29 11:13 UTC (permalink / raw)
  To: Peter Maydell; +Cc: QEMU Developers

On Tue, Sep 29, 2020 at 12:07:01PM +0100, Peter Maydell wrote:
> On Tue, 29 Sep 2020 at 12:04, Michael S. Tsirkin <mst@redhat.com> wrote:
> >
> > On Tue, Sep 29, 2020 at 03:20:52AM -0400, Michael S. Tsirkin wrote:
> > > Changes from v3:
> > > - dropped reconnect tests
> > > - added more fixes, an smbios feature
> > >
> > > The following changes since commit 74504514b154ebebdff577d88e4bf5c13074e9ed:
> > >
> > >   Merge remote-tracking branch 'remotes/alistair/tags/pull-register-20200927' into staging (2020-09-28 16:49:10 +0100)
> > >
> > > are available in the Git repository at:
> > >
> > >   git://git.kernel.org/pub/scm/virt/kvm/mst/qemu.git tags/for_upstream
> > >
> > > for you to fetch changes up to 8138405528c29af2a850cd672a8f8a0b33b7ab40:
> >
> > Ani Sinha pointed out that this included unnecessary files, I pushed out
> > a new commit 192d48b4ae4216f0dc40fba35e8edf3b92713aa7 which should be
> > ok.
> 
> Oops, I just merged 8138405528c before reading this mail. Could
> you send another pullreq which makes the fixes as changes to master,
> please?
> 
> thanks
> -- PMM

Done. Sorry about making this mess.

-- 
MST



^ permalink raw reply	[flat|nested] 63+ messages in thread

* Re: [PULL v4 00/48] virtio,pc,acpi: fixes, tests
  2020-09-29 11:13     ` Michael S. Tsirkin
@ 2020-10-01  9:16       ` Laszlo Ersek
  0 siblings, 0 replies; 63+ messages in thread
From: Laszlo Ersek @ 2020-10-01  9:16 UTC (permalink / raw)
  To: Michael S. Tsirkin, Peter Maydell; +Cc: QEMU Developers

On 09/29/20 13:13, Michael S. Tsirkin wrote:
> On Tue, Sep 29, 2020 at 12:07:01PM +0100, Peter Maydell wrote:
>> On Tue, 29 Sep 2020 at 12:04, Michael S. Tsirkin <mst@redhat.com> wrote:
>>>
>>> On Tue, Sep 29, 2020 at 03:20:52AM -0400, Michael S. Tsirkin wrote:
>>>> Changes from v3:
>>>> - dropped reconnect tests
>>>> - added more fixes, an smbios feature
>>>>
>>>> The following changes since commit 74504514b154ebebdff577d88e4bf5c13074e9ed:
>>>>
>>>>   Merge remote-tracking branch 'remotes/alistair/tags/pull-register-20200927' into staging (2020-09-28 16:49:10 +0100)
>>>>
>>>> are available in the Git repository at:
>>>>
>>>>   git://git.kernel.org/pub/scm/virt/kvm/mst/qemu.git tags/for_upstream
>>>>
>>>> for you to fetch changes up to 8138405528c29af2a850cd672a8f8a0b33b7ab40:
>>>
>>> Ani Sinha pointed out that this included unnecessary files, I pushed out
>>> a new commit 192d48b4ae4216f0dc40fba35e8edf3b92713aa7 which should be
>>> ok.
>>
>> Oops, I just merged 8138405528c before reading this mail. Could
>> you send another pullreq which makes the fixes as changes to master,
>> please?
>>
>> thanks
>> -- PMM
> 
> Done. Sorry about making this mess.
> 

This was a large pullreq; on my end, I'm thankful that Igor's patches
are now upstream. Also, commit f142e4ede728 ("tests/acpi: drop
unnecessary files", 2020-09-29) exists now.

Thanks!
Laszlo



^ permalink raw reply	[flat|nested] 63+ messages in thread

* Re: [PULL v4 44/48] piix4: don't reserve hw resources when hotplug is off globally
  2020-09-29  7:22 ` [PULL v4 44/48] piix4: don't reserve hw resources when hotplug is off globally Michael S. Tsirkin
@ 2020-11-07 10:10   ` Philippe Mathieu-Daudé
  2020-11-07 11:14     ` Philippe Mathieu-Daudé
  2020-11-07 12:22     ` Ani Sinha
  0 siblings, 2 replies; 63+ messages in thread
From: Philippe Mathieu-Daudé @ 2020-11-07 10:10 UTC (permalink / raw)
  To: Michael S. Tsirkin, qemu-devel, Ani Sinha
  Cc: Peter Maydell, Eduardo Habkost, Aleksandar Markovic,
	Paolo Bonzini, Igor Mammedov, Aurelien Jarno, Richard Henderson

Hi,

On 9/29/20 9:22 AM, Michael S. Tsirkin wrote:
> From: Ani Sinha <ani@anisinha.ca>
> 
> When acpi hotplug is turned off for both root pci bus as well as for pci
> bridges, we should not generate the related ACPI code for DSDT table or
> initialize related hw ports or reserve hw resources. This change makes
> sure all those operations are turned off in the case ACPI pci hotplug is
> off globally.
> 
> In this change, we also make sure ACPI code for the PCNT method are only
> added when bsel is enabled for the corresponding pci bus or bridge hotplug
> is turned on.

I'm trying to understand the following build failure using gcc 9.3.0
on Ubuntu:

[2567/3684] Compiling C object
libqemu-x86_64-softmmu.fa.p/hw_i386_acpi-build.c.o
FAILED: libqemu-x86_64-softmmu.fa.p/hw_i386_acpi-build.c.o
../hw/i386/acpi-build.c: In function 'build_append_pci_bus_devices':
../hw/i386/acpi-build.c:496:9: error: 'method' may be used uninitialized
in this function [-Werror=maybe-uninitialized]
  496 |         aml_append(parent_scope, method);
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cc1: all warnings being treated as errors

> 
> As q35 machines do not use bsel for it's pci buses at this point in time, this
> change affects DSDT acpi table for q35 machines as well. Therefore, we will
> also need to commit the updated golden master DSDT table acpi binary blobs as
> well. Following is the list of blobs which needs updating:
> 
>  tests/data/acpi/q35/DSDT
>  tests/data/acpi/q35/DSDT.acpihmat
>  tests/data/acpi/q35/DSDT.bridge
>  tests/data/acpi/q35/DSDT.cphp
>  tests/data/acpi/q35/DSDT.dimmpxm
>  tests/data/acpi/q35/DSDT.ipmibt
>  tests/data/acpi/q35/DSDT.memhp
>  tests/data/acpi/q35/DSDT.mmio64
>  tests/data/acpi/q35/DSDT.numamem
>  tests/data/acpi/q35/DSDT.tis
> 
> These tables are updated in the following commit. Without the updated table
> blobs, the unit tests would fail with this patch.
> 
> Signed-off-by: Ani Sinha <ani@anisinha.ca>
> Reviewed-by: Igor Mammedov <imammedo@redhat.com>
> Message-Id: <20200918084111.15339-11-ani@anisinha.ca>
> Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
> ---
>  hw/acpi/piix4.c      |  6 ++++--
>  hw/i386/acpi-build.c | 25 ++++++++++++++++++-------
>  2 files changed, 22 insertions(+), 9 deletions(-)
> 
> diff --git a/hw/acpi/piix4.c b/hw/acpi/piix4.c
> index 832f8fba82..894d357f8c 100644
> --- a/hw/acpi/piix4.c
> +++ b/hw/acpi/piix4.c
> @@ -596,8 +596,10 @@ static void piix4_acpi_system_hot_add_init(MemoryRegion *parent,
>                            "acpi-gpe0", GPE_LEN);
>      memory_region_add_subregion(parent, GPE_BASE, &s->io_gpe);
>  
> -    acpi_pcihp_init(OBJECT(s), &s->acpi_pci_hotplug, bus, parent,
> -                    s->use_acpi_hotplug_bridge);
> +    if (s->use_acpi_hotplug_bridge || s->use_acpi_root_pci_hotplug) {
> +        acpi_pcihp_init(OBJECT(s), &s->acpi_pci_hotplug, bus, parent,
> +                        s->use_acpi_hotplug_bridge);
> +    }
>  
>      s->cpu_hotplug_legacy = true;
>      object_property_add_bool(OBJECT(s), "cpu-hotplug-legacy",
> diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c
> index 2b17843837..8d14e4667a 100644
> --- a/hw/i386/acpi-build.c
> +++ b/hw/i386/acpi-build.c
> @@ -96,6 +96,7 @@ typedef struct AcpiPmInfo {
>      bool s4_disabled;
>      bool pcihp_bridge_en;
>      bool smi_on_cpuhp;
> +    bool pcihp_root_en;
>      uint8_t s4_val;
>      AcpiFadtData fadt;
>      uint16_t cpu_hp_io_base;
> @@ -251,6 +252,9 @@ static void acpi_get_pm_info(MachineState *machine, AcpiPmInfo *pm)
>      pm->pcihp_bridge_en =
>          object_property_get_bool(obj, "acpi-pci-hotplug-with-bridge-support",
>                                   NULL);
> +    pm->pcihp_root_en =
> +        object_property_get_bool(obj, "acpi-root-pci-hotplug",
> +                                 NULL);
>  }
>  
>  static void acpi_get_misc_info(AcpiMiscInfo *info)
> @@ -456,10 +460,12 @@ static void build_append_pci_bus_devices(Aml *parent_scope, PCIBus *bus,
>      }
>  
>      /* Append PCNT method to notify about events on local and child buses.
> -     * Add unconditionally for root since DSDT expects it.
> +     * Add this method for root bus only when hotplug is enabled since DSDT
> +     * expects it.
>       */
> -    method = aml_method("PCNT", 0, AML_NOTSERIALIZED);
> -
> +    if (bsel || pcihp_bridge_en) {
> +        method = aml_method("PCNT", 0, AML_NOTSERIALIZED);
> +    }

build_append_pci_bus_devices() is not easy to follow and could certainly
benefit from a refactor.

So here, before 'method' was always reinitialized. Now not always,
so it can be any value set in the big for() loop before...

Something is definitively wrong.

>      /* If bus supports hotplug select it and notify about local events */
>      if (bsel) {
>          uint64_t bsel_val = qnum_get_uint(qobject_to(QNum, bsel));
> @@ -485,7 +491,10 @@ static void build_append_pci_bus_devices(Aml *parent_scope, PCIBus *bus,
>              aml_append(method, aml_name("^S%.02X.PCNT", devfn));
>          }
>      }
> -    aml_append(parent_scope, method);
> +
> +    if (bsel || pcihp_bridge_en) {
> +        aml_append(parent_scope, method);
> +    }
>      qobject_unref(bsel);
>  }
>  
> @@ -1510,7 +1519,9 @@ build_dsdt(GArray *table_data, BIOSLinker *linker,
>          build_hpet_aml(dsdt);
>          build_piix4_isa_bridge(dsdt);
>          build_isa_devices_aml(dsdt);
> -        build_piix4_pci_hotplug(dsdt);
> +        if (pm->pcihp_bridge_en || pm->pcihp_root_en) {
> +            build_piix4_pci_hotplug(dsdt);
> +        }
>          build_piix4_pci0_int(dsdt);
>      } else {
>          sb_scope = aml_scope("_SB");
> @@ -1579,7 +1590,7 @@ build_dsdt(GArray *table_data, BIOSLinker *linker,
>      {
>          aml_append(scope, aml_name_decl("_HID", aml_string("ACPI0006")));
>  
> -        if (misc->is_piix4) {
> +        if (misc->is_piix4 && (pm->pcihp_bridge_en || pm->pcihp_root_en)) {
>              method = aml_method("_E01", 0, AML_NOTSERIALIZED);
>              aml_append(method,
>                  aml_acquire(aml_name("\\_SB.PCI0.BLCK"), 0xFFFF));
> @@ -1731,7 +1742,7 @@ build_dsdt(GArray *table_data, BIOSLinker *linker,
>      crs_range_set_free(&crs_range_set);
>  
>      /* reserve PCIHP resources */
> -    if (pm->pcihp_io_len) {
> +    if (pm->pcihp_io_len && (pm->pcihp_bridge_en || pm->pcihp_root_en)) {
>          dev = aml_device("PHPR");
>          aml_append(dev, aml_name_decl("_HID", aml_string("PNP0A06")));
>          aml_append(dev,
> 



^ permalink raw reply	[flat|nested] 63+ messages in thread

* Re: [PULL v4 44/48] piix4: don't reserve hw resources when hotplug is off globally
  2020-11-07 10:10   ` Philippe Mathieu-Daudé
@ 2020-11-07 11:14     ` Philippe Mathieu-Daudé
  2020-11-07 12:22     ` Ani Sinha
  1 sibling, 0 replies; 63+ messages in thread
From: Philippe Mathieu-Daudé @ 2020-11-07 11:14 UTC (permalink / raw)
  To: Michael S. Tsirkin, qemu-devel, Ani Sinha
  Cc: Peter Maydell, Eduardo Habkost, Aleksandar Markovic,
	Paolo Bonzini, Igor Mammedov, Aurelien Jarno, Richard Henderson

On 11/7/20 11:10 AM, Philippe Mathieu-Daudé wrote:
> Hi,
> 
> On 9/29/20 9:22 AM, Michael S. Tsirkin wrote:
>> From: Ani Sinha <ani@anisinha.ca>
>>
>> When acpi hotplug is turned off for both root pci bus as well as for pci
>> bridges, we should not generate the related ACPI code for DSDT table or
>> initialize related hw ports or reserve hw resources. This change makes
>> sure all those operations are turned off in the case ACPI pci hotplug is
>> off globally.
>>
>> In this change, we also make sure ACPI code for the PCNT method are only
>> added when bsel is enabled for the corresponding pci bus or bridge hotplug
>> is turned on.
> 
> I'm trying to understand the following build failure using gcc 9.3.0
> on Ubuntu:
> 
> [2567/3684] Compiling C object
> libqemu-x86_64-softmmu.fa.p/hw_i386_acpi-build.c.o
> FAILED: libqemu-x86_64-softmmu.fa.p/hw_i386_acpi-build.c.o
> ../hw/i386/acpi-build.c: In function 'build_append_pci_bus_devices':
> ../hw/i386/acpi-build.c:496:9: error: 'method' may be used uninitialized
> in this function [-Werror=maybe-uninitialized]
>   496 |         aml_append(parent_scope, method);
>       |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> cc1: all warnings being treated as errors
> 
>>
>> As q35 machines do not use bsel for it's pci buses at this point in time, this
>> change affects DSDT acpi table for q35 machines as well. Therefore, we will
>> also need to commit the updated golden master DSDT table acpi binary blobs as
>> well. Following is the list of blobs which needs updating:
>>
>>  tests/data/acpi/q35/DSDT
>>  tests/data/acpi/q35/DSDT.acpihmat
>>  tests/data/acpi/q35/DSDT.bridge
>>  tests/data/acpi/q35/DSDT.cphp
>>  tests/data/acpi/q35/DSDT.dimmpxm
>>  tests/data/acpi/q35/DSDT.ipmibt
>>  tests/data/acpi/q35/DSDT.memhp
>>  tests/data/acpi/q35/DSDT.mmio64
>>  tests/data/acpi/q35/DSDT.numamem
>>  tests/data/acpi/q35/DSDT.tis
>>
>> These tables are updated in the following commit. Without the updated table
>> blobs, the unit tests would fail with this patch.
>>
>> Signed-off-by: Ani Sinha <ani@anisinha.ca>
>> Reviewed-by: Igor Mammedov <imammedo@redhat.com>
>> Message-Id: <20200918084111.15339-11-ani@anisinha.ca>
>> Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
>> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
>> ---
>>  hw/acpi/piix4.c      |  6 ++++--
>>  hw/i386/acpi-build.c | 25 ++++++++++++++++++-------
>>  2 files changed, 22 insertions(+), 9 deletions(-)
>>
>> diff --git a/hw/acpi/piix4.c b/hw/acpi/piix4.c
>> index 832f8fba82..894d357f8c 100644
>> --- a/hw/acpi/piix4.c
>> +++ b/hw/acpi/piix4.c
>> @@ -596,8 +596,10 @@ static void piix4_acpi_system_hot_add_init(MemoryRegion *parent,
>>                            "acpi-gpe0", GPE_LEN);
>>      memory_region_add_subregion(parent, GPE_BASE, &s->io_gpe);
>>  
>> -    acpi_pcihp_init(OBJECT(s), &s->acpi_pci_hotplug, bus, parent,
>> -                    s->use_acpi_hotplug_bridge);
>> +    if (s->use_acpi_hotplug_bridge || s->use_acpi_root_pci_hotplug) {
>> +        acpi_pcihp_init(OBJECT(s), &s->acpi_pci_hotplug, bus, parent,
>> +                        s->use_acpi_hotplug_bridge);
>> +    }
>>  
>>      s->cpu_hotplug_legacy = true;
>>      object_property_add_bool(OBJECT(s), "cpu-hotplug-legacy",
>> diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c
>> index 2b17843837..8d14e4667a 100644
>> --- a/hw/i386/acpi-build.c
>> +++ b/hw/i386/acpi-build.c
>> @@ -96,6 +96,7 @@ typedef struct AcpiPmInfo {
>>      bool s4_disabled;
>>      bool pcihp_bridge_en;
>>      bool smi_on_cpuhp;
>> +    bool pcihp_root_en;
>>      uint8_t s4_val;
>>      AcpiFadtData fadt;
>>      uint16_t cpu_hp_io_base;
>> @@ -251,6 +252,9 @@ static void acpi_get_pm_info(MachineState *machine, AcpiPmInfo *pm)
>>      pm->pcihp_bridge_en =
>>          object_property_get_bool(obj, "acpi-pci-hotplug-with-bridge-support",
>>                                   NULL);
>> +    pm->pcihp_root_en =
>> +        object_property_get_bool(obj, "acpi-root-pci-hotplug",
>> +                                 NULL);
>>  }
>>  
>>  static void acpi_get_misc_info(AcpiMiscInfo *info)
>> @@ -456,10 +460,12 @@ static void build_append_pci_bus_devices(Aml *parent_scope, PCIBus *bus,
>>      }
>>  
>>      /* Append PCNT method to notify about events on local and child buses.
>> -     * Add unconditionally for root since DSDT expects it.
>> +     * Add this method for root bus only when hotplug is enabled since DSDT
>> +     * expects it.
>>       */
>> -    method = aml_method("PCNT", 0, AML_NOTSERIALIZED);
>> -
>> +    if (bsel || pcihp_bridge_en) {
>> +        method = aml_method("PCNT", 0, AML_NOTSERIALIZED);
>> +    }
> 
> build_append_pci_bus_devices() is not easy to follow and could certainly
> benefit from a refactor.
> 
> So here, before 'method' was always reinitialized. Now not always,
> so it can be any value set in the big for() loop before...
> 
> Something is definitively wrong.

Suggested fix:
https://lists.gnu.org/archive/html/qemu-devel/2020-11/msg01986.html



^ permalink raw reply	[flat|nested] 63+ messages in thread

* Re: [PULL v4 44/48] piix4: don't reserve hw resources when hotplug is off globally
  2020-11-07 10:10   ` Philippe Mathieu-Daudé
  2020-11-07 11:14     ` Philippe Mathieu-Daudé
@ 2020-11-07 12:22     ` Ani Sinha
  2020-11-07 14:18       ` Philippe Mathieu-Daudé
  1 sibling, 1 reply; 63+ messages in thread
From: Ani Sinha @ 2020-11-07 12:22 UTC (permalink / raw)
  To: Philippe Mathieu-Daudé
  Cc: Peter Maydell, Eduardo Habkost, Michael S. Tsirkin,
	QEMU Developers, Aleksandar Markovic, Igor Mammedov,
	Paolo Bonzini, Aurelien Jarno, Richard Henderson

On Sat, Nov 7, 2020 at 3:40 PM Philippe Mathieu-Daudé <philmd@redhat.com> wrote:
>
> Hi,
>
> On 9/29/20 9:22 AM, Michael S. Tsirkin wrote:
> > From: Ani Sinha <ani@anisinha.ca>
> >
> > When acpi hotplug is turned off for both root pci bus as well as for pci
> > bridges, we should not generate the related ACPI code for DSDT table or
> > initialize related hw ports or reserve hw resources. This change makes
> > sure all those operations are turned off in the case ACPI pci hotplug is
> > off globally.
> >
> > In this change, we also make sure ACPI code for the PCNT method are only
> > added when bsel is enabled for the corresponding pci bus or bridge hotplug
> > is turned on.
>
> I'm trying to understand the following build failure using gcc 9.3.0
> on Ubuntu:
>
> [2567/3684] Compiling C object
> libqemu-x86_64-softmmu.fa.p/hw_i386_acpi-build.c.o
> FAILED: libqemu-x86_64-softmmu.fa.p/hw_i386_acpi-build.c.o
> ../hw/i386/acpi-build.c: In function 'build_append_pci_bus_devices':
> ../hw/i386/acpi-build.c:496:9: error: 'method' may be used uninitialized
> in this function [-Werror=maybe-uninitialized]
>   496 |         aml_append(parent_scope, method);
>       |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> cc1: all warnings being treated as errors
>
> >
> > As q35 machines do not use bsel for it's pci buses at this point in time, this
> > change affects DSDT acpi table for q35 machines as well. Therefore, we will
> > also need to commit the updated golden master DSDT table acpi binary blobs as
> > well. Following is the list of blobs which needs updating:
> >
> >  tests/data/acpi/q35/DSDT
> >  tests/data/acpi/q35/DSDT.acpihmat
> >  tests/data/acpi/q35/DSDT.bridge
> >  tests/data/acpi/q35/DSDT.cphp
> >  tests/data/acpi/q35/DSDT.dimmpxm
> >  tests/data/acpi/q35/DSDT.ipmibt
> >  tests/data/acpi/q35/DSDT.memhp
> >  tests/data/acpi/q35/DSDT.mmio64
> >  tests/data/acpi/q35/DSDT.numamem
> >  tests/data/acpi/q35/DSDT.tis
> >
> > These tables are updated in the following commit. Without the updated table
> > blobs, the unit tests would fail with this patch.
> >
> > Signed-off-by: Ani Sinha <ani@anisinha.ca>
> > Reviewed-by: Igor Mammedov <imammedo@redhat.com>
> > Message-Id: <20200918084111.15339-11-ani@anisinha.ca>
> > Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
> > Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
> > ---
> >  hw/acpi/piix4.c      |  6 ++++--
> >  hw/i386/acpi-build.c | 25 ++++++++++++++++++-------
> >  2 files changed, 22 insertions(+), 9 deletions(-)
> >
> > diff --git a/hw/acpi/piix4.c b/hw/acpi/piix4.c
> > index 832f8fba82..894d357f8c 100644
> > --- a/hw/acpi/piix4.c
> > +++ b/hw/acpi/piix4.c
> > @@ -596,8 +596,10 @@ static void piix4_acpi_system_hot_add_init(MemoryRegion *parent,
> >                            "acpi-gpe0", GPE_LEN);
> >      memory_region_add_subregion(parent, GPE_BASE, &s->io_gpe);
> >
> > -    acpi_pcihp_init(OBJECT(s), &s->acpi_pci_hotplug, bus, parent,
> > -                    s->use_acpi_hotplug_bridge);
> > +    if (s->use_acpi_hotplug_bridge || s->use_acpi_root_pci_hotplug) {
> > +        acpi_pcihp_init(OBJECT(s), &s->acpi_pci_hotplug, bus, parent,
> > +                        s->use_acpi_hotplug_bridge);
> > +    }
> >
> >      s->cpu_hotplug_legacy = true;
> >      object_property_add_bool(OBJECT(s), "cpu-hotplug-legacy",
> > diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c
> > index 2b17843837..8d14e4667a 100644
> > --- a/hw/i386/acpi-build.c
> > +++ b/hw/i386/acpi-build.c
> > @@ -96,6 +96,7 @@ typedef struct AcpiPmInfo {
> >      bool s4_disabled;
> >      bool pcihp_bridge_en;
> >      bool smi_on_cpuhp;
> > +    bool pcihp_root_en;
> >      uint8_t s4_val;
> >      AcpiFadtData fadt;
> >      uint16_t cpu_hp_io_base;
> > @@ -251,6 +252,9 @@ static void acpi_get_pm_info(MachineState *machine, AcpiPmInfo *pm)
> >      pm->pcihp_bridge_en =
> >          object_property_get_bool(obj, "acpi-pci-hotplug-with-bridge-support",
> >                                   NULL);
> > +    pm->pcihp_root_en =
> > +        object_property_get_bool(obj, "acpi-root-pci-hotplug",
> > +                                 NULL);
> >  }
> >
> >  static void acpi_get_misc_info(AcpiMiscInfo *info)
> > @@ -456,10 +460,12 @@ static void build_append_pci_bus_devices(Aml *parent_scope, PCIBus *bus,
> >      }
> >
> >      /* Append PCNT method to notify about events on local and child buses.
> > -     * Add unconditionally for root since DSDT expects it.
> > +     * Add this method for root bus only when hotplug is enabled since DSDT
> > +     * expects it.
> >       */
> > -    method = aml_method("PCNT", 0, AML_NOTSERIALIZED);
> > -
> > +    if (bsel || pcihp_bridge_en) {
> > +        method = aml_method("PCNT", 0, AML_NOTSERIALIZED);
> > +    }
>
> build_append_pci_bus_devices() is not easy to follow and could certainly
> benefit from a refactor.

Hmm, ok will do that in my spare time.

>
> So here, before 'method' was always reinitialized. Now not always,
> so it can be any value set in the big for() loop before...

In line 467 above, method is initialized when bsel is available or
pcihp is enabled. In line 496, it is appended to the parent scope only
under those conditions as well. Basically, in hunks

+    if (bsel || pcihp_bridge_en) {
+        method = aml_method("PCNT", 0, AML_NOTSERIALIZED);
+    }

and
+
+    if (bsel || pcihp_bridge_en) {
+        aml_append(parent_scope, method);
+    }

the conditions are exactly the same.

Hence, I see no contradiction. To satisfy the compiler, one could do this:

diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c
index 4f66642..79b86d4 100644
--- a/hw/i386/acpi-build.c
+++ b/hw/i386/acpi-build.c
@@ -349,7 +349,7 @@ static void build_append_pcihp_notify_entry(Aml
*method, int slot)
 static void build_append_pci_bus_devices(Aml *parent_scope, PCIBus *bus,
                                          bool pcihp_bridge_en)
 {
-    Aml *dev, *notify_method = NULL, *method;
+    Aml *dev, *notify_method = NULL, *method = NULL;
     QObject *bsel;
     PCIBus *sec;
     int i;
@@ -492,7 +492,7 @@ static void build_append_pci_bus_devices(Aml
*parent_scope, PCIBus *bus,
         }
     }
-    if (bsel || pcihp_bridge_en) {
+    if (method) {
         aml_append(parent_scope, method);
     }
     qobject_unref(bsel);




>
> Something is definitively wrong.
>
> >      /* If bus supports hotplug select it and notify about local events */
> >      if (bsel) {
> >          uint64_t bsel_val = qnum_get_uint(qobject_to(QNum, bsel));
> > @@ -485,7 +491,10 @@ static void build_append_pci_bus_devices(Aml *parent_scope, PCIBus *bus,
> >              aml_append(method, aml_name("^S%.02X.PCNT", devfn));
> >          }
> >      }
> > -    aml_append(parent_scope, method);
> > +
> > +    if (bsel || pcihp_bridge_en) {
> > +        aml_append(parent_scope, method);
> > +    }
> >      qobject_unref(bsel);
> >  }
> >
> > @@ -1510,7 +1519,9 @@ build_dsdt(GArray *table_data, BIOSLinker *linker,
> >          build_hpet_aml(dsdt);
> >          build_piix4_isa_bridge(dsdt);
> >          build_isa_devices_aml(dsdt);
> > -        build_piix4_pci_hotplug(dsdt);
> > +        if (pm->pcihp_bridge_en || pm->pcihp_root_en) {
> > +            build_piix4_pci_hotplug(dsdt);
> > +        }
> >          build_piix4_pci0_int(dsdt);
> >      } else {
> >          sb_scope = aml_scope("_SB");
> > @@ -1579,7 +1590,7 @@ build_dsdt(GArray *table_data, BIOSLinker *linker,
> >      {
> >          aml_append(scope, aml_name_decl("_HID", aml_string("ACPI0006")));
> >
> > -        if (misc->is_piix4) {
> > +        if (misc->is_piix4 && (pm->pcihp_bridge_en || pm->pcihp_root_en)) {
> >              method = aml_method("_E01", 0, AML_NOTSERIALIZED);
> >              aml_append(method,
> >                  aml_acquire(aml_name("\\_SB.PCI0.BLCK"), 0xFFFF));
> > @@ -1731,7 +1742,7 @@ build_dsdt(GArray *table_data, BIOSLinker *linker,
> >      crs_range_set_free(&crs_range_set);
> >
> >      /* reserve PCIHP resources */
> > -    if (pm->pcihp_io_len) {
> > +    if (pm->pcihp_io_len && (pm->pcihp_bridge_en || pm->pcihp_root_en)) {
> >          dev = aml_device("PHPR");
> >          aml_append(dev, aml_name_decl("_HID", aml_string("PNP0A06")));
> >          aml_append(dev,
> >
>


^ permalink raw reply related	[flat|nested] 63+ messages in thread

* Re: [PULL v4 44/48] piix4: don't reserve hw resources when hotplug is off globally
  2020-11-07 12:22     ` Ani Sinha
@ 2020-11-07 14:18       ` Philippe Mathieu-Daudé
  2020-11-07 14:28         ` Michael S. Tsirkin
  0 siblings, 1 reply; 63+ messages in thread
From: Philippe Mathieu-Daudé @ 2020-11-07 14:18 UTC (permalink / raw)
  To: Ani Sinha
  Cc: Peter Maydell, Eduardo Habkost, Michael S. Tsirkin,
	QEMU Developers, Aleksandar Markovic, Igor Mammedov,
	Paolo Bonzini, Aurelien Jarno, Richard Henderson

On 11/7/20 1:22 PM, Ani Sinha wrote:
> On Sat, Nov 7, 2020 at 3:40 PM Philippe Mathieu-Daudé <philmd@redhat.com> wrote:
>>
>> Hi,
>>
>> On 9/29/20 9:22 AM, Michael S. Tsirkin wrote:
>>> From: Ani Sinha <ani@anisinha.ca>
>>>
>>> When acpi hotplug is turned off for both root pci bus as well as for pci
>>> bridges, we should not generate the related ACPI code for DSDT table or
>>> initialize related hw ports or reserve hw resources. This change makes
>>> sure all those operations are turned off in the case ACPI pci hotplug is
>>> off globally.
>>>
>>> In this change, we also make sure ACPI code for the PCNT method are only
>>> added when bsel is enabled for the corresponding pci bus or bridge hotplug
>>> is turned on.
>>
>> I'm trying to understand the following build failure using gcc 9.3.0
>> on Ubuntu:
>>
>> [2567/3684] Compiling C object
>> libqemu-x86_64-softmmu.fa.p/hw_i386_acpi-build.c.o
>> FAILED: libqemu-x86_64-softmmu.fa.p/hw_i386_acpi-build.c.o
>> ../hw/i386/acpi-build.c: In function 'build_append_pci_bus_devices':
>> ../hw/i386/acpi-build.c:496:9: error: 'method' may be used uninitialized
>> in this function [-Werror=maybe-uninitialized]
>>   496 |         aml_append(parent_scope, method);
>>       |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> cc1: all warnings being treated as errors
>>
...
>>>  static void acpi_get_misc_info(AcpiMiscInfo *info)
>>> @@ -456,10 +460,12 @@ static void build_append_pci_bus_devices(Aml *parent_scope, PCIBus *bus,
>>>      }
>>>
>>>      /* Append PCNT method to notify about events on local and child buses.
>>> -     * Add unconditionally for root since DSDT expects it.
>>> +     * Add this method for root bus only when hotplug is enabled since DSDT
>>> +     * expects it.
>>>       */
>>> -    method = aml_method("PCNT", 0, AML_NOTSERIALIZED);
>>> -
>>> +    if (bsel || pcihp_bridge_en) {
>>> +        method = aml_method("PCNT", 0, AML_NOTSERIALIZED);
>>> +    }
>>
>> build_append_pci_bus_devices() is not easy to follow and could certainly
>> benefit from a refactor.
> 
> Hmm, ok will do that in my spare time.
> 
>>
>> So here, before 'method' was always reinitialized. Now not always,
>> so it can be any value set in the big for() loop before...
> 
> In line 467 above, method is initialized when bsel is available or
> pcihp is enabled. In line 496, it is appended to the parent scope only
> under those conditions as well. Basically, in hunks
> 
> +    if (bsel || pcihp_bridge_en) {
> +        method = aml_method("PCNT", 0, AML_NOTSERIALIZED);
> +    }
> 
> and
> +
> +    if (bsel || pcihp_bridge_en) {
> +        aml_append(parent_scope, method);
> +    }
> 
> the conditions are exactly the same.

The problem is in the (!bsel && !pcihp_bridge_en) case,
what 'method' is used there?



^ permalink raw reply	[flat|nested] 63+ messages in thread

* Re: [PULL v4 44/48] piix4: don't reserve hw resources when hotplug is off globally
  2020-11-07 14:18       ` Philippe Mathieu-Daudé
@ 2020-11-07 14:28         ` Michael S. Tsirkin
  0 siblings, 0 replies; 63+ messages in thread
From: Michael S. Tsirkin @ 2020-11-07 14:28 UTC (permalink / raw)
  To: Philippe Mathieu-Daudé
  Cc: Peter Maydell, Eduardo Habkost, QEMU Developers,
	Aleksandar Markovic, Igor Mammedov, Ani Sinha, Paolo Bonzini,
	Aurelien Jarno, Richard Henderson

On Sat, Nov 07, 2020 at 03:18:24PM +0100, Philippe Mathieu-Daudé wrote:
> On 11/7/20 1:22 PM, Ani Sinha wrote:
> > On Sat, Nov 7, 2020 at 3:40 PM Philippe Mathieu-Daudé <philmd@redhat.com> wrote:
> >>
> >> Hi,
> >>
> >> On 9/29/20 9:22 AM, Michael S. Tsirkin wrote:
> >>> From: Ani Sinha <ani@anisinha.ca>
> >>>
> >>> When acpi hotplug is turned off for both root pci bus as well as for pci
> >>> bridges, we should not generate the related ACPI code for DSDT table or
> >>> initialize related hw ports or reserve hw resources. This change makes
> >>> sure all those operations are turned off in the case ACPI pci hotplug is
> >>> off globally.
> >>>
> >>> In this change, we also make sure ACPI code for the PCNT method are only
> >>> added when bsel is enabled for the corresponding pci bus or bridge hotplug
> >>> is turned on.
> >>
> >> I'm trying to understand the following build failure using gcc 9.3.0
> >> on Ubuntu:
> >>
> >> [2567/3684] Compiling C object
> >> libqemu-x86_64-softmmu.fa.p/hw_i386_acpi-build.c.o
> >> FAILED: libqemu-x86_64-softmmu.fa.p/hw_i386_acpi-build.c.o
> >> ../hw/i386/acpi-build.c: In function 'build_append_pci_bus_devices':
> >> ../hw/i386/acpi-build.c:496:9: error: 'method' may be used uninitialized
> >> in this function [-Werror=maybe-uninitialized]
> >>   496 |         aml_append(parent_scope, method);
> >>       |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> >> cc1: all warnings being treated as errors
> >>
> ...
> >>>  static void acpi_get_misc_info(AcpiMiscInfo *info)
> >>> @@ -456,10 +460,12 @@ static void build_append_pci_bus_devices(Aml *parent_scope, PCIBus *bus,
> >>>      }
> >>>
> >>>      /* Append PCNT method to notify about events on local and child buses.
> >>> -     * Add unconditionally for root since DSDT expects it.
> >>> +     * Add this method for root bus only when hotplug is enabled since DSDT
> >>> +     * expects it.
> >>>       */
> >>> -    method = aml_method("PCNT", 0, AML_NOTSERIALIZED);
> >>> -
> >>> +    if (bsel || pcihp_bridge_en) {
> >>> +        method = aml_method("PCNT", 0, AML_NOTSERIALIZED);
> >>> +    }
> >>
> >> build_append_pci_bus_devices() is not easy to follow and could certainly
> >> benefit from a refactor.
> > 
> > Hmm, ok will do that in my spare time.
> > 
> >>
> >> So here, before 'method' was always reinitialized. Now not always,
> >> so it can be any value set in the big for() loop before...
> > 
> > In line 467 above, method is initialized when bsel is available or
> > pcihp is enabled. In line 496, it is appended to the parent scope only
> > under those conditions as well. Basically, in hunks
> > 
> > +    if (bsel || pcihp_bridge_en) {
> > +        method = aml_method("PCNT", 0, AML_NOTSERIALIZED);
> > +    }
> > 
> > and
> > +
> > +    if (bsel || pcihp_bridge_en) {
> > +        aml_append(parent_scope, method);
> > +    }
> > 
> > the conditions are exactly the same.
> 
> The problem is in the (!bsel && !pcihp_bridge_en) case,
> what 'method' is used there?

Um ... where exactly?



^ permalink raw reply	[flat|nested] 63+ messages in thread

* Re: [PULL v4 34/48] vhost-user: save features of multiqueues if chardev is closed
  2020-09-29  7:22 ` [PULL v4 34/48] vhost-user: save features of multiqueues if chardev is closed Michael S. Tsirkin
@ 2021-05-12  7:58   ` Michael S. Tsirkin
  0 siblings, 0 replies; 63+ messages in thread
From: Michael S. Tsirkin @ 2021-05-12  7:58 UTC (permalink / raw)
  To: qemu-devel
  Cc: Peter Maydell, Jason Wang, haibinzhang(张海斌),
	qemu-stable

On Tue, Sep 29, 2020 at 03:22:25AM -0400, Michael S. Tsirkin wrote:
> From: haibinzhang(张海斌) <haibinzhang@tencent.com>
> 
> Fore-commit(c6beefd674) only saves features of queue0,
> this makes wrong features of other queues in multiqueues
> situation.
> For examples:
>   qemu-system-aarch64 ... \
>   -chardev socket,id=charnet0,path=/var/run/vhost_sock \
>   -netdev vhost-user,chardev=charnet0,queues=2,id=hostnet0 \
>   ...
> There are two queues in nic assocated with one chardev.
> When chardev is reconnected, it is necessary to save and
> restore features of all queues.
> 
> Signed-of-by: Haibin Zhang <haibinzhang@tencent.com>
> Message-Id: <46CBC206-E0CA-4249-81CD-10F75DA30441@tencent.com>
> Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>

Cc: qemu-stable@nongnu.org

> ---
>  net/vhost-user.c | 10 +++++++---
>  1 file changed, 7 insertions(+), 3 deletions(-)
> 
> diff --git a/net/vhost-user.c b/net/vhost-user.c
> index 17532daaf3..ffbd94d944 100644
> --- a/net/vhost-user.c
> +++ b/net/vhost-user.c
> @@ -226,7 +226,7 @@ static void chr_closed_bh(void *opaque)
>      NetClientState *ncs[MAX_QUEUE_NUM];
>      NetVhostUserState *s;
>      Error *err = NULL;
> -    int queues;
> +    int queues, i;
>  
>      queues = qemu_find_net_clients_except(name, ncs,
>                                            NET_CLIENT_DRIVER_NIC,
> @@ -235,8 +235,12 @@ static void chr_closed_bh(void *opaque)
>  
>      s = DO_UPCAST(NetVhostUserState, nc, ncs[0]);
>  
> -    if (s->vhost_net) {
> -        s->acked_features = vhost_net_get_acked_features(s->vhost_net);
> +    for (i = queues -1; i >= 0; i--) {
> +        s = DO_UPCAST(NetVhostUserState, nc, ncs[i]);
> +
> +        if (s->vhost_net) {
> +            s->acked_features = vhost_net_get_acked_features(s->vhost_net);
> +        }
>      }
>  
>      qmp_set_link(name, false, &err);
> -- 
> MST
> 



^ permalink raw reply	[flat|nested] 63+ messages in thread

end of thread, other threads:[~2021-05-12  7:59 UTC | newest]

Thread overview: 63+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-09-29  7:20 [PULL v4 00/48] virtio,pc,acpi: fixes, tests Michael S. Tsirkin
2020-09-29  7:20 ` [PULL v4 01/48] linux headers: sync to 5.9-rc4 Michael S. Tsirkin
2020-09-29  7:20   ` Michael S. Tsirkin
2020-09-29  7:20 ` [PULL v4 03/48] vhost-vdpa: batch updating IOTLB mappings Michael S. Tsirkin
2020-09-29  7:21 ` [PULL v4 04/48] virtio-mem: detach the element from the virtqueue when error occurs Michael S. Tsirkin
2020-09-29  7:21 ` [PULL v4 05/48] pc: fix auto_enable_numa_with_memhp/auto_enable_numa_with_memdev for the 5.0 machine Michael S. Tsirkin
2020-09-29  7:21 ` [PULL v4 06/48] vhost: recheck dev state in the vhost_migration_log routine Michael S. Tsirkin
2020-09-29  7:21 ` [PULL v4 07/48] vhost: check queue state in the vhost_dev_set_log routine Michael S. Tsirkin
2020-09-29  7:21 ` [PULL v4 08/48] tests/qtest/vhost-user-test: prepare the tests for adding new dev class Michael S. Tsirkin
2020-09-29  7:21 ` [PULL v4 09/48] cphp: remove deprecated cpu-add command(s) Michael S. Tsirkin
2020-09-29  7:21 ` [PULL v4 10/48] virtio-iommu: Check gtrees are non null before destroying them Michael S. Tsirkin
2020-09-29  7:21 ` [PULL v4 11/48] virtio-iommu-pci: force virtio version 1 Michael S. Tsirkin
2020-09-29  7:21 ` [PULL v4 12/48] virtio-pmem-pci: " Michael S. Tsirkin
2020-09-29  7:21 ` [PULL v4 13/48] util/hexdump: introduce qemu_hexdump_line() Michael S. Tsirkin
2020-09-29  7:21 ` [PULL v4 14/48] vhost-vdpa: add trace-events Michael S. Tsirkin
2020-09-29  7:21 ` [PULL v4 15/48] configure: Fix build dependencies with vhost-vdpa Michael S. Tsirkin
2020-09-29  7:21 ` [PULL v4 16/48] virtio: skip legacy support check on machine types less than 5.1 Michael S. Tsirkin
2020-09-29  7:21 ` [PULL v4 17/48] vhost-vsock-pci: force virtio version 1 Michael S. Tsirkin
2020-09-29  7:21 ` [PULL v4 18/48] vhost-user-vsock-pci: " Michael S. Tsirkin
2020-09-29  7:21 ` [PULL v4 19/48] vhost-vsock-ccw: " Michael S. Tsirkin
2020-09-29  7:21 ` [PULL v4 20/48] virtio: update MemoryRegionCaches when guest set bad features Michael S. Tsirkin
2020-09-29  7:21 ` [PULL v4 21/48] x86: lpc9: let firmware negotiate 'CPU hotplug with SMI' features Michael S. Tsirkin
2020-09-29  7:21 ` [PULL v4 22/48] x86: cpuhp: prevent guest crash on CPU hotplug when broadcast SMI is in use Michael S. Tsirkin
2020-09-29  7:21 ` [PULL v4 23/48] x86: cpuhp: refuse cpu hot-unplug request earlier if not supported Michael S. Tsirkin
2020-09-29  7:21 ` [PULL v4 24/48] acpi: add aml_land() and aml_break() primitives Michael S. Tsirkin
2020-09-29  7:21 ` [PULL v4 25/48] tests: acpi: mark to be changed tables in bios-tables-test-allowed-diff Michael S. Tsirkin
2020-09-29  7:22 ` [PULL v4 26/48] x86: ich9: expose "smi_negotiated_features" as a QOM property Michael S. Tsirkin
2020-09-29  7:22 ` [PULL v4 27/48] x86: acpi: introduce AcpiPmInfo::smi_on_cpuhp Michael S. Tsirkin
2020-09-29  7:22 ` [PULL v4 28/48] x86: acpi: introduce the PCI0.SMI0 ACPI device Michael S. Tsirkin
2020-09-29  7:22 ` [PULL v4 29/48] x68: acpi: trigger SMI before sending hotplug Notify event to OSPM Michael S. Tsirkin
2020-09-29  7:22 ` [PULL v4 30/48] tests: acpi: update acpi blobs with new AML Michael S. Tsirkin
2020-09-29  7:22 ` [PULL v4 31/48] hw/smbios: support loading OEM strings values from a file Michael S. Tsirkin
2020-09-29  7:22 ` [PULL v4 32/48] hw/smbios: report error if table size is too large Michael S. Tsirkin
2020-09-29  7:22 ` [PULL v4 33/48] qemu-options: document SMBIOS type 11 settings Michael S. Tsirkin
2020-09-29  7:22 ` [PULL v4 34/48] vhost-user: save features of multiqueues if chardev is closed Michael S. Tsirkin
2021-05-12  7:58   ` Michael S. Tsirkin
2020-09-29  7:22 ` [PULL v4 35/48] tests/acpi: mark addition of table DSDT.roothp for unit testing root pci hotplug Michael S. Tsirkin
2020-09-29  7:22 ` [PULL v4 36/48] tests/acpi: add new unit test to test hotplug off/on feature on the root pci bus Michael S. Tsirkin
2020-09-29  7:22 ` [PULL v4 37/48] tests/acpi: add a new ACPI table in order to test root pci hotplug on/off Michael S. Tsirkin
2020-09-29  7:22 ` [PULL v4 38/48] Fix a gap where acpi_pcihp_find_hotplug_bus() returns a non-hotpluggable bus Michael S. Tsirkin
2020-09-29  7:22 ` [PULL v4 39/48] i440fx/acpi: do not add hotplug related amls for cold plugged bridges Michael S. Tsirkin
2020-09-29  7:22 ` [PULL v4 40/48] tests/acpi: list added acpi table binary file for pci bridge hotplug test Michael S. Tsirkin
2020-09-29  7:22 ` [PULL v4 41/48] tests/acpi: unit test for 'acpi-pci-hotplug-with-bridge-support' bridge flag Michael S. Tsirkin
2020-09-29  7:22 ` [PULL v4 42/48] tests/acpi: add newly added acpi DSDT table blob for pci bridge hotplug flag Michael S. Tsirkin
2020-09-29  7:22 ` [PULL v4 43/48] Add ACPI DSDT tables for q35 that are being updated by the next patch Michael S. Tsirkin
2020-09-29  7:22 ` [PULL v4 44/48] piix4: don't reserve hw resources when hotplug is off globally Michael S. Tsirkin
2020-11-07 10:10   ` Philippe Mathieu-Daudé
2020-11-07 11:14     ` Philippe Mathieu-Daudé
2020-11-07 12:22     ` Ani Sinha
2020-11-07 14:18       ` Philippe Mathieu-Daudé
2020-11-07 14:28         ` Michael S. Tsirkin
2020-09-29  7:22 ` [PULL v4 45/48] tests/acpi: update golden master DSDT binary table blobs for q35 Michael S. Tsirkin
2020-09-29  7:23 ` [PULL v4 46/48] hw: virtio-pmem: detach the element fromt the virtqueue when error occurs Michael S. Tsirkin
2020-09-29  7:23 ` [PULL v4 47/48] libvhost-user: return early on virtqueue errors Michael S. Tsirkin
2020-09-29  7:23 ` [PULL v4 48/48] libvhost-user: return on error in vu_log_queue_fill() Michael S. Tsirkin
2020-09-29  7:25 ` [PULL v4 02/48] vhost: switch to use IOTLB v2 format Michael S. Tsirkin
2020-09-29  8:13 ` [PULL v4 00/48] virtio,pc,acpi: fixes, tests no-reply
2020-09-29  8:50 ` no-reply
2020-09-29 11:02 ` Peter Maydell
2020-09-29 11:04 ` Michael S. Tsirkin
2020-09-29 11:07   ` Peter Maydell
2020-09-29 11:13     ` Michael S. Tsirkin
2020-10-01  9:16       ` Laszlo Ersek

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.