get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/808939/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 808939,
    "url": "http://patchwork.ozlabs.org/api/patches/808939/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/patch/20170901180340.30009-24-eblake@redhat.com/",
    "project": {
        "id": 14,
        "url": "http://patchwork.ozlabs.org/api/projects/14/?format=api",
        "name": "QEMU Development",
        "link_name": "qemu-devel",
        "list_id": "qemu-devel.nongnu.org",
        "list_email": "qemu-devel@nongnu.org",
        "web_url": "",
        "scm_url": "",
        "webscm_url": "",
        "list_archive_url": "",
        "list_archive_url_format": "",
        "commit_url_format": ""
    },
    "msgid": "<20170901180340.30009-24-eblake@redhat.com>",
    "list_archive_url": null,
    "date": "2017-09-01T18:03:34",
    "name": "[v6,23/29] tests/acpi-utils: Drop dependence on global_qtest",
    "commit_ref": null,
    "pull_url": null,
    "state": "new",
    "archived": false,
    "hash": "29246ed135617782b095e532949525306a462f2e",
    "submitter": {
        "id": 6591,
        "url": "http://patchwork.ozlabs.org/api/people/6591/?format=api",
        "name": "Eric Blake",
        "email": "eblake@redhat.com"
    },
    "delegate": null,
    "mbox": "http://patchwork.ozlabs.org/project/qemu-devel/patch/20170901180340.30009-24-eblake@redhat.com/mbox/",
    "series": [
        {
            "id": 1089,
            "url": "http://patchwork.ozlabs.org/api/series/1089/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/list/?series=1089",
            "date": "2017-09-01T18:03:12",
            "name": "Preliminary libqtest cleanups",
            "version": 6,
            "mbox": "http://patchwork.ozlabs.org/series/1089/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/808939/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/808939/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>",
        "X-Original-To": "incoming@patchwork.ozlabs.org",
        "Delivered-To": "patchwork-incoming@bilbo.ozlabs.org",
        "Authentication-Results": [
            "ozlabs.org;\n\tspf=pass (mailfrom) smtp.mailfrom=nongnu.org\n\t(client-ip=2001:4830:134:3::11; helo=lists.gnu.org;\n\tenvelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n\treceiver=<UNKNOWN>)",
            "ext-mx05.extmail.prod.ext.phx2.redhat.com;\n\tdmarc=none (p=none dis=none) header.from=redhat.com",
            "ext-mx05.extmail.prod.ext.phx2.redhat.com;\n\tspf=fail smtp.mailfrom=eblake@redhat.com"
        ],
        "Received": [
            "from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11])\n\t(using TLSv1 with cipher AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3xkSQX6xmXz9sPk\n\tfor <incoming@patchwork.ozlabs.org>;\n\tSat,  2 Sep 2017 04:27:32 +1000 (AEST)",
            "from localhost ([::1]:53692 helo=lists.gnu.org)\n\tby lists.gnu.org with esmtp (Exim 4.71) (envelope-from\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>)\n\tid 1dnqfD-00058Y-2L\n\tfor incoming@patchwork.ozlabs.org; Fri, 01 Sep 2017 14:27:31 -0400",
            "from eggs.gnu.org ([2001:4830:134:3::10]:56226)\n\tby lists.gnu.org with esmtp (Exim 4.71)\n\t(envelope-from <eblake@redhat.com>) id 1dnqIs-0007VV-H5\n\tfor qemu-devel@nongnu.org; Fri, 01 Sep 2017 14:04:32 -0400",
            "from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)\n\t(envelope-from <eblake@redhat.com>) id 1dnqIp-0001zm-Ad\n\tfor qemu-devel@nongnu.org; Fri, 01 Sep 2017 14:04:26 -0400",
            "from mx1.redhat.com ([209.132.183.28]:43572)\n\tby eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32)\n\t(Exim 4.71) (envelope-from <eblake@redhat.com>) id 1dnqIp-0001yX-1f\n\tfor qemu-devel@nongnu.org; Fri, 01 Sep 2017 14:04:23 -0400",
            "from smtp.corp.redhat.com\n\t(int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15])\n\t(using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby mx1.redhat.com (Postfix) with ESMTPS id 10DAC3295;\n\tFri,  1 Sep 2017 18:04:22 +0000 (UTC)",
            "from red.redhat.com (ovpn-121-149.rdu2.redhat.com [10.10.121.149])\n\tby smtp.corp.redhat.com (Postfix) with ESMTP id C9F6D5450A;\n\tFri,  1 Sep 2017 18:04:20 +0000 (UTC)"
        ],
        "DMARC-Filter": "OpenDMARC Filter v1.3.2 mx1.redhat.com 10DAC3295",
        "From": "Eric Blake <eblake@redhat.com>",
        "To": "qemu-devel@nongnu.org",
        "Date": "Fri,  1 Sep 2017 13:03:34 -0500",
        "Message-Id": "<20170901180340.30009-24-eblake@redhat.com>",
        "In-Reply-To": "<20170901180340.30009-1-eblake@redhat.com>",
        "References": "<20170901180340.30009-1-eblake@redhat.com>",
        "X-Scanned-By": "MIMEDefang 2.79 on 10.5.11.15",
        "X-Greylist": "Sender IP whitelisted, not delayed by milter-greylist-4.5.16\n\t(mx1.redhat.com [10.5.110.29]);\n\tFri, 01 Sep 2017 18:04:22 +0000 (UTC)",
        "X-detected-operating-system": "by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic]\n\t[fuzzy]",
        "X-Received-From": "209.132.183.28",
        "Subject": "[Qemu-devel] [PATCH v6 23/29] tests/acpi-utils: Drop dependence on\n\tglobal_qtest",
        "X-BeenThere": "qemu-devel@nongnu.org",
        "X-Mailman-Version": "2.1.21",
        "Precedence": "list",
        "List-Id": "<qemu-devel.nongnu.org>",
        "List-Unsubscribe": "<https://lists.nongnu.org/mailman/options/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>",
        "List-Archive": "<http://lists.nongnu.org/archive/html/qemu-devel/>",
        "List-Post": "<mailto:qemu-devel@nongnu.org>",
        "List-Help": "<mailto:qemu-devel-request@nongnu.org?subject=help>",
        "List-Subscribe": "<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=subscribe>",
        "Cc": "pbonzini@redhat.com, Igor Mammedov <imammedo@redhat.com>,\n\tarmbru@redhat.com, Ben Warren <ben@skyportsystems.com>,\n\t\"Michael S. Tsirkin\" <mst@redhat.com>",
        "Errors-To": "qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org",
        "Sender": "\"Qemu-devel\"\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>"
    },
    "content": "As a general rule, we prefer avoiding implicit global state\nbecause it makes code harder to safely copy and paste without\nthinking about the global state.  Adjust the helper code to\nuse explicit state instead, and update all callers.\n\nSigned-off-by: Eric Blake <eblake@redhat.com>\n---\n tests/acpi-utils.h       |  65 +++++++++----------\n tests/acpi-utils.c       |  19 +++---\n tests/bios-tables-test.c | 161 ++++++++++++++++++++++++-----------------------\n tests/vmgenid-test.c     |  18 +++---\n 4 files changed, 133 insertions(+), 130 deletions(-)",
    "diff": "diff --git a/tests/acpi-utils.h b/tests/acpi-utils.h\nindex f8d87236c6..8ec83f71b1 100644\n--- a/tests/acpi-utils.h\n+++ b/tests/acpi-utils.h\n@@ -28,20 +28,20 @@ typedef struct {\n     bool tmp_files_retain;   /* do not delete the temp asl/aml */\n } AcpiSdtTable;\n\n-#define ACPI_READ_FIELD(field, addr)           \\\n+#define ACPI_READ_FIELD(qts, field, addr)      \\\n     do {                                       \\\n         switch (sizeof(field)) {               \\\n         case 1:                                \\\n-            field = readb(addr);               \\\n+            field = qtest_readb(qts, addr);    \\\n             break;                             \\\n         case 2:                                \\\n-            field = readw(addr);               \\\n+            field = qtest_readw(qts, addr);    \\\n             break;                             \\\n         case 4:                                \\\n-            field = readl(addr);               \\\n+            field = qtest_readl(qts, addr);    \\\n             break;                             \\\n         case 8:                                \\\n-            field = readq(addr);               \\\n+            field = qtest_readq(qts, addr);    \\\n             break;                             \\\n         default:                               \\\n             g_assert(false);                   \\\n@@ -49,28 +49,28 @@ typedef struct {\n         addr += sizeof(field);                  \\\n     } while (0);\n\n-#define ACPI_READ_ARRAY_PTR(arr, length, addr)  \\\n-    do {                                        \\\n-        int idx;                                \\\n-        for (idx = 0; idx < length; ++idx) {    \\\n-            ACPI_READ_FIELD(arr[idx], addr);    \\\n-        }                                       \\\n+#define ACPI_READ_ARRAY_PTR(qts, arr, length, addr)      \\\n+    do {                                                 \\\n+        int idx;                                         \\\n+        for (idx = 0; idx < length; ++idx) {             \\\n+            ACPI_READ_FIELD(qts, arr[idx], addr);        \\\n+        }                                                \\\n     } while (0);\n\n-#define ACPI_READ_ARRAY(arr, addr)                               \\\n-    ACPI_READ_ARRAY_PTR(arr, sizeof(arr) / sizeof(arr[0]), addr)\n+#define ACPI_READ_ARRAY(qts, arr, addr)                                 \\\n+    ACPI_READ_ARRAY_PTR(qts, arr, sizeof(arr) / sizeof(arr[0]), addr)\n\n-#define ACPI_READ_TABLE_HEADER(table, addr)                      \\\n+#define ACPI_READ_TABLE_HEADER(qts, table, addr)                 \\\n     do {                                                         \\\n-        ACPI_READ_FIELD((table)->signature, addr);               \\\n-        ACPI_READ_FIELD((table)->length, addr);                  \\\n-        ACPI_READ_FIELD((table)->revision, addr);                \\\n-        ACPI_READ_FIELD((table)->checksum, addr);                \\\n-        ACPI_READ_ARRAY((table)->oem_id, addr);                  \\\n-        ACPI_READ_ARRAY((table)->oem_table_id, addr);            \\\n-        ACPI_READ_FIELD((table)->oem_revision, addr);            \\\n-        ACPI_READ_ARRAY((table)->asl_compiler_id, addr);         \\\n-        ACPI_READ_FIELD((table)->asl_compiler_revision, addr);   \\\n+        ACPI_READ_FIELD(qts, (table)->signature, addr);          \\\n+        ACPI_READ_FIELD(qts, (table)->length, addr);             \\\n+        ACPI_READ_FIELD(qts, (table)->revision, addr);           \\\n+        ACPI_READ_FIELD(qts, (table)->checksum, addr);           \\\n+        ACPI_READ_ARRAY(qts, (table)->oem_id, addr);             \\\n+        ACPI_READ_ARRAY(qts, (table)->oem_table_id, addr);       \\\n+        ACPI_READ_FIELD(qts, (table)->oem_revision, addr);       \\\n+        ACPI_READ_ARRAY(qts, (table)->asl_compiler_id, addr);    \\\n+        ACPI_READ_FIELD(qts, (table)->asl_compiler_revision, addr);     \\\n     } while (0);\n\n #define ACPI_ASSERT_CMP(actual, expected) do { \\\n@@ -87,18 +87,19 @@ typedef struct {\n     g_assert_cmpstr(ACPI_ASSERT_CMP_str, ==, expected); \\\n } while (0)\n\n-#define ACPI_READ_GENERIC_ADDRESS(field, addr)       \\\n-    do {                                             \\\n-        ACPI_READ_FIELD((field).space_id, addr);     \\\n-        ACPI_READ_FIELD((field).bit_width, addr);    \\\n-        ACPI_READ_FIELD((field).bit_offset, addr);   \\\n-        ACPI_READ_FIELD((field).access_width, addr); \\\n-        ACPI_READ_FIELD((field).address, addr);      \\\n+#define ACPI_READ_GENERIC_ADDRESS(qts, field, addr)       \\\n+    do {                                                  \\\n+        ACPI_READ_FIELD(qts, (field).space_id, addr);     \\\n+        ACPI_READ_FIELD(qts, (field).bit_width, addr);    \\\n+        ACPI_READ_FIELD(qts, (field).bit_offset, addr);   \\\n+        ACPI_READ_FIELD(qts, (field).access_width, addr); \\\n+        ACPI_READ_FIELD(qts, (field).address, addr);      \\\n     } while (0);\n\n\n uint8_t acpi_calc_checksum(const uint8_t *data, int len);\n-uint32_t acpi_find_rsdp_address(void);\n-void acpi_parse_rsdp_table(uint32_t addr, AcpiRsdpDescriptor *rsdp_table);\n+uint32_t acpi_find_rsdp_address(QTestState *qts);\n+void acpi_parse_rsdp_table(QTestState *qts, uint32_t addr,\n+                           AcpiRsdpDescriptor *rsdp_table);\n\n #endif  /* TEST_ACPI_UTILS_H */\ndiff --git a/tests/acpi-utils.c b/tests/acpi-utils.c\nindex 41dc1ea9b4..6dc8ca1a8c 100644\n--- a/tests/acpi-utils.c\n+++ b/tests/acpi-utils.c\n@@ -32,7 +32,7 @@ uint8_t acpi_calc_checksum(const uint8_t *data, int len)\n     return sum;\n }\n\n-uint32_t acpi_find_rsdp_address(void)\n+uint32_t acpi_find_rsdp_address(QTestState *qts)\n {\n     uint32_t off;\n\n@@ -42,7 +42,7 @@ uint32_t acpi_find_rsdp_address(void)\n         int i;\n\n         for (i = 0; i < sizeof sig - 1; ++i) {\n-            sig[i] = readb(off + i);\n+            sig[i] = qtest_readb(qts, off + i);\n         }\n\n         if (!memcmp(sig, \"RSD PTR \", sizeof sig)) {\n@@ -52,14 +52,15 @@ uint32_t acpi_find_rsdp_address(void)\n     return off;\n }\n\n-void acpi_parse_rsdp_table(uint32_t addr, AcpiRsdpDescriptor *rsdp_table)\n+void acpi_parse_rsdp_table(QTestState *qts, uint32_t addr,\n+                           AcpiRsdpDescriptor *rsdp_table)\n {\n-    ACPI_READ_FIELD(rsdp_table->signature, addr);\n+    ACPI_READ_FIELD(qts, rsdp_table->signature, addr);\n     ACPI_ASSERT_CMP64(rsdp_table->signature, \"RSD PTR \");\n\n-    ACPI_READ_FIELD(rsdp_table->checksum, addr);\n-    ACPI_READ_ARRAY(rsdp_table->oem_id, addr);\n-    ACPI_READ_FIELD(rsdp_table->revision, addr);\n-    ACPI_READ_FIELD(rsdp_table->rsdt_physical_address, addr);\n-    ACPI_READ_FIELD(rsdp_table->length, addr);\n+    ACPI_READ_FIELD(qts, rsdp_table->checksum, addr);\n+    ACPI_READ_ARRAY(qts, rsdp_table->oem_id, addr);\n+    ACPI_READ_FIELD(qts, rsdp_table->revision, addr);\n+    ACPI_READ_FIELD(qts, rsdp_table->rsdt_physical_address, addr);\n+    ACPI_READ_FIELD(qts, rsdp_table->length, addr);\n }\ndiff --git a/tests/bios-tables-test.c b/tests/bios-tables-test.c\nindex bde62bf1cf..75b29df493 100644\n--- a/tests/bios-tables-test.c\n+++ b/tests/bios-tables-test.c\n@@ -77,7 +77,7 @@ static void free_test_data(test_data *data)\n\n static void test_acpi_rsdp_address(test_data *data)\n {\n-    uint32_t off = acpi_find_rsdp_address();\n+    uint32_t off = acpi_find_rsdp_address(global_qtest);\n     g_assert_cmphex(off, <, 0x100000);\n     data->rsdp_addr = off;\n }\n@@ -87,7 +87,7 @@ static void test_acpi_rsdp_table(test_data *data)\n     AcpiRsdpDescriptor *rsdp_table = &data->rsdp_table;\n     uint32_t addr = data->rsdp_addr;\n\n-    acpi_parse_rsdp_table(addr, rsdp_table);\n+    acpi_parse_rsdp_table(global_qtest, addr, rsdp_table);\n\n     /* rsdp checksum is not for the whole table, but for the first 20 bytes */\n     g_assert(!acpi_calc_checksum((uint8_t *)rsdp_table, 20));\n@@ -102,7 +102,7 @@ static void test_acpi_rsdt_table(test_data *data)\n     uint8_t checksum;\n\n     /* read the header */\n-    ACPI_READ_TABLE_HEADER(rsdt_table, addr);\n+    ACPI_READ_TABLE_HEADER(global_qtest, rsdt_table, addr);\n     ACPI_ASSERT_CMP(rsdt_table->signature, \"RSDT\");\n\n     /* compute the table entries in rsdt */\n@@ -112,7 +112,7 @@ static void test_acpi_rsdt_table(test_data *data)\n\n     /* get the addresses of the tables pointed by rsdt */\n     tables = g_new0(uint32_t, tables_nr);\n-    ACPI_READ_ARRAY_PTR(tables, tables_nr, addr);\n+    ACPI_READ_ARRAY_PTR(global_qtest, tables, tables_nr, addr);\n\n     checksum = acpi_calc_checksum((uint8_t *)rsdt_table, rsdt_table->length) +\n                acpi_calc_checksum((uint8_t *)tables,\n@@ -128,63 +128,64 @@ static void test_acpi_fadt_table(test_data *data)\n {\n     AcpiFadtDescriptorRev3 *fadt_table = &data->fadt_table;\n     uint32_t addr;\n+    QTestState *qts = global_qtest;\n\n     /* FADT table comes first */\n     addr = data->rsdt_tables_addr[0];\n-    ACPI_READ_TABLE_HEADER(fadt_table, addr);\n+    ACPI_READ_TABLE_HEADER(qts, fadt_table, addr);\n\n-    ACPI_READ_FIELD(fadt_table->firmware_ctrl, addr);\n-    ACPI_READ_FIELD(fadt_table->dsdt, addr);\n-    ACPI_READ_FIELD(fadt_table->model, addr);\n-    ACPI_READ_FIELD(fadt_table->reserved1, addr);\n-    ACPI_READ_FIELD(fadt_table->sci_int, addr);\n-    ACPI_READ_FIELD(fadt_table->smi_cmd, addr);\n-    ACPI_READ_FIELD(fadt_table->acpi_enable, addr);\n-    ACPI_READ_FIELD(fadt_table->acpi_disable, addr);\n-    ACPI_READ_FIELD(fadt_table->S4bios_req, addr);\n-    ACPI_READ_FIELD(fadt_table->reserved2, addr);\n-    ACPI_READ_FIELD(fadt_table->pm1a_evt_blk, addr);\n-    ACPI_READ_FIELD(fadt_table->pm1b_evt_blk, addr);\n-    ACPI_READ_FIELD(fadt_table->pm1a_cnt_blk, addr);\n-    ACPI_READ_FIELD(fadt_table->pm1b_cnt_blk, addr);\n-    ACPI_READ_FIELD(fadt_table->pm2_cnt_blk, addr);\n-    ACPI_READ_FIELD(fadt_table->pm_tmr_blk, addr);\n-    ACPI_READ_FIELD(fadt_table->gpe0_blk, addr);\n-    ACPI_READ_FIELD(fadt_table->gpe1_blk, addr);\n-    ACPI_READ_FIELD(fadt_table->pm1_evt_len, addr);\n-    ACPI_READ_FIELD(fadt_table->pm1_cnt_len, addr);\n-    ACPI_READ_FIELD(fadt_table->pm2_cnt_len, addr);\n-    ACPI_READ_FIELD(fadt_table->pm_tmr_len, addr);\n-    ACPI_READ_FIELD(fadt_table->gpe0_blk_len, addr);\n-    ACPI_READ_FIELD(fadt_table->gpe1_blk_len, addr);\n-    ACPI_READ_FIELD(fadt_table->gpe1_base, addr);\n-    ACPI_READ_FIELD(fadt_table->reserved3, addr);\n-    ACPI_READ_FIELD(fadt_table->plvl2_lat, addr);\n-    ACPI_READ_FIELD(fadt_table->plvl3_lat, addr);\n-    ACPI_READ_FIELD(fadt_table->flush_size, addr);\n-    ACPI_READ_FIELD(fadt_table->flush_stride, addr);\n-    ACPI_READ_FIELD(fadt_table->duty_offset, addr);\n-    ACPI_READ_FIELD(fadt_table->duty_width, addr);\n-    ACPI_READ_FIELD(fadt_table->day_alrm, addr);\n-    ACPI_READ_FIELD(fadt_table->mon_alrm, addr);\n-    ACPI_READ_FIELD(fadt_table->century, addr);\n-    ACPI_READ_FIELD(fadt_table->boot_flags, addr);\n-    ACPI_READ_FIELD(fadt_table->reserved, addr);\n-    ACPI_READ_FIELD(fadt_table->flags, addr);\n-    ACPI_READ_GENERIC_ADDRESS(fadt_table->reset_register, addr);\n-    ACPI_READ_FIELD(fadt_table->reset_value, addr);\n-    ACPI_READ_FIELD(fadt_table->arm_boot_flags, addr);\n-    ACPI_READ_FIELD(fadt_table->minor_revision, addr);\n-    ACPI_READ_FIELD(fadt_table->x_facs, addr);\n-    ACPI_READ_FIELD(fadt_table->x_dsdt, addr);\n-    ACPI_READ_GENERIC_ADDRESS(fadt_table->xpm1a_event_block, addr);\n-    ACPI_READ_GENERIC_ADDRESS(fadt_table->xpm1b_event_block, addr);\n-    ACPI_READ_GENERIC_ADDRESS(fadt_table->xpm1a_control_block, addr);\n-    ACPI_READ_GENERIC_ADDRESS(fadt_table->xpm1b_control_block, addr);\n-    ACPI_READ_GENERIC_ADDRESS(fadt_table->xpm2_control_block, addr);\n-    ACPI_READ_GENERIC_ADDRESS(fadt_table->xpm_timer_block, addr);\n-    ACPI_READ_GENERIC_ADDRESS(fadt_table->xgpe0_block, addr);\n-    ACPI_READ_GENERIC_ADDRESS(fadt_table->xgpe1_block, addr);\n+    ACPI_READ_FIELD(qts, fadt_table->firmware_ctrl, addr);\n+    ACPI_READ_FIELD(qts, fadt_table->dsdt, addr);\n+    ACPI_READ_FIELD(qts, fadt_table->model, addr);\n+    ACPI_READ_FIELD(qts, fadt_table->reserved1, addr);\n+    ACPI_READ_FIELD(qts, fadt_table->sci_int, addr);\n+    ACPI_READ_FIELD(qts, fadt_table->smi_cmd, addr);\n+    ACPI_READ_FIELD(qts, fadt_table->acpi_enable, addr);\n+    ACPI_READ_FIELD(qts, fadt_table->acpi_disable, addr);\n+    ACPI_READ_FIELD(qts, fadt_table->S4bios_req, addr);\n+    ACPI_READ_FIELD(qts, fadt_table->reserved2, addr);\n+    ACPI_READ_FIELD(qts, fadt_table->pm1a_evt_blk, addr);\n+    ACPI_READ_FIELD(qts, fadt_table->pm1b_evt_blk, addr);\n+    ACPI_READ_FIELD(qts, fadt_table->pm1a_cnt_blk, addr);\n+    ACPI_READ_FIELD(qts, fadt_table->pm1b_cnt_blk, addr);\n+    ACPI_READ_FIELD(qts, fadt_table->pm2_cnt_blk, addr);\n+    ACPI_READ_FIELD(qts, fadt_table->pm_tmr_blk, addr);\n+    ACPI_READ_FIELD(qts, fadt_table->gpe0_blk, addr);\n+    ACPI_READ_FIELD(qts, fadt_table->gpe1_blk, addr);\n+    ACPI_READ_FIELD(qts, fadt_table->pm1_evt_len, addr);\n+    ACPI_READ_FIELD(qts, fadt_table->pm1_cnt_len, addr);\n+    ACPI_READ_FIELD(qts, fadt_table->pm2_cnt_len, addr);\n+    ACPI_READ_FIELD(qts, fadt_table->pm_tmr_len, addr);\n+    ACPI_READ_FIELD(qts, fadt_table->gpe0_blk_len, addr);\n+    ACPI_READ_FIELD(qts, fadt_table->gpe1_blk_len, addr);\n+    ACPI_READ_FIELD(qts, fadt_table->gpe1_base, addr);\n+    ACPI_READ_FIELD(qts, fadt_table->reserved3, addr);\n+    ACPI_READ_FIELD(qts, fadt_table->plvl2_lat, addr);\n+    ACPI_READ_FIELD(qts, fadt_table->plvl3_lat, addr);\n+    ACPI_READ_FIELD(qts, fadt_table->flush_size, addr);\n+    ACPI_READ_FIELD(qts, fadt_table->flush_stride, addr);\n+    ACPI_READ_FIELD(qts, fadt_table->duty_offset, addr);\n+    ACPI_READ_FIELD(qts, fadt_table->duty_width, addr);\n+    ACPI_READ_FIELD(qts, fadt_table->day_alrm, addr);\n+    ACPI_READ_FIELD(qts, fadt_table->mon_alrm, addr);\n+    ACPI_READ_FIELD(qts, fadt_table->century, addr);\n+    ACPI_READ_FIELD(qts, fadt_table->boot_flags, addr);\n+    ACPI_READ_FIELD(qts, fadt_table->reserved, addr);\n+    ACPI_READ_FIELD(qts, fadt_table->flags, addr);\n+    ACPI_READ_GENERIC_ADDRESS(qts, fadt_table->reset_register, addr);\n+    ACPI_READ_FIELD(qts, fadt_table->reset_value, addr);\n+    ACPI_READ_FIELD(qts, fadt_table->arm_boot_flags, addr);\n+    ACPI_READ_FIELD(qts, fadt_table->minor_revision, addr);\n+    ACPI_READ_FIELD(qts, fadt_table->x_facs, addr);\n+    ACPI_READ_FIELD(qts, fadt_table->x_dsdt, addr);\n+    ACPI_READ_GENERIC_ADDRESS(qts, fadt_table->xpm1a_event_block, addr);\n+    ACPI_READ_GENERIC_ADDRESS(qts, fadt_table->xpm1b_event_block, addr);\n+    ACPI_READ_GENERIC_ADDRESS(qts, fadt_table->xpm1a_control_block, addr);\n+    ACPI_READ_GENERIC_ADDRESS(qts, fadt_table->xpm1b_control_block, addr);\n+    ACPI_READ_GENERIC_ADDRESS(qts, fadt_table->xpm2_control_block, addr);\n+    ACPI_READ_GENERIC_ADDRESS(qts, fadt_table->xpm_timer_block, addr);\n+    ACPI_READ_GENERIC_ADDRESS(qts, fadt_table->xgpe0_block, addr);\n+    ACPI_READ_GENERIC_ADDRESS(qts, fadt_table->xgpe1_block, addr);\n\n     ACPI_ASSERT_CMP(fadt_table->signature, \"FACP\");\n     g_assert(!acpi_calc_checksum((uint8_t *)fadt_table, fadt_table->length));\n@@ -195,13 +196,13 @@ static void test_acpi_facs_table(test_data *data)\n     AcpiFacsDescriptorRev1 *facs_table = &data->facs_table;\n     uint32_t addr = data->fadt_table.firmware_ctrl;\n\n-    ACPI_READ_FIELD(facs_table->signature, addr);\n-    ACPI_READ_FIELD(facs_table->length, addr);\n-    ACPI_READ_FIELD(facs_table->hardware_signature, addr);\n-    ACPI_READ_FIELD(facs_table->firmware_waking_vector, addr);\n-    ACPI_READ_FIELD(facs_table->global_lock, addr);\n-    ACPI_READ_FIELD(facs_table->flags, addr);\n-    ACPI_READ_ARRAY(facs_table->resverved3, addr);\n+    ACPI_READ_FIELD(global_qtest, facs_table->signature, addr);\n+    ACPI_READ_FIELD(global_qtest, facs_table->length, addr);\n+    ACPI_READ_FIELD(global_qtest, facs_table->hardware_signature, addr);\n+    ACPI_READ_FIELD(global_qtest, facs_table->firmware_waking_vector, addr);\n+    ACPI_READ_FIELD(global_qtest, facs_table->global_lock, addr);\n+    ACPI_READ_FIELD(global_qtest, facs_table->flags, addr);\n+    ACPI_READ_ARRAY(global_qtest, facs_table->resverved3, addr);\n\n     ACPI_ASSERT_CMP(facs_table->signature, \"FACS\");\n }\n@@ -210,11 +211,11 @@ static void test_dst_table(AcpiSdtTable *sdt_table, uint32_t addr)\n {\n     uint8_t checksum;\n\n-    ACPI_READ_TABLE_HEADER(&sdt_table->header, addr);\n+    ACPI_READ_TABLE_HEADER(global_qtest, &sdt_table->header, addr);\n\n     sdt_table->aml_len = sdt_table->header.length - sizeof(AcpiTableHeader);\n     sdt_table->aml = g_malloc0(sdt_table->aml_len);\n-    ACPI_READ_ARRAY_PTR(sdt_table->aml, sdt_table->aml_len, addr);\n+    ACPI_READ_ARRAY_PTR(global_qtest, sdt_table->aml, sdt_table->aml_len, addr);\n\n     checksum = acpi_calc_checksum((uint8_t *)sdt_table,\n                                   sizeof(AcpiTableHeader)) +\n@@ -492,32 +493,32 @@ static bool smbios_ep_table_ok(test_data *data)\n     struct smbios_21_entry_point *ep_table = &data->smbios_ep_table;\n     uint32_t addr = data->smbios_ep_addr;\n\n-    ACPI_READ_ARRAY(ep_table->anchor_string, addr);\n+    ACPI_READ_ARRAY(global_qtest, ep_table->anchor_string, addr);\n     if (memcmp(ep_table->anchor_string, \"_SM_\", 4)) {\n         return false;\n     }\n-    ACPI_READ_FIELD(ep_table->checksum, addr);\n-    ACPI_READ_FIELD(ep_table->length, addr);\n-    ACPI_READ_FIELD(ep_table->smbios_major_version, addr);\n-    ACPI_READ_FIELD(ep_table->smbios_minor_version, addr);\n-    ACPI_READ_FIELD(ep_table->max_structure_size, addr);\n-    ACPI_READ_FIELD(ep_table->entry_point_revision, addr);\n-    ACPI_READ_ARRAY(ep_table->formatted_area, addr);\n-    ACPI_READ_ARRAY(ep_table->intermediate_anchor_string, addr);\n+    ACPI_READ_FIELD(global_qtest, ep_table->checksum, addr);\n+    ACPI_READ_FIELD(global_qtest, ep_table->length, addr);\n+    ACPI_READ_FIELD(global_qtest, ep_table->smbios_major_version, addr);\n+    ACPI_READ_FIELD(global_qtest, ep_table->smbios_minor_version, addr);\n+    ACPI_READ_FIELD(global_qtest, ep_table->max_structure_size, addr);\n+    ACPI_READ_FIELD(global_qtest, ep_table->entry_point_revision, addr);\n+    ACPI_READ_ARRAY(global_qtest, ep_table->formatted_area, addr);\n+    ACPI_READ_ARRAY(global_qtest, ep_table->intermediate_anchor_string, addr);\n     if (memcmp(ep_table->intermediate_anchor_string, \"_DMI_\", 5)) {\n         return false;\n     }\n-    ACPI_READ_FIELD(ep_table->intermediate_checksum, addr);\n-    ACPI_READ_FIELD(ep_table->structure_table_length, addr);\n+    ACPI_READ_FIELD(global_qtest, ep_table->intermediate_checksum, addr);\n+    ACPI_READ_FIELD(global_qtest, ep_table->structure_table_length, addr);\n     if (ep_table->structure_table_length == 0) {\n         return false;\n     }\n-    ACPI_READ_FIELD(ep_table->structure_table_address, addr);\n-    ACPI_READ_FIELD(ep_table->number_of_structures, addr);\n+    ACPI_READ_FIELD(global_qtest, ep_table->structure_table_address, addr);\n+    ACPI_READ_FIELD(global_qtest, ep_table->number_of_structures, addr);\n     if (ep_table->number_of_structures == 0) {\n         return false;\n     }\n-    ACPI_READ_FIELD(ep_table->smbios_bcd_revision, addr);\n+    ACPI_READ_FIELD(global_qtest, ep_table->smbios_bcd_revision, addr);\n     if (acpi_calc_checksum((uint8_t *)ep_table, sizeof *ep_table) ||\n         acpi_calc_checksum((uint8_t *)ep_table + 0x10,\n                            sizeof *ep_table - 0x10)) {\ndiff --git a/tests/vmgenid-test.c b/tests/vmgenid-test.c\nindex 4bdc8a15e7..73473162d0 100644\n--- a/tests/vmgenid-test.c\n+++ b/tests/vmgenid-test.c\n@@ -50,15 +50,15 @@ static uint32_t acpi_find_vgia(void)\n     boot_sector_test(global_qtest);\n\n     /* Tables should be initialized now. */\n-    rsdp_offset = acpi_find_rsdp_address();\n+    rsdp_offset = acpi_find_rsdp_address(global_qtest);\n\n     g_assert_cmphex(rsdp_offset, <, RSDP_ADDR_INVALID);\n\n-    acpi_parse_rsdp_table(rsdp_offset, &rsdp_table);\n+    acpi_parse_rsdp_table(global_qtest, rsdp_offset, &rsdp_table);\n\n     rsdt = rsdp_table.rsdt_physical_address;\n     /* read the header */\n-    ACPI_READ_TABLE_HEADER(&rsdt_table, rsdt);\n+    ACPI_READ_TABLE_HEADER(global_qtest, &rsdt_table, rsdt);\n     ACPI_ASSERT_CMP(rsdt_table.signature, \"RSDT\");\n\n     /* compute the table entries in rsdt */\n@@ -68,21 +68,21 @@ static uint32_t acpi_find_vgia(void)\n\n     /* get the addresses of the tables pointed by rsdt */\n     tables = g_new0(uint32_t, tables_nr);\n-    ACPI_READ_ARRAY_PTR(tables, tables_nr, rsdt);\n+    ACPI_READ_ARRAY_PTR(global_qtest, tables, tables_nr, rsdt);\n\n     for (i = 0; i < tables_nr; i++) {\n-        ACPI_READ_TABLE_HEADER(&ssdt_table, tables[i]);\n+        ACPI_READ_TABLE_HEADER(global_qtest, &ssdt_table, tables[i]);\n         if (!strncmp((char *)ssdt_table.oem_table_id, \"VMGENID\", 7)) {\n             /* the first entry in the table should be VGIA\n              * That's all we need\n              */\n-            ACPI_READ_FIELD(vgid_table.name_op, tables[i]);\n+            ACPI_READ_FIELD(global_qtest, vgid_table.name_op, tables[i]);\n             g_assert(vgid_table.name_op == 0x08);  /* name */\n-            ACPI_READ_ARRAY(vgid_table.vgia, tables[i]);\n+            ACPI_READ_ARRAY(global_qtest, vgid_table.vgia, tables[i]);\n             g_assert(memcmp(vgid_table.vgia, \"VGIA\", 4) == 0);\n-            ACPI_READ_FIELD(vgid_table.val_op, tables[i]);\n+            ACPI_READ_FIELD(global_qtest, vgid_table.val_op, tables[i]);\n             g_assert(vgid_table.val_op == 0x0C);  /* dword */\n-            ACPI_READ_FIELD(vgid_table.vgia_val, tables[i]);\n+            ACPI_READ_FIELD(global_qtest, vgid_table.vgia_val, tables[i]);\n             /* The GUID is written at a fixed offset into the fw_cfg file\n              * in order to implement the \"OVMF SDT Header probe suppressor\"\n              * see docs/specs/vmgenid.txt for more details\n",
    "prefixes": [
        "v6",
        "23/29"
    ]
}