Files
RedHotRoast-ios/HybridCLRData/LocalIl2CppData-OSXEditor/il2cpp/libil2cpp/hybridclr/metadata/Tables.h
T
2026-07-17 14:03:00 +08:00

458 lines
7.6 KiB
C++

#pragma once
#include <stdint.h>
namespace hybridclr
{
namespace metadata
{
enum class TableType
{
MODULE,
TYPEREF,
TYPEDEF,
FIELDPTR,
FIELD,
METHODPTR,
METHOD,
PARAMPTR,
PARAM,
INTERFACEIMPL,
MEMBERREF, /* 0xa */
CONSTANT,
CUSTOMATTRIBUTE,
FIELDMARSHAL,
DECLSECURITY,
CLASSLAYOUT,
FIELDLAYOUT, /* 0x10 */
STANDALONESIG,
EVENTMAP,
EVENTPTR,
EVENT,
PROPERTYMAP,
PROPERTYPTR,
PROPERTY,
METHODSEMANTICS,
METHODIMPL,
MODULEREF, /* 0x1a */
TYPESPEC,
IMPLMAP,
FIELDRVA,
ENCLOG,
ENCMAP,
ASSEMBLY, /* 0x20 */
ASSEMBLYPROCESSOR,
ASSEMBLYOS,
ASSEMBLYREF,
ASSEMBLYREFPROCESSOR,
ASSEMBLYREFOS,
FILE,
EXPORTEDTYPE,
MANIFESTRESOURCE,
NESTEDCLASS,
GENERICPARAM, /* 0x2a */
METHODSPEC,
GENERICPARAMCONSTRAINT,
UNUSED8,
UNUSED9,
UNUSED10,
/* Portable PDB tables */
DOCUMENT, /* 0x30 */
METHODDEBUGINFORMATION,
LOCALSCOPE,
LOCALVARIABLE,
LOCALCONSTANT,
IMPORTSCOPE,
STATEMACHINEMETHOD,
CUSTOMDEBUGINFORMATION,
};
// 0
struct TbModule
{
uint16_t generation;
uint32_t name;
uint32_t mvid;
uint32_t encid;
uint32_t encBaseId;
};
// 1
struct TbTypeRef
{
uint32_t resolutionScope;
uint32_t typeName;
uint32_t typeNamespace;
};
// 2
struct TbTypeDef
{
uint32_t flags;
uint32_t typeName;
uint32_t typeNamespace;
uint32_t extends;
uint32_t fieldList;
uint32_t methodList;
};
// 3 FIELDPTR
struct TbFieldPtr
{
uint32_t field;
};
// 4
struct TbField
{
uint32_t flags;
uint32_t name;
uint32_t signature;
};
// 5 METHODPTR
struct TbMethodPtr
{
uint32_t method;
};
// 6
struct TbMethod
{
uint32_t rva;
uint16_t implFlags;
uint16_t flags;
uint32_t name;
uint32_t signature;
uint32_t paramList;
};
// 7 PARAMPTR
struct TbParamPtr
{
uint32_t param;
};
// 8
struct TbParam
{
uint16_t flags;
uint16_t sequence;
uint32_t name;
};
// 9
struct TbInterfaceImpl
{
uint32_t classIdx;
uint32_t interfaceIdx;
};
// 0xa
struct TbMemberRef
{
uint32_t classIdx;
uint32_t name;
uint32_t signature;
};
struct TbConstant
{
uint8_t type;
uint8_t padding;
uint32_t parent;
uint32_t value;
};
struct TbCustomAttribute
{
uint32_t parent;
uint32_t type;
uint32_t value;
};
struct TbFieldMarshal
{
uint32_t parent;
uint32_t nativeType;
};
struct TbDeclSecurity
{
uint16_t action;
uint32_t parent;
uint32_t permissionSet;
};
struct TbClassLayout
{
uint16_t packingSize;
uint32_t classSize;
uint32_t parent;
};
// 0x10
struct TbFieldLayout
{
uint32_t offset;
uint32_t field;
};
struct TbStandAloneSig
{
uint32_t signature;
};
struct TbEventMap
{
uint32_t parent;
uint32_t eventList;
};
// 0x13 EVENTPTR
struct TbEventPtr
{
uint32_t event;
};
// 0x14
struct TbEvent
{
uint16_t eventFlags;
uint32_t name;
uint32_t eventType;
};
struct TbPropertyMap
{
uint32_t parent;
uint32_t propertyList;
};
// PROPERTYPTR
struct TbPropertyPtr
{
uint32_t property;
};
struct TbProperty
{
uint16_t flags;
uint32_t name;
uint32_t type;
};
struct TbMethodSemantics
{
uint16_t semantics;
uint32_t method;
uint32_t association;
};
struct TbMethodImpl
{
uint32_t classIdx;
uint32_t methodBody;
uint32_t methodDeclaration;
};
struct TbModuleRef
{
uint32_t name;
};
struct TbTypeSpec
{
uint32_t signature;
};
struct TbImplMap
{
uint16_t mappingFlags;
uint32_t memberForwarded;
uint32_t importName;
uint32_t importScope;
};
struct TbFieldRVA
{
uint32_t rva;
uint32_t field;
};
struct TbEncLog
{
uint32_t token;
uint32_t funcCode;
};
struct TbEncMap
{
uint32_t token;
};
struct TbAssembly
{
uint32_t hashAlgId;
uint16_t majorVersion;
uint16_t minorVersion;
uint16_t buildNumber;
uint16_t revisionNumber;
uint32_t flags;
uint32_t publicKey;
uint32_t name;
uint32_t locale;
};
struct TbAssemblyProcessor
{
uint32_t processor;
};
struct TbAssemblyOS
{
uint32_t osPlatformId;
uint32_t osMajorVersion;
uint32_t osMinorVersion;
};
struct TbAssemblyRef
{
uint16_t majorVersion;
uint16_t minorVersion;
uint16_t buildNumber;
uint16_t revisionNumber;
uint32_t flags;
uint32_t publicKeyOrToken;
uint32_t name;
uint32_t locale;
uint32_t hashValue;
};
struct TbAssemblyRefProcessor
{
uint32_t processor;
uint32_t assemblyRef;
};
struct TbAssemblyRefOS
{
uint32_t osPlatformId;
uint32_t osMajorVersion;
uint32_t osMinorVersion;
uint32_t assemblyRef;
};
struct TbFile
{
uint32_t flags;
uint32_t name;
uint32_t hashValue;
};
struct TbExportedType
{
uint32_t flags;
uint32_t typeDefId;
uint32_t typeName;
uint32_t typeNamespace;
uint32_t implementation;
};
struct TbManifestResource
{
uint32_t offset;
uint32_t flags;
uint32_t name;
uint32_t implementation;
};
struct TbNestedClass
{
uint32_t nestedClass;
uint32_t enclosingClass;
};
struct TbGenericParam
{
uint16_t number;
uint16_t flags;
uint32_t owner;
uint32_t name;
};
struct TbMethodSpec
{
uint32_t method;
uint32_t instantiation;
};
struct TbGenericParamConstraint
{
uint32_t owner;
uint32_t constraint;
};
struct TbDocument
{
uint32_t name;
uint32_t hashAlgorithm;
uint32_t hash;
uint32_t language;
};
struct TbMethodDebugInformation
{
uint32_t document;
uint32_t sequencePoints;
};
struct TbLocalScope
{
uint32_t method;
uint32_t importScope;
uint32_t variables;
uint32_t constants;
uint32_t startOffset;
uint32_t length;
};
struct TbLocalVariable
{
uint16_t attributes;
uint16_t index;
uint32_t name;
};
struct TbLocalConstant
{
uint32_t name;
uint32_t signature;
};
struct TbImportScope
{
uint32_t parent;
uint32_t imports;
};
struct TbStateMachineMethod
{
uint32_t moveNextMethod;
uint32_t kickoffMethod;
};
struct TbCustomDebugInformation
{
uint32_t parent;
uint32_t kind;
uint32_t value;
};
}
}