Apply changes from https://github.com/dotnet/runtime/commit/eb1756e97d23df13bc6fe798e...
[mono-project.git] / mono / metadata / class-init.h
blob3570f7f9aab38df7de7e7ca5c4b057c8eeacaf4e
1 /**
2 * \file
3 * Copyright 2018 Microsoft
4 * Licensed under the MIT license. See LICENSE file in the project root for full license information.
5 */
6 #ifndef __MONO_METADATA_CLASS_INIT_H__
7 #define __MONO_METADATA_CLASS_INIT_H__
9 #include <glib.h>
10 #include <mono/metadata/metadata.h>
11 #include <mono/metadata/class-internals.h>
13 gboolean
14 mono_class_init_internal (MonoClass *klass);
16 void
17 mono_classes_init (void);
19 void
20 mono_classes_cleanup (void);
22 MonoClass *
23 mono_class_create_from_typedef (MonoImage *image, guint32 type_token, MonoError *error);
25 MonoClass*
26 mono_class_create_generic_inst (MonoGenericClass *gclass);
28 MonoClass *
29 mono_class_create_bounded_array (MonoClass *element_class, uint32_t rank, mono_bool bounded);
31 MonoClass *
32 mono_class_create_array (MonoClass *element_class, uint32_t rank);
34 MonoClass *
35 mono_class_create_generic_parameter (MonoGenericParam *param);
37 MonoClass *
38 mono_class_create_ptr (MonoType *type);
40 MonoClass *
41 mono_class_create_fnptr (MonoMethodSignature *sig);
43 void
44 mono_class_setup_vtable_general (MonoClass *klass, MonoMethod **overrides, int onum, GList *in_setup);
46 void
47 mono_class_init_sizes (MonoClass *klass);
49 void
50 mono_class_setup_basic_field_info (MonoClass *klass);
52 void
53 mono_class_setup_fields (MonoClass *klass);
55 void
56 mono_class_setup_methods (MonoClass *klass);
58 void
59 mono_class_setup_properties (MonoClass *klass);
61 void
62 mono_class_setup_events (MonoClass *klass);
64 void
65 mono_class_layout_fields (MonoClass *klass, int base_instance_size, int packing_size, int real_size, gboolean sre);
67 void
68 mono_class_setup_interface_offsets (MonoClass *klass);
70 void
71 mono_class_setup_vtable (MonoClass *klass);
73 void
74 mono_class_setup_parent (MonoClass *klass, MonoClass *parent);
76 void
77 mono_class_setup_mono_type (MonoClass *klass);
79 void
80 mono_class_setup_has_finalizer (MonoClass *klass);
82 void
83 mono_class_setup_nested_types (MonoClass *klass);
85 void
86 mono_class_setup_runtime_info (MonoClass *klass, MonoDomain *domain, MonoVTable *vtable);
88 MonoClass *
89 mono_class_create_array_fill_type (void);
91 #endif