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>
14 mono_class_init_internal (MonoClass
*klass
);
17 mono_classes_init (void);
20 mono_classes_cleanup (void);
23 mono_class_create_from_typedef (MonoImage
*image
, guint32 type_token
, MonoError
*error
);
26 mono_class_create_generic_inst (MonoGenericClass
*gclass
);
29 mono_class_create_bounded_array (MonoClass
*element_class
, uint32_t rank
, mono_bool bounded
);
32 mono_class_create_array (MonoClass
*element_class
, uint32_t rank
);
35 mono_class_create_generic_parameter (MonoGenericParam
*param
);
38 mono_class_create_ptr (MonoType
*type
);
41 mono_class_create_fnptr (MonoMethodSignature
*sig
);
44 mono_class_setup_vtable_general (MonoClass
*klass
, MonoMethod
**overrides
, int onum
, GList
*in_setup
);
47 mono_class_init_sizes (MonoClass
*klass
);
50 mono_class_setup_basic_field_info (MonoClass
*klass
);
53 mono_class_setup_fields (MonoClass
*klass
);
56 mono_class_setup_methods (MonoClass
*klass
);
59 mono_class_setup_properties (MonoClass
*klass
);
62 mono_class_setup_events (MonoClass
*klass
);
65 mono_class_layout_fields (MonoClass
*klass
, int base_instance_size
, int packing_size
, int real_size
, gboolean sre
);
68 mono_class_setup_interface_offsets (MonoClass
*klass
);
71 mono_class_setup_vtable (MonoClass
*klass
);
74 mono_class_setup_parent (MonoClass
*klass
, MonoClass
*parent
);
77 mono_class_setup_mono_type (MonoClass
*klass
);
80 mono_class_setup_has_finalizer (MonoClass
*klass
);
83 mono_class_setup_nested_types (MonoClass
*klass
);
86 mono_class_setup_runtime_info (MonoClass
*klass
, MonoDomain
*domain
, MonoVTable
*vtable
);
89 mono_class_create_array_fill_type (void);