X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mono%2Fmetadata%2Fverify.h;h=75f52c6628f35dcb0f44d9340eb1c971996b373a;hb=fe8558dcfcb48990b64bf7ef62b75687ed8bd377;hp=9c34deeb9ba6b845cd3e5ec16c2b959af9568685;hpb=459702ab2fa9f578dcfc14b385e91b0dab968c05;p=mono.git diff --git a/mono/metadata/verify.h b/mono/metadata/verify.h index 9c34deeb9ba..75f52c6628f 100644 --- a/mono/metadata/verify.h +++ b/mono/metadata/verify.h @@ -4,16 +4,41 @@ #include #include #include +#include /* GSList dep */ -G_BEGIN_DECLS +MONO_BEGIN_DECLS typedef enum { - MONO_VERIFY_OK =0, - MONO_VERIFY_ERROR=1, - MONO_VERIFY_WARNING=2, - MONO_VERIFY_VERIFIABLE=4, - MONO_VERIFY_CLS = 8, - MONO_VERIFY_ALL = 15 + MONO_VERIFY_OK, + MONO_VERIFY_ERROR, + MONO_VERIFY_WARNING, + 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. + * The standard behavior is to abort if the code is not valid. + * */ + MONO_VERIFY_FAIL_FAST = 16, + + + /* Perform less verification of the code. This flag should be used + * if one wants the verifier to be more compatible to the MS runtime. + * Mind that this is not to be more compatible with MS peverify, but + * with the runtime itself, that has a less strict verifier. + */ + MONO_VERIFY_NON_STRICT = 32, + + /*Skip all visibility related checks*/ + MONO_VERIFY_SKIP_VISIBILITY = 64, + + /*Skip all visibility related checks*/ + MONO_VERIFY_REPORT_ALL_ERRORS = 128 + } MonoVerifyStatus; typedef struct { @@ -21,12 +46,17 @@ typedef struct { MonoVerifyStatus status; } MonoVerifyInfo; -GSList* mono_image_verify_tables (MonoImage *image, int level); -GSList* mono_method_verify (MonoMethod *method, int level); -void mono_free_verify_list (GSList *list); -char* mono_verify_corlib (void); +typedef struct { + MonoVerifyInfo info; + int8_t exception_type; /*should be one of MONO_EXCEPTION_* */ +} MonoVerifyInfoExtended; + + +MONO_API GSList* mono_method_verify (MonoMethod *method, int level); +MONO_API void mono_free_verify_list (GSList *list); +MONO_API char* mono_verify_corlib (void); -G_END_DECLS +MONO_END_DECLS #endif /* __MONO_METADATA_VERIFY_H__ */