2009-11-04 Sebastien Pouliot <sebastien@ximian.com>
[mono.git] / mono / metadata / verify.h
index 850438e8b019f202b1b43b50aad05b32e3beabb3..26559dd8afa40cd09b92ff7eb39535f0a70a5494 100644 (file)
@@ -4,6 +4,7 @@
 #include <mono/metadata/metadata.h>
 #include <mono/metadata/image.h>
 #include <mono/metadata/loader.h>
+#include "mono/utils/mono-compiler.h"
 
 G_BEGIN_DECLS
 
@@ -14,6 +15,9 @@ typedef enum {
        MONO_VERIFY_CLS = 4,
        MONO_VERIFY_ALL = 7,
 
+       /* Status signaling code that is not verifiable.*/
+       MONO_VERIFY_NOT_VERIFIABLE = 8,
+
        /*OR it with other flags*/
        
        /* Abort the verification if the code is not verifiable.
@@ -29,8 +33,12 @@ typedef enum {
         */
        MONO_VERIFY_NON_STRICT = 32,
 
-       /* Status signaling code that is not verifiable.*/
-       MONO_VERIFY_NOT_VERIFIABLE = 8
+       /*Skip all visibility related checks*/
+       MONO_VERIFY_SKIP_VISIBILITY = 64,
+
+       /*Skip all visibility related checks*/
+       MONO_VERIFY_REPORT_ALL_ERRORS = 128,
+
 } MonoVerifyStatus;
 
 typedef struct {
@@ -38,6 +46,12 @@ typedef struct {
        MonoVerifyStatus status;
 } MonoVerifyInfo;
 
+typedef struct {
+       MonoVerifyInfo info;
+       guint8 exception_type; /*should be one of MONO_EXCEPTION_* */
+} MonoVerifyInfoExtended;
+
+
 GSList* mono_image_verify_tables (MonoImage *image, int level);
 GSList* mono_method_verify       (MonoMethod *method, int level);
 void    mono_free_verify_list    (GSList *list);