#ifndef _JIT_CONTEXT_H
#define _JIT_CONTEXT_H
#include <jit/jit-common.h>
#include <jit/jit-memory.h>
#ifdef __cplusplus
extern "C" {
#endif
jit_context_t jit_context_create(void) JIT_NOTHROW;
void jit_context_destroy(jit_context_t context) JIT_NOTHROW;
void jit_context_build_start(jit_context_t context) JIT_NOTHROW;
void jit_context_build_end(jit_context_t context) JIT_NOTHROW;
void jit_context_set_on_demand_driver(
jit_context_t context,
jit_on_demand_driver_func driver) JIT_NOTHROW;
void jit_context_set_memory_manager(
jit_context_t context,
jit_memory_manager_t manager) JIT_NOTHROW;
int jit_context_set_meta
(jit_context_t context, int type, void *data,
jit_meta_free_func free_data) JIT_NOTHROW;
int jit_context_set_meta_numeric
(jit_context_t context, int type, jit_nuint data) JIT_NOTHROW;
void *jit_context_get_meta(jit_context_t context, int type) JIT_NOTHROW;
jit_nuint jit_context_get_meta_numeric
(jit_context_t context, int type) JIT_NOTHROW;
void jit_context_free_meta(jit_context_t context, int type) JIT_NOTHROW;
#define JIT_OPTION_CACHE_LIMIT 10000
#define JIT_OPTION_CACHE_PAGE_SIZE 10001
#define JIT_OPTION_PRE_COMPILE 10002
#define JIT_OPTION_DONT_FOLD 10003
#define JIT_OPTION_POSITION_INDEPENDENT 10004
#define JIT_OPTION_CACHE_MAX_PAGE_FACTOR 10005
#ifdef __cplusplus
};
#endif
#endif