| parrotcode: Header management functions | |
| Contents | C |

src/headers.c - Header management functions

Handles getting of various headers, and pool creation.

static void *get_free_buffer(Interp *interp, struct Small_Object_Pool *pool)Buffer from pool and returns it.
Memory is cleared.
struct Small_Object_Pool *new_pmc_pool(Interp *interp)struct Small_Object_Pool *new_bufferlike_pool(Interp *interp, size_t actual_buffer_size)make_bufferlike_pool().struct Small_Object_Pool *new_buffer_pool(Interp *interp)struct Small_Object_Pool *new_string_pool(Interp *interp, INTVAL constant)STRINGS and returns it.struct Small_Object_Pool *make_bufferlike_pool(Interp *interp, size_t buffer_size)struct Small_Object_Pool *get_bufferlike_pool(Interp *interp, size_t buffer_size)PMC *new_pmc_header(Interp *interp)PMC_EXT *new_pmc_ext(Interp *interp)PMC_EXT and returns it.void add_pmc_ext(Interp *interp, PMC *pmc)PMC_EXT to pmc.PMC *add_pmc_sync(Interp *interp, PMC *pmc)pmc.STRING *new_string_header(Interp *interp, UINTVAL flags)STRING header.Buffer *new_buffer_header(Interp *interp)Buffer.void *new_bufferlike_header(Interp *interp, size_t size)size_t get_max_buffer_address(Interp *interp)size_t get_min_buffer_address(Interp *interp)size_t get_max_pmc_address(Interp *interp)size_t get_min_pmc_address(Interp *interp)int is_buffer_ptr(Interp *interp, void *ptr)ptr is actually a Buffer.int is_pmc_ptr(Interp *interp, void *ptr)ptr is actually a PMC.void Parrot_initialize_header_pools(Interp *interp)int Parrot_forall_header_pools(Interp *, int flag, void *arg, pool_iter_fn) POOL_PMC
POOL_BUFFER
POOL_CONST
POOL_ALL
Interp*, Small_Object_Pool *, int flag, void *arg) If the function returns a non-zero value iteration will stop.void Parrot_destroy_header_pools(Interp *interp)void Parrot_merge_header_pools(Interp *dest_interp, Interp *source_interp)source_interp into those of dest_interp. (Used to deal with shared objects left after interpreter destruction.void Parrot_initialize_header_pool_names(Interp *interp)
include/parrot/headers.h.

Initial version by Mike Lambert on 2002.05.27.
|
|
|