According to the i.MX93 datasheet both FIFO order fields are 8 bits wide.
Widen the PARAM_RXFIFO and PARAM_TXFIFO according to the datasheet.
A 8 bit wide FIFO order field can result in a max FIFO size of 2^255,
sanity check and limit the FIFO order against the width of the watermark
field.
Instead of open coding mask and shift operations and to increase
readability use FIELD_GET() to decode the Parameter register.
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
---
drivers/spi/spi-fsl-lpspi.c | 22 +++++++++++++++++++---
1 file changed, 19 insertions(+), 3 deletions(-)
diff --git a/drivers/spi/spi-fsl-lpspi.c b/drivers/spi/spi-fsl-lpspi.c
index fdd14caf6659..75f4e0e9acee 100644
--- a/drivers/spi/spi-fsl-lpspi.c
+++ b/drivers/spi/spi-fsl-lpspi.c
@@ -55,6 +55,9 @@
#define IMX7ULP_RDR 0x74
/* General control register field define */
+#define PARAM_PCSNUM GENMASK(23, 16)
+#define PARAM_RXFIFO GENMASK(15, 8)
+#define PARAM_TXFIFO GENMASK(7, 0)
#define CR_RRF BIT(9)
#define CR_RTF BIT(8)
#define CR_RST BIT(1)
@@ -77,6 +80,8 @@
#define CFGR1_HOST BIT(0)
#define FCR_RXWATER GENMASK(18, 16)
#define FCR_TXWATER GENMASK(2, 0)
+#define RXFIFO_ORDER_MAX (ilog2(FIELD_MAX(FCR_RXWATER) + 1))
+#define TXFIFO_ORDER_MAX (ilog2(FIELD_MAX(FCR_TXWATER) + 1))
#define FSR_TXCOUNT (0xFF)
#define RSR_RXEMPTY BIT(1)
#define TCR_CPOL BIT(31)
@@ -906,6 +911,7 @@ static int fsl_lpspi_probe(struct platform_device *pdev)
struct fsl_lpspi_data *fsl_lpspi;
struct spi_controller *controller;
struct resource *res;
+ unsigned int txfifo_order, rxfifo_order;
int ret, irq;
u32 num_cs;
u32 temp;
@@ -981,12 +987,22 @@ static int fsl_lpspi_probe(struct platform_device *pdev)
}
temp = readl(fsl_lpspi->base + IMX7ULP_PARAM);
- fsl_lpspi->txfifosize = 1 << (temp & 0x0f);
- fsl_lpspi->rxfifosize = 1 << ((temp >> 8) & 0x0f);
+ txfifo_order = FIELD_GET(PARAM_TXFIFO, temp);
+ rxfifo_order = FIELD_GET(PARAM_RXFIFO, temp);
+ if (txfifo_order > TXFIFO_ORDER_MAX || rxfifo_order > RXFIFO_ORDER_MAX) {
+ dev_info(fsl_lpspi->dev,
+ "TX-FIFO order (%u) or RX-FIFO order (%u) too high, limiting to %u\n",
+ txfifo_order, rxfifo_order, TXFIFO_ORDER_MAX);
+
+ txfifo_order = min(TXFIFO_ORDER_MAX, txfifo_order);
+ rxfifo_order = min(RXFIFO_ORDER_MAX, rxfifo_order);
+ }
+ fsl_lpspi->txfifosize = 1 << txfifo_order;
+ fsl_lpspi->rxfifosize = 1 << rxfifo_order;
if (of_property_read_u32((&pdev->dev)->of_node, "num-cs",
&num_cs)) {
if (devtype_data->query_hw_for_num_cs)
- num_cs = ((temp >> 16) & 0xf);
+ num_cs = FIELD_GET(PARAM_PCSNUM, temp);
else
num_cs = 1;
}
--
2.53.0
Hi Marc,
kernel test robot noticed the following build errors:
[auto build test ERROR on b876ebf2c06042f78b2c9c47c53ffe54c7e480a2]
url: https://github.com/intel-lab-lkp/linux/commits/Marc-Kleine-Budde/spi-spi-fsl-lpspi-adapt-to-kernel-coding-style/20260320-022127
base: b876ebf2c06042f78b2c9c47c53ffe54c7e480a2
patch link: https://lore.kernel.org/r/20260319-spi-fsl-lpspi-cleanups-v2-3-02b56c5d44a8%40pengutronix.de
patch subject: [PATCH spi-next v2 03/11] spi: spi-fsl-lpspi: fsl_lpspi_probe(): use FIELD_GET to decode Parameter register and add size check
config: arc-allyesconfig (https://download.01.org/0day-ci/archive/20260320/202603201743.2jFWu8hL-lkp@intel.com/config)
compiler: arc-linux-gcc (GCC) 15.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260320/202603201743.2jFWu8hL-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202603201743.2jFWu8hL-lkp@intel.com/
All errors (new ones prefixed by >>):
In file included from <command-line>:
drivers/spi/spi-fsl-lpspi.c: In function 'fsl_lpspi_probe':
>> include/linux/compiler_types.h:706:45: error: call to '__compiletime_assert_467' declared with attribute error: min((( __builtin_constant_p(({ ({ ({ do { __attribute__((__noreturn__)) extern void __compiletime_assert_460(void) __attribute__((__error__("FIELD_MAX: " "mask is not constant"))); if (!(!(!__builtin_constant_p(((unsigned long)(((int)sizeof(struct {_Static_assert(!(__builtin_choose_expr((sizeof(int) == sizeof(*(8 ? ((void *)((long)((0) > (2)) * 0l)) : (int *)8))), (0) > (2), false)), "const_true((0) > (2))" " is true");})) + (((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) << (0) & ((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) >> ((sizeof(unsigned long) * 8) - 1 - (2))))))))) __compiletime_assert_460(); } while (0); do { __attribute__((__noreturn__)) extern void __compiletime_assert_461(void) __attribute__((__error__("FIELD_MAX: " "mask is zero"))); if (!(!((((unsigned long)(((int)sizeof(struct {_Static_assert(!(__builtin_choose_expr((sizeof(int) == sizeof(*(8 ? ((void *)((long)((0) > (2)) * 0l)) : (int *)8))), (0) > (2), false)), "const_true((0) > (2))" " is true");})) + (((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) << (0) & ((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) >> ((sizeof(unsigned long) * 8) - 1 - (2)))))) == 0))) __compiletime_assert_461(); } while (0); do { __attribute__((__noreturn__)) extern void __compiletime_assert_462(void) __attribute__((__error__("FIELD_MAX: " "value too large for the field"))); if (!(!(__builtin_constant_p(0ULL) ? ~((((unsigned long)(((int)sizeof(struct {_Static_assert(!(__builtin_choose_expr((sizeof(int) == sizeof(*(8 ? ((void *)((long)((0) > (2)) * 0l)) : (int *)8))), (0) > (2), false)), "const_true((0) > (2))" " is true");})) + (((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) << (0) & ((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) >> ((sizeof(unsigned long) * 8) - 1 - (2)))))) >> (__builtin_ffsll(((unsigned long)(((int)sizeof(struct {_Static_assert(!(__builtin_choose_expr((sizeof(int) == sizeof(*(8 ? ((void *)((long)((0) > (2)) * 0l)) : (int *)8))), (0) > (2), false)), "const_true((0) > (2))" " is true");})) + (((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) << (0) & ((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) >> ((sizeof(unsigned long) * 8) - 1 - (2)))))) - 1)) & (0 + (0ULL)) : 0))) __compiletime_assert_462(); } while (0); do { __attribute__((__noreturn__)) extern void __compiletime_assert_463(void) __attribute__((__error__("BUILD_BUG_ON failed: " "(((((unsigned long)(((int)sizeof(struct {_Static_assert(!(__builtin_choose_expr((sizeof(int) == sizeof(*(8 ? ((void *)((long)((0) > (2)) * 0l)) : (int *)8))), (0) > (2), false)), \"const_true((0) > (2))\" \" is true\");})) + (((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) << (0) & ((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) >> ((sizeof(unsigned long) * 8) - 1 - (2)))))) + (1ULL << (__builtin_ffsll(((unsigned long)(((int)sizeof(struct {_Static_assert(!(__builtin_choose_expr((sizeof(int) == sizeof(*(8 ? ((void *)((long)((0) > (2)) * 0l)) : (int *)8))), (0) > (2), false)), \"const_true((0) > (2))\" \" is true\");})) + (((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) << (0) & ((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) >> ((sizeof(unsigned long) * 8) - 1 - (2)))))) - 1))) & (((((unsigned long)(((int)sizeof(struct {_Static_assert(!(__builtin_choose_expr((sizeof(int) == sizeof(*(8 ? ((void *)((long)((0) > (2)) * 0l)) : (int *)8))), (0) > (2), false)), \"const_true((0) > (2))\" \" is true\");})) + (((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) << (0) & ((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) >> ((sizeof(unsigned long) * 8) - 1 - (2)))))) + (1ULL << (__builtin_ffsll(((unsigned long)(((int)sizeof(struct {_Static_assert(!(__builtin_choose_expr((sizeof(int) == sizeof(*(8 ? ((void *)((long)((0) > (2)) * 0l)) : (int *)8))), (0) > (2), false)), \"const_true((0) > (2))\" \" is true\");})) + (((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) << (0) & ((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) >> ((sizeof(unsigned long) * 8) - 1 - (2)))))) - 1))) - 1)) != 0"))); if (!(!((((((unsigned long)(((int)sizeof(struct {_Static_assert(!(__builtin_choose_expr((sizeof(int) == sizeof(*(8 ? ((void *)((long)((0) > (2)) * 0l)) : (int *)8))), (0) > (2), false)), "const_true((0) > (2))" " is true");})) + (((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) << (0) & ((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) >> ((sizeof(unsigned long) * 8) - 1 - (2)))))) + (1ULL << (__builtin_ffsll(((unsigned long)(((int)sizeof(struct {_Static_assert(!(__builtin_choose_expr((sizeof(int) == sizeof(*(8 ? ((void *)((long)((0) > (2)) * 0l)) : (int *)8))), (0) > (2), false)), "const_true((0) > (2))" " is true");})) + (((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) << (0) & ((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) >> ((sizeof(unsigned long) * 8) - 1 - (2)))))) - 1))) & (((((unsigned long)(((int)sizeof(struct {_Static_assert(!(__builtin_choose_expr((sizeof(int) == sizeof(*(8 ? ((void *)((long)((0) > (2)) * 0l)) : (int *)8))), (0) > (2), false)), "const_true((0) > (2))" " is true");})) + (((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) << (0) & ((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) >> ((sizeof(unsigned long) * 8) - 1 - (2)))))) + (1ULL << (__builtin_ffsll(((unsigned long)(((int)sizeof(struct {_Static_assert(!(__builtin_choose_expr((sizeof(int) == sizeof(*(8 ? ((void *)((long)((0) > (2)) * 0l)) : (int *)8))), (0) > (2), false)), "const_true((0) > (2))" " is true");})) + (((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) << (0) & ((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) >> ((sizeof(unsigned long) * 8) - 1 - (2)))))) - 1))) - 1)) != 0))) __compiletime_assert_463(); } while (0); }); do { __attribute__((__noreturn__)) extern void __compiletime_assert_464(void) __attribute__((__error__("FIELD_MAX: " "type of reg too small for mask"))); if (!(!(((typeof( _Generic((((unsigned long)(((int)sizeof(struct {_Static_assert(!(__builtin_choose_expr((sizeof(int) == sizeof(*(8 ? ((void *)((long)((0) > (2)) * 0l)) : (int *)8))), (0) > (2), false)), "const_true((0) > (2))" " is true");})) + (((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) << (0) & ((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) >> ((sizeof(unsigned long) * 8) - 1 - (2)))))), char: (unsigned char)0, unsigned char: (unsigned char)0, signed char: (unsigned char)0, unsigned short: (unsigned short)0, signed short: (unsigned short)0, unsigned int: (unsigned int)0, signed int: (unsigned int)0, unsigned long: (unsigned long)0, signed long: (unsigned long)0, unsigned long long: (unsigned long long)0, signed long long: (unsigned long long)0, default: (((unsigned long)(((int)sizeof(struct {_Static_assert(!(__builtin_choose_expr((sizeof(int) == sizeof(*(8 ? ((void *)((long)((0) > (2)) * 0l)) : (int *)8))), (0) > (2), false)), "const_true((0) > (2))" " is true");})) + (((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) << (0) & ((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) >> ((sizeof(unsigned long) * 8) - 1 - (2)))))))))(((unsigned long)(((int)sizeof(struct {_Static_assert(!(__builtin_choose_expr((sizeof(int) == sizeof(*(8 ? ((void *)((long)((0) > (2)) * 0l)) : (int *)8))), (0) > (2), false)), "const_true((0) > (2))" " is true");})) + (((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) << (0) & ((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) >> ((sizeof(unsigned long) * 8) - 1 - (2))))))) > ((typeof( _Generic((0ULL), char: (unsigned char)0, unsigned char: (unsigned char)0, signed char: (unsigned char)0, unsigned short: (unsigned short)0, signed short: (unsigned short)0, unsigned int: (unsigned int)0, signed int: (unsigned int)0, unsigned long: (unsigned long)0, signed long: (unsigned long)0, unsigned long long: (unsigned long long)0, signed long long: (unsigned long long)0, default: (0ULL))))(~0ull))))) __compiletime_assert_464(); } while (0); }); (typeof(((unsigned long)(((int)sizeof(struct {_Static_assert(!(__builtin_choose_expr((sizeof(int) == sizeof(*(8 ? ((void *)((long)((0) > (2)) * 0l)) : (int *)8))), (0) > (2), false)), "const_true((0) > (2))" " is true");})) + (((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) << (0) & ((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) >> ((sizeof(unsigned long) * 8) - 1 - (2)))))))((((unsigned long)(((int)sizeof(struct {_Static_assert(!(__builtin_choose_expr((sizeof(int) == sizeof(*(8 ? ((void *)((long)((0) > (2)) * 0l)) : (int *)8))), (0) > (2), false)), "const_true((0) > (2))" " is true");})) + (((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) << (0) & ((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) >> ((sizeof(unsigned long) * 8) - 1 - (2)))))) >> (__builtin_ffsll(((unsigned long)(((int)sizeof(struct {_Static_assert(!(__builtin_choose_expr((sizeof(int) == sizeof(*(8 ? ((void *)((long)((0) > (2)) * 0l)) : (int *)8))), (0) > (2), false)), "const_true((0) > (2))" " is true");})) + (((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) << (0) & ((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) >> ((sizeof(unsigned long) * 8) - 1 - (2)))))) - 1)); }) + 1) ? ((({ ({ ({ do { __attribute__((__noreturn__)) extern void __compiletime_assert_460(void) __attribute__((__error__("FIELD_MAX: " "mask is not constant"))); if (!(!(!__builtin_constant_p(((unsigned long)(((int)sizeof(struct {_Static_assert(!(__builtin_choose_expr((sizeof(int) == sizeof(*(8 ? ((void *)((long)((0) > (2)) * 0l)) : (int *)8))), (0) > (2), false)), "const_true((0) > (2))" " is true");})) + (((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) << (0) & ((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) >> ((sizeof(unsigned long) * 8) - 1 - (2))))))))) __compiletime_assert_460(); } while (0); do { __attribute__((__noreturn__)) extern void __compiletime_assert_461(void) __attribute__((__error__("FIELD_MAX: " "mask is zero"))); if (!(!((((unsigned long)(((int)sizeof(struct {_Static_assert(!(__builtin_choose_expr((sizeof(int) == sizeof(*(8 ? ((void *)((long)((0) > (2)) * 0l)) : (int *)8))), (0) > (2), false)), "const_true((0) > (2))" " is true");})) + (((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) << (0) & ((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) >> ((sizeof(unsigned long) * 8) - 1 - (2)))))) == 0))) __compiletime_assert_461(); } while (0); do { __attribute__((__noreturn__)) extern void __compiletime_assert_462(void) __attribute__((__error__("FIELD_MAX: " "value too large for the field"))); if (!(!(__builtin_constant_p(0ULL) ? ~((((unsigned long)(((int)sizeof(struct {_Static_assert(!(__builtin_choose_expr((sizeof(int) == sizeof(*(8 ? ((void *)((long)((0) > (2)) * 0l)) : (int *)8))), (0) > (2), false)), "const_true((0) > (2))" " is true");})) + (((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) << (0) & ((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) >> ((sizeof(unsigned long) * 8) - 1 - (2)))))) >> (__builtin_ffsll(((unsigned long)(((int)sizeof(struct {_Static_assert(!(__builtin_choose_expr((sizeof(int) == sizeof(*(8 ? ((void *)((long)((0) > (2)) * 0l)) : (int *)8))), (0) > (2), false)), "const_true((0) > (2))" " is true");})) + (((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) << (0) & ((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) >> ((sizeof(unsigned long) * 8) - 1 - (2)))))) - 1)) & (0 + (0ULL)) : 0))) __compiletime_assert_462(); } while (0); do { __attribute__((__noreturn__)) extern void __compiletime_assert_463(void) __attribute__((__error__("BUILD_BUG_ON failed: " "(((((unsigned long)(((int)sizeof(struct {_Static_assert(!(__builtin_choose_expr((sizeof(int) == sizeof(*(8 ? ((void *)((long)((0) > (2)) * 0l)) : (int *)8))), (0) > (2), false)), \"const_true((0) > (2))\" \" is true\");})) + (((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) << (0) & ((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) >> ((sizeof(unsigned long) * 8) - 1 - (2)))))) + (1ULL << (__builtin_ffsll(((unsigned long)(((int)sizeof(struct {_Static_assert(!(__builtin_choose_expr((sizeof(int) == sizeof(*(8 ? ((void *)((long)((0) > (2)) * 0l)) : (int *)8))), (0) > (2), false)), \"const_true((0) > (2))\" \" is true\");})) + (((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) << (0) & ((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) >> ((sizeof(unsigned long) * 8) - 1 - (2)))))) - 1))) & (((((unsigned long)(((int)sizeof(struct {_Static_assert(!(__builtin_choose_expr((sizeof(int) == sizeof(*(8 ? ((void *)((long)((0) > (2)) * 0l)) : (int *)8))), (0) > (2), false)), \"const_true((0) > (2))\" \" is true\");})) + (((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) << (0) & ((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) >> ((sizeof(unsigned long) * 8) - 1 - (2)))))) + (1ULL << (__builtin_ffsll(((unsigned long)(((int)sizeof(struct {_Static_assert(!(__builtin_choose_expr((sizeof(int) == sizeof(*(8 ? ((void *)((long)((0) > (2)) * 0l)) : (int *)8))), (0) > (2), false)), \"const_true((0) > (2))\" \" is true\");})) + (((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) << (0) & ((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) >> ((sizeof(unsigned long) * 8) - 1 - (2)))))) - 1))) - 1)) != 0"))); if (!(!((((((unsigned long)(((int)sizeof(struct {_Static_assert(!(__builtin_choose_expr((sizeof(int) == sizeof(*(8 ? ((void *)((long)((0) > (2)) * 0l)) : (int *)8))), (0) > (2), false)), "const_true((0) > (2))" " is true");})) + (((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) << (0) & ((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) >> ((sizeof(unsigned long) * 8) - 1 - (2)))))) + (1ULL << (__builtin_ffsll(((unsigned long)(((int)sizeof(struct {_Static_assert(!(__builtin_choose_expr((sizeof(int) == sizeof(*(8 ? ((void *)((long)((0) > (2)) * 0l)) : (int *)8))), (0) > (2), false)), "const_true((0) > (2))" " is true");})) + (((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) << (0) & ((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) >> ((sizeof(unsigned long) * 8) - 1 - (2)))))) - 1))) & (((((unsigned long)(((int)sizeof(struct {_Static_assert(!(__builtin_choose_expr((sizeof(int) == sizeof(*(8 ? ((void *)((long)((0) > (2)) * 0l)) : (int *)8))), (0) > (2), false)), "const_true((0) > (2))" " is true");})) + (((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) << (0) & ((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) >> ((sizeof(unsigned long) * 8) - 1 - (2)))))) + (1ULL << (__builtin_ffsll(((unsigned long)(((int)sizeof(struct {_Static_assert(!(__builtin_choose_expr((sizeof(int) == sizeof(*(8 ? ((void *)((long)((0) > (2)) * 0l)) : (int *)8))), (0) > (2), false)), "const_true((0) > (2))" " is true");})) + (((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) << (0) & ((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) >> ((sizeof(unsigned long) * 8) - 1 - (2)))))) - 1))) - 1)) != 0))) __compiletime_assert_463(); } while (0); }); do { __attribute__((__noreturn__)) extern void __compiletime_assert_464(void) __attribute__((__error__("FIELD_MAX: " "type of reg too small for mask"))); if (!(!(((typeof( _Generic((((unsigned long)(((int)sizeof(struct {_Static_assert(!(__builtin_choose_expr((sizeof(int) == sizeof(*(8 ? ((void *)((long)((0) > (2)) * 0l)) : (int *)8))), (0) > (2), false)), "const_true((0) > (2))" " is true");})) + (((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) << (0) & ((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) >> ((sizeof(unsigned long) * 8) - 1 - (2)))))), char: (unsigned char)0, unsigned char: (unsigned char)0, signed char: (unsigned char)0, unsigned short: (unsigned short)0, signed short: (unsigned short)0, unsigned int: (unsigned int)0, signed int: (unsigned int)0, unsigned long: (unsigned long)0, signed long: (unsigned long)0, unsigned long long: (unsigned long long)0, signed long long: (unsigned long long)0, default: (((unsigned long)(((int)sizeof(struct {_Static_assert(!(__builtin_choose_expr((sizeof(int) == sizeof(*(8 ? ((void *)((long)((0) > (2)) * 0l)) : (int *)8))), (0) > (2), false)), "const_true((0) > (2))" " is true");})) + (((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) << (0) & ((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) >> ((sizeof(unsigned long) * 8) - 1 - (2)))))))))(((unsigned long)(((int)sizeof(struct {_Static_assert(!(__builtin_choose_expr((sizeof(int) == sizeof(*(8 ? ((void *)((long)((0) > (2)) * 0l)) : (int *)8))), (0) > (2), false)), "const_true((0) > (2))" " is true");})) + (((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) << (0) & ((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) >> ((sizeof(unsigned long) * 8) - 1 - (2))))))) > ((typeof( _Generic((0ULL), char: (unsigned char)0, unsigned char: (unsigned char)0, signed char: (unsigned char)0, unsigned short: (unsigned short)0, signed short: (unsigned short)0, unsigned int: (unsigned int)0, signed int: (unsigned int)0, unsigned long: (unsigned long)0, signed long: (unsigned long)0, unsigned long long: (unsigned long long)0, signed long long: (unsigned long long)0, default: (0ULL))))(~0ull))))) __compiletime_assert_464(); } while (0); }); (typeof(((unsigned long)(((int)sizeof(struct {_Static_assert(!(__builtin_choose_expr((sizeof(int) == sizeof(*(8 ? ((void *)((long)((0) > (2)) * 0l)) : (int *)8))), (0) > (2), false)), "const_true((0) > (2))" " is true");})) + (((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) << (0) & ((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) >> ((sizeof(unsigned long) * 8) - 1 - (2)))))))((((unsigned long)(((int)sizeof(struct {_Static_assert(!(__builtin_choose_expr((sizeof(int) == sizeof(*(8 ? ((void *)((long)((0) > (2)) * 0l)) : (int *)8))), (0) > (2), false)), "const_true((0) > (2))" " is true");})) + (((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) << (0) & ((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) >> ((sizeof(unsigned long) * 8) - 1 - (2)))))) >> (__builtin_ffsll(((unsigned long)(((int)sizeof(struct {_Static_assert(!(__builtin_choose_expr((sizeof(int) == sizeof(*(8 ? ((void *)((long)((0) > (2)) * 0l)) : (int *)8))), (0) > (2), false)), "const_true((0) > (2))" " is true");})) + (((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) << (0) & ((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) >> ((sizeof(unsigned long) * 8) - 1 - (2)))))) - 1)); }) + 1) < 2 ? 0 : 63 - __builtin_clzll(({ ({ ({ do { __attribute__((__noreturn__)) extern void __compiletime_assert_460(void) __attribute__((__error__("FIELD_MAX: " "mask is not constant"))); if (!(!(!__builtin_constant_p(((unsigned long)(((int)sizeof(struct {_Static_assert(!(__builtin_choose_expr((sizeof(int) == sizeof(*(8 ? ((void *)((long)((0) > (2)) * 0l)) : (int *)8))), (0) > (2), false)), "const_true((0) > (2))" " is true");})) + (((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) << (0) & ((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) >> ((sizeof(unsigned long) * 8) - 1 - (2))))))))) __compiletime_assert_460(); } while (0); do { __attribute__((__noreturn__)) extern void __compiletime_assert_461(void) __attribute__((__error__("FIELD_MAX: " "mask is zero"))); if (!(!((((unsigned long)(((int)sizeof(struct {_Static_assert(!(__builtin_choose_expr((sizeof(int) == sizeof(*(8 ? ((void *)((long)((0) > (2)) * 0l)) : (int *)8))), (0) > (2), false)), "const_true((0) > (2))" " is true");})) + (((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) << (0) & ((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) >> ((sizeof(unsigned long) * 8) - 1 - (2)))))) == 0))) __compiletime_assert_461(); } while (0); do { __attribute__((__noreturn__)) extern void __compiletime_assert_462(void) __attribute__((__error__("FIELD_MAX: " "value too large for the field"))); if (!(!(__builtin_constant_p(0ULL) ? ~((((unsigned long)(((int)sizeof(struct {_Static_assert(!(__builtin_choose_expr((sizeof(int) == sizeof(*(8 ? ((void *)((long)((0) > (2)) * 0l)) : (int *)8))), (0) > (2), false)), "const_true((0) > (2))" " is true");})) + (((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) << (0) & ((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) >> ((sizeof(unsigned long) * 8) - 1 - (2)))))) >> (__builtin_ffsll(((unsigned long)(((int)sizeof(struct {_Static_assert(!(__builtin_choose_expr((sizeof(int) == sizeof(*(8 ? ((void *)((long)((0) > (2)) * 0l)) : (int *)8))), (0) > (2), false)), "const_true((0) > (2))" " is true");})) + (((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) << (0) & ((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) >> ((sizeof(unsigned long) * 8) - 1 - (2)))))) - 1)) & (0 + (0ULL)) : 0))) __compiletime_assert_462(); } while (0); do { __attribute__((__noreturn__)) extern void __compiletime_assert_463(void) __attribute__((__error__("BUILD_BUG_ON failed: " "(((((unsigned long)(((int)sizeof(struct {_Static_assert(!(__builtin_choose_expr((sizeof(int) == sizeof(*(8 ? ((void *)((long)((0) > (2)) * 0l)) : (int *)8))), (0) > (2), false)), \"const_true((0) > (2))\" \" is true\");})) + (((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) << (0) & ((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) >> ((sizeof(unsigned long) * 8) - 1 - (2)))))) + (1ULL << (__builtin_ffsll(((unsigned long)(((int)sizeof(struct {_Static_assert(!(__builtin_choose_expr((sizeof(int) == sizeof(*(8 ? ((void *)((long)((0) > (2)) * 0l)) : (int *)8))), (0) > (2), false)), \"const_true((0) > (2))\" \" is true\");})) + (((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) << (0) & ((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) >> ((sizeof(unsigned long) * 8) - 1 - (2)))))) - 1))) & (((((unsigned long)(((int)sizeof(struct {_Static_assert(!(__builtin_choose_expr((sizeof(int) == sizeof(*(8 ? ((void *)((long)((0) > (2)) * 0l)) : (int *)8))), (0) > (2), false)), \"const_true((0) > (2))\" \" is true\");})) + (((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) << (0) & ((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) >> ((sizeof(unsigned long) * 8) - 1 - (2)))))) + (1ULL << (__builtin_ffsll(((unsigned long)(((int)sizeof(struct {_Static_assert(!(__builtin_choose_expr((sizeof(int) == sizeof(*(8 ? ((void *)((long)((0) > (2)) * 0l)) : (int *)8))), (0) > (2), false)), \"const_true((0) > (2))\" \" is true\");})) + (((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) << (0) & ((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) >> ((sizeof(unsigned long) * 8) - 1 - (2)))))) - 1))) - 1)) != 0"))); if (!(!((((((unsigned long)(((int)sizeof(struct {_Static_assert(!(__builtin_choose_expr((sizeof(int) == sizeof(*(8 ? ((void *)((long)((0) > (2)) * 0l)) : (int *)8))), (0) > (2), false)), "const_true((0) > (2))" " is true");})) + (((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) << (0) & ((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) >> ((sizeof(unsigned long) * 8) - 1 - (2)))))) + (1ULL << (__builtin_ffsll(((unsigned long)(((int)sizeof(struct {_Static_assert(!(__builtin_choose_expr((sizeof(int) == sizeof(*(8 ? ((void *)((long)((0) > (2)) * 0l)) : (int *)8))), (0) > (2), false)), "const_true((0) > (2))" " is true");})) + (((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) << (0) & ((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) >> ((sizeof(unsigned long) * 8) - 1 - (2)))))) - 1))) & (((((unsigned long)(((int)sizeof(struct {_Static_assert(!(__builtin_choose_expr((sizeof(int) == sizeof(*(8 ? ((void *)((long)((0) > (2)) * 0l)) : (int *)8))), (0) > (2), false)), "const_true((0) > (2))" " is true");})) + (((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) << (0) & ((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) >> ((sizeof(unsigned long) * 8) - 1 - (2)))))) + (1ULL << (__builtin_ffsll(((unsigned long)(((int)sizeof(struct {_Static_assert(!(__builtin_choose_expr((sizeof(int) == sizeof(*(8 ? ((void *)((long)((0) > (2)) * 0l)) : (int *)8))), (0) > (2), false)), "const_true((0) > (2))" " is true");})) + (((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) << (0) & ((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) >> ((sizeof(unsigned long) * 8) - 1 - (2)))))) - 1))) - 1)) != 0))) __compiletime_assert_463(); } while (0); }); do { __attribute__((__noreturn__)) extern void __compiletime_assert_464(void) __attribute__((__error__("FIELD_MAX: " "type of reg too small for mask"))); if (!(!(((typeof( _Generic((((unsigned long)(((int)sizeof(struct {_Static_assert(!(__builtin_choose_expr((sizeof(int) == sizeof(*(8 ? ((void *)((long)((0) > (2)) * 0l)) : (int *)8))), (0) > (2), false)), "const_true((0) > (2))" " is true");})) + (((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) << (0) & ((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) >> ((sizeof(unsigned long) * 8) - 1 - (2)))))), char: (unsigned char)0, unsigned char: (unsigned char)0, signed char: (unsigned char)0, unsigned short: (unsigned short)0, signed short: (unsigned short)0, unsigned int: (unsigned int)0, signed int: (unsigned int)0, unsigned long: (unsigned long)0, signed long: (unsigned long)0, unsigned long long: (unsigned long long)0, signed long long: (unsigned long long)0, default: (((unsigned long)(((int)sizeof(struct {_Static_assert(!(__builtin_choose_expr((sizeof(int) == sizeof(*(8 ? ((void *)((long)((0) > (2)) * 0l)) : (int *)8))), (0) > (2), false)), "const_true((0) > (2))" " is true");})) + (((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) << (0) & ((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) >> ((sizeof(unsigned long) * 8) - 1 - (2)))))))))(((unsigned long)(((int)sizeof(struct {_Static_assert(!(__builtin_choose_expr((sizeof(int) == sizeof(*(8 ? ((void *)((long)((0) > (2)) * 0l)) : (int *)8))), (0) > (2), false)), "const_true((0) > (2))" " is true");})) + (((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) << (0) & ((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) >> ((sizeof(unsigned long) * 8) - 1 - (2))))))) > ((typeof( _Generic((0ULL), char: (unsigned char)0, unsigned char: (unsigned char)0, signed char: (unsigned char)0, unsigned short: (unsigned short)0, signed short: (unsigned short)0, unsigned int: (unsigned int)0, signed int: (unsigned int)0, unsigned long: (unsigned long)0, signed long: (unsigned long)0, unsigned long long: (unsigned long long)0, signed long long: (unsigned long long)0, default: (0ULL))))(~0ull))))) __compiletime_assert_464(); } while (0); }); (typeof(((unsigned long)(((int)sizeof(struct {_Static_assert(!(__builtin_choose_expr((sizeof(int) == sizeof(*(8 ? ((void *)((long)((0) > (2)) * 0l)) : (int *)8))), (0) > (2), false)), "const_true((0) > (2))" " is true");})) + (((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) << (0) & ((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) >> ((sizeof(unsigned long) * 8) - 1 - (2)))))))((((unsigned long)(((int)sizeof(struct {_Static_assert(!(__builtin_choose_expr((sizeof(int) == sizeof(*(8 ? ((void *)((long)((0) > (2)) * 0l)) : (int *)8))), (0) > (2), false)), "const_true((0) > (2))" " is true");})) + (((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) << (0) & ((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) >> ((sizeof(unsigned long) * 8) - 1 - (2)))))) >> (__builtin_ffsll(((unsigned long)(((int)sizeof(struct {_Static_assert(!(__builtin_choose_expr((sizeof(int) == sizeof(*(8 ? ((void *)((long)((0) > (2)) * 0l)) : (int *)8))), (0) > (2), false)), "const_true((0) > (2))" " is true");})) + (((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) << (0) & ((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) >> ((sizeof(unsigned long) * 8) - 1 - (2)))))) - 1)); }) + 1)) : (sizeof(({ ({ ({ do { __attribute__((__noreturn__)) extern void __compiletime_assert_460(void) __attribute__((__error__("FIELD_MAX: " "mask is not constant"))); if (!(!(!__builtin_constant_p(((unsigned long)(((int)sizeof(struct {_Static_assert(!(__builtin_choose_expr((sizeof(int) == sizeof(*(8 ? ((void *)((long)((0) > (2)) * 0l)) : (int *)8))), (0) > (2), false)), "const_true((0) > (2))" " is true");})) + (((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) << (0) & ((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) >> ((sizeof(unsigned long) * 8) - 1 - (2))))))))) __compiletime_assert_460(); } while (0); do { __attribute__((__noreturn__)) extern void __compiletime_assert_461(void) __attribute__((__error__("FIELD_MAX: " "mask is zero"))); if (!(!((((unsigned long)(((int)sizeof(struct {_Static_assert(!(__builtin_choose_expr((sizeof(int) == sizeof(*(8 ? ((void *)((long)((0) > (2)) * 0l)) : (int *)8))), (0) > (2), false)), "const_true((0) > (2))" " is true");})) + (((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) << (0) & ((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) >> ((sizeof(unsigned long) * 8) - 1 - (2)))))) == 0))) __compiletime_assert_461(); } while (0); do { __attribute__((__noreturn__)) extern void __compiletime_assert_462(void) __attribute__((__error__("FIELD_MAX: " "value too large for the field"))); if (!(!(__builtin_constant_p(0ULL) ? ~((((unsigned long)(((int)sizeof(struct {_Static_assert(!(__builtin_choose_expr((sizeof(int) == sizeof(*(8 ? ((void *)((long)((0) > (2)) * 0l)) : (int *)8))), (0) > (2), false)), "const_true((0) > (2))" " is true");})) + (((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) << (0) & ((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) >> ((sizeof(unsigned long) * 8) - 1 - (2)))))) >> (__builtin_ffsll(((unsigned long)(((int)sizeof(struct {_Static_assert(!(__builtin_choose_expr((sizeof(int) == sizeof(*(8 ? ((void *)((long)((0) > (2)) * 0l)) : (int *)8))), (0) > (2), false)), "const_true((0) > (2))" " is true");})) + (((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) << (0) & ((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) >> ((sizeof(unsigned long) * 8) - 1 - (2)))))) - 1)) & (0 + (0ULL)) : 0))) __compiletime_assert_462(); } while (0); do { __attribute__((__noreturn__)) extern void __compiletime_assert_463(void) __attribute__((__error__("BUILD_BUG_ON failed: " "(((((unsigned long)(((int)sizeof(struct {_Static_assert(!(__builtin_choose_expr((sizeof(int) == sizeof(*(8 ? ((void *)((long)((0) > (2)) * 0l)) : (int *)8))), (0) > (2), false)), \"const_true((0) > (2))\" \" is true\");})) + (((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) << (0) & ((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) >> ((sizeof(unsigned long) * 8) - 1 - (2)))))) + (1ULL << (__builtin_ffsll(((unsigned long)(((int)sizeof(struct {_Static_assert(!(__builtin_choose_expr((sizeof(int) == sizeof(*(8 ? ((void *)((long)((0) > (2)) * 0l)) : (int *)8))), (0) > (2), false)), \"const_true((0) > (2))\" \" is true\");})) + (((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) << (0) & ((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) >> ((sizeof(unsigned long) * 8) - 1 - (2)))))) - 1))) & (((((unsigned long)(((int)sizeof(struct {_Static_assert(!(__builtin_choose_expr((sizeof(int) == sizeof(*(8 ? ((void *)((long)((0) > (2)) * 0l)) : (int *)8))), (0) > (2), false)), \"const_true((0) > (2))\" \" is true\");})) + (((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) << (0) & ((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) >> ((sizeof(unsigned long) * 8) - 1 - (2)))))) + (1ULL << (__builtin_ffsll(((unsigned long)(((int)sizeof(struct {_Static_assert(!(__builtin_choose_expr((sizeof(int) == sizeof(*(8 ? ((void *)((long)((0) > (2)) * 0l)) : (int *)8))), (0) > (2), false)), \"const_true((0) > (2))\" \" is true\");})) + (((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) << (0) & ((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) >> ((sizeof(unsigned long) * 8) - 1 - (2)))))) - 1))) - 1)) != 0"))); if (!(!((((((unsigned long)(((int)sizeof(struct {_Static_assert(!(__builtin_choose_expr((sizeof(int) == sizeof(*(8 ? ((void *)((long)((0) > (2)) * 0l)) : (int *)8))), (0) > (2), false)), "const_true((0) > (2))" " is true");})) + (((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) << (0) & ((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) >> ((sizeof(unsigned long) * 8) - 1 - (2)))))) + (1ULL << (__builtin_ffsll(((unsigned long)(((int)sizeof(struct {_Static_assert(!(__builtin_choose_expr((sizeof(int) == sizeof(*(8 ? ((void *)((long)((0) > (2)) * 0l)) : (int *)8))), (0) > (2), false)), "const_true((0) > (2))" " is true");})) + (((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) << (0) & ((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) >> ((sizeof(unsigned long) * 8) - 1 - (2)))))) - 1))) & (((((unsigned long)(((int)sizeof(struct {_Static_assert(!(__builtin_choose_expr((sizeof(int) == sizeof(*(8 ? ((void *)((long)((0) > (2)) * 0l)) : (int *)8))), (0) > (2), false)), "const_true((0) > (2))" " is true");})) + (((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) << (0) & ((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) >> ((sizeof(unsigned long) * 8) - 1 - (2)))))) + (1ULL << (__builtin_ffsll(((unsigned long)(((int)sizeof(struct {_Static_assert(!(__builtin_choose_expr((sizeof(int) == sizeof(*(8 ? ((void *)((long)((0) > (2)) * 0l)) : (int *)8))), (0) > (2), false)), "const_true((0) > (2))" " is true");})) + (((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) << (0) & ((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) >> ((sizeof(unsigned long) * 8) - 1 - (2)))))) - 1))) - 1)) != 0))) __compiletime_assert_463(); } while (0); }); do { __attribute__((__noreturn__)) extern void __compiletime_assert_464(void) __attribute__((__error__("FIELD_MAX: " "type of reg too small for mask"))); if (!(!(((typeof( _Generic((((unsigned long)(((int)sizeof(struct {_Static_assert(!(__builtin_choose_expr((sizeof(int) == sizeof(*(8 ? ((void *)((long)((0) > (2)) * 0l)) : (int *)8))), (0) > (2), false)), "const_true((0) > (2))" " is true");})) + (((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) << (0) & ((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) >> ((sizeof(unsigned long) * 8) - 1 - (2)))))), char: (unsigned char)0, unsigned char: (unsigned char)0, signed char: (unsigned char)0, unsigned short: (unsigned short)0, signed short: (unsigned short)0, unsigned int: (unsigned int)0, signed int: (unsigned int)0, unsigned long: (unsigned long)0, signed long: (unsigned long)0, unsigned long long: (unsigned long long)0, signed long long: (unsigned long long)0, default: (((unsigned long)(((int)sizeof(struct {_Static_assert(!(__builtin_choose_expr((sizeof(int) == sizeof(*(8 ? ((void *)((long)((0) > (2)) * 0l)) : (int *)8))), (0) > (2), false)), "const_true((0) > (2))" " is true");})) + (((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) << (0) & ((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) >> ((sizeof(unsigned long) * 8) - 1 - (2)))))))))(((unsigned long)(((int)sizeof(struct {_Static_assert(!(__builtin_choose_expr((sizeof(int) == sizeof(*(8 ? ((void *)((long)((0) > (2)) * 0l)) : (int *)8))), (0) > (2), false)), "const_true((0) > (2))" " is true");})) + (((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) << (0) & ((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) >> ((sizeof(unsigned long) * 8) - 1 - (2))))))) > ((typeof( _Generic((0ULL), char: (unsigned char)0, unsigned char: (unsigned char)0, signed char: (unsigned char)0, unsigned short: (unsigned short)0, signed short: (unsigned short)0, unsigned int: (unsigned int)0, signed int: (unsigned int)0, unsigned long: (unsigned long)0, signed long: (unsigned long)0, unsigned long long: (unsigned long long)0, signed long long: (unsigned long long)0, default: (0ULL))))(~0ull))))) __compiletime_assert_464(); } while (0); }); (typeof(((unsigned long)(((int)sizeof(struct {_Static_assert(!(__builtin_choose_expr((sizeof(int) == sizeof(*(8 ? ((void *)((long)((0) > (2)) * 0l)) : (int *)8))), (0) > (2), false)), "const_true((0) > (2))" " is true");})) + (((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) << (0) & ((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) >> ((sizeof(unsigned long) * 8) - 1 - (2)))))))((((unsigned long)(((int)sizeof(struct {_Static_assert(!(__builtin_choose_expr((sizeof(int) == sizeof(*(8 ? ((void *)((long)((0) > (2)) * 0l)) : (int *)8))), (0) > (2), false)), "const_true((0) > (2))" " is true");})) + (((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) << (0) & ((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) >> ((sizeof(unsigned long) * 8) - 1 - (2)))))) >> (__builtin_ffsll(((unsigned long)(((int)sizeof(struct {_Static_assert(!(__builtin_choose_expr((sizeof(int) == sizeof(*(8 ? ((void *)((long)((0) > (2)) * 0l)) : (int *)8))), (0) > (2), false)), "const_true((0) > (2))" " is true");})) + (((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) << (0) & ((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) >> ((sizeof(unsigned long) * 8) - 1 - (2)))))) - 1)); }) + 1) <= 4) ? __ilog2_u32(({ ({ ({ do { __attribute__((__noreturn__)) extern void __compiletime_assert_460(void) __attribute__((__error__("FIELD_MAX: " "mask is not constant"))); if (!(!(!__builtin_constant_p(((unsigned long)(((int)sizeof(struct {_Static_assert(!(__builtin_choose_expr((sizeof(int) == sizeof(*(8 ? ((void *)((long)((0) > (2)) * 0l)) : (int *)8))), (0) > (2), false)), "const_true((0) > (2))" " is true");})) + (((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) << (0) & ((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) >> ((sizeof(unsigned long) * 8) - 1 - (2))))))))) __compiletime_assert_460(); } while (0); do { __attribute__((__noreturn__)) extern void __compiletime_assert_461(void) __attribute__((__error__("FIELD_MAX: " "mask is zero"))); if (!(!((((unsigned long)(((int)sizeof(struct {_Static_assert(!(__builtin_choose_expr((sizeof(int) == sizeof(*(8 ? ((void *)((long)((0) > (2)) * 0l)) : (int *)8))), (0) > (2), false)), "const_true((0) > (2))" " is true");})) + (((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) << (0) & ((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) >> ((sizeof(unsigned long) * 8) - 1 - (2)))))) == 0))) __compiletime_assert_461(); } while (0); do { __attribute__((__noreturn__)) extern void __compiletime_assert_462(void) __attribute__((__error__("FIELD_MAX: " "value too large for the field"))); if (!(!(__builtin_constant_p(0ULL) ? ~((((unsigned long)(((int)sizeof(struct {_Static_assert(!(__builtin_choose_expr((sizeof(int) == sizeof(*(8 ? ((void *)((long)((0) > (2)) * 0l)) : (int *)8))), (0) > (2), false)), "const_true((0) > (2))" " is true");})) + (((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) << (0) & ((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) >> ((sizeof(unsigned long) * 8) - 1 - (2)))))) >> (__builtin_ffsll(((unsigned long)(((int)sizeof(struct {_Static_assert(!(__builtin_choose_expr((sizeof(int) == sizeof(*(8 ? ((void *)((long)((0) > (2)) * 0l)) : (int *)8))), (0) > (2), false)), "const_true((0) > (2))" " is true");})) + (((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) << (0) & ((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) >> ((sizeof(unsigned long) * 8) - 1 - (2)))))) - 1)) & (0 + (0ULL)) : 0))) __compiletime_assert_462(); } while (0); do { __attribute__((__noreturn__)) extern void __compiletime_assert_463(void) __attribute__((__error__("BUILD_BUG_ON failed: " "(((((unsigned long)(((int)sizeof(struct {_Static_assert(!(__builtin_choose_expr((sizeof(int) == sizeof(*(8 ? ((void *)((long)((0) > (2)) * 0l)) : (int *)8))), (0) > (2), false)), \"const_true((0) > (2))\" \" is true\");})) + (((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) << (0) & ((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) >> ((sizeof(unsigned long) * 8) - 1 - (2)))))) + (1ULL << (__builtin_ffsll(((unsigned long)(((int)sizeof(struct {_Static_assert(!(__builtin_choose_expr((sizeof(int) == sizeof(*(8 ? ((void *)((long)((0) > (2)) * 0l)) : (int *)8))), (0) > (2), false)), \"const_true((0) > (2))\" \" is true\");})) + (((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) << (0) & ((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) >> ((sizeof(unsigned long) * 8) - 1 - (2)))))) - 1))) & (((((unsigned long)(((int)sizeof(struct {_Static_assert(!(__builtin_choose_expr((sizeof(int) == sizeof(*(8 ? ((void *)((long)((0) > (2)) * 0l)) : (int *)8))), (0) > (2), false)), \"const_true((0) > (2))\" \" is true\");})) + (((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) << (0) & ((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) >> ((sizeof(unsigned long) * 8) - 1 - (2)))))) + (1ULL << (__builtin_ffsll(((unsigned long)(((int)sizeof(struct {_Static_assert(!(__builtin_choose_expr((sizeof(int) == sizeof(*(8 ? ((void *)((long)((0) > (2)) * 0l)) : (int *)8))), (0) > (2), false)), \"const_true((0) > (2))\" \" is true\");})) + (((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) << (0) & ((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) >> ((sizeof(unsigned long) * 8) - 1 - (2)))))) - 1))) - 1)) != 0"))); if (!(!((((((unsigned long)(((int)sizeof(struct {_Static_assert(!(__builtin_choose_expr((sizeof(int) == sizeof(*(8 ? ((void *)((long)((0) > (2)) * 0l)) : (int *)8))), (0) > (2), false)), "const_true((0) > (2))" " is true");})) + (((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) << (0) & ((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) >> ((sizeof(unsigned long) * 8) - 1 - (2)))))) + (1ULL << (__builtin_ffsll(((unsigned long)(((int)sizeof(struct {_Static_assert(!(__builtin_choose_expr((sizeof(int) == sizeof(*(8 ? ((void *)((long)((0) > (2)) * 0l)) : (int *)8))), (0) > (2), false)), "const_true((0) > (2))" " is true");})) + (((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) << (0) & ((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) >> ((sizeof(unsigned long) * 8) - 1 - (2)))))) - 1))) & (((((unsigned long)(((int)sizeof(struct {_Static_assert(!(__builtin_choose_expr((sizeof(int) == sizeof(*(8 ? ((void *)((long)((0) > (2)) * 0l)) : (int *)8))), (0) > (2), false)), "const_true((0) > (2))" " is true");})) + (((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) << (0) & ((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) >> ((sizeof(unsigned long) * 8) - 1 - (2)))))) + (1ULL << (__builtin_ffsll(((unsigned long)(((int)sizeof(struct {_Static_assert(!(__builtin_choose_expr((sizeof(int) == sizeof(*(8 ? ((void *)((long)((0) > (2)) * 0l)) : (int *)8))), (0) > (2), false)), "const_true((0) > (2))" " is true");})) + (((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) << (0) & ((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) >> ((sizeof(unsigned long) * 8) - 1 - (2)))))) - 1))) - 1)) != 0))) __compiletime_assert_463(); } while (0); }); do { __attribute__((__noreturn__)) extern void __compiletime_assert_464(void) __attribute__((__error__("FIELD_MAX: " "type of reg too small for mask"))); if (!(!(((typeof( _Generic((((unsigned long)(((int)sizeof(struct {_Static_assert(!(__builtin_choose_expr((sizeof(int) == sizeof(*(8 ? ((void *)((long)((0) > (2)) * 0l)) : (int *)8))), (0) > (2), false)), "const_true((0) > (2))" " is true");})) + (((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) << (0) & ((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) >> ((sizeof(unsigned long) * 8) - 1 - (2)))))), char: (unsigned char)0, unsigned char: (unsigned char)0, signed char: (unsigned char)0, unsigned short: (unsigned short)0, signed short: (unsigned short)0, unsigned int: (unsigned int)0, signed int: (unsigned int)0, unsigned long: (unsigned long)0, signed long: (unsigned long)0, unsigned long long: (unsigned long long)0, signed long long: (unsigned long long)0, default: (((unsigned long)(((int)sizeof(struct {_Static_assert(!(__builtin_choose_expr((sizeof(int) == sizeof(*(8 ? ((void *)((long)((0) > (2)) * 0l)) : (int *)8))), (0) > (2), false)), "const_true((0) > (2))" " is true");})) + (((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) << (0) & ((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) >> ((sizeof(unsigned long) * 8) - 1 - (2)))))))))(((unsigned long)(((int)sizeof(struct {_Static_assert(!(__builtin_choose_expr((sizeof(int) == sizeof(*(8 ? ((void *)((long)((0) > (2)) * 0l)) : (int *)8))), (0) > (2), false)), "const_true((0) > (2))" " is true");})) + (((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) << (0) & ((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) >> ((sizeof(unsigned long) * 8) - 1 - (2))))))) > ((typeof( _Generic((0ULL), char: (unsigned char)0, unsigned char: (unsigned char)0, signed char: (unsigned char)0, unsigned short: (unsigned short)0, signed short: (unsigned short)0, unsigned int: (unsigned int)0, signed int: (unsigned int)0, unsigned long: (unsigned long)0, signed long: (unsigned long)0, unsigned long long: (unsigned long long)0, signed long long: (unsigned long long)0, default: (0ULL))))(~0ull))))) __compiletime_assert_464(); } while (0); }); (typeof(((unsigned long)(((int)sizeof(struct {_Static_assert(!(__builtin_choose_expr((sizeof(int) == sizeof(*(8 ? ((void *)((long)((0) > (2)) * 0l)) : (int *)8))), (0) > (2), false)), "const_true((0) > (2))" " is true");})) + (((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) << (0) & ((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) >> ((sizeof(unsigned long) * 8) - 1 - (2)))))))((((unsigned long)(((int)sizeof(struct {_Static_assert(!(__builtin_choose_expr((sizeof(int) == sizeof(*(8 ? ((void *)((long)((0) > (2)) * 0l)) : (int *)8))), (0) > (2), false)), "const_true((0) > (2))" " is true");})) + (((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) << (0) & ((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) >> ((sizeof(unsigned long) * 8) - 1 - (2)))))) >> (__builtin_ffsll(((unsigned long)(((int)sizeof(struct {_Static_assert(!(__builtin_choose_expr((sizeof(int) == sizeof(*(8 ? ((void *)((long)((0) > (2)) * 0l)) : (int *)8))), (0) > (2), false)), "const_true((0) > (2))" " is true");})) + (((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) << (0) & ((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) >> ((sizeof(unsigned long) * 8) - 1 - (2)))))) - 1)); }) + 1) : __ilog2_u64(({ ({ ({ do { __attribute__((__noreturn__)) extern void __compiletime_assert_460(void) __attribute__((__error__("FIELD_MAX: " "mask is not constant"))); if (!(!(!__builtin_constant_p(((unsigned long)(((int)sizeof(struct {_Static_assert(!(__builtin_choose_expr((sizeof(int) == sizeof(*(8 ? ((void *)((long)((0) > (2)) * 0l)) : (int *)8))), (0) > (2), false)), "const_true((0) > (2))" " is true");})) + (((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) << (0) & ((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) >> ((sizeof(unsigned long) * 8) - 1 - (2))))))))) __compiletime_assert_460(); } while (0); do { __attribute__((__noreturn__)) extern void __compiletime_assert_461(void) __attribute__((__error__("FIELD_MAX: " "mask is zero"))); if (!(!((((unsigned long)(((int)sizeof(struct {_Static_assert(!(__builtin_choose_expr((sizeof(int) == sizeof(*(8 ? ((void *)((long)((0) > (2)) * 0l)) : (int *)8))), (0) > (2), false)), "const_true((0) > (2))" " is true");})) + (((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) << (0) & ((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) >> ((sizeof(unsigned long) * 8) - 1 - (2)))))) == 0))) __compiletime_assert_461(); } while (0); do { __attribute__((__noreturn__)) extern void __compiletime_assert_462(void) __attribute__((__error__("FIELD_MAX: " "value too large for the field"))); if (!(!(__builtin_constant_p(0ULL) ? ~((((unsigned long)(((int)sizeof(struct {_Static_assert(!(__builtin_choose_expr((sizeof(int) == sizeof(*(8 ? ((void *)((long)((0) > (2)) * 0l)) : (int *)8))), (0) > (2), false)), "const_true((0) > (2))" " is true");})) + (((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) << (0) & ((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) >> ((sizeof(unsigned long) * 8) - 1 - (2)))))) >> (__builtin_ffsll(((unsigned long)(((int)sizeof(struct {_Static_assert(!(__builtin_choose_expr((sizeof(int) == sizeof(*(8 ? ((void *)((long)((0) > (2)) * 0l)) : (int *)8))), (0) > (2), false)), "const_true((0) > (2))" " is true");})) + (((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) << (0) & ((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) >> ((sizeof(unsigned long) * 8) - 1 - (2)))))) - 1)) & (0 + (0ULL)) : 0))) __compiletime_assert_462(); } while (0); do { __attribute__((__noreturn__)) extern void __compiletime_assert_463(void) __attribute__((__error__("BUILD_BUG_ON failed: " "(((((unsigned long)(((int)sizeof(struct {_Static_assert(!(__builtin_choose_expr((sizeof(int) == sizeof(*(8 ? ((void *)((long)((0) > (2)) * 0l)) : (int *)8))), (0) > (2), false)), \"const_true((0) > (2))\" \" is true\");})) + (((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) << (0) & ((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) >> ((sizeof(unsigned long) * 8) - 1 - (2)))))) + (1ULL << (__builtin_ffsll(((unsigned long)(((int)sizeof(struct {_Static_assert(!(__builtin_choose_expr((sizeof(int) == sizeof(*(8 ? ((void *)((long)((0) > (2)) * 0l)) : (int *)8))), (0) > (2), false)), \"const_true((0) > (2))\" \" is true\");})) + (((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) << (0) & ((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) >> ((sizeof(unsigned long) * 8) - 1 - (2)))))) - 1))) & (((((unsigned long)(((int)sizeof(struct {_Static_assert(!(__builtin_choose_expr((sizeof(int) == sizeof(*(8 ? ((void *)((long)((0) > (2)) * 0l)) : (int *)8))), (0) > (2), false)), \"const_true((0) > (2))\" \" is true\");})) + (((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) << (0) & ((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) >> ((sizeof(unsigned long) * 8) - 1 - (2)))))) + (1ULL << (__builtin_ffsll(((unsigned long)(((int)sizeof(struct {_Static_assert(!(__builtin_choose_expr((sizeof(int) == sizeof(*(8 ? ((void *)((long)((0) > (2)) * 0l)) : (int *)8))), (0) > (2), false)), \"const_true((0) > (2))\" \" is true\");})) + (((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) << (0) & ((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) >> ((sizeof(unsigned long) * 8) - 1 - (2)))))) - 1))) - 1)) != 0"))); if (!(!((((((unsigned long)(((int)sizeof(struct {_Static_assert(!(__builtin_choose_expr((sizeof(int) == sizeof(*(8 ? ((void *)((long)((0) > (2)) * 0l)) : (int *)8))), (0) > (2), false)), "const_true((0) > (2))" " is true");})) + (((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) << (0) & ((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) >> ((sizeof(unsigned long) * 8) - 1 - (2)))))) + (1ULL << (__builtin_ffsll(((unsigned long)(((int)sizeof(struct {_Static_assert(!(__builtin_choose_expr((sizeof(int) == sizeof(*(8 ? ((void *)((long)((0) > (2)) * 0l)) : (int *)8))), (0) > (2), false)), "const_true((0) > (2))" " is true");})) + (((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) << (0) & ((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) >> ((sizeof(unsigned long) * 8) - 1 - (2)))))) - 1))) & (((((unsigned long)(((int)sizeof(struct {_Static_assert(!(__builtin_choose_expr((sizeof(int) == sizeof(*(8 ? ((void *)((long)((0) > (2)) * 0l)) : (int *)8))), (0) > (2), false)), "const_true((0) > (2))" " is true");})) + (((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) << (0) & ((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) >> ((sizeof(unsigned long) * 8) - 1 - (2)))))) + (1ULL << (__builtin_ffsll(((unsigned long)(((int)sizeof(struct {_Static_assert(!(__builtin_choose_expr((sizeof(int) == sizeof(*(8 ? ((void *)((long)((0) > (2)) * 0l)) : (int *)8))), (0) > (2), false)), "const_true((0) > (2))" " is true");})) + (((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) << (0) & ((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) >> ((sizeof(unsigned long) * 8) - 1 - (2)))))) - 1))) - 1)) != 0))) __compiletime_assert_463(); } while (0); }); do { __attribute__((__noreturn__)) extern void __compiletime_assert_464(void) __attribute__((__error__("FIELD_MAX: " "type of reg too small for mask"))); if (!(!(((typeof( _Generic((((unsigned long)(((int)sizeof(struct {_Static_assert(!(__builtin_choose_expr((sizeof(int) == sizeof(*(8 ? ((void *)((long)((0) > (2)) * 0l)) : (int *)8))), (0) > (2), false)), "const_true((0) > (2))" " is true");})) + (((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) << (0) & ((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) >> ((sizeof(unsigned long) * 8) - 1 - (2)))))), char: (unsigned char)0, unsigned char: (unsigned char)0, signed char: (unsigned char)0, unsigned short: (unsigned short)0, signed short: (unsigned short)0, unsigned int: (unsigned int)0, signed int: (unsigned int)0, unsigned long: (unsigned long)0, signed long: (unsigned long)0, unsigned long long: (unsigned long long)0, signed long long: (unsigned long long)0, default: (((unsigned long)(((int)sizeof(struct {_Static_assert(!(__builtin_choose_expr((sizeof(int) == sizeof(*(8 ? ((void *)((long)((0) > (2)) * 0l)) : (int *)8))), (0) > (2), false)), "const_true((0) > (2))" " is true");})) + (((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) << (0) & ((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) >> ((sizeof(unsigned long) * 8) - 1 - (2)))))))))(((unsigned long)(((int)sizeof(struct {_Static_assert(!(__builtin_choose_expr((sizeof(int) == sizeof(*(8 ? ((void *)((long)((0) > (2)) * 0l)) : (int *)8))), (0) > (2), false)), "const_true((0) > (2))" " is true");})) + (((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) << (0) & ((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) >> ((sizeof(unsigned long) * 8) - 1 - (2))))))) > ((typeof( _Generic((0ULL), char: (unsigned char)0, unsigned char: (unsigned char)0, signed char: (unsigned char)0, unsigned short: (unsigned short)0, signed short: (unsigned short)0, unsigned int: (unsigned int)0, signed int: (unsigned int)0, unsigned long: (unsigned long)0, signed long: (unsigned long)0, unsigned long long: (unsigned long long)0, signed long long: (unsigned long long)0, default: (0ULL))))(~0ull))))) __compiletime_assert_464(); } while (0); }); (typeof(((unsigned long)(((int)sizeof(struct {_Static_assert(!(__builtin_choose_expr((sizeof(int) == sizeof(*(8 ? ((void *)((long)((0) > (2)) * 0l)) : (int *)8))), (0) > (2), false)), "const_true((0) > (2))" " is true");})) + (((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) << (0) & ((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) >> ((sizeof(unsigned long) * 8) - 1 - (2)))))))((((unsigned long)(((int)sizeof(struct {_Static_assert(!(__builtin_choose_expr((sizeof(int) == sizeof(*(8 ? ((void *)((long)((0) > (2)) * 0l)) : (int *)8))), (0) > (2), false)), "const_true((0) > (2))" " is true");})) + (((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) << (0) & ((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) >> ((sizeof(unsigned long) * 8) - 1 - (2)))))) >> (__builtin_ffsll(((unsigned long)(((int)sizeof(struct {_Static_assert(!(__builtin_choose_expr((sizeof(int) == sizeof(*(8 ? ((void *)((long)((0) > (2)) * 0l)) : (int *)8))), (0) > (2), false)), "const_true((0) > (2))" " is true");})) + (((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) << (0) & ((typeof(unsigned long))((((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))) - 1) + ((typeof(unsigned long))1 << (8*sizeof(typeof(unsigned long)) - 1 - (((typeof(unsigned long))(-1)) < ( typeof(unsigned long))1))))) >> ((sizeof(unsigned long) * 8) - 1 - (2)))))) - 1)); }) + 1) )), txfifo_order) signedness error
706 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
| ^
include/linux/compiler_types.h:687:25: note: in definition of macro '__compiletime_assert'
687 | prefix ## suffix(); \
| ^~~~~~
include/linux/compiler_types.h:706:9: note: in expansion of macro '_compiletime_assert'
706 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
| ^~~~~~~~~~~~~~~~~~~
include/linux/build_bug.h:39:37: note: in expansion of macro 'compiletime_assert'
39 | #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
| ^~~~~~~~~~~~~~~~~~
include/linux/minmax.h:93:9: note: in expansion of macro 'BUILD_BUG_ON_MSG'
93 | BUILD_BUG_ON_MSG(!__types_ok(ux, uy), \
| ^~~~~~~~~~~~~~~~
include/linux/minmax.h:98:9: note: in expansion of macro '__careful_cmp_once'
98 | __careful_cmp_once(op, x, y, __UNIQUE_ID(x_), __UNIQUE_ID(y_))
| ^~~~~~~~~~~~~~~~~~
include/linux/minmax.h:105:25: note: in expansion of macro '__careful_cmp'
105 | #define min(x, y) __careful_cmp(min, x, y)
| ^~~~~~~~~~~~~
drivers/spi/spi-fsl-lpspi.c:997:32: note: in expansion of macro 'min'
997 | txfifo_order = min(TXFIFO_ORDER_MAX, txfifo_order);
| ^~~
vim +706 include/linux/compiler_types.h
eb5c2d4b45e3d2d Will Deacon 2020-07-21 692
eb5c2d4b45e3d2d Will Deacon 2020-07-21 693 #define _compiletime_assert(condition, msg, prefix, suffix) \
eb5c2d4b45e3d2d Will Deacon 2020-07-21 694 __compiletime_assert(condition, msg, prefix, suffix)
eb5c2d4b45e3d2d Will Deacon 2020-07-21 695
eb5c2d4b45e3d2d Will Deacon 2020-07-21 696 /**
eb5c2d4b45e3d2d Will Deacon 2020-07-21 697 * compiletime_assert - break build and emit msg if condition is false
eb5c2d4b45e3d2d Will Deacon 2020-07-21 698 * @condition: a compile-time constant condition to check
eb5c2d4b45e3d2d Will Deacon 2020-07-21 699 * @msg: a message to emit if condition is false
eb5c2d4b45e3d2d Will Deacon 2020-07-21 700 *
eb5c2d4b45e3d2d Will Deacon 2020-07-21 701 * In tradition of POSIX assert, this macro will break the build if the
eb5c2d4b45e3d2d Will Deacon 2020-07-21 702 * supplied condition is *false*, emitting the supplied error message if the
eb5c2d4b45e3d2d Will Deacon 2020-07-21 703 * compiler has support to do so.
eb5c2d4b45e3d2d Will Deacon 2020-07-21 704 */
eb5c2d4b45e3d2d Will Deacon 2020-07-21 705 #define compiletime_assert(condition, msg) \
eb5c2d4b45e3d2d Will Deacon 2020-07-21 @706 _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
eb5c2d4b45e3d2d Will Deacon 2020-07-21 707
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
© 2016 - 2026 Red Hat, Inc.