Merge pull request #5714 from alexischr/update_bockbuild
[mono.git] / mono / metadata / tabledefs.h
index cfe95439bf5f3c8975cd500cdd957bf3bfdc5264..e3aa51b4cf5f8673bf6f9980648eb88d48084698 100644 (file)
@@ -1,5 +1,6 @@
-/*
- * tabledefs.h: This file contains the various definitions for constants
+/**
+ * \file
+ * This file contains the various definitions for constants
  * found on the metadata tables
  *
  * Author:
@@ -41,6 +42,8 @@ enum {
        FILE_CONTAINS_NO_METADATA   = 1
 };
 
+/* keep in synch with System.Security.Permissions.SecurityAction enum 
+   (except for the special non-CAS cases) */
 enum {
        SECURITY_ACTION_DEMAND        = 2,
        SECURITY_ACTION_ASSERT        = 3,
@@ -50,9 +53,25 @@ enum {
        SECURITY_ACTION_INHERITDEMAND = 7,
        SECURITY_ACTION_REQMIN        = 8,
        SECURITY_ACTION_REQOPT        = 9,
-       SECURITY_ACTION_REQREFUSE     = 10
+       SECURITY_ACTION_REQREFUSE     = 10,
+       /* Special cases (non CAS permissions) */
+       SECURITY_ACTION_NONCASDEMAND        = 13,
+       SECURITY_ACTION_NONCASLINKDEMAND    = 14,
+       SECURITY_ACTION_NONCASINHERITANCE   = 15,
+       /* Fx 2.0 actions (for both CAS and non-CAS permissions) */
+       SECURITY_ACTION_LINKDEMANDCHOICE    = 16,
+       SECURITY_ACTION_INHERITDEMANDCHOICE = 17,
+       SECURITY_ACTION_DEMANDCHOICE        = 18
 };
 
+/*
+ *
+ * 22.1.8 Flags for ManifestResource
+ */
+#define MANIFEST_RESOURCE_VISIBILITY_MASK    0x00000007
+#define MANIFEST_RESOURCE_PUBLIC             0x00000001
+#define MANIFEST_RESOURCE_PRIVATE            0x00000002
+
 /*
  * Field Attributes (21.1.5).
  */
@@ -108,6 +127,8 @@ enum {
 
 #define TYPE_ATTRIBUTE_IMPORT                0x00001000
 #define TYPE_ATTRIBUTE_SERIALIZABLE          0x00002000
+#define TYPE_ATTRIBUTE_WINDOWS_RUNTIME       0x00004000
+
 
 #define TYPE_ATTRIBUTE_STRING_FORMAT_MASK    0x00030000
 #define TYPE_ATTRIBUTE_ANSI_CLASS            0x00000000
@@ -115,6 +136,7 @@ enum {
 #define TYPE_ATTRIBUTE_AUTO_CLASS            0x00020000
 
 #define TYPE_ATTRIBUTE_BEFORE_FIELD_INIT     0x00100000
+#define TYPE_ATTRIBUTE_FORWARDER             0x00200000
 
 #define TYPE_ATTRIBUTE_RESERVED_MASK         0x00040800
 #define TYPE_ATTRIBUTE_RT_SPECIAL_NAME       0x00000800
@@ -139,7 +161,9 @@ enum {
 #define METHOD_IMPL_ATTRIBUTE_INTERNAL_CALL        0x1000
 #define METHOD_IMPL_ATTRIBUTE_SYNCHRONIZED         0x0020
 #define METHOD_IMPL_ATTRIBUTE_NOINLINING           0x0008
+#define METHOD_IMPL_ATTRIBUTE_NOOPTIMIZATION       0x0040
 #define METHOD_IMPL_ATTRIBUTE_MAX_METHOD_IMPL_VAL  0xffff
+#define METHOD_IMPL_ATTRIBUTE_AGGRESSIVE_INLINING  0x0100
 
 #define METHOD_ATTRIBUTE_MEMBER_ACCESS_MASK        0x0007
 #define METHOD_ATTRIBUTE_COMPILER_CONTROLLED       0x0000
@@ -159,6 +183,7 @@ enum {
 #define METHOD_ATTRIBUTE_REUSE_SLOT                0x0000
 #define METHOD_ATTRIBUTE_NEW_SLOT                  0x0100
 
+#define METHOD_ATTRIBUTE_STRICT                    0x0200
 #define METHOD_ATTRIBUTE_ABSTRACT                  0x0400
 #define METHOD_ATTRIBUTE_SPECIAL_NAME              0x0800
 
@@ -186,11 +211,11 @@ enum {
 #define METHOD_SEMANTIC_FIRE      0x0020
 
 /*
- * Flags for Params (22.1.11)
+ * Flags for Params (22.1.12)
  */
 #define PARAM_ATTRIBUTE_IN                 0x0001
 #define PARAM_ATTRIBUTE_OUT                0x0002
-#define PARAM_ATTRIBUTE_OPTIONAL           0x0004
+#define PARAM_ATTRIBUTE_OPTIONAL           0x0010
 #define PARAM_ATTRIBUTE_RESERVED_MASK      0xf000
 #define PARAM_ATTRIBUTE_HAS_DEFAULT        0x1000
 #define PARAM_ATTRIBUTE_HAS_FIELD_MARSHAL  0x2000
@@ -214,6 +239,9 @@ enum {
 #define PINVOKE_ATTRIBUTE_CHAR_SET_ANSI       0x0002
 #define PINVOKE_ATTRIBUTE_CHAR_SET_UNICODE    0x0004
 #define PINVOKE_ATTRIBUTE_CHAR_SET_AUTO       0x0006
+#define PINVOKE_ATTRIBUTE_BEST_FIT_ENABLED    0x0010
+#define PINVOKE_ATTRIBUTE_BEST_FIT_DISABLED   0x0020
+#define PINVOKE_ATTRIBUTE_BEST_FIT_MASK       0x0030
 #define PINVOKE_ATTRIBUTE_SUPPORTS_LAST_ERROR 0x0040
 #define PINVOKE_ATTRIBUTE_CALL_CONV_MASK      0x0700
 #define PINVOKE_ATTRIBUTE_CALL_CONV_WINAPI    0x0100
@@ -221,6 +249,10 @@ enum {
 #define PINVOKE_ATTRIBUTE_CALL_CONV_STDCALL   0x0300
 #define PINVOKE_ATTRIBUTE_CALL_CONV_THISCALL  0x0400
 #define PINVOKE_ATTRIBUTE_CALL_CONV_FASTCALL  0x0500
+#define PINVOKE_ATTRIBUTE_THROW_ON_UNMAPPABLE_ENABLED    0x1000
+#define PINVOKE_ATTRIBUTE_THROW_ON_UNMAPPABLE_DISABLED   0x2000
+#define PINVOKE_ATTRIBUTE_THROW_ON_UNMAPPABLE_MASK       0x3000
+#define PINVOKE_ATTRIBUTE_BEST_FIT_MASK       0x0030
 #define PINVOKE_ATTRIBUTE_CALL_CONV_GENERIC   0x0010
 #define PINVOKE_ATTRIBUTE_CALL_CONV_GENERICINST 0x000a
 
@@ -228,4 +260,7 @@ enum {
  * 21.5 AssemblyRefs
  */
 #define ASSEMBLYREF_FULL_PUBLIC_KEY_FLAG      0x00000001
+#define ASSEMBLYREF_RETARGETABLE_FLAG         0x00000100
+#define ASSEMBLYREF_ENABLEJITCOMPILE_TRACKING_FLAG 0x00008000
+#define ASSEMBLYREF_DISABLEJITCOMPILE_OPTIMIZER_FLAG 0x00004000
 #endif