Runtime
#include <jnc_Runtime.h>
// structs
struct jnc_Runtime;
// global functions
jnc_Runtime*
jnc_Runtime_create();
void
jnc_Runtime_destroy(jnc_Runtime* runtime);
jnc_Module*
jnc_Runtime_getModule(jnc_Runtime* runtime);
jnc_GcHeap*
jnc_Runtime_getGcHeap(jnc_Runtime* runtime);
bool_t
jnc_Runtime_isAborted(jnc_Runtime* runtime);
bool_t
jnc_Runtime_startup(
jnc_Runtime* runtime,
jnc_Module* module
);
void
jnc_Runtime_shutdown(jnc_Runtime* runtime);
void
jnc_Runtime_abort(jnc_Runtime* runtime);
void
jnc_Runtime_initializeCallSite(
jnc_Runtime* runtime,
jnc_CallSite* callSite
);
void
jnc_Runtime_uninitializeCallSite(
jnc_Runtime* runtime,
jnc_CallSite* callSite
);
jnc_SjljFrame*
jnc_Runtime_setSjljFrame(
jnc_Runtime* runtime,
jnc_SjljFrame* frame
);
void*
jnc_Runtime_getUserData(jnc_Runtime* runtime);
void*
jnc_Runtime_setUserData(
jnc_Runtime* runtime,
void* data
);
jnc_Runtime*
jnc_getCurrentThreadRuntime();
static
jnc_GcHeap*
jnc_getCurrentThreadGcHeap();
jnc_Tls*
jnc_getCurrentThreadTls();
void
jnc_dynamicThrow();
void
jnc_saveSignalInfo(jnc_SjljFrame* sjljFrame);
void
jnc_primeClass(
jnc_Box* box,
jnc_Box* root,
jnc_ClassType* type,
const void* vtable
);
jnc_IfaceHdr*
jnc_strengthenClassPtr(jnc_IfaceHdr* iface);
size_t
jnc_strLen(jnc_DataPtr ptr);
jnc_DataPtr
jnc_strDup(
const char* p,
size_t length
);
jnc_DataPtr
jnc_strDup_w(
const wchar_t* p,
size_t length
);
jnc_DataPtr
jnc_strDup_utf16(
const utf16_t* p,
size_t length
);
jnc_String
jnc_allocateString(
const char* p,
size_t length
);
jnc_String
jnc_allocateString_w(
const wchar_t* p,
size_t length
);
jnc_String
jnc_allocateString_utf16(
const utf16_t* p,
size_t length
);
jnc_DataPtr
jnc_memDup(
const void* p,
size_t size
);
static
intptr_t
jnc_getDataPtrLeftRadius(jnc_DataPtr ptr);
static
intptr_t
jnc_getDataPtrRightRadius(jnc_DataPtr ptr);
jnc_DataPtr
jnc_limitDataPtr(
jnc_DataPtr ptr,
size_t length
);
jnc_DataPtrValidator*
jnc_createDataPtrValidator(
jnc_Box* box,
const void* rangeBegin,
size_t rangeLength
);
jnc_DataPtr
jnc_createForeignBufferPtr(
const void* p,
size_t size,
bool_t isCallSiteLocal
);
jnc_String
jnc_createForeignString(
const char* p,
size_t length,
bool_t isCallSiteLocal
);
jnc_String
jnc_createForeignString_sz(
const char* p,
size_t length,
bool_t isCallSiteLocal
);
// macros
#define jnc_longJmp
#define jnc_setJmp