Main Page | Modules | Alphabetical List | Data Structures | Directories | File List | Data Fields | Globals | Related Pages

hashes.h File Reference

#include "str.h"

Go to the source code of this file.

Defines

#define hash_update_str(s, end, p, v, h)
#define hash_update_case_str(s, end, p, v, h)
#define hash_finish(h)   (((h)+((h)>>11))+(((h)>>13)+((h)>>23)))
#define hash_update_str2(s, end, p, v, h)
#define hash_update_case_str2(s, end, p, v, h)
#define hash_finish2(h)   (((h)+((h)>>7))+(((h)>>13)+((h)>>23)))

Functions

unsigned int get_hash2_raw (str *key1, str *key2)
unsigned int get_hash1_raw (char *s, int len)
unsigned int get_hash1_raw2 (char *s, int len)
unsigned int get_hash2_raw2 (str *key1, str *key2)
unsigned int get_hash2_case_raw (str *key1, str *key2)
unsigned int get_hash1_case_raw (char *s, int len)
unsigned int get_hash1_case_raw2 (char *s, int len)
unsigned int get_hash2_case_raw2 (str *key1, str *key2)


Define Documentation

#define hash_finish  )     (((h)+((h)>>11))+(((h)>>13)+((h)>>23)))
 

Definition at line 79 of file hashes.h.

Referenced by get_hash1_case_raw(), get_hash1_raw(), get_hash2_case_raw(), and get_hash2_raw().

#define hash_finish2  )     (((h)+((h)>>7))+(((h)>>13)+((h)>>23)))
 

Definition at line 145 of file hashes.h.

Referenced by get_hash1_case_raw2(), get_hash1_raw2(), get_hash2_case_raw2(), and get_hash2_raw2().

#define hash_update_case_str s,
end,
p,
v,
 ) 
 

Value:

do{ \
                for ((p)=(s); (p)<=((end)-4); (p)+=4){ \
                        (v)=((*(p)<<24)+((p)[1]<<16)+((p)[2]<<8)+(p)[3])|0x20202020; \
                        (h)+=(v)^((v)>>3); \
                } \
                (v)=0; \
                for (;(p)<(end); (p)++){ (v)<<=8; (v)+=*(p)|0x20;} \
                (h)+=(v)^((v)>>3); \
        }while(0)

Definition at line 66 of file hashes.h.

Referenced by get_hash1_case_raw(), and get_hash2_case_raw().

#define hash_update_case_str2 s,
end,
p,
v,
 ) 
 

Value:

do{ \
                for ((p)=(s); (p)<=((end)-4); (p)+=4){ \
                        (v)=((*(p)|0x20)*16777213)+(((p)[1]|0x20)*65537)+\
                                (((p)[2]|0x20)*257)+((p)[3]|0x20); \
                        (h)=16777259*(h)+((v)^((v)<<17)); \
                } \
                (v)=0; \
                for (;(p)<(end); (p)++){ (v)*=251; (v)+=*(p)|0x20;} \
                (h)=16777259*(h)+((v)^((v)<<17)); \
        }while(0)

Definition at line 132 of file hashes.h.

Referenced by get_hash1_case_raw2(), and get_hash2_case_raw2().

#define hash_update_str s,
end,
p,
v,
 ) 
 

Value:

do{ \
                for ((p)=(s); (p)<=((end)-4); (p)+=4){ \
                        (v)=(*(p)<<24)+((p)[1]<<16)+((p)[2]<<8)+(p)[3]; \
                        (h)+=(v)^((v)>>3); \
                } \
                switch((end)-(p)){\
                        case 3: \
                                (v)=(*(p)<<16)+((p)[1]<<8)+(p)[2]; break; \
                        case 2: \
                                (v)=(*(p)<<8)+p[1]; break; \
                        case 1: \
                                (v)=*p; break; \
                        default: \
                                (v)=0; break; \
                } \
                (h)+=(v)^((v)>>3); \
        }while(0)

Definition at line 41 of file hashes.h.

Referenced by get_hash1_raw(), and get_hash2_raw().

#define hash_update_str2 s,
end,
p,
v,
 ) 
 

Value:

do{ \
                for ((p)=(s); (p)<=((end)-4); (p)+=4){ \
                        (v)=(*(p)*16777213)+((p)[1]*65537)+((p)[2]*257)+(p)[3]; \
                        (h)=16777259*(h)+((v)^((v)<<17)); \
                } \
                (v)=0; \
                for (;(p)<(end); (p)++){ (v)*=251; (v)+=*(p);} \
                (h)=16777259*(h)+((v)^((v)<<17)); \
        }while(0)

Definition at line 120 of file hashes.h.

Referenced by get_hash1_raw2(), and get_hash2_raw2().


Function Documentation

unsigned int get_hash1_case_raw char *  s,
int  len
[inline, static]
 

Definition at line 205 of file hashes.h.

References hash_finish, hash_update_case_str, len, and s.

unsigned int get_hash1_case_raw2 char *  s,
int  len
[inline, static]
 

Definition at line 221 of file hashes.h.

References hash_finish2, hash_update_case_str2, len, and s.

unsigned int get_hash1_raw char *  s,
int  len
[inline, static]
 

Definition at line 104 of file hashes.h.

References hash_finish, hash_update_str, len, and s.

Referenced by addcert2table(), find_mutex(), get_cert_from_table(), get_flag_entry(), hash_func(), init_extra_avp_locks(), proc_cid(), register_flag(), str_hash_add(), and str_hash_get().

unsigned int get_hash1_raw2 char *  s,
int  len
[inline, static]
 

Definition at line 151 of file hashes.h.

References hash_finish2, hash_update_str2, len, and s.

Referenced by hash_func().

unsigned int get_hash2_case_raw str key1,
str key2
[inline, static]
 

Definition at line 187 of file hashes.h.

References hash_finish, hash_update_case_str, _str::len, _str::s, and str.

unsigned int get_hash2_case_raw2 str key1,
str key2
[inline, static]
 

Definition at line 239 of file hashes.h.

References hash_finish2, hash_update_case_str2, _str::len, _str::s, and str.

unsigned int get_hash2_raw str key1,
str key2
[inline, static]
 

Definition at line 86 of file hashes.h.

References hash_finish, hash_update_str, _str::len, _str::s, and str.

unsigned int get_hash2_raw2 str key1,
str key2
[inline, static]
 

Definition at line 168 of file hashes.h.

References hash_finish2, hash_update_str2, _str::len, _str::s, and str.


Generated on Thu Jul 29 04:15:54 2010 for SIPExpressRouter by  doxygen 1.3.9.1