u128
u128 full;
static __always_inline u128 \
__ll_sc__cmpxchg128##name(volatile u128 *ptr, u128 old, u128 new) \
: [v] "+Q" (*(u128 *)ptr), \
static __always_inline u128 \
__lse__cmpxchg128##name(volatile u128 *ptr, u128 old, u128 new) \
[v] "+Q" (*(u128 *)ptr) \
static inline u128 __cmpxchg128##name(volatile u128 *ptr, \
u128 old, u128 new) \
u128 old__, new__, ret__; \
u128 full;
void gcm_init_p8(u128 htable[16], const u64 Xi[2]);
void gcm_gmult_p8(u64 Xi[2], const u128 htable[16]);
void gcm_ghash_p8(u64 Xi[2], const u128 htable[16],
u128 htable[16];
u128 full;
((u128)t4 << 64) | t3; \
u128 mbl;
#define MAX_IMBL_SIZE sizeof(u128)
*(u128 *)imbl = (((u128)buflen_hi << 64) + buflen_lo) << 3;
#define MAX_IMBL_SIZE sizeof(u128)
u128 mbl;
*(u128 *)imbl = (((u128)buflen_hi << 64) + buflen_lo) << 3;
static __always_inline u128 arch_cmpxchg128(volatile u128 *ptr, u128 old, u128 new)
static __always_inline bool arch_try_cmpxchg128(volatile u128 *ptr, u128 *oldp, u128 new)
u128 val;
u128 old__, new__, ret__; \
static __always_inline u128 eitod_to_ns(u128 todval)
u128 full;
static __always_inline u128 arch_cmpxchg128(volatile u128 *ptr, u128 old, u128 new)
static __always_inline u128 arch_cmpxchg128_local(volatile u128 *ptr, u128 old, u128 new)
static __always_inline bool arch_try_cmpxchg128(volatile u128 *ptr, u128 *oldp, u128 new)
static __always_inline bool arch_try_cmpxchg128_local(volatile u128 *ptr, u128 *oldp, u128 new)
u128 var; \
u128 *_oval = (u128 *)(_ovalp); \
u128 var; \
u128 irte;
u128 data128[2];
u128 old;
u128 old = irte->irte;
vcap_copy_from_w32be(field->data.u128.value, value,
vcap_copy_limited_actionfield(field->data.u128.value,
vcap_copy_from_w32be(field->data.u128.value, value,
vcap_copy_from_w32be(field->data.u128.mask, mask,
vcap_copy_limited_keyfield(field->data.u128.value,
field->data.u128.mask,
memcpy(&data.u128, fieldval, sizeof(data.u128));
value = kf->data.u128.value;
mask = kf->data.u128.mask;
vcap_copy_to_w32be(ddata->u128.value, sdata->u128.value, size);
vcap_copy_to_w32be(ddata->u128.mask, sdata->u128.mask, size);
vcap_copy_to_w32be(ddata->u128.value, sdata->u128.value, size);
value = af->data.u128.value;
struct vcap_u128_action u128;
struct vcap_u128_key u128;
value = data->u128.value;
mask = data->u128.mask;
vcap_netbytes_copy(nvalue, data->u128.value,
vcap_netbytes_copy(nmask, data->u128.mask,
KUNIT_EXPECT_EQ(test, dip.value[idx], kf->data.u128.value[idx]);
KUNIT_EXPECT_EQ(test, dip.mask[idx], kf->data.u128.mask[idx]);
.data.u128.value = { 0xa1, 0xa2, 0xa3, 0xa4, 0, 0, 0x43, 0,
.data.u128.mask = { 0xff, 0xff, 0xff, 0xff, 0, 0, 0xff, 0,
#define GENMASK_U128(h, l) GENMASK_TYPE(u128, h, l)
u128 c = ((tctr) >> (51));
tmp[ctr] = ((u128)(r0));
u128 tctr = tmp[ctr];
u128 tctrp1 = tmp[ctr + 1];
u128 c = ((tctr) >> (51));
tmp[ctr] = ((u128)(r0));
u128 tctr = tmp[ctr];
u128 tctrp1 = tmp[ctr + 1];
u128 c = ((tctr) >> (51));
tmp[ctr] = ((u128)(r0));
static __always_inline void fmul_mul_shift_reduce_(u128 *output, u64 *input,
u128 b4;
u128 b0;
u128 b4_;
u128 b0_;
u128 t[5] = { 0 };
b4_ = ((b4) & (((u128)(0x7ffffffffffffLLU))));
b0_ = ((b0) + (((u128)(19) * (((u64)(((b4) >> (51))))))));
static __always_inline void fsquare_fsquare__(u128 *tmp, u64 *output)
u128 s0 = ((((((u128)(r0) * (r0))) + (((u128)(d4) * (r1))))) +
(((u128)(d2) * (r3))));
u128 s1 = ((((((u128)(d0) * (r1))) + (((u128)(d4) * (r2))))) +
(((u128)(r3 * 19) * (r3))));
u128 s2 = ((((((u128)(d0) * (r2))) + (((u128)(r1) * (r1))))) +
(((u128)(d4) * (r3))));
u128 s3 = ((((((u128)(d0) * (r3))) + (((u128)(d1) * (r2))))) +
(((u128)(r4) * (d419))));
u128 s4 = ((((((u128)(d0) * (r4))) + (((u128)(d1) * (r3))))) +
(((u128)(r2) * (r2))));
static __always_inline void fsquare_fsquare_(u128 *tmp, u64 *output)
u128 b4;
u128 b0;
u128 b4_;
u128 b0_;
b4_ = ((b4) & (((u128)(0x7ffffffffffffLLU))));
b0_ = ((b0) + (((u128)(19) * (((u64)(((b4) >> (51))))))));
static __always_inline void fsquare_fsquare_times_(u64 *output, u128 *tmp,
u128 t[5];
u128 t[5];
u128 tmp[5];
u128 b4;
u128 b0;
u128 b4_;
u128 b0_;
tmp[0] = ((u128)(xi) * (s));
tmp[1] = ((u128)(xi) * (s));
tmp[2] = ((u128)(xi) * (s));
tmp[3] = ((u128)(xi) * (s));
tmp[4] = ((u128)(xi) * (s));
b4_ = ((b4) & (((u128)(0x7ffffffffffffLLU))));
b0_ = ((b0) + (((u128)(19) * (((u64)(((b4) >> (51))))))));
static __always_inline void fproduct_copy_from_wide_(u64 *output, u128 *input)
u128 xi = input[0];
u128 xi = input[1];
u128 xi = input[2];
u128 xi = input[3];
u128 xi = input[4];
fproduct_sum_scalar_multiplication_(u128 *output, u64 *input, u64 s)
output[0] += (u128)input[0] * s;
output[1] += (u128)input[1] * s;
output[2] += (u128)input[2] * s;
output[3] += (u128)input[3] * s;
output[4] += (u128)input[4] * s;
static __always_inline void fproduct_carry_wide_(u128 *tmp)
u128 tctr = tmp[ctr];
u128 tctrp1 = tmp[ctr + 1];
u128 c = ((tctr) >> (51));
tmp[ctr] = ((u128)(r0));
u128 tctr = tmp[ctr];
u128 tctrp1 = tmp[ctr + 1];
u128 d0, d1, d2, d;
d0 = (u128)h0 * r0;
d = (u128)h1 * s2;
d = (u128)h2 * s1;
d1 = (u128)h0 * r1;
d = (u128)h1 * r0;
d = (u128)h2 * s2;
d2 = (u128)h0 * r2;
d = (u128)h1 * r1;
d = (u128)h2 * r0;
u128 c0 = (a0 * (u128)b0) ^ (a1 * (u128)b3) ^
(a2 * (u128)b2) ^ (a3 * (u128)b1);
u128 c1 = (a0 * (u128)b1) ^ (a1 * (u128)b0) ^
(a2 * (u128)b3) ^ (a3 * (u128)b2);
u128 c2 = (a0 * (u128)b2) ^ (a1 * (u128)b1) ^
(a2 * (u128)b0) ^ (a3 * (u128)b3);
u128 c3 = (a0 * (u128)b3) ^ (a1 * (u128)b2) ^
(a2 * (u128)b1) ^ (a3 * (u128)b0);
u128 prod = (u128)a * b + c;
typedef u128 freelist_full_t;
#define GENMASK_U128(h, l) GENMASK_TYPE(u128, h, l)