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