MONO_BEGIN_DECLS
-/*
- * When embedding, you have to define MONO_ZERO_LEN_ARRAY before including any
- * other Mono header file if you use a different compiler from the one used to
- * build Mono.
- */
-#ifndef MONO_ZERO_LEN_ARRAY
-#ifdef __GNUC__
-#define MONO_ZERO_LEN_ARRAY 0
-#else
-#define MONO_ZERO_LEN_ARRAY 1
-#endif
-#endif
-
#define MONO_TYPE_ISSTRUCT(t) mono_type_is_struct (t)
#define MONO_TYPE_IS_VOID(t) mono_type_is_void (t)
#define MONO_TYPE_IS_POINTER(t) mono_type_is_pointer (t)
MONO_MARSHAL_CONV_HANDLEREF
} MonoMarshalConv;
+#define MONO_MARSHAL_CONV_INVALID ((MonoMarshalConv)-1)
+
typedef struct {
MonoMarshalNative native;
union {
struct {
char *custom_name;
char *cookie;
+ MonoImage *image;
} custom_data;
struct {
MonoMarshalVariant elem_type;
MONO_API mono_bool
mono_signature_explicit_this (MonoMethodSignature *sig);
+MONO_API mono_bool
+mono_signature_param_is_out (MonoMethodSignature *sig, int param_num);
+
MONO_API uint32_t mono_metadata_parse_typedef_or_ref (MonoImage *m,
const char *ptr,
const char **rptr);
MonoCustomMod *dest,
const char *ptr,
const char **rptr);
+MONO_RT_EXTERNAL_ONLY
MONO_API MonoArrayType *mono_metadata_parse_array (MonoImage *m,
const char *ptr,
const char **rptr);
MONO_API void mono_metadata_free_array (MonoArrayType *array);
+MONO_RT_EXTERNAL_ONLY
MONO_API MonoType *mono_metadata_parse_type (MonoImage *m,
MonoParseTypeMode mode,
short opt_attrs,
const char *ptr,
const char **rptr);
+MONO_RT_EXTERNAL_ONLY
MONO_API MonoType *mono_metadata_parse_param (MonoImage *m,
const char *ptr,
const char **rptr);
MONO_API MonoType *mono_metadata_parse_ret_type (MonoImage *m,
const char *ptr,
const char **rptr);
+MONO_RT_EXTERNAL_ONLY
MONO_API MonoType *mono_metadata_parse_field_type (MonoImage *m,
short field_flags,
const char *ptr,
MONO_API unsigned int mono_signature_hash (MonoMethodSignature *sig);
+MONO_RT_EXTERNAL_ONLY
MONO_API MonoMethodHeader *mono_metadata_parse_mh (MonoImage *m, const char *ptr);
MONO_API void mono_metadata_free_mh (MonoMethodHeader *mh);