1 /* 2 * This library is free software; you can redistribute it and/or 3 * modify it under the terms of the GNU Lesser General Public 4 * License as published by the Free Software Foundation; either 5 * version 2.1 of the License, or (at your option) any later version. 6 * 7 * This library is distributed in the hope that it will be useful, 8 * but WITHOUT ANY WARRANTY; without even the implied warranty of 9 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 10 * Lesser General Public License for more details. 11 * 12 * You should have received a copy of the GNU Lesser General Public 13 * License along with this library; if not, see <http://www.gnu.org/licenses/>. 14 */ 15 16 #ifndef __G_ALLOCATOR_H__ 17 #define __G_ALLOCATOR_H__ 18 19 #if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) 20 #error "Only <glib.h> can be included directly." 21 #endif 22 23 #include <glib/gtypes.h> 24 25 G_BEGIN_DECLS 26 27 typedef struct _GAllocator GAllocator; 28 typedef struct _GMemChunk GMemChunk; 29 30 #define G_ALLOC_ONLY 1 31 #define G_ALLOC_AND_FREE 2 32 #define G_ALLOCATOR_LIST 1 33 #define G_ALLOCATOR_SLIST 2 34 #define G_ALLOCATOR_NODE 3 35 36 #define g_chunk_new(type, chunk) ((type *) g_mem_chunk_alloc (chunk)) 37 #define g_chunk_new0(type, chunk) ((type *) g_mem_chunk_alloc0 (chunk)) 38 #define g_chunk_free(mem, mem_chunk) (g_mem_chunk_free (mem_chunk, mem)) 39 #define g_mem_chunk_create(type, x, y) (g_mem_chunk_new (NULL, sizeof (type), 0, 0)) 40 41 42 GLIB_DEPRECATED 43 GMemChunk * g_mem_chunk_new (const gchar *name, 44 gint atom_size, 45 gsize area_size, 46 gint type); 47 GLIB_DEPRECATED 48 void g_mem_chunk_destroy (GMemChunk *mem_chunk); 49 GLIB_DEPRECATED 50 gpointer g_mem_chunk_alloc (GMemChunk *mem_chunk); 51 GLIB_DEPRECATED 52 gpointer g_mem_chunk_alloc0 (GMemChunk *mem_chunk); 53 GLIB_DEPRECATED 54 void g_mem_chunk_free (GMemChunk *mem_chunk, 55 gpointer mem); 56 GLIB_DEPRECATED 57 void g_mem_chunk_clean (GMemChunk *mem_chunk); 58 GLIB_DEPRECATED 59 void g_mem_chunk_reset (GMemChunk *mem_chunk); 60 GLIB_DEPRECATED 61 void g_mem_chunk_print (GMemChunk *mem_chunk); 62 GLIB_DEPRECATED 63 void g_mem_chunk_info (void); 64 GLIB_DEPRECATED 65 void g_blow_chunks (void); 66 67 68 GLIB_DEPRECATED 69 GAllocator * g_allocator_new (const gchar *name, 70 guint n_preallocs); 71 GLIB_DEPRECATED 72 void g_allocator_free (GAllocator *allocator); 73 GLIB_DEPRECATED 74 void g_list_push_allocator (GAllocator *allocator); 75 GLIB_DEPRECATED 76 void g_list_pop_allocator (void); 77 GLIB_DEPRECATED 78 void g_slist_push_allocator (GAllocator *allocator); 79 GLIB_DEPRECATED 80 void g_slist_pop_allocator (void); 81 GLIB_DEPRECATED 82 void g_node_push_allocator (GAllocator *allocator); 83 GLIB_DEPRECATED 84 void g_node_pop_allocator (void); 85 86 G_END_DECLS 87 88 #endif /* __G_ALLOCATOR_H__ */ 89