Initial commit
This commit is contained in:
		
							
								
								
									
										20
									
								
								include/arena.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								include/arena.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,20 @@ | ||||
| #ifndef ARENA_INCLUDED | ||||
| #define ARENA_INCLUDED | ||||
|  | ||||
| struct Arena { | ||||
|     unsigned char *beg; | ||||
|     unsigned char *end; | ||||
| }; | ||||
| typedef struct Arena Arena; | ||||
|  | ||||
| extern void *arena_alloc(int flags, struct Arena *a, size_t nbytes,  | ||||
|         size_t align, size_t count, const char *file, int line); | ||||
|  | ||||
| extern struct Arena arena_new(int flags, size_t cap, const char *file, int line); | ||||
| extern void arena_back(struct Arena *a, void *buf, size_t len); | ||||
|  | ||||
| #define ARENA(flags, cap) arena_new((flags), (cap), __FILE__, __LINE__) | ||||
| #define ARENA_BACK(a, buf, len) arena_back((a), (buf), (len)) | ||||
| #define ARENA_ALLOC(flags, a, nbytes, align, count) \ | ||||
|     arena_alloc((flags), (a), (nbytes), (align), (count), __FILE__, __LINE__) | ||||
| #endif | ||||
		Reference in New Issue
	
	Block a user