get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 78299,
    "url": "http://patches.dpdk.org/api/patches/78299/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/1600764594-14752-56-git-send-email-arybchenko@solarflare.com/",
    "project": {
        "id": 1,
        "url": "http://patches.dpdk.org/api/projects/1/?format=api",
        "name": "DPDK",
        "link_name": "dpdk",
        "list_id": "dev.dpdk.org",
        "list_email": "dev@dpdk.org",
        "web_url": "http://core.dpdk.org",
        "scm_url": "git://dpdk.org/dpdk",
        "webscm_url": "http://git.dpdk.org/dpdk",
        "list_archive_url": "https://inbox.dpdk.org/dev",
        "list_archive_url_format": "https://inbox.dpdk.org/dev/{}",
        "commit_url_format": ""
    },
    "msgid": "<1600764594-14752-56-git-send-email-arybchenko@solarflare.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/1600764594-14752-56-git-send-email-arybchenko@solarflare.com",
    "date": "2020-09-22T08:49:49",
    "name": "[55/60] common/sfc_efx/base: add 256bit type",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "58278c2255eeef7e55383b5b9e61ea2c3ebe9164",
    "submitter": {
        "id": 607,
        "url": "http://patches.dpdk.org/api/people/607/?format=api",
        "name": "Andrew Rybchenko",
        "email": "arybchenko@solarflare.com"
    },
    "delegate": {
        "id": 319,
        "url": "http://patches.dpdk.org/api/users/319/?format=api",
        "username": "fyigit",
        "first_name": "Ferruh",
        "last_name": "Yigit",
        "email": "ferruh.yigit@amd.com"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/1600764594-14752-56-git-send-email-arybchenko@solarflare.com/mbox/",
    "series": [
        {
            "id": 12400,
            "url": "http://patches.dpdk.org/api/series/12400/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=12400",
            "date": "2020-09-22T08:48:59",
            "name": "common/sfc_efx: support Riverhead NIC family",
            "version": 1,
            "mbox": "http://patches.dpdk.org/series/12400/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/78299/comments/",
    "check": "warning",
    "checks": "http://patches.dpdk.org/api/patches/78299/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<dev-bounces@dpdk.org>",
        "X-Original-To": "patchwork@inbox.dpdk.org",
        "Delivered-To": "patchwork@inbox.dpdk.org",
        "Received": [
            "from dpdk.org (dpdk.org [92.243.14.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id 72D9DA04E1;\n\tTue, 22 Sep 2020 10:59:05 +0200 (CEST)",
            "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id 9B2231DB8B;\n\tTue, 22 Sep 2020 10:51:28 +0200 (CEST)",
            "from dispatch1-us1.ppe-hosted.com (dispatch1-us1.ppe-hosted.com\n [67.231.154.164]) by dpdk.org (Postfix) with ESMTP id 129411D72C\n for <dev@dpdk.org>; Tue, 22 Sep 2020 10:50:24 +0200 (CEST)",
            "from mx1-us1.ppe-hosted.com (unknown [10.110.50.137])\n by dispatch1-us1.ppe-hosted.com (PPE Hosted ESMTP Server) with ESMTP id\n E2D0920078 for <dev@dpdk.org>; Tue, 22 Sep 2020 08:50:23 +0000 (UTC)",
            "from us4-mdac16-65.at1.mdlocal (unknown [10.110.50.184])\n by mx1-us1.ppe-hosted.com (PPE Hosted ESMTP Server) with ESMTP id E260D6009B\n for <dev@dpdk.org>; Tue, 22 Sep 2020 08:50:23 +0000 (UTC)",
            "from mx1-us1.ppe-hosted.com (unknown [10.110.50.7])\n by mx1-us1.ppe-hosted.com (PPE Hosted ESMTP Server) with ESMTPS id\n 57C3C22004D\n for <dev@dpdk.org>; Tue, 22 Sep 2020 08:50:23 +0000 (UTC)",
            "from webmail.solarflare.com (uk.solarflare.com [193.34.186.16])\n (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits))\n (No client certificate requested)\n by mx1-us1.ppe-hosted.com (PPE Hosted ESMTP Server) with ESMTPS id\n 207E54C005B\n for <dev@dpdk.org>; Tue, 22 Sep 2020 08:50:23 +0000 (UTC)",
            "from ukex01.SolarFlarecom.com (10.17.10.4) by\n ukex01.SolarFlarecom.com (10.17.10.4) with Microsoft SMTP Server (TLS) id\n 15.0.1497.2; Tue, 22 Sep 2020 09:50:12 +0100",
            "from opal.uk.solarflarecom.com (10.17.10.1) by\n ukex01.SolarFlarecom.com (10.17.10.4) with Microsoft SMTP Server id\n 15.0.1497.2 via Frontend Transport; Tue, 22 Sep 2020 09:50:12 +0100",
            "from ukv-loginhost.uk.solarflarecom.com\n (ukv-loginhost.uk.solarflarecom.com [10.17.10.39])\n by opal.uk.solarflarecom.com (8.13.8/8.13.8) with ESMTP id 08M8oCbg004842;\n Tue, 22 Sep 2020 09:50:12 +0100",
            "from ukv-loginhost.uk.solarflarecom.com (localhost [127.0.0.1])\n by ukv-loginhost.uk.solarflarecom.com (Postfix) with ESMTP id 1652D1613A9;\n Tue, 22 Sep 2020 09:50:12 +0100 (BST)"
        ],
        "X-Virus-Scanned": "Proofpoint Essentials engine",
        "From": "Andrew Rybchenko <arybchenko@solarflare.com>",
        "To": "<dev@dpdk.org>",
        "CC": "Andy Moreton <amoreton@xilinx.com>",
        "Date": "Tue, 22 Sep 2020 09:49:49 +0100",
        "Message-ID": "<1600764594-14752-56-git-send-email-arybchenko@solarflare.com>",
        "X-Mailer": "git-send-email 1.8.3.1",
        "In-Reply-To": "<1600764594-14752-1-git-send-email-arybchenko@solarflare.com>",
        "References": "<1600764594-14752-1-git-send-email-arybchenko@solarflare.com>",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain",
        "X-TM-AS-Product-Ver": "SMEX-12.5.0.1300-8.6.1012-25674.003",
        "X-TM-AS-Result": "No-3.329700-8.000000-10",
        "X-TMASE-MatchedRID": "wIvviX8m+H2L519pb62dJD42t8NRMRfEpy2V7V+tlpvHN9tnHHgXhGZf\n D4A/P8zTTU7VCEN6UZGdY4xFP2TRlPa6n9uAOpMrbBMSu4v05tNLXPA26IG0hN9RlPzeVuQQc1K\n 0mN2c/WhSPALg9dfwGq4oO+XlEpWOYDECqBgPdt5KzOvae5Q0rEN+63YtzViH5DjmdW0+qbHHF5\n noPXOuMur9+n4qMZcc+OCP/AcbW7qCnzYdtGmczKHXpVd0THLO9AcduudkA1NXPwnnY5XL5Niun\n wRb2pQw72OFBJTxaU6JxaLf2x540nk5VN4DJHKITsJqNJWg0Wx2ujvzwAFRNZ6fSoF3Lt+M9VlG\n BjCDncgqBDphkGOjC8qFnb1qA8g8kquk8+1EFNtlpwNsTvdlKQ4fD/I06RGB+nlefiwGml//A5s\n g9wT0wacNND5vNRuBgDLqnrRlXrZ8nn9tnqel2MZW5ai5WKly6giuslCk7p4noaVkaSybXrhboK\n Rei38VlD3aIjM3aw2AZgSfoB986vXqHvOwQGNI+bb8H4W1pJdOfYs/OFAxX3wbYnmd5I9/8Oycc\n FNBL2TKhETi2//sjuP9Cb59K8ACZrS+A8PszW/U9h9N881NSQ==",
        "X-TM-AS-User-Approved-Sender": "Yes",
        "X-TM-AS-User-Blocked-Sender": "No",
        "X-TMASE-Result": "10--3.329700-8.000000",
        "X-TMASE-Version": "SMEX-12.5.0.1300-8.6.1012-25674.003",
        "X-MDID": "1600764623-7NRB5KthVNcL",
        "Subject": "[dpdk-dev] [PATCH 55/60] common/sfc_efx/base: add 256bit type",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.15",
        "Precedence": "list",
        "List-Id": "DPDK patches and discussions <dev.dpdk.org>",
        "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n <mailto:dev-request@dpdk.org?subject=unsubscribe>",
        "List-Archive": "<http://mails.dpdk.org/archives/dev/>",
        "List-Post": "<mailto:dev@dpdk.org>",
        "List-Help": "<mailto:dev-request@dpdk.org?subject=help>",
        "List-Subscribe": "<https://mails.dpdk.org/listinfo/dev>,\n <mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org",
        "Sender": "\"dev\" <dev-bounces@dpdk.org>"
    },
    "content": "From: Andy Moreton <amoreton@xilinx.com>\n\nEF100 requires support for extended-width event descriptors\nfor use with descriptor proxy queues. Extend libefx types\nused for hardware access (and endian conversion) to support\na 256bit data type.\n\nSigned-off-by: Andy Moreton <amoreton@xilinx.com>\nSigned-off-by: Andrew Rybchenko <arybchenko@solarflare.com>\n---\n drivers/common/sfc_efx/base/efx_types.h | 580 +++++++++++++++++++++++-\n 1 file changed, 571 insertions(+), 9 deletions(-)",
    "diff": "diff --git a/drivers/common/sfc_efx/base/efx_types.h b/drivers/common/sfc_efx/base/efx_types.h\nindex ab35e61b84..f7ec9a7378 100644\n--- a/drivers/common/sfc_efx/base/efx_types.h\n+++ b/drivers/common/sfc_efx/base/efx_types.h\n@@ -19,16 +19,16 @@ extern \"C\" {\n /*\n  * Bitfield access\n  *\n- * Solarflare NICs make extensive use of bitfields up to 128 bits\n- * wide.  Since there is no native 128-bit datatype on most systems,\n+ * Solarflare NICs make extensive use of bitfields up to 256 bits\n+ * wide.  Since there is no native 256-bit datatype on most systems,\n  * and since 64-bit datatypes are inefficient on 32-bit systems and\n  * vice versa, we wrap accesses in a way that uses the most efficient\n  * datatype.\n  *\n  * The NICs are PCI devices and therefore little-endian.  Since most\n  * of the quantities that we deal with are DMAed to/from host memory,\n- * we define\tour datatypes (efx_oword_t, efx_qword_t and efx_dword_t)\n- * to be little-endian.\n+ * we define our datatypes (efx_xword_t, efx_oword_t, efx_qword_t and\n+ * efx_dword_t) to be little-endian.\n  *\n  * In the less common case of using PIO for individual register\n  * writes, we construct the little-endian datatype in host memory and\n@@ -93,10 +93,22 @@ extern \"C\" {\n #define\tEFX_DWORD_3_LBN 96\n #define\tEFX_DWORD_3_WIDTH 32\n \n+#define\tEFX_DWORD_4_LBN 128\n+#define\tEFX_DWORD_4_WIDTH 32\n+\n+#define\tEFX_DWORD_5_LBN 160\n+#define\tEFX_DWORD_5_WIDTH 32\n+\n+#define\tEFX_DWORD_6_LBN 192\n+#define\tEFX_DWORD_6_WIDTH 32\n+\n+#define\tEFX_DWORD_7_LBN 224\n+#define\tEFX_DWORD_7_WIDTH 32\n+\n /*\n- * There are intentionally no EFX_QWORD_0 or EFX_QWORD_1 field definitions\n- * here as the implementaion of EFX_QWORD_FIELD and EFX_OWORD_FIELD do not\n- * support field widths larger than 32 bits.\n+ * There are intentionally no EFX_QWORD_<N> field definitions here as the\n+ * implementation of EFX_QWORD_FIELD, EFX_OWORD_FIELD and EFX_XWORD_FIELD\n+ * do not support field widths larger than 32 bits.\n  */\n \n /* Specified attribute (i.e. LBN ow WIDTH) of the specified field */\n@@ -220,6 +232,28 @@ typedef union efx_oword_u {\n \tuint8_t eo_u8[16];\n } efx_oword_t;\n \n+/*\n+ * A hexaword (i.e. 256-bit) datatype\n+ *\n+ * This datatype is defined to be little-endian.\n+ */\n+typedef union efx_xword_u {\n+\tefx_byte_t ex_byte[32];\n+\tefx_word_t ex_word[16];\n+\tefx_dword_t ex_dword[8];\n+\tefx_qword_t ex_qword[4];\n+\tefx_oword_t ex_oword[2];\n+#if EFSYS_HAS_SSE2_M128\n+\t__m128i ex_u128[2];\n+#endif\n+#if EFSYS_HAS_UINT64\n+\tuint64_t ex_u64[4];\n+#endif\n+\tuint32_t ex_u32[8];\n+\tuint16_t ex_u16[16];\n+\tuint8_t ex_u8[32];\n+} efx_xword_t;\n+\n #pragma pack()\n \n #define\t__SWAP16(_x)\t\t\t\t\\\n@@ -295,6 +329,9 @@ typedef union efx_oword_u {\n /* Format string for printing an efx_oword_t */\n #define\tEFX_OWORD_FMT \"0x%08x:%08x:%08x:%08x\"\n \n+/* Format string for printing an efx_xword_t */\n+#define\tEFX_XWORD_FMT \"0x%08x:%08x:%08x:%08x:%08x:%08x:%08x:%08x\"\n+\n /* Parameters for printing an efx_byte_t */\n #define\tEFX_BYTE_VAL(_byte)\t\t\t\t\t\\\n \t((unsigned int)__NATIVE_8((_byte).eb_u8[0]))\n@@ -319,6 +356,17 @@ typedef union efx_oword_u {\n \t((unsigned int)__LE_TO_CPU_32((_oword).eo_u32[1])),\t\\\n \t((unsigned int)__LE_TO_CPU_32((_oword).eo_u32[0]))\n \n+/* Parameters for printing an efx_xword_t */\n+#define\tEFX_XWORD_VAL(_xword)\t\t\t\t\t\\\n+\t((unsigned int)__LE_TO_CPU_32((_xword).ex_u32[7])),\t\\\n+\t((unsigned int)__LE_TO_CPU_32((_xword).ex_u32[6])),\t\\\n+\t((unsigned int)__LE_TO_CPU_32((_xword).ex_u32[5])),\t\\\n+\t((unsigned int)__LE_TO_CPU_32((_xword).ex_u32[4])),\t\\\n+\t((unsigned int)__LE_TO_CPU_32((_xword).ex_u32[3])),\t\\\n+\t((unsigned int)__LE_TO_CPU_32((_xword).ex_u32[2])),\t\\\n+\t((unsigned int)__LE_TO_CPU_32((_xword).ex_u32[1])),\t\\\n+\t((unsigned int)__LE_TO_CPU_32((_xword).ex_u32[0]))\n+\n /*\n  * Stop lint complaining about some shifts.\n  */\n@@ -389,6 +437,34 @@ extern int fix_lint;\n #define\tEFX_EXTRACT8(_element, _min, _max, _low, _high)\t\t\t\\\n \tEFX_EXTRACT_NATIVE(__NATIVE_8(_element), _min, _max, _low, _high)\n \n+#define\tEFX_EXTRACT_XWORD64(_xword, _low, _high)\t\t\t\\\n+\t(EFX_EXTRACT64((_xword).ex_u64[0], FIX_LINT(0), FIX_LINT(63),\t\\\n+\t    _low, _high) |\t\t\t\t\t\t\\\n+\tEFX_EXTRACT64((_xword).ex_u64[1], FIX_LINT(64), FIX_LINT(127),\t\\\n+\t    _low, _high) |\t\t\t\t\t\t\\\n+\tEFX_EXTRACT64((_xword).ex_u64[2], FIX_LINT(128), FIX_LINT(191),\t\\\n+\t    _low, _high) |\t\t\t\t\t\t\\\n+\tEFX_EXTRACT64((_xword).ex_u64[3], FIX_LINT(192), FIX_LINT(255),\t\\\n+\t    _low, _high))\n+\n+#define\tEFX_EXTRACT_XWORD32(_oword, _low, _high)\t\t\t\\\n+\t(EFX_EXTRACT32((_xword).ex_u32[0], FIX_LINT(0), FIX_LINT(31),\t\\\n+\t    _low, _high) |\t\t\t\t\t\t\\\n+\tEFX_EXTRACT32((_xword).ex_u32[1], FIX_LINT(32), FIX_LINT(63),\t\\\n+\t    _low, _high) |\t\t\t\t\t\t\\\n+\tEFX_EXTRACT32((_xword).ex_u32[2], FIX_LINT(64), FIX_LINT(95),\t\\\n+\t    _low, _high) |\t\t\t\t\t\t\\\n+\tEFX_EXTRACT32((_xword).ex_u32[3], FIX_LINT(96), FIX_LINT(127),\t\\\n+\t    _low, _high) |\t\t\t\t\t\t\\\n+\tEFX_EXTRACT32((_xword).ex_u32[4], FIX_LINT(128), FIX_LINT(159),\t\\\n+\t    _low, _high) |\t\t\t\t\t\t\\\n+\tEFX_EXTRACT32((_xword).ex_u32[5], FIX_LINT(160), FIX_LINT(191),\t\\\n+\t    _low, _high) |\t\t\t\t\t\t\\\n+\tEFX_EXTRACT32((_xword).ex_u32[6], FIX_LINT(192), FIX_LINT(223),\t\\\n+\t    _low, _high) |\t\t\t\t\t\t\\\n+\tEFX_EXTRACT32((_xword).ex_u32[7], FIX_LINT(224), FIX_LINT(255),\t\\\n+\t    _low, _high))\n+\n #define\tEFX_EXTRACT_OWORD64(_oword, _low, _high)\t\t\t\\\n \t(EFX_EXTRACT64((_oword).eo_u64[0], FIX_LINT(0), FIX_LINT(63),\t\\\n \t    _low, _high) |\t\t\t\t\t\t\\\n@@ -428,6 +504,14 @@ extern int fix_lint;\n \t    _low, _high))\n \n \n+#define\tEFX_XWORD_FIELD64(_xword, _field)\t\t\t\t\\\n+\t((uint32_t)EFX_EXTRACT_XWORD64(_xword, EFX_LOW_BIT(_field),\t\\\n+\t    EFX_HIGH_BIT(_field)) & EFX_MASK32(_field))\n+\n+#define\tEFX_XWORD_FIELD32(_xword, _field)\t\t\t\t\\\n+\t(EFX_EXTRACT_XWORD32(_xword, EFX_LOW_BIT(_field),\t\t\\\n+\t    EFX_HIGH_BIT(_field)) & EFX_MASK32(_field))\n+\n #define\tEFX_OWORD_FIELD64(_oword, _field)\t\t\t\t\\\n \t((uint32_t)EFX_EXTRACT_OWORD64(_oword, EFX_LOW_BIT(_field),\t\\\n \t    EFX_HIGH_BIT(_field)) & EFX_MASK32(_field))\n@@ -457,6 +541,22 @@ extern int fix_lint;\n \t    EFX_HIGH_BIT(_field)) & EFX_MASK8(_field))\n \n \n+#define\tEFX_XWORD_IS_EQUAL64(_xword_a, _xword_b)\t\t\t\\\n+\t((_xword_a).ex_u64[0] == (_xword_b).ex_u64[0] &&\t\t\\\n+\t    (_xword_a).ex_u64[1] == (_xword_b).ex_u64[1] &&\t\t\\\n+\t    (_xword_a).ex_u64[2] == (_xword_b).ex_u64[2] &&\t\t\\\n+\t    (_xword_a).ex_u64[3] == (_xword_b).ex_u64[3])\n+\n+#define\tEFX_XWORD_IS_EQUAL32(_xword_a, _xword_b)\t\t\t\\\n+\t((_xword_a).ex_u32[0] == (_xword_b).ex_u32[0] &&\t\t\\\n+\t    (_xword_a).ex_u32[1] == (_xword_b).ex_u32[1] &&\t\t\\\n+\t    (_xword_a).ex_u32[2] == (_xword_b).ex_u32[2] &&\t\t\\\n+\t    (_xword_a).ex_u32[3] == (_xword_b).ex_u32[3] &&\t\t\\\n+\t    (_xword_a).ex_u32[4] == (_xword_b).ex_u32[4] &&\t\t\\\n+\t    (_xword_a).ex_u32[5] == (_xword_b).ex_u32[5] &&\t\t\\\n+\t    (_xword_a).ex_u32[6] == (_xword_b).ex_u32[6] &&\t\t\\\n+\t    (_xword_a).ex_u32[7] == (_xword_b).ex_u32[7])\n+\n #define\tEFX_OWORD_IS_EQUAL64(_oword_a, _oword_b)\t\t\t\\\n \t((_oword_a).eo_u64[0] == (_oword_b).eo_u64[0] &&\t\t\\\n \t    (_oword_a).eo_u64[1] == (_oword_b).eo_u64[1])\n@@ -484,6 +584,22 @@ extern int fix_lint;\n \t((_byte_a).eb_u8[0] == (_byte_b).eb_u8[0])\n \n \n+#define\tEFX_XWORD_IS_ZERO64(_xword)\t\t\t\t\t\\\n+\t(((_xword).ex_u64[0] |\t\t\t\t\t\t\\\n+\t    (_xword).ex_u64[1] |\t\t\t\t\t\\\n+\t    (_xword).ex_u64[2] |\t\t\t\t\t\\\n+\t    (_xword).ex_u64[3]) == 0)\n+\n+#define\tEFX_XWORD_IS_ZERO32(_xword)\t\t\t\t\t\\\n+\t(((_xword).ex_u32[0] |\t\t\t\t\t\t\\\n+\t    (_xword).ex_u32[1] |\t\t\t\t\t\\\n+\t    (_xword).ex_u32[2] |\t\t\t\t\t\\\n+\t    (_xword).ex_u32[3] |\t\t\t\t\t\\\n+\t    (_xword).ex_u32[4] |\t\t\t\t\t\\\n+\t    (_xword).ex_u32[5] |\t\t\t\t\t\\\n+\t    (_xword).ex_u32[6] |\t\t\t\t\t\\\n+\t    (_xword).ex_u32[7]) == 0)\n+\n #define\tEFX_OWORD_IS_ZERO64(_oword)\t\t\t\t\t\\\n \t(((_oword).eo_u64[0] |\t\t\t\t\t\t\\\n \t    (_oword).eo_u64[1]) == 0)\n@@ -511,6 +627,22 @@ extern int fix_lint;\n \t(((_byte).eb_u8[0]) == 0)\n \n \n+#define\tEFX_XWORD_IS_SET64(_xword)\t\t\t\t\t\\\n+\t(((_xword).ex_u64[0] &\t\t\t\t\t\t\\\n+\t    (_xword).ex_u64[1] &\t\t\t\t\t\\\n+\t    (_xword).ex_u64[2] &\t\t\t\t\t\\\n+\t    (_xword).ex_u64[3]) == ~((uint64_t)0))\n+\n+#define\tEFX_XWORD_IS_SET32(_xword)\t\t\t\t\t\\\n+\t(((_xword).ex_u32[0] &\t\t\t\t\t\t\\\n+\t    (_xword).ex_u32[1] &\t\t\t\t\t\\\n+\t    (_xword).ex_u32[2] &\t\t\t\t\t\\\n+\t    (_xword).ex_u32[3] &\t\t\t\t\t\\\n+\t    (_xword).ex_u32[4] &\t\t\t\t\t\\\n+\t    (_xword).ex_u32[5] &\t\t\t\t\t\\\n+\t    (_xword).ex_u32[6] &\t\t\t\t\t\\\n+\t    (_xword).ex_u32[7]) == ~((uint32_t)0))\n+\n #define\tEFX_OWORD_IS_SET64(_oword)\t\t\t\t\t\\\n \t(((_oword).eo_u64[0] &\t\t\t\t\t\t\\\n \t    (_oword).eo_u64[1]) == ~((uint64_t)0))\n@@ -668,6 +800,108 @@ extern int fix_lint;\n \t    EFX_INSERT_FIELD_NATIVE8(_min, _max, _field9, _value9) |\t\\\n \t    EFX_INSERT_FIELD_NATIVE8(_min, _max, _field10, _value10))\n \n+#define\tEFX_POPULATE_XWORD64(_xword,\t\t\t\t\t\\\n+\t    _field1, _value1, _field2, _value2, _field3, _value3,\t\\\n+\t    _field4, _value4, _field5, _value5,\t_field6, _value6,\t\\\n+\t    _field7, _value7, _field8, _value8,\t_field9, _value9,\t\\\n+\t    _field10, _value10)\t\t\t\t\t\t\\\n+\tdo {\t\t\t\t\t\t\t\t\\\n+\t\t_NOTE(CONSTANTCONDITION)\t\t\t\t\\\n+\t\t(_xword).ex_u64[0] = EFX_INSERT_FIELDS64(0, 63,\t\t\\\n+\t\t    _field1, _value1, _field2, _value2,\t\t\t\\\n+\t\t    _field3, _value3, _field4, _value4,\t\t\t\\\n+\t\t    _field5, _value5, _field6, _value6,\t\t\t\\\n+\t\t    _field7, _value7, _field8, _value8,\t\t\t\\\n+\t\t    _field9, _value9, _field10, _value10);\t\t\\\n+\t\t_NOTE(CONSTANTCONDITION)\t\t\t\t\\\n+\t\t(_xword).ex_u64[1] = EFX_INSERT_FIELDS64(64, 127,\t\\\n+\t\t    _field1, _value1, _field2, _value2,\t\t\t\\\n+\t\t    _field3, _value3, _field4, _value4,\t\t\t\\\n+\t\t    _field5, _value5, _field6, _value6,\t\t\t\\\n+\t\t    _field7, _value7, _field8, _value8,\t\t\t\\\n+\t\t    _field9, _value9, _field10, _value10);\t\t\\\n+\t\t_NOTE(CONSTANTCONDITION)\t\t\t\t\\\n+\t\t(_xword).ex_u64[2] = EFX_INSERT_FIELDS64(128, 191,\t\\\n+\t\t    _field1, _value1, _field2, _value2,\t\t\t\\\n+\t\t    _field3, _value3, _field4, _value4,\t\t\t\\\n+\t\t    _field5, _value5, _field6, _value6,\t\t\t\\\n+\t\t    _field7, _value7, _field8, _value8,\t\t\t\\\n+\t\t    _field9, _value9, _field10, _value10);\t\t\\\n+\t\t_NOTE(CONSTANTCONDITION)\t\t\t\t\\\n+\t\t(_xword).ex_u64[3] = EFX_INSERT_FIELDS64(192, 255,\t\\\n+\t\t    _field1, _value1, _field2, _value2,\t\t\t\\\n+\t\t    _field3, _value3, _field4, _value4,\t\t\t\\\n+\t\t    _field5, _value5, _field6, _value6,\t\t\t\\\n+\t\t    _field7, _value7, _field8, _value8,\t\t\t\\\n+\t\t    _field9, _value9, _field10, _value10);\t\t\\\n+\t_NOTE(CONSTANTCONDITION)\t\t\t\t\t\\\n+\t} while (B_FALSE)\n+\n+#define\tEFX_POPULATE_XWORD32(_xword,\t\t\t\t\t\\\n+\t    _field1, _value1, _field2, _value2, _field3, _value3,\t\\\n+\t    _field4, _value4, _field5, _value5,\t_field6, _value6,\t\\\n+\t    _field7, _value7, _field8, _value8,\t_field9, _value9,\t\\\n+\t    _field10, _value10)\t\t\t\t\t\t\\\n+\tdo {\t\t\t\t\t\t\t\t\\\n+\t\t_NOTE(CONSTANTCONDITION)\t\t\t\t\\\n+\t\t(_xword).ex_u32[0] = EFX_INSERT_FIELDS32(0, 31,\t\t\\\n+\t\t    _field1, _value1, _field2, _value2,\t\t\t\\\n+\t\t    _field3, _value3, _field4, _value4,\t\t\t\\\n+\t\t    _field5, _value5, _field6, _value6,\t\t\t\\\n+\t\t    _field7, _value7, _field8, _value8,\t\t\t\\\n+\t\t    _field9, _value9, _field10, _value10);\t\t\\\n+\t\t_NOTE(CONSTANTCONDITION)\t\t\t\t\\\n+\t\t(_xword).ex_u32[1] = EFX_INSERT_FIELDS32(32, 63,\t\\\n+\t\t    _field1, _value1, _field2, _value2,\t\t\t\\\n+\t\t    _field3, _value3, _field4, _value4,\t\t\t\\\n+\t\t    _field5, _value5, _field6, _value6,\t\t\t\\\n+\t\t    _field7, _value7, _field8, _value8,\t\t\t\\\n+\t\t    _field9, _value9, _field10, _value10);\t\t\\\n+\t\t_NOTE(CONSTANTCONDITION)\t\t\t\t\\\n+\t\t(_xword).ex_u32[2] = EFX_INSERT_FIELDS32(64, 95,\t\\\n+\t\t    _field1, _value1, _field2, _value2,\t\t\t\\\n+\t\t    _field3, _value3, _field4, _value4,\t\t\t\\\n+\t\t    _field5, _value5, _field6, _value6,\t\t\t\\\n+\t\t    _field7, _value7, _field8, _value8,\t\t\t\\\n+\t\t    _field9, _value9, _field10, _value10);\t\t\\\n+\t\t_NOTE(CONSTANTCONDITION)\t\t\t\t\\\n+\t\t(_xword).ex_u32[3] = EFX_INSERT_FIELDS32(96, 127,\t\\\n+\t\t    _field1, _value1, _field2, _value2,\t\t\t\\\n+\t\t    _field3, _value3, _field4, _value4,\t\t\t\\\n+\t\t    _field5, _value5, _field6, _value6,\t\t\t\\\n+\t\t    _field7, _value7, _field8, _value8,\t\t\t\\\n+\t\t    _field9, _value9, _field10, _value10);\t\t\\\n+\t\t_NOTE(CONSTANTCONDITION)\t\t\t\t\\\n+\t\t(_xword).ex_u32[4] = EFX_INSERT_FIELDS32(128, 159,\t\\\n+\t\t    _field1, _value1, _field2, _value2,\t\t\t\\\n+\t\t    _field3, _value3, _field4, _value4,\t\t\t\\\n+\t\t    _field5, _value5, _field6, _value6,\t\t\t\\\n+\t\t    _field7, _value7, _field8, _value8,\t\t\t\\\n+\t\t    _field9, _value9, _field10, _value10);\t\t\\\n+\t\t_NOTE(CONSTANTCONDITION)\t\t\t\t\\\n+\t\t(_xword).ex_u32[5] = EFX_INSERT_FIELDS32(160, 191,\t\\\n+\t\t    _field1, _value1, _field2, _value2,\t\t\t\\\n+\t\t    _field3, _value3, _field4, _value4,\t\t\t\\\n+\t\t    _field5, _value5, _field6, _value6,\t\t\t\\\n+\t\t    _field7, _value7, _field8, _value8,\t\t\t\\\n+\t\t    _field9, _value9, _field10, _value10);\t\t\\\n+\t\t_NOTE(CONSTANTCONDITION)\t\t\t\t\\\n+\t\t(_xword).ex_u32[6] = EFX_INSERT_FIELDS32(192, 223,\t\\\n+\t\t    _field1, _value1, _field2, _value2,\t\t\t\\\n+\t\t    _field3, _value3, _field4, _value4,\t\t\t\\\n+\t\t    _field5, _value5, _field6, _value6,\t\t\t\\\n+\t\t    _field7, _value7, _field8, _value8,\t\t\t\\\n+\t\t    _field9, _value9, _field10, _value10);\t\t\\\n+\t\t_NOTE(CONSTANTCONDITION)\t\t\t\t\\\n+\t\t(_xword).ex_u32[7] = EFX_INSERT_FIELDS32(224, 255,\t\\\n+\t\t    _field1, _value1, _field2, _value2,\t\t\t\\\n+\t\t    _field3, _value3, _field4, _value4,\t\t\t\\\n+\t\t    _field5, _value5, _field6, _value6,\t\t\t\\\n+\t\t    _field7, _value7, _field8, _value8,\t\t\t\\\n+\t\t    _field9, _value9, _field10, _value10);\t\t\\\n+\t_NOTE(CONSTANTCONDITION)\t\t\t\t\t\\\n+\t} while (B_FALSE)\n+\n #define\tEFX_POPULATE_OWORD64(_oword,\t\t\t\t\t\\\n \t    _field1, _value1, _field2, _value2, _field3, _value3,\t\\\n \t    _field4, _value4, _field5, _value5,\t_field6, _value6,\t\\\n@@ -815,6 +1049,82 @@ extern int fix_lint;\n \t_NOTE(CONSTANTCONDITION)\t\t\t\t\t\\\n \t} while (B_FALSE)\n \n+/* Populate a hexaword field with various numbers of arguments */\n+#define\tEFX_POPULATE_XWORD_10 EFX_POPULATE_XWORD\n+\n+#define\tEFX_POPULATE_XWORD_9(_xword,\t\t\t\t\t\\\n+\t    _field1, _value1, _field2, _value2, _field3, _value3,\t\\\n+\t    _field4, _value4, _field5, _value5,\t_field6, _value6,\t\\\n+\t    _field7, _value7, _field8, _value8,\t_field9, _value9)\t\\\n+\tEFX_POPULATE_XWORD_10(_xword, EFX_DUMMY_FIELD, 0,\t\t\\\n+\t    _field1, _value1, _field2, _value2, _field3, _value3,\t\\\n+\t    _field4, _value4, _field5, _value5,\t_field6, _value6,\t\\\n+\t    _field7, _value7, _field8, _value8,\t_field9, _value9)\n+\n+#define\tEFX_POPULATE_XWORD_8(_xword,\t\t\t\t\t\\\n+\t    _field1, _value1, _field2, _value2, _field3, _value3,\t\\\n+\t    _field4, _value4, _field5, _value5,\t_field6, _value6,\t\\\n+\t    _field7, _value7, _field8, _value8)\t\t\t\t\\\n+\tEFX_POPULATE_XWORD_9(_xword, EFX_DUMMY_FIELD, 0,\t\t\\\n+\t    _field1, _value1, _field2, _value2, _field3, _value3,\t\\\n+\t    _field4, _value4, _field5, _value5,\t_field6, _value6,\t\\\n+\t    _field7, _value7, _field8, _value8)\n+\n+#define\tEFX_POPULATE_XWORD_7(_xword,\t\t\t\t\t\\\n+\t    _field1, _value1, _field2, _value2, _field3, _value3,\t\\\n+\t    _field4, _value4, _field5, _value5,\t_field6, _value6,\t\\\n+\t    _field7, _value7)\t\t\t\t\t\t\\\n+\tEFX_POPULATE_XWORD_8(_xword, EFX_DUMMY_FIELD, 0,\t\t\\\n+\t    _field1, _value1, _field2, _value2, _field3, _value3,\t\\\n+\t    _field4, _value4, _field5, _value5,\t_field6, _value6,\t\\\n+\t    _field7, _value7)\n+\n+#define\tEFX_POPULATE_XWORD_6(_xword,\t\t\t\t\t\\\n+\t    _field1, _value1, _field2, _value2, _field3, _value3,\t\\\n+\t    _field4, _value4, _field5, _value5,\t_field6, _value6)\t\\\n+\tEFX_POPULATE_XWORD_7(_xword, EFX_DUMMY_FIELD, 0,\t\t\\\n+\t    _field1, _value1, _field2, _value2, _field3, _value3,\t\\\n+\t    _field4, _value4, _field5, _value5,\t_field6, _value6)\n+\n+#define\tEFX_POPULATE_XWORD_5(_xword,\t\t\t\t\t\\\n+\t    _field1, _value1, _field2, _value2, _field3, _value3,\t\\\n+\t    _field4, _value4, _field5, _value5)\t\t\t\t\\\n+\tEFX_POPULATE_XWORD_6(_xword, EFX_DUMMY_FIELD, 0,\t\t\\\n+\t    _field1, _value1, _field2, _value2, _field3, _value3,\t\\\n+\t    _field4, _value4, _field5, _value5)\n+\n+#define\tEFX_POPULATE_XWORD_4(_xword,\t\t\t\t\t\\\n+\t    _field1, _value1, _field2, _value2, _field3, _value3,\t\\\n+\t    _field4, _value4)\t\t\t\t\t\t\\\n+\tEFX_POPULATE_XWORD_5(_xword, EFX_DUMMY_FIELD, 0,\t\t\\\n+\t    _field1, _value1, _field2, _value2, _field3, _value3,\t\\\n+\t    _field4, _value4)\n+\n+#define\tEFX_POPULATE_XWORD_3(_xword,\t\t\t\t\t\\\n+\t    _field1, _value1, _field2, _value2, _field3, _value3)\t\\\n+\tEFX_POPULATE_XWORD_4(_xword, EFX_DUMMY_FIELD, 0,\t\t\\\n+\t    _field1, _value1, _field2, _value2, _field3, _value3)\n+\n+#define\tEFX_POPULATE_XWORD_2(_xword,\t\t\t\t\t\\\n+\t    _field1, _value1, _field2, _value2)\t\t\t\t\\\n+\tEFX_POPULATE_XWORD_3(_xword, EFX_DUMMY_FIELD, 0,\t\t\\\n+\t    _field1, _value1, _field2, _value2)\n+\n+#define\tEFX_POPULATE_XWORD_1(_xword,\t\t\t\t\t\\\n+\t    _field1, _value1)\t\t\t\t\t\t\\\n+\tEFX_POPULATE_XWORD_2(_xword, EFX_DUMMY_FIELD, 0,\t\t\\\n+\t    _field1, _value1)\n+\n+#define\tEFX_ZERO_XWORD(_xword)\t\t\t\t\t\t\\\n+\tEFX_POPULATE_XWORD_1(_xword, EFX_DUMMY_FIELD, 0)\n+\n+#define\tEFX_SET_XWORD(_xword)\t\t\t\t\t\t\\\n+\tEFX_POPULATE_XWORD_8(_xword,\t\t\t\t\t\\\n+\t    EFX_DWORD_0, 0xffffffff, EFX_DWORD_1, 0xffffffff,\t\t\\\n+\t    EFX_DWORD_2, 0xffffffff, EFX_DWORD_3, 0xffffffff,\t\t\\\n+\t    EFX_DWORD_4, 0xffffffff, EFX_DWORD_5, 0xffffffff,\t\t\\\n+\t    EFX_DWORD_6, 0xffffffff, EFX_DWORD_7, 0xffffffff)\n+\n /* Populate an octword field with various numbers of arguments */\n #define\tEFX_POPULATE_OWORD_10 EFX_POPULATE_OWORD\n \n@@ -1210,6 +1520,64 @@ extern int fix_lint;\n #define\tEFX_INPLACE_MASK8(_min, _max, _field)\t\t\t\t\\\n \tEFX_INSERT_FIELD8(_min, _max, _field, EFX_MASK8(_field))\n \n+#define\tEFX_SET_XWORD_FIELD64(_xword, _field, _value)\t\t\t\\\n+\tdo {\t\t\t\t\t\t\t\t\\\n+\t\t_NOTE(CONSTANTCONDITION)\t\t\t\t\\\n+\t\t(_xword).ex_u64[0] = (((_xword).ex_u64[0] &\t\t\\\n+\t\t    ~EFX_INPLACE_MASK64(0, 63, _field)) |\t\t\\\n+\t\t    EFX_INSERT_FIELD64(0, 63, _field, _value));\t\t\\\n+\t\t_NOTE(CONSTANTCONDITION)\t\t\t\t\\\n+\t\t(_xword).ex_u64[1] = (((_xword).ex_u64[1] &\t\t\\\n+\t\t    ~EFX_INPLACE_MASK64(64, 127, _field)) |\t\t\\\n+\t\t    EFX_INSERT_FIELD64(64, 127, _field, _value));\t\\\n+\t\t_NOTE(CONSTANTCONDITION)\t\t\t\t\\\n+\t\t(_xword).ex_u64[2] = (((_xword).ex_u64[2] &\t\t\\\n+\t\t    ~EFX_INPLACE_MASK64(128, 191, _field)) |\t\t\\\n+\t\t    EFX_INSERT_FIELD64(128, 191, _field, _value));\t\\\n+\t\t_NOTE(CONSTANTCONDITION)\t\t\t\t\\\n+\t\t(_xword).ex_u64[3] = (((_xword).ex_u64[3] &\t\t\\\n+\t\t    ~EFX_INPLACE_MASK64(192, 255, _field)) |\t\t\\\n+\t\t    EFX_INSERT_FIELD64(192, 255, _field, _value));\t\\\n+\t_NOTE(CONSTANTCONDITION)\t\t\t\t\t\\\n+\t} while (B_FALSE)\n+\n+#define\tEFX_SET_XWORD_FIELD32(_xword, _field, _value)\t\t\t\\\n+\tdo {\t\t\t\t\t\t\t\t\\\n+\t\t_NOTE(CONSTANTCONDITION)\t\t\t\t\\\n+\t\t(_xword).ex_u32[0] = (((_xword).ex_u32[0] &\t\t\\\n+\t\t    ~EFX_INPLACE_MASK32(0, 31, _field)) |\t\t\\\n+\t\t    EFX_INSERT_FIELD32(0, 31, _field, _value));\t\t\\\n+\t\t_NOTE(CONSTANTCONDITION)\t\t\t\t\\\n+\t\t(_xword).ex_u32[1] = (((_xword).ex_u32[1] &\t\t\\\n+\t\t    ~EFX_INPLACE_MASK32(32, 63, _field)) |\t\t\\\n+\t\t    EFX_INSERT_FIELD32(32, 63, _field, _value));\t\\\n+\t\t_NOTE(CONSTANTCONDITION)\t\t\t\t\\\n+\t\t(_xword).ex_u32[2] = (((_xword).ex_u32[2] &\t\t\\\n+\t\t    ~EFX_INPLACE_MASK32(64, 95, _field)) |\t\t\\\n+\t\t    EFX_INSERT_FIELD32(64, 95, _field, _value));\t\\\n+\t\t_NOTE(CONSTANTCONDITION)\t\t\t\t\\\n+\t\t(_xword).ex_u32[3] = (((_xword).ex_u32[3] &\t\t\\\n+\t\t    ~EFX_INPLACE_MASK32(96, 127, _field)) |\t\t\\\n+\t\t    EFX_INSERT_FIELD32(96, 127, _field, _value));\t\\\n+\t\t_NOTE(CONSTANTCONDITION)\t\t\t\t\\\n+\t\t(_xword).ex_u32[4] = (((_xword).ex_u32[4] &\t\t\\\n+\t\t    ~EFX_INPLACE_MASK32(128, 159, _field)) |\t\t\\\n+\t\t    EFX_INSERT_FIELD32(128, 159, _field, _value));\t\\\n+\t\t_NOTE(CONSTANTCONDITION)\t\t\t\t\\\n+\t\t(_xword).ex_u32[5] = (((_xword).ex_u32[5] &\t\t\\\n+\t\t    ~EFX_INPLACE_MASK32(160, 191, _field)) |\t\t\\\n+\t\t    EFX_INSERT_FIELD32(160, 191, _field, _value));\t\\\n+\t\t_NOTE(CONSTANTCONDITION)\t\t\t\t\\\n+\t\t(_xword).ex_u32[6] = (((_xword).ex_u32[6] &\t\t\\\n+\t\t    ~EFX_INPLACE_MASK32(192, 223, _field)) |\t\t\\\n+\t\t    EFX_INSERT_FIELD32(192, 223, _field, _value));\t\\\n+\t\t_NOTE(CONSTANTCONDITION)\t\t\t\t\\\n+\t\t(_xword).ex_u32[7] = (((_xword).ex_u32[7] &\t\t\\\n+\t\t    ~EFX_INPLACE_MASK32(224, 255, _field)) |\t\t\\\n+\t\t    EFX_INSERT_FIELD32(224, 255, _field, _value));\t\\\n+\t_NOTE(CONSTANTCONDITION)\t\t\t\t\t\\\n+\t} while (B_FALSE)\n+\n #define\tEFX_SET_OWORD_FIELD64(_oword, _field, _value)\t\t\t\\\n \tdo {\t\t\t\t\t\t\t\t\\\n \t\t_NOTE(CONSTANTCONDITION)\t\t\t\t\\\n@@ -1317,6 +1685,107 @@ extern int fix_lint;\n \t\t(uint8_t)(1 << EFX_SSUB((_bit), (_base))) :\t\t\\\n \t\t0U)\n \n+#define\tEFX_SET_XWORD_BIT64(_xword, _bit)\t\t\t\t\\\n+\tdo {\t\t\t\t\t\t\t\t\\\n+\t\t_NOTE(CONSTANTCONDITION)\t\t\t\t\\\n+\t\t(_xword).ex_u64[0] |=\t\t\t\t\t\\\n+\t\t    __CPU_TO_LE_64(EFX_SHIFT64(_bit, FIX_LINT(0)));\t\\\n+\t\t(_xword).ex_u64[1] |=\t\t\t\t\t\\\n+\t\t    __CPU_TO_LE_64(EFX_SHIFT64(_bit, FIX_LINT(64)));\t\\\n+\t\t(_xword).ex_u64[2] |=\t\t\t\t\t\\\n+\t\t    __CPU_TO_LE_64(EFX_SHIFT64(_bit, FIX_LINT(128)));\t\\\n+\t\t(_xword).ex_u64[3] |=\t\t\t\t\t\\\n+\t\t    __CPU_TO_LE_64(EFX_SHIFT64(_bit, FIX_LINT(192)));\t\\\n+\t_NOTE(CONSTANTCONDITION)\t\t\t\t\t\\\n+\t} while (B_FALSE)\n+\n+#define\tEFX_SET_XWORD_BIT32(_xword, _bit)\t\t\t\t\\\n+\tdo {\t\t\t\t\t\t\t\t\\\n+\t\t_NOTE(CONSTANTCONDITION)\t\t\t\t\\\n+\t\t(_xword).ex_u32[0] |=\t\t\t\t\t\\\n+\t\t    __CPU_TO_LE_32(EFX_SHIFT32(_bit, FIX_LINT(0)));\t\\\n+\t\t(_xword).ex_u32[1] |=\t\t\t\t\t\\\n+\t\t    __CPU_TO_LE_32(EFX_SHIFT32(_bit, FIX_LINT(32)));\t\\\n+\t\t(_xword).ex_u32[2] |=\t\t\t\t\t\\\n+\t\t    __CPU_TO_LE_32(EFX_SHIFT32(_bit, FIX_LINT(64)));\t\\\n+\t\t(_xword).ex_u32[3] |=\t\t\t\t\t\\\n+\t\t    __CPU_TO_LE_32(EFX_SHIFT32(_bit, FIX_LINT(96)));\t\\\n+\t\t(_xword).ex_u32[4] |=\t\t\t\t\t\\\n+\t\t    __CPU_TO_LE_32(EFX_SHIFT32(_bit, FIX_LINT(128)));\t\\\n+\t\t(_xword).ex_u32[5] |=\t\t\t\t\t\\\n+\t\t    __CPU_TO_LE_32(EFX_SHIFT32(_bit, FIX_LINT(160)));\t\\\n+\t\t(_xword).ex_u32[6] |=\t\t\t\t\t\\\n+\t\t    __CPU_TO_LE_32(EFX_SHIFT32(_bit, FIX_LINT(192)));\t\\\n+\t\t(_xword).ex_u32[7] |=\t\t\t\t\t\\\n+\t\t    __CPU_TO_LE_32(EFX_SHIFT32(_bit, FIX_LINT(224)));\t\\\n+\t_NOTE(CONSTANTCONDITION)\t\t\t\t\t\\\n+\t} while (B_FALSE)\n+\n+#define\tEFX_CLEAR_XWORD_BIT64(_xword, _bit)\t\t\t\t\\\n+\tdo {\t\t\t\t\t\t\t\t\\\n+\t\t_NOTE(CONSTANTCONDITION)\t\t\t\t\\\n+\t\t(_xword).ex_u64[0] &=\t\t\t\t\t\\\n+\t\t    __CPU_TO_LE_64(~EFX_SHIFT64(_bit, FIX_LINT(0)));\t\\\n+\t\t(_xword).ex_u64[1] &=\t\t\t\t\t\\\n+\t\t    __CPU_TO_LE_64(~EFX_SHIFT64(_bit, FIX_LINT(64)));\t\\\n+\t\t(_xword).ex_u64[2] &=\t\t\t\t\t\\\n+\t\t    __CPU_TO_LE_64(~EFX_SHIFT64(_bit, FIX_LINT(128)));\t\\\n+\t\t(_xword).ex_u64[3] &=\t\t\t\t\t\\\n+\t\t    __CPU_TO_LE_64(~EFX_SHIFT64(_bit, FIX_LINT(192)));\t\\\n+\t_NOTE(CONSTANTCONDITION)\t\t\t\t\t\\\n+\t} while (B_FALSE)\n+\n+#define\tEFX_CLEAR_XWORD_BIT32(_xword, _bit)\t\t\t\t\\\n+\tdo {\t\t\t\t\t\t\t\t\\\n+\t\t_NOTE(CONSTANTCONDITION)\t\t\t\t\\\n+\t\t(_xword).ex_u32[0] &=\t\t\t\t\t\\\n+\t\t    __CPU_TO_LE_32(~EFX_SHIFT32(_bit, FIX_LINT(0)));\t\\\n+\t\t(_xword).ex_u32[1] &=\t\t\t\t\t\\\n+\t\t    __CPU_TO_LE_32(~EFX_SHIFT32(_bit, FIX_LINT(32)));\t\\\n+\t\t(_xword).ex_u32[2] &=\t\t\t\t\t\\\n+\t\t    __CPU_TO_LE_32(~EFX_SHIFT32(_bit, FIX_LINT(64)));\t\\\n+\t\t(_xword).ex_u32[3] &=\t\t\t\t\t\\\n+\t\t    __CPU_TO_LE_32(~EFX_SHIFT32(_bit, FIX_LINT(96)));\t\\\n+\t\t(_xword).ex_u32[4] &=\t\t\t\t\t\\\n+\t\t    __CPU_TO_LE_32(~EFX_SHIFT32(_bit, FIX_LINT(128)));\t\\\n+\t\t(_xword).ex_u32[5] &=\t\t\t\t\t\\\n+\t\t    __CPU_TO_LE_32(~EFX_SHIFT32(_bit, FIX_LINT(160)));\t\\\n+\t\t(_xword).ex_u32[6] &=\t\t\t\t\t\\\n+\t\t    __CPU_TO_LE_32(~EFX_SHIFT32(_bit, FIX_LINT(192)));\t\\\n+\t\t(_xword).ex_u32[7] &=\t\t\t\t\t\\\n+\t\t    __CPU_TO_LE_32(~EFX_SHIFT32(_bit, FIX_LINT(224)));\t\\\n+\t_NOTE(CONSTANTCONDITION)\t\t\t\t\t\\\n+\t} while (B_FALSE)\n+\n+#define\tEFX_TEST_XWORD_BIT64(_xword, _bit)\t\t\t\t\\\n+\t(((_xword).ex_u64[0] &\t\t\t\t\t\t\\\n+\t\t    __CPU_TO_LE_64(EFX_SHIFT64(_bit, FIX_LINT(0)))) ||\t\\\n+\t((_xword).ex_u64[1] &\t\t\t\t\t\t\\\n+\t\t    __CPU_TO_LE_64(EFX_SHIFT64(_bit, FIX_LINT(64)))) ||\t\\\n+\t((_xword).ex_u64[2] &\t\t\t\t\t\t\\\n+\t\t    __CPU_TO_LE_64(EFX_SHIFT64(_bit, FIX_LINT(128)))) ||\\\n+\t((_xword).ex_u64[3] &\t\t\t\t\t\t\\\n+\t\t    __CPU_TO_LE_64(EFX_SHIFT64(_bit, FIX_LINT(192)))))\n+\n+#define\tEFX_TEST_XWORD_BIT32(_xword, _bit)\t\t\t\t\\\n+\t(((_xword).ex_u32[0] &\t\t\t\t\t\t\\\n+\t\t    __CPU_TO_LE_32(EFX_SHIFT32(_bit, FIX_LINT(0)))) ||\t\\\n+\t((_xword).ex_u32[1] &\t\t\t\t\t\t\\\n+\t\t    __CPU_TO_LE_32(EFX_SHIFT32(_bit, FIX_LINT(32)))) ||\t\\\n+\t((_xword).ex_u32[2] &\t\t\t\t\t\t\\\n+\t\t    __CPU_TO_LE_32(EFX_SHIFT32(_bit, FIX_LINT(64)))) ||\t\\\n+\t((_xword).ex_u32[3] &\t\t\t\t\t\t\\\n+\t\t    __CPU_TO_LE_32(EFX_SHIFT32(_bit, FIX_LINT(96)))) ||\t\\\n+\t((_xword).ex_u32[4] &\t\t\t\t\t\t\\\n+\t\t    __CPU_TO_LE_32(EFX_SHIFT32(_bit, FIX_LINT(128)))) ||\\\n+\t((_xword).ex_u32[5] &\t\t\t\t\t\t\\\n+\t\t    __CPU_TO_LE_32(EFX_SHIFT32(_bit, FIX_LINT(160)))) ||\\\n+\t((_xword).ex_u32[6] &\t\t\t\t\t\t\\\n+\t\t    __CPU_TO_LE_32(EFX_SHIFT32(_bit, FIX_LINT(192)))) ||\\\n+\t((_xword).ex_u32[7] &\t\t\t\t\t\t\\\n+\t\t    __CPU_TO_LE_32(EFX_SHIFT32(_bit, FIX_LINT(224)))))\n+\n+\n #define\tEFX_SET_OWORD_BIT64(_oword, _bit)\t\t\t\t\\\n \tdo {\t\t\t\t\t\t\t\t\\\n \t\t_NOTE(CONSTANTCONDITION)\t\t\t\t\\\n@@ -1486,6 +1955,50 @@ extern int fix_lint;\n \t\t    __NATIVE_8(EFX_SHIFT8(_bit, FIX_LINT(0)))) != 0)\n \n \n+#define\tEFX_OR_XWORD64(_xword1, _xword2)\t\t\t\t\\\n+\tdo {\t\t\t\t\t\t\t\t\\\n+\t\t(_xword1).ex_u64[0] |= (_xword2).ex_u64[0];\t\t\\\n+\t\t(_xword1).ex_u64[1] |= (_xword2).ex_u64[1];\t\t\\\n+\t\t(_xword1).ex_u64[2] |= (_xword2).ex_u64[2];\t\t\\\n+\t\t(_xword1).ex_u64[3] |= (_xword2).ex_u64[3];\t\t\\\n+\t_NOTE(CONSTANTCONDITION)\t\t\t\t\t\\\n+\t} while (B_FALSE)\n+\n+#define\tEFX_OR_XWORD32(_xword1, _xword2)\t\t\t\t\\\n+\tdo {\t\t\t\t\t\t\t\t\\\n+\t\t(_xword1).ex_u32[0] |= (_xword2).ex_u32[0];\t\t\\\n+\t\t(_xword1).ex_u32[1] |= (_xword2).ex_u32[1];\t\t\\\n+\t\t(_xword1).ex_u32[2] |= (_xword2).ex_u32[2];\t\t\\\n+\t\t(_xword1).ex_u32[3] |= (_xword2).ex_u32[3];\t\t\\\n+\t\t(_xword1).ex_u32[4] |= (_xword2).ex_u32[4];\t\t\\\n+\t\t(_xword1).ex_u32[5] |= (_xword2).ex_u32[5];\t\t\\\n+\t\t(_xword1).ex_u32[6] |= (_xword2).ex_u32[6];\t\t\\\n+\t\t(_xword1).ex_u32[7] |= (_xword2).ex_u32[7];\t\t\\\n+\t_NOTE(CONSTANTCONDITION)\t\t\t\t\t\\\n+\t} while (B_FALSE)\n+\n+#define\tEFX_AND_XWORD64(_xword1, _xword2)\t\t\t\t\\\n+\tdo {\t\t\t\t\t\t\t\t\\\n+\t\t(_xword1).ex_u64[0] &= (_xword2).ex_u64[0];\t\t\\\n+\t\t(_xword1).ex_u64[1] &= (_xword2).ex_u64[1];\t\t\\\n+\t\t(_xword1).ex_u64[2] &= (_xword2).ex_u64[2];\t\t\\\n+\t\t(_xword1).ex_u64[3] &= (_xword2).ex_u64[3];\t\t\\\n+\t_NOTE(CONSTANTCONDITION)\t\t\t\t\t\\\n+\t} while (B_FALSE)\n+\n+#define\tEFX_AND_XWORD32(_xword1, _xword2)\t\t\t\t\\\n+\tdo {\t\t\t\t\t\t\t\t\\\n+\t\t(_xword1).ex_u32[0] &= (_xword2).ex_u32[0];\t\t\\\n+\t\t(_xword1).ex_u32[1] &= (_xword2).ex_u32[1];\t\t\\\n+\t\t(_xword1).ex_u32[2] &= (_xword2).ex_u32[2];\t\t\\\n+\t\t(_xword1).ex_u32[3] &= (_xword2).ex_u32[3];\t\t\\\n+\t\t(_xword1).ex_u32[4] &= (_xword2).ex_u32[4];\t\t\\\n+\t\t(_xword1).ex_u32[5] &= (_xword2).ex_u32[5];\t\t\\\n+\t\t(_xword1).ex_u32[6] &= (_xword2).ex_u32[6];\t\t\\\n+\t\t(_xword1).ex_u32[7] &= (_xword2).ex_u32[7];\t\t\\\n+\t_NOTE(CONSTANTCONDITION)\t\t\t\t\t\\\n+\t} while (B_FALSE)\n+\n #define\tEFX_OR_OWORD64(_oword1, _oword2)\t\t\t\t\\\n \tdo {\t\t\t\t\t\t\t\t\\\n \t\t(_oword1).eo_u64[0] |= (_oword2).eo_u64[0];\t\t\\\n@@ -1580,53 +2093,102 @@ extern int fix_lint;\n \t_NOTE(CONSTANTCONDITION)\t\t\t\t\t\\\n \t} while (B_FALSE)\n \n+\n #if EFSYS_USE_UINT64\n+\n+#define\tEFX_XWORD_FIELD\t\tEFX_XWORD_FIELD64\n #define\tEFX_OWORD_FIELD\t\tEFX_OWORD_FIELD64\n #define\tEFX_QWORD_FIELD\t\tEFX_QWORD_FIELD64\n+\n+#define\tEFX_XWORD_IS_EQUAL\tEFX_XWORD_IS_EQUAL64\n #define\tEFX_OWORD_IS_EQUAL\tEFX_OWORD_IS_EQUAL64\n #define\tEFX_QWORD_IS_EQUAL\tEFX_QWORD_IS_EQUAL64\n+\n+#define\tEFX_XWORD_IS_ZERO\tEFX_XWORD_IS_ZERO64\n #define\tEFX_OWORD_IS_ZERO\tEFX_OWORD_IS_ZERO64\n #define\tEFX_QWORD_IS_ZERO\tEFX_QWORD_IS_ZERO64\n+\n+#define\tEFX_XWORD_IS_SET\tEFX_XWORD_IS_SET64\n #define\tEFX_OWORD_IS_SET\tEFX_OWORD_IS_SET64\n #define\tEFX_QWORD_IS_SET\tEFX_QWORD_IS_SET64\n+\n+#define\tEFX_POPULATE_XWORD\tEFX_POPULATE_XWORD64\n #define\tEFX_POPULATE_OWORD\tEFX_POPULATE_OWORD64\n #define\tEFX_POPULATE_QWORD\tEFX_POPULATE_QWORD64\n+\n+#define\tEFX_SET_XWORD_FIELD\tEFX_SET_XWORD_FIELD64\n #define\tEFX_SET_OWORD_FIELD\tEFX_SET_OWORD_FIELD64\n #define\tEFX_SET_QWORD_FIELD\tEFX_SET_QWORD_FIELD64\n+\n+#define\tEFX_SET_XWORD_BIT\tEFX_SET_XWORD_BIT64\n+#define\tEFX_CLEAR_XWORD_BIT\tEFX_CLEAR_XWORD_BIT64\n+#define\tEFX_TEST_XWORD_BIT\tEFX_TEST_XWORD_BIT64\n+\n #define\tEFX_SET_OWORD_BIT\tEFX_SET_OWORD_BIT64\n #define\tEFX_CLEAR_OWORD_BIT\tEFX_CLEAR_OWORD_BIT64\n #define\tEFX_TEST_OWORD_BIT\tEFX_TEST_OWORD_BIT64\n+\n #define\tEFX_SET_QWORD_BIT\tEFX_SET_QWORD_BIT64\n #define\tEFX_CLEAR_QWORD_BIT\tEFX_CLEAR_QWORD_BIT64\n #define\tEFX_TEST_QWORD_BIT\tEFX_TEST_QWORD_BIT64\n+\n+#define\tEFX_OR_XWORD\t\tEFX_OR_XWORD64\n+#define\tEFX_AND_XWORD\t\tEFX_AND_XWORD64\n+\n #define\tEFX_OR_OWORD\t\tEFX_OR_OWORD64\n #define\tEFX_AND_OWORD\t\tEFX_AND_OWORD64\n+\n #define\tEFX_OR_QWORD\t\tEFX_OR_QWORD64\n #define\tEFX_AND_QWORD\t\tEFX_AND_QWORD64\n-#else\n+\n+#else /* EFSYS_USE_UINT64 */\n+\n+#define\tEFX_XWORD_FIELD\t\tEFX_XWORD_FIELD32\n #define\tEFX_OWORD_FIELD\t\tEFX_OWORD_FIELD32\n #define\tEFX_QWORD_FIELD\t\tEFX_QWORD_FIELD32\n+\n+#define\tEFX_XWORD_IS_EQUAL\tEFX_XWORD_IS_EQUAL32\n #define\tEFX_OWORD_IS_EQUAL\tEFX_OWORD_IS_EQUAL32\n #define\tEFX_QWORD_IS_EQUAL\tEFX_QWORD_IS_EQUAL32\n+\n+#define\tEFX_XWORD_IS_ZERO\tEFX_XWORD_IS_ZERO32\n #define\tEFX_OWORD_IS_ZERO\tEFX_OWORD_IS_ZERO32\n #define\tEFX_QWORD_IS_ZERO\tEFX_QWORD_IS_ZERO32\n+\n+#define\tEFX_XWORD_IS_SET\tEFX_XWORD_IS_SET32\n #define\tEFX_OWORD_IS_SET\tEFX_OWORD_IS_SET32\n #define\tEFX_QWORD_IS_SET\tEFX_QWORD_IS_SET32\n+\n+#define\tEFX_POPULATE_XWORD\tEFX_POPULATE_XWORD32\n #define\tEFX_POPULATE_OWORD\tEFX_POPULATE_OWORD32\n #define\tEFX_POPULATE_QWORD\tEFX_POPULATE_QWORD32\n+\n+#define\tEFX_SET_XWORD_FIELD\tEFX_SET_XWORD_FIELD32\n #define\tEFX_SET_OWORD_FIELD\tEFX_SET_OWORD_FIELD32\n #define\tEFX_SET_QWORD_FIELD\tEFX_SET_QWORD_FIELD32\n+\n+#define\tEFX_SET_XWORD_BIT\tEFX_SET_XWORD_BIT32\n+#define\tEFX_CLEAR_XWORD_BIT\tEFX_CLEAR_XWORD_BIT32\n+#define\tEFX_TEST_XWORD_BIT\tEFX_TEST_XWORD_BIT32\n+\n #define\tEFX_SET_OWORD_BIT\tEFX_SET_OWORD_BIT32\n #define\tEFX_CLEAR_OWORD_BIT\tEFX_CLEAR_OWORD_BIT32\n #define\tEFX_TEST_OWORD_BIT\tEFX_TEST_OWORD_BIT32\n+\n #define\tEFX_SET_QWORD_BIT\tEFX_SET_QWORD_BIT32\n #define\tEFX_CLEAR_QWORD_BIT\tEFX_CLEAR_QWORD_BIT32\n #define\tEFX_TEST_QWORD_BIT\tEFX_TEST_QWORD_BIT32\n+\n+#define\tEFX_OR_XWORD\t\tEFX_OR_XWORD32\n+#define\tEFX_AND_XWORD\t\tEFX_AND_XWORD32\n+\n #define\tEFX_OR_OWORD\t\tEFX_OR_OWORD32\n #define\tEFX_AND_OWORD\t\tEFX_AND_OWORD32\n+\n #define\tEFX_OR_QWORD\t\tEFX_OR_QWORD32\n #define\tEFX_AND_QWORD\t\tEFX_AND_QWORD32\n-#endif\n+\n+#endif /* EFSYS_USE_UINT64 */\n \n \n #ifdef\t__cplusplus\n",
    "prefixes": [
        "55/60"
    ]
}