feat: vfs - path walking and dnode caching.
[lunaix-os.git] / lunaix-os / includes / lunaix / ds / hstr.h
1 #ifndef __LUNAIX_HSTR_H
2 #define __LUNAIX_HSTR_H
3
4 #include <lib/hash.h>
5
6 struct hstr
7 {
8     unsigned int hash;
9     unsigned int len;
10     char* value;
11 };
12
13 #define HSTR(str, length)                                                      \
14     (struct hstr)                                                              \
15     {                                                                          \
16         .len = length, .value = str                                            \
17     }
18
19 inline void
20 hstr_rehash(struct hstr* hash_str, unsigned int truncate_to)
21 {
22     hash_str->hash = strhash_32(hash_str->value, truncate_to);
23 }
24
25 #endif /* __LUNAIX_HSTR_H */