]> Git Repo - linux.git/blob - scripts/include/hash.h
Merge tag 'exfat-for-6.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/linki...
[linux.git] / scripts / include / hash.h
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 #ifndef HASH_H
3 #define HASH_H
4
5 static inline unsigned int hash_str(const char *s)
6 {
7         /* fnv32 hash */
8         unsigned int hash = 2166136261U;
9
10         for (; *s; s++)
11                 hash = (hash ^ *s) * 0x01000193;
12         return hash;
13 }
14
15 /* simplified version of functions from include/linux/hash.h */
16 #define GOLDEN_RATIO_32 0x61C88647
17
18 static inline unsigned int hash_32(unsigned int val)
19 {
20         return 0x61C88647 * val;
21 }
22
23 static inline unsigned int hash_ptr(const void *ptr)
24 {
25         return hash_32((unsigned int)(unsigned long)ptr);
26 }
27
28 #endif /* HASH_H */
This page took 0.034253 seconds and 4 git commands to generate.