1 #ifndef _MONO_METADATA_BITMASK_H_
2 #define _MONO_METADATA_BITMASK_H_
4 * Flags for bitmasks in the metadata tables
8 * Type Attributes (21.1.13).
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
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
25 #define TYPE_ATTRIBUTE_CLASS_SEMANTIC_MASK 0x00000020
26 #define TYPE_ATTRIBUTE_CLASS 0x00000000
27 #define TYPE_ATTRIBUTE_INTERFACE 0x00000020
29 #define TYPE_ATTRIBUTE_ABSTRACT 0x00000080
30 #define TYPE_ATTRIBUTE_SEALED 0x00000100
31 #define TYPE_ATTRIBUTE_SPECIAL_NAME 0x00000400
33 #define TYPE_ATTRIBUTE_IMPORT 0x00001000
34 #define TYPE_ATTRIBUTE_SERIALIZABLE 0x00002000
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
41 #define TYPE_ATTRIBUTE_BEFORE_FIELD_INIT 0x00100000
43 #define TYPE_ATTRIBUTE_RESERVED_MASK 0x00040800
44 #define TYPE_ATTRIBUTE_RT_SPECIAL_NAME 0x00000800
45 #define TYPE_ATTRIBUTE_HAS_SECURITY 0x00040000