Add opcodes XML file
[mono.git] / mono / metadata / typeattr.h
1 #ifndef _MONO_METADATA_BITMASK_H_
2 #define _MONO_METADATA_BITMASK_H_
3 /*
4  * Flags for bitmasks in the metadata tables
5  */
6
7 /*
8  * Type Attributes (21.1.13).
9  */
10 #define TYPE_ATTRIBUTE_VISIBILITY_MASK       0x00000007
11 #define TYPE_ATTRIBUTE_NOT_PUBLIC            0x00000000
12 #define TYPE_ATTRIBUTE_PUBLIC                0x00000001
13 #define TYPE_ATTRIBUTE_NESTED_PUBLIC         0x00000002
14 #define TYPE_ATTRIBUTE_NESTED_PRIVATE        0x00000003
15 #define TYPE_ATTRIBUTE_NESTED_FAMILY         0x00000004
16 #define TYPE_ATTRIBUTE_NESTED_ASSEMBLY       0x00000005
17 #define TYPE_ATTRIBUTE_NESTED_FAM_AND_ASSEM  0x00000006
18 #define TYPE_ATTRIBUTE_NESTED_FAM_OR_ASSEM   0x00000007
19
20 #define TYPE_ATTRIBUTE_LAYOUT_MASK           0x00000018
21 #define TYPE_ATTRIBUTE_AUTO_LAYOUT           0x00000000
22 #define TYPE_ATTRIBUTE_SEQUENTIAL_LAYOUT     0x00000008
23 #define TYPE_ATTRIBUTE_EXPLICIT_LAYOUT       0x00000010
24
25 #define TYPE_ATTRIBUTE_CLASS_SEMANTIC_MASK   0x00000020
26 #define TYPE_ATTRIBUTE_CLASS                 0x00000000
27 #define TYPE_ATTRIBUTE_INTERFACE             0x00000020
28
29 #define TYPE_ATTRIBUTE_ABSTRACT              0x00000080
30 #define TYPE_ATTRIBUTE_SEALED                0x00000100
31 #define TYPE_ATTRIBUTE_SPECIAL_NAME          0x00000400
32
33 #define TYPE_ATTRIBUTE_IMPORT                0x00001000
34 #define TYPE_ATTRIBUTE_SERIALIZABLE          0x00002000
35
36 #define TYPE_ATTRIBUTE_STRING_FORMAT_MASK    0x00030000
37 #define TYPE_ATTRIBUTE_ANSI_CLASS            0x00000000
38 #define TYPE_ATTRIBUTE_UNICODE_CLASS         0x00010000
39 #define TYPE_ATTRIBUTE_AUTO_CLASS            0x00020000
40
41 #define TYPE_ATTRIBUTE_BEFORE_FIELD_INIT     0x00100000
42
43 #define TYPE_ATTRIBUTE_RESERVED_MASK         0x00040800
44 #define TYPE_ATTRIBUTE_RT_SPECIAL_NAME       0x00000800
45 #define TYPE_ATTRIBUTE_HAS_SECURITY          0x00040000
46
47 #endif