Merge pull request #3749 from BrzVlad/fix-mips-fix
[mono.git] / mono / utils / mono-error.h
index 5e1102ec2b842006b8d799e93f969267fef68101..fa9caa6759e36bb2cecb619b19822f56e08520e2 100644 (file)
@@ -12,7 +12,11 @@ enum {
        /*
        Something happened while processing the error and the resulting message is incomplete.
        */
-       MONO_ERROR_INCOMPLETE = 0x0002
+       MONO_ERROR_INCOMPLETE = 0x0002,
+       /*
+       This MonoError is heap allocated in a mempool
+        */
+       MONO_ERROR_MEMPOOL_BOXED = 0x0004
 };
 
 enum {
@@ -26,13 +30,18 @@ enum {
        MONO_ERROR_ARGUMENT = 7,
        MONO_ERROR_ARGUMENT_NULL = 11,
        MONO_ERROR_NOT_VERIFIABLE = 8,
+       MONO_ERROR_INVALID_PROGRAM = 12,
+
        /*
         * This is a generic error mechanism is you need to raise an arbitrary corlib exception.
         * You must pass the exception name otherwise prepare_exception will fail with internal execution. 
         */
        MONO_ERROR_GENERIC = 9,
        /* This one encapsulates a managed exception instance */
-       MONO_ERROR_EXCEPTION_INSTANCE = 10
+       MONO_ERROR_EXCEPTION_INSTANCE = 10,
+
+       /* Not a valid error code - indicates that the error was cleaned up and reused */
+       MONO_ERROR_CLEANUP_CALLED_SENTINEL = 0xffff
 };
 
 /*Keep in sync with MonoErrorInternal*/
@@ -43,6 +52,9 @@ typedef struct _MonoError {
        void *hidden_1 [12]; /*DON'T TOUCH */
 } MonoError;
 
+/* Mempool-allocated MonoError.*/
+typedef struct _MonoErrorBoxed MonoErrorBoxed;
+
 MONO_BEGIN_DECLS
 
 MONO_API void