2003-10-15 Martin Baulig <martin@ximian.com>
[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         /* Next two soon to be gone */
272         MONO_GENERICPARAM_KIND,
273         MONO_GENERICPARAM_DEPRECATED_CONSTRAINT,
274         
275         MONO_GENERICPARAM_SIZE
276 };
277
278 enum {
279         MONO_METHODSPEC_METHOD,
280         MONO_METHODSPEC_SIGNATURE,
281         MONO_METHODSPEC_SIZE
282 };
283
284 enum {
285         MONO_GENPARCONSTRAINT_GENERICPAR,
286         MONO_GENPARCONSTRAINT_CONSTRAINT,
287         MONO_GENPARCONSTRAINT_SIZE
288 };
289
290 /*
291  * Coded Tokens
292  * The _BITS entry is for the bits used in the token.
293  * The _MASK entry is for mask the index out.
294  */
295
296 enum {
297         TYPEDEFORREF_TYPEDEF,
298         TYPEDEFORREF_TYPEREF,
299         TYPEDEFORREF_TYPESPEC,
300         TYPEDEFORREF_BITS = 2,
301         TYPEDEFORREF_MASK = 3
302 };
303
304 enum {
305         HASCONSTANT_FIEDDEF,
306         HASCONSTANT_PARAM,
307         HASCONSTANT_PROPERTY,
308         HASCONSTANT_BITS = 2,
309         HASCONSTANT_MASK = 3
310 };
311
312 enum {
313         CUSTOM_ATTR_METHODDEF,
314         CUSTOM_ATTR_FIELDDEF,
315         CUSTOM_ATTR_TYPEREF,
316         CUSTOM_ATTR_TYPEDEF,
317         CUSTOM_ATTR_PARAMDEF,
318         CUSTOM_ATTR_INTERFACE,
319         CUSTOM_ATTR_MEMBERREF,
320         CUSTOM_ATTR_MODULE,
321         CUSTOM_ATTR_PERMISSION,
322         CUSTOM_ATTR_PROPERTY,
323         CUSTOM_ATTR_EVENT,
324         CUSTOM_ATTR_SIGNATURE,
325         CUSTOM_ATTR_MODULEREF,
326         CUSTOM_ATTR_TYPESPEC,
327         CUSTOM_ATTR_ASSEMBLY,
328         CUSTOM_ATTR_ASSEMBLYREF,
329         CUSTOM_ATTR_FILE,
330         CUSTOM_ATTR_EXP_TYPE,
331         CUSTOM_ATTR_MANIFEST,
332         CUSTOM_ATTR_BITS = 5,
333         CUSTOM_ATTR_MASK = 0x1F
334 };
335
336 enum {
337         HAS_FIELD_MARSHAL_FIELDSREF,
338         HAS_FIELD_MARSHAL_PARAMDEF,
339         HAS_FIELD_MARSHAL_BITS = 1,
340         HAS_FIELD_MARSHAL_MASK = 1
341 };
342
343 enum {
344         HAS_DECL_SECURITY_TYPEDEF,
345         HAS_DECL_SECURITY_METHODDEF,
346         HAS_DECL_SECURITY_ASSEMBLY,
347         HAS_DECL_SECURITY_BITS = 2,
348         HAS_DECL_SECURITY_MASK = 3
349 };
350
351 enum {
352         MEMBERREF_PARENT_TYPEDEF, /* not used */
353         MEMBERREF_PARENT_TYPEREF,
354         MEMBERREF_PARENT_MODULEREF,
355         MEMBERREF_PARENT_METHODDEF,
356         MEMBERREF_PARENT_TYPESPEC,
357         MEMBERREF_PARENT_BITS = 3,
358         MEMBERREF_PARENT_MASK = 7
359 };
360
361 enum {
362         HAS_SEMANTICS_EVENT,
363         HAS_SEMANTICS_PROPERTY,
364         HAS_SEMANTICS_BITS = 1,
365         HAS_SEMANTICS_MASK = 1
366 };
367
368 enum {
369         METHODDEFORREF_METHODDEF,
370         METHODDEFORREF_METHODREF,
371         METHODDEFORREF_BITS = 1,
372         METHODDEFORREF_MASK = 1
373 };
374
375 enum {
376         MEMBERFORWD_FIELDDEF,
377         MEMBERFORWD_METHODDEF,
378         MEMBERFORWD_BITS = 1,
379         MEMBERFORWD_MASK = 1
380 };
381
382 enum {
383         IMPLEMENTATION_FILE,
384         IMPLEMENTATION_ASSEMBLYREF,
385         IMPLEMENTATION_EXP_TYPE,
386         IMPLEMENTATION_BITS = 2,
387         IMPLEMENTATION_MASK = 3
388 };
389
390 enum {
391         CUSTOM_ATTR_TYPE_TYPEREF, /* not used */
392         CUSTOM_ATTR_TYPE_TYPEDEF, /* not used */
393         CUSTOM_ATTR_TYPE_METHODDEF,
394         CUSTOM_ATTR_TYPE_MEMBERREF,
395         CUSTOM_ATTR_TYPE_STRING, /* not used */
396         CUSTOM_ATTR_TYPE_BITS = 3,
397         CUSTOM_ATTR_TYPE_MASK = 7
398 };
399
400 enum {
401         RESOLTION_SCOPE_MODULE,
402         RESOLTION_SCOPE_MODULEREF,
403         RESOLTION_SCOPE_ASSEMBLYREF,
404         RESOLTION_SCOPE_TYPEREF,
405         RESOLTION_SCOPE_BITS = 2,
406         RESOLTION_SCOPE_MASK = 3
407 };
408
409 enum {
410         MONO_TYPEORMETHOD_TYPE,
411         MONO_TYPEORMETHOD_METHOD,
412         MONO_TYPEORMETHOD_BITS = 1,
413         MONO_TYPEORMETHOD_MASK = 1
414 };
415
416 #endif /* __MONO_METADATA_ROW_INDEXES_H__ */
417