Merge pull request #823 from DavidKarlas/master
[mono.git] / mono / metadata / mempool.h
1 #ifndef _MONO_MEMPOOL_H_
2 #define _MONO_MEMPOOL_H_
3
4 #include <mono/utils/mono-publib.h>
5
6 MONO_BEGIN_DECLS
7
8 typedef struct _MonoMemPool MonoMemPool;
9
10 MONO_API MonoMemPool *
11 mono_mempool_new           (void);
12
13 MONO_API MonoMemPool *
14 mono_mempool_new_size      (int initial_size);
15
16 MONO_API void
17 mono_mempool_destroy       (MonoMemPool *pool);
18
19 MONO_API void
20 mono_mempool_invalidate    (MonoMemPool *pool);
21
22 MONO_API void
23 mono_mempool_empty         (MonoMemPool *pool);
24
25 MONO_API void
26 mono_mempool_stats         (MonoMemPool *pool);
27
28 MONO_API void*
29 mono_mempool_alloc         (MonoMemPool *pool, unsigned int size);
30
31 MONO_API void*
32 mono_mempool_alloc0        (MonoMemPool *pool, unsigned int size);
33
34 MONO_API mono_bool
35 mono_mempool_contains_addr (MonoMemPool *pool, void* addr);
36
37 MONO_API char*
38 mono_mempool_strdup        (MonoMemPool *pool, const char *s);
39
40 MONO_API uint32_t
41 mono_mempool_get_allocated (MonoMemPool *pool);
42
43 MONO_END_DECLS
44
45 #endif