view runtime/context.h @ 49:3e20ed8959c4

Added initial FFI implementation, Array type and 64-bit integers
author Mike Pavone <pavone@retrodev.com>
date Thu, 08 Apr 2010 01:02:18 -0400
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_