Initial commit.
This commit is contained in:
@@ -0,0 +1,21 @@
|
||||
#pragma once
|
||||
|
||||
#if RUNTIME_MONO
|
||||
|
||||
#if _MSC_VER
|
||||
typedef wchar_t Il2CppChar;
|
||||
#elif __has_feature(cxx_unicode_literals)
|
||||
typedef char16_t Il2CppChar;
|
||||
#else
|
||||
typedef uint16_t Il2CppChar;
|
||||
#endif
|
||||
|
||||
void il2cpp_install_callbacks();
|
||||
void il2cpp_mono_runtime_init();
|
||||
void il2cpp_mono_set_config_utf16(const Il2CppChar* executablePath);
|
||||
void il2cpp_mono_set_config(const char* executablePath);
|
||||
void il2cpp_mono_set_commandline_arguments_utf16(int argc, const Il2CppChar* const* argv);
|
||||
void il2cpp_mono_set_commandline_arguments(int argc, const char* const* argv);
|
||||
void il2cpp_mono_initialize_metadata();
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,63 @@
|
||||
#pragma once
|
||||
#include "il2cpp-metadata.h"
|
||||
|
||||
struct MonoMethodInfoMetadata
|
||||
{
|
||||
int64_t hash;
|
||||
int32_t invoker_index;
|
||||
int32_t method_pointer_index;
|
||||
};
|
||||
|
||||
struct MonoRGCTXDefinition
|
||||
{
|
||||
Il2CppRGCTXDataType type;
|
||||
AssemblyIndex assemblyIndex;
|
||||
int32_t token;
|
||||
int32_t generic_parameter_index;
|
||||
};
|
||||
|
||||
struct RuntimeGenericContextInfo
|
||||
{
|
||||
uint64_t hash;
|
||||
int32_t rgctxStart;
|
||||
int32_t rgctxCount;
|
||||
};
|
||||
|
||||
struct MonoMetadataToken
|
||||
{
|
||||
AssemblyIndex assemblyIndex;
|
||||
int32_t token;
|
||||
};
|
||||
|
||||
#pragma pack(push, p1,4)
|
||||
struct MonoMethodMetadata
|
||||
{
|
||||
MonoMetadataToken metadataToken;
|
||||
MethodIndex reversePInvokeWrapperIndex;
|
||||
uint64_t hash;
|
||||
};
|
||||
#pragma pack(pop, p1)
|
||||
|
||||
#pragma pack(push, p1,4)
|
||||
struct MonoClassMetadata
|
||||
{
|
||||
MonoMetadataToken metadataToken;
|
||||
int32_t genericParametersOffset;
|
||||
int32_t genericParametersCount;
|
||||
int32_t isPointer;
|
||||
int32_t rank; //if rank == 0, the token is for a non-array type, otherwise the rank is valid and the token represents the element type of the array
|
||||
int32_t elementTypeIndex;
|
||||
};
|
||||
#pragma pack(pop, p1)
|
||||
|
||||
struct MonoFieldMetadata
|
||||
{
|
||||
TypeIndex parentTypeIndex;
|
||||
int32_t token;
|
||||
};
|
||||
|
||||
struct MonoGenericInstMetadata
|
||||
{
|
||||
uint32_t type_argc;
|
||||
const TypeIndex *type_argv_indices;
|
||||
};
|
||||
@@ -0,0 +1,51 @@
|
||||
#pragma once
|
||||
|
||||
#if RUNTIME_MONO
|
||||
|
||||
#include "il2cpp-metadata.h"
|
||||
#include <vector>
|
||||
#include <string>
|
||||
|
||||
struct MethodInfo;
|
||||
struct VirtualInvokeData;
|
||||
struct Il2CppInteropData;
|
||||
|
||||
void il2cpp_mono_method_initialize_function_pointers(MonoMethod* method, MonoError* error);
|
||||
MonoAssembly* il2cpp_mono_assembly_from_index(AssemblyIndex index);
|
||||
void* il2cpp_mono_class_rgctx(MonoClass* klass, Il2CppRGCTXDataType rgctxType, int rgctxIndex, bool useSharedVersion);
|
||||
void* il2cpp_mono_method_rgctx(MonoMethod* method, Il2CppRGCTXDataType rgctxType, int rgctxIndex, bool useSharedVersion);
|
||||
MonoMethod* il2cpp_mono_get_virtual_target_method(MonoMethod* method, MonoObject* obj);
|
||||
void il2cpp_mono_get_invoke_data(MonoMethod* method, void* obj, VirtualInvokeData* invokeData);
|
||||
void il2cpp_mono_get_virtual_invoke_data(MonoMethod* method, void* obj, VirtualInvokeData* invokeData);
|
||||
void il2cpp_mono_get_interface_invoke_data(MonoMethod* method, void* obj, VirtualInvokeData* invokeData);
|
||||
void il2cpp_mono_initialize_method_metadata(uint32_t index);
|
||||
void il2cpp_mono_raise_execution_engine_exception_if_method_is_not_found(MonoMethod* method);
|
||||
Il2CppAsyncResult* il2cpp_mono_delegate_begin_invoke(MonoDelegate* delegate, void** params, MonoDelegate* asyncCallback, MonoObject* state);
|
||||
MonoObject* il2cpp_mono_delegate_end_invoke(Il2CppAsyncResult* asyncResult, void **out_args);
|
||||
MonoArray* MonoArrayNew(MonoClass* elementType, uintptr_t length);
|
||||
MonoMethod* MethodFromIndex(MethodIndex index);
|
||||
MonoMethod* GenericMethodFromIndex(MethodIndex index);
|
||||
const Il2CppInteropData* FindInteropDataFor(MonoClass* klass);
|
||||
void RuntimeInit(MonoClass* klass);
|
||||
std::string il2cpp_mono_format_exception(const MonoException *exc);
|
||||
void initialize_interop_data_map();
|
||||
void il2cpp_mono_error_init(MonoError *error);
|
||||
bool il2cpp_mono_error_ok(MonoError *error);
|
||||
MonoVTable* il2cpp_mono_class_vtable(MonoDomain *domain, MonoClass *klass);
|
||||
void* il2cpp_mono_get_static_field_address(MonoClass *klass, MonoClassField *field);
|
||||
void* il2cpp_mono_get_thread_static_field_address(MonoClass *klass, MonoClassField *field);
|
||||
|
||||
#if IL2CPP_ENABLE_NATIVE_STACKTRACES
|
||||
struct MethodDefinitionKey
|
||||
{
|
||||
Il2CppMethodPointer method;
|
||||
MethodIndex methodIndex;
|
||||
bool isGeneric;
|
||||
};
|
||||
|
||||
void RegisterAllManagedMethods();
|
||||
#endif // IL2CPP_ENABLE_NATIVE_STACKTRACES
|
||||
|
||||
extern MonoDomain *g_MonoDomain;
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user