1 /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ 2 /* dbus-mempool.h Memory pools 3 * 4 * Copyright (C) 2002 Red Hat, Inc. 5 * 6 * Licensed under the Academic Free License version 2.1 7 * 8 * This program is free software; you can redistribute it and/or modify 9 * it under the terms of the GNU General Public License as published by 10 * the Free Software Foundation; either version 2 of the License, or 11 * (at your option) any later version. 12 * 13 * This program is distributed in the hope that it will be useful, 14 * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 * GNU General Public License for more details. 17 * 18 * You should have received a copy of the GNU General Public License 19 * along with this program; if not, write to the Free Software 20 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 21 * 22 */ 23 24 #ifndef DBUS_MEMPOOL_H 25 #define DBUS_MEMPOOL_H 26 27 #include <dbus/dbus-internals.h> 28 #include <dbus/dbus-memory.h> 29 #include <dbus/dbus-types.h> 30 31 DBUS_BEGIN_DECLS 32 33 typedef struct DBusMemPool DBusMemPool; 34 35 DBusMemPool* _dbus_mem_pool_new (int element_size, 36 dbus_bool_t zero_elements); 37 void _dbus_mem_pool_free (DBusMemPool *pool); 38 void* _dbus_mem_pool_alloc (DBusMemPool *pool); 39 dbus_bool_t _dbus_mem_pool_dealloc (DBusMemPool *pool, 40 void *element); 41 42 /* if DBUS_ENABLE_STATS */ 43 void _dbus_mem_pool_get_stats (DBusMemPool *pool, 44 dbus_uint32_t *in_use_p, 45 dbus_uint32_t *in_free_list_p, 46 dbus_uint32_t *allocated_p); 47 48 DBUS_END_DECLS 49 50 #endif /* DBUS_MEMPOOL_H */ 51