Merge pull request #5714 from alexischr/update_bockbuild
[mono.git] / mono / metadata / row-indexes.h
1 /**
2  * \file
3  */
4
5 #ifndef __MONO_METADATA_ROW_INDEXES_H__
6 #define __MONO_METADATA_ROW_INDEXES_H__
7
8 /*
9  * The last entry in the enum is used to give the number
10  * of columns in the row.
11  */
12
13 enum {
14         MONO_ASSEMBLY_HASH_ALG,
15         MONO_ASSEMBLY_MAJOR_VERSION,
16         MONO_ASSEMBLY_MINOR_VERSION,
17         MONO_ASSEMBLY_BUILD_NUMBER,
18         MONO_ASSEMBLY_REV_NUMBER,
19         MONO_ASSEMBLY_FLAGS,
20         MONO_ASSEMBLY_PUBLIC_KEY,
21         MONO_ASSEMBLY_NAME,
22         MONO_ASSEMBLY_CULTURE,
23         MONO_ASSEMBLY_SIZE
24 };
25
26 enum {
27         MONO_ASSEMBLYOS_PLATFORM,
28         MONO_ASSEMBLYOS_MAJOR_VERSION,
29         MONO_ASSEMBLYOS_MINOR_VERSION,
30         MONO_ASSEMBLYOS_SIZE
31 };
32
33 enum {
34         MONO_ASSEMBLY_PROCESSOR,
35         MONO_ASSEMBLY_PROCESSOR_SIZE
36 };
37
38 enum {
39         MONO_ASSEMBLYREF_MAJOR_VERSION,
40         MONO_ASSEMBLYREF_MINOR_VERSION,
41         MONO_ASSEMBLYREF_BUILD_NUMBER,
42         MONO_ASSEMBLYREF_REV_NUMBER,
43         MONO_ASSEMBLYREF_FLAGS,
44         MONO_ASSEMBLYREF_PUBLIC_KEY,
45         MONO_ASSEMBLYREF_NAME,
46         MONO_ASSEMBLYREF_CULTURE,
47         MONO_ASSEMBLYREF_HASH_VALUE,
48         MONO_ASSEMBLYREF_SIZE
49 };
50
51 enum {
52         MONO_ASSEMBLYREFOS_PLATFORM,
53         MONO_ASSEMBLYREFOS_MAJOR_VERSION,
54         MONO_ASSEMBLYREFOS_MINOR_VERSION,
55         MONO_ASSEMBLYREFOS_ASSEMBLYREF,
56         MONO_ASSEMBLYREFOS_SIZE
57 };
58
59 enum {
60         MONO_ASSEMBLYREFPROC_PROCESSOR,
61         MONO_ASSEMBLYREFPROC_ASSEMBLYREF,
62         MONO_ASSEMBLYREFPROC_SIZE
63 };
64
65 enum {
66         MONO_CLASS_LAYOUT_PACKING_SIZE,
67         MONO_CLASS_LAYOUT_CLASS_SIZE,
68         MONO_CLASS_LAYOUT_PARENT,
69         MONO_CLASS_LAYOUT_SIZE
70 };
71
72 enum {
73         MONO_CONSTANT_TYPE,
74         MONO_CONSTANT_PADDING,
75         MONO_CONSTANT_PARENT,
76         MONO_CONSTANT_VALUE,
77         MONO_CONSTANT_SIZE
78 };
79
80 enum {
81         MONO_CUSTOM_ATTR_PARENT,
82         MONO_CUSTOM_ATTR_TYPE,
83         MONO_CUSTOM_ATTR_VALUE,
84         MONO_CUSTOM_ATTR_SIZE
85 };
86
87 enum {
88         MONO_DECL_SECURITY_ACTION,
89         MONO_DECL_SECURITY_PARENT,
90         MONO_DECL_SECURITY_PERMISSIONSET,
91         MONO_DECL_SECURITY_SIZE
92 };
93
94 enum {
95         MONO_EVENT_MAP_PARENT,
96         MONO_EVENT_MAP_EVENTLIST,
97         MONO_EVENT_MAP_SIZE
98 };
99
100 enum {
101         MONO_EVENT_FLAGS,
102         MONO_EVENT_NAME,
103         MONO_EVENT_TYPE,
104         MONO_EVENT_SIZE
105 };
106
107 enum {
108         MONO_EVENT_POINTER_EVENT,
109         MONO_EVENT_POINTER_SIZE
110 };
111
112 enum {
113         MONO_EXP_TYPE_FLAGS,
114         MONO_EXP_TYPE_TYPEDEF,
115         MONO_EXP_TYPE_NAME,
116         MONO_EXP_TYPE_NAMESPACE,
117         MONO_EXP_TYPE_IMPLEMENTATION,
118         MONO_EXP_TYPE_SIZE
119 };
120
121 enum {
122         MONO_FIELD_FLAGS,
123         MONO_FIELD_NAME,
124         MONO_FIELD_SIGNATURE,
125         MONO_FIELD_SIZE
126 };
127
128 enum {
129         MONO_FIELD_LAYOUT_OFFSET,
130         MONO_FIELD_LAYOUT_FIELD,
131         MONO_FIELD_LAYOUT_SIZE
132 };
133
134 enum {
135         MONO_FIELD_MARSHAL_PARENT,
136         MONO_FIELD_MARSHAL_NATIVE_TYPE,
137         MONO_FIELD_MARSHAL_SIZE
138 };
139
140 enum {
141         MONO_FIELD_POINTER_FIELD,
142         MONO_FIELD_POINTER_SIZE
143 };
144
145 enum {
146         MONO_FIELD_RVA_RVA,
147         MONO_FIELD_RVA_FIELD,
148         MONO_FIELD_RVA_SIZE
149 };
150
151 enum {
152         MONO_FILE_FLAGS,
153         MONO_FILE_NAME,
154         MONO_FILE_HASH_VALUE,
155         MONO_FILE_SIZE
156 };
157
158 enum {
159         MONO_IMPLMAP_FLAGS,
160         MONO_IMPLMAP_MEMBER,
161         MONO_IMPLMAP_NAME,
162         MONO_IMPLMAP_SCOPE,
163         MONO_IMPLMAP_SIZE
164 };
165
166 enum {
167         MONO_INTERFACEIMPL_CLASS,
168         MONO_INTERFACEIMPL_INTERFACE,
169         MONO_INTERFACEIMPL_SIZE
170 };
171
172 enum {
173         MONO_MANIFEST_OFFSET,
174         MONO_MANIFEST_FLAGS,
175         MONO_MANIFEST_NAME,
176         MONO_MANIFEST_IMPLEMENTATION,
177         MONO_MANIFEST_SIZE
178 };
179
180 enum {
181         MONO_MEMBERREF_CLASS,
182         MONO_MEMBERREF_NAME,
183         MONO_MEMBERREF_SIGNATURE,
184         MONO_MEMBERREF_SIZE
185 };
186
187 enum {
188         MONO_METHOD_RVA,
189         MONO_METHOD_IMPLFLAGS,
190         MONO_METHOD_FLAGS,
191         MONO_METHOD_NAME,
192         MONO_METHOD_SIGNATURE,
193         MONO_METHOD_PARAMLIST,
194         MONO_METHOD_SIZE
195 };
196
197 enum {
198         MONO_METHODIMPL_CLASS,
199         MONO_METHODIMPL_BODY,
200         MONO_METHODIMPL_DECLARATION,
201         MONO_METHODIMPL_SIZE
202 };
203
204 enum {
205         MONO_METHOD_POINTER_METHOD,
206         MONO_METHOD_POINTER_SIZE
207 };
208
209 enum {
210         MONO_METHOD_SEMA_SEMANTICS,
211         MONO_METHOD_SEMA_METHOD,
212         MONO_METHOD_SEMA_ASSOCIATION,
213         MONO_METHOD_SEMA_SIZE
214 };
215
216 enum {
217         MONO_MODULE_GENERATION,
218         MONO_MODULE_NAME,
219         MONO_MODULE_MVID,
220         MONO_MODULE_ENC,
221         MONO_MODULE_ENCBASE,
222         MONO_MODULE_SIZE
223 };
224
225 enum {
226         MONO_MODULEREF_NAME,
227         MONO_MODULEREF_SIZE
228 };
229
230 enum {
231         MONO_NESTED_CLASS_NESTED,
232         MONO_NESTED_CLASS_ENCLOSING,
233         MONO_NESTED_CLASS_SIZE
234 };
235
236 enum {
237         MONO_PARAM_FLAGS,
238         MONO_PARAM_SEQUENCE,
239         MONO_PARAM_NAME,
240         MONO_PARAM_SIZE
241 };
242
243 enum {
244         MONO_PARAM_POINTER_PARAM,
245         MONO_PARAM_POINTER_SIZE
246 };
247
248 enum {
249         MONO_PROPERTY_FLAGS,
250         MONO_PROPERTY_NAME,
251         MONO_PROPERTY_TYPE,
252         MONO_PROPERTY_SIZE
253 };
254
255 enum {
256         MONO_PROPERTY_POINTER_PROPERTY,
257         MONO_PROPERTY_POINTER_SIZE
258 };
259
260 enum {
261         MONO_PROPERTY_MAP_PARENT,
262         MONO_PROPERTY_MAP_PROPERTY_LIST,
263         MONO_PROPERTY_MAP_SIZE
264 };
265
266 enum {
267         MONO_STAND_ALONE_SIGNATURE,
268         MONO_STAND_ALONE_SIGNATURE_SIZE
269 };
270
271 enum {
272         MONO_TYPEDEF_FLAGS,
273         MONO_TYPEDEF_NAME,
274         MONO_TYPEDEF_NAMESPACE,
275         MONO_TYPEDEF_EXTENDS,
276         MONO_TYPEDEF_FIELD_LIST,
277         MONO_TYPEDEF_METHOD_LIST,
278         MONO_TYPEDEF_SIZE
279 };
280
281 enum {
282         MONO_TYPEREF_SCOPE,
283         MONO_TYPEREF_NAME,
284         MONO_TYPEREF_NAMESPACE,
285         MONO_TYPEREF_SIZE
286 };
287
288 enum {
289         MONO_TYPESPEC_SIGNATURE,
290         MONO_TYPESPEC_SIZE
291 };
292
293 enum {
294         MONO_GENERICPARAM_NUMBER,
295         MONO_GENERICPARAM_FLAGS,
296         MONO_GENERICPARAM_OWNER,
297         MONO_GENERICPARAM_NAME,
298         
299         MONO_GENERICPARAM_SIZE
300 };
301
302 enum {
303         MONO_METHODSPEC_METHOD,
304         MONO_METHODSPEC_SIGNATURE,
305         MONO_METHODSPEC_SIZE
306 };
307
308 enum {
309         MONO_GENPARCONSTRAINT_GENERICPAR,
310         MONO_GENPARCONSTRAINT_CONSTRAINT,
311         MONO_GENPARCONSTRAINT_SIZE
312 };
313
314 enum {
315         MONO_DOCUMENT_NAME,
316         MONO_DOCUMENT_HASHALG,
317         MONO_DOCUMENT_HASH,
318         MONO_DOCUMENT_LANGUAGE,
319         MONO_DOCUMENT_SIZE
320 };
321
322 enum {
323         MONO_METHODBODY_DOCUMENT,
324         MONO_METHODBODY_SEQ_POINTS,
325         MONO_METHODBODY_SIZE
326 };
327
328 enum {
329         MONO_LOCALSCOPE_METHOD,
330         MONO_LOCALSCOPE_IMPORTSCOPE,
331         MONO_LOCALSCOPE_VARIABLELIST,
332         MONO_LOCALSCOPE_CONSTANTLIST,
333         MONO_LOCALSCOPE_STARTOFFSET,
334         MONO_LOCALSCOPE_LENGTH,
335         MONO_LOCALSCOPE_SIZE
336 };
337
338 enum {
339         MONO_LOCALVARIABLE_ATTRIBUTES,
340         MONO_LOCALVARIABLE_INDEX,
341         MONO_LOCALVARIABLE_NAME,
342         MONO_LOCALVARIABLE_SIZE
343 };
344
345 enum {
346         MONO_CUSTOMDEBUGINFORMATION_PARENT,
347         MONO_CUSTOMDEBUGINFORMATION_KIND,
348         MONO_CUSTOMDEBUGINFORMATION_VALUE,
349         MONO_CUSTOMDEBUGINFORMATION_SIZE
350 };
351
352 /*
353  * Coded Tokens
354  * The _BITS entry is for the bits used in the token.
355  * The _MASK entry is for mask the index out.
356  */
357
358 enum {
359         MONO_TYPEDEFORREF_TYPEDEF,
360         MONO_TYPEDEFORREF_TYPEREF,
361         MONO_TYPEDEFORREF_TYPESPEC,
362         MONO_TYPEDEFORREF_BITS = 2,
363         MONO_TYPEDEFORREF_MASK = 3
364 };
365
366 enum {
367         MONO_HASCONSTANT_FIEDDEF,
368         MONO_HASCONSTANT_PARAM,
369         MONO_HASCONSTANT_PROPERTY,
370         MONO_HASCONSTANT_BITS = 2,
371         MONO_HASCONSTANT_MASK = 3
372 };
373
374 enum {
375         MONO_CUSTOM_ATTR_METHODDEF,
376         MONO_CUSTOM_ATTR_FIELDDEF,
377         MONO_CUSTOM_ATTR_TYPEREF,
378         MONO_CUSTOM_ATTR_TYPEDEF,
379         MONO_CUSTOM_ATTR_PARAMDEF,
380         MONO_CUSTOM_ATTR_INTERFACE,
381         MONO_CUSTOM_ATTR_MEMBERREF,
382         MONO_CUSTOM_ATTR_MODULE,
383         MONO_CUSTOM_ATTR_PERMISSION,
384         MONO_CUSTOM_ATTR_PROPERTY,
385         MONO_CUSTOM_ATTR_EVENT,
386         MONO_CUSTOM_ATTR_SIGNATURE,
387         MONO_CUSTOM_ATTR_MODULEREF,
388         MONO_CUSTOM_ATTR_TYPESPEC,
389         MONO_CUSTOM_ATTR_ASSEMBLY,
390         MONO_CUSTOM_ATTR_ASSEMBLYREF,
391         MONO_CUSTOM_ATTR_FILE,
392         MONO_CUSTOM_ATTR_EXP_TYPE,
393         MONO_CUSTOM_ATTR_MANIFEST,
394         MONO_CUSTOM_ATTR_GENERICPAR,
395         MONO_CUSTOM_ATTR_BITS = 5,
396         MONO_CUSTOM_ATTR_MASK = 0x1F
397 };
398
399 enum {
400         MONO_HAS_FIELD_MARSHAL_FIELDSREF,
401         MONO_HAS_FIELD_MARSHAL_PARAMDEF,
402         MONO_HAS_FIELD_MARSHAL_BITS = 1,
403         MONO_HAS_FIELD_MARSHAL_MASK = 1
404 };
405
406 enum {
407         MONO_HAS_DECL_SECURITY_TYPEDEF,
408         MONO_HAS_DECL_SECURITY_METHODDEF,
409         MONO_HAS_DECL_SECURITY_ASSEMBLY,
410         MONO_HAS_DECL_SECURITY_BITS = 2,
411         MONO_HAS_DECL_SECURITY_MASK = 3
412 };
413
414 enum {
415         MONO_MEMBERREF_PARENT_TYPEDEF, /* not used */
416         MONO_MEMBERREF_PARENT_TYPEREF,
417         MONO_MEMBERREF_PARENT_MODULEREF,
418         MONO_MEMBERREF_PARENT_METHODDEF,
419         MONO_MEMBERREF_PARENT_TYPESPEC,
420         MONO_MEMBERREF_PARENT_BITS = 3,
421         MONO_MEMBERREF_PARENT_MASK = 7
422 };
423
424 enum {
425         MONO_HAS_SEMANTICS_EVENT,
426         MONO_HAS_SEMANTICS_PROPERTY,
427         MONO_HAS_SEMANTICS_BITS = 1,
428         MONO_HAS_SEMANTICS_MASK = 1
429 };
430
431 enum {
432         MONO_METHODDEFORREF_METHODDEF,
433         MONO_METHODDEFORREF_METHODREF,
434         MONO_METHODDEFORREF_BITS = 1,
435         MONO_METHODDEFORREF_MASK = 1
436 };
437
438 enum {
439         MONO_MEMBERFORWD_FIELDDEF,
440         MONO_MEMBERFORWD_METHODDEF,
441         MONO_MEMBERFORWD_BITS = 1,
442         MONO_MEMBERFORWD_MASK = 1
443 };
444
445 enum {
446         MONO_IMPLEMENTATION_FILE,
447         MONO_IMPLEMENTATION_ASSEMBLYREF,
448         MONO_IMPLEMENTATION_EXP_TYPE,
449         MONO_IMPLEMENTATION_BITS = 2,
450         MONO_IMPLEMENTATION_MASK = 3
451 };
452
453 enum {
454         MONO_CUSTOM_ATTR_TYPE_TYPEREF, /* not used */
455         MONO_CUSTOM_ATTR_TYPE_TYPEDEF, /* not used */
456         MONO_CUSTOM_ATTR_TYPE_METHODDEF,
457         MONO_CUSTOM_ATTR_TYPE_MEMBERREF,
458         MONO_CUSTOM_ATTR_TYPE_STRING, /* not used */
459         MONO_CUSTOM_ATTR_TYPE_BITS = 3,
460         MONO_CUSTOM_ATTR_TYPE_MASK = 7
461 };
462
463 enum {
464         MONO_RESOLUTION_SCOPE_MODULE,
465         MONO_RESOLUTION_SCOPE_MODULEREF,
466         MONO_RESOLUTION_SCOPE_ASSEMBLYREF,
467         MONO_RESOLUTION_SCOPE_TYPEREF,
468         MONO_RESOLUTION_SCOPE_BITS = 2,
469         MONO_RESOLUTION_SCOPE_MASK = 3
470 };
471
472 /* Kept for compatibility since this is a public header file */
473 enum {
474         MONO_RESOLTION_SCOPE_MODULE,
475         MONO_RESOLTION_SCOPE_MODULEREF,
476         MONO_RESOLTION_SCOPE_ASSEMBLYREF,
477         MONO_RESOLTION_SCOPE_TYPEREF,
478         MONO_RESOLTION_SCOPE_BITS = 2,
479         MONO_RESOLTION_SCOPE_MASK = 3
480 };
481
482 enum {
483         MONO_TYPEORMETHOD_TYPE,
484         MONO_TYPEORMETHOD_METHOD,
485         MONO_TYPEORMETHOD_BITS = 1,
486         MONO_TYPEORMETHOD_MASK = 1
487 };
488
489 #endif /* __MONO_METADATA_ROW_INDEXES_H__ */
490
491