New PHP5 APC - version 3.0.18, using PHP5 5.2.0-8+etch10,
[php5-apc.git] / apc_pool.h
diff --git a/apc_pool.h b/apc_pool.h
new file mode 100644 (file)
index 0000000..deec2c8
--- /dev/null
@@ -0,0 +1,58 @@
+/*
+  +----------------------------------------------------------------------+
+  | APC                                                                  |
+  +----------------------------------------------------------------------+
+  | Copyright (c) 2008 The PHP Group                                     |
+  +----------------------------------------------------------------------+
+  | This source file is subject to version 3.01 of the PHP license,      |
+  | that is bundled with this package in the file LICENSE, and is        |
+  | available through the world-wide-web at the following url:           |
+  | http://www.php.net/license/3_01.txt.                                 |
+  | If you did not receive a copy of the PHP license and are unable to   |
+  | obtain it through the world-wide-web, please send a note to          |
+  | license@php.net so we can mail you a copy immediately.               |
+  +----------------------------------------------------------------------+
+  | Authors: Gopal Vijayaraghavan <gopalv@yahoo-inc.com>                 |
+  +----------------------------------------------------------------------+
+
+   This software was contributed to PHP by Yahoo! Inc. in 2008.
+   
+   Future revisions and derivatives of this source code must acknowledge
+   Yahoo! Inc. as the original contributor of this module by
+   leaving this note intact in the source code.
+
+   All other licensing and usage conditions are those of the PHP Group.
+
+ */
+
+/* $Id: apc_pool.h,v 3.3 2008/01/09 12:30:39 gopalv Exp $ */
+
+#ifndef APC_POOL_H
+#define APC_POOL_H
+
+#include "apc.h"
+#include "apc_sma.h"
+
+typedef enum {
+    APC_SMALL_POOL     = 0x1,
+    APC_MEDIUM_POOL    = 0x2,
+    APC_LARGE_POOL     = 0x3,
+    APC_POOL_SIZE_MASK = 0x7,   /* waste a bit */
+    APC_POOL_REDZONES  = 0x08,
+    APC_POOL_SIZEINFO  = 0x10,
+    APC_POOL_OPT_MASK  = 0x18
+} apc_pool_type;
+
+typedef struct _apc_pool apc_pool;
+
+extern apc_pool* apc_pool_create(apc_pool_type pool_type, 
+                            apc_malloc_t allocate, 
+                            apc_free_t deallocate);
+
+
+extern void apc_pool_destroy(apc_pool *pool);
+extern void* apc_pool_alloc(apc_pool *pool, size_t size);
+extern void apc_pool_free(apc_pool *pool, void *ptr);
+extern int apc_pool_check_integrity(apc_pool *pool);
+
+#endif