X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mono%2Fmetadata%2Fverify.h;h=75f52c6628f35dcb0f44d9340eb1c971996b373a;hb=72362aefea25edb7807e4faa0e77cf9979bd222a;hp=a4a38d94701dacbc50b0a5fe2109d7fe7bbe555c;hpb=53e266903ec6b2d822cf5b0c566f6374df5307a4;p=mono.git diff --git a/mono/metadata/verify.h b/mono/metadata/verify.h index a4a38d94701..75f52c6628f 100644 --- a/mono/metadata/verify.h +++ b/mono/metadata/verify.h @@ -4,15 +4,41 @@ #include #include #include +#include /* GSList dep */ -G_BEGIN_DECLS +MONO_BEGIN_DECLS typedef enum { MONO_VERIFY_OK, MONO_VERIFY_ERROR, MONO_VERIFY_WARNING, MONO_VERIFY_CLS = 4, - MONO_VERIFY_ALL = 7 + 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 { @@ -20,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__ */