|
libpulsar
A modular compiler for the pulsar programming language
|
Defines an arena allocator for the compiler. More...
#include "def.h"Go to the source code of this file.
Data Structures | |
| struct | ps_arena_allocator |
Macros | |
| #define | PS_INITIAL_ARENA_MMAP 0x2000000ULL |
| An allocation of 16MB per arena. | |
| #define | arena_alloc(arena, n) ps_arena_allocate(arena, n) |
| #define | astalloc(n) arena_alloc(PS_ARENA_AST, n) |
| #define | iralloc(n) arena_alloc(PS_ARENA_IR, n) |
| #define | ast_strndup(str, len) arena_strndup(PS_ARENA_AST, str, len) |
| #define | arena_sprintf(arena, fmt, ...) |
| #define | ast_sprintf(fmt, ...) arena_sprintf(PS_ARENA_AST, fmt, __VA_ARGS__) |
Enumerations | |
| enum | ps_arena_domain { PS_ARENA_AST , PS_ARENA_IR , __PS_ARENA_COUNT } |
Functions | |
| void | ps_arena_open (enum ps_arena_domain domain) |
| Initializes the given arena for allocation. | |
| void | ps_arena_close (enum ps_arena_domain domain) |
| Destroys any allocated objects in the given arena. | |
| void * | ps_arena_allocate (enum ps_arena_domain domain, usize n) |
| Allocates a new object in the given arena. | |
| void * | ps_arena_allocate_debug (enum ps_arena_domain domain, usize n, const char *file, const char *func, usize line) |
| char * | arena_strndup (enum ps_arena_domain arena, STR str, usize length) |
| Duplicates the specified string and produces a null-terminated arena-allocated copy. | |
Defines an arena allocator for the compiler.
Definition in file arena.h.
| #define arena_alloc | ( | arena, | |
| n | |||
| ) | ps_arena_allocate(arena, n) |
| #define arena_sprintf | ( | arena, | |
| fmt, | |||
| ... | |||
| ) |
| #define ast_sprintf | ( | fmt, | |
| ... | |||
| ) | arena_sprintf(PS_ARENA_AST, fmt, __VA_ARGS__) |
| #define ast_strndup | ( | str, | |
| len | |||
| ) | arena_strndup(PS_ARENA_AST, str, len) |
| #define astalloc | ( | n | ) | arena_alloc(PS_ARENA_AST, n) |
| #define iralloc | ( | n | ) | arena_alloc(PS_ARENA_IR, n) |
| #define PS_INITIAL_ARENA_MMAP 0x2000000ULL |
| enum ps_arena_domain |
| char * arena_strndup | ( | enum ps_arena_domain | arena, |
| STR | str, | ||
| usize | length | ||
| ) |
Duplicates the specified string and produces a null-terminated arena-allocated copy.
| arena | The arena to allocate in. |
| str | The string to duplicate. |
| length | The length of the string to duplicate. |
| void * ps_arena_allocate | ( | enum ps_arena_domain | domain, |
| usize | n | ||
| ) |
Allocates a new object in the given arena.
| domain | The arena to allocate in. |
| n | The size of the object to allocate. |
| void * ps_arena_allocate_debug | ( | enum ps_arena_domain | domain, |
| usize | n, | ||
| const char * | file, | ||
| const char * | func, | ||
| usize | line | ||
| ) |
| void ps_arena_close | ( | enum ps_arena_domain | domain | ) |
| void ps_arena_open | ( | enum ps_arena_domain | domain | ) |