summaryrefslogtreecommitdiff
path: root/Zend/zend_static_allocator.h
diff options
context:
space:
mode:
Diffstat (limited to 'Zend/zend_static_allocator.h')
-rw-r--r--Zend/zend_static_allocator.h30
1 files changed, 30 insertions, 0 deletions
diff --git a/Zend/zend_static_allocator.h b/Zend/zend_static_allocator.h
new file mode 100644
index 0000000000..132d18283a
--- /dev/null
+++ b/Zend/zend_static_allocator.h
@@ -0,0 +1,30 @@
+#ifndef _STATIC_ALLOCATOR_H
+#define _STATIC_ALLOCATOR_H
+
+#define ALLOCATOR_BLOCK_SIZE 400000
+
+typedef unsigned int zend_uint;
+
+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);
+
+/* Temporary */
+#define emalloc(s) malloc(s)
+#define efree(p) free(p)
+#define SUCCESS 0
+#define FAILURE -1
+
+#endif /* _STATIC_ALLOCATOR_H */