[runtime] Transition the trampoline code to use memory managers for memory allocation...
[mono-project.git] / mono / mini / llvmonly-runtime.h
blob35aa4dc16a864a37ecdb3af3bd5d2f5cb22e6be6
1 /**
2 * \file
3 * Copyright 2002-2003 Ximian Inc
4 * Copyright 2003-2011 Novell Inc
5 * Copyright 2011 Xamarin Inc
6 * Licensed under the MIT license. See LICENSE file in the project root for full license information.
7 */
8 #ifndef __MONO_LLVMONLY_RUNTIME_H__
9 #define __MONO_LLVMONLY_RUNTIME_H__
11 #include "mini-runtime.h"
12 #include "aot-runtime.h"
14 gpointer mini_llvmonly_load_method (MonoMethod *method, gboolean caller_gsharedvt, gboolean need_unbox, gpointer *out_arg, MonoError *error);
15 MonoFtnDesc* mini_llvmonly_load_method_ftndesc (MonoMethod *method, gboolean caller_gsharedvt, gboolean need_unbox, MonoError *error);
16 gpointer mini_llvmonly_load_method_delegate (MonoMethod *method, gboolean caller_gsharedvt, gboolean need_unbox, gpointer *out_arg, MonoError *error);
17 gpointer mini_llvmonly_get_delegate_arg (MonoMethod *method, gpointer method_ptr);
18 gpointer mini_llvmonly_add_method_wrappers (MonoMethod *m, gpointer compiled_method, gboolean caller_gsharedvt, gboolean add_unbox_tramp, gpointer *out_arg);
19 MonoFtnDesc *mini_llvmonly_create_ftndesc (MonoDomain *domain, gpointer addr, gpointer arg);
20 gpointer mini_llvmonly_get_imt_trampoline (MonoVTable *vtable, MonoDomain *domain, MonoIMTCheckItem **imt_entries, int count, gpointer fail_tramp);
21 gpointer mini_llvmonly_get_vtable_trampoline (MonoVTable *vt, int slot_index, int index);
23 G_EXTERN_C gpointer mini_llvmonly_init_vtable_slot (MonoVTable *vtable, int slot);
24 G_EXTERN_C gpointer mini_llvmonly_resolve_vcall_gsharedvt (MonoObject *this_obj, int imt_slot, MonoMethod *imt_method, gpointer *out_arg);
25 G_EXTERN_C gpointer mini_llvmonly_resolve_iface_call_gsharedvt (MonoObject *this_obj, int imt_slot, MonoMethod *imt_method, gpointer *out_arg);
26 G_EXTERN_C MonoFtnDesc* mini_llvmonly_resolve_generic_virtual_call (MonoVTable *vt, int slot, MonoMethod *imt_method);
27 G_EXTERN_C MonoFtnDesc* mini_llvmonly_resolve_generic_virtual_iface_call (MonoVTable *vt, int imt_slot, MonoMethod *imt_method);
28 G_EXTERN_C void mini_llvmonly_init_delegate (MonoDelegate *del);
29 G_EXTERN_C void mini_llvmonly_init_delegate_virtual (MonoDelegate *del, MonoObject *target, MonoMethod *method);
31 /* Used for regular llvm as well */
32 G_EXTERN_C void mini_llvm_init_method (MonoAotFileInfo *info, gpointer aot_module, gpointer method_info, MonoVTable *vtable);
34 G_EXTERN_C void mini_llvmonly_throw_nullref_exception (void);
36 G_EXTERN_C void mini_llvmonly_throw_aot_failed_exception (const char *name);
38 #endif