130 lines
4.7 KiB
C
130 lines
4.7 KiB
C
/*
|
|
* Copyright 2008 James Hawkins
|
|
*
|
|
* This library is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU Lesser General Public
|
|
* License as published by the Free Software Foundation; either
|
|
* version 2.1 of the License, or (at your option) any later version.
|
|
*
|
|
* This library is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
* Lesser General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public
|
|
* License along with this library; if not, write to the Free Software
|
|
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
|
*/
|
|
|
|
#ifndef __WINE_CORHDR_H
|
|
#define __WINE_CORHDR_H
|
|
|
|
typedef enum CorTokenType
|
|
{
|
|
mdtModule = 0x00000000,
|
|
mdtTypeRef = 0x01000000,
|
|
mdtTypeDef = 0x02000000,
|
|
mdtFieldDef = 0x04000000,
|
|
mdtMethodDef = 0x06000000,
|
|
mdtParamDef = 0x08000000,
|
|
mdtInterfaceImpl = 0x09000000,
|
|
mdtMemberRef = 0x0a000000,
|
|
mdtCustomAttribute = 0x0c000000,
|
|
mdtPermission = 0x0e000000,
|
|
mdtSignature = 0x11000000,
|
|
mdtEvent = 0x14000000,
|
|
mdtProperty = 0x17000000,
|
|
mdtModuleRef = 0x1a000000,
|
|
mdtTypeSpec = 0x1b000000,
|
|
mdtAssembly = 0x20000000,
|
|
mdtAssemblyRef = 0x23000000,
|
|
mdtFile = 0x26000000,
|
|
mdtExportedType = 0x27000000,
|
|
mdtManifestResource = 0x28000000,
|
|
mdtGenericParam = 0x2a000000,
|
|
mdtMethodSpec = 0x2b000000,
|
|
mdtGenericParamConstraint = 0x2c000000,
|
|
mdtString = 0x70000000,
|
|
mdtName = 0x71000000,
|
|
mdtBaseType = 0x72000000,
|
|
} CorTokenType;
|
|
|
|
typedef enum CorElementType
|
|
{
|
|
ELEMENT_TYPE_END = 0x00,
|
|
ELEMENT_TYPE_VOID = 0x01,
|
|
ELEMENT_TYPE_BOOLEAN = 0x02,
|
|
ELEMENT_TYPE_CHAR = 0x03,
|
|
ELEMENT_TYPE_I1 = 0x04,
|
|
ELEMENT_TYPE_U1 = 0x05,
|
|
ELEMENT_TYPE_I2 = 0x06,
|
|
ELEMENT_TYPE_U2 = 0x07,
|
|
ELEMENT_TYPE_I4 = 0x08,
|
|
ELEMENT_TYPE_U4 = 0x09,
|
|
ELEMENT_TYPE_I8 = 0x0a,
|
|
ELEMENT_TYPE_U8 = 0x0b,
|
|
ELEMENT_TYPE_R4 = 0x0c,
|
|
ELEMENT_TYPE_R8 = 0x0d,
|
|
ELEMENT_TYPE_STRING = 0x0e,
|
|
ELEMENT_TYPE_PTR = 0x0f,
|
|
ELEMENT_TYPE_BYREF = 0x10,
|
|
ELEMENT_TYPE_VALUETYPE = 0x11,
|
|
ELEMENT_TYPE_CLASS = 0x12,
|
|
ELEMENT_TYPE_VAR = 0x13,
|
|
ELEMENT_TYPE_ARRAY = 0x14,
|
|
ELEMENT_TYPE_GENERICINST = 0x15,
|
|
ELEMENT_TYPE_TYPEDBYREF = 0x16,
|
|
ELEMENT_TYPE_I = 0x18,
|
|
ELEMENT_TYPE_U = 0x19,
|
|
ELEMENT_TYPE_FNPTR = 0x1b,
|
|
ELEMENT_TYPE_OBJECT = 0x1c,
|
|
ELEMENT_TYPE_SZARRAY = 0x1d,
|
|
ELEMENT_TYPE_MVAR = 0x1e,
|
|
ELEMENT_TYPE_CMOD_REQD = 0x1f,
|
|
ELEMENT_TYPE_CMOD_OPT = 0x20,
|
|
ELEMENT_TYPE_INTERNAL = 0x21,
|
|
ELEMENT_TYPE_MAX = 0x22,
|
|
ELEMENT_TYPE_MODIFIER = 0x40,
|
|
ELEMENT_TYPE_SENTINEL = 0x01 | ELEMENT_TYPE_MODIFIER,
|
|
ELEMENT_TYPE_PINNED = 0x05 | ELEMENT_TYPE_MODIFIER,
|
|
ELEMENT_TYPE_R4_HFA = 0x06 | ELEMENT_TYPE_MODIFIER,
|
|
ELEMENT_TYPE_R8_HFA = 0x07 | ELEMENT_TYPE_MODIFIER,
|
|
|
|
} CorElementType;
|
|
|
|
#define RidToToken(rid,tktype) ((rid) |= (tktype))
|
|
#define TokenFromRid(rid,tktype) ((rid) | (tktype))
|
|
#define RidFromToken(tk) ((RID)((tk) & 0x00ffffff))
|
|
#define TypeFromToken(tk) ((ULONG32)((tk) & 0xff000000))
|
|
#define IsNilToken(tk) ((RidFromToken(tk)) == 0)
|
|
|
|
typedef LPVOID mdScope;
|
|
typedef ULONG32 mdToken;
|
|
|
|
typedef mdToken mdModule;
|
|
typedef mdToken mdTypeRef;
|
|
typedef mdToken mdTypeDef;
|
|
typedef mdToken mdFieldDef;
|
|
typedef mdToken mdMethodDef;
|
|
typedef mdToken mdParamDef;
|
|
typedef mdToken mdInterfaceImpl;
|
|
typedef mdToken mdMemberRef;
|
|
typedef mdToken mdCustomAttribute;
|
|
typedef mdToken mdPermission;
|
|
typedef mdToken mdSignature;
|
|
typedef mdToken mdEvent;
|
|
typedef mdToken mdProperty;
|
|
typedef mdToken mdModuleRef;
|
|
typedef mdToken mdAssembly;
|
|
typedef mdToken mdAssemblyRef;
|
|
typedef mdToken mdFile;
|
|
typedef mdToken mdExportedType;
|
|
typedef mdToken mdManifestResource;
|
|
typedef mdToken mdTypeSpec;
|
|
typedef mdToken mdGenericParam;
|
|
typedef mdToken mdMethodSpec;
|
|
typedef mdToken mdGenericParamConstraint;
|
|
typedef mdToken mdString;
|
|
typedef mdToken mdCPToken;
|
|
|
|
#endif /* __WINE_CORHDR_H */
|