From 4fc5fe028cd8434187d5cff4a02821be3f082558 Mon Sep 17 00:00:00 2001 From: Hongze Cheng Date: Tue, 28 Dec 2021 16:30:51 +0800 Subject: [PATCH] refact --- include/util/tcoding.h | 276 ----------------------------------------- 1 file changed, 276 deletions(-) diff --git a/include/util/tcoding.h b/include/util/tcoding.h index 001e5fcb8d..e1edf0d792 100644 --- a/include/util/tcoding.h +++ b/include/util/tcoding.h @@ -25,282 +25,6 @@ extern "C" { #define ZIGZAGE(T, v) ((u##T)((v) >> (sizeof(T) * 8 - 1))) ^ (((u##T)(v)) << 1) // zigzag encode #define ZIGZAGD(T, v) ((v) >> 1) ^ -((T)((v)&1)) // zigzag decode -/* ------------------------ FIXED-LENGTH ENCODING ------------------------ */ -// 16 -#define tPut16b(BUF, VAL) \ - ({ \ - ((uint8_t *)(BUF))[1] = (VAL)&0xff; \ - ((uint8_t *)(BUF))[0] = ((VAL) >> 8) & 0xff; \ - 2; \ - }) - -#define tGet16b(BUF, VAL) \ - ({ \ - (VAL) = ((uint8_t *)(BUF))[0]; \ - (VAL) = (VAL) << 8; \ - (VAL) |= ((uint8_t *)(BUF))[1]; \ - 2; \ - }) - -#define tPut16l(BUF, VAL) \ - ({ \ - ((uint8_t *)(BUF))[0] = (VAL)&0xff; \ - ((uint8_t *)(BUF))[1] = ((VAL) >> 8) & 0xff; \ - 2; \ - }) - -#define tGet16l(BUF, VAL) \ - ({ \ - (VAL) = ((uint8_t *)(BUF))[1]; \ - (VAL) <<= 8; \ - (VAL) |= ((uint8_t *)(BUF))[0]; \ - 2; \ - }) - -// 32 -#define tPut32b(BUF, VAL) \ - ({ \ - ((uint8_t *)(BUF))[3] = (VAL)&0xff; \ - ((uint8_t *)(BUF))[2] = ((VAL) >> 8) & 0xff; \ - ((uint8_t *)(BUF))[1] = ((VAL) >> 16) & 0xff; \ - ((uint8_t *)(BUF))[0] = ((VAL) >> 24) & 0xff; \ - 4; \ - }) - -#define tGet32b(BUF, VAL) \ - ({ \ - (VAL) = ((uint8_t *)(BUF))[0]; \ - (VAL) <<= 8; \ - (VAL) = ((uint8_t *)(BUF))[1]; \ - (VAL) <<= 8; \ - (VAL) = ((uint8_t *)(BUF))[2]; \ - (VAL) <<= 8; \ - (VAL) = ((uint8_t *)(BUF))[3]; \ - 4; \ - }) - -#define tPut32l(BUF, VAL) \ - ({ \ - ((uint8_t *)(BUF))[0] = (VAL)&0xff; \ - ((uint8_t *)(BUF))[1] = ((VAL) >> 8) & 0xff; \ - ((uint8_t *)(BUF))[2] = ((VAL) >> 16) & 0xff; \ - ((uint8_t *)(BUF))[3] = ((VAL) >> 24) & 0xff; \ - 4; \ - }) - -#define tGet32l(BUF, VAL) \ - ({ \ - (VAL) = ((uint8_t *)(BUF))[3]; \ - (VAL) <<= 8; \ - (VAL) = ((uint8_t *)(BUF))[2]; \ - (VAL) <<= 8; \ - (VAL) = ((uint8_t *)(BUF))[1]; \ - (VAL) <<= 8; \ - (VAL) = ((uint8_t *)(BUF))[0]; \ - 4; \ - }) - -// 64 -#define tPut64b(BUF, VAL) \ - ({ \ - ((uint8_t *)(BUF))[7] = (VAL)&0xff; \ - ((uint8_t *)(BUF))[6] = ((VAL) >> 8) & 0xff; \ - ((uint8_t *)(BUF))[5] = ((VAL) >> 16) & 0xff; \ - ((uint8_t *)(BUF))[4] = ((VAL) >> 24) & 0xff; \ - ((uint8_t *)(BUF))[3] = ((VAL) >> 32) & 0xff; \ - ((uint8_t *)(BUF))[2] = ((VAL) >> 40) & 0xff; \ - ((uint8_t *)(BUF))[1] = ((VAL) >> 48) & 0xff; \ - ((uint8_t *)(BUF))[0] = ((VAL) >> 56) & 0xff; \ - 8; \ - }) - -#define tGet64b(BUF, VAL) \ - ({ \ - (VAL) = ((uint8_t *)(BUF))[0]; \ - (VAL) <<= 8; \ - (VAL) = ((uint8_t *)(BUF))[1]; \ - (VAL) <<= 8; \ - (VAL) = ((uint8_t *)(BUF))[2]; \ - (VAL) <<= 8; \ - (VAL) = ((uint8_t *)(BUF))[3]; \ - (VAL) <<= 8; \ - (VAL) = ((uint8_t *)(BUF))[4]; \ - (VAL) <<= 8; \ - (VAL) = ((uint8_t *)(BUF))[5]; \ - (VAL) <<= 8; \ - (VAL) = ((uint8_t *)(BUF))[6]; \ - (VAL) <<= 8; \ - (VAL) = ((uint8_t *)(BUF))[7]; \ - 8; \ - }) - -#define tPut64l(BUF, VAL) \ - ({ \ - ((uint8_t *)(BUF))[0] = (VAL)&0xff; \ - ((uint8_t *)(BUF))[1] = ((VAL) >> 8) & 0xff; \ - ((uint8_t *)(BUF))[2] = ((VAL) >> 16) & 0xff; \ - ((uint8_t *)(BUF))[3] = ((VAL) >> 24) & 0xff; \ - ((uint8_t *)(BUF))[4] = ((VAL) >> 32) & 0xff; \ - ((uint8_t *)(BUF))[5] = ((VAL) >> 40) & 0xff; \ - ((uint8_t *)(BUF))[6] = ((VAL) >> 48) & 0xff; \ - ((uint8_t *)(BUF))[7] = ((VAL) >> 56) & 0xff; \ - 8; \ - }) - -#define tGet64l(BUF, VAL) \ - ({ \ - (VAL) = ((uint8_t *)(BUF))[7]; \ - (VAL) <<= 8; \ - (VAL) = ((uint8_t *)(BUF))[6]; \ - (VAL) <<= 8; \ - (VAL) = ((uint8_t *)(BUF))[5]; \ - (VAL) <<= 8; \ - (VAL) = ((uint8_t *)(BUF))[4]; \ - (VAL) <<= 8; \ - (VAL) = ((uint8_t *)(BUF))[3]; \ - (VAL) <<= 8; \ - (VAL) = ((uint8_t *)(BUF))[2]; \ - (VAL) <<= 8; \ - (VAL) = ((uint8_t *)(BUF))[1]; \ - (VAL) <<= 8; \ - (VAL) = ((uint8_t *)(BUF))[0]; \ - 8; \ - }) - -#define tPut(BUF, VAL, TYPE) \ - ({ \ - *(TYPE *)(BUF) = (VAL); \ - sizeof(TYPE); \ - }) - -#define tGet(BUF, VAL, TYPE) \ - ({ \ - (VAL) = (*(TYPE *)(BUF)); \ - sizeof(TYPE); \ - }) - -#define tPut_uint8_t_l(BUF, VAL, TYPE) tPut(BUF, VAL, TYPE) -#define tGet_uint8_t_l(BUF, VAL, TYPE) tGet16l(BUF, VAL, TYPE) -#define tPut_int8_t_l(BUF, VAL, TYPE) tPut16l(BUF, VAL, TYPE) -#define tGet_int8_t_l(BUF, VAL, TYPE) tGet16l(BUF, VAL, TYPE) - -#define tPut_uint16_t_l(BUF, VAL, TYPE) tPut16l(BUF, VAL) -#define tGet_uint16_t_l(BUF, VAL, TYPE) tGet16l(BUF, VAL) -#define tPut_int16_t_l(BUF, VAL, TYPE) tPut16l(BUF, VAL) -#define tGet_int16_t_l(BUF, VAL, TYPE) tGet16l(BUF, VAL) - -#define tPut_uint32_t_l(BUF, VAL, TYPE) tPut32l(BUF, VAL) -#define tGet_uint32_t_l(BUF, VAL, TYPE) tGet32l(BUF, VAL) -#define tPut_int32_t_l(BUF, VAL, TYPE) tPut32l(BUF, VAL) -#define tGet_int32_t_l(BUF, VAL, TYPE) tGet32l(BUF, VAL) - -#define tPut_uint64_t_l(BUF, VAL, TYPE) tPut64l(BUF, VAL) -#define tGet_uint64_t_l(BUF, VAL, TYPE) tGet64l(BUF, VAL) -#define tPut_int64_t_l(BUF, VAL, TYPE) tPut64l(BUF, VAL) -#define tGet_int64_t_l(BUF, VAL, TYPE) tGet64l(BUF, VAL) - -#define tPut_uint8_t_b(BUF, VAL, TYPE) tPut(BUF, VAL, TYPE) -#define tGet_uint8_t_b(BUF, VAL, TYPE) tGet16l(BUF, VAL, TYPE) -#define tPut_int8_t_b(BUF, VAL, TYPE) tPut16l(BUF, VAL, TYPE) -#define tGet_int8_t_b(BUF, VAL, TYPE) tGet16l(BUF, VAL, TYPE) - -#define tPut_uint16_t_b(BUF, VAL, TYPE) tPut16b(BUF, VAL) -#define tGet_uint16_t_b(BUF, VAL, TYPE) tGet16b(BUF, VAL) -#define tPut_int16_t_b(BUF, VAL, TYPE) tPut16b(BUF, VAL) -#define tGet_int16_t_b(BUF, VAL, TYPE) tGet16b(BUF, VAL) - -#define tPut_uint32_t_b(BUF, VAL, TYPE) tPut32b(BUF, VAL) -#define tGet_uint32_t_b(BUF, VAL, TYPE) tGet32b(BUF, VAL) -#define tPut_int32_t_b(BUF, VAL, TYPE) tPut32b(BUF, VAL) -#define tGet_int32_t_b(BUF, VAL, TYPE) tGet32b(BUF, VAL) - -#define tPut_uint64_t_b(BUF, VAL, TYPE) tPut64b(BUF, VAL) -#define tGet_uint64_t_b(BUF, VAL, TYPE) tGet64b(BUF, VAL) -#define tPut_int64_t_b(BUF, VAL, TYPE) tPut64b(BUF, VAL) -#define tGet_int64_t_b(BUF, VAL, TYPE) tGet64b(BUF, VAL) - -#define tPutl(BUF, VAL, TYPE) tPut_##TYPE##_l(BUF, VAL, TYPE) - -#define tGetl(BUF, VAL, TYPE) tGet_##TYPE##_l(BUF, VAL, TYPE) - -#define tPutb(BUF, VAL, TYPE) tPut_##TYPE##_b(BUF, VAL, TYPE) - -#define tGetb(BUF, VAL, TYPE) tGet_##TYPE##_b(BUF, VAL, TYPE) - -#define tPutVal(BUF, VAL, TYPE, ENDIAN) \ - ({ \ - int len; \ - if (TD_RT_ENDIAN() == (ENDIAN)) { \ - len = tPut(BUF, VAL, TYPE); \ - } else { \ - if ((ENDIAN) == TD_LITTLE_ENDIAN) { \ - len = tPutl(BUF, VAL, TYPE); \ - } else if ((ENDIAN) == TD_LITTLE_ENDIAN) { \ - len = tPutb(BUF, VAL, TYPE); \ - } else { \ - ASSERT(0); \ - } \ - } \ - if (BUF) BUF = BUF + len; \ - len; \ - }) - -#define tGetVal(BUF, VAL, TYPE, ENDIAN) \ - ({ \ - int len; \ - if (TD_RT_ENDIAN() == (ENDIAN)) { \ - len = tGet(BUF, VAL, TYPE); \ - } else { \ - if ((ENDIAN) == TD_LITTLE_ENDIAN) { \ - len = tGetl(BUF, VAL, TYPE); \ - } else if ((ENDIAN) == TD_BIG_ENDIAN) { \ - len = tGetb(BUF, VAL, TYPE); \ - } else { \ - } \ - } \ - BUF = BUF + len; \ - len; \ - }) - -/* ------------------------ VARIANT-LENGTH ENCODING ------------------------ */ -#define vPut(BUF, VAL, SIGN) \ - ({ \ - uint64_t tmp = (SIGN) ? ZIGZAGE(int64_t, VAL) : (VAL); \ - int i = 0; \ - while ((VAL) >= ENCODE_LIMIT) { \ - ((uint8_t *)(BUF))[i] = (uint8_t)((tmp) | ENCODE_LIMIT); \ - (tmp) >>= 7; \ - i++; \ - } \ - ((uint8_t *)(BUF))[i] = (uint8_t)(tmp); \ - i + 1; \ - }) - -#define vGet(BUF, VAL, SIGN) \ - ({ \ - uint64_t tmp; \ - uint64_t tval = 0; \ - int i = 0; \ - while (true) { \ - tmp = (uint64_t)(((uint8_t *)(BUF))[i]); \ - if (tmp < ENCODE_LIMIT) { \ - tval |= (tval << (7 * i)); \ - break; \ - } else { \ - tval |= ((tval & (ENCODE_LIMIT - 1)) << (7 * i)); \ - i++; \ - } \ - } \ - if (SIGN) { \ - (VAL) = ZIGZAGD(int64_t, tmp); \ - } else { \ - (VAL) = tmp; \ - } \ - i; \ - }) - -/* ------------------------ OTHER TYPE ENCODING ------------------------ */ - /* ------------------------ LEGACY CODES ------------------------ */ #if 1 // ---- Fixed U8