2635f023fbbb87862c2d30f804915a20c23a0130
[profile/ivi/pulseaudio.git] / src / memblock.h
1 #ifndef foomemblockhfoo
2 #define foomemblockhfoo
3
4 #include <sys/types.h>
5 #include <inttypes.h>
6
7 enum pa_memblock_type { PA_MEMBLOCK_FIXED, PA_MEMBLOCK_APPENDED, PA_MEMBLOCK_DYNAMIC };
8
9 struct pa_memblock {
10     enum pa_memblock_type type;
11     unsigned ref;
12     size_t length;
13     void *data;
14 };
15
16 struct pa_memblock *pa_memblock_new(size_t length);
17 struct pa_memblock *pa_memblock_new_fixed(void *data, size_t length);
18 struct pa_memblock *pa_memblock_new_dynamic(void *data, size_t length);
19
20 void pa_memblock_unref(struct pa_memblock*b);
21 struct pa_memblock* pa_memblock_ref(struct pa_memblock*b);
22
23 void pa_memblock_unref_fixed(struct pa_memblock*b);
24
25 extern unsigned pa_memblock_count, pa_memblock_total;
26
27 #endif