projects
/
mono.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
[interp] remove g_error call
[mono.git]
/
mono
/
metadata
/
metadata.h
diff --git
a/mono/metadata/metadata.h
b/mono/metadata/metadata.h
index b9c591bf771347047fe23cb859c056bc34c55029..1c611f430070d99e83fc233d765162e3dcbffa6f 100644
(file)
--- a/
mono/metadata/metadata.h
+++ b/
mono/metadata/metadata.h
@@
-10,27
+10,14
@@
MONO_BEGIN_DECLS
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)
#define MONO_TYPE_IS_REFERENCE(t) mono_type_is_reference (t)
#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)
#define MONO_TYPE_IS_REFERENCE(t) mono_type_is_reference (t)
-#define MONO_CLASS_IS_INTERFACE(c) ((
c->flags
& TYPE_ATTRIBUTE_INTERFACE) || (c->byval_arg.type == MONO_TYPE_VAR) || (c->byval_arg.type == MONO_TYPE_MVAR))
+#define MONO_CLASS_IS_INTERFACE(c) ((
mono_class_get_flags (c)
& TYPE_ATTRIBUTE_INTERFACE) || (c->byval_arg.type == MONO_TYPE_VAR) || (c->byval_arg.type == MONO_TYPE_MVAR))
-#define MONO_CLASS_IS_IMPORT(c) ((
c->flags
& TYPE_ATTRIBUTE_IMPORT))
+#define MONO_CLASS_IS_IMPORT(c) ((
mono_class_get_flags (c)
& TYPE_ATTRIBUTE_IMPORT))
typedef struct _MonoClass MonoClass;
typedef struct _MonoDomain MonoDomain;
typedef struct _MonoClass MonoClass;
typedef struct _MonoDomain MonoDomain;
@@
-89,6
+76,9
@@
typedef enum {
MONO_NATIVE_LPSTRUCT = 0x2b,
MONO_NATIVE_CUSTOM = 0x2c,
MONO_NATIVE_ERROR = 0x2d,
MONO_NATIVE_LPSTRUCT = 0x2b,
MONO_NATIVE_CUSTOM = 0x2c,
MONO_NATIVE_ERROR = 0x2d,
+ // TODO: MONO_NATIVE_IINSPECTABLE = 0x2e
+ // TODO: MONO_NATIVE_HSTRING = 0x2f
+ MONO_NATIVE_UTF8STR = 0x30,
MONO_NATIVE_MAX = 0x50 /* no info */
} MonoMarshalNative;
MONO_NATIVE_MAX = 0x50 /* no info */
} MonoMarshalNative;
@@
-175,9
+165,16
@@
typedef enum {
MONO_MARSHAL_FREE_ARRAY,
MONO_MARSHAL_CONV_BSTR_STR,
MONO_MARSHAL_CONV_SAFEHANDLE,
MONO_MARSHAL_FREE_ARRAY,
MONO_MARSHAL_CONV_BSTR_STR,
MONO_MARSHAL_CONV_SAFEHANDLE,
- MONO_MARSHAL_CONV_HANDLEREF
+ MONO_MARSHAL_CONV_HANDLEREF,
+ MONO_MARSHAL_CONV_STR_UTF8STR,
+ MONO_MARSHAL_CONV_SB_UTF8STR,
+ MONO_MARSHAL_CONV_UTF8STR_STR,
+ MONO_MARSHAL_CONV_UTF8STR_SB,
+ MONO_MARSHAL_CONV_FIXED_BUFFER
} MonoMarshalConv;
} MonoMarshalConv;
+#define MONO_MARSHAL_CONV_INVALID ((MonoMarshalConv)-1)
+
typedef struct {
MonoMarshalNative native;
union {
typedef struct {
MonoMarshalNative native;
union {
@@
-190,6
+187,7
@@
typedef struct {
struct {
char *custom_name;
char *cookie;
struct {
char *custom_name;
char *cookie;
+ MonoImage *image;
} custom_data;
struct {
MonoMarshalVariant elem_type;
} custom_data;
struct {
MonoMarshalVariant elem_type;
@@
-294,7
+292,6
@@
typedef struct {
typedef struct _MonoType MonoType;
typedef struct _MonoGenericInst MonoGenericInst;
typedef struct _MonoGenericClass MonoGenericClass;
typedef struct _MonoType MonoType;
typedef struct _MonoGenericInst MonoGenericInst;
typedef struct _MonoGenericClass MonoGenericClass;
-typedef struct _MonoDynamicGenericClass MonoDynamicGenericClass;
typedef struct _MonoGenericContext MonoGenericContext;
typedef struct _MonoGenericContainer MonoGenericContainer;
typedef struct _MonoGenericParam MonoGenericParam;
typedef struct _MonoGenericContext MonoGenericContext;
typedef struct _MonoGenericContainer MonoGenericContainer;
typedef struct _MonoGenericParam MonoGenericParam;
@@
-311,7
+308,10
@@
typedef struct {
struct _MonoArrayType {
MonoClass *eklass;
struct _MonoArrayType {
MonoClass *eklass;
+ // Number of dimensions of the array
uint8_t rank;
uint8_t rank;
+
+ // Arrays recording known upper and lower index bounds for each dimension
uint8_t numsizes;
uint8_t numlobounds;
int *sizes;
uint8_t numsizes;
uint8_t numlobounds;
int *sizes;
@@
-357,6
+357,7
@@
MONO_API mono_bool mono_type_is_struct (MonoType *type);
MONO_API mono_bool mono_type_is_void (MonoType *type);
MONO_API mono_bool mono_type_is_pointer (MonoType *type);
MONO_API mono_bool mono_type_is_reference (MonoType *type);
MONO_API mono_bool mono_type_is_void (MonoType *type);
MONO_API mono_bool mono_type_is_pointer (MonoType *type);
MONO_API mono_bool mono_type_is_reference (MonoType *type);
+mono_bool mono_type_is_generic_parameter (MonoType *type);
MONO_API MonoType*
mono_signature_get_return_type (MonoMethodSignature *sig);
MONO_API MonoType*
mono_signature_get_return_type (MonoMethodSignature *sig);
@@
-379,6
+380,9
@@
mono_signature_is_instance (MonoMethodSignature *sig);
MONO_API mono_bool
mono_signature_explicit_this (MonoMethodSignature *sig);
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);
MONO_API uint32_t mono_metadata_parse_typedef_or_ref (MonoImage *m,
const char *ptr,
const char **rptr);
@@
-386,21
+390,25
@@
MONO_API int mono_metadata_parse_custom_mod (MonoImage *m,
MonoCustomMod *dest,
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_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_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_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 MonoType *mono_metadata_parse_field_type (MonoImage *m,
short field_flags,
const char *ptr,
@@
-425,6
+433,7
@@
MONO_API MonoMethodSignature *mono_metadata_signature_alloc (MonoImage *image,
MONO_API MonoMethodSignature *mono_metadata_signature_dup (MonoMethodSignature *sig);
MONO_API MonoMethodSignature *mono_metadata_signature_dup (MonoMethodSignature *sig);
+MONO_RT_EXTERNAL_ONLY
MONO_API MonoMethodSignature *mono_metadata_parse_signature (MonoImage *image,
uint32_t token);
MONO_API MonoMethodSignature *mono_metadata_parse_signature (MonoImage *image,
uint32_t token);
@@
-439,6
+448,7
@@
MONO_API mono_bool mono_metadata_signature_equal (MonoMethodSignature *
MONO_API unsigned int mono_signature_hash (MonoMethodSignature *sig);
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);
MONO_API MonoMethodHeader *mono_metadata_parse_mh (MonoImage *m, const char *ptr);
MONO_API void mono_metadata_free_mh (MonoMethodHeader *mh);
@@
-481,6
+491,8
@@
MONO_API uint32_t mono_metadata_token_from_dor (uint32_t dor_index);
MONO_API char *mono_guid_to_string (const uint8_t *guid);
MONO_API char *mono_guid_to_string (const uint8_t *guid);
+MONO_API char *mono_guid_to_string_minimal (const uint8_t *guid);
+
MONO_API uint32_t mono_metadata_declsec_from_index (MonoImage *meta, uint32_t idx);
MONO_API uint32_t mono_metadata_translate_token_index (MonoImage *image, int table, uint32_t idx);
MONO_API uint32_t mono_metadata_declsec_from_index (MonoImage *meta, uint32_t idx);
MONO_API uint32_t mono_metadata_translate_token_index (MonoImage *image, int table, uint32_t idx);