Add swap utility
This commit is contained in:
@@ -31,24 +31,29 @@ BEGIN_C_LINKAGE
|
||||
#define U64_RSHIFT_OR_8(X) (((u64)X) | (((u64)X) >> 8))
|
||||
#define U64_RSHIFT_OR_16(X) (((u64)X) | (((u64)X) >> 16))
|
||||
#define U64_RSHIFT_OR_32(X) (((u64)X) | (((u64)X) >> 32))
|
||||
#define wpMiscUtilsU64RoundUpPow2(X) ( \
|
||||
( \
|
||||
U64_RSHIFT_OR_32( \
|
||||
U64_RSHIFT_OR_16( \
|
||||
U64_RSHIFT_OR_8( \
|
||||
U64_RSHIFT_OR_4( \
|
||||
U64_RSHIFT_OR_2( \
|
||||
U64_RSHIFT_OR_1(X - 1) \
|
||||
) \
|
||||
) \
|
||||
) \
|
||||
) \
|
||||
) \
|
||||
) + 1 \
|
||||
#define wpMiscUtilsU64RoundUpPow2(X) ( \
|
||||
( \
|
||||
U64_RSHIFT_OR_32( \
|
||||
U64_RSHIFT_OR_16( \
|
||||
U64_RSHIFT_OR_8( \
|
||||
U64_RSHIFT_OR_4( \
|
||||
U64_RSHIFT_OR_2( \
|
||||
U64_RSHIFT_OR_1(X - 1) \
|
||||
) \
|
||||
) \
|
||||
) \
|
||||
) \
|
||||
) \
|
||||
) + 1 \
|
||||
)
|
||||
|
||||
#define wpMiscUtilsIsPowerOfTwo(NUM) ((NUM & (NUM - 1)) == 0)
|
||||
#define wpMiscUtilsOffsetPointer(PTR, OFFSET) ((void *)((uptr)(PTR) + (OFFSET)))
|
||||
#define wpMiscUtilsSwap(TYPE, A_PTR, B_PTR) do { \
|
||||
TYPE tmp = *(A_PTR); \
|
||||
*(A_PTR) = *(B_PTR); \
|
||||
*(B_PTR) = tmp; \
|
||||
} while(0)
|
||||
|
||||
wp_intern inline u64 wpMiscUtilsRotl64(u64 x, i8 rotation) {
|
||||
return (x << rotation) | (x >> (64 - rotation));
|
||||
|
||||
Reference in New Issue
Block a user