core/hashfuncs.h
static inline uint32_t hash_djb2(const char *p_cstr) {

    const unsigned char *chr = (const unsigned char *)p_cstr;
    uint32_t hash = 5381;
    uint32_t c;

    while ((c = *chr++))
        hash = ((hash << 5) + hash) + c; /* hash * 33 + c */

    return hash;
}
/**
 * DJB2 Hash function
 * @param C String
 * @return 32-bits hashcode
 */
DJB2 Hash function
@param C String
@return 32-bits hashcode
DJB2 Hash function @param C String @return 32 - bits hashcode
static inline uint32_t hash_djb2(const char *p_cstr) {
    const unsigned char *chr = (const unsigned char *)p_cstr;
    uint32_t hash = 5381;
    uint32_t c;
    while ((c = *chr++))
        hash = ((hash << 5) + hash) + c; 
    return hash;
}
static inline uint32_t hash_djb2 ( const char * p_cstr ) { const unsigned char * chr = ( const unsigned char * ) p_cstr ; uint32_t hash = 5381 ; uint32_t c ; while ( ( c = * chr ++ ) ) hash = ( ( hash << 5 ) + hash ) + c ; return hash ; }
DJB2 Hash function
 @param C String
 @return 32-bits hashcode
DJB2 Hash function @param C String @return 32 - bits hashcode
/* hash * 33 + c */