summaryrefslogtreecommitdiff
path: root/kernel/lib/relist.h
blob: 409032dc084f62aa7858d3924814ebcff36c859f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#ifndef RELIST_H
#define RELIST_H
#include <typedefs.h>

struct relist {
  void **entries;
  u32 bitmap_capacity;
  u32 num_entries;
  u64 *bitmap;
};

void relist_init(struct relist *list);
void relist_reset(struct relist *list);
void relist_free(struct relist *list);
int relist_clone(struct relist *in, struct relist *out);
int relist_add(struct relist *list, void *value, u32 *index);
int relist_set(struct relist *list, u32 index, void *value);
int relist_get(const struct relist *list, u32 index, void **out, int *end);
int relist_remove(struct relist *list, u32 index);
#endif