#ifndef CRC32_BRAID_P_H_ #define CRC32_BRAID_P_H_ #include "zendian.h" /* Define BRAID_N, valid range is 1..6 */ #define BRAID_N 5 /* Define BRAID_W and the associated z_word_t type. If BRAID_W is not defined, then a braided calculation is not used, and the associated tables and code are not compiled. TODO: According to crc32_braid_c.c, BRAID_N=5, BRAID_W=4 is fastest with Sparc64-VII, PowerPC POWER9, and MIPS64 Octeon II processors. */ #ifdef ARCH_64BIT # define BRAID_W 8 typedef uint64_t z_word_t; # define Z_WORD_FROM_LE(word) Z_U64_FROM_LE(word) #else # define BRAID_W 4 typedef uint32_t z_word_t; # define Z_WORD_FROM_LE(word) Z_U32_FROM_LE(word) #endif #if BYTE_ORDER == LITTLE_ENDIAN # define BRAID_TABLE crc_braid_table #elif BYTE_ORDER == BIG_ENDIAN # define BRAID_TABLE crc_braid_big_table #else # error "No endian defined" #endif /* CRC polynomial. */ #define POLY 0xedb88320 /* p(x) reflected, with x^32 implied */ #endif /* CRC32_BRAID_P_H_ */