sched: Slightly fix up tests/prov
[akaros.git] / kern / include / slice.h
1 /*
2  * Copyright (C) 2016 Google Inc.
3  * Dan Cross <crossd@gmail.com>
4  * See LICENSE for license details.
5  */
6
7 #pragma once
8
9 /*
10  * A tracking structure for growing lists of pointers.
11  */
12 struct slice {
13         void **ptrs;
14         size_t len;
15         size_t capacity;
16 };
17
18 void slice_init(struct slice *slice);
19 void slice_clear(struct slice *slice);
20 void *slice_get(struct slice *slice, size_t i);
21 bool slice_put(struct slice *slice, size_t i, void *p);
22 bool slice_del(struct slice *slice, size_t i);
23 void slice_append(struct slice *s, void *p);
24 size_t slice_len(struct slice *slice);
25 void **slice_finalize(struct slice *slice);
26 void slice_destroy(struct slice *slice);