Files
Il2CppInspectorRedux/Il2CppInspector.Common/Cpp/UnityHeaders/21-5.3.5.h
2020-06-30 00:13:18 +02:00

1003 lines
29 KiB
C

typedef struct Il2CppClass Il2CppClass;
typedef struct Il2CppType Il2CppType;
typedef struct EventInfo EventInfo;
typedef struct MethodInfo MethodInfo;
typedef struct FieldInfo FieldInfo;
typedef struct PropertyInfo PropertyInfo;
typedef struct Il2CppAssembly Il2CppAssembly;
typedef struct Il2CppArray Il2CppArray;
typedef struct Il2CppDelegate Il2CppDelegate;
typedef struct Il2CppDomain Il2CppDomain;
typedef struct Il2CppImage Il2CppImage;
typedef struct Il2CppException Il2CppException;
typedef struct Il2CppProfiler Il2CppProfiler;
typedef struct Il2CppObject Il2CppObject;
typedef struct Il2CppReflectionMethod Il2CppReflectionMethod;
typedef struct Il2CppReflectionType Il2CppReflectionType;
typedef struct Il2CppString Il2CppString;
typedef struct Il2CppThread Il2CppThread;
typedef struct Il2CppAsyncResult Il2CppAsyncResult;
typedef enum Il2CppProfileFlags
{
IL2CPP_PROFILE_NONE = 0,
IL2CPP_PROFILE_APPDOMAIN_EVENTS = 1 << 0,
IL2CPP_PROFILE_ASSEMBLY_EVENTS = 1 << 1,
IL2CPP_PROFILE_MODULE_EVENTS = 1 << 2,
IL2CPP_PROFILE_CLASS_EVENTS = 1 << 3,
IL2CPP_PROFILE_JIT_COMPILATION = 1 << 4,
IL2CPP_PROFILE_INLINING = 1 << 5,
IL2CPP_PROFILE_EXCEPTIONS = 1 << 6,
IL2CPP_PROFILE_ALLOCATIONS = 1 << 7,
IL2CPP_PROFILE_GC = 1 << 8,
IL2CPP_PROFILE_THREADS = 1 << 9,
IL2CPP_PROFILE_REMOTING = 1 << 10,
IL2CPP_PROFILE_TRANSITIONS = 1 << 11,
IL2CPP_PROFILE_ENTER_LEAVE = 1 << 12,
IL2CPP_PROFILE_COVERAGE = 1 << 13,
IL2CPP_PROFILE_INS_COVERAGE = 1 << 14,
IL2CPP_PROFILE_STATISTICAL = 1 << 15,
IL2CPP_PROFILE_METHOD_EVENTS = 1 << 16,
IL2CPP_PROFILE_MONITOR_EVENTS = 1 << 17,
IL2CPP_PROFILE_IOMAP_EVENTS = 1 << 18,
IL2CPP_PROFILE_GC_MOVES = 1 << 19
} Il2CppProfileFlags;
typedef enum Il2CppGCEvent
{
IL2CPP_GC_EVENT_START,
IL2CPP_GC_EVENT_MARK_START,
IL2CPP_GC_EVENT_MARK_END,
IL2CPP_GC_EVENT_RECLAIM_START,
IL2CPP_GC_EVENT_RECLAIM_END,
IL2CPP_GC_EVENT_END,
IL2CPP_GC_EVENT_PRE_STOP_WORLD,
IL2CPP_GC_EVENT_POST_STOP_WORLD,
IL2CPP_GC_EVENT_PRE_START_WORLD,
IL2CPP_GC_EVENT_POST_START_WORLD
} Il2CppGCEvent;
typedef enum Il2CppStat
{
IL2CPP_STAT_NEW_OBJECT_COUNT,
IL2CPP_STAT_INITIALIZED_CLASS_COUNT,
IL2CPP_STAT_METHOD_COUNT,
IL2CPP_STAT_CLASS_STATIC_DATA_SIZE,
IL2CPP_STAT_GENERIC_INSTANCE_COUNT,
IL2CPP_STAT_GENERIC_CLASS_COUNT,
IL2CPP_STAT_INFLATED_METHOD_COUNT,
IL2CPP_STAT_INFLATED_TYPE_COUNT,
} Il2CppStat;
typedef enum StackFrameType
{
FRAME_TYPE_MANAGED = 0,
FRAME_TYPE_DEBUGGER_INVOKE = 1,
FRAME_TYPE_MANAGED_TO_NATIVE = 2,
FRAME_TYPE_SENTINEL = 3
} StackFrameType;
typedef enum Il2CppRuntimeUnhandledExceptionPolicy
{
IL2CPP_UNHANDLED_POLICY_LEGACY,
IL2CPP_UNHANDLED_POLICY_CURRENT
} Il2CppRuntimeUnhandledExceptionPolicy;
typedef struct Il2CppStackFrameInfo
{
const MethodInfo *method;
} Il2CppStackFrameInfo;
typedef struct {
void* (*malloc_func)(size_t size);
void* (*aligned_malloc_func)(size_t size, size_t alignment);
void (*free_func)(void *ptr);
void (*aligned_free_func)(void *ptr);
void* (*calloc_func)(size_t nmemb, size_t size);
void* (*realloc_func)(void *ptr, size_t size);
void* (*aligned_realloc_func)(void *ptr, size_t size, size_t alignment);
} Il2CppMemoryCallbacks;
typedef void (*il2cpp_register_object_callback)(Il2CppObject** arr, int size, void* userdata);
typedef void (*il2cpp_WorldChangedCallback)();
typedef void (*Il2CppFrameWalkFunc) (const Il2CppStackFrameInfo *info, void *user_data);
typedef void (*Il2CppProfileFunc) (Il2CppProfiler* prof);
typedef void (*Il2CppProfileMethodFunc) (Il2CppProfiler* prof, const MethodInfo *method);
typedef void (*Il2CppProfileAllocFunc) (Il2CppProfiler* prof, Il2CppObject *obj, Il2CppClass *klass);
typedef void (*Il2CppProfileGCFunc) (Il2CppProfiler* prof, Il2CppGCEvent event, int generation);
typedef void (*Il2CppProfileGCResizeFunc) (Il2CppProfiler* prof, int64_t new_size);
typedef const char* (*Il2CppSetFindPlugInCallback)(const char*);
typedef struct Il2CppManagedMemorySnapshot Il2CppManagedMemorySnapshot;
typedef void (*Il2CppMethodPointer)();
typedef int32_t il2cpp_array_size_t;
typedef uint32_t Il2CppMethodSlot;
const int ipv6AddressSize = 16;
typedef int32_t il2cpp_hresult_t;
typedef enum Il2CppTypeEnum
{
IL2CPP_TYPE_END = 0x00,
IL2CPP_TYPE_VOID = 0x01,
IL2CPP_TYPE_BOOLEAN = 0x02,
IL2CPP_TYPE_CHAR = 0x03,
IL2CPP_TYPE_I1 = 0x04,
IL2CPP_TYPE_U1 = 0x05,
IL2CPP_TYPE_I2 = 0x06,
IL2CPP_TYPE_U2 = 0x07,
IL2CPP_TYPE_I4 = 0x08,
IL2CPP_TYPE_U4 = 0x09,
IL2CPP_TYPE_I8 = 0x0a,
IL2CPP_TYPE_U8 = 0x0b,
IL2CPP_TYPE_R4 = 0x0c,
IL2CPP_TYPE_R8 = 0x0d,
IL2CPP_TYPE_STRING = 0x0e,
IL2CPP_TYPE_PTR = 0x0f,
IL2CPP_TYPE_BYREF = 0x10,
IL2CPP_TYPE_VALUETYPE = 0x11,
IL2CPP_TYPE_CLASS = 0x12,
IL2CPP_TYPE_VAR = 0x13,
IL2CPP_TYPE_ARRAY = 0x14,
IL2CPP_TYPE_GENERICINST= 0x15,
IL2CPP_TYPE_TYPEDBYREF = 0x16,
IL2CPP_TYPE_I = 0x18,
IL2CPP_TYPE_U = 0x19,
IL2CPP_TYPE_FNPTR = 0x1b,
IL2CPP_TYPE_OBJECT = 0x1c,
IL2CPP_TYPE_SZARRAY = 0x1d,
IL2CPP_TYPE_MVAR = 0x1e,
IL2CPP_TYPE_CMOD_REQD = 0x1f,
IL2CPP_TYPE_CMOD_OPT = 0x20,
IL2CPP_TYPE_INTERNAL = 0x21,
IL2CPP_TYPE_MODIFIER = 0x40,
IL2CPP_TYPE_SENTINEL = 0x41,
IL2CPP_TYPE_PINNED = 0x45,
IL2CPP_TYPE_ENUM = 0x55
} Il2CppTypeEnum;
typedef int32_t TypeIndex;
typedef int32_t TypeDefinitionIndex;
typedef int32_t FieldIndex;
typedef int32_t DefaultValueIndex;
typedef int32_t DefaultValueDataIndex;
typedef int32_t CustomAttributeIndex;
typedef int32_t ParameterIndex;
typedef int32_t MethodIndex;
typedef int32_t GenericMethodIndex;
typedef int32_t PropertyIndex;
typedef int32_t EventIndex;
typedef int32_t GenericContainerIndex;
typedef int32_t GenericParameterIndex;
typedef int16_t GenericParameterConstraintIndex;
typedef int32_t NestedTypeIndex;
typedef int32_t InterfacesIndex;
typedef int32_t VTableIndex;
typedef int32_t InterfaceOffsetIndex;
typedef int32_t RGCTXIndex;
typedef int32_t StringIndex;
typedef int32_t StringLiteralIndex;
typedef int32_t GenericInstIndex;
typedef int32_t ImageIndex;
typedef int32_t AssemblyIndex;
typedef int32_t GuidIndex;
const TypeIndex kTypeIndexInvalid = -1;
const TypeDefinitionIndex kTypeDefinitionIndexInvalid = -1;
const DefaultValueDataIndex kDefaultValueIndexNull = -1;
const EventIndex kEventIndexInvalid = -1;
const FieldIndex kFieldIndexInvalid = -1;
const MethodIndex kMethodIndexInvalid = -1;
const PropertyIndex kPropertyIndexInvalid = -1;
const GenericContainerIndex kGenericContainerIndexInvalid = -1;
const GenericParameterIndex kGenericParameterIndexInvalid = -1;
const RGCTXIndex kRGCTXIndexInvalid = -1;
const StringLiteralIndex kStringLiteralIndexInvalid = -1;
const GuidIndex kGuidIndexInvalid = -1;
typedef uint32_t EncodedMethodIndex;
typedef enum Il2CppMetadataUsage
{
kIl2CppMetadataUsageInvalid,
kIl2CppMetadataUsageTypeInfo,
kIl2CppMetadataUsageIl2CppType,
kIl2CppMetadataUsageMethodDef,
kIl2CppMetadataUsageFieldInfo,
kIl2CppMetadataUsageStringLiteral,
kIl2CppMetadataUsageMethodRef,
} Il2CppMetadataUsage;
static inline Il2CppMetadataUsage GetEncodedIndexType (EncodedMethodIndex index)
{
return (Il2CppMetadataUsage)((index & 0xE0000000) >> 29);
}
static inline uint32_t GetDecodedMethodIndex (EncodedMethodIndex index)
{
return index & 0x1FFFFFFFU;
}
typedef struct Il2CppImage Il2CppImage;
typedef struct Il2CppType Il2CppType;
typedef struct Il2CppTypeDefinitionMetadata Il2CppTypeDefinitionMetadata;
typedef union Il2CppRGCTXDefinitionData
{
int32_t rgctxDataDummy;
MethodIndex methodIndex;
TypeIndex typeIndex;
} Il2CppRGCTXDefinitionData;
typedef enum Il2CppRGCTXDataType
{
IL2CPP_RGCTX_DATA_INVALID,
IL2CPP_RGCTX_DATA_TYPE,
IL2CPP_RGCTX_DATA_CLASS,
IL2CPP_RGCTX_DATA_METHOD
} Il2CppRGCTXDataType;
typedef struct Il2CppRGCTXDefinition
{
Il2CppRGCTXDataType type;
Il2CppRGCTXDefinitionData data;
} Il2CppRGCTXDefinition;
typedef struct Il2CppInterfaceOffsetPair
{
TypeIndex interfaceTypeIndex;
int32_t offset;
} Il2CppInterfaceOffsetPair;
typedef struct Il2CppTypeDefinition
{
StringIndex nameIndex;
StringIndex namespaceIndex;
CustomAttributeIndex customAttributeIndex;
TypeIndex byvalTypeIndex;
TypeIndex byrefTypeIndex;
TypeIndex declaringTypeIndex;
TypeIndex parentIndex;
TypeIndex elementTypeIndex;
RGCTXIndex rgctxStartIndex;
int32_t rgctxCount;
GenericContainerIndex genericContainerIndex;
MethodIndex delegateWrapperFromManagedToNativeIndex;
int32_t marshalingFunctionsIndex;
int32_t ccwFunctionIndex;
GuidIndex guidIndex;
uint32_t flags;
FieldIndex fieldStart;
MethodIndex methodStart;
EventIndex eventStart;
PropertyIndex propertyStart;
NestedTypeIndex nestedTypesStart;
InterfacesIndex interfacesStart;
VTableIndex vtableStart;
InterfacesIndex interfaceOffsetsStart;
uint16_t method_count;
uint16_t property_count;
uint16_t field_count;
uint16_t event_count;
uint16_t nested_type_count;
uint16_t vtable_count;
uint16_t interfaces_count;
uint16_t interface_offsets_count;
uint32_t bitfield;
uint32_t token;
} Il2CppTypeDefinition;
typedef struct Il2CppFieldDefinition
{
StringIndex nameIndex;
TypeIndex typeIndex;
CustomAttributeIndex customAttributeIndex;
uint32_t token;
} Il2CppFieldDefinition;
typedef struct Il2CppFieldDefaultValue
{
FieldIndex fieldIndex;
TypeIndex typeIndex;
DefaultValueDataIndex dataIndex;
} Il2CppFieldDefaultValue;
typedef struct Il2CppFieldMarshaledSize
{
FieldIndex fieldIndex;
TypeIndex typeIndex;
int32_t size;
} Il2CppFieldMarshaledSize;
typedef struct Il2CppFieldRef
{
TypeIndex typeIndex;
FieldIndex fieldIndex;
} Il2CppFieldRef;
typedef struct Il2CppParameterDefinition
{
StringIndex nameIndex;
uint32_t token;
CustomAttributeIndex customAttributeIndex;
TypeIndex typeIndex;
} Il2CppParameterDefinition;
typedef struct Il2CppParameterDefaultValue
{
ParameterIndex parameterIndex;
TypeIndex typeIndex;
DefaultValueDataIndex dataIndex;
} Il2CppParameterDefaultValue;
typedef struct Il2CppMethodDefinition
{
StringIndex nameIndex;
TypeDefinitionIndex declaringType;
TypeIndex returnType;
ParameterIndex parameterStart;
CustomAttributeIndex customAttributeIndex;
GenericContainerIndex genericContainerIndex;
MethodIndex methodIndex;
MethodIndex invokerIndex;
MethodIndex delegateWrapperIndex;
RGCTXIndex rgctxStartIndex;
int32_t rgctxCount;
uint32_t token;
uint16_t flags;
uint16_t iflags;
uint16_t slot;
uint16_t parameterCount;
} Il2CppMethodDefinition;
typedef struct Il2CppEventDefinition
{
StringIndex nameIndex;
TypeIndex typeIndex;
MethodIndex add;
MethodIndex remove;
MethodIndex raise;
CustomAttributeIndex customAttributeIndex;
uint32_t token;
} Il2CppEventDefinition;
typedef struct Il2CppPropertyDefinition
{
StringIndex nameIndex;
MethodIndex get;
MethodIndex set;
uint32_t attrs;
CustomAttributeIndex customAttributeIndex;
uint32_t token;
} Il2CppPropertyDefinition;
typedef struct Il2CppMethodSpec
{
MethodIndex methodDefinitionIndex;
GenericInstIndex classIndexIndex;
GenericInstIndex methodIndexIndex;
} Il2CppMethodSpec;
typedef struct Il2CppStringLiteral
{
uint32_t length;
StringLiteralIndex dataIndex;
} Il2CppStringLiteral;
typedef struct Il2CppGenericMethodIndices
{
MethodIndex methodIndex;
MethodIndex invokerIndex;
} Il2CppGenericMethodIndices;
typedef struct Il2CppGenericMethodFunctionsDefinitions
{
GenericMethodIndex genericMethodIndex;
Il2CppGenericMethodIndices indices;
} Il2CppGenericMethodFunctionsDefinitions;
const int kPublicKeyByteLength = 8;
typedef struct Il2CppAssemblyName
{
StringIndex nameIndex;
StringIndex cultureIndex;
StringIndex hashValueIndex;
StringIndex publicKeyIndex;
uint32_t hash_alg;
int32_t hash_len;
uint32_t flags;
int32_t major;
int32_t minor;
int32_t build;
int32_t revision;
uint8_t publicKeyToken[8];
} Il2CppAssemblyName;
typedef struct Il2CppImageDefinition
{
StringIndex nameIndex;
AssemblyIndex assemblyIndex;
TypeDefinitionIndex typeStart;
uint32_t typeCount;
MethodIndex entryPointIndex;
uint32_t token;
} Il2CppImageDefinition;
typedef struct Il2CppAssembly
{
ImageIndex imageIndex;
CustomAttributeIndex customAttributeIndex;
int32_t referencedAssemblyStart;
int32_t referencedAssemblyCount;
Il2CppAssemblyName aname;
} Il2CppAssembly;
typedef struct Il2CppMetadataUsageList
{
uint32_t start;
uint32_t count;
} Il2CppMetadataUsageList;
typedef struct Il2CppMetadataUsagePair
{
uint32_t destinationIndex;
uint32_t encodedSourceIndex;
} Il2CppMetadataUsagePair;
typedef struct Il2CppCustomAttributeTypeRange
{
int32_t start;
int32_t count;
} Il2CppCustomAttributeTypeRange;
#pragma pack(push, p1,4)
typedef struct Il2CppGlobalMetadataHeader
{
int32_t sanity;
int32_t version;
int32_t stringLiteralOffset;
int32_t stringLiteralCount;
int32_t stringLiteralDataOffset;
int32_t stringLiteralDataCount;
int32_t stringOffset;
int32_t stringCount;
int32_t eventsOffset;
int32_t eventsCount;
int32_t propertiesOffset;
int32_t propertiesCount;
int32_t methodsOffset;
int32_t methodsCount;
int32_t parameterDefaultValuesOffset;
int32_t parameterDefaultValuesCount;
int32_t fieldDefaultValuesOffset;
int32_t fieldDefaultValuesCount;
int32_t fieldAndParameterDefaultValueDataOffset;
int32_t fieldAndParameterDefaultValueDataCount;
int32_t fieldMarshaledSizesOffset;
int32_t fieldMarshaledSizesCount;
int32_t parametersOffset;
int32_t parametersCount;
int32_t fieldsOffset;
int32_t fieldsCount;
int32_t genericParametersOffset;
int32_t genericParametersCount;
int32_t genericParameterConstraintsOffset;
int32_t genericParameterConstraintsCount;
int32_t genericContainersOffset;
int32_t genericContainersCount;
int32_t nestedTypesOffset;
int32_t nestedTypesCount;
int32_t interfacesOffset;
int32_t interfacesCount;
int32_t vtableMethodsOffset;
int32_t vtableMethodsCount;
int32_t interfaceOffsetsOffset;
int32_t interfaceOffsetsCount;
int32_t typeDefinitionsOffset;
int32_t typeDefinitionsCount;
int32_t rgctxEntriesOffset;
int32_t rgctxEntriesCount;
int32_t imagesOffset;
int32_t imagesCount;
int32_t assembliesOffset;
int32_t assembliesCount;
int32_t metadataUsageListsOffset;
int32_t metadataUsageListsCount;
int32_t metadataUsagePairsOffset;
int32_t metadataUsagePairsCount;
int32_t fieldRefsOffset;
int32_t fieldRefsCount;
int32_t referencedAssembliesOffset;
int32_t referencedAssembliesCount;
int32_t attributesInfoOffset;
int32_t attributesInfoCount;
int32_t attributeTypesOffset;
int32_t attributeTypesCount;
} Il2CppGlobalMetadataHeader;
#pragma pack(pop, p1)
typedef struct Il2CppClass Il2CppClass;
typedef struct MethodInfo MethodInfo;
typedef struct Il2CppType Il2CppType;
typedef struct Il2CppArrayType
{
const Il2CppType* etype;
uint8_t rank;
uint8_t numsizes;
uint8_t numlobounds;
int *sizes;
int *lobounds;
} Il2CppArrayType;
typedef struct Il2CppGenericInst
{
uint32_t type_argc;
const Il2CppType **type_argv;
} Il2CppGenericInst;
typedef struct Il2CppGenericContext
{
const Il2CppGenericInst *class_inst;
const Il2CppGenericInst *method_inst;
} Il2CppGenericContext;
typedef struct Il2CppGenericParameter
{
GenericContainerIndex ownerIndex;
StringIndex nameIndex;
GenericParameterConstraintIndex constraintsStart;
int16_t constraintsCount;
uint16_t num;
uint16_t flags;
} Il2CppGenericParameter;
typedef struct Il2CppGenericContainer
{
int32_t ownerIndex;
int32_t type_argc;
int32_t is_method;
GenericParameterIndex genericParameterStart;
} Il2CppGenericContainer;
typedef struct Il2CppGenericClass
{
TypeDefinitionIndex typeDefinitionIndex;
Il2CppGenericContext context;
Il2CppClass *cached_class;
} Il2CppGenericClass;
typedef struct Il2CppGenericMethod
{
const MethodInfo* methodDefinition;
Il2CppGenericContext context;
} Il2CppGenericMethod;
typedef struct Il2CppType
{
union {
void* dummy;
TypeDefinitionIndex klassIndex;
const Il2CppType *type;
Il2CppArrayType *array;
GenericParameterIndex genericParameterIndex;
Il2CppGenericClass *generic_class;
} data;
unsigned int attrs : 16;
Il2CppTypeEnum type : 8;
unsigned int num_mods : 6;
unsigned int byref : 1;
unsigned int pinned : 1;
} Il2CppType;
typedef enum {
IL2CPP_CALL_DEFAULT,
IL2CPP_CALL_C,
IL2CPP_CALL_STDCALL,
IL2CPP_CALL_THISCALL,
IL2CPP_CALL_FASTCALL,
IL2CPP_CALL_VARARG
} Il2CppCallConvention;
typedef enum Il2CppCharSet
{
CHARSET_ANSI,
CHARSET_UNICODE
} Il2CppCharSet;
typedef struct PInvokeArguments
{
const char* moduleName;
const char* entryPoint;
Il2CppCallConvention callingConvention;
Il2CppCharSet charSet;
int parameterSize;
bool isNoMangle;
} PInvokeArguments;
typedef struct Il2CppClass Il2CppClass;
typedef struct Il2CppGuid Il2CppGuid;
typedef struct Il2CppImage Il2CppImage;
typedef struct Il2CppAssembly Il2CppAssembly;
typedef struct Il2CppAppDomain Il2CppAppDomain;
typedef struct Il2CppDelegate Il2CppDelegate;
typedef struct Il2CppAppContext Il2CppAppContext;
typedef struct Il2CppNameToTypeDefinitionIndexHashTable Il2CppNameToTypeDefinitionIndexHashTable;
typedef enum Il2CppTypeNameFormat
{
IL2CPP_TYPE_NAME_FORMAT_IL,
IL2CPP_TYPE_NAME_FORMAT_REFLECTION,
IL2CPP_TYPE_NAME_FORMAT_FULL_NAME,
IL2CPP_TYPE_NAME_FORMAT_ASSEMBLY_QUALIFIED
} Il2CppTypeNameFormat;
extern bool g_il2cpp_is_fully_initialized;
typedef struct {
Il2CppImage *corlib;
Il2CppClass *object_class;
Il2CppClass *byte_class;
Il2CppClass *void_class;
Il2CppClass *boolean_class;
Il2CppClass *sbyte_class;
Il2CppClass *int16_class;
Il2CppClass *uint16_class;
Il2CppClass *int32_class;
Il2CppClass *uint32_class;
Il2CppClass *int_class;
Il2CppClass *uint_class;
Il2CppClass *int64_class;
Il2CppClass *uint64_class;
Il2CppClass *single_class;
Il2CppClass *double_class;
Il2CppClass *char_class;
Il2CppClass *string_class;
Il2CppClass *enum_class;
Il2CppClass *array_class;
Il2CppClass *delegate_class;
Il2CppClass *multicastdelegate_class;
Il2CppClass *asyncresult_class;
Il2CppClass *manualresetevent_class;
Il2CppClass *typehandle_class;
Il2CppClass *fieldhandle_class;
Il2CppClass *methodhandle_class;
Il2CppClass *systemtype_class;
Il2CppClass *monotype_class;
Il2CppClass *exception_class;
Il2CppClass *threadabortexception_class;
Il2CppClass *thread_class;
Il2CppClass *appdomain_class;
Il2CppClass *appdomain_setup_class;
Il2CppClass *field_info_class;
Il2CppClass *method_info_class;
Il2CppClass *property_info_class;
Il2CppClass *event_info_class;
Il2CppClass *mono_event_info_class;
Il2CppClass *stringbuilder_class;
Il2CppClass *stack_frame_class;
Il2CppClass *stack_trace_class;
Il2CppClass *marshal_class;
Il2CppClass *typed_reference_class;
Il2CppClass *marshalbyrefobject_class;
Il2CppClass *generic_ilist_class;
Il2CppClass *generic_icollection_class;
Il2CppClass *generic_ienumerable_class;
Il2CppClass *generic_nullable_class;
Il2CppClass *il2cpp_com_object_class;
Il2CppClass *customattribute_data_class;
Il2CppClass *version;
Il2CppClass *culture_info;
Il2CppClass *async_call_class;
Il2CppClass *assembly_class;
Il2CppClass *assembly_name_class;
Il2CppClass *enum_info_class;
Il2CppClass *mono_field_class;
Il2CppClass *mono_method_class;
Il2CppClass *mono_method_info_class;
Il2CppClass *mono_property_info_class;
Il2CppClass *parameter_info_class;
Il2CppClass *module_class;
Il2CppClass *pointer_class;
Il2CppClass *system_exception_class;
Il2CppClass *argument_exception_class;
Il2CppClass *wait_handle_class;
Il2CppClass *safe_handle_class;
Il2CppClass *sort_key_class;
Il2CppClass *dbnull_class;
Il2CppClass *error_wrapper_class;
Il2CppClass *missing_class;
Il2CppClass *value_type_class;
} Il2CppDefaults;
extern Il2CppDefaults il2cpp_defaults;
typedef struct Il2CppClass Il2CppClass;
typedef struct MethodInfo MethodInfo;
typedef struct FieldInfo FieldInfo;
typedef struct Il2CppObject Il2CppObject;
typedef struct MemberInfo MemberInfo;
typedef struct CustomAttributesCache
{
int count;
Il2CppObject** attributes;
} CustomAttributesCache;
typedef struct CustomAttributeTypeCache
{
int count;
Il2CppClass** attributeTypes;
} CustomAttributeTypeCache;
typedef void (*CustomAttributesCacheGenerator)(CustomAttributesCache*);
const int THREAD_STATIC_FIELD_OFFSET = -1;
typedef struct FieldInfo
{
const char* name;
const Il2CppType* type;
Il2CppClass *parent;
int32_t offset;
CustomAttributeIndex customAttributeIndex;
uint32_t token;
} FieldInfo;
typedef struct PropertyInfo
{
Il2CppClass *parent;
const char *name;
const MethodInfo *get;
const MethodInfo *set;
uint32_t attrs;
CustomAttributeIndex customAttributeIndex;
uint32_t token;
} PropertyInfo;
typedef struct EventInfo
{
const char* name;
const Il2CppType* eventType;
Il2CppClass* parent;
const MethodInfo* add;
const MethodInfo* remove;
const MethodInfo* raise;
CustomAttributeIndex customAttributeIndex;
uint32_t token;
} EventInfo;
typedef struct ParameterInfo
{
const char* name;
int32_t position;
uint32_t token;
CustomAttributeIndex customAttributeIndex;
const Il2CppType* parameter_type;
} ParameterInfo;
typedef void* (*InvokerMethod)(const MethodInfo*, void*, void**);
typedef union Il2CppRGCTXData
{
void* rgctxDataDummy;
const MethodInfo* method;
const Il2CppType* type;
Il2CppClass* klass;
} Il2CppRGCTXData;
typedef struct MethodInfo
{
Il2CppMethodPointer method;
InvokerMethod invoker_method;
const char* name;
Il2CppClass *declaring_type;
const Il2CppType *return_type;
const ParameterInfo* parameters;
union
{
const Il2CppRGCTXData* rgctx_data;
const Il2CppMethodDefinition* methodDefinition;
};
union
{
const Il2CppGenericMethod* genericMethod;
const Il2CppGenericContainer* genericContainer;
};
CustomAttributeIndex customAttributeIndex;
uint32_t token;
uint16_t flags;
uint16_t iflags;
uint16_t slot;
uint8_t parameters_count;
uint8_t is_generic : 1;
uint8_t is_inflated : 1;
} MethodInfo;
typedef struct Il2CppRuntimeInterfaceOffsetPair
{
Il2CppClass* interfaceType;
int32_t offset;
} Il2CppRuntimeInterfaceOffsetPair;
typedef struct Il2CppClass
{
const Il2CppImage* image;
void* gc_desc;
const char* name;
const char* namespaze;
const Il2CppType* byval_arg;
const Il2CppType* this_arg;
Il2CppClass* element_class;
Il2CppClass* castClass;
Il2CppClass* declaringType;
Il2CppClass* parent;
Il2CppGenericClass *generic_class;
const Il2CppTypeDefinition* typeDefinition;
FieldInfo* fields;
const EventInfo* events;
const PropertyInfo* properties;
const MethodInfo** methods;
Il2CppClass** nestedTypes;
Il2CppClass** implementedInterfaces;
const MethodInfo** vtable;
Il2CppRuntimeInterfaceOffsetPair* interfaceOffsets;
void* static_fields;
const Il2CppRGCTXData* rgctx_data;
Il2CppClass** typeHierarchy;
uint32_t cctor_started;
uint32_t cctor_finished;
__attribute__((aligned(8))) uint64_t cctor_thread;
GenericContainerIndex genericContainerIndex;
CustomAttributeIndex customAttributeIndex;
uint32_t instance_size;
uint32_t actualSize;
uint32_t element_size;
int32_t native_size;
uint32_t static_fields_size;
uint32_t thread_static_fields_size;
int32_t thread_static_fields_offset;
uint32_t flags;
uint32_t token;
uint16_t method_count;
uint16_t property_count;
uint16_t field_count;
uint16_t event_count;
uint16_t nested_type_count;
uint16_t vtable_count;
uint16_t interfaces_count;
uint16_t interface_offsets_count;
uint8_t typeHierarchyDepth;
uint8_t rank;
uint8_t minimumAlignment;
uint8_t packingSize;
uint8_t valuetype : 1;
uint8_t initialized : 1;
uint8_t enumtype : 1;
uint8_t is_generic : 1;
uint8_t has_references : 1;
uint8_t init_pending : 1;
uint8_t size_inited : 1;
uint8_t has_finalize : 1;
uint8_t has_cctor : 1;
uint8_t is_blittable : 1;
uint8_t is_import : 1;
} Il2CppClass;
typedef struct Il2CppClass_0 {
const Il2CppImage* image;
void* gc_desc;
const char* name;
const char* namespaze;
const Il2CppType* byval_arg;
const Il2CppType* this_arg;
Il2CppClass* element_class;
Il2CppClass* castClass;
Il2CppClass* declaringType;
Il2CppClass* parent;
Il2CppGenericClass * generic_class;
const Il2CppTypeDefinition* typeDefinition;
FieldInfo* fields;
const EventInfo* events;
const PropertyInfo* properties;
const MethodInfo** methods;
Il2CppClass** nestedTypes;
Il2CppClass** implementedInterfaces;
} Il2CppClass_0;
typedef struct Il2CppClass_1 {
Il2CppClass** typeHierarchy;
uint32_t cctor_started;
uint32_t cctor_finished;
#ifdef IS_32BIT
uint32_t cctor_thread__padding;
uint32_t cctor_thread;
uint32_t cctor_thread__hi;
#else
__attribute__((aligned(8))) uint64_t cctor_thread;
#endif
GenericContainerIndex genericContainerIndex;
CustomAttributeIndex customAttributeIndex;
uint32_t instance_size;
uint32_t actualSize;
uint32_t element_size;
int32_t native_size;
uint32_t static_fields_size;
uint32_t thread_static_fields_size;
int32_t thread_static_fields_offset;
uint32_t flags;
uint32_t token;
uint16_t method_count;
uint16_t property_count;
uint16_t field_count;
uint16_t event_count;
uint16_t nested_type_count;
uint16_t vtable_count;
uint16_t interfaces_count;
uint16_t interface_offsets_count;
uint8_t typeHierarchyDepth;
uint8_t rank;
uint8_t minimumAlignment;
uint8_t packingSize;
uint8_t valuetype : 1;
uint8_t initialized : 1;
uint8_t enumtype : 1;
uint8_t is_generic : 1;
uint8_t has_references : 1;
uint8_t init_pending : 1;
uint8_t size_inited : 1;
uint8_t has_finalize : 1;
uint8_t has_cctor : 1;
uint8_t is_blittable : 1;
uint8_t is_import : 1;
} Il2CppClass_1;
typedef struct __attribute__((aligned(8))) Il2CppClass_Merged {
struct Il2CppClass_0 _0;
const MethodInfo** vtable;
Il2CppRuntimeInterfaceOffsetPair* interfaceOffsets;
void* static_fields;
const Il2CppRGCTXData* rgctx_data;
struct Il2CppClass_1 _1;
} Il2CppClass_Merged;
typedef struct Il2CppTypeDefinitionSizes
{
uint32_t instance_size;
int32_t native_size;
uint32_t static_fields_size;
uint32_t thread_static_fields_size;
} Il2CppTypeDefinitionSizes;
typedef struct Il2CppDomain
{
Il2CppAppDomain* domain;
Il2CppObject* setup;
Il2CppAppContext* default_context;
const char* friendly_name;
uint32_t domain_id;
} Il2CppDomain;
typedef struct Il2CppImage
{
const char* name;
AssemblyIndex assemblyIndex;
TypeDefinitionIndex typeStart;
uint32_t typeCount;
MethodIndex entryPointIndex;
Il2CppNameToTypeDefinitionIndexHashTable* nameToClassHashTable;
uint32_t token;
} Il2CppImage;
typedef struct Il2CppMarshalingFunctions
{
Il2CppMethodPointer marshal_to_native_func;
Il2CppMethodPointer marshal_from_native_func;
Il2CppMethodPointer marshal_cleanup_func;
} Il2CppMarshalingFunctions;
typedef struct Il2CppCodeGenOptions
{
bool enablePrimitiveValueTypeGenericSharing;
} Il2CppCodeGenOptions;
typedef struct Il2CppCodeRegistration
{
uint32_t methodPointersCount;
const Il2CppMethodPointer* methodPointers;
uint32_t delegateWrappersFromNativeToManagedCount;
const Il2CppMethodPointer** delegateWrappersFromNativeToManaged;
uint32_t delegateWrappersFromManagedToNativeCount;
const Il2CppMethodPointer* delegateWrappersFromManagedToNative;
uint32_t marshalingFunctionsCount;
const Il2CppMarshalingFunctions* marshalingFunctions;
uint32_t ccwMarshalingFunctionsCount;
const Il2CppMethodPointer* ccwMarshalingFunctions;
uint32_t genericMethodPointersCount;
const Il2CppMethodPointer* genericMethodPointers;
uint32_t invokerPointersCount;
const InvokerMethod* invokerPointers;
CustomAttributeIndex customAttributeCount;
const CustomAttributesCacheGenerator* customAttributeGenerators;
GuidIndex guidCount;
const Il2CppGuid** guids;
} Il2CppCodeRegistration;
typedef struct Il2CppMetadataRegistration
{
int32_t genericClassesCount;
Il2CppGenericClass* const * genericClasses;
int32_t genericInstsCount;
const Il2CppGenericInst* const * genericInsts;
int32_t genericMethodTableCount;
const Il2CppGenericMethodFunctionsDefinitions* genericMethodTable;
int32_t typesCount;
const Il2CppType* const * types;
int32_t methodSpecsCount;
const Il2CppMethodSpec* methodSpecs;
FieldIndex fieldOffsetsCount;
const int32_t* fieldOffsets;
TypeDefinitionIndex typeDefinitionsSizesCount;
const Il2CppTypeDefinitionSizes* typeDefinitionsSizes;
const size_t metadataUsagesCount;
void** const* metadataUsages;
} Il2CppMetadataRegistration;
typedef struct Il2CppRuntimeStats
{
uint64_t new_object_count;
uint64_t initialized_class_count;
uint64_t method_count;
uint64_t class_static_data_size;
uint64_t generic_instance_count;
uint64_t generic_class_count;
uint64_t inflated_method_count;
uint64_t inflated_type_count;
bool enabled;
} Il2CppRuntimeStats;
extern Il2CppRuntimeStats il2cpp_runtime_stats;
struct MonitorData;
struct Il2CppObject {
struct Il2CppClass *klass;
struct MonitorData *monitor;
};
typedef int32_t il2cpp_array_lower_bound_t;
struct Il2CppArrayBounds {
il2cpp_array_size_t length;
il2cpp_array_lower_bound_t lower_bound;
};
struct Il2CppArray {
struct Il2CppObject obj;
struct Il2CppArrayBounds *bounds;
il2cpp_array_size_t max_length;
/* vector must be 8-byte aligned.
On 64-bit platforms, this happens naturally.
On 32-bit platforms, sizeof(obj)=8, sizeof(bounds)=4 and sizeof(max_length)=4 so it's also already aligned. */
void *vector[32];
};
struct Il2CppString {
struct Il2CppObject object;
int32_t length;
uint16_t chars[32];
};