15#ifndef ZEPHYR_INCLUDE_SYS_HASHMAP_API_H_
16#define ZEPHYR_INCLUDE_SYS_HASHMAP_API_H_
82typedef void *(*sys_hashmap_allocator_t)(
void *
ptr,
size_t new_size);
215#define SYS_HASHMAP_CONFIG(_max_size, _load_factor) \
217 .max_size = (size_t)_max_size, .load_factor = (uint8_t)_load_factor, \
218 .initial_n_buckets = NHPOT(DIV_ROUND_UP(100, _load_factor)), \
static bool sys_hashmap_iterator_has_next(const struct sys_hashmap_iterator *it)
Check if a Hashmap iterator has a next entry.
Definition: hash_map_api.h:66
void(* sys_hashmap_callback_t)(uint64_t key, uint64_t value, void *cookie)
Callback interface for sys_hashmap.
Definition: hash_map_api.h:104
bool(* sys_hashmap_remove_t)(struct sys_hashmap *map, uint64_t key, uint64_t *value)
Remove an entry from a sys_hashmap.
Definition: hash_map_api.h:147
bool(* sys_hashmap_get_t)(const struct sys_hashmap *map, uint64_t key, uint64_t *value)
Get a value from a sys_hashmap.
Definition: hash_map_api.h:161
void(* sys_hashmap_clear_t)(struct sys_hashmap *map, sys_hashmap_callback_t cb, void *cookie)
Clear all entries contained in a sys_hashmap.
Definition: hash_map_api.h:115
int(* sys_hashmap_insert_t)(struct sys_hashmap *map, uint64_t key, uint64_t value, uint64_t *old_value)
Insert a new entry into a sys_hashmap.
Definition: hash_map_api.h:132
void(* sys_hashmap_iterator_t)(const struct sys_hashmap *map, struct sys_hashmap_iterator *it)
In-place iterator constructor for sys_hashmap.
Definition: hash_map_api.h:92
struct region_map map[]
Definition: main.c:35
void * ptr
Definition: printk.c:120
static k_spinlock_key_t key
Definition: spinlock_error_case.c:15
#define bool
Definition: stdbool.h:13
__UINT64_TYPE__ uint64_t
Definition: stdint.h:91
__UINT8_TYPE__ uint8_t
Definition: stdint.h:88
Generic Hashmap API.
Definition: hash_map_api.h:173
sys_hashmap_iterator_t iter
Definition: hash_map_api.h:174
sys_hashmap_remove_t remove
Definition: hash_map_api.h:177
sys_hashmap_clear_t clear
Definition: hash_map_api.h:175
sys_hashmap_insert_t insert
Definition: hash_map_api.h:176
sys_hashmap_get_t get
Definition: hash_map_api.h:178
Generic Hashmap configuration.
Definition: hash_map_api.h:201
uint8_t initial_n_buckets
Definition: hash_map_api.h:204
uint8_t load_factor
Definition: hash_map_api.h:203
size_t max_size
Definition: hash_map_api.h:202
Generic Hashmap data.
Definition: hash_map_api.h:230
size_t n_buckets
Definition: hash_map_api.h:232
size_t size
Definition: hash_map_api.h:233
void * buckets
Definition: hash_map_api.h:231
Generic Hashmap iterator interface.
Definition: hash_map_api.h:49
size_t pos
Definition: hash_map_api.h:56
const struct sys_hashmap * map
Definition: hash_map_api.h:50
void * state
Definition: hash_map_api.h:52
const size_t size
Definition: hash_map_api.h:55
uint64_t key
Definition: hash_map_api.h:53
void(* next)(struct sys_hashmap_iterator *it)
Definition: hash_map_api.h:51
uint64_t value
Definition: hash_map_api.h:54
Generic Hashmap.
Definition: hash_map.h:130