}
inline uns
-hash_block_aligned(const byte *str, uns len)
+hash_block_aligned(const byte *buf, uns len)
{
- const uns *u = (const uns *) str;
+ const uns *u = (const uns *) buf;
uns hash = 0;
while (len >= sizeof(uns))
{
}
uns
-hash_block(const byte *str, uns len)
+hash_block(const byte *buf, uns len)
{
- uns shift = UNALIGNED_PART(str, uns);
+ uns shift = UNALIGNED_PART(buf, uns);
if (!shift)
- return hash_block_aligned(str, len);
+ return hash_block_aligned(buf, len);
else
{
uns hash = 0;
hash = ROL(hash, SHIFT_BITS);
if (i >= len)
break;
- hash ^= str[i] << (shift * 8);
+ hash ^= buf[i] << (shift * 8);
}
return hash;
}
/* The following functions need str to be aligned to sizeof(uns). */
uns str_len_aligned(const char *str) PURE; /** Get the string length (not a really useful hash function, but there is no better place for it). The string must be aligned to sizeof(uns). For unaligned see @str_len(). **/
uns hash_string_aligned(const char *str) PURE; /** Hash the string. The string must be aligned to sizeof(uns). For unaligned see @hash_string(). **/
-uns hash_block_aligned(const byte *str, uns len) PURE; /** Hash arbitrary data. They must be aligned to sizeof(uns). For unaligned see @hash_block(). **/
+uns hash_block_aligned(const byte *buf, uns len) PURE; /** Hash arbitrary data. They must be aligned to sizeof(uns). For unaligned see @hash_block(). **/
#ifdef CPU_ALLOW_UNALIGNED
#define str_len(str) str_len_aligned(str)
#else
uns str_len(const char *str) PURE; /** Get the string length. If you know it is aligned to sizeof(uns), you can use faster @str_len_aligned(). **/
uns hash_string(const char *str) PURE; /** Hash the string. If it is aligned to sizeof(uns), you can use faster @hash_string_aligned(). **/
-uns hash_block(const byte *str, uns len) PURE; /** Hash arbitrary data. If they are aligned to sizeof(uns), use faster @hash_block_aligned(). **/
+uns hash_block(const byte *buf, uns len) PURE; /** Hash arbitrary data. If they are aligned to sizeof(uns), use faster @hash_block_aligned(). **/
#endif
uns hash_string_nocase(const char *str) PURE; /** Hash the string in a case insensitive way. Works only with ASCII characters. **/