kernel/inc/utils/hashmap.h

29 lines
789 B
C
Raw Normal View History

// This file is part of noxos and licensed under the MIT open source license
#ifndef NOXOS_HASHMAP_H
#define NOXOS_HASHMAP_H
#include <utils/stdtypes.h>
typedef struct hashmap_entry_T hashmap_entry_T;
struct hashmap_entry_T {
bool in_use;
uint64_t key;
void* value;
hashmap_entry_T* prev;
hashmap_entry_T* next;
};
typedef struct {
uint64_t size;
hashmap_entry_T* entries;
} hashmap_T;
hashmap_T hashmap_create (uint64_t size);
void hashmap_destruct (hashmap_T* hashmap);
void hashmap_insert (hashmap_T* hashmap, uint64_t key, void* value);
void hashmap_delete (hashmap_T* hashmap, uint64_t key);
void* hashmap_lookup (hashmap_T* hashmap, uint64_t key);
#endif //NOXOS_HASHMAP_H