fix xhash to compile in kernel. also removed numerous compiler warnings
[archipelago] / xseg / xtypes / xheap.h
1 #ifndef __XHEAP_H__
2 #define __XHEAP_H__
3
4 #include <sys/util.h>
5 #include <xtypes/xlock.h>
6
7 struct xheap_header {
8         XPTR_TYPE(struct xheap) heap;
9         uint64_t size;
10 };
11
12 struct xheap {
13         uint32_t alignment_unit;
14         uint64_t size;
15         uint64_t cur;
16         struct xlock lock;
17         XPTR_TYPE(void) mem;
18 };
19
20 uint64_t xheap_get_chunk_size(void *ptr);
21 int xheap_init(struct xheap *xheap, uint64_t size, uint32_t alignment_unit, void *mem);
22 void* xheap_allocate(struct xheap *xheap, uint64_t bytes);
23 void xheap_free(void *ptr);
24
25 #endif