1 #ifndef _MONO_METADATA_METHODATTR_H_
2 #define _MONO_METADATA_METHODATTR_H_
5 * Method Attributes (22.1.9)
8 #define METHOD_IMPL_ATTRIBUTE_CODE_TYPE_MASK 0x0003
9 #define METHOD_IMPL_ATTRIBUTE_IL 0x0000
10 #define METHOD_IMPL_ATTRIBUTE_NATIVE 0x0001
11 #define METHOD_IMPL_ATTRIBUTE_OPTIL 0x0002
12 #define METHOD_IMPL_ATTRIBUTE_RUNTIME 0x0003
14 #define METHOD_IMPL_ATTRIBUTE_MANAGED_MASK 0x0004
15 #define METHOD_IMPL_ATTRIBUTE_UNMANAGED 0x0004
16 #define METHOD_IMPL_ATTRIBUTE_MANAGED 0x0000
18 #define METHOD_IMPL_ATTRIBUTE_FORWARD_REF 0x0010
19 #define METHOD_IMPL_ATTRIBUTE_PRESERVE_SIG 0x0080
20 #define METHOD_IMPL_ATTRIBUTE_INTERNAL_CALL 0x1000
21 #define METHOD_IMPL_ATTRIBUTE_SYNCHRONIZED 0x0020
22 #define METHOD_IMPL_ATTRIBUTE_NOINLINING 0x0008
23 #define METHOD_IMPL_ATTRIBUTE_MAX_METHOD_IMPL_VAL 0xffff
25 #define METHOD_ATTRIBUTE_MEMBER_ACCESS_MASK 0x0007
26 #define METHOD_ATTRIBUTE_COMPILER_CONTROLLED 0x0000
27 #define METHOD_ATTRIBUTE_PRIVATE 0x0001
28 #define METHOD_ATTRIBUTE_FAM_AND_ASSEM 0x0002
29 #define METHOD_ATTRIBUTE_ASSEM 0x0003
30 #define METHOD_ATTRIBUTE_FAMILY 0x0004
31 #define METHOD_ATTRIBUTE_FAM_OR_ASSEM 0x0005
32 #define METHOD_ATTRIBUTE_PUBLIC 0x0006
34 #define METHOD_ATTRIBUTE_STATIC 0x0010
35 #define METHOD_ATTRIBUTE_FINAL 0x0020
36 #define METHOD_ATTRIBUTE_VIRTUAL 0x0040
37 #define METHOD_ATTRIBUTE_HIDE_BY_SIG 0x0080
39 #define METHOD_ATTRIBUTE_VTABLE_LAYOUT_MASK 0x0100
40 #define METHOD_ATTRIBUTE_REUSE_SLOT 0x0000
41 #define METHOD_ATTRIBUTE_NEW_SLOT 0x0100
43 #define METHOD_ATTRIBUTE_ABSTRACT 0x0400
44 #define METHOD_ATTRIBUTE_SPECIAL_NAME 0x0800
46 #define METHOD_ATTRIBUTE_PINVOKE_IMPL 0x2000
47 #define METHOD_ATTRIBUTE_UNMANAGED_EXPORT 0x0008
50 * For runtime use only
52 #define METHOD_ATTRIBUTE_RESERVED_MASK 0xd000
53 #define METHOD_ATTRIBUTE_RT_SPECIAL_NAME 0x1000
54 #define METHOD_ATTRIBUTE_HAS_SECURITY 0x4000
55 #define METHOD_ATTRIBUTE_REQUIRE_SEC_OBJECT 0x8000