vcruntime140_1: Support two continuation addresses for catchblock.
[wine/zf.git] / include / corhdr.h
blob5ca84fe9363e10dd52634376eaa028d8bceb7434
1 /*
2 * Copyright 2008 James Hawkins
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
19 #ifndef __WINE_CORHDR_H
20 #define __WINE_CORHDR_H
22 typedef enum CorTokenType
24 mdtModule = 0x00000000,
25 mdtTypeRef = 0x01000000,
26 mdtTypeDef = 0x02000000,
27 mdtFieldDef = 0x04000000,
28 mdtMethodDef = 0x06000000,
29 mdtParamDef = 0x08000000,
30 mdtInterfaceImpl = 0x09000000,
31 mdtMemberRef = 0x0a000000,
32 mdtCustomAttribute = 0x0c000000,
33 mdtPermission = 0x0e000000,
34 mdtSignature = 0x11000000,
35 mdtEvent = 0x14000000,
36 mdtProperty = 0x17000000,
37 mdtModuleRef = 0x1a000000,
38 mdtTypeSpec = 0x1b000000,
39 mdtAssembly = 0x20000000,
40 mdtAssemblyRef = 0x23000000,
41 mdtFile = 0x26000000,
42 mdtExportedType = 0x27000000,
43 mdtManifestResource = 0x28000000,
44 mdtGenericParam = 0x2a000000,
45 mdtMethodSpec = 0x2b000000,
46 mdtGenericParamConstraint = 0x2c000000,
47 mdtString = 0x70000000,
48 mdtName = 0x71000000,
49 mdtBaseType = 0x72000000,
50 } CorTokenType;
52 typedef enum CorElementType
54 ELEMENT_TYPE_END = 0x00,
55 ELEMENT_TYPE_VOID = 0x01,
56 ELEMENT_TYPE_BOOLEAN = 0x02,
57 ELEMENT_TYPE_CHAR = 0x03,
58 ELEMENT_TYPE_I1 = 0x04,
59 ELEMENT_TYPE_U1 = 0x05,
60 ELEMENT_TYPE_I2 = 0x06,
61 ELEMENT_TYPE_U2 = 0x07,
62 ELEMENT_TYPE_I4 = 0x08,
63 ELEMENT_TYPE_U4 = 0x09,
64 ELEMENT_TYPE_I8 = 0x0a,
65 ELEMENT_TYPE_U8 = 0x0b,
66 ELEMENT_TYPE_R4 = 0x0c,
67 ELEMENT_TYPE_R8 = 0x0d,
68 ELEMENT_TYPE_STRING = 0x0e,
69 ELEMENT_TYPE_PTR = 0x0f,
70 ELEMENT_TYPE_BYREF = 0x10,
71 ELEMENT_TYPE_VALUETYPE = 0x11,
72 ELEMENT_TYPE_CLASS = 0x12,
73 ELEMENT_TYPE_VAR = 0x13,
74 ELEMENT_TYPE_ARRAY = 0x14,
75 ELEMENT_TYPE_GENERICINST = 0x15,
76 ELEMENT_TYPE_TYPEDBYREF = 0x16,
77 ELEMENT_TYPE_I = 0x18,
78 ELEMENT_TYPE_U = 0x19,
79 ELEMENT_TYPE_FNPTR = 0x1b,
80 ELEMENT_TYPE_OBJECT = 0x1c,
81 ELEMENT_TYPE_SZARRAY = 0x1d,
82 ELEMENT_TYPE_MVAR = 0x1e,
83 ELEMENT_TYPE_CMOD_REQD = 0x1f,
84 ELEMENT_TYPE_CMOD_OPT = 0x20,
85 ELEMENT_TYPE_INTERNAL = 0x21,
86 ELEMENT_TYPE_MAX = 0x22,
87 ELEMENT_TYPE_MODIFIER = 0x40,
88 ELEMENT_TYPE_SENTINEL = 0x01 | ELEMENT_TYPE_MODIFIER,
89 ELEMENT_TYPE_PINNED = 0x05 | ELEMENT_TYPE_MODIFIER,
90 ELEMENT_TYPE_R4_HFA = 0x06 | ELEMENT_TYPE_MODIFIER,
91 ELEMENT_TYPE_R8_HFA = 0x07 | ELEMENT_TYPE_MODIFIER,
93 } CorElementType;
95 #define RidToToken(rid,tktype) ((rid) |= (tktype))
96 #define TokenFromRid(rid,tktype) ((rid) | (tktype))
97 #define RidFromToken(tk) ((RID)((tk) & 0x00ffffff))
98 #define TypeFromToken(tk) ((ULONG32)((tk) & 0xff000000))
99 #define IsNilToken(tk) ((RidFromToken(tk)) == 0)
101 typedef LPVOID mdScope;
102 typedef ULONG32 mdToken;
104 typedef mdToken mdModule;
105 typedef mdToken mdTypeRef;
106 typedef mdToken mdTypeDef;
107 typedef mdToken mdFieldDef;
108 typedef mdToken mdMethodDef;
109 typedef mdToken mdParamDef;
110 typedef mdToken mdInterfaceImpl;
111 typedef mdToken mdMemberRef;
112 typedef mdToken mdCustomAttribute;
113 typedef mdToken mdPermission;
114 typedef mdToken mdSignature;
115 typedef mdToken mdEvent;
116 typedef mdToken mdProperty;
117 typedef mdToken mdModuleRef;
118 typedef mdToken mdAssembly;
119 typedef mdToken mdAssemblyRef;
120 typedef mdToken mdFile;
121 typedef mdToken mdExportedType;
122 typedef mdToken mdManifestResource;
123 typedef mdToken mdTypeSpec;
124 typedef mdToken mdGenericParam;
125 typedef mdToken mdMethodSpec;
126 typedef mdToken mdGenericParamConstraint;
127 typedef mdToken mdString;
128 typedef mdToken mdCPToken;
130 #endif /* __WINE_CORHDR_H */