3 * Copyright 2018 Microsoft
4 * Licensed under the MIT license. See LICENSE file in the project root for full license information.
6 #ifndef __MONO_METADATA_CLASS_INIT_H__
7 #define __MONO_METADATA_CLASS_INIT_H__
10 #include <mono/metadata/metadata.h>
11 #include <mono/metadata/class-internals.h>
16 mono_classes_init (void);
19 mono_classes_cleanup (void);
22 mono_class_create_from_typedef (MonoImage
*image
, guint32 type_token
, MonoError
*error
);
25 mono_class_create_generic_inst (MonoGenericClass
*gclass
);
28 mono_class_create_bounded_array (MonoClass
*element_class
, uint32_t rank
, mono_bool bounded
);
31 mono_class_create_array (MonoClass
*element_class
, uint32_t rank
);
34 mono_class_create_generic_parameter (MonoGenericParam
*param
);
37 mono_class_create_ptr (MonoType
*type
);
40 mono_class_create_fnptr (MonoMethodSignature
*sig
);
43 mono_class_setup_vtable_general (MonoClass
*klass
, MonoMethod
**overrides
, int onum
, GList
*in_setup
);
46 mono_class_init_sizes (MonoClass
*klass
);
49 mono_class_setup_basic_field_info (MonoClass
*klass
);
52 mono_class_setup_fields (MonoClass
*klass
);
55 mono_class_setup_methods (MonoClass
*klass
);
58 mono_class_setup_properties (MonoClass
*klass
);
61 mono_class_setup_events (MonoClass
*klass
);
64 mono_class_layout_fields (MonoClass
*klass
, int base_instance_size
, int packing_size
, int real_size
, gboolean sre
);
67 mono_class_setup_interface_offsets (MonoClass
*klass
);
70 mono_class_setup_vtable (MonoClass
*klass
);
73 mono_class_setup_parent (MonoClass
*klass
, MonoClass
*parent
);
76 mono_class_setup_mono_type (MonoClass
*klass
);
79 mono_class_setup_has_finalizer (MonoClass
*klass
);
82 mono_class_setup_nested_types (MonoClass
*klass
);
85 mono_class_setup_runtime_info (MonoClass
*klass
, MonoDomain
*domain
, MonoVTable
*vtable
);
88 mono_class_create_array_fill_type (void);