X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mono%2Fmetadata%2Fverify.h;h=ed7920e69f9346ecadb255199f81b9529eee6fc2;hb=a1eb52aa13dfb2774b961e741e07e09fac468b33;hp=a4a38d94701dacbc50b0a5fe2109d7fe7bbe555c;hpb=f84f760a1c8a8c0ec6ae16b7f38d14a49d329ad7;p=mono.git diff --git a/mono/metadata/verify.h b/mono/metadata/verify.h index a4a38d94701..ed7920e69f9 100644 --- a/mono/metadata/verify.h +++ b/mono/metadata/verify.h @@ -1,18 +1,49 @@ +/** + * \file + */ + #ifndef __MONO_METADATA_VERIFY_H__ #define __MONO_METADATA_VERIFY_H__ #include #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 +51,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; + MonoExceptionType exception_type : 8; /*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__ */