2009-02-03 Geoff Norton <gnorton@novell.com>
[mono-project.git] / mono / metadata / row-indexes.h
blob4b4ca6dbc961417bf764d270169f8321b66c8adc
2 #ifndef __MONO_METADATA_ROW_INDEXES_H__
3 #define __MONO_METADATA_ROW_INDEXES_H__
5 /*
6 * The last entry in the enum is used to give the number
7 * of columns in the row.
8 */
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
23 enum {
24 MONO_ASSEMBLYOS_PLATFORM,
25 MONO_ASSEMBLYOS_MAJOR_VERSION,
26 MONO_ASSEMBLYOS_MINOR_VERSION,
27 MONO_ASSEMBLYOS_SIZE
30 enum {
31 MONO_ASSEMBLY_PROCESSOR,
32 MONO_ASSEMBLY_PROCESSOR_SIZE
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
48 enum {
49 MONO_ASSEMBLYREFOS_PLATFORM,
50 MONO_ASSEMBLYREFOS_MAJOR_VERSION,
51 MONO_ASSEMBLYREFOS_MINOR_VERSION,
52 MONO_ASSEMBLYREFOS_ASSEMBLYREF,
53 MONO_ASSEMBLYREFOS_SIZE
56 enum {
57 MONO_ASSEMBLYREFPROC_PROCESSOR,
58 MONO_ASSEMBLYREFPROC_ASSEMBLYREF,
59 MONO_ASSEMBLYREFPROC_SIZE
62 enum {
63 MONO_CLASS_LAYOUT_PACKING_SIZE,
64 MONO_CLASS_LAYOUT_CLASS_SIZE,
65 MONO_CLASS_LAYOUT_PARENT,
66 MONO_CLASS_LAYOUT_SIZE
69 enum {
70 MONO_CONSTANT_TYPE,
71 MONO_CONSTANT_PADDING,
72 MONO_CONSTANT_PARENT,
73 MONO_CONSTANT_VALUE,
74 MONO_CONSTANT_SIZE
77 enum {
78 MONO_CUSTOM_ATTR_PARENT,
79 MONO_CUSTOM_ATTR_TYPE,
80 MONO_CUSTOM_ATTR_VALUE,
81 MONO_CUSTOM_ATTR_SIZE
84 enum {
85 MONO_DECL_SECURITY_ACTION,
86 MONO_DECL_SECURITY_PARENT,
87 MONO_DECL_SECURITY_PERMISSIONSET,
88 MONO_DECL_SECURITY_SIZE
91 enum {
92 MONO_EVENT_MAP_PARENT,
93 MONO_EVENT_MAP_EVENTLIST,
94 MONO_EVENT_MAP_SIZE
97 enum {
98 MONO_EVENT_FLAGS,
99 MONO_EVENT_NAME,
100 MONO_EVENT_TYPE,
101 MONO_EVENT_SIZE
104 enum {
105 MONO_EVENT_POINTER_EVENT,
106 MONO_EVENT_POINTER_SIZE
109 enum {
110 MONO_EXP_TYPE_FLAGS,
111 MONO_EXP_TYPE_TYPEDEF,
112 MONO_EXP_TYPE_NAME,
113 MONO_EXP_TYPE_NAMESPACE,
114 MONO_EXP_TYPE_IMPLEMENTATION,
115 MONO_EXP_TYPE_SIZE
118 enum {
119 MONO_FIELD_FLAGS,
120 MONO_FIELD_NAME,
121 MONO_FIELD_SIGNATURE,
122 MONO_FIELD_SIZE
125 enum {
126 MONO_FIELD_LAYOUT_OFFSET,
127 MONO_FIELD_LAYOUT_FIELD,
128 MONO_FIELD_LAYOUT_SIZE
131 enum {
132 MONO_FIELD_MARSHAL_PARENT,
133 MONO_FIELD_MARSHAL_NATIVE_TYPE,
134 MONO_FIELD_MARSHAL_SIZE
137 enum {
138 MONO_FIELD_POINTER_FIELD,
139 MONO_FIELD_POINTER_SIZE
142 enum {
143 MONO_FIELD_RVA_RVA,
144 MONO_FIELD_RVA_FIELD,
145 MONO_FIELD_RVA_SIZE
148 enum {
149 MONO_FILE_FLAGS,
150 MONO_FILE_NAME,
151 MONO_FILE_HASH_VALUE,
152 MONO_FILE_SIZE
155 enum {
156 MONO_IMPLMAP_FLAGS,
157 MONO_IMPLMAP_MEMBER,
158 MONO_IMPLMAP_NAME,
159 MONO_IMPLMAP_SCOPE,
160 MONO_IMPLMAP_SIZE
163 enum {
164 MONO_INTERFACEIMPL_CLASS,
165 MONO_INTERFACEIMPL_INTERFACE,
166 MONO_INTERFACEIMPL_SIZE
169 enum {
170 MONO_MANIFEST_OFFSET,
171 MONO_MANIFEST_FLAGS,
172 MONO_MANIFEST_NAME,
173 MONO_MANIFEST_IMPLEMENTATION,
174 MONO_MANIFEST_SIZE
177 enum {
178 MONO_MEMBERREF_CLASS,
179 MONO_MEMBERREF_NAME,
180 MONO_MEMBERREF_SIGNATURE,
181 MONO_MEMBERREF_SIZE
184 enum {
185 MONO_METHOD_RVA,
186 MONO_METHOD_IMPLFLAGS,
187 MONO_METHOD_FLAGS,
188 MONO_METHOD_NAME,
189 MONO_METHOD_SIGNATURE,
190 MONO_METHOD_PARAMLIST,
191 MONO_METHOD_SIZE
194 enum {
195 MONO_METHODIMPL_CLASS,
196 MONO_METHODIMPL_BODY,
197 MONO_METHODIMPL_DECLARATION,
198 MONO_METHODIMPL_SIZE
201 enum {
202 MONO_METHOD_POINTER_METHOD,
203 MONO_METHOD_POINTER_SIZE
206 enum {
207 MONO_METHOD_SEMA_SEMANTICS,
208 MONO_METHOD_SEMA_METHOD,
209 MONO_METHOD_SEMA_ASSOCIATION,
210 MONO_METHOD_SEMA_SIZE
213 enum {
214 MONO_MODULE_GENERATION,
215 MONO_MODULE_NAME,
216 MONO_MODULE_MVID,
217 MONO_MODULE_ENC,
218 MONO_MODULE_ENCBASE,
219 MONO_MODULE_SIZE
222 enum {
223 MONO_MODULEREF_NAME,
224 MONO_MODULEREF_SIZE
227 enum {
228 MONO_NESTED_CLASS_NESTED,
229 MONO_NESTED_CLASS_ENCLOSING,
230 MONO_NESTED_CLASS_SIZE
233 enum {
234 MONO_PARAM_FLAGS,
235 MONO_PARAM_SEQUENCE,
236 MONO_PARAM_NAME,
237 MONO_PARAM_SIZE
240 enum {
241 MONO_PARAM_POINTER_PARAM,
242 MONO_PARAM_POINTER_SIZE
245 enum {
246 MONO_PROPERTY_FLAGS,
247 MONO_PROPERTY_NAME,
248 MONO_PROPERTY_TYPE,
249 MONO_PROPERTY_SIZE
252 enum {
253 MONO_PROPERTY_POINTER_PROPERTY,
254 MONO_PROPERTY_POINTER_SIZE
257 enum {
258 MONO_PROPERTY_MAP_PARENT,
259 MONO_PROPERTY_MAP_PROPERTY_LIST,
260 MONO_PROPERTY_MAP_SIZE
263 enum {
264 MONO_STAND_ALONE_SIGNATURE,
265 MONO_STAND_ALONE_SIGNATURE_SIZE
268 enum {
269 MONO_TYPEDEF_FLAGS,
270 MONO_TYPEDEF_NAME,
271 MONO_TYPEDEF_NAMESPACE,
272 MONO_TYPEDEF_EXTENDS,
273 MONO_TYPEDEF_FIELD_LIST,
274 MONO_TYPEDEF_METHOD_LIST,
275 MONO_TYPEDEF_SIZE
278 enum {
279 MONO_TYPEREF_SCOPE,
280 MONO_TYPEREF_NAME,
281 MONO_TYPEREF_NAMESPACE,
282 MONO_TYPEREF_SIZE
285 enum {
286 MONO_TYPESPEC_SIGNATURE,
287 MONO_TYPESPEC_SIZE
290 enum {
291 MONO_GENERICPARAM_NUMBER,
292 MONO_GENERICPARAM_FLAGS,
293 MONO_GENERICPARAM_OWNER,
294 MONO_GENERICPARAM_NAME,
296 MONO_GENERICPARAM_SIZE
299 enum {
300 MONO_METHODSPEC_METHOD,
301 MONO_METHODSPEC_SIGNATURE,
302 MONO_METHODSPEC_SIZE
305 enum {
306 MONO_GENPARCONSTRAINT_GENERICPAR,
307 MONO_GENPARCONSTRAINT_CONSTRAINT,
308 MONO_GENPARCONSTRAINT_SIZE
312 * Coded Tokens
313 * The _BITS entry is for the bits used in the token.
314 * The _MASK entry is for mask the index out.
317 enum {
318 MONO_TYPEDEFORREF_TYPEDEF,
319 MONO_TYPEDEFORREF_TYPEREF,
320 MONO_TYPEDEFORREF_TYPESPEC,
321 MONO_TYPEDEFORREF_BITS = 2,
322 MONO_TYPEDEFORREF_MASK = 3
325 enum {
326 MONO_HASCONSTANT_FIEDDEF,
327 MONO_HASCONSTANT_PARAM,
328 MONO_HASCONSTANT_PROPERTY,
329 MONO_HASCONSTANT_BITS = 2,
330 MONO_HASCONSTANT_MASK = 3
333 enum {
334 MONO_CUSTOM_ATTR_METHODDEF,
335 MONO_CUSTOM_ATTR_FIELDDEF,
336 MONO_CUSTOM_ATTR_TYPEREF,
337 MONO_CUSTOM_ATTR_TYPEDEF,
338 MONO_CUSTOM_ATTR_PARAMDEF,
339 MONO_CUSTOM_ATTR_INTERFACE,
340 MONO_CUSTOM_ATTR_MEMBERREF,
341 MONO_CUSTOM_ATTR_MODULE,
342 MONO_CUSTOM_ATTR_PERMISSION,
343 MONO_CUSTOM_ATTR_PROPERTY,
344 MONO_CUSTOM_ATTR_EVENT,
345 MONO_CUSTOM_ATTR_SIGNATURE,
346 MONO_CUSTOM_ATTR_MODULEREF,
347 MONO_CUSTOM_ATTR_TYPESPEC,
348 MONO_CUSTOM_ATTR_ASSEMBLY,
349 MONO_CUSTOM_ATTR_ASSEMBLYREF,
350 MONO_CUSTOM_ATTR_FILE,
351 MONO_CUSTOM_ATTR_EXP_TYPE,
352 MONO_CUSTOM_ATTR_MANIFEST,
353 MONO_CUSTOM_ATTR_GENERICPAR,
354 MONO_CUSTOM_ATTR_BITS = 5,
355 MONO_CUSTOM_ATTR_MASK = 0x1F
358 enum {
359 MONO_HAS_FIELD_MARSHAL_FIELDSREF,
360 MONO_HAS_FIELD_MARSHAL_PARAMDEF,
361 MONO_HAS_FIELD_MARSHAL_BITS = 1,
362 MONO_HAS_FIELD_MARSHAL_MASK = 1
365 enum {
366 MONO_HAS_DECL_SECURITY_TYPEDEF,
367 MONO_HAS_DECL_SECURITY_METHODDEF,
368 MONO_HAS_DECL_SECURITY_ASSEMBLY,
369 MONO_HAS_DECL_SECURITY_BITS = 2,
370 MONO_HAS_DECL_SECURITY_MASK = 3
373 enum {
374 MONO_MEMBERREF_PARENT_TYPEDEF, /* not used */
375 MONO_MEMBERREF_PARENT_TYPEREF,
376 MONO_MEMBERREF_PARENT_MODULEREF,
377 MONO_MEMBERREF_PARENT_METHODDEF,
378 MONO_MEMBERREF_PARENT_TYPESPEC,
379 MONO_MEMBERREF_PARENT_BITS = 3,
380 MONO_MEMBERREF_PARENT_MASK = 7
383 enum {
384 MONO_HAS_SEMANTICS_EVENT,
385 MONO_HAS_SEMANTICS_PROPERTY,
386 MONO_HAS_SEMANTICS_BITS = 1,
387 MONO_HAS_SEMANTICS_MASK = 1
390 enum {
391 MONO_METHODDEFORREF_METHODDEF,
392 MONO_METHODDEFORREF_METHODREF,
393 MONO_METHODDEFORREF_BITS = 1,
394 MONO_METHODDEFORREF_MASK = 1
397 enum {
398 MONO_MEMBERFORWD_FIELDDEF,
399 MONO_MEMBERFORWD_METHODDEF,
400 MONO_MEMBERFORWD_BITS = 1,
401 MONO_MEMBERFORWD_MASK = 1
404 enum {
405 MONO_IMPLEMENTATION_FILE,
406 MONO_IMPLEMENTATION_ASSEMBLYREF,
407 MONO_IMPLEMENTATION_EXP_TYPE,
408 MONO_IMPLEMENTATION_BITS = 2,
409 MONO_IMPLEMENTATION_MASK = 3
412 enum {
413 MONO_CUSTOM_ATTR_TYPE_TYPEREF, /* not used */
414 MONO_CUSTOM_ATTR_TYPE_TYPEDEF, /* not used */
415 MONO_CUSTOM_ATTR_TYPE_METHODDEF,
416 MONO_CUSTOM_ATTR_TYPE_MEMBERREF,
417 MONO_CUSTOM_ATTR_TYPE_STRING, /* not used */
418 MONO_CUSTOM_ATTR_TYPE_BITS = 3,
419 MONO_CUSTOM_ATTR_TYPE_MASK = 7
422 enum {
423 MONO_RESOLTION_SCOPE_MODULE,
424 MONO_RESOLTION_SCOPE_MODULEREF,
425 MONO_RESOLTION_SCOPE_ASSEMBLYREF,
426 MONO_RESOLTION_SCOPE_TYPEREF,
427 MONO_RESOLTION_SCOPE_BITS = 2,
428 MONO_RESOLTION_SCOPE_MASK = 3
431 enum {
432 MONO_TYPEORMETHOD_TYPE,
433 MONO_TYPEORMETHOD_METHOD,
434 MONO_TYPEORMETHOD_BITS = 1,
435 MONO_TYPEORMETHOD_MASK = 1
438 #endif /* __MONO_METADATA_ROW_INDEXES_H__ */