49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * Copyright (c) 2007-2015 Solarflare Communications Inc.
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * All rights reserved.
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * Redistribution and use in source and binary forms, with or without
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * modification, are permitted provided that the following conditions are met:
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * 1. Redistributions of source code must retain the above copyright notice,
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * this list of conditions and the following disclaimer.
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * 2. Redistributions in binary form must reproduce the above copyright notice,
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * this list of conditions and the following disclaimer in the documentation
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * and/or other materials provided with the distribution.
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * The views and conclusions contained in the software and documentation are
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * those of the authors and should not be interpreted as representing official
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * policies, either expressed or implied, of the FreeBSD Project.
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * Ackowledgement to Fen Systems Ltd.
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * Bitfield access
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * Solarflare NICs make extensive use of bitfields up to 128 bits
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * wide. Since there is no native 128-bit datatype on most systems,
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * and since 64-bit datatypes are inefficient on 32-bit systems and
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * vice versa, we wrap accesses in a way that uses the most efficient
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * The NICs are PCI devices and therefore little-endian. Since most
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * of the quantities that we deal with are DMAed to/from host memory,
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * we define our datatypes (efx_oword_t, efx_qword_t and efx_dword_t)
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * to be little-endian.
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * In the less common case of using PIO for individual register
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * writes, we construct the little-endian datatype in host memory and
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * then use non-swapping register access primitives, rather than
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * constructing a native-endian datatype and relying on implicit
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * byte-swapping. (We use a similar strategy for register reads.)
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * NOTE: Field definitions here and elsewhere are done in terms of a lowest
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * bit number (LBN) and a width.
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore/* There are intentionally no EFX_QWORD_0 or EFX_QWORD_1 field definitions
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * here as the implementaion of EFX_QWORD_FIELD and EFX_OWORD_FIELD do not
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * support field widths larger than 32 bits.
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore/* Specified attribute (i.e. LBN ow WIDTH) of the specified field */
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore/* Lowest bit number of the specified field */
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore/* Width of the specified field */
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore/* Highest bit number of the specified field */
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore (EFX_LOW_BIT(_field) + EFX_WIDTH(_field) - 1)
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * 64-bit mask equal in width to the specified field.
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * For example, a field with width 5 would have a mask of 0x000000000000001f.
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore ((EFX_WIDTH(_field) == 64) ? ~((uint64_t)0) : \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore (((((uint64_t)1) << EFX_WIDTH(_field))) - 1))
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * 32-bit mask equal in width to the specified field.
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * For example, a field with width 5 would have a mask of 0x0000001f.
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore ((EFX_WIDTH(_field) == 32) ? ~((uint32_t)0) : \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore (((((uint32_t)1) << EFX_WIDTH(_field))) - 1))
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * 16-bit mask equal in width to the specified field.
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * For example, a field with width 5 would have a mask of 0x001f.
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * 8-bit mask equal in width to the specified field.
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * For example, a field with width 5 would have a mask of 0x1f.
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * A byte (i.e. 8-bit) datatype
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * A word (i.e. 16-bit) datatype
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * This datatype is defined to be little-endian.
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * A doubleword (i.e. 32-bit) datatype
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * This datatype is defined to be little-endian.
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * A quadword (i.e. 64-bit) datatype
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * This datatype is defined to be little-endian.
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * An octword (i.e. 128-bit) datatype
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * This datatype is defined to be little-endian.
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#define __CPU_TO_LE_16(_x) (uint16_t)__SWAP16(_x)
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#define __LE_TO_CPU_16(_x) (uint16_t)__SWAP16(_x)
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#define __CPU_TO_BE_16(_x) (uint16_t)__NOSWAP16(_x)
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#define __BE_TO_CPU_16(_x) (uint16_t)__NOSWAP16(_x)
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#define __CPU_TO_LE_32(_x) (uint32_t)__SWAP32(_x)
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#define __LE_TO_CPU_32(_x) (uint32_t)__SWAP32(_x)
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#define __CPU_TO_BE_32(_x) (uint32_t)__NOSWAP32(_x)
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#define __BE_TO_CPU_32(_x) (uint32_t)__NOSWAP32(_x)
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#define __CPU_TO_LE_64(_x) (uint64_t)__SWAP64(_x)
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#define __LE_TO_CPU_64(_x) (uint64_t)__SWAP64(_x)
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#define __CPU_TO_BE_64(_x) (uint64_t)__NOSWAP64(_x)
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#define __BE_TO_CPU_64(_x) (uint64_t)__NOSWAP64(_x)
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#define __CPU_TO_LE_16(_x) (uint16_t)__NOSWAP16(_x)
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#define __LE_TO_CPU_16(_x) (uint16_t)__NOSWAP16(_x)
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#define __CPU_TO_BE_16(_x) (uint16_t)__SWAP16(_x)
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#define __BE_TO_CPU_16(_x) (uint16_t)__SWAP16(_x)
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#define __CPU_TO_LE_32(_x) (uint32_t)__NOSWAP32(_x)
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#define __LE_TO_CPU_32(_x) (uint32_t)__NOSWAP32(_x)
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#define __CPU_TO_BE_32(_x) (uint32_t)__SWAP32(_x)
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#define __BE_TO_CPU_32(_x) (uint32_t)__SWAP32(_x)
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#define __CPU_TO_LE_64(_x) (uint64_t)__NOSWAP64(_x)
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#define __LE_TO_CPU_64(_x) (uint64_t)__NOSWAP64(_x)
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#define __CPU_TO_BE_64(_x) (uint64_t)__SWAP64(_x)
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#define __BE_TO_CPU_64(_x) (uint64_t)__SWAP64(_x)
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#error "Neither of EFSYS_IS_{BIG,LITTLE}_ENDIAN is set"
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore/* Format string for printing an efx_byte_t */
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore/* Format string for printing an efx_word_t */
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore/* Format string for printing an efx_dword_t */
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore/* Format string for printing an efx_qword_t */
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore/* Format string for printing an efx_oword_t */
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#define EFX_OWORD_FMT "0x%08x:%08x:%08x:%08x"
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore/* Parameters for printing an efx_byte_t */
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore ((unsigned int)__NATIVE_8((_byte).eb_u8[0]))
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore/* Parameters for printing an efx_word_t */
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore ((unsigned int)__LE_TO_CPU_16((_word).ew_u16[0]))
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore/* Parameters for printing an efx_dword_t */
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore ((unsigned int)__LE_TO_CPU_32((_dword).ed_u32[0]))
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore/* Parameters for printing an efx_qword_t */
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore ((unsigned int)__LE_TO_CPU_32((_qword).eq_u32[1])), \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore ((unsigned int)__LE_TO_CPU_32((_qword).eq_u32[0]))
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore/* Parameters for printing an efx_oword_t */
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore ((unsigned int)__LE_TO_CPU_32((_oword).eo_u32[3])), \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore ((unsigned int)__LE_TO_CPU_32((_oword).eo_u32[2])), \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore ((unsigned int)__LE_TO_CPU_32((_oword).eo_u32[1])), \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore ((unsigned int)__LE_TO_CPU_32((_oword).eo_u32[0]))
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * Stop lint complaining about some shifts.
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * Extract bit field portion [low,high) from the native-endian element
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * which contains bits [min,max).
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * For example, suppose "element" represents the high 32 bits of a
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * 64-bit value, and we wish to extract the bits belonging to the bit
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * field occupying bits 28-45 of this 64-bit value.
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * Then EFX_EXTRACT(_element, 32, 63, 28, 45) would give
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * (_element) << 4
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * The result will contain the relevant bits filled in in the range
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * [0,high-low), with garbage in bits [high-low+1,...).
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#define EFX_EXTRACT_NATIVE(_element, _min, _max, _low, _high) \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore ((FIX_LINT(_low > _max) || FIX_LINT(_high < _min)) ? \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * Extract bit field portion [low,high) from the 64-bit little-endian
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * element which contains bits [min,max)
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#define EFX_EXTRACT64(_element, _min, _max, _low, _high) \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_EXTRACT_NATIVE(__LE_TO_CPU_64(_element), _min, _max, _low, _high)
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * Extract bit field portion [low,high) from the 32-bit little-endian
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * element which contains bits [min,max)
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#define EFX_EXTRACT32(_element, _min, _max, _low, _high) \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_EXTRACT_NATIVE(__LE_TO_CPU_32(_element), _min, _max, _low, _high)
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * Extract bit field portion [low,high) from the 16-bit little-endian
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * element which contains bits [min,max)
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#define EFX_EXTRACT16(_element, _min, _max, _low, _high) \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_EXTRACT_NATIVE(__LE_TO_CPU_16(_element), _min, _max, _low, _high)
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * Extract bit field portion [low,high) from the 8-bit
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * element which contains bits [min,max)
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#define EFX_EXTRACT8(_element, _min, _max, _low, _high) \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_EXTRACT_NATIVE(__NATIVE_8(_element), _min, _max, _low, _high)
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#define EFX_EXTRACT_OWORD64(_oword, _low, _high) \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore (EFX_EXTRACT64((_oword).eo_u64[0], FIX_LINT(0), FIX_LINT(63), \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_EXTRACT64((_oword).eo_u64[1], FIX_LINT(64), FIX_LINT(127), \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#define EFX_EXTRACT_OWORD32(_oword, _low, _high) \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore (EFX_EXTRACT32((_oword).eo_u32[0], FIX_LINT(0), FIX_LINT(31), \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_EXTRACT32((_oword).eo_u32[1], FIX_LINT(32), FIX_LINT(63), \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_EXTRACT32((_oword).eo_u32[2], FIX_LINT(64), FIX_LINT(95), \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_EXTRACT32((_oword).eo_u32[3], FIX_LINT(96), FIX_LINT(127), \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#define EFX_EXTRACT_QWORD64(_qword, _low, _high) \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore (EFX_EXTRACT64((_qword).eq_u64[0], FIX_LINT(0), FIX_LINT(63), \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#define EFX_EXTRACT_QWORD32(_qword, _low, _high) \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore (EFX_EXTRACT32((_qword).eq_u32[0], FIX_LINT(0), FIX_LINT(31), \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_EXTRACT32((_qword).eq_u32[1], FIX_LINT(32), FIX_LINT(63), \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#define EFX_EXTRACT_DWORD(_dword, _low, _high) \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore (EFX_EXTRACT32((_dword).ed_u32[0], FIX_LINT(0), FIX_LINT(31), \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#define EFX_EXTRACT_WORD(_word, _low, _high) \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore (EFX_EXTRACT16((_word).ew_u16[0], FIX_LINT(0), FIX_LINT(15), \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#define EFX_EXTRACT_BYTE(_byte, _low, _high) \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore (EFX_EXTRACT8((_byte).eb_u8[0], FIX_LINT(0), FIX_LINT(7), \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore ((uint32_t)EFX_EXTRACT_OWORD64(_oword, EFX_LOW_BIT(_field), \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore (EFX_EXTRACT_OWORD32(_oword, EFX_LOW_BIT(_field), \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore ((uint32_t)EFX_EXTRACT_QWORD64(_qword, EFX_LOW_BIT(_field), \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore (EFX_EXTRACT_QWORD32(_qword, EFX_LOW_BIT(_field), \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore (EFX_EXTRACT_DWORD(_dword, EFX_LOW_BIT(_field), \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore (EFX_EXTRACT_WORD(_word, EFX_LOW_BIT(_field), \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore (EFX_EXTRACT_BYTE(_byte, EFX_LOW_BIT(_field), \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#define EFX_OWORD_IS_EQUAL64(_oword_a, _oword_b) \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore ((_oword_a).eo_u64[0] == (_oword_b).eo_u64[0] && \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore (_oword_a).eo_u64[1] == (_oword_b).eo_u64[1])
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#define EFX_OWORD_IS_EQUAL32(_oword_a, _oword_b) \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore ((_oword_a).eo_u32[0] == (_oword_b).eo_u32[0] && \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore (_oword_a).eo_u32[1] == (_oword_b).eo_u32[1] && \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore (_oword_a).eo_u32[2] == (_oword_b).eo_u32[2] && \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore (_oword_a).eo_u32[3] == (_oword_b).eo_u32[3])
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#define EFX_QWORD_IS_EQUAL64(_qword_a, _qword_b) \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore ((_qword_a).eq_u64[0] == (_qword_b).eq_u64[0])
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#define EFX_QWORD_IS_EQUAL32(_qword_a, _qword_b) \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore ((_qword_a).eq_u32[0] == (_qword_b).eq_u32[0] && \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore (_qword_a).eq_u32[1] == (_qword_b).eq_u32[1])
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#define EFX_DWORD_IS_EQUAL(_dword_a, _dword_b) \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore ((_dword_a).ed_u32[0] == (_dword_b).ed_u32[0])
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#define EFX_WORD_IS_EQUAL(_word_a, _word_b) \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore ((_word_a).ew_u16[0] == (_word_b).ew_u16[0])
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#define EFX_BYTE_IS_EQUAL(_byte_a, _byte_b) \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * Construct bit field portion
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * Creates the portion of the bit field [low,high) that lies within
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * the range [min,max).
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#define EFX_INSERT_NATIVE64(_min, _max, _low, _high, _value) \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#define EFX_INSERT_NATIVE32(_min, _max, _low, _high, _value) \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#define EFX_INSERT_NATIVE16(_min, _max, _low, _high, _value) \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#define EFX_INSERT_NATIVE8(_min, _max, _low, _high, _value) \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * Construct bit field portion
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * Creates the portion of the named bit field that lies within the
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * range [min,max).
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#define EFX_INSERT_FIELD_NATIVE64(_min, _max, _field, _value) \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_INSERT_NATIVE64(_min, _max, EFX_LOW_BIT(_field), \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#define EFX_INSERT_FIELD_NATIVE32(_min, _max, _field, _value) \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_INSERT_NATIVE32(_min, _max, EFX_LOW_BIT(_field), \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#define EFX_INSERT_FIELD_NATIVE16(_min, _max, _field, _value) \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_INSERT_NATIVE16(_min, _max, EFX_LOW_BIT(_field), \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#define EFX_INSERT_FIELD_NATIVE8(_min, _max, _field, _value) \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_INSERT_NATIVE8(_min, _max, EFX_LOW_BIT(_field), \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * Construct bit field
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * Creates the portion of the named bit fields that lie within the
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * range [min,max).
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field1, _value1, _field2, _value2, _field3, _value3, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field4, _value4, _field5, _value5, _field6, _value6, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field7, _value7, _field8, _value8, _field9, _value9, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_INSERT_FIELD_NATIVE64(_min, _max, _field1, _value1) | \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_INSERT_FIELD_NATIVE64(_min, _max, _field2, _value2) | \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_INSERT_FIELD_NATIVE64(_min, _max, _field3, _value3) | \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_INSERT_FIELD_NATIVE64(_min, _max, _field4, _value4) | \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_INSERT_FIELD_NATIVE64(_min, _max, _field5, _value5) | \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_INSERT_FIELD_NATIVE64(_min, _max, _field6, _value6) | \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_INSERT_FIELD_NATIVE64(_min, _max, _field7, _value7) | \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_INSERT_FIELD_NATIVE64(_min, _max, _field8, _value8) | \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_INSERT_FIELD_NATIVE64(_min, _max, _field9, _value9) | \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_INSERT_FIELD_NATIVE64(_min, _max, _field10, _value10))
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field1, _value1, _field2, _value2, _field3, _value3, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field4, _value4, _field5, _value5, _field6, _value6, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field7, _value7, _field8, _value8, _field9, _value9, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_INSERT_FIELD_NATIVE32(_min, _max, _field1, _value1) | \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_INSERT_FIELD_NATIVE32(_min, _max, _field2, _value2) | \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_INSERT_FIELD_NATIVE32(_min, _max, _field3, _value3) | \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_INSERT_FIELD_NATIVE32(_min, _max, _field4, _value4) | \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_INSERT_FIELD_NATIVE32(_min, _max, _field5, _value5) | \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_INSERT_FIELD_NATIVE32(_min, _max, _field6, _value6) | \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_INSERT_FIELD_NATIVE32(_min, _max, _field7, _value7) | \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_INSERT_FIELD_NATIVE32(_min, _max, _field8, _value8) | \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_INSERT_FIELD_NATIVE32(_min, _max, _field9, _value9) | \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_INSERT_FIELD_NATIVE32(_min, _max, _field10, _value10))
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field1, _value1, _field2, _value2, _field3, _value3, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field4, _value4, _field5, _value5, _field6, _value6, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field7, _value7, _field8, _value8, _field9, _value9, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_INSERT_FIELD_NATIVE16(_min, _max, _field1, _value1) | \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_INSERT_FIELD_NATIVE16(_min, _max, _field2, _value2) | \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_INSERT_FIELD_NATIVE16(_min, _max, _field3, _value3) | \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_INSERT_FIELD_NATIVE16(_min, _max, _field4, _value4) | \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_INSERT_FIELD_NATIVE16(_min, _max, _field5, _value5) | \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_INSERT_FIELD_NATIVE16(_min, _max, _field6, _value6) | \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_INSERT_FIELD_NATIVE16(_min, _max, _field7, _value7) | \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_INSERT_FIELD_NATIVE16(_min, _max, _field8, _value8) | \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_INSERT_FIELD_NATIVE16(_min, _max, _field9, _value9) | \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_INSERT_FIELD_NATIVE16(_min, _max, _field10, _value10))
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field1, _value1, _field2, _value2, _field3, _value3, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field4, _value4, _field5, _value5, _field6, _value6, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field7, _value7, _field8, _value8, _field9, _value9, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_INSERT_FIELD_NATIVE8(_min, _max, _field1, _value1) | \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_INSERT_FIELD_NATIVE8(_min, _max, _field2, _value2) | \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_INSERT_FIELD_NATIVE8(_min, _max, _field3, _value3) | \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_INSERT_FIELD_NATIVE8(_min, _max, _field4, _value4) | \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_INSERT_FIELD_NATIVE8(_min, _max, _field5, _value5) | \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_INSERT_FIELD_NATIVE8(_min, _max, _field6, _value6) | \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_INSERT_FIELD_NATIVE8(_min, _max, _field7, _value7) | \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_INSERT_FIELD_NATIVE8(_min, _max, _field8, _value8) | \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_INSERT_FIELD_NATIVE8(_min, _max, _field9, _value9) | \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_INSERT_FIELD_NATIVE8(_min, _max, _field10, _value10))
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field1, _value1, _field2, _value2, _field3, _value3, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field4, _value4, _field5, _value5, _field6, _value6, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field7, _value7, _field8, _value8, _field9, _value9, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore (_oword).eo_u64[0] = EFX_INSERT_FIELDS64(0, 63, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore (_oword).eo_u64[1] = EFX_INSERT_FIELDS64(64, 127, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field1, _value1, _field2, _value2, _field3, _value3, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field4, _value4, _field5, _value5, _field6, _value6, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field7, _value7, _field8, _value8, _field9, _value9, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore (_oword).eo_u32[0] = EFX_INSERT_FIELDS32(0, 31, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore (_oword).eo_u32[1] = EFX_INSERT_FIELDS32(32, 63, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore (_oword).eo_u32[2] = EFX_INSERT_FIELDS32(64, 95, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore (_oword).eo_u32[3] = EFX_INSERT_FIELDS32(96, 127, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field1, _value1, _field2, _value2, _field3, _value3, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field4, _value4, _field5, _value5, _field6, _value6, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field7, _value7, _field8, _value8, _field9, _value9, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore (_qword).eq_u64[0] = EFX_INSERT_FIELDS64(0, 63, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field1, _value1, _field2, _value2, _field3, _value3, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field4, _value4, _field5, _value5, _field6, _value6, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field7, _value7, _field8, _value8, _field9, _value9, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore (_qword).eq_u32[0] = EFX_INSERT_FIELDS32(0, 31, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore (_qword).eq_u32[1] = EFX_INSERT_FIELDS32(32, 63, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field1, _value1, _field2, _value2, _field3, _value3, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field4, _value4, _field5, _value5, _field6, _value6, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field7, _value7, _field8, _value8, _field9, _value9, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore (_dword).ed_u32[0] = EFX_INSERT_FIELDS32(0, 31, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field1, _value1, _field2, _value2, _field3, _value3, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field4, _value4, _field5, _value5, _field6, _value6, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field7, _value7, _field8, _value8, _field9, _value9, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore (_word).ew_u16[0] = EFX_INSERT_FIELDS16(0, 15, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field1, _value1, _field2, _value2, _field3, _value3, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field4, _value4, _field5, _value5, _field6, _value6, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field7, _value7, _field8, _value8, _field9, _value9, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore (_byte).eb_u8[0] = EFX_INSERT_FIELDS8(0, 7, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore/* Populate an octword field with various numbers of arguments */
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#define EFX_POPULATE_OWORD_10 EFX_POPULATE_OWORD
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field1, _value1, _field2, _value2, _field3, _value3, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field4, _value4, _field5, _value5, _field6, _value6, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field7, _value7, _field8, _value8, _field9, _value9) \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_POPULATE_OWORD_10(_oword, EFX_DUMMY_FIELD, 0, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field1, _value1, _field2, _value2, _field3, _value3, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field4, _value4, _field5, _value5, _field6, _value6, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field7, _value7, _field8, _value8, _field9, _value9)
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field1, _value1, _field2, _value2, _field3, _value3, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field4, _value4, _field5, _value5, _field6, _value6, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_POPULATE_OWORD_9(_oword, EFX_DUMMY_FIELD, 0, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field1, _value1, _field2, _value2, _field3, _value3, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field4, _value4, _field5, _value5, _field6, _value6, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field1, _value1, _field2, _value2, _field3, _value3, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field4, _value4, _field5, _value5, _field6, _value6, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_POPULATE_OWORD_8(_oword, EFX_DUMMY_FIELD, 0, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field1, _value1, _field2, _value2, _field3, _value3, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field4, _value4, _field5, _value5, _field6, _value6, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field1, _value1, _field2, _value2, _field3, _value3, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field4, _value4, _field5, _value5, _field6, _value6) \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_POPULATE_OWORD_7(_oword, EFX_DUMMY_FIELD, 0, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field1, _value1, _field2, _value2, _field3, _value3, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field4, _value4, _field5, _value5, _field6, _value6)
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field1, _value1, _field2, _value2, _field3, _value3, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_POPULATE_OWORD_6(_oword, EFX_DUMMY_FIELD, 0, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field1, _value1, _field2, _value2, _field3, _value3, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field1, _value1, _field2, _value2, _field3, _value3, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_POPULATE_OWORD_5(_oword, EFX_DUMMY_FIELD, 0, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field1, _value1, _field2, _value2, _field3, _value3, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field1, _value1, _field2, _value2, _field3, _value3) \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_POPULATE_OWORD_4(_oword, EFX_DUMMY_FIELD, 0, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field1, _value1, _field2, _value2, _field3, _value3)
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_POPULATE_OWORD_3(_oword, EFX_DUMMY_FIELD, 0, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_POPULATE_OWORD_2(_oword, EFX_DUMMY_FIELD, 0, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_POPULATE_OWORD_1(_oword, EFX_DUMMY_FIELD, 0)
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_DWORD_0, 0xffffffff, EFX_DWORD_1, 0xffffffff, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_DWORD_2, 0xffffffff, EFX_DWORD_3, 0xffffffff)
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore/* Populate a quadword field with various numbers of arguments */
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#define EFX_POPULATE_QWORD_10 EFX_POPULATE_QWORD
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field1, _value1, _field2, _value2, _field3, _value3, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field4, _value4, _field5, _value5, _field6, _value6, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field7, _value7, _field8, _value8, _field9, _value9) \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_POPULATE_QWORD_10(_qword, EFX_DUMMY_FIELD, 0, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field1, _value1, _field2, _value2, _field3, _value3, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field4, _value4, _field5, _value5, _field6, _value6, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field7, _value7, _field8, _value8, _field9, _value9)
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field1, _value1, _field2, _value2, _field3, _value3, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field4, _value4, _field5, _value5, _field6, _value6, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_POPULATE_QWORD_9(_qword, EFX_DUMMY_FIELD, 0, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field1, _value1, _field2, _value2, _field3, _value3, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field4, _value4, _field5, _value5, _field6, _value6, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field1, _value1, _field2, _value2, _field3, _value3, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field4, _value4, _field5, _value5, _field6, _value6, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_POPULATE_QWORD_8(_qword, EFX_DUMMY_FIELD, 0, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field1, _value1, _field2, _value2, _field3, _value3, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field4, _value4, _field5, _value5, _field6, _value6, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field1, _value1, _field2, _value2, _field3, _value3, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field4, _value4, _field5, _value5, _field6, _value6) \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_POPULATE_QWORD_7(_qword, EFX_DUMMY_FIELD, 0, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field1, _value1, _field2, _value2, _field3, _value3, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field4, _value4, _field5, _value5, _field6, _value6)
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field1, _value1, _field2, _value2, _field3, _value3, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_POPULATE_QWORD_6(_qword, EFX_DUMMY_FIELD, 0, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field1, _value1, _field2, _value2, _field3, _value3, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field1, _value1, _field2, _value2, _field3, _value3, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_POPULATE_QWORD_5(_qword, EFX_DUMMY_FIELD, 0, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field1, _value1, _field2, _value2, _field3, _value3, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field1, _value1, _field2, _value2, _field3, _value3) \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_POPULATE_QWORD_4(_qword, EFX_DUMMY_FIELD, 0, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field1, _value1, _field2, _value2, _field3, _value3)
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_POPULATE_QWORD_3(_qword, EFX_DUMMY_FIELD, 0, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_POPULATE_QWORD_2(_qword, EFX_DUMMY_FIELD, 0, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_POPULATE_QWORD_1(_qword, EFX_DUMMY_FIELD, 0)
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_DWORD_0, 0xffffffff, EFX_DWORD_1, 0xffffffff)
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore/* Populate a dword field with various numbers of arguments */
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#define EFX_POPULATE_DWORD_10 EFX_POPULATE_DWORD
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field1, _value1, _field2, _value2, _field3, _value3, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field4, _value4, _field5, _value5, _field6, _value6, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field7, _value7, _field8, _value8, _field9, _value9) \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_POPULATE_DWORD_10(_dword, EFX_DUMMY_FIELD, 0, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field1, _value1, _field2, _value2, _field3, _value3, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field4, _value4, _field5, _value5, _field6, _value6, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field7, _value7, _field8, _value8, _field9, _value9)
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field1, _value1, _field2, _value2, _field3, _value3, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field4, _value4, _field5, _value5, _field6, _value6, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_POPULATE_DWORD_9(_dword, EFX_DUMMY_FIELD, 0, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field1, _value1, _field2, _value2, _field3, _value3, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field4, _value4, _field5, _value5, _field6, _value6, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field1, _value1, _field2, _value2, _field3, _value3, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field4, _value4, _field5, _value5, _field6, _value6, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_POPULATE_DWORD_8(_dword, EFX_DUMMY_FIELD, 0, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field1, _value1, _field2, _value2, _field3, _value3, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field4, _value4, _field5, _value5, _field6, _value6, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field1, _value1, _field2, _value2, _field3, _value3, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field4, _value4, _field5, _value5, _field6, _value6) \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_POPULATE_DWORD_7(_dword, EFX_DUMMY_FIELD, 0, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field1, _value1, _field2, _value2, _field3, _value3, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field4, _value4, _field5, _value5, _field6, _value6)
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field1, _value1, _field2, _value2, _field3, _value3, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_POPULATE_DWORD_6(_dword, EFX_DUMMY_FIELD, 0, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field1, _value1, _field2, _value2, _field3, _value3, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field1, _value1, _field2, _value2, _field3, _value3, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_POPULATE_DWORD_5(_dword, EFX_DUMMY_FIELD, 0, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field1, _value1, _field2, _value2, _field3, _value3, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field1, _value1, _field2, _value2, _field3, _value3) \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_POPULATE_DWORD_4(_dword, EFX_DUMMY_FIELD, 0, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field1, _value1, _field2, _value2, _field3, _value3)
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_POPULATE_DWORD_3(_dword, EFX_DUMMY_FIELD, 0, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_POPULATE_DWORD_2(_dword, EFX_DUMMY_FIELD, 0, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_POPULATE_DWORD_1(_dword, EFX_DUMMY_FIELD, 0)
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore/* Populate a word field with various numbers of arguments */
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#define EFX_POPULATE_WORD_10 EFX_POPULATE_WORD
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field1, _value1, _field2, _value2, _field3, _value3, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field4, _value4, _field5, _value5, _field6, _value6, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field7, _value7, _field8, _value8, _field9, _value9) \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_POPULATE_WORD_10(_word, EFX_DUMMY_FIELD, 0, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field1, _value1, _field2, _value2, _field3, _value3, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field4, _value4, _field5, _value5, _field6, _value6, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field7, _value7, _field8, _value8, _field9, _value9)
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field1, _value1, _field2, _value2, _field3, _value3, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field4, _value4, _field5, _value5, _field6, _value6, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_POPULATE_WORD_9(_word, EFX_DUMMY_FIELD, 0, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field1, _value1, _field2, _value2, _field3, _value3, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field4, _value4, _field5, _value5, _field6, _value6, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field1, _value1, _field2, _value2, _field3, _value3, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field4, _value4, _field5, _value5, _field6, _value6, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_POPULATE_WORD_8(_word, EFX_DUMMY_FIELD, 0, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field1, _value1, _field2, _value2, _field3, _value3, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field4, _value4, _field5, _value5, _field6, _value6, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field1, _value1, _field2, _value2, _field3, _value3, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field4, _value4, _field5, _value5, _field6, _value6) \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_POPULATE_WORD_7(_word, EFX_DUMMY_FIELD, 0, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field1, _value1, _field2, _value2, _field3, _value3, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field4, _value4, _field5, _value5, _field6, _value6)
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field1, _value1, _field2, _value2, _field3, _value3, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_POPULATE_WORD_6(_word, EFX_DUMMY_FIELD, 0, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field1, _value1, _field2, _value2, _field3, _value3, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field1, _value1, _field2, _value2, _field3, _value3, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_POPULATE_WORD_5(_word, EFX_DUMMY_FIELD, 0, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field1, _value1, _field2, _value2, _field3, _value3, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field1, _value1, _field2, _value2, _field3, _value3) \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_POPULATE_WORD_4(_word, EFX_DUMMY_FIELD, 0, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field1, _value1, _field2, _value2, _field3, _value3)
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_POPULATE_WORD_3(_word, EFX_DUMMY_FIELD, 0, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_POPULATE_WORD_2(_word, EFX_DUMMY_FIELD, 0, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_POPULATE_WORD_1(_word, EFX_DUMMY_FIELD, 0)
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore/* Populate a byte field with various numbers of arguments */
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#define EFX_POPULATE_BYTE_10 EFX_POPULATE_BYTE
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field1, _value1, _field2, _value2, _field3, _value3, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field4, _value4, _field5, _value5, _field6, _value6, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field7, _value7, _field8, _value8, _field9, _value9) \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_POPULATE_BYTE_10(_byte, EFX_DUMMY_FIELD, 0, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field1, _value1, _field2, _value2, _field3, _value3, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field4, _value4, _field5, _value5, _field6, _value6, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field7, _value7, _field8, _value8, _field9, _value9)
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field1, _value1, _field2, _value2, _field3, _value3, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field4, _value4, _field5, _value5, _field6, _value6, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_POPULATE_BYTE_9(_byte, EFX_DUMMY_FIELD, 0, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field1, _value1, _field2, _value2, _field3, _value3, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field4, _value4, _field5, _value5, _field6, _value6, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field1, _value1, _field2, _value2, _field3, _value3, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field4, _value4, _field5, _value5, _field6, _value6, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_POPULATE_BYTE_8(_byte, EFX_DUMMY_FIELD, 0, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field1, _value1, _field2, _value2, _field3, _value3, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field4, _value4, _field5, _value5, _field6, _value6, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field1, _value1, _field2, _value2, _field3, _value3, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field4, _value4, _field5, _value5, _field6, _value6) \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_POPULATE_BYTE_7(_byte, EFX_DUMMY_FIELD, 0, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field1, _value1, _field2, _value2, _field3, _value3, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field4, _value4, _field5, _value5, _field6, _value6)
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field1, _value1, _field2, _value2, _field3, _value3, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_POPULATE_BYTE_6(_byte, EFX_DUMMY_FIELD, 0, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field1, _value1, _field2, _value2, _field3, _value3, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field1, _value1, _field2, _value2, _field3, _value3, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_POPULATE_BYTE_5(_byte, EFX_DUMMY_FIELD, 0, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field1, _value1, _field2, _value2, _field3, _value3, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field1, _value1, _field2, _value2, _field3, _value3) \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_POPULATE_BYTE_4(_byte, EFX_DUMMY_FIELD, 0, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore _field1, _value1, _field2, _value2, _field3, _value3)
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_POPULATE_BYTE_3(_byte, EFX_DUMMY_FIELD, 0, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_POPULATE_BYTE_2(_byte, EFX_DUMMY_FIELD, 0, \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_POPULATE_BYTE_1(_byte, EFX_DUMMY_FIELD, 0)
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * Modify a named field within an already-populated structure. Used
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * for read-modify-write operations.
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#define EFX_INSERT_FIELD64(_min, _max, _field, _value) \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore __CPU_TO_LE_64(EFX_INSERT_FIELD_NATIVE64(_min, _max, _field, _value))
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#define EFX_INSERT_FIELD32(_min, _max, _field, _value) \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore __CPU_TO_LE_32(EFX_INSERT_FIELD_NATIVE32(_min, _max, _field, _value))
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#define EFX_INSERT_FIELD16(_min, _max, _field, _value) \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore __CPU_TO_LE_16(EFX_INSERT_FIELD_NATIVE16(_min, _max, _field, _value))
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#define EFX_INSERT_FIELD8(_min, _max, _field, _value) \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore __NATIVE_8(EFX_INSERT_FIELD_NATIVE8(_min, _max, _field, _value))
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#define EFX_INPLACE_MASK64(_min, _max, _field) \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_INSERT_FIELD64(_min, _max, _field, EFX_MASK64(_field))
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#define EFX_INPLACE_MASK32(_min, _max, _field) \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_INSERT_FIELD32(_min, _max, _field, EFX_MASK32(_field))
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#define EFX_INPLACE_MASK16(_min, _max, _field) \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_INSERT_FIELD16(_min, _max, _field, EFX_MASK16(_field))
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#define EFX_INPLACE_MASK8(_min, _max, _field) \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_INSERT_FIELD8(_min, _max, _field, EFX_MASK8(_field))
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#define EFX_SET_OWORD_FIELD64(_oword, _field, _value) \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore (_oword).eo_u64[0] = (((_oword).eo_u64[0] & \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_INSERT_FIELD64(0, 63, _field, _value)); \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore (_oword).eo_u64[1] = (((_oword).eo_u64[1] & \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_INSERT_FIELD64(64, 127, _field, _value)); \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#define EFX_SET_OWORD_FIELD32(_oword, _field, _value) \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore (_oword).eo_u32[0] = (((_oword).eo_u32[0] & \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_INSERT_FIELD32(0, 31, _field, _value)); \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore (_oword).eo_u32[1] = (((_oword).eo_u32[1] & \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_INSERT_FIELD32(32, 63, _field, _value)); \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore (_oword).eo_u32[2] = (((_oword).eo_u32[2] & \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_INSERT_FIELD32(64, 95, _field, _value)); \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore (_oword).eo_u32[3] = (((_oword).eo_u32[3] & \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_INSERT_FIELD32(96, 127, _field, _value)); \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#define EFX_SET_QWORD_FIELD64(_qword, _field, _value) \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore (_qword).eq_u64[0] = (((_qword).eq_u64[0] & \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_INSERT_FIELD64(0, 63, _field, _value)); \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#define EFX_SET_QWORD_FIELD32(_qword, _field, _value) \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore (_qword).eq_u32[0] = (((_qword).eq_u32[0] & \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_INSERT_FIELD32(0, 31, _field, _value)); \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore (_qword).eq_u32[1] = (((_qword).eq_u32[1] & \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_INSERT_FIELD32(32, 63, _field, _value)); \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#define EFX_SET_DWORD_FIELD(_dword, _field, _value) \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore (_dword).ed_u32[0] = (((_dword).ed_u32[0] & \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_INSERT_FIELD32(0, 31, _field, _value)); \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#define EFX_SET_WORD_FIELD(_word, _field, _value) \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFX_INSERT_FIELD16(0, 15, _field, _value)); \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#define EFX_SET_BYTE_FIELD(_byte, _field, _value) \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * Set or clear a numbered bit within an octword.
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore (((_bit) < 64) ? ((uint64_t)1 << (_bit)) : 0U)
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore (((_bit) >= (_base) && (_bit) < (_base) + 64) ? \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore ((_bit) < (32) ? ((uint32_t)1 << (_bit)) : 0U)
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore (((_bit) >= (_base) && (_bit) < (_base) + 32) ? \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore (((_bit) >= (_base) && (_bit) < (_base) + 16) ? \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore (((_bit) >= (_base) && (_bit) < (_base) + 8) ? \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore __CPU_TO_LE_64(EFX_SHIFT64(_bit, FIX_LINT(64))); \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore __CPU_TO_LE_32(EFX_SHIFT32(_bit, FIX_LINT(32))); \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore __CPU_TO_LE_32(EFX_SHIFT32(_bit, FIX_LINT(64))); \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore __CPU_TO_LE_32(EFX_SHIFT32(_bit, FIX_LINT(96))); \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#define EFX_CLEAR_OWORD_BIT64(_oword, _bit) \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore __CPU_TO_LE_64(~EFX_SHIFT64(_bit, FIX_LINT(64))); \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#define EFX_CLEAR_OWORD_BIT32(_oword, _bit) \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore __CPU_TO_LE_32(~EFX_SHIFT32(_bit, FIX_LINT(32))); \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore __CPU_TO_LE_32(~EFX_SHIFT32(_bit, FIX_LINT(64))); \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore __CPU_TO_LE_32(~EFX_SHIFT32(_bit, FIX_LINT(96))); \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore __CPU_TO_LE_64(EFX_SHIFT64(_bit, FIX_LINT(64)))))
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore __CPU_TO_LE_32(EFX_SHIFT32(_bit, FIX_LINT(32)))) || \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore __CPU_TO_LE_32(EFX_SHIFT32(_bit, FIX_LINT(64)))) || \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore __CPU_TO_LE_32(EFX_SHIFT32(_bit, FIX_LINT(96)))))
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore __CPU_TO_LE_32(EFX_SHIFT32(_bit, FIX_LINT(32))); \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#define EFX_CLEAR_QWORD_BIT64(_qword, _bit) \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#define EFX_CLEAR_QWORD_BIT32(_qword, _bit) \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore __CPU_TO_LE_32(~EFX_SHIFT32(_bit, FIX_LINT(32))); \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore __CPU_TO_LE_32(EFX_SHIFT32(_bit, FIX_LINT(32)))))
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore __CPU_TO_LE_16(EFX_SHIFT16(_bit, FIX_LINT(0))); \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore __CPU_TO_LE_16(~EFX_SHIFT16(_bit, FIX_LINT(0))); \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore __CPU_TO_LE_16(EFX_SHIFT16(_bit, FIX_LINT(0)))) != 0)
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore __NATIVE_8(EFX_SHIFT8(_bit, FIX_LINT(0))); \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore __NATIVE_8(~EFX_SHIFT8(_bit, FIX_LINT(0))); \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore __NATIVE_8(EFX_SHIFT8(_bit, FIX_LINT(0)))) != 0)
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore (_oword1).eo_u64[0] |= (_oword2).eo_u64[0]; \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore (_oword1).eo_u64[1] |= (_oword2).eo_u64[1]; \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore (_oword1).eo_u32[0] |= (_oword2).eo_u32[0]; \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore (_oword1).eo_u32[1] |= (_oword2).eo_u32[1]; \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore (_oword1).eo_u32[2] |= (_oword2).eo_u32[2]; \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore (_oword1).eo_u32[3] |= (_oword2).eo_u32[3]; \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore (_oword1).eo_u64[0] &= (_oword2).eo_u64[0]; \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore (_oword1).eo_u64[1] &= (_oword2).eo_u64[1]; \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore (_oword1).eo_u32[0] &= (_oword2).eo_u32[0]; \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore (_oword1).eo_u32[1] &= (_oword2).eo_u32[1]; \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore (_oword1).eo_u32[2] &= (_oword2).eo_u32[2]; \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore (_oword1).eo_u32[3] &= (_oword2).eo_u32[3]; \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore (_qword1).eq_u64[0] |= (_qword2).eq_u64[0]; \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore (_qword1).eq_u32[0] |= (_qword2).eq_u32[0]; \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore (_qword1).eq_u32[1] |= (_qword2).eq_u32[1]; \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore (_qword1).eq_u64[0] &= (_qword2).eq_u64[0]; \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore (_qword1).eq_u32[0] &= (_qword2).eq_u32[0]; \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore (_qword1).eq_u32[1] &= (_qword2).eq_u32[1]; \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore (_dword1).ed_u32[0] |= (_dword2).ed_u32[0]; \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore (_dword1).ed_u32[0] &= (_dword2).ed_u32[0]; \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#define EFX_OWORD_IS_EQUAL EFX_OWORD_IS_EQUAL64
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#define EFX_QWORD_IS_EQUAL EFX_QWORD_IS_EQUAL64
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#define EFX_OWORD_IS_ZERO EFX_OWORD_IS_ZERO64
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#define EFX_QWORD_IS_ZERO EFX_QWORD_IS_ZERO64
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#define EFX_POPULATE_OWORD EFX_POPULATE_OWORD64
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#define EFX_POPULATE_QWORD EFX_POPULATE_QWORD64
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#define EFX_SET_OWORD_FIELD EFX_SET_OWORD_FIELD64
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#define EFX_SET_QWORD_FIELD EFX_SET_QWORD_FIELD64
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#define EFX_SET_OWORD_BIT EFX_SET_OWORD_BIT64
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#define EFX_CLEAR_OWORD_BIT EFX_CLEAR_OWORD_BIT64
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#define EFX_TEST_OWORD_BIT EFX_TEST_OWORD_BIT64
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#define EFX_SET_QWORD_BIT EFX_SET_QWORD_BIT64
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#define EFX_CLEAR_QWORD_BIT EFX_CLEAR_QWORD_BIT64
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#define EFX_TEST_QWORD_BIT EFX_TEST_QWORD_BIT64
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#define EFX_OWORD_IS_EQUAL EFX_OWORD_IS_EQUAL32
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#define EFX_QWORD_IS_EQUAL EFX_QWORD_IS_EQUAL32
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#define EFX_OWORD_IS_ZERO EFX_OWORD_IS_ZERO32
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#define EFX_QWORD_IS_ZERO EFX_QWORD_IS_ZERO32
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#define EFX_POPULATE_OWORD EFX_POPULATE_OWORD32
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#define EFX_POPULATE_QWORD EFX_POPULATE_QWORD32
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#define EFX_SET_OWORD_FIELD EFX_SET_OWORD_FIELD32
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#define EFX_SET_QWORD_FIELD EFX_SET_QWORD_FIELD32
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#define EFX_SET_OWORD_BIT EFX_SET_OWORD_BIT32
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#define EFX_CLEAR_OWORD_BIT EFX_CLEAR_OWORD_BIT32
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#define EFX_TEST_OWORD_BIT EFX_TEST_OWORD_BIT32
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#define EFX_SET_QWORD_BIT EFX_SET_QWORD_BIT32
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#define EFX_CLEAR_QWORD_BIT EFX_CLEAR_QWORD_BIT32
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#define EFX_TEST_QWORD_BIT EFX_TEST_QWORD_BIT32
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#endif /* _SYS_EFX_TYPES_H */