Paparazzi UAS v7.0_unstable
Paparazzi is a free software Unmanned Aircraft System.
Loading...
Searching...
No Matches
kv_store.h
Go to the documentation of this file.
1/*
2 * General purpose key-value store.
3 * Copyright (C) 2026 Fabien-B <fabien-b@github.com>
4 * This file is part of paparazzi. See LICENCE file.
5 */
6
7#pragma once
8#include <stdint.h>
9#include <stddef.h>
10
11typedef struct {
12 size_t capacity; // number of slots
13 size_t esize; // size of each value
14 uint32_t *keys; // [capacity]
15 uint8_t *values; // [capacity * esize]
16 uint8_t *used; // [capacity] 0 = free, 1 = occupied
18
19
20void kv_init(kv_store_t *kv, size_t capacity, size_t esize, uint32_t *keys, void *values, uint8_t *used);
21int kv_exists(const kv_store_t *kv, uint32_t key);
22int kv_set(kv_store_t *kv, uint32_t key, const void *value);
23void *kv_get(const kv_store_t *kv, uint32_t key);
int kv_set(kv_store_t *kv, uint32_t key, const void *value)
Sets a value for a given key.
Definition kv_store.c:79
void * kv_get(const kv_store_t *kv, uint32_t key)
Retrieves the value associated with a given key.
Definition kv_store.c:111
size_t capacity
Definition kv_store.h:12
void kv_init(kv_store_t *kv, size_t capacity, size_t esize, uint32_t *keys, void *values, uint8_t *used)
Initializes a key-value store.
Definition kv_store.c:20
int kv_exists(const kv_store_t *kv, uint32_t key)
Checks if a key exists in the store.
Definition kv_store.c:64
uint8_t * values
Definition kv_store.h:15
int kv_remove(kv_store_t *kv, uint32_t key)
Removes a key-value pair from the store.
Definition kv_store.c:127
uint32_t * keys
Definition kv_store.h:14
uint8_t * used
Definition kv_store.h:16
size_t esize
Definition kv_store.h:13
float kv
unsigned int uint32_t
Typedef defining 32 bit unsigned int type.
unsigned char uint8_t
Typedef defining 8 bit unsigned char type.