} MonoDynamicStream;
typedef struct {
+ guint32 alloc_rows;
guint32 rows;
guint32 row_size; /* calculated later with column_sizes */
guint32 columns;
} sections [MONO_SECTION_MAX];
GHashTable *typeref;
GHashTable *handleref;
- GHashTable *tokens;
+ MonoGHashTable *tokens;
+ MonoGHashTable *blob_cache;
GList *array_methods;
MonoGHashTable *token_fixups;
+ MonoGHashTable *method_to_table_idx;
+ MonoGHashTable *field_to_table_idx;
+ gboolean run;
+ gboolean save;
char *strong_name;
guint32 strong_name_size;
MonoDynamicStream pefile;
guint32 flags;
guint32 pekind;
MonoBoolean delay_sign;
+ guint32 access;
} MonoReflectionAssemblyBuilder;
typedef struct {
MonoArray *guid;
guint32 table_idx;
MonoReflectionAssemblyBuilder *assemblyb;
+ MonoArray *global_methods;
+ MonoArray *global_fields;
} MonoReflectionModuleBuilder;
typedef struct {
MonoReflectionModuleBuilder *module;
MonoArray *arguments;
guint32 type;
+ MonoReflectionType *return_type;
+ guint32 call_conv;
+ guint32 unmanaged_call_conv;
} MonoReflectionSigHelper;
+typedef struct {
+ MonoMethod *ctor;
+ guint32 data_size;
+ const guchar* data;
+} MonoCustomAttrEntry;
+
+typedef struct {
+ int num_attrs;
+ MonoImage *image;
+ MonoCustomAttrEntry attrs [MONO_ZERO_LEN_ARRAY];
+} MonoCustomAttrInfo;
char* mono_type_get_name (MonoType *type);
void mono_image_basic_init (MonoReflectionAssemblyBuilder *assembly);
guint32 mono_image_insert_string (MonoReflectionAssemblyBuilder *assembly, MonoString *str);
guint32 mono_image_create_token (MonoDynamicAssembly *assembly, MonoObject *obj);
+void mono_image_module_basic_init (MonoReflectionModuleBuilder *module);
MonoReflectionAssembly* mono_assembly_get_object (MonoDomain *domain, MonoAssembly *assembly);
MonoReflectionModule* mono_module_get_object (MonoDomain *domain, MonoImage *image);
MonoArray* mono_reflection_get_custom_attrs (MonoObject *obj);
MonoArray* mono_reflection_get_custom_attrs_blob (MonoObject *ctor, MonoArray *ctorArgs, MonoArray *properties, MonoArray *porpValues, MonoArray *fields, MonoArray* fieldValues);
+MonoArray* mono_custom_attrs_construct (MonoCustomAttrInfo *cinfo);
+MonoCustomAttrInfo* mono_custom_attrs_from_index (MonoImage *image, guint32 idx);
+MonoCustomAttrInfo* mono_custom_attrs_from_method (MonoMethod *method);
+MonoCustomAttrInfo* mono_custom_attrs_from_class (MonoClass *klass);
+MonoCustomAttrInfo* mono_custom_attrs_from_assembly (MonoAssembly *assembly);
+MonoCustomAttrInfo* mono_custom_attrs_from_property (MonoClass *klass, MonoProperty *property);
+MonoCustomAttrInfo* mono_custom_attrs_from_event (MonoClass *klass, MonoEvent *event);
+MonoCustomAttrInfo* mono_custom_attrs_from_field (MonoClass *klass, MonoClassField *field);
+MonoCustomAttrInfo* mono_custom_attrs_from_param (MonoMethod *method, guint32 param);
+
void mono_reflection_setup_internal_class (MonoReflectionTypeBuilder *tb);
void mono_reflection_create_internal_class (MonoReflectionTypeBuilder *tb);
MonoArray *mono_reflection_sighelper_get_signature_field (MonoReflectionSigHelper *sig);
+gpointer
+mono_reflection_lookup_dynamic_token (MonoImage *image, guint32 token);
+
+void
+mono_image_build_metadata (MonoReflectionAssemblyBuilder *assemblyb);
+
#endif /* __METADATA_REFLECTION_H__ */