bad char
[vg.git] / vg_mem_pool.h
1 #pragma once
2 #include "vg_platform.h"
3
4 typedef struct vg_pool vg_pool;
5 typedef struct vg_pool_node vg_pool_node;
6
7 /* this goes in your structures */
8 struct vg_pool_node
9 {
10 u16 l, r, ref_count;
11 };
12
13 struct vg_pool
14 {
15 void *buffer; /* array which holds the real data */
16 u16 count, head, tail;
17 size_t stride, offset;
18 };
19
20 vg_pool_node *vg_pool_nodeptr ( vg_pool *pool, u16 id );
21 void *vg_pool_item ( vg_pool *pool, u16 id );
22 void vg_pool_init ( vg_pool *pool );
23 u16 vg_pool_id ( vg_pool *pool, void *item );
24 u16 vg_pool_lru ( vg_pool *pool );
25 void vg_pool_watch ( vg_pool *pool, u16 id );
26 void vg_pool_unwatch ( vg_pool *pool, u16 id );