1 #ifndef _FIRM_HASH_STRING_H_
2 #define _FIRM_HASH_STRING_H_
4 #define _FIRM_FNV_OFFSET_BASIS 2166136261U
5 #define _FIRM_FNV_FNV_PRIME 16777619U
7 static INLINE __attribute__((pure))
8 unsigned hash_string(const char* str)
10 const unsigned char *p;
11 unsigned hash = _FIRM_FNV_OFFSET_BASIS;
13 for(p = (const unsigned char*) str; *p != 0; ++p) {
14 hash *= _FIRM_FNV_FNV_PRIME;
21 static INLINE __attribute__((pure))
22 unsigned hash_string_size(const char* str, size_t size)
25 unsigned hash = _FIRM_FNV_OFFSET_BASIS;
27 for(i = 0; i < size; ++i) {
28 hash *= _FIRM_FNV_FNV_PRIME;