38 uint32_t __u32_esos_PRNG_Seed;
39 uint32_t __esos_u32FNVHash = 2166136261uL;
71 __u32_esos_PRNG_Seed = u32_seed;
83 lo = 16807 * ( __u32_esos_PRNG_Seed * 0xFFFF );
84 hi = 16807 * ( __u32_esos_PRNG_Seed >> 16 );
85 lo += (hi & 0x7FFF) << 16;
87 if (lo > 0x7FFFFFFF) lo -= 0x7FFFFFFF;
88 return (__u32_esos_PRNG_Seed = (uint32_t) lo );
101 return ( __esos_hw_PRNG_u32() );
110 unsigned char *bp = (
unsigned char *)buf;
111 unsigned char *be = bp + len;
112 uint32_t u32_temp = 2166136261uL;
119 u32_temp += (u32_temp<<1) + (u32_temp<<4) + (u32_temp<<7) + (u32_temp<<8) + (u32_temp<<24);
122 u32_temp ^= (uint32_t)*bp++;
124 return (uint16_t) ((u32_temp >> 16) ^ (u32_temp & 0xFFFF));
141 unsigned char *bp = (
unsigned char *)buf;
142 unsigned char *be = bp + len;
150 #if defined(NO_FNV_GCC_OPTIMIZATION)
151 __esos_u32FNVHash *= FNV_32_PRIME;
153 __esos_u32FNVHash += (__esos_u32FNVHash<<1) + (__esos_u32FNVHash<<4) + (__esos_u32FNVHash<<7) + (__esos_u32FNVHash<<8) + (__esos_u32FNVHash<<24);
157 __esos_u32FNVHash ^= (uint32_t)*bp++;
161 return __esos_u32FNVHash;
177 unsigned char *ch_s = (
unsigned char *)psz_str;
185 #if defined(NO_FNV_GCC_OPTIMIZATION)
186 __esos_u32FNVHash *= FNV_32_PRIME;
188 __esos_u32FNVHash += (__esos_u32FNVHash<<1) + (__esos_u32FNVHash<<4) + (__esos_u32FNVHash<<7) + (__esos_u32FNVHash<<8) + (__esos_u32FNVHash<<24);
192 __esos_u32FNVHash ^= (uint32_t)*ch_s++;
196 return __esos_u32FNVHash;
199 inline uint16_t esos_hash_u32_to_u16(uint32_t u32_hash) {
200 return (uint16_t) ((u32_hash>>16) ^ (u32_hash&0xFFFF));