#ifndef __DAP_UTILITY_H__ #define __DAP_UTILITY_H__ #include #ifndef __STATIC_FORCEINLINE #define __STATIC_FORCEINLINE static inline __attribute__((always_inline)) #endif #ifndef __STATIC_INLINE #define __STATIC_INLINE static inline __attribute__((always_inline)) #endif #ifndef __WEAK #define __WEAK __attribute__((weak)) #endif extern const uint8_t kParityByteTable[256]; __STATIC_FORCEINLINE uint8_t ParityEvenUint32(uint32_t v) { v ^= v >> 16; v ^= v >> 8; v ^= v >> 4; v &= 0xf; return (0x6996 >> v) & 1; } __STATIC_FORCEINLINE uint8_t ParityEvenUint8(uint8_t v) { return kParityByteTable[v]; } #endif