From 4473a5225cc6bb96ea33f2ee309375339db2fbe0 Mon Sep 17 00:00:00 2001 From: Katy Coe Date: Sat, 25 Jul 2020 05:09:47 +0200 Subject: [PATCH] Unity: Update type header names for 2018.4.25 and 2019.4.5 --- .../{23-5.6.0-5.6.7.h => 23-5.6.0.h} | 0 .../Cpp/UnityHeaders/23-5.6.1-5.6.7.h | 1101 +++++++++++++++++ ...2018.4.24.h => 24.1-2018.4.18-2018.4.25.h} | 0 ...3-2019.3.7-.h => 24.3-2019.3.7-2019.4.5.h} | 0 4 files changed, 1101 insertions(+) rename Il2CppInspector.Common/Cpp/UnityHeaders/{23-5.6.0-5.6.7.h => 23-5.6.0.h} (100%) create mode 100644 Il2CppInspector.Common/Cpp/UnityHeaders/23-5.6.1-5.6.7.h rename Il2CppInspector.Common/Cpp/UnityHeaders/{24.1-2018.4.18-2018.4.24.h => 24.1-2018.4.18-2018.4.25.h} (100%) rename Il2CppInspector.Common/Cpp/UnityHeaders/{24.3-2019.3.7-.h => 24.3-2019.3.7-2019.4.5.h} (100%) diff --git a/Il2CppInspector.Common/Cpp/UnityHeaders/23-5.6.0-5.6.7.h b/Il2CppInspector.Common/Cpp/UnityHeaders/23-5.6.0.h similarity index 100% rename from Il2CppInspector.Common/Cpp/UnityHeaders/23-5.6.0-5.6.7.h rename to Il2CppInspector.Common/Cpp/UnityHeaders/23-5.6.0.h diff --git a/Il2CppInspector.Common/Cpp/UnityHeaders/23-5.6.1-5.6.7.h b/Il2CppInspector.Common/Cpp/UnityHeaders/23-5.6.1-5.6.7.h new file mode 100644 index 0000000..33ea65f --- /dev/null +++ b/Il2CppInspector.Common/Cpp/UnityHeaders/23-5.6.1-5.6.7.h @@ -0,0 +1,1101 @@ +typedef uint32_t Il2CppMethodSlot; +const int ipv6AddressSize = 16; +typedef int32_t il2cpp_hresult_t; +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 uint16_t Il2CppChar; +typedef char Il2CppNativeChar; +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 Il2CppNativeChar* (*Il2CppSetFindPlugInCallback)(const Il2CppNativeChar*); +typedef void (*Il2CppLogCallback)(const char*); +typedef struct Il2CppManagedMemorySnapshot Il2CppManagedMemorySnapshot; +typedef void (*Il2CppMethodPointer)(); +typedef int32_t il2cpp_array_size_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 InteropDataIndex; +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 InteropDataIndex kInteropDataIndexInvalid = -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; + 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 reversePInvokeWrapperIndex; + 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; +typedef struct Il2CppRange +{ + int32_t start; + int32_t length; +} Il2CppRange; +typedef struct Il2CppWindowsRuntimeTypeNamePair +{ + StringIndex nameIndex; + TypeIndex typeIndex; +} Il2CppWindowsRuntimeTypeNamePair; +#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; + int32_t unresolvedVirtualCallParameterTypesOffset; + int32_t unresolvedVirtualCallParameterTypesCount; + int32_t unresolvedVirtualCallParameterRangesOffset; + int32_t unresolvedVirtualCallParameterRangesCount; + int32_t windowsRuntimeTypeNamesOffset; + int32_t windowsRuntimeTypeNamesSize; +} 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 Il2CppClass Il2CppClass; +typedef struct Il2CppGuid Il2CppGuid; +typedef struct Il2CppImage Il2CppImage; +typedef struct Il2CppAssembly Il2CppAssembly; +typedef struct Il2CppAppDomain Il2CppAppDomain; +typedef struct Il2CppAppDomainSetup Il2CppAppDomainSetup; +typedef struct Il2CppDelegate Il2CppDelegate; +typedef struct Il2CppAppContext Il2CppAppContext; +typedef struct Il2CppNameToTypeDefinitionIndexHashTable Il2CppNameToTypeDefinitionIndexHashTable; +typedef struct VirtualInvokeData +{ + Il2CppMethodPointer methodPtr; + const MethodInfo* method; +} VirtualInvokeData; +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; + Il2CppClass* ireference_class; + Il2CppClass* ikey_value_pair_class; + Il2CppClass* key_value_pair_class; + Il2CppClass* windows_foundation_uri_class; + Il2CppClass* windows_foundation_iuri_runtime_class_class; + Il2CppClass* system_uri_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 methodPointer; + 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 void (*PInvokeMarshalToNativeFunc)(void* managedStructure, void* marshaledStructure); +typedef void (*PInvokeMarshalFromNativeFunc)(void* marshaledStructure, void* managedStructure); +typedef void (*PInvokeMarshalCleanupFunc)(void* marshaledStructure); +typedef struct Il2CppIUnknown* (*CreateCCWFunc)(Il2CppObject* obj); +typedef struct Il2CppInteropData +{ + Il2CppMethodPointer delegatePInvokeWrapperFunction; + PInvokeMarshalToNativeFunc pinvokeMarshalToNativeFunction; + PInvokeMarshalFromNativeFunc pinvokeMarshalFromNativeFunction; + PInvokeMarshalCleanupFunc pinvokeMarshalCleanupFunction; + CreateCCWFunc createCCWFunction; + const Il2CppGuid* guid; + const Il2CppType* type; +} Il2CppInteropData; +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; + const Il2CppInteropData* interopData; + FieldInfo* fields; + const EventInfo* events; + const PropertyInfo* properties; + const MethodInfo** methods; + Il2CppClass** nestedTypes; + Il2CppClass** implementedInterfaces; + 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 genericRecursionDepth; + 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_or_windows_runtime : 1; + uint8_t is_vtable_initialized : 1; + VirtualInvokeData vtable[32]; +} 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; + const Il2CppInteropData* interopData; + 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 genericRecursionDepth; + 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_or_windows_runtime : 1; + uint8_t is_vtable_initialized : 1; +} Il2CppClass_1; + +typedef struct __attribute__((aligned(8))) Il2CppClass_Merged { + struct Il2CppClass_0 _0; + Il2CppRuntimeInterfaceOffsetPair* interfaceOffsets; + void* static_fields; + const Il2CppRGCTXData* rgctx_data; + struct Il2CppClass_1 _1; + VirtualInvokeData vtable[32]; +} 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; + Il2CppAppDomainSetup* 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 Il2CppCodeGenOptions +{ + bool enablePrimitiveValueTypeGenericSharing; +} Il2CppCodeGenOptions; +typedef struct Il2CppCodeRegistration +{ + uint32_t methodPointersCount; + const Il2CppMethodPointer* methodPointers; + uint32_t reversePInvokeWrapperCount; + const Il2CppMethodPointer* reversePInvokeWrappers; + uint32_t genericMethodPointersCount; + const Il2CppMethodPointer* genericMethodPointers; + uint32_t invokerPointersCount; + const InvokerMethod* invokerPointers; + CustomAttributeIndex customAttributeCount; + const CustomAttributesCacheGenerator* customAttributeGenerators; + uint32_t unresolvedVirtualCallCount; + const Il2CppMethodPointer* unresolvedVirtualCallPointers; + uint32_t interopDataCount; + Il2CppInteropData* interopData; +} 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; +typedef struct Il2CppPerfCounters +{ + uint32_t jit_methods; + uint32_t jit_bytes; + uint32_t jit_time; + uint32_t jit_failures; + uint32_t exceptions_thrown; + uint32_t exceptions_filters; + uint32_t exceptions_finallys; + uint32_t exceptions_depth; + uint32_t aspnet_requests_queued; + uint32_t aspnet_requests; + uint32_t gc_collections0; + uint32_t gc_collections1; + uint32_t gc_collections2; + uint32_t gc_promotions0; + uint32_t gc_promotions1; + uint32_t gc_promotion_finalizers; + uint32_t gc_gen0size; + uint32_t gc_gen1size; + uint32_t gc_gen2size; + uint32_t gc_lossize; + uint32_t gc_fin_survivors; + uint32_t gc_num_handles; + uint32_t gc_allocated; + uint32_t gc_induced; + uint32_t gc_time; + uint32_t gc_total_bytes; + uint32_t gc_committed_bytes; + uint32_t gc_reserved_bytes; + uint32_t gc_num_pinned; + uint32_t gc_sync_blocks; + uint32_t remoting_calls; + uint32_t remoting_channels; + uint32_t remoting_proxies; + uint32_t remoting_classes; + uint32_t remoting_objects; + uint32_t remoting_contexts; + uint32_t loader_classes; + uint32_t loader_total_classes; + uint32_t loader_appdomains; + uint32_t loader_total_appdomains; + uint32_t loader_assemblies; + uint32_t loader_total_assemblies; + uint32_t loader_failures; + uint32_t loader_bytes; + uint32_t loader_appdomains_uloaded; + uint32_t thread_contentions; + uint32_t thread_queue_len; + uint32_t thread_queue_max; + uint32_t thread_num_logical; + uint32_t thread_num_physical; + uint32_t thread_cur_recognized; + uint32_t thread_num_recognized; + uint32_t interop_num_ccw; + uint32_t interop_num_stubs; + uint32_t interop_num_marshals; + uint32_t security_num_checks; + uint32_t security_num_link_checks; + uint32_t security_time; + uint32_t security_depth; + uint32_t unused; + uint64_t threadpool_workitems; + uint64_t threadpool_ioworkitems; + unsigned int threadpool_threads; + unsigned int threadpool_iothreads; +} Il2CppPerfCounters; + +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]; +}; diff --git a/Il2CppInspector.Common/Cpp/UnityHeaders/24.1-2018.4.18-2018.4.24.h b/Il2CppInspector.Common/Cpp/UnityHeaders/24.1-2018.4.18-2018.4.25.h similarity index 100% rename from Il2CppInspector.Common/Cpp/UnityHeaders/24.1-2018.4.18-2018.4.24.h rename to Il2CppInspector.Common/Cpp/UnityHeaders/24.1-2018.4.18-2018.4.25.h diff --git a/Il2CppInspector.Common/Cpp/UnityHeaders/24.3-2019.3.7-.h b/Il2CppInspector.Common/Cpp/UnityHeaders/24.3-2019.3.7-2019.4.5.h similarity index 100% rename from Il2CppInspector.Common/Cpp/UnityHeaders/24.3-2019.3.7-.h rename to Il2CppInspector.Common/Cpp/UnityHeaders/24.3-2019.3.7-2019.4.5.h