Mercurial > repos > rhope
view runtime/context.h @ 13:23dd9c766699
C backend close to being useable
author | mpavone@ |
---|---|
date | Tue, 26 May 2009 23:49:46 +0000 |
parents | 8d74ef7fa357 |
children | 079200bc3e75 d2f9b0a9403d |
line wrap: on
line source
#ifndef _CONTEXT_H_ #define _CONTEXT_H_ #include "thread.h" #include "plat_types.h" #include "func.h" #define STACK_CHUNK_SIZE 4096-(sizeof(struct stackchunk *)*2+sizeof(uint32_t)) typedef struct stackchunk { struct stackchunk * next; struct stackchunk * prev; uint32_t used; char data[STACK_CHUNK_SIZE]; } stackchunk; typedef struct { rhope_func func; struct calldata *params; } unwind_cell; typedef struct context { stackchunk *stack_begin; stackchunk *current_stack; unwind_cell *unwind; } context; stackchunk * new_stack(); context * new_context(); void * alloc_stack(context * ct, uint32_t size); struct calldata * alloc_cdata(context * ct, uint32_t num_params); void free_stack(context * ct, void * data); #endif //_CONTEXT_H_