Global Namespace
// namespaces
namespace jnc;
// typedefs
typedef const jnc_Error* jnc_GetLastErrorFunc();
typedef void jnc_SetErrorFunc(const jnc_Error *error);
typedef void jnc_SetErrnoFunc(int code);
typedef void jnc_SetStringErrorFunc(const char *string);
typedef const char* jnc_GetErrorDescriptionFunc(const jnc_Error *error);
typedef bool_t jnc_IsEveryCapabilityEnabledFunc();
typedef bool_t jnc_IsCapabilityEnabledFunc(const char *capability);
typedef size_t jnc_ReadCapabilityParamFunc(
const char *param,
void *value,
size_t size
);
typedef const char* jnc_ModuleItemDecl_GetNameFunc(jnc_ModuleItemDecl *decl);
typedef const char* jnc_ModuleItemDecl_GetQualifiedNameFunc(jnc_ModuleItemDecl *decl);
typedef jnc_StorageKind jnc_ModuleItemDecl_GetStorageKindFunc(jnc_ModuleItemDecl *decl);
typedef jnc_AccessKind jnc_ModuleItemDecl_GetAccessKindFunc(jnc_ModuleItemDecl *decl);
typedef jnc_AttributeBlock* jnc_ModuleItemDecl_GetAttributeBlockFunc(jnc_ModuleItemDecl *decl);
typedef jnc_Attribute* jnc_ModuleItemDecl_FindAttributeFunc(
jnc_ModuleItemDecl *decl,
const char *name
);
typedef jnc_Namespace* jnc_ModuleItemDecl_GetParentNamespaceFunc(jnc_ModuleItemDecl *decl);
typedef jnc_Unit* jnc_ModuleItemDecl_GetParentUnitFunc(jnc_ModuleItemDecl *decl);
typedef int jnc_ModuleItemDecl_GetLineFunc(jnc_ModuleItemDecl *decl);
typedef int jnc_ModuleItemDecl_GetColFunc(jnc_ModuleItemDecl *decl);
typedef jnc_Module* jnc_ModuleItem_GetModuleFunc(jnc_ModuleItem *item);
typedef jnc_ModuleItemKind jnc_ModuleItem_GetItemKindFunc(jnc_ModuleItem *item);
typedef uint_t jnc_ModuleItem_GetFlagsFunc(jnc_ModuleItem *item);
typedef jnc_ModuleItemDecl* jnc_ModuleItem_GetDeclFunc(jnc_ModuleItem *item);
typedef jnc_Namespace* jnc_ModuleItem_GetNamespaceFunc(jnc_ModuleItem *item);
typedef jnc_Type* jnc_ModuleItem_GetTypeFunc(jnc_ModuleItem *item);
typedef const char* jnc_ModuleItem_GetSynopsisFunc(
jnc_ModuleItem *item,
bool_t isQualifiedName
);
typedef size_t jnc_AttributeBlock_GetAttributeCountFunc(jnc_AttributeBlock *block);
typedef jnc_Attribute* jnc_AttributeBlock_GetAttributeFunc(
jnc_AttributeBlock *block,
size_t index
);
typedef jnc_Attribute* jnc_AttributeBlock_FindAttributeFunc(
jnc_AttributeBlock *block,
const char *name
);
typedef bool_t jnc_Namespace_IsReadyFunc(jnc_Namespace *nspace);
typedef jnc_NamespaceKind jnc_Namespace_GetNamespaceKindFunc(jnc_Namespace *nspace);
typedef jnc_Namespace* jnc_Namespace_GetParentNamespaceFunc(jnc_Namespace *nspace);
typedef jnc_ModuleItem* jnc_Namespace_GetParentItemFunc(jnc_Namespace *nspace);
typedef size_t jnc_Namespace_GetItemCountFunc(jnc_Namespace *nspace);
typedef jnc_ModuleItem* jnc_Namespace_GetItemFunc(
jnc_Namespace *nspace,
size_t index
);
typedef jnc_FindModuleItemResult jnc_Namespace_FindItemFunc(
jnc_Namespace *nspace,
const char *name
);
typedef uint_t jnc_Variable_GetPtrTypeFlagsFunc(jnc_Variable *variable);
typedef bool_t jnc_Variable_HasInitializerFunc(jnc_Variable *variable);
typedef const char* jnc_Variable_GetInitializerStringFunc(jnc_Variable *variable);
typedef jnc_FunctionKind jnc_Function_GetFunctionKindFunc(jnc_Function *function);
typedef bool_t jnc_Function_IsMemberFunc(jnc_Function *function);
typedef bool_t jnc_Function_IsUnusedExternalFunc(jnc_Function *function);
typedef void* jnc_Function_GetMachineCodeFunc(jnc_Function *function);
typedef jnc_FunctionKind jnc_FunctionOverload_GetFunctionKindFunc(jnc_FunctionOverload *function);
typedef size_t jnc_FunctionOverload_GetOverloadCountFunc(jnc_FunctionOverload *function);
typedef jnc_Function* jnc_FunctionOverload_GetOverloadFunc(
jnc_FunctionOverload *function,
size_t index
);
typedef jnc_Function* jnc_Property_GetGetterFunc(jnc_Property *prop);
typedef jnc_OverloadableFunction jnc_Property_GetSetterFunc(jnc_Property *prop);
typedef jnc_TypeKind jnc_Type_GetTypeKindFunc(jnc_Type *type);
typedef size_t jnc_Type_GetSizeFunc(jnc_Type *type);
typedef const char* jnc_Type_GetTypeStringFunc(jnc_Type *type);
typedef int jnc_Type_CmpFunc(
jnc_Type *type,
jnc_Type *type2
);
typedef jnc_ArrayType* jnc_Type_GetArrayTypeFunc(
jnc_Type *type,
size_t elementCount
);
typedef jnc_DataPtrType* jnc_Type_GetBitFieldDataPtrTypeFunc(
jnc_Type *type,
uint_t bitOffset,
uint_t bitCount,
jnc_TypeKind typeKind,
jnc_DataPtrTypeKind ptrTypeKind,
uint_t flags
);
typedef jnc_DataPtrType* jnc_Type_GetDataPtrTypeFunc(
jnc_Type *type,
jnc_TypeKind typeKind,
jnc_DataPtrTypeKind ptrTypeKind,
uint_t flags
);
typedef bool_t jnc_Type_ensureLayoutFunc(jnc_Type *type);
typedef bool_t jnc_Type_ensureNoImportsFunc(jnc_Type *type);
typedef void jnc_Type_MarkGcRootsFunc(
jnc_Type *type,
const void *p,
jnc_GcHeap *gcHeap
);
typedef size_t jnc_BaseTypeSlot_GetOffsetFunc(jnc_BaseTypeSlot *baseType);
typedef size_t jnc_BaseTypeSlot_GetVtableIndexFunc(jnc_BaseTypeSlot *baseType);
typedef jnc_Function* jnc_DerivableType_GetMethodFunc(jnc_DerivableType *type);
typedef jnc_OverloadableFunction jnc_DerivableType_GetOverloadableMethodFunc(jnc_DerivableType *type);
typedef jnc_OverloadableFunction jnc_DerivableType_GetUnaryOperatorFunc(
jnc_DerivableType *type,
jnc_UnOpKind opKind
);
typedef jnc_OverloadableFunction jnc_DerivableType_GetBinaryOperatorFunc(
jnc_DerivableType *type,
jnc_BinOpKind opKind
);
typedef size_t jnc_DerivableType_GetCastOperatorCountFunc(jnc_DerivableType *type);
typedef jnc_Function* jnc_DerivableType_GetCastOperatorFunc(
jnc_DerivableType *type,
size_t index
);
typedef jnc_Type* jnc_ArrayType_GetElementTypeFunc(jnc_ArrayType *type);
typedef size_t jnc_ArrayType_GetElementCountFunc(jnc_ArrayType *type);
typedef jnc_Type* jnc_FunctionType_GetReturnTypeFunc(jnc_FunctionType *type);
typedef size_t jnc_FunctionType_GetArgCountFunc(jnc_FunctionType *type);
typedef jnc_FunctionArg* jnc_FunctionType_GetArgFunc(
jnc_FunctionType *type,
size_t index
);
typedef jnc_FunctionPtrType* jnc_FunctionType_GetFunctionPtrTypeFunc(
jnc_FunctionType *type,
jnc_TypeKind typeKind,
jnc_FunctionPtrTypeKind ptrTypeKind,
uint_t flags
);
typedef jnc_FunctionType* jnc_FunctionType_GetShortTypeFunc(jnc_FunctionType *type);
typedef int64_t jnc_EnumConst_GetValueFunc(jnc_EnumConst *enumConst);
typedef jnc_Type* jnc_EnumType_GetBaseTypeFunc(jnc_EnumType *type);
typedef jnc_Type* jnc_EnumType_GetRootTypeFunc(jnc_EnumType *type);
typedef size_t jnc_EnumType_GetConstCountFunc(jnc_EnumType *type);
typedef jnc_EnumConst* jnc_EnumType_GetConstFunc(
jnc_EnumType *type,
size_t index
);
typedef jnc_Type* jnc_Field_GetTypeFunc(jnc_Field *field);
typedef uint_t jnc_Field_GetBitOffsetFunc(jnc_Field *field);
typedef uint_t jnc_Field_GetBitCountFunc(jnc_Field *field);
typedef uint_t jnc_Field_GetPtrTypeFlagsFunc(jnc_Field *field);
typedef size_t jnc_Field_GetOffsetFunc(jnc_Field *field);
typedef jnc_ClassTypeKind jnc_ClassType_GetClassTypeKindFunc(jnc_ClassType *type);
typedef jnc_StructType* jnc_ClassType_GetIfaceStructTypeFunc(jnc_ClassType *type);
typedef jnc_ClassPtrType* jnc_ClassType_GetClassPtrTypeFunc(
jnc_ClassType *type,
jnc_TypeKind typeKind,
jnc_ClassPtrTypeKind ptrTypeKind,
uint_t flags
);
typedef jnc_FunctionPtrType* jnc_MulticastClassType_GetTargetTypeFunc(jnc_MulticastClassType *type);
typedef jnc_Function* jnc_MulticastClassType_GetMethodFunc(
jnc_MulticastClassType *type,
jnc_MulticastMethodKind method
);
typedef jnc_FunctionPtrType* jnc_McSnapshotClassType_GetTargetTypeFunc(jnc_McSnapshotClassType *type);
typedef jnc_Function* jnc_McSnapshotClassType_GetMethodFunc(
jnc_McSnapshotClassType *type,
jnc_McSnapshotMethodKind method
);
typedef jnc_DataPtrTypeKind jnc_DataPtrType_GetPtrTypeKindFunc(jnc_DataPtrType *type);
typedef jnc_Type* jnc_DataPtrType_GetTargetTypeFunc(jnc_DataPtrType *type);
typedef uint_t jnc_DataPtrType_GetBitOffsetFunc(jnc_DataPtrType *type);
typedef uint_t jnc_DataPtrType_GetBitCountFunc(jnc_DataPtrType *type);
typedef jnc_ClassPtrTypeKind jnc_ClassPtrType_GetPtrTypeKindFunc(jnc_ClassPtrType *type);
typedef jnc_ClassType* jnc_ClassPtrType_GetTargetTypeFunc(jnc_ClassPtrType *type);
typedef jnc_FunctionPtrTypeKind jnc_FunctionPtrType_GetPtrTypeKindFunc(jnc_FunctionPtrType *type);
typedef jnc_FunctionType* jnc_FunctionPtrType_GetTargetTypeFunc(jnc_FunctionPtrType *type);
typedef bool_t jnc_Variant_CastFunc(
const jnc_Variant *variant,
jnc_Type *type,
void *buffer
);
typedef bool_t jnc_Variant_UnaryOperatorFunc(
const jnc_Variant *variant,
jnc_UnOpKind opKind,
jnc_Variant *result
);
typedef bool_t jnc_Variant_BinaryOperatorFunc(
const jnc_Variant *variant,
const jnc_Variant *variant2,
jnc_BinOpKind opKind,
jnc_Variant *result
);
typedef bool_t jnc_Variant_RelationalOperatorFunc(
const jnc_Variant *variant,
const jnc_Variant *variant2,
jnc_BinOpKind opKind,
bool_t *result
);
typedef bool_t jnc_Variant_GetMemberFunc(
const jnc_Variant *variant,
const char *name,
jnc_Variant *result
);
typedef bool_t jnc_Variant_SetMemberFunc(
jnc_Variant *variant,
const char *name,
jnc_Variant value
);
typedef bool_t jnc_Variant_GetElementFunc(
const jnc_Variant *variant,
size_t index,
jnc_Variant *result
);
typedef bool_t jnc_Variant_SetElementFunc(
jnc_Variant *variant,
size_t index,
jnc_Variant value
);
typedef size_t jnc_Variant_HashFunc(const jnc_Variant *variant);
typedef const char* jnc_Variant_FormatFunc(
const jnc_Variant *variant,
const char *fmtSpecifier
);
typedef jnc_DataPtr jnc_String_SzFunc(const jnc_String *string);
typedef void jnc_String_SetPtrFunc(
jnc_String *string,
jnc_DataPtr ptr,
size_t length
);
typedef jnc_Promise* jnc_Promise_CreateFunc(jnc_Runtime *runtime);
typedef void jnc_Promise_CompleteFunc(
jnc_Promise *promise,
jnc_Variant result,
jnc_DataPtr errorPtr
);
typedef jnc_ExtensionLib* jnc_Unit_GetLibFunc(jnc_Unit *unit);
typedef const char* jnc_Unit_GetFilePathFunc(jnc_Unit *unit);
typedef const char* jnc_Unit_GetFileNameFunc(jnc_Unit *unit);
typedef const char* jnc_Unit_GetDirFunc(jnc_Unit *unit);
typedef const char* jnc_Module_GetNameFunc(jnc_Module *module);
typedef jnc_GlobalNamespace* jnc_Module_GetGlobalNamespaceFunc(jnc_Module *module);
typedef jnc_GlobalNamespace* jnc_Module_GetStdNamespaceFunc(
jnc_Module *module,
jnc_StdNamespace stdNamespace
);
typedef jnc_Type* jnc_Module_GetPrimitiveTypeFunc(
jnc_Module *module,
jnc_TypeKind typeKind
);
typedef jnc_Type* jnc_Module_GetStdTypeFunc(
jnc_Module *module,
jnc_StdType stdType
);
typedef handle_t jnc_Module_GetExtensionSourceFileIteratorFunc(jnc_Module *module);
typedef const char* jnc_Module_GetNextExtensionSourceFileFunc(
jnc_Module *module,
handle_t *iterator
);
typedef jnc_FindModuleItemResult jnc_Module_FindExtensionLibItemFunc(
jnc_Module *module,
const char *name,
const jnc_Guid *libGuid,
size_t itemCacheSlot
);
typedef const char* jnc_Module_GetExtensionLibZipFilePathFunc(
jnc_Module *module,
jnc_ExtensionLib *lib
);
typedef bool_t jnc_Module_MapVariableFunc(
jnc_Module *module,
jnc_Variable *variable,
void *p
);
typedef bool_t jnc_Module_MapFunctionFunc(
jnc_Module *module,
jnc_Function *function,
void *p
);
typedef void jnc_Module_AddSourceFunc(
jnc_Module *module,
jnc_ExtensionLib *lib,
const char *fileName,
const char *source,
size_t length
);
typedef handle_t jnc_Module_GetImportDirIteratorFunc(jnc_Module *module);
typedef const char* jnc_Module_GetNextImportDirFunc(
jnc_Module *module,
handle_t *iterator
);
typedef void jnc_Module_AddImportDirFunc(
jnc_Module *module,
const char *dir
);
typedef bool_t jnc_Module_AddImportFunc(
jnc_Module *module,
const char *fileName
);
typedef void jnc_Module_AddSourceImportFunc(
jnc_Module *module,
const char *fileName,
const char *source,
size_t length
);
typedef void jnc_Module_AddOpaqueClassTypeInfoFunc(
jnc_Module *module,
const char *qualifiedName,
const jnc_OpaqueClassTypeInfo *info
);
typedef void jnc_Module_AddStaticLibFunc(
jnc_Module *module,
jnc_ExtensionLib *lib
);
typedef void jnc_Module_RequireFunc(
jnc_Module *module,
jnc_ModuleItemKind itemKind,
const char *name,
uint_t flags
);
typedef void jnc_Module_RequireTypeFunc(
jnc_Module *module,
jnc_TypeKind typeKind,
const char *name,
uint_t flags
);
typedef bool_t jnc_Module_ParseFunc(
jnc_Module *module,
const char *fileName,
const char *source,
size_t length
);
typedef bool_t jnc_Module_ParseFileFunc(
jnc_Module *module,
const char *fileName
);
typedef bool_t jnc_Module_ParseImportsFunc(jnc_Module *module);
typedef bool_t jnc_Module_CompileFunc(jnc_Module *module);
typedef bool_t jnc_Module_JitFunc(jnc_Module *module);
typedef const char* jnc_Module_getLlvmIrStringFunc(jnc_Module *module);
typedef jnc_Runtime* jnc_Runtime_CreateFunc();
typedef void jnc_Runtime_DestroyFunc(jnc_Runtime *runtime);
typedef jnc_Module* jnc_Runtime_GetModuleFunc(jnc_Runtime *runtime);
typedef jnc_GcHeap* jnc_Runtime_GetGcHeapFunc(jnc_Runtime *runtime);
typedef bool_t jnc_Runtime_IsAbortedFunc(jnc_Runtime *runtime);
typedef bool_t jnc_Runtime_StartupFunc(
jnc_Runtime *runtime,
jnc_Module *module
);
typedef void jnc_Runtime_ShutdownFunc(jnc_Runtime *runtime);
typedef void jnc_Runtime_AbortFunc(jnc_Runtime *runtime);
typedef void jnc_Runtime_InitializeCallSiteFunc(
jnc_Runtime *runtime,
jnc_CallSite *callSite
);
typedef void jnc_Runtime_UninitializeCallSiteFunc(
jnc_Runtime *runtime,
jnc_CallSite *callSite
);
typedef jnc_SjljFrame* jnc_Runtime_SetSjljFrameFunc(
jnc_Runtime *runtime,
jnc_SjljFrame *frame
);
typedef void* jnc_Runtime_GetUserDataFunc(jnc_Runtime *runtime);
typedef void* jnc_Runtime_SetUserDataFunc(
jnc_Runtime *runtime,
void *data
);
typedef jnc_Runtime* jnc_GetCurrentThreadRuntimeFunc();
typedef jnc_Tls* jnc_GetCurrentThreadTlsFunc();
typedef void jnc_DynamicThrowFunc();
typedef void jnc_SaveSignalInfoFunc(jnc_SjljFrame *sjljFrame);
typedef void jnc_PrimeClassFunc(
jnc_Box *box,
jnc_Box *root,
jnc_ClassType *type,
const void *vtable
);
typedef jnc_Runtime* jnc_GcHeap_GetRuntimeFunc(jnc_GcHeap *gcHeap);
typedef void jnc_GcHeap_GetStatsFunc(
jnc_GcHeap *gcHeap,
jnc_GcStats *stats
);
typedef void jnc_GcHeap_GetSizeTriggersFunc(
jnc_GcHeap *gcHeap,
jnc_GcSizeTriggers *triggers
);
typedef void jnc_GcHeap_SetSizeTriggersFunc(
jnc_GcHeap *gcHeap,
const jnc_GcSizeTriggers *triggers
);
typedef void jnc_GcHeap_CollectFunc(jnc_GcHeap *gcHeap);
typedef void jnc_GcHeap_EnterNoCollectRegionFunc(jnc_GcHeap *gcHeap);
typedef void jnc_GcHeap_LeaveNoCollectRegionFunc(
jnc_GcHeap *gcHeap,
bool_t canCollectNow
);
typedef void jnc_GcHeap_EnterWaitRegionFunc(jnc_GcHeap *gcHeap);
typedef void jnc_GcHeap_LeaveWaitRegionFunc(jnc_GcHeap *gcHeap);
typedef jnc_IfaceHdr* jnc_GcHeap_AllocateClassFunc(
jnc_GcHeap *gcHeap,
jnc_ClassType *type
);
typedef jnc_DataPtr jnc_GcHeap_AllocateDataFunc(
jnc_GcHeap *gcHeap,
jnc_Type *type
);
typedef jnc_DataPtr jnc_GcHeap_AllocateArrayFunc(
jnc_GcHeap *gcHeap,
jnc_Type *type,
size_t count
);
typedef jnc_DataPtr jnc_GcHeap_AllocateBufferFunc(
jnc_GcHeap *gcHeap,
size_t size
);
typedef jnc_DataPtrValidator* jnc_GcHeap_CreateDataPtrValidatorFunc(
jnc_GcHeap *gcHeap,
jnc_Box *box,
const void *rangeBegin,
size_t rangeLength
);
typedef jnc_DetachedDataBox* jnc_GcHeap_CreateForeignDataBoxFunc(
jnc_GcHeap *gcHeap,
jnc_Type *type,
size_t elementCount,
const void *p,
bool_t isCallSiteLocal
);
typedef jnc_DataPtr jnc_GcHeap_CreateForeignBufferPtrFunc(
jnc_GcHeap *gcHeap,
const void *p,
size_t size,
bool_t isCallSiteLocal
);
typedef void jnc_GcHeap_InvalidateDataPtrValidatorFunc(
jnc_GcHeap *gcHeap,
jnc_DataPtrValidator *validator
);
typedef void jnc_GcHeap_WeakMarkFunc(
jnc_GcHeap *gcHeap,
jnc_Box *box
);
typedef void jnc_GcHeap_MarkDataFunc(
jnc_GcHeap *gcHeap,
jnc_Box *box
);
typedef void jnc_GcHeap_MarkClassFunc(
jnc_GcHeap *gcHeap,
jnc_Box *box
);
typedef void jnc_GcHeap_MarkVariantFunc(
jnc_GcHeap *gcHeap,
jnc_Variant variant
);
typedef void jnc_GcHeap_AddBoxToCallSiteFunc(jnc_Box *box);
typedef jnc_StdHashTable* jnc_CreateStdHashTableFunc(
jnc_Runtime *runtime,
jnc_StdHashFunc *hashFunc,
jnc_StdIsEqualFunc *isEqualFunc
);
typedef void jnc_StdHashTable_ClearFunc(jnc_StdHashTable *hashTable);
typedef jnc_StdMapEntry* jnc_StdHashTable_FindFunc(
jnc_StdHashTable *hashTable,
jnc_Variant key
);
typedef jnc_StdMapEntry* jnc_StdHashTable_AddFunc(
jnc_StdHashTable *hashTable,
jnc_Variant key,
jnc_Variant value
);
typedef void jnc_StdHashTable_RemoveFunc(
jnc_StdHashTable *hashTable,
jnc_StdMapEntry *entry
);
typedef bool_t jnc_StdHashTable_RemoveKeyFunc(
jnc_StdHashTable *hashTable,
jnc_Variant key
);
typedef jnc_StdRbTree* jnc_CreateStdRbTreeFunc(
jnc_Runtime *runtime,
jnc_StdCmpFunc *cmpFunc
);
typedef void jnc_StdRbTree_ClearFunc(jnc_StdRbTree *RbTree);
typedef jnc_StdMapEntry* jnc_StdRbTree_FindFunc(
jnc_StdRbTree *RbTree,
jnc_Variant key
);
typedef jnc_StdMapEntry* jnc_StdRbTree_AddFunc(
jnc_StdRbTree *RbTree,
jnc_Variant key,
jnc_Variant value
);
typedef void jnc_StdRbTree_RemoveFunc(
jnc_StdRbTree *RbTree,
jnc_StdMapEntry *entry
);
typedef bool_t jnc_StdRbTree_RemoveKeyFunc(
jnc_StdRbTree *RbTree,
jnc_Variant key
);
typedef jnc_StdBuffer* jnc_CreateStdBufferFunc(jnc_Runtime *runtime);
typedef bool_t jnc_StdBuffer_ReserveFunc(
jnc_StdBuffer *buffer,
size_t size
);
typedef size_t jnc_StdBuffer_CopyFunc(
jnc_StdBuffer *buffer,
const void *p,
size_t size
);
typedef size_t jnc_StdBuffer_InsertFunc(
jnc_StdBuffer *buffer,
size_t offset,
const void *p,
size_t size
);
typedef size_t jnc_StdBuffer_RemoveFunc(
jnc_StdBuffer *Buffer,
size_t offset,
size_t size
);
typedef void jnc_ExtensionLib_AddSourcesFunc(jnc_Module *module);
typedef void jnc_ExtensionLib_AddOpaqueClassTypeInfosFunc(jnc_Module *module);
typedef bool_t jnc_ExtensionLib_MapAddressesFunc(jnc_Module *module);
typedef void jnc_ExtensionLib_UpdateCapabilitiesFunc();
typedef jnc_ExtensionLib* jnc_DynamicExtensionLibMainFunc(jnc_DynamicExtensionLibHost *host);
typedef bool_t jnc_DynamicExtensionLibUnloadFunc();
typedef size_t jnc_StdLib_StdInputFunc(
void *p,
size_t size
);
typedef size_t jnc_StdLib_StdOutputFunc(
const void *p,
size_t size
);
typedef bool_t jnc_ModuleCompileErrorHandlerFunc(
void *context,
jnc_ModuleCompileErrorKind errorKind
);
typedef void jnc_AttributeObserverFunc(
void *context,
jnc_ModuleItem *item,
jnc_AttributeBlock *attributeBlock
);
typedef enum jnc_OptLevel nc_OptLevel;
typedef int bool_t;
typedef unsigned int uint_t;
typedef unsigned char uchar_t;
typedef unsigned short ushort_t;
typedef unsigned long ulong_t;
typedef uint8_t byte_t;
typedef uint16_t word_t;
typedef uint32_t dword_t;
typedef uint64_t qword_t;
typedef void jnc_Scheduler_ScheduleFunc(
jnc_Scheduler *scheduler,
jnc_FunctionPtr functionPtr
);
typedef void jnc_MarkOpaqueGcRootsFunc(
jnc_IfaceHdr *iface,
jnc_GcHeap *gcHeap
);
typedef void jnc_RequireOpaqueItemsFunc(jnc_Module *module);
typedef void jnc_StaticConstructFunc();
typedef void jnc_StaticDestructFunc();
typedef void jnc_ConstructFunc(jnc_IfaceHdr *iface);
typedef void jnc_DestructFunc(jnc_IfaceHdr *iface);
typedef size_t jnc_StdHashFunc(jnc_Variant key);
typedef bool_t jnc_StdIsEqualFunc(
jnc_Variant key1,
jnc_Variant key2
);
typedef int jnc_StdCmpFunc(
jnc_Variant key1,
jnc_Variant key2
);
// enums
enum {
jnc_Variant_DataSize = sizeof(void*)* 6,
};
enum jnc_AccessKind;
enum jnc_ArrayTypeFlag;
enum jnc_BinOpKind;
enum jnc_BoxFlag;
enum jnc_ClassPtrTypeKind;
enum jnc_ClassTypeFlag;
enum jnc_ClassTypeKind;
enum jnc_CodeAssistFlag;
enum jnc_CodeAssistKind;
enum jnc_DataPtrTypeKind;
enum jnc_DynamicLayoutMode;
enum jnc_DynamicSectionKind;
enum jnc_EnumTypeFlag;
enum jnc_FunctionFlag;
enum jnc_FunctionKind;
enum jnc_FunctionKindFlag;
enum jnc_FunctionOverloadFlag;
enum jnc_FunctionPtrTypeKind;
enum jnc_FunctionTypeFlag;
enum jnc_GcDef;
enum jnc_GcShadowStackFrameMapOp;
enum jnc_JitKind;
enum jnc_McSnapshotFieldKind;
enum jnc_McSnapshotMethodKind;
enum jnc_ModuleCompileErrorKind;
enum jnc_ModuleCompileFlag;
enum jnc_ModuleCompileState;
enum jnc_ModuleItemFlag;
enum jnc_ModuleItemKind;
enum jnc_ModuleRequireFlag;
enum jnc_MulticastFieldKind;
enum jnc_MulticastMethodFlag;
enum jnc_MulticastMethodKind;
enum jnc_NamespaceKind;
enum jnc_OptLevel;
enum jnc_PropertyFlag;
enum jnc_PropertyKind;
enum jnc_PropertyPtrTypeKind;
enum jnc_PropertyTypeFlag;
enum jnc_PtrTypeFlag;
enum jnc_StdNamespace;
enum jnc_StdType;
enum jnc_StorageKind;
enum jnc_TypeFlag;
enum jnc_TypeKind;
enum jnc_TypeKindFlag;
enum jnc_UnOpKind;
enum jnc_VariableFlag;
// structs
struct jnc_ArrayType;
struct jnc_ArrayTypeFuncTable;
struct jnc_AttributeBlockFuncTable;
struct jnc_AttributeFuncTable;
struct jnc_BaseTypeSlotFuncTable;
struct jnc_Box;
struct jnc_CallSite;
struct jnc_CapabilityFuncTable;
struct jnc_ClassPtrTypeFuncTable;
struct jnc_ClassType;
struct jnc_ClassTypeFuncTable;
struct jnc_CodeAuthenticatorConfig;
struct jnc_DataBox;
struct jnc_DataPtr;
struct jnc_DataPtrTypeFuncTable;
struct jnc_DataPtrValidator;
struct jnc_DerivableType;
struct jnc_DerivableTypeFuncTable;
struct jnc_DetachedDataBox;
struct jnc_DynamicExtensionLibHost;
struct jnc_EnumConstFuncTable;
struct jnc_EnumType;
struct jnc_EnumTypeFuncTable;
struct jnc_Error;
struct jnc_ErrorFuncTable;
struct jnc_ExtensionLib;
struct jnc_FieldFuncTable;
struct jnc_FindModuleItemResult;
struct jnc_FmtLiteral;
struct jnc_Function;
struct jnc_FunctionArgFuncTable;
struct jnc_FunctionFuncTable;
struct jnc_FunctionOverloadFuncTable;
struct jnc_FunctionPtr;
struct jnc_FunctionPtrTypeFuncTable;
struct jnc_FunctionType;
struct jnc_FunctionTypeFuncTable;
struct jnc_GcHeap;
struct jnc_GcHeapFuncTable;
struct jnc_GcMutatorThread;
struct jnc_GcShadowStackFrame;
struct jnc_GcShadowStackFrameMapBuffer;
struct jnc_GcSizeTriggers;
struct jnc_GcStats;
struct jnc_GlobalNamespaceFuncTable;
struct jnc_Guid;
struct jnc_IfaceHdr;
struct jnc_ListLink;
struct jnc_McSnapshot;
struct jnc_McSnapshotClassTypeFuncTable;
struct jnc_Module;
struct jnc_ModuleConfig;
struct jnc_ModuleFuncTable;
struct jnc_ModuleItem;
struct jnc_ModuleItemDecl;
struct jnc_ModuleItemDeclFuncTable;
struct jnc_ModuleItemFuncTable;
struct jnc_Multicast;
struct jnc_MulticastClassTypeFuncTable;
struct jnc_NamedTypeFuncTable;
struct jnc_Namespace;
struct jnc_NamespaceFuncTable;
struct jnc_OpaqueClassTypeInfo;
struct jnc_Promise;
struct jnc_PromiseFuncTable;
struct jnc_Property;
struct jnc_PropertyFuncTable;
struct jnc_PropertyPtr;
struct jnc_PropertyPtrTypeFuncTable;
struct jnc_PropertyType;
struct jnc_PropertyTypeFuncTable;
struct jnc_Reactor;
struct jnc_ReactorClosure;
struct jnc_Runtime;
struct jnc_RuntimeFuncTable;
struct jnc_Scheduler;
struct jnc_SchedulerVtable;
struct jnc_SjljFrame;
struct jnc_StdBuffer;
struct jnc_StdBufferFuncTable;
struct jnc_StdHashTable;
struct jnc_StdHashTableFuncTable;
struct jnc_StdMap;
struct jnc_StdMapEntry;
struct jnc_StdRbTree;
struct jnc_StdRbTreeFuncTable;
struct jnc_String;
struct jnc_StringFuncTable;
struct jnc_StructType;
struct jnc_StructTypeFuncTable;
struct jnc_Tls;
struct jnc_TlsVariableTable;
struct jnc_Type;
struct jnc_TypeFuncTable;
struct jnc_TypedefFuncTable;
struct jnc_UnionType;
struct jnc_UnionTypeFuncTable;
struct jnc_UnitFuncTable;
struct jnc_Variable;
struct jnc_VariableFuncTable;
struct jnc_Variant;
struct jnc_VariantFuncTable;
// unions
union jnc_OverloadableFunction;
// global variables
JNC_SELECT_ANY char jnc_g_dynamicExtensionLibMainFuncName[] = "jncDynamicExtensionLibMain";
JNC_SELECT_ANY char jnc_g_dynamicExtensionLibUnloadFuncName[] = "jncDynamicExtensionLibUnload";
JNC_SELECT_ANY jnc_ModuleConfig jnc_g_defaultModuleConfig = { jnc_JitKind_Auto, jnc_OptLevel_Default, jnc_ModuleCompileFlag_StdFlags, };
JNC_SELECT_ANY jnc_FindModuleItemResult jnc_g_errorFindModuleItemResult = { 0, NULL };
JNC_SELECT_ANY jnc_FindModuleItemResult jnc_g_nullFindModuleItemResult = { 1, NULL };
JNC_SELECT_ANY jnc_DataPtr jnc_g_nullDataPtr = { 0 };
JNC_SELECT_ANY jnc_FunctionPtr jnc_g_nullFunctionPtr = { 0 };
JNC_SELECT_ANY jnc_PropertyPtr jnc_g_nullPropertyPtr = { 0 };
JNC_SELECT_ANY jnc_String jnc_g_nullString = { 0 };
JNC_SELECT_ANY jnc_Variant jnc_g_nullVariant = { 0 };
// global functions
const char*
jnc_Alias_getInitializerString_v(jnc_Alias* alias);
bool_t
jnc_Alias_isResolved(jnc_Alias* alias);
jnc_ModuleItem*
jnc_Alias_getTargetItem(jnc_Alias* alias);
jnc_Type*
jnc_ArrayType_getElementType(jnc_ArrayType* type);
size_t
jnc_ArrayType_getElementCount(jnc_ArrayType* type);
static
bool_t
jnc_isAutoSizeArrayType(jnc_Type* type);
static
bool_t
jnc_isCharArrayType(jnc_Type* type);
static
bool_t
jnc_isCharArrayRefType(jnc_Type* type);
jnc_Variant
jnc_Attribute_getValue(jnc_Attribute* attr);
size_t
jnc_AttributeBlock_getAttributeCount(jnc_AttributeBlock* block);
jnc_Attribute*
jnc_AttributeBlock_getAttribute(
jnc_AttributeBlock* block,
size_t index
);
jnc_Attribute*
jnc_AttributeBlock_findAttribute(
jnc_AttributeBlock* block,
const char* name
);
bool_t
jnc_AttributeBlock_ensureAttributeValuesReady(jnc_AttributeBlock* block);
JNC_EXTERN_C bool_t
jnc_isEveryCapabilityEnabled();
JNC_EXTERN_C bool_t
jnc_isCapabilityEnabled(const char* capability);
JNC_EXTERN_C size_t
jnc_readCapabilityParam(
const char* param,
void* value,
size_t size
);
JNC_INLINE size_t
jnc_getCapabilityParamSize(const char* param);
JNC_EXTERN_C size_t
jnc_writeCapabilityParam(
const char* param,
const void* value,
size_t size
);
JNC_EXTERN_C bool_t
jnc_failWithCapabilityError(const char* capability);
JNC_INLINE bool_t
jnc_requireCapability(const char* capability);
JNC_EXTERN_C void
jnc_enableCapability(
const char* capability,
bool_t isEnabled
);
JNC_EXTERN_C void
jnc_initializeCapabilities(const char* initializer);
const char*
jnc_getClassPtrTypeKindString(jnc_ClassPtrTypeKind ptrTypeKind);
jnc_ClassTypeKind
jnc_ClassType_getClassTypeKind(jnc_ClassType* type);
jnc_StructType*
jnc_ClassType_getIfaceStructType(jnc_ClassType* type);
jnc_ClassPtrType*
jnc_ClassType_getClassPtrType(
jnc_ClassType* type,
jnc_TypeKind typeKind,
jnc_ClassPtrTypeKind ptrTypeKind,
uint_t flags
);
jnc_ClassPtrTypeKind
jnc_ClassPtrType_getPtrTypeKind(jnc_ClassPtrType* type);
jnc_ClassType*
jnc_ClassPtrType_getTargetType(jnc_ClassPtrType* type);
jnc_FunctionPtrType*
jnc_MulticastClassType_getTargetType(jnc_MulticastClassType* type);
static
jnc_FunctionType*
jnc_MulticastClassType_getFunctionType(jnc_MulticastClassType* type);
jnc_Function*
jnc_MulticastClassType_getMethod(
jnc_MulticastClassType* type,
jnc_MulticastMethodKind method
);
jnc_FunctionPtrType*
jnc_McSnapshotClassType_getTargetType(jnc_McSnapshotClassType* type);
static
jnc_FunctionType*
jnc_McSnapshotClassType_getFunctionType(jnc_McSnapshotClassType* type);
jnc_Function*
jnc_McSnapshotClassType_getMethod(
jnc_McSnapshotClassType* type,
jnc_McSnapshotMethodKind method
);
static
bool_t
jnc_isClassType(
jnc_Type* type,
jnc_ClassTypeKind classTypeKind
);
static
bool_t
jnc_isOpaqueClassType(jnc_Type* type);
static
bool_t
jnc_isClosureClassType(jnc_Type* type);
static
bool_t
jnc_isDestructibleClassType(jnc_Type* type);
static
void*
jnc_getMulticastCallMethodMachineCode(jnc_Multicast* multicast);
jnc_CodeAssistKind
jnc_CodeAssist_getCodeAssistKind(jnc_CodeAssist* codeAssist);
uint_t
jnc_CodeAssist_getFlags(jnc_CodeAssist* codeAssist);
size_t
jnc_CodeAssist_getOffset(jnc_CodeAssist* codeAssist);
jnc_Module*
jnc_CodeAssist_getModule(jnc_CodeAssist* codeAssist);
jnc_ModuleItem*
jnc_CodeAssist_getModuleItem(jnc_CodeAssist* codeAssist);
jnc_Namespace*
jnc_CodeAssist_getNamespace(jnc_CodeAssist* codeAssist);
jnc_FunctionTypeOverload*
jnc_CodeAssist_getFunctionTypeOverload(jnc_CodeAssist* codeAssist);
size_t
jnc_CodeAssist_getArgumentIdx(jnc_CodeAssist* codeAssist);
void
jnc_initialize(const char* reserved);
static
jnc_DerivableType*
jnc_BaseTypeSlot_getType(jnc_BaseTypeSlot* baseType);
size_t
jnc_BaseTypeSlot_getOffset(jnc_BaseTypeSlot* baseType);
size_t
jnc_BaseTypeSlot_getVtableIndex(jnc_BaseTypeSlot* baseType);
jnc_Type*
jnc_Field_getType(jnc_Field* field);
uint_t
jnc_Field_getBitOffset(jnc_Field* field);
uint_t
jnc_Field_getBitCount(jnc_Field* field);
uint_t
jnc_Field_getPtrTypeFlags(jnc_Field* field);
size_t
jnc_Field_getOffset(jnc_Field* field);
jnc_Function*
jnc_DerivableType_getStaticConstructor(jnc_DerivableType* type);
jnc_OverloadableFunction
jnc_DerivableType_getConstructor(jnc_DerivableType* type);
jnc_Function*
jnc_DerivableType_getDestructor(jnc_DerivableType* type);
jnc_OverloadableFunction
jnc_DerivableType_getUnaryOperator(
jnc_DerivableType* type,
jnc_UnOpKind opKind
);
jnc_OverloadableFunction
jnc_DerivableType_getBinaryOperator(
jnc_DerivableType* type,
jnc_BinOpKind opKind
);
jnc_OverloadableFunction
jnc_DerivableType_getCallOperator(jnc_DerivableType* type);
size_t
jnc_DerivableType_getCastOperatorCount(jnc_DerivableType* type);
jnc_Function*
jnc_DerivableType_getCastOperator(
jnc_DerivableType* type,
size_t index
);
size_t
jnc_DerivableType_getBaseTypeCount(jnc_DerivableType* type);
jnc_BaseTypeSlot*
jnc_DerivableType_getBaseType(
jnc_DerivableType* type,
size_t index
);
size_t
jnc_DerivableType_findBaseTypeOffset(
jnc_DerivableType* type,
jnc_Type* baseType
);
size_t
jnc_DerivableType_getStaticVariableCount(jnc_DerivableType* type);
jnc_Variable*
jnc_DerivableType_getStaticVariable(
jnc_DerivableType* type,
size_t index
);
size_t
jnc_DerivableType_getFieldCount(jnc_DerivableType* type);
jnc_Field*
jnc_DerivableType_getField(
jnc_DerivableType* type,
size_t index
);
size_t
jnc_DerivableType_getMethodCount(jnc_DerivableType* type);
jnc_Function*
jnc_DerivableType_getMethod(
jnc_DerivableType* type,
size_t index
);
size_t
jnc_DerivableType_getPropertyCount(jnc_DerivableType* type);
jnc_Property*
jnc_DerivableType_getProperty(
jnc_DerivableType* type,
size_t index
);
static
bool_t
jnc_isConstructibleType(jnc_Type* type);
size_t
jnc_DynamicSectionGroup_getSectionCount(jnc_DynamicSectionGroup* sectionGroup);
jnc_DynamicSection*
jnc_DynamicSectionGroup_getSection(
jnc_DynamicSectionGroup* sectionGroup,
size_t i
);
jnc_DynamicSectionKind
jnc_DynamicSection_getSectionKind(jnc_DynamicSection* section);
size_t
jnc_DynamicSection_getOffset(jnc_DynamicSection* section);
size_t
jnc_DynamicSection_getElementCount(jnc_DynamicSection* section);
uint_t
jnc_DynamicSection_getPtrTypeFlags(jnc_DynamicSection* section);
jnc_Type*
jnc_DynamicSection_getType(jnc_DynamicSection* section);
jnc_ModuleItemDecl*
jnc_DynamicSection_getDecl(jnc_DynamicSection* section);
jnc_DynamicLayout*
jnc_createDynamicLayout(
jnc_Runtime* runtime,
uint_t mode,
jnc_DataPtr ptr,
size_t size
);
size_t
jnc_DynamicLayout_getSize(jnc_DynamicLayout* layout);
size_t
jnc_DynamicLayout_getBufferSize(jnc_DynamicLayout* layout);
size_t
jnc_DynamicLayout_getSizeLimit(jnc_DynamicLayout* layout);
void
jnc_DynamicLayout_setSizeLimit(
jnc_DynamicLayout* layout,
size_t size
);
uint_t
jnc_DynamicLayout_getMode(jnc_DynamicLayout* layout);
void
jnc_DynamicLayout_reset(
jnc_DynamicLayout* layout,
uint_t mode,
jnc_DataPtr ptr,
size_t size
);
static
void
jnc_DynamicLayout_clear(jnc_DynamicLayout* layout);
int64_t
jnc_EnumConst_getValue(jnc_EnumConst* enumConst);
jnc_Type*
jnc_EnumType_getBaseType(jnc_EnumType* type);
jnc_Type*
jnc_EnumType_getRootType(jnc_EnumType* type);
size_t
jnc_EnumType_getConstCount(jnc_EnumType* type);
jnc_EnumConst*
jnc_EnumType_getConst(
jnc_EnumType* type,
size_t index
);
void
jnc_setErrorRouter(jnc_ErrorRouter* router);
const jnc_Error*
jnc_getLastError();
void
jnc_setError(const jnc_Error* error);
void
jnc_setErrno(int code);
void
jnc_setStringError(const char* string);
const char*
jnc_getErrorDescription_v(const jnc_Error* error);
static
const char*
jnc_getLastErrorDescription_v();
jnc_ExtensionLib*
jnc_CoreLib_getLib();
jnc_ExtensionLib*
jnc_IntrospectionLib_getLib();
jnc_ExtensionLib*
jnc_StdLib_getLib();
jnc_ExtensionLib*
jnc_SysLib_getLib();
void
jnc_StdLib_setStdIo(
jnc_StdLib_StdInputFunc* getsFunc,
jnc_StdLib_StdOutputFunc* printOutFunc,
jnc_StdLib_StdOutputFunc* printErrFunc
);
const char*
jnc_getFunctionKindString(jnc_FunctionKind functionKind);
uint_t
jnc_getFunctionKindFlags(jnc_FunctionKind functionKind);
jnc_FunctionKind
jnc_Function_getFunctionKind(jnc_Function* function);
static
jnc_FunctionType*
jnc_Function_getType(jnc_Function* function);
bool_t
jnc_Function_isMember(jnc_Function* function);
bool_t
jnc_Function_isUnusedExternal(jnc_Function* function);
void*
jnc_Function_getMachineCode(jnc_Function* function);
jnc_FunctionKind
jnc_FunctionOverload_getFunctionKind(jnc_FunctionOverload* function);
size_t
jnc_FunctionOverload_getOverloadCount(jnc_FunctionOverload* function);
jnc_Function*
jnc_FunctionOverload_getOverload(
jnc_FunctionOverload* function,
size_t index
);
const char*
jnc_getFunctionTypeFlagString(jnc_FunctionTypeFlag flag);
const char*
jnc_getFunctionPtrTypeKindString(jnc_FunctionPtrTypeKind ptrTypeKind);
bool_t
jnc_FunctionArg_hasDefaultValue(jnc_FunctionArg* arg);
const char*
jnc_FunctionArg_getDefaultValueString_v(jnc_FunctionArg* arg);
jnc_Type*
jnc_FunctionType_getReturnType(jnc_FunctionType* type);
size_t
jnc_FunctionType_getArgCount(jnc_FunctionType* type);
jnc_FunctionArg*
jnc_FunctionType_getArg(
jnc_FunctionType* type,
size_t index
);
jnc_FunctionPtrType*
jnc_FunctionType_getFunctionPtrType(
jnc_FunctionType* type,
jnc_TypeKind typeKind,
jnc_FunctionPtrTypeKind ptrTypeKind,
uint_t flags
);
jnc_FunctionType*
jnc_FunctionType_getShortType(jnc_FunctionType* type);
jnc_FunctionPtrTypeKind
jnc_FunctionPtrType_getPtrTypeKind(jnc_FunctionPtrType* type);
jnc_FunctionType*
jnc_FunctionPtrType_getTargetType(jnc_FunctionPtrType* type);
size_t
jnc_FunctionTypeOverload_getOverloadCount(jnc_FunctionTypeOverload* typeOverload);
jnc_FunctionType*
jnc_FunctionTypeOverload_getOverload(
jnc_FunctionTypeOverload* typeOverload,
size_t index
);
jnc_Runtime*
jnc_GcHeap_getRuntime(jnc_GcHeap* gcHeap);
void
jnc_GcHeap_getStats(
jnc_GcHeap* gcHeap,
jnc_GcStats* stats
);
void
jnc_GcHeap_getSizeTriggers(
jnc_GcHeap* gcHeap,
jnc_GcSizeTriggers* triggers
);
void
jnc_GcHeap_setSizeTriggers(
jnc_GcHeap* gcHeap,
const jnc_GcSizeTriggers* triggers
);
void
jnc_GcHeap_collect(jnc_GcHeap* gcHeap);
void
jnc_GcHeap_enterNoCollectRegion(jnc_GcHeap* gcHeap);
void
jnc_GcHeap_leaveNoCollectRegion(
jnc_GcHeap* gcHeap,
bool_t canCollectNow
);
void
jnc_GcHeap_enterWaitRegion(jnc_GcHeap* gcHeap);
void
jnc_GcHeap_leaveWaitRegion(jnc_GcHeap* gcHeap);
void
jnc_GcHeap_safePoint(jnc_GcHeap* gcHeap);
void
jnc_GcHeap_setFrameMap(
jnc_GcHeap* gcHeap,
jnc_GcShadowStackFrame* frame,
jnc_GcShadowStackFrameMap* map,
jnc_GcShadowStackFrameMapOp op
);
void
jnc_GcHeap_addStaticDestructor(
jnc_GcHeap* gcHeap,
jnc_StaticDestructFunc* destructFunc
);
void
jnc_GcHeap_addStaticClassDestructor(
jnc_GcHeap* gcHeap,
jnc_DestructFunc* destructFunc,
jnc_IfaceHdr* iface
);
void
jnc_GcHeap_addStaticRoot(
jnc_GcHeap* gcHeap,
const void* p,
jnc_Type* type
);
jnc_IfaceHdr*
jnc_GcHeap_allocateClass(
jnc_GcHeap* gcHeap,
jnc_ClassType* type
);
jnc_IfaceHdr*
jnc_GcHeap_tryAllocateClass(
jnc_GcHeap* gcHeap,
jnc_ClassType* type
);
jnc_DataPtr
jnc_GcHeap_allocateData(
jnc_GcHeap* gcHeap,
jnc_Type* type
);
jnc_DataPtr
jnc_GcHeap_tryAllocateData(
jnc_GcHeap* gcHeap,
jnc_Type* type
);
jnc_DataPtr
jnc_GcHeap_allocateArray(
jnc_GcHeap* gcHeap,
jnc_Type* type,
size_t count
);
jnc_DataPtr
jnc_GcHeap_tryAllocateArray(
jnc_GcHeap* gcHeap,
jnc_Type* type,
size_t count
);
jnc_DataPtr
jnc_GcHeap_allocateBuffer(
jnc_GcHeap* gcHeap,
size_t size
);
jnc_DataPtr
jnc_GcHeap_tryAllocateBuffer(
jnc_GcHeap* gcHeap,
size_t size
);
jnc_DataPtrValidator*
jnc_GcHeap_createDataPtrValidator(
jnc_GcHeap* gcHeap,
jnc_Box* box,
const void* rangeBegin,
size_t rangeLength
);
jnc_DetachedDataBox*
jnc_GcHeap_createForeignDataBox(
jnc_GcHeap* gcHeap,
jnc_Type* type,
size_t elementCount,
const void* p,
bool_t isCallSiteLocal
);
jnc_DataPtr
jnc_GcHeap_createForeignBufferPtr(
jnc_GcHeap* gcHeap,
const void* p,
size_t size,
bool_t isCallSiteLocal
);
void
jnc_GcHeap_invalidateDataPtrValidator(
jnc_GcHeap* gcHeap,
jnc_DataPtrValidator* validator
);
static
void
jnc_GcHeap_invalidateDataPtr(
jnc_GcHeap* gcHeap,
jnc_DataPtr ptr
);
void
jnc_GcHeap_weakMark(
jnc_GcHeap* gcHeap,
jnc_Box* box
);
void
jnc_GcHeap_markData(
jnc_GcHeap* gcHeap,
jnc_Box* box
);
static
void
jnc_GcHeap_markDataPtr(
jnc_GcHeap* gcHeap,
jnc_DataPtr ptr
);
void
jnc_GcHeap_markClass(
jnc_GcHeap* gcHeap,
jnc_Box* box
);
static
void
jnc_GcHeap_markClassPtr(
jnc_GcHeap* gcHeap,
jnc_IfaceHdr* iface
);
static
void
jnc_GcHeap_markString(
jnc_GcHeap* gcHeap,
jnc_String string
);
void
jnc_GcHeap_markVariant(
jnc_GcHeap* gcHeap,
jnc_Variant variant
);
void
jnc_GcHeap_addRoot(
jnc_GcHeap* gcHeap,
const void* p,
jnc_Type* type
);
void
jnc_GcHeap_addBoxToCallSite(jnc_Box* box);
jnc_Module*
jnc_Module_create();
void
jnc_Module_destroy(jnc_Module* module);
void
jnc_Module_clear(jnc_Module* module);
void
jnc_Module_unloadDynamicLibs(jnc_Module* module);
void
jnc_Module_initialize(
jnc_Module* module,
const char* name,
const jnc_ModuleConfig* config
);
void
jnc_Module_updateCapabilities(jnc_Module* module);
void
jnc_Module_setDynamicExtensionAuthenticatorConfig(
jnc_Module* module,
const jnc_CodeAuthenticatorConfig* config
);
const char*
jnc_Module_getName(jnc_Module* module);
uint_t
jnc_Module_getCompileFlags(jnc_Module* module);
jnc_ModuleCompileState
jnc_Module_getCompileState(jnc_Module* module);
size_t
jnc_Module_getCompileErrorCountLimit(jnc_Module* module);
void
jnc_Module_setCompileErrorCountLimit(
jnc_Module* module,
size_t limit
);
size_t
jnc_Module_getCompileErrorCount(jnc_Module* module);
void
jnc_Module_setCompileErrorHandler(
jnc_Module* module,
jnc_ModuleCompileErrorHandlerFunc* handler,
void* context
);
void
jnc_Module_setAttributeObserver(
jnc_Module* module,
jnc_AttributeObserverFunc* observer,
void* context,
uint_t itemKindMask
);
jnc_GlobalNamespace*
jnc_Module_getGlobalNamespace(jnc_Module* module);
jnc_GlobalNamespace*
jnc_Module_getStdNamespace(
jnc_Module* module,
jnc_StdNamespace stdNamespace
);
jnc_Type*
jnc_Module_getPrimitiveType(
jnc_Module* module,
jnc_TypeKind typeKind
);
jnc_Type*
jnc_Module_getStdType(
jnc_Module* module,
jnc_StdType stdType
);
handle_t
jnc_Module_getExtensionSourceFileIterator(jnc_Module* module);
const char*
jnc_Module_getNextExtensionSourceFile(
jnc_Module* module,
handle_t* iterator
);
jnc_FindModuleItemResult
jnc_Module_findExtensionLibItem(
jnc_Module* module,
const char* name,
const jnc_Guid* libGuid,
size_t itemCacheSlot
);
const char*
jnc_Module_getExtensionLibFilePath(
jnc_Module* module,
jnc_ExtensionLib* lib
);
bool_t
jnc_Module_mapVariable(
jnc_Module* module,
jnc_Variable* variable,
void* p
);
bool_t
jnc_Module_mapFunction(
jnc_Module* module,
jnc_Function* function,
void* p
);
void
jnc_Module_addSource(
jnc_Module* module,
jnc_ExtensionLib* lib,
const char* fileName,
const char* source,
size_t length
);
handle_t
jnc_Module_getImportDirIterator(jnc_Module* module);
const char*
jnc_Module_getNextImportDir(
jnc_Module* module,
handle_t* iterator
);
void
jnc_Module_addImportDir(
jnc_Module* module,
const char* dir
);
bool_t
jnc_Module_addImport(
jnc_Module* module,
const char* fileName
);
void
jnc_Module_addSourceImport(
jnc_Module* module,
const char* fileName,
const char* source,
size_t length
);
void
jnc_Module_addIgnoredImport(
jnc_Module* module,
const char* fileName
);
void
jnc_Module_addOpaqueClassTypeInfo(
jnc_Module* module,
const char* qualifiedName,
const jnc_OpaqueClassTypeInfo* info
);
void
jnc_Module_addStaticLib(
jnc_Module* module,
jnc_ExtensionLib* lib
);
void
jnc_Module_require(
jnc_Module* module,
jnc_ModuleItemKind itemKind,
const char* name,
uint_t flags
);
void
jnc_Module_requireType(
jnc_Module* module,
jnc_TypeKind typeKind,
const char* name,
uint_t flags
);
bool_t
jnc_Module_parse(
jnc_Module* module,
const char* fileName,
const char* source,
size_t length
);
bool_t
jnc_Module_parseFile(
jnc_Module* module,
const char* fileName
);
bool_t
jnc_Module_parseImports(jnc_Module* module);
bool_t
jnc_Module_compile(jnc_Module* module);
bool_t
jnc_Module_optimize(
jnc_Module* module,
uint_t level
);
bool_t
jnc_Module_ensureJitCreated(jnc_Module* module);
bool_t
jnc_Module_jit(jnc_Module* module);
bool_t
jnc_Module_generateDocumentation(
jnc_Module* module,
const char* outputDir
);
const char*
jnc_Module_getLlvmIrString_v(jnc_Module* module);
jnc_CodeAssist*
jnc_Module_generateCodeAssist(
jnc_Module* module,
jnc_CodeAssistKind kind,
jnc_Module* cacheModule,
size_t offset,
const char* source,
size_t length
);
void
jnc_Module_cancelCodeAssist(jnc_Module* module);
jnc_CodeAssist*
jnc_Module_getCodeAssist(jnc_Module* module);
const char*
jnc_getModuleItemKindString(jnc_ModuleItemKind itemKind);
const char*
jnc_getStorageKindString(jnc_StorageKind storageKind);
const char*
jnc_getAccessKindString(jnc_AccessKind accessKind);
const char*
jnc_ModuleItemDecl_getName(jnc_ModuleItemDecl* decl);
const char*
jnc_ModuleItemDecl_getQualifiedName(jnc_ModuleItemDecl* decl);
jnc_StorageKind
jnc_ModuleItemDecl_getStorageKind(jnc_ModuleItemDecl* decl);
jnc_AccessKind
jnc_ModuleItemDecl_getAccessKind(jnc_ModuleItemDecl* decl);
jnc_AttributeBlock*
jnc_ModuleItemDecl_getAttributeBlock(jnc_ModuleItemDecl* decl);
jnc_Attribute*
jnc_ModuleItemDecl_findAttribute(
jnc_ModuleItemDecl* decl,
const char* name
);
jnc_Namespace*
jnc_ModuleItemDecl_getParentNamespace(jnc_ModuleItemDecl* decl);
jnc_Unit*
jnc_ModuleItemDecl_getParentUnit(jnc_ModuleItemDecl* decl);
int
jnc_ModuleItemDecl_getLine(jnc_ModuleItemDecl* decl);
int
jnc_ModuleItemDecl_getCol(jnc_ModuleItemDecl* decl);
jnc_Module*
jnc_ModuleItem_getModule(jnc_ModuleItem* item);
jnc_ModuleItemKind
jnc_ModuleItem_getItemKind(jnc_ModuleItem* item);
uint_t
jnc_ModuleItem_getFlags(jnc_ModuleItem* item);
jnc_ModuleItemDecl*
jnc_ModuleItem_getDecl(jnc_ModuleItem* item);
jnc_Namespace*
jnc_ModuleItem_getNamespace(jnc_ModuleItem* item);
jnc_Type*
jnc_ModuleItem_getType(jnc_ModuleItem* item);
const char*
jnc_ModuleItem_getSynopsis_v(
jnc_ModuleItem* item,
bool_t isQualifiedName
);
const char*
jnc_getNamespaceKindString(jnc_NamespaceKind namespaceKind);
bool_t
jnc_Namespace_isReady(jnc_Namespace* nspace);
jnc_NamespaceKind
jnc_Namespace_getNamespaceKind(jnc_Namespace* nspace);
jnc_Namespace*
jnc_Namespace_getParentNamespace(jnc_Namespace* nspace);
jnc_ModuleItem*
jnc_Namespace_getParentItem(jnc_Namespace* nspace);
size_t
jnc_Namespace_getItemCount(jnc_Namespace* nspace);
jnc_ModuleItem*
jnc_Namespace_getItem(
jnc_Namespace* nspace,
size_t index
);
jnc_FindModuleItemResult
jnc_Namespace_findDirectChildItem(
jnc_Namespace* nspace,
const char* name
);
jnc_FindModuleItemResult
jnc_Namespace_findItem(
jnc_Namespace* nspace,
const char* name
);
jnc_FindModuleItemResult
jnc_Namespace_findItemNoParse(
jnc_Namespace* nspace,
const char* name
);
const char*
jnc_getUnOpKindString(jnc_UnOpKind opKind);
const char*
jnc_getBinOpKindString(jnc_BinOpKind opKind);
jnc_Promise*
jnc_createPromise(jnc_Runtime* runtime);
void
jnc_Promise_complete(
jnc_Promise* promise,
jnc_Variant result,
jnc_DataPtr errorPtr
);
static
jnc_PropertyType*
jnc_Property_getType(jnc_Property* prop);
jnc_Function*
jnc_Property_getGetter(jnc_Property* prop);
jnc_OverloadableFunction
jnc_Property_getSetter(jnc_Property* prop);
const char*
jnc_getPropertyTypeFlagString(jnc_PropertyTypeFlag flag);
const char*
jnc_getPropertyPtrTypeKindString(jnc_PropertyPtrTypeKind ptrTypeKind);
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
);
jnc_StdBuffer*
jnc_createStdBuffer(jnc_Runtime* runtime);
static
size_t
jnc_StdBuffer_getSize(jnc_StdBuffer* buffer);
static
bool_t
jnc_StdBuffer_isEmpty(jnc_StdBuffer* buffer);
static
bool_t
jnc_StdBuffer_setSize(
jnc_StdBuffer* buffer,
size_t size
);
static
void
jnc_StdBuffer_clear(jnc_StdBuffer* buffer);
bool_t
jnc_StdBuffer_reserve(
jnc_StdBuffer* buffer,
size_t size
);
size_t
jnc_StdBuffer_copy(
jnc_StdBuffer* buffer,
const void* p,
size_t size
);
static
size_t
jnc_StdBuffer_append(
jnc_StdBuffer* buffer,
const void* p,
size_t size
);
size_t
jnc_StdBuffer_insert(
jnc_StdBuffer* buffer,
size_t offset,
const void* p,
size_t size
);
size_t
jnc_StdBuffer_remove(
jnc_StdBuffer* buffer,
size_t offset,
size_t size
);
jnc_StdHashTable*
jnc_createStdHashTable(
jnc_Runtime* runtime,
jnc_StdHashFunc* hashFunc,
jnc_StdIsEqualFunc* isEqualFunc
);
void
jnc_StdHashTable_clear(jnc_StdHashTable* hashTable);
jnc_StdMapEntry*
jnc_StdHashTable_find(
jnc_StdHashTable* hashTable,
jnc_Variant key
);
jnc_StdMapEntry*
jnc_StdHashTable_add(
jnc_StdHashTable* hashTable,
jnc_Variant key,
jnc_Variant value
);
void
jnc_StdHashTable_remove(
jnc_StdHashTable* hashTable,
jnc_StdMapEntry* entry
);
bool_t
jnc_StdHashTable_removeKey(
jnc_StdHashTable* hashTable,
jnc_Variant key
);
static
jnc_StdMapEntry*
jnc_StdMapEntry_getNext(jnc_StdMapEntry* entry);
static
jnc_StdMapEntry*
jnc_StdMapEntry_getPrev(jnc_StdMapEntry* entry);
static
size_t
jnc_StdMap_getItemCount(jnc_StdMap* map);
static
bool_t
jnc_StdMap_isEmpty(jnc_StdMap* map);
static
jnc_StdMapEntry*
jnc_StdMap_getHead(jnc_StdMap* map);
static
jnc_StdMapEntry*
jnc_StdMap_getTail(jnc_StdMap* map);
jnc_StdRbTree*
jnc_createStdRbTree(
jnc_Runtime* runtime,
jnc_StdCmpFunc* cmpFunc
);
void
jnc_StdRbTree_clear(jnc_StdRbTree* RbTree);
jnc_StdMapEntry*
jnc_StdRbTree_find(
jnc_StdRbTree* RbTree,
jnc_Variant key
);
jnc_StdMapEntry*
jnc_StdRbTree_add(
jnc_StdRbTree* RbTree,
jnc_Variant key,
jnc_Variant value
);
void
jnc_StdRbTree_remove(
jnc_StdRbTree* RbTree,
jnc_StdMapEntry* entry
);
bool_t
jnc_StdRbTree_removeKey(
jnc_StdRbTree* RbTree,
jnc_Variant key
);
static
bool_t
jnc_String_isEmpty(const jnc_String* string);
bool_t
jnc_String_isEqual(
const jnc_String* string,
const jnc_String* string2
);
bool_t
jnc_String_isEqualIgnoreCase(
const jnc_String* string,
const jnc_String* string2
);
int
jnc_String_cmp(
const jnc_String* string,
const jnc_String* string2
);
int
jnc_String_cmpIgnoreCase(
const jnc_String* string,
const jnc_String* string2
);
size_t
jnc_String_hash(const jnc_String* string);
size_t
jnc_String_hashIgnoreCase(const jnc_String* string);
jnc_DataPtr
jnc_String_sz(const jnc_String* string);
static
jnc_DataPtr
jnc_String_szn(const jnc_String* string);
void
jnc_String_setPtr(
jnc_String* string,
jnc_DataPtr ptr,
size_t length
);
uint_t
jnc_getTypeKindFlags(jnc_TypeKind typeKind);
const char*
jnc_getPtrTypeFlagString_v(uint_t flags);
const char*
jnc_getDataPtrTypeKindString(jnc_DataPtrTypeKind ptrTypeKind);
jnc_TypeKind
jnc_Type_getTypeKind(jnc_Type* type);
static
uint_t
jnc_Type_getTypeKindFlags(jnc_Type* type);
size_t
jnc_Type_getSize(jnc_Type* type);
const char*
jnc_Type_getTypeString(jnc_Type* type);
const char*
jnc_Type_getTypeStringPrefix(jnc_Type* type);
const char*
jnc_Type_getTypeStringSuffix(jnc_Type* type);
int
jnc_Type_cmp(
jnc_Type* type,
jnc_Type* type2
);
jnc_ArrayType*
jnc_Type_getArrayType(
jnc_Type* type,
size_t elementCount
);
jnc_DataPtrType*
jnc_Type_getBitFieldDataPtrType(
jnc_Type* type,
uint_t bitOffset,
uint_t bitCount,
jnc_TypeKind typeKind,
jnc_DataPtrTypeKind ptrTypeKind,
uint_t flags
);
jnc_DataPtrType*
jnc_Type_getDataPtrType(
jnc_Type* type,
jnc_TypeKind typeKind,
jnc_DataPtrTypeKind ptrTypeKind,
uint_t flags
);
bool_t
jnc_Type_ensureNoImports(jnc_Type* type);
bool_t
jnc_Type_ensureLayout(jnc_Type* type);
void
jnc_Type_markGcRoots(
jnc_Type* type,
const void* p,
jnc_GcHeap* gcHeap
);
jnc_DataPtrTypeKind
jnc_DataPtrType_getPtrTypeKind(jnc_DataPtrType* type);
jnc_Type*
jnc_DataPtrType_getTargetType(jnc_DataPtrType* type);
uint_t
jnc_DataPtrType_getBitOffset(jnc_DataPtrType* type);
uint_t
jnc_DataPtrType_getBitCount(jnc_DataPtrType* type);
static
bool_t
jnc_isCharPtrType(jnc_Type* type);
static
bool_t
jnc_isDerivableTypePtrType(jnc_Type* type);
static
bool_t
jnc_isArrayRefType(jnc_Type* type);
static
bool_t
jnc_isDataPtrType(
jnc_Type* type,
jnc_DataPtrTypeKind kind
);
jnc_ExtensionLib*
jnc_Unit_getLib(jnc_Unit* unit);
const char*
jnc_Unit_getFilePath(jnc_Unit* unit);
const char*
jnc_Unit_getFileName(jnc_Unit* unit);
const char*
jnc_Unit_getDir(jnc_Unit* unit);
uint_t
jnc_Variable_getPtrTypeFlags(jnc_Variable* variable);
bool_t
jnc_Variable_hasInitializer(jnc_Variable* variable);
const char*
jnc_Variable_getInitializerString_v(jnc_Variable* variable);
bool_t
jnc_Variant_cast(
const jnc_Variant* variant,
jnc_Type* type,
void* buffer
);
bool_t
jnc_Variant_unaryOperator(
const jnc_Variant* variant,
jnc_UnOpKind opKind,
jnc_Variant* result
);
bool_t
jnc_Variant_binaryOperator(
const jnc_Variant* variant,
const jnc_Variant* variant2,
jnc_BinOpKind opKind,
jnc_Variant* result
);
bool_t
jnc_Variant_relationalOperator(
const jnc_Variant* variant,
const jnc_Variant* variant2,
jnc_BinOpKind opKind,
bool_t* result
);
bool_t
jnc_Variant_getMember(
const jnc_Variant* variant,
const char* name,
jnc_Variant* result
);
bool_t
jnc_Variant_setMember(
jnc_Variant* variant,
const char* name,
jnc_Variant value
);
bool_t
jnc_Variant_getElement(
const jnc_Variant* variant,
size_t index,
jnc_Variant* result
);
bool_t
jnc_Variant_setElement(
jnc_Variant* variant,
size_t index,
jnc_Variant value
);
static
bool_t
jnc_Variant_isNull(const jnc_Variant* variant);
static
bool_t
jnc_Variant_isEqual(
const jnc_Variant* variant,
const jnc_Variant* variant2
);
size_t
jnc_Variant_hash(const jnc_Variant* variant);
bool_t
jnc_Variant_create(
jnc_Variant* variant,
const void* p,
jnc_Type* type
);
const char*
jnc_Variant_format_v(
const jnc_Variant* variant,
const char* fmtSpecifier
);
// macros
#define JNC_ASSERT
#define JNC_BEGIN_CALL_SITE(runtime)
#define JNC_BEGIN_CALL_SITE_IMPL(runtime)
#define JNC_BEGIN_CLASS_TYPE_VTABLE(TypePrefix)
#define JNC_BEGIN_LIB_FUNCTION_MAP(LibPrefix)
#define JNC_BEGIN_LIB_OPAQUE_CLASS_TYPE_TABLE(LibPrefix)
#define JNC_BEGIN_LIB_SOURCE_FILE_TABLE(LibPrefix)
#define JNC_BEGIN_OPAQUE_CLASS_REQUIRE_TABLE(TypePrefix)
#define JNC_BEGIN_TYPE_FUNCTION_MAP(TypePrefix)
#define JNC_CALL_SITE_CATCH()
#define JNC_CALL_SITE_FINALLY()
#define JNC_CLASS_TYPE_VTABLE_ENTRY(function)
#define JNC_DECLARE_CLASS_TYPE(TypePrefix)
#define JNC_DECLARE_CLASS_TYPE_STATIC_METHODS(TypePrefix)
#define JNC_DECLARE_LIB(LibPrefix)
#define JNC_DECLARE_OPAQUE_CLASS_TYPE(TypePrefix)
#define JNC_DECLARE_OPAQUE_CLASS_TYPE_STATIC_METHODS(TypePrefix)
#define JNC_DECLARE_TYPE(TypePrefix)
#define JNC_DECLARE_TYPE_EX( \
TypePrefix, \
JncType \
)
#define JNC_DECLARE_TYPE_STATIC_METHODS(TypePrefix)
#define JNC_DECLARE_TYPE_STATIC_METHODS_EX( \
TypePrefix, \
JncType \
)
#define JNC_DEFINE_CLASS_TYPE( \
TypePrefix, \
qualifiedName, \
libGuid, \
cacheSlot \
)
#define JNC_DEFINE_GUID( \
n, \
l, \
s1, \
s2, \
b1, \
b2, \
b3, \
b4, \
b5, \
b6, \
b7, \
b8 \
)
#define JNC_DEFINE_LIB( \
LibPrefix, \
libGuid, \
libName, \
libDescription \
)
#define JNC_DEFINE_LIB_EX( \
LibPrefix, \
libGuid, \
libName, \
libDescription, \
updateCapabilities \
)
#define JNC_DEFINE_OPAQUE_CLASS_TYPE( \
TypePrefix, \
qualifiedName, \
libGuid, \
cacheSlot, \
Type, \
markOpaqueGcRootsFunc \
)
#define JNC_DEFINE_OPAQUE_CLASS_TYPE_EX( \
TypePrefix, \
qualifiedName, \
libGuid, \
cacheSlot, \
Type, \
markOpaqueGcRootsFunc, \
requireOpaqueItemsFunc, \
isNonCreatable \
)
#define JNC_DEFINE_OPAQUE_CLASS_TYPE_NC( \
TypePrefix, \
qualifiedName, \
libGuid, \
cacheSlot, \
Type, \
markOpaqueGcRootsFunc \
)
#define JNC_DEFINE_OPAQUE_CLASS_TYPE_REQ( \
TypePrefix, \
qualifiedName, \
libGuid, \
cacheSlot, \
Type, \
markOpaqueGcRootsFunc \
)
#define JNC_DEFINE_TYPE( \
TypePrefix, \
qualifiedName, \
libGuid, \
cacheSlot \
)
#define JNC_DEFINE_TYPE_EX( \
TypePrefix, \
JncType, \
qualifiedName, \
libGuid, \
cacheSlot \
)
#define JNC_EDIT_EXPORT
#define JNC_END_CALL_SITE()
#define JNC_END_CALL_SITE_EX(result)
#define JNC_END_CALL_SITE_IMPL()
#define JNC_END_CLASS_TYPE_VTABLE()
#define JNC_END_LIB_FUNCTION_MAP()
#define JNC_END_LIB_OPAQUE_CLASS_TYPE_TABLE()
#define JNC_END_LIB_SOURCE_FILE_TABLE()
#define JNC_END_OPAQUE_CLASS_REQUIRE_TABLE()
#define JNC_END_TYPE_FUNCTION_MAP()
#define JNC_EXTERN_C
#define JNC_FIND_ITEM_IMPL( \
name, \
findMethod, \
itemKind, \
ItemType, \
item \
)
#define JNC_GLOBAL_NAMESPACE_DOXID
#define JNC_INLINE
#define JNC_LIB_IMPORT(fileName)
#define JNC_LIB_OPAQUE_CLASS_TYPE_TABLE_ENTRY(TypePrefix)
#define JNC_LIB_REQUIRE( \
itemKind, \
name \
)
#define JNC_LIB_REQUIRE_EX( \
itemKind, \
name, \
flags \
)
#define JNC_LIB_REQUIRE_TYPE( \
typeKind, \
name \
)
#define JNC_LIB_REQUIRE_TYPE_EX( \
typeKind, \
name, \
flags \
)
#define JNC_LIB_SOURCE_FILE( \
fileName, \
sourceVar \
)
#define JNC_MAP_AUTOGET_PROPERTY( \
name, \
setter \
)
#define JNC_MAP_AUTOGET_PROPERTY_IMPL( \
name, \
findMethod, \
setter \
)
#define JNC_MAP_AUTOGET_PROPERTY_Q( \
name, \
setter \
)
#define JNC_MAP_BINARY_OPERATOR( \
opKind, \
p \
)
#define JNC_MAP_CALL_OPERATOR(p)
#define JNC_MAP_CAST_OPERATOR( \
i, \
p \
)
#define JNC_MAP_CONSTRUCTOR(p)
#define JNC_MAP_CONST_PROPERTY( \
name, \
getter \
)
#define JNC_MAP_CONST_PROPERTY_IMPL( \
name, \
findMethod, \
getter \
)
#define JNC_MAP_CONST_PROPERTY_Q( \
name, \
getter \
)
#define JNC_MAP_DESTRUCTOR(p)
#define JNC_MAP_FUNCTION( \
name, \
p \
)
#define JNC_MAP_FUNCTION_IMPL( \
function, \
p \
)
#define JNC_MAP_FUNCTION_Q( \
name, \
p \
)
#define JNC_MAP_OVERLOAD(p)
#define JNC_MAP_OVERLOADABLE_FUNCTION( \
item, \
p \
)
#define JNC_MAP_PROPERTY( \
name, \
getter, \
setter \
)
#define JNC_MAP_PROPERTY_GETTER( \
prop, \
p \
)
#define JNC_MAP_PROPERTY_IMPL( \
name, \
findMethod, \
getter, \
setter \
)
#define JNC_MAP_PROPERTY_Q( \
name, \
getter, \
setter \
)
#define JNC_MAP_PROPERTY_SETTER( \
prop, \
p \
)
#define JNC_MAP_TYPE(TypePrefix)
#define JNC_MAP_TYPE_IMPL( \
TypePrefix, \
isRequired \
)
#define JNC_MAP_TYPE_REQ(TypePrefix)
#define JNC_MAP_UNARY_OPERATOR( \
opKind, \
p \
)
#define JNC_MAP_VARIABLE( \
name, \
p \
)
#define JNC_MAP_VARIABLE_IMPL( \
name, \
findMethod, \
p \
)
#define JNC_MAP_VARIABLE_Q( \
name, \
p \
)
#define JNC_OPAQUE_CLASS_REQUIRE( \
itemKind, \
name \
)
#define JNC_OPAQUE_CLASS_REQUIRE_TYPE( \
typeKind, \
name \
)
#define JNC_PTR_BITS
#define JNC_PTR_SIZE
#define JNC_RESTORE_SJLJ_FRAME()
#define JNC_SELECT_ANY
#define _JNC_CPP_CLANG
#define _JNC_CPP_GCC
#define _JNC_CPP_MSC
#define _JNC_CPU_AMD64
#define _JNC_CPU_X86
#define _JNC_DEBUG
#define _JNC_OS_BSD
#define _JNC_OS_DARWIN
#define _JNC_OS_LINUX
#define _JNC_OS_POSIX
#define _JNC_OS_SOLARIS
#define _JNC_OS_WIN
#define __STDC_CONSTANT_MACROS
#define __STDC_LIMIT_MACROS
#define jnc_longJmp
#define jnc_pvoid_cast(x)
#define jnc_setJmp