|
PatchworkOS
|
#include <assert.h>#include <stdbool.h>#include <stdint.h>#include <string.h>#include <sys/io.h>Go to the source code of this file.
Data Structures | |
| struct | map_key_t |
| Map key stucture. More... | |
| struct | map_entry_t |
| Map entry structure. More... | |
| struct | map_t |
| Hash map structure. More... | |
Macros | |
| #define | MAP_MIN_CAPACITY 16 |
| The minimum capacity of a map. | |
| #define | MAP_MAX_LOAD_PERCENTAGE 75 |
| The maximum load percentage of a map before it resizes. | |
| #define | MAP_TOMBSTONE ((map_entry_t*)1) |
| The value used to indicate a tombstone (removed entry). | |
| #define | MAP_KEY_MAX_LENGTH 40 |
| The maximum length of a key in the map. | |
| #define | MAP_ENTRY_PTR_IS_VALID(entryPtr) ((entryPtr) != NULL && (entryPtr) != MAP_TOMBSTONE) |
| Check if a map entry pointer is valid (not NULL or tombstone). | |
Functions | |
| uint64_t | hash_object (const void *object, uint64_t length) |
| Hash a object. | |
| static map_key_t | map_key_buffer (const void *buffer, uint64_t length) |
| Create a map key from a buffer. | |
| static map_key_t | map_key_uint64 (uint64_t uint64) |
| Create a map key from a uint64_t. | |
| static map_key_t | map_key_string (const char *str) |
| Create a map key from a string. | |
| void | map_entry_init (map_entry_t *entry) |
| Initialize a map entry. | |
| uint64_t | map_init (map_t *map) |
| Initialize a map. | |
| void | map_deinit (map_t *map) |
| Deinitialize a map. | |
| uint64_t | map_insert (map_t *map, const map_key_t *key, map_entry_t *value) |
| Insert a key-value pair into the map. | |
| map_entry_t * | map_get (map_t *map, const map_key_t *key) |
| Get a value from the map by key. | |
| void | map_remove (map_t *map, const map_key_t *key) |
| Remove a key-value pair from the map. | |
| uint64_t | map_size (const map_t *map) |
| Get the number of entries in the map. | |
| uint64_t | map_capacity (const map_t *map) |
| Get the capacity of the map. | |
| bool | map_is_empty (const map_t *map) |
| Check if the map is empty. | |
| bool | map_contains (map_t *map, const map_key_t *key) |
| Check if the map contains a key. | |
| void | map_clear (map_t *map) |
| Clear all entries from the map. | |
| uint64_t | map_reserve (map_t *map, uint64_t minCapacity) |
Reserve space in the map for at least minCapacity entries. | |