php-src/Zend/zend_static_allocator.h

46 lines
1.7 KiB
C
Raw Normal View History

2000-06-23 00:04:53 +00:00
/*
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
| Copyright (c) 1998-2000 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| This source file is subject to version 0.92 of the Zend license, |
| that is bundled with this package in the file LICENSE, and is |
| available at through the world-wide-web at |
| http://www.zend.com/license/0_92.txt. |
| If you did not receive a copy of the Zend license and are unable to |
| obtain it through the world-wide-web, please send a note to |
| license@zend.com so we can mail you a copy immediately. |
+----------------------------------------------------------------------+
| Authors: Andi Gutmans <andi@zend.com> |
+----------------------------------------------------------------------+
*/
#ifndef _STATIC_ALLOCATOR_H
#define _STATIC_ALLOCATOR_H
#define ALLOCATOR_BLOCK_SIZE 400000
2000-06-23 00:07:05 +00:00
/* Temporary */
typedef unsigned int zend_uint;
2000-06-23 00:07:05 +00:00
#define emalloc(s) malloc(s)
#define efree(p) free(p)
typedef struct _Block {
char *bp;
char *pos;
char *end;
} Block;
typedef struct _StaticAllocator {
Block *Blocks;
zend_uint num_blocks;
zend_uint current_block;
} StaticAllocator;
int static_allocator_init(StaticAllocator *sa);
char *static_allocator_allocate(StaticAllocator *sa, zend_uint size);
void static_allocator_destroy(StaticAllocator *sa);
#endif /* _STATIC_ALLOCATOR_H */