Lines Matching +full:- +full:v

1 /* SPDX-License-Identifier: BSD-2-Clause */
3 * Copyright (c) 2014, STMicroelectronics International N.V.
55 ((((x) + (__typeof__(x))(y) - 1) / (__typeof__(x))(y)) * \
59 #define ROUNDUP2(v, size) \ argument
62 (((v) + ((__typeof__(v))(size) - 1)) & \
63 ~((__typeof__(v))(size) - 1)); \
67 * ROUNDUP_OVERFLOW(v, size, res)
69 * @v: Input value to round
74 * Round up value @v to the even multiple of @size and return if result
78 #define ROUNDUP_OVERFLOW(v, size, res) \ argument
80 typeof(v) __roundup_mod = 0; \
81 typeof(v) __roundup_add = 0; \
83 __roundup_mod = (v) % (typeof(v))(size); \
85 __roundup_add = (typeof(v))(size) - __roundup_mod; \
86 ADD_OVERFLOW((v), __roundup_add, (res)); \
90 * ROUNDUP2_OVERFLOW(v, size, res)
92 * @v: Input value to round
97 * Round up value @v to the even multiple of @size and return if result
101 #define ROUNDUP2_OVERFLOW(v, size, res) \ argument
104 typeof(v) __roundup_mask = (typeof(v))(size) - 1; \
107 ADD_OVERFLOW((v), __roundup_mask, &__roundup_tmp) ? 1 : \
124 typeof(y) __roundup_mask = (typeof(x))(y) - 1; \
142 #define ROUNDDOWN2(v, size) \ argument
145 ((v) & ~((__typeof__(v))(size) - 1)); \
152 #define DIV_ROUND_UP(x, y) (((x) + (y) - 1) / (y))
160 #define ROUNDUP(x, y) ((((x) + (y) - 1) / (y)) * (y))
168 #define IS_ALIGNED(x, a) (((x) & ((a) - 1)) == 0)
183 const typeof(((type *)0)->member) *__ptr = (ptr); \
184 (type *)((unsigned long)(__ptr) - offsetof(type, member)); \
187 #define MEMBER_SIZE(type, member) sizeof(((type *)0)->member)
192 #define SHIFT_U32(v, shift) ((v) << (shift))
193 #define SHIFT_U64(v, shift) ((v) << (shift))
197 #define SHIFT_U32(v, shift) ((uint32_t)(v) << (shift)) argument
198 #define SHIFT_U64(v, shift) ((uint64_t)(v) << (shift)) argument
209 (UINT32_C(0xffffffff) >> (32 - 1 - (h))))
212 (((~UINT64_C(0)) << (l)) & (~UINT64_C(0) >> (64 - 1 - (h))))
225 /* Return a signed +1, 0 or -1 value based on data comparison */
231 _a > _b ? 1 : _a < _b ? -1 : 0; \
258 * Functions to get and set bit fields in a 32/64-bit bitfield.
263 * These functions exist in both 32-bit and 64-bit versions.
266 * set_field_u64() - Modifies specific bits in a bitfield by clearing
269 * @reg: The original 32-bit or 64-bit bitfield value.
273 * according to @mask rightmost non-zero bit position.
280 * get_field_u64() - Extracts the value of specific bits in a bitfield
283 * @reg: The original 32-bit or 64-bit bitfield value.
287 * @mask rightmost non-zero bit position.
293 return (reg & mask) / (mask & ~(mask - 1)); in get_field_u32()
298 return (reg & ~mask) | (val * (mask & ~(mask - 1))); in set_field_u32()
303 return (reg & mask) / (mask & ~(mask - 1)); in get_field_u64()
308 return (reg & ~mask) | (val * (mask & ~(mask - 1))); in set_field_u64()