|  | /* SPDX-License-Identifier: GPL-2.0-only */ | 
|  | #ifndef HASH_H | 
|  | #define HASH_H | 
|  |  | 
|  | static inline unsigned int hash_str(const char *s) | 
|  | { | 
|  | /* fnv32 hash */ | 
|  | unsigned int hash = 2166136261U; | 
|  |  | 
|  | for (; *s; s++) | 
|  | hash = (hash ^ *s) * 0x01000193; | 
|  | return hash; | 
|  | } | 
|  |  | 
|  | /* simplified version of functions from include/linux/hash.h */ | 
|  | #define GOLDEN_RATIO_32 0x61C88647 | 
|  |  | 
|  | static inline unsigned int hash_32(unsigned int val) | 
|  | { | 
|  | return 0x61C88647 * val; | 
|  | } | 
|  |  | 
|  | static inline unsigned int hash_ptr(const void *ptr) | 
|  | { | 
|  | return hash_32((unsigned int)(unsigned long)ptr); | 
|  | } | 
|  |  | 
|  | #endif /* HASH_H */ |