Initial commit.
This commit is contained in:
@@ -0,0 +1,9 @@
|
||||
#pragma once
|
||||
|
||||
extern const uint8_t CategoryData_v4[71680];
|
||||
extern const uint8_t NumericData[12938];
|
||||
extern const double NumericDataValues[58];
|
||||
extern const Il2CppChar ToLowerDataLow[9424];
|
||||
extern const Il2CppChar ToLowerDataHigh[223];
|
||||
extern const Il2CppChar ToUpperDataLow[9450];
|
||||
extern const Il2CppChar ToUpperDataHigh[223];
|
||||
@@ -0,0 +1,359 @@
|
||||
#pragma once
|
||||
|
||||
#include "il2cpp-config.h"
|
||||
|
||||
#include <cassert>
|
||||
#include <cstdlib>
|
||||
#include <limits>
|
||||
#include <string>
|
||||
#include <math.h>
|
||||
#include <vector>
|
||||
|
||||
#include "il2cpp-object-internals.h"
|
||||
#include "il2cpp-class-internals.h"
|
||||
#include "il2cpp-tabledefs.h"
|
||||
|
||||
#include "gc/GarbageCollector.h"
|
||||
#include "vm/PlatformInvoke.h"
|
||||
#include "vm/StackTrace.h"
|
||||
#include "vm/PlatformInvoke.h"
|
||||
#include "vm/StackTrace.h"
|
||||
#include "vm-utils/Debugger.h"
|
||||
#include "utils/StringUtils.h"
|
||||
#include "utils/StringView.h"
|
||||
#include "utils/Exception.h"
|
||||
#include "utils/Output.h"
|
||||
#include "utils/Runtime.h"
|
||||
|
||||
REAL_NORETURN IL2CPP_NO_INLINE void il2cpp_codegen_no_return();
|
||||
|
||||
#if IL2CPP_COMPILER_MSVC
|
||||
#define DEFAULT_CALL STDCALL
|
||||
#else
|
||||
#define DEFAULT_CALL
|
||||
#endif
|
||||
|
||||
#if defined(__ARMCC_VERSION)
|
||||
inline double bankers_round(double x)
|
||||
{
|
||||
return __builtin_round(x);
|
||||
}
|
||||
|
||||
inline float bankers_roundf(float x)
|
||||
{
|
||||
return __builtin_roundf(x);
|
||||
}
|
||||
|
||||
#else
|
||||
inline double bankers_round(double x)
|
||||
{
|
||||
double integerPart;
|
||||
if (x >= 0.0)
|
||||
{
|
||||
if (modf(x, &integerPart) == 0.5)
|
||||
return (int64_t)integerPart % 2 == 0 ? integerPart : integerPart + 1.0;
|
||||
return floor(x + 0.5);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (modf(x, &integerPart) == -0.5)
|
||||
return (int64_t)integerPart % 2 == 0 ? integerPart : integerPart - 1.0;
|
||||
return ceil(x - 0.5);
|
||||
}
|
||||
}
|
||||
|
||||
inline float bankers_roundf(float x)
|
||||
{
|
||||
double integerPart;
|
||||
if (x >= 0.0f)
|
||||
{
|
||||
if (modf(x, &integerPart) == 0.5)
|
||||
return (int64_t)integerPart % 2 == 0 ? (float)integerPart : (float)integerPart + 1.0f;
|
||||
return floorf(x + 0.5f);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (modf(x, &integerPart) == -0.5)
|
||||
return (int64_t)integerPart % 2 == 0 ? (float)integerPart : (float)integerPart - 1.0f;
|
||||
return ceilf(x - 0.5f);
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
// returns true if overflow occurs
|
||||
inline bool il2cpp_codegen_check_mul_overflow_i64(int64_t a, int64_t b, int64_t imin, int64_t imax)
|
||||
{
|
||||
// TODO: use a better algorithm without division
|
||||
uint64_t ua = (uint64_t)llabs(a);
|
||||
uint64_t ub = (uint64_t)llabs(b);
|
||||
|
||||
uint64_t c;
|
||||
if ((a > 0 && b > 0) || (a <= 0 && b <= 0))
|
||||
c = (uint64_t)llabs(imax);
|
||||
else
|
||||
c = (uint64_t)llabs(imin);
|
||||
|
||||
return ua != 0 && ub > c / ua;
|
||||
}
|
||||
|
||||
inline bool il2cpp_codegen_check_mul_oveflow_u64(uint64_t a, uint64_t b)
|
||||
{
|
||||
return b != 0 && (a * b) / b != a;
|
||||
}
|
||||
|
||||
inline int32_t il2cpp_codegen_abs(uint32_t value)
|
||||
{
|
||||
return abs(static_cast<int32_t>(value));
|
||||
}
|
||||
|
||||
inline int32_t il2cpp_codegen_abs(int32_t value)
|
||||
{
|
||||
return abs(value);
|
||||
}
|
||||
|
||||
inline int64_t il2cpp_codegen_abs(uint64_t value)
|
||||
{
|
||||
return llabs(static_cast<int64_t>(value));
|
||||
}
|
||||
|
||||
inline int64_t il2cpp_codegen_abs(int64_t value)
|
||||
{
|
||||
return llabs(value);
|
||||
}
|
||||
|
||||
// Exception support macros
|
||||
#define IL2CPP_LEAVE(Offset, Target) \
|
||||
__leave_target = Offset; \
|
||||
goto Target;
|
||||
|
||||
#define IL2CPP_END_FINALLY(Id) \
|
||||
goto __CLEANUP_ ## Id;
|
||||
|
||||
#define IL2CPP_CLEANUP(Id) \
|
||||
__CLEANUP_ ## Id:
|
||||
|
||||
#define IL2CPP_RETHROW_IF_UNHANDLED(ExcType) \
|
||||
if(__last_unhandled_exception) { \
|
||||
ExcType _tmp_exception_local = __last_unhandled_exception; \
|
||||
__last_unhandled_exception = 0; \
|
||||
il2cpp_codegen_raise_exception(_tmp_exception_local); \
|
||||
}
|
||||
|
||||
#define IL2CPP_JUMP_TBL(Offset, Target) \
|
||||
if(__leave_target == Offset) { \
|
||||
__leave_target = 0; \
|
||||
goto Target; \
|
||||
}
|
||||
|
||||
#define IL2CPP_END_CLEANUP(Offset, Target) \
|
||||
if(__leave_target == Offset) \
|
||||
goto Target;
|
||||
|
||||
|
||||
#if IL2CPP_MONO_DEBUGGER
|
||||
#define IL2CPP_RAISE_MANAGED_EXCEPTION(message, seqPoint, lastManagedFrame) \
|
||||
do {\
|
||||
il2cpp_codegen_raise_exception((Exception_t*)message, seqPoint, (MethodInfo*)lastManagedFrame);\
|
||||
il2cpp_codegen_no_return();\
|
||||
} while (0)
|
||||
#else
|
||||
#define IL2CPP_RAISE_MANAGED_EXCEPTION(message, seqPoint, lastManagedFrame) \
|
||||
do {\
|
||||
il2cpp_codegen_raise_exception((Exception_t*)message, NULL, (MethodInfo*)lastManagedFrame);\
|
||||
il2cpp_codegen_no_return();\
|
||||
} while (0)
|
||||
#endif
|
||||
|
||||
|
||||
template<typename T>
|
||||
inline void Il2CppCodeGenWriteBarrier(T** targetAddress, T* object)
|
||||
{
|
||||
il2cpp::gc::GarbageCollector::SetWriteBarrier((void**)targetAddress);
|
||||
}
|
||||
|
||||
void il2cpp_codegen_memory_barrier();
|
||||
|
||||
template<typename T>
|
||||
inline T VolatileRead(T* location)
|
||||
{
|
||||
T result = *location;
|
||||
il2cpp_codegen_memory_barrier();
|
||||
return result;
|
||||
}
|
||||
|
||||
template<typename T>
|
||||
inline void VolatileWrite(T** location, T* value)
|
||||
{
|
||||
il2cpp_codegen_memory_barrier();
|
||||
*location = value;
|
||||
Il2CppCodeGenWriteBarrier(location, value);
|
||||
}
|
||||
|
||||
template<typename T>
|
||||
inline void VolatileWrite(T* location, T value)
|
||||
{
|
||||
il2cpp_codegen_memory_barrier();
|
||||
*location = value;
|
||||
}
|
||||
|
||||
inline void il2cpp_codegen_write_to_stdout(const char* str)
|
||||
{
|
||||
il2cpp::utils::Output::WriteToStdout(str);
|
||||
}
|
||||
|
||||
inline void il2cpp_codegen_write_to_stderr(const char* str)
|
||||
{
|
||||
il2cpp::utils::Output::WriteToStderr(str);
|
||||
}
|
||||
|
||||
inline REAL_NORETURN void il2cpp_codegen_abort()
|
||||
{
|
||||
il2cpp::utils::Runtime::Abort();
|
||||
il2cpp_codegen_no_return();
|
||||
}
|
||||
|
||||
inline bool il2cpp_codegen_check_add_overflow(int64_t left, int64_t right)
|
||||
{
|
||||
return (right >= 0 && left > kIl2CppInt64Max - right) ||
|
||||
(left < 0 && right < kIl2CppInt64Min - left);
|
||||
}
|
||||
|
||||
inline bool il2cpp_codegen_check_sub_overflow(int64_t left, int64_t right)
|
||||
{
|
||||
return (right >= 0 && left < kIl2CppInt64Min + right) ||
|
||||
(right < 0 && left > kIl2CppInt64Max + right);
|
||||
}
|
||||
|
||||
template<bool, class T, class U>
|
||||
struct pick_first;
|
||||
|
||||
template<class T, class U>
|
||||
struct pick_first<true, T, U>
|
||||
{
|
||||
typedef T type;
|
||||
};
|
||||
|
||||
template<class T, class U>
|
||||
struct pick_first<false, T, U>
|
||||
{
|
||||
typedef U type;
|
||||
};
|
||||
|
||||
template<class T, class U>
|
||||
struct pick_bigger
|
||||
{
|
||||
typedef typename pick_first<(sizeof(T) >= sizeof(U)), T, U>::type type;
|
||||
};
|
||||
|
||||
template<typename T, typename U>
|
||||
inline typename pick_bigger<T, U>::type il2cpp_codegen_multiply(T left, U right)
|
||||
{
|
||||
return left * right;
|
||||
}
|
||||
|
||||
template<typename T, typename U>
|
||||
inline typename pick_bigger<T, U>::type il2cpp_codegen_add(T left, U right)
|
||||
{
|
||||
return left + right;
|
||||
}
|
||||
|
||||
template<typename T, typename U>
|
||||
inline typename pick_bigger<T, U>::type il2cpp_codegen_subtract(T left, U right)
|
||||
{
|
||||
return left - right;
|
||||
}
|
||||
|
||||
inline void il2cpp_codegen_memcpy(void* dest, const void* src, size_t count)
|
||||
{
|
||||
memcpy(dest, src, count);
|
||||
}
|
||||
|
||||
inline void il2cpp_codegen_memset(void* ptr, int value, size_t num)
|
||||
{
|
||||
memset(ptr, value, num);
|
||||
}
|
||||
|
||||
#if IL2CPP_MONO_DEBUGGER
|
||||
extern volatile uint32_t g_Il2CppDebuggerCheckPointEnabled;
|
||||
#endif
|
||||
|
||||
inline void il2cpp_codegen_register_debugger_data(const Il2CppDebuggerMetadataRegistration *data)
|
||||
{
|
||||
#if IL2CPP_MONO_DEBUGGER
|
||||
il2cpp::utils::Debugger::RegisterSequencePointCheck(&g_Il2CppDebuggerCheckPointEnabled);
|
||||
il2cpp::utils::Debugger::RegisterMetadata(data);
|
||||
#endif
|
||||
}
|
||||
|
||||
inline void il2cpp_codegen_check_sequence_point(Il2CppSequencePointExecutionContext* executionContext, size_t seqPointId)
|
||||
{
|
||||
#if IL2CPP_MONO_DEBUGGER
|
||||
if (g_Il2CppDebuggerCheckPointEnabled)
|
||||
il2cpp::utils::Debugger::CheckSequencePoint(executionContext, seqPointId);
|
||||
#endif
|
||||
}
|
||||
|
||||
inline void il2cpp_codegen_check_pause_point()
|
||||
{
|
||||
#if IL2CPP_MONO_DEBUGGER
|
||||
if (g_Il2CppDebuggerCheckPointEnabled)
|
||||
il2cpp::utils::Debugger::CheckPausePoint();
|
||||
#endif
|
||||
}
|
||||
|
||||
inline Il2CppSequencePoint* il2cpp_codegen_get_sequence_point(size_t id)
|
||||
{
|
||||
#if IL2CPP_MONO_DEBUGGER
|
||||
return il2cpp::utils::Debugger::GetSequencePoint(id);
|
||||
#else
|
||||
return NULL;
|
||||
#endif
|
||||
}
|
||||
|
||||
class MethodExitSequencePointChecker
|
||||
{
|
||||
private:
|
||||
size_t m_pSeqPoint;
|
||||
Il2CppSequencePointExecutionContext* m_seqPointStorage;
|
||||
|
||||
public:
|
||||
MethodExitSequencePointChecker(Il2CppSequencePointExecutionContext* seqPointStorage, size_t seqPointId) :
|
||||
m_seqPointStorage(seqPointStorage), m_pSeqPoint(seqPointId)
|
||||
{
|
||||
}
|
||||
|
||||
~MethodExitSequencePointChecker()
|
||||
{
|
||||
#if IL2CPP_MONO_DEBUGGER
|
||||
il2cpp_codegen_check_sequence_point(m_seqPointStorage, m_pSeqPoint);
|
||||
#endif
|
||||
}
|
||||
};
|
||||
|
||||
#ifdef _MSC_VER
|
||||
#define IL2CPP_DISABLE_OPTIMIZATIONS __pragma(optimize("", off))
|
||||
#define IL2CPP_ENABLE_OPTIMIZATIONS __pragma(optimize("", on))
|
||||
#else
|
||||
#define IL2CPP_DISABLE_OPTIMIZATIONS __attribute__ ((optnone))
|
||||
#define IL2CPP_ENABLE_OPTIMIZATIONS
|
||||
#endif
|
||||
|
||||
// NativeArray macros
|
||||
#define IL2CPP_NATIVEARRAY_GET_ITEM(TElementType, TTField, TIndex) \
|
||||
*(reinterpret_cast<TElementType*>(TTField) + TIndex)
|
||||
|
||||
#define IL2CPP_NATIVEARRAY_SET_ITEM(TElementType, TTField, TIndex, TValue) \
|
||||
*(reinterpret_cast<TElementType*>(TTField) + TIndex) = TValue;
|
||||
|
||||
#define IL2CPP_NATIVEARRAY_GET_LENGTH(TLengthField) \
|
||||
(TLengthField)
|
||||
|
||||
// Array Unsafe
|
||||
#define IL2CPP_ARRAY_UNSAFE_LOAD(TArray, TIndex) \
|
||||
(TArray)->GetAtUnchecked(static_cast<il2cpp_array_size_t>(TIndex))
|
||||
|
||||
inline bool il2cpp_codegen_object_reference_equals(const RuntimeObject *obj1, const RuntimeObject *obj2)
|
||||
{
|
||||
return obj1 == obj2;
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,995 @@
|
||||
#pragma once
|
||||
|
||||
#include "il2cpp-codegen-common.h"
|
||||
#include "il2cpp-mono-support.h"
|
||||
#include "mono-api.h"
|
||||
|
||||
struct ProfilerMethodSentry
|
||||
{
|
||||
ProfilerMethodSentry(const RuntimeMethod* method)
|
||||
#if IL2CPP_ENABLE_PROFILER
|
||||
: m_method(method)
|
||||
#endif
|
||||
{
|
||||
IL2CPP_NOT_IMPLEMENTED("Unity profiler hooks are not implemented yet for the libmonoruntime backend.");
|
||||
}
|
||||
|
||||
~ProfilerMethodSentry()
|
||||
{
|
||||
IL2CPP_NOT_IMPLEMENTED("Unity profiler hooks are not implemented yet for the libmonoruntime backend.");
|
||||
}
|
||||
|
||||
private:
|
||||
const RuntimeMethod* m_method;
|
||||
};
|
||||
|
||||
struct StackTraceSentry
|
||||
{
|
||||
StackTraceSentry(RuntimeMethod* method) : m_method(method)
|
||||
{
|
||||
MonoStackFrameInfo frame_info;
|
||||
|
||||
frame_info.method = method;
|
||||
frame_info.actual_method = method;
|
||||
frame_info.type = FRAME_TYPE_MANAGED;
|
||||
frame_info.managed = 1;
|
||||
frame_info.il_offset = 0;
|
||||
frame_info.native_offset = 0;
|
||||
frame_info.ji = (MonoJitInfo*)(void*)-1;
|
||||
|
||||
mono::vm::StackTrace::PushFrame(frame_info);
|
||||
}
|
||||
|
||||
~StackTraceSentry()
|
||||
{
|
||||
mono::vm::StackTrace::PopFrame();
|
||||
}
|
||||
|
||||
private:
|
||||
const RuntimeMethod* m_method;
|
||||
};
|
||||
|
||||
#define IL2CPP_FAKE_BOX_SENTRY (MonoThreadsSync*)UINTPTR_MAX
|
||||
|
||||
template<typename T>
|
||||
struct Il2CppFakeBox : RuntimeObject
|
||||
{
|
||||
T m_Value;
|
||||
|
||||
Il2CppFakeBox(RuntimeClass* boxedType, T* value)
|
||||
{
|
||||
vtable = il2cpp_mono_class_vtable(g_MonoDomain, boxedType);
|
||||
synchronisation = IL2CPP_FAKE_BOX_SENTRY;
|
||||
m_Value = *value;
|
||||
}
|
||||
};
|
||||
|
||||
inline bool il2cpp_codegen_is_fake_boxed_object(RuntimeObject* object)
|
||||
{
|
||||
return object->synchronisation == IL2CPP_FAKE_BOX_SENTRY;
|
||||
}
|
||||
|
||||
// TODO: This file should contain all the functions and type declarations needed for the generated code.
|
||||
// Hopefully, we stop including everything in the generated code and know exactly what dependencies we have.
|
||||
// Note that all parameter and return types should match the generated types not the runtime types.
|
||||
|
||||
// type registration
|
||||
|
||||
inline String_t* il2cpp_codegen_string_new_utf16(const il2cpp::utils::StringView<Il2CppChar>& str)
|
||||
{
|
||||
return (String_t*)mono_string_new_utf16(g_MonoDomain, (const mono_unichar2*)str.Str(), (int32_t)str.Length());
|
||||
}
|
||||
|
||||
inline NORETURN void il2cpp_codegen_raise_exception(Exception_t *ex, Il2CppSequencePoint *seqPoint = NULL, MethodInfo* lastManagedFrame = NULL)
|
||||
{
|
||||
mono_raise_exception((RuntimeException*)ex);
|
||||
il2cpp_codegen_no_return();
|
||||
}
|
||||
|
||||
inline void il2cpp_codegen_raise_execution_engine_exception_if_method_is_not_found(const RuntimeMethod* method)
|
||||
{
|
||||
il2cpp_mono_raise_execution_engine_exception_if_method_is_not_found(const_cast<RuntimeMethod*>(method));
|
||||
}
|
||||
|
||||
inline void il2cpp_codegen_raise_execution_engine_exception(const RuntimeMethod* method)
|
||||
{
|
||||
mono_raise_exception(mono_get_exception_execution_engine(mono_unity_method_get_name(method)));
|
||||
}
|
||||
|
||||
inline Exception_t* il2cpp_codegen_get_argument_exception(const char* param, const char* msg)
|
||||
{
|
||||
return (Exception_t*)mono_get_exception_argument(param, msg);
|
||||
}
|
||||
|
||||
inline Exception_t* il2cpp_codegen_get_argument_null_exception(const char* param)
|
||||
{
|
||||
return (Exception_t*)mono_get_exception_argument_null(param);
|
||||
}
|
||||
|
||||
inline Exception_t* il2cpp_codegen_get_overflow_exception()
|
||||
{
|
||||
return (Exception_t*)mono_get_exception_overflow();
|
||||
}
|
||||
|
||||
inline Exception_t* il2cpp_codegen_get_not_supported_exception(const char* msg)
|
||||
{
|
||||
return (Exception_t*)mono_get_exception_not_supported(msg);
|
||||
}
|
||||
|
||||
inline Exception_t* il2cpp_codegen_get_array_type_mismatch_exception()
|
||||
{
|
||||
return (Exception_t*)mono_get_exception_array_type_mismatch();
|
||||
}
|
||||
|
||||
inline Exception_t* il2cpp_codegen_get_invalid_operation_exception(const char* msg)
|
||||
{
|
||||
return (Exception_t*)mono_get_exception_invalid_operation(msg);
|
||||
}
|
||||
|
||||
inline Exception_t* il2cpp_codegen_get_marshal_directive_exception(const char* msg)
|
||||
{
|
||||
return (Exception_t*)mono_unity_exception_get_marshal_directive(msg);
|
||||
}
|
||||
|
||||
inline Exception_t* il2cpp_codegen_get_missing_method_exception(const char* msg)
|
||||
{
|
||||
return (Exception_t*)mono_get_exception_missing_method(msg, "ctor");
|
||||
}
|
||||
|
||||
inline Exception_t* il2cpp_codegen_get_maximum_nested_generics_exception()
|
||||
{
|
||||
return (Exception_t*)mono_get_exception_not_supported(MAXIMUM_NESTED_GENERICS_EXCEPTION_MESSAGE);
|
||||
}
|
||||
|
||||
inline RuntimeClass* il2cpp_codegen_object_class(RuntimeObject* obj)
|
||||
{
|
||||
return mono_object_get_class(obj);
|
||||
}
|
||||
|
||||
// OpCode.IsInst
|
||||
|
||||
inline RuntimeObject* IsInst(RuntimeObject *obj, RuntimeClass* targetType)
|
||||
{
|
||||
return mono_object_isinst(obj, targetType);
|
||||
}
|
||||
|
||||
inline RuntimeObject* IsInstSealed(RuntimeObject *obj, RuntimeClass* targetType)
|
||||
{
|
||||
if (!obj)
|
||||
return NULL;
|
||||
|
||||
// optimized version to compare sealed classes
|
||||
return mono_unity_object_isinst_sealed(obj, targetType);
|
||||
}
|
||||
|
||||
inline RuntimeObject* IsInstClass(RuntimeObject *obj, RuntimeClass* targetType)
|
||||
{
|
||||
if (!obj)
|
||||
return NULL;
|
||||
|
||||
return mono_unity_class_has_parent_unsafe(mono_object_get_class(obj), targetType) ? obj : NULL;
|
||||
}
|
||||
|
||||
// OpCode.Castclass
|
||||
|
||||
inline RuntimeObject* Castclass(RuntimeObject *obj, RuntimeClass* targetType)
|
||||
{
|
||||
if (!obj)
|
||||
return NULL;
|
||||
|
||||
RuntimeObject* result = mono_object_isinst(obj, targetType);
|
||||
if (result)
|
||||
return result;
|
||||
|
||||
mono_raise_exception(mono_get_exception_invalid_cast());
|
||||
return NULL;
|
||||
}
|
||||
|
||||
inline RuntimeObject* CastclassSealed(RuntimeObject *obj, RuntimeClass* targetType)
|
||||
{
|
||||
if (!obj)
|
||||
return NULL;
|
||||
|
||||
RuntimeObject* result = IsInstSealed(obj, targetType);
|
||||
if (result)
|
||||
return result;
|
||||
|
||||
mono_raise_exception(mono_get_exception_invalid_cast());
|
||||
return NULL;
|
||||
}
|
||||
|
||||
inline RuntimeObject* CastclassClass(RuntimeObject *obj, RuntimeClass* targetType)
|
||||
{
|
||||
if (!obj)
|
||||
return NULL;
|
||||
|
||||
RuntimeObject* result = IsInstClass(obj, targetType);
|
||||
if (result)
|
||||
return result;
|
||||
|
||||
mono_raise_exception(mono_get_exception_invalid_cast());
|
||||
return NULL;
|
||||
}
|
||||
|
||||
// OpCode.Box
|
||||
|
||||
inline RuntimeObject* Box(RuntimeClass* type, void* data)
|
||||
{
|
||||
return mono_value_box(g_MonoDomain, type, data);
|
||||
}
|
||||
|
||||
// OpCode.UnBox
|
||||
|
||||
inline void* UnBox(RuntimeObject* obj)
|
||||
{
|
||||
if (!obj)
|
||||
{
|
||||
mono_raise_exception(mono_get_exception_null_reference());
|
||||
il2cpp_codegen_no_return();
|
||||
}
|
||||
|
||||
return mono_object_unbox(obj);
|
||||
}
|
||||
|
||||
inline void* UnBox(RuntimeObject* obj, RuntimeClass* klass)
|
||||
{
|
||||
if (!obj)
|
||||
{
|
||||
mono_raise_exception(mono_get_exception_null_reference());
|
||||
il2cpp_codegen_no_return();
|
||||
}
|
||||
|
||||
if (!mono_unity_object_check_box_cast(obj, klass))
|
||||
{
|
||||
mono_raise_exception(mono_get_exception_invalid_cast());
|
||||
il2cpp_codegen_no_return();
|
||||
}
|
||||
|
||||
return mono_object_unbox(obj);
|
||||
}
|
||||
|
||||
inline void UnBoxNullable(RuntimeObject* obj, RuntimeClass* klass, void* storage)
|
||||
{
|
||||
mono_unity_object_unbox_nullable(obj, klass, storage);
|
||||
}
|
||||
|
||||
inline uint32_t il2cpp_codegen_sizeof(RuntimeClass* klass)
|
||||
{
|
||||
if (!mono_class_is_valuetype(klass))
|
||||
return sizeof(void*);
|
||||
|
||||
return mono_class_instance_size(klass) - sizeof(RuntimeObject);
|
||||
}
|
||||
|
||||
inline bool il2cpp_codegen_method_is_virtual(RuntimeMethod* method)
|
||||
{
|
||||
return method->slot != -1;
|
||||
}
|
||||
|
||||
inline bool il2cpp_codegen_object_is_of_sealed_type(RuntimeObject* obj)
|
||||
{
|
||||
return obj != NULL && mono_class_is_sealed(mono_object_get_class(obj));
|
||||
}
|
||||
|
||||
inline bool il2cpp_codegen_method_is_generic_instance(RuntimeMethod* method)
|
||||
{
|
||||
return unity_mono_method_is_generic(method);
|
||||
}
|
||||
|
||||
inline bool il2cpp_codegen_method_is_interface_method(RuntimeMethod* method)
|
||||
{
|
||||
return MONO_CLASS_IS_INTERFACE(mono_method_get_class(method));
|
||||
}
|
||||
|
||||
inline uint16_t il2cpp_codegen_method_get_slot(RuntimeMethod* method)
|
||||
{
|
||||
return method->slot;
|
||||
}
|
||||
|
||||
inline RuntimeClass* il2cpp_codegen_method_get_declaring_type(RuntimeMethod* method)
|
||||
{
|
||||
return mono_method_get_class(method);
|
||||
}
|
||||
|
||||
FORCE_INLINE const VirtualInvokeData il2cpp_codegen_get_virtual_invoke_data(RuntimeMethod* method, void* obj)
|
||||
{
|
||||
VirtualInvokeData invokeData;
|
||||
il2cpp_mono_get_virtual_invoke_data(method, obj, &invokeData);
|
||||
return invokeData;
|
||||
}
|
||||
|
||||
FORCE_INLINE const VirtualInvokeData il2cpp_codegen_get_interface_invoke_data(RuntimeMethod* method, void* obj, RuntimeClass* declaringInterface)
|
||||
{
|
||||
VirtualInvokeData invokeData;
|
||||
il2cpp_mono_get_interface_invoke_data(method, obj, &invokeData);
|
||||
return invokeData;
|
||||
}
|
||||
|
||||
FORCE_INLINE const RuntimeMethod* il2cpp_codegen_get_generic_virtual_method(const RuntimeMethod* method, const RuntimeObject* obj)
|
||||
{
|
||||
return il2cpp_mono_get_virtual_target_method(const_cast<RuntimeMethod*>(method), const_cast<RuntimeObject*>(obj));
|
||||
}
|
||||
|
||||
FORCE_INLINE void il2cpp_codegen_get_generic_virtual_invoke_data(const RuntimeMethod* method, void* obj, VirtualInvokeData* invokeData)
|
||||
{
|
||||
il2cpp_mono_get_invoke_data(const_cast<RuntimeMethod*>(method), obj, invokeData);
|
||||
}
|
||||
|
||||
FORCE_INLINE const RuntimeMethod* il2cpp_codegen_get_generic_interface_method(const RuntimeMethod* method, const RuntimeObject* obj)
|
||||
{
|
||||
return il2cpp_mono_get_virtual_target_method(const_cast<RuntimeMethod*>(method), const_cast<RuntimeObject*>(obj));
|
||||
}
|
||||
|
||||
FORCE_INLINE void il2cpp_codegen_get_generic_interface_invoke_data(RuntimeMethod* method, void* obj, VirtualInvokeData* invokeData)
|
||||
{
|
||||
il2cpp_mono_get_invoke_data(method, obj, invokeData);
|
||||
}
|
||||
|
||||
FORCE_INLINE void il2cpp_codegen_get_generic_interface_invoke_data(const RuntimeMethod* method, void* obj, VirtualInvokeData* invokeData)
|
||||
{
|
||||
il2cpp_codegen_get_generic_interface_invoke_data(const_cast<RuntimeMethod*>(method), obj, invokeData);
|
||||
}
|
||||
|
||||
// OpCode.Ldtoken
|
||||
|
||||
inline RuntimeClass* il2cpp_codegen_class_from_type(RuntimeType* type)
|
||||
{
|
||||
return mono_class_from_mono_type(type);
|
||||
}
|
||||
|
||||
inline RuntimeClass* il2cpp_codegen_class_from_type(const RuntimeType *type)
|
||||
{
|
||||
return il2cpp_codegen_class_from_type(const_cast<RuntimeType*>(type));
|
||||
}
|
||||
|
||||
template<typename T>
|
||||
inline T InterlockedCompareExchangeImpl(T* location, T value, T comparand)
|
||||
{
|
||||
return (T)mono_unity_object_compare_exchange((RuntimeObject**)location, (RuntimeObject*)value, (RuntimeObject*)comparand);
|
||||
}
|
||||
|
||||
template<typename T>
|
||||
inline T InterlockedExchangeImpl(T* location, T value)
|
||||
{
|
||||
return (T)mono_unity_object_exchange((RuntimeObject**)location, (RuntimeObject*)value);
|
||||
}
|
||||
|
||||
inline void ArrayGetGenericValueImpl(RuntimeArray* __this, int32_t pos, void* value)
|
||||
{
|
||||
int elementSize = mono_unity_array_get_element_size(__this);
|
||||
memcpy(value, mono_array_addr_with_size(__this, elementSize, pos), elementSize);
|
||||
}
|
||||
|
||||
inline void ArraySetGenericValueImpl(RuntimeArray * __this, int32_t pos, void* value)
|
||||
{
|
||||
int elementSize = mono_unity_array_get_element_size(__this);
|
||||
memcpy(mono_array_addr_with_size(__this, elementSize, pos), value, elementSize);
|
||||
}
|
||||
|
||||
inline RuntimeArray* SZArrayNew(RuntimeClass* arrayType, uint32_t length)
|
||||
{
|
||||
mono_class_init(arrayType);
|
||||
|
||||
MonoError error;
|
||||
RuntimeArray *retVal = mono_array_new_specific_checked(il2cpp_mono_class_vtable(g_MonoDomain, arrayType), length, &error);
|
||||
RuntimeException *exc = mono_error_convert_to_exception(&error);
|
||||
if (exc)
|
||||
mono_raise_exception(exc);
|
||||
|
||||
return retVal;
|
||||
}
|
||||
|
||||
inline RuntimeArray* GenArrayNew(RuntimeClass* arrayType, il2cpp_array_size_t* dimensions)
|
||||
{
|
||||
MonoError error;
|
||||
RuntimeArray *retVal = mono_array_new_full_checked(g_MonoDomain, arrayType, dimensions, NULL, &error);
|
||||
RuntimeException *exc = mono_error_convert_to_exception(&error);
|
||||
if (exc)
|
||||
mono_raise_exception(exc);
|
||||
|
||||
return retVal;
|
||||
}
|
||||
|
||||
// Performance optimization as detailed here: http://blogs.msdn.com/b/clrcodegeneration/archive/2009/08/13/array-bounds-check-elimination-in-the-clr.aspx
|
||||
// Since array size is a signed int32_t, a single unsigned check can be performed to determine if index is less than array size.
|
||||
// Negative indices will map to a unsigned number greater than or equal to 2^31 which is larger than allowed for a valid array.
|
||||
#define IL2CPP_ARRAY_BOUNDS_CHECK(index, length) \
|
||||
do { \
|
||||
if (((uint32_t)(index)) >= ((uint32_t)length)) mono_raise_exception(mono_get_exception_index_out_of_range()); \
|
||||
} while (0)
|
||||
|
||||
inline bool il2cpp_codegen_class_is_assignable_from(RuntimeClass *klass, RuntimeClass *oklass)
|
||||
{
|
||||
return mono_class_is_assignable_from(klass, oklass);
|
||||
}
|
||||
|
||||
inline RuntimeObject* il2cpp_codegen_object_new(RuntimeClass *klass)
|
||||
{
|
||||
return mono_object_new(g_MonoDomain, klass);
|
||||
}
|
||||
|
||||
inline Il2CppMethodPointer il2cpp_codegen_resolve_icall(const RuntimeMethod* icallMethod)
|
||||
{
|
||||
return (Il2CppMethodPointer)mono_lookup_internal_call(const_cast<RuntimeMethod*>(icallMethod));
|
||||
}
|
||||
|
||||
template<typename FunctionPointerType>
|
||||
inline FunctionPointerType il2cpp_codegen_resolve_pinvoke(const RuntimeMethod* pinvokeMethod)
|
||||
{
|
||||
const char *exc_class, *exc_arg;
|
||||
FunctionPointerType result = reinterpret_cast<FunctionPointerType>(mono_lookup_pinvoke_call(const_cast<RuntimeMethod*>(pinvokeMethod), &exc_class, &exc_arg));
|
||||
if (exc_class)
|
||||
{
|
||||
mono_raise_exception(mono_exception_from_name_msg(mono_unity_image_get_mscorlib(), "System", exc_class, exc_arg));
|
||||
il2cpp_codegen_no_return();
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
template<typename T>
|
||||
inline T* il2cpp_codegen_marshal_allocate_array(size_t length)
|
||||
{
|
||||
MonoError unused;
|
||||
return (T*)mono_marshal_alloc((il2cpp_array_size_t)(sizeof(T) * length), &unused);
|
||||
}
|
||||
|
||||
template<typename T>
|
||||
inline T* il2cpp_codegen_marshal_allocate()
|
||||
{
|
||||
MonoError unused;
|
||||
return (T*)mono_marshal_alloc(sizeof(T), &unused);
|
||||
}
|
||||
|
||||
inline char* il2cpp_codegen_marshal_string(String_t* string)
|
||||
{
|
||||
return mono::vm::PlatformInvoke::MarshalCSharpStringToCppString((RuntimeString*)string);
|
||||
}
|
||||
|
||||
inline void il2cpp_codegen_marshal_string_fixed(String_t* string, char* buffer, int numberOfCharacters)
|
||||
{
|
||||
return mono::vm::PlatformInvoke::MarshalCSharpStringToCppStringFixed((RuntimeString*)string, buffer, numberOfCharacters);
|
||||
}
|
||||
|
||||
inline Il2CppChar* il2cpp_codegen_marshal_wstring(String_t* string)
|
||||
{
|
||||
return (Il2CppChar*)mono::vm::PlatformInvoke::MarshalCSharpStringToCppWString((RuntimeString*)string);
|
||||
}
|
||||
|
||||
inline void il2cpp_codegen_marshal_wstring_fixed(String_t* string, Il2CppChar* buffer, int numberOfCharacters)
|
||||
{
|
||||
return mono::vm::PlatformInvoke::MarshalCSharpStringToCppWStringFixed((RuntimeString*)string, (mono_unichar2*)buffer, numberOfCharacters);
|
||||
}
|
||||
|
||||
inline Il2CppChar* il2cpp_codegen_marshal_bstring(String_t* string)
|
||||
{
|
||||
IL2CPP_NOT_IMPLEMENTED("COM is not yet supported with the libmonoruntime backend.");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
inline String_t* il2cpp_codegen_marshal_string_result(const char* value)
|
||||
{
|
||||
return (String_t*)mono::vm::PlatformInvoke::MarshalCppStringToCSharpStringResult(value);
|
||||
}
|
||||
|
||||
inline String_t* il2cpp_codegen_marshal_wstring_result(const Il2CppChar* value)
|
||||
{
|
||||
return (String_t*)mono::vm::PlatformInvoke::MarshalCppWStringToCSharpStringResult((const mono_unichar2*)value);
|
||||
}
|
||||
|
||||
inline String_t* il2cpp_codegen_marshal_bstring_result(const Il2CppChar* value)
|
||||
{
|
||||
IL2CPP_NOT_IMPLEMENTED("COM is not yet supported with the libmonoruntime backend.");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
inline void il2cpp_codegen_marshal_free_bstring(Il2CppChar* value)
|
||||
{
|
||||
IL2CPP_NOT_IMPLEMENTED("COM is not yet supported with the libmonoruntime backend.");
|
||||
}
|
||||
|
||||
inline char* il2cpp_codegen_marshal_string_builder(StringBuilder_t* stringBuilder)
|
||||
{
|
||||
return mono::vm::PlatformInvoke::MarshalStringBuilder((RuntimeStringBuilder*)stringBuilder);
|
||||
}
|
||||
|
||||
inline Il2CppChar* il2cpp_codegen_marshal_wstring_builder(StringBuilder_t* stringBuilder)
|
||||
{
|
||||
return (Il2CppChar*)mono::vm::PlatformInvoke::MarshalWStringBuilder((RuntimeStringBuilder*)stringBuilder);
|
||||
}
|
||||
|
||||
inline void il2cpp_codegen_marshal_string_builder_result(StringBuilder_t* stringBuilder, char* buffer)
|
||||
{
|
||||
mono::vm::PlatformInvoke::MarshalStringBuilderResult((RuntimeStringBuilder*)stringBuilder, buffer);
|
||||
}
|
||||
|
||||
inline void il2cpp_codegen_marshal_wstring_builder_result(StringBuilder_t* stringBuilder, Il2CppChar* buffer)
|
||||
{
|
||||
mono::vm::PlatformInvoke::MarshalWStringBuilderResult((RuntimeStringBuilder*)stringBuilder, (mono_unichar2*)buffer);
|
||||
}
|
||||
|
||||
inline Il2CppHString il2cpp_codegen_create_hstring(String_t* str)
|
||||
{
|
||||
IL2CPP_NOT_IMPLEMENTED("COM is not yet supported with the libmonoruntime backend.");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
inline String_t* il2cpp_codegen_marshal_hstring_result(Il2CppHString hstring)
|
||||
{
|
||||
IL2CPP_NOT_IMPLEMENTED("COM is not yet supported with the libmonoruntime backend.");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
inline void il2cpp_codegen_marshal_free_hstring(Il2CppHString hstring)
|
||||
{
|
||||
IL2CPP_NOT_IMPLEMENTED("COM is not yet supported with the libmonoruntime backend.");
|
||||
}
|
||||
|
||||
inline void il2cpp_codegen_marshal_free(void* ptr)
|
||||
{
|
||||
mono_marshal_free(ptr);
|
||||
}
|
||||
|
||||
inline Il2CppMethodPointer il2cpp_codegen_marshal_delegate(MulticastDelegate_t* d)
|
||||
{
|
||||
return (Il2CppMethodPointer)mono::vm::PlatformInvoke::MarshalDelegate((RuntimeDelegate*)d);
|
||||
}
|
||||
|
||||
template<typename T>
|
||||
inline T* il2cpp_codegen_marshal_function_ptr_to_delegate(Il2CppMethodPointer functionPtr, RuntimeClass* delegateType)
|
||||
{
|
||||
return (T*)mono::vm::PlatformInvoke::MarshalFunctionPointerToDelegate(reinterpret_cast<void*>(functionPtr), delegateType);
|
||||
}
|
||||
|
||||
inline void il2cpp_codegen_marshal_store_last_error()
|
||||
{
|
||||
mono_marshal_set_last_error();
|
||||
}
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace vm
|
||||
{
|
||||
class ScopedThreadAttacher
|
||||
{
|
||||
public:
|
||||
ScopedThreadAttacher() :
|
||||
_threadWasAttached(false)
|
||||
{
|
||||
if (!mono_thread_is_attached())
|
||||
{
|
||||
mono_thread_attach(mono_get_root_domain());
|
||||
_threadWasAttached = true;
|
||||
}
|
||||
}
|
||||
|
||||
~ScopedThreadAttacher()
|
||||
{
|
||||
if (_threadWasAttached)
|
||||
mono_thread_detach(mono_thread_current());
|
||||
}
|
||||
|
||||
private:
|
||||
bool _threadWasAttached;
|
||||
|
||||
bool mono_thread_is_attached()
|
||||
{
|
||||
return mono_domain_get() != NULL;
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
#if _DEBUG
|
||||
struct ScopedMarshallingAllocationCheck
|
||||
{
|
||||
};
|
||||
|
||||
struct ScopedMarshalingAllocationClearer
|
||||
{
|
||||
};
|
||||
#endif
|
||||
|
||||
inline void NullCheck(void* this_ptr)
|
||||
{
|
||||
if (this_ptr != NULL)
|
||||
return;
|
||||
|
||||
mono_raise_exception(mono_get_exception_null_reference());
|
||||
}
|
||||
|
||||
inline void DivideByZeroCheck(int64_t denominator)
|
||||
{
|
||||
if (denominator != 0)
|
||||
return;
|
||||
|
||||
mono_raise_exception(mono_get_exception_divide_by_zero());
|
||||
}
|
||||
|
||||
inline void il2cpp_codegen_initobj(void* value, size_t size)
|
||||
{
|
||||
memset(value, 0, size);
|
||||
}
|
||||
|
||||
inline bool MethodIsStatic(const RuntimeMethod* method)
|
||||
{
|
||||
return mono_unity_method_is_static(const_cast<RuntimeMethod*>(method));
|
||||
}
|
||||
|
||||
inline bool MethodHasParameters(const RuntimeMethod* method)
|
||||
{
|
||||
return mono_signature_get_param_count(mono_method_signature(const_cast<RuntimeMethod*>(method))) != 0;
|
||||
}
|
||||
|
||||
//#define IL2CPP_RUNTIME_CLASS_INIT(klass) do { if((klass)->has_cctor && !(klass)->cctor_finished) il2cpp::vm::Runtime::ClassInit ((klass)); } while (0)
|
||||
#define IL2CPP_RUNTIME_CLASS_INIT(klass) RuntimeInit(klass)
|
||||
|
||||
inline void* il2cpp_codegen_mono_class_rgctx(RuntimeClass* klass, Il2CppRGCTXDataType rgctxType, int rgctxIndex, bool useSharedVersion)
|
||||
{
|
||||
return il2cpp_mono_class_rgctx(klass, rgctxType, rgctxIndex, useSharedVersion);
|
||||
}
|
||||
|
||||
inline void* il2cpp_codegen_mono_method_rgctx(RuntimeMethod* method, Il2CppRGCTXDataType rgctxType, int rgctxIndex, bool useSharedVersion)
|
||||
{
|
||||
return il2cpp_mono_method_rgctx(method, rgctxType, rgctxIndex, useSharedVersion);
|
||||
}
|
||||
|
||||
inline void ArrayElementTypeCheck(RuntimeArray* array, void* value)
|
||||
{
|
||||
if (!value)
|
||||
return;
|
||||
|
||||
RuntimeClass *aclass = mono_unity_array_get_class(array);
|
||||
RuntimeClass *eclass = mono_unity_class_get_element_class(aclass);
|
||||
RuntimeClass *oclass = mono_unity_object_get_class((RuntimeObject*)value);
|
||||
|
||||
if (!mono_class_is_assignable_from(eclass, oclass))
|
||||
mono_raise_exception(mono_get_exception_array_type_mismatch());
|
||||
}
|
||||
|
||||
inline const RuntimeMethod* GetVirtualMethodInfo(RuntimeObject* pThis, const RuntimeMethod* method)
|
||||
{
|
||||
if (!pThis)
|
||||
mono_raise_exception(mono_get_exception_null_reference());
|
||||
|
||||
return mono_object_get_virtual_method(pThis, const_cast<RuntimeMethod*>(method));
|
||||
}
|
||||
|
||||
inline const RuntimeMethod* GetInterfaceMethodInfo(RuntimeObject* pThis, RuntimeMethod *slot, RuntimeClass* declaringInterface)
|
||||
{
|
||||
if (!pThis)
|
||||
mono_raise_exception(mono_get_exception_null_reference());
|
||||
|
||||
return mono_object_get_virtual_method(pThis, slot);
|
||||
}
|
||||
|
||||
inline void il2cpp_codegen_memory_barrier()
|
||||
{
|
||||
mono_unity_memory_barrier();
|
||||
}
|
||||
|
||||
inline void il2cpp_codegen_initialize_method(uint32_t index)
|
||||
{
|
||||
il2cpp_mono_initialize_method_metadata(index);
|
||||
}
|
||||
|
||||
inline bool il2cpp_codegen_type_implements_virtual_method(RuntimeClass* type, RuntimeMethod *slot)
|
||||
{
|
||||
return mono_unity_method_get_class(slot) == type;
|
||||
}
|
||||
|
||||
inline MethodBase_t* il2cpp_codegen_get_method_object(const RuntimeMethod* method)
|
||||
{
|
||||
if (unity_mono_method_is_inflated(const_cast<RuntimeMethod*>(method)))
|
||||
method = mono_unity_method_get_generic_definition(const_cast<RuntimeMethod*>(method));
|
||||
|
||||
return (MethodBase_t*)mono_unity_method_get_object(const_cast<RuntimeMethod*>(method));
|
||||
}
|
||||
|
||||
inline Type_t* il2cpp_codegen_get_type(Il2CppMethodPointer getTypeFunction, String_t* typeName, const char* assemblyName)
|
||||
{
|
||||
typedef Type_t* (*getTypeFuncType)(String_t*, const RuntimeMethod*);
|
||||
MonoString* assemblyQualifiedTypeName = mono_unity_string_append_assembly_name_if_necessary((MonoString*)typeName, assemblyName);
|
||||
|
||||
// Try to find the type using a hint about about calling assembly. If it is not found, fall back to calling GetType without the hint.
|
||||
Type_t* type = ((getTypeFuncType)getTypeFunction)((String_t*)assemblyQualifiedTypeName, NULL);
|
||||
if (type == NULL)
|
||||
return ((getTypeFuncType)getTypeFunction)(typeName, NULL);
|
||||
return type;
|
||||
}
|
||||
|
||||
inline Type_t* il2cpp_codegen_get_type(Il2CppMethodPointer getTypeFunction, String_t* typeName, bool throwOnError, const char* assemblyName)
|
||||
{
|
||||
typedef Type_t* (*getTypeFuncType)(String_t*, bool, const RuntimeMethod*);
|
||||
MonoString* assemblyQualifiedTypeName = mono_unity_string_append_assembly_name_if_necessary((MonoString*)typeName, assemblyName);
|
||||
|
||||
// Try to find the type using a hint about about calling assembly. If it is not found, fall back to calling GetType without the hint.
|
||||
Type_t* type = ((getTypeFuncType)getTypeFunction)((String_t*)assemblyQualifiedTypeName, throwOnError, NULL);
|
||||
if (type == NULL)
|
||||
return ((getTypeFuncType)getTypeFunction)(typeName, throwOnError, NULL);
|
||||
return type;
|
||||
}
|
||||
|
||||
inline Type_t* il2cpp_codegen_get_type(Il2CppMethodPointer getTypeFunction, String_t* typeName, bool throwOnError, bool ignoreCase, const char* assemblyName)
|
||||
{
|
||||
typedef Type_t* (*getTypeFuncType)(String_t*, bool, bool, const RuntimeMethod*);
|
||||
MonoString* assemblyQualifiedTypeName = mono_unity_string_append_assembly_name_if_necessary((MonoString*)typeName, assemblyName);
|
||||
|
||||
// Try to find the type using a hint about about calling assembly. If it is not found, fall back to calling GetType without the hint.
|
||||
Type_t* type = ((getTypeFuncType)getTypeFunction)((String_t*)assemblyQualifiedTypeName, throwOnError, ignoreCase, NULL);
|
||||
if (type == NULL)
|
||||
return ((getTypeFuncType)getTypeFunction)(typeName, throwOnError, ignoreCase, NULL);
|
||||
return type;
|
||||
}
|
||||
|
||||
inline Assembly_t* il2cpp_codegen_get_executing_assembly(const RuntimeMethod* method)
|
||||
{
|
||||
return (Assembly_t*)mono_assembly_get_object(g_MonoDomain, mono_unity_class_get_assembly(mono_unity_method_get_class(method)));
|
||||
}
|
||||
|
||||
// Atomic
|
||||
|
||||
inline void* il2cpp_codegen_atomic_compare_exchange_pointer(void* volatile* dest, void* exchange, void* comparand)
|
||||
{
|
||||
IL2CPP_NOT_IMPLEMENTED("COM is not yet supported with the libmonoruntime backend.");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
template<typename T>
|
||||
inline T* il2cpp_codegen_atomic_compare_exchange_pointer(T* volatile* dest, T* newValue, T* oldValue)
|
||||
{
|
||||
IL2CPP_NOT_IMPLEMENTED("COM is not yet supported with the libmonoruntime backend.");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
// COM
|
||||
|
||||
inline void il2cpp_codegen_com_marshal_variant(RuntimeObject* obj, Il2CppVariant* variant)
|
||||
{
|
||||
IL2CPP_NOT_IMPLEMENTED("COM is not yet supported with the libmonoruntime backend.");
|
||||
}
|
||||
|
||||
inline RuntimeObject* il2cpp_codegen_com_marshal_variant_result(Il2CppVariant* variant)
|
||||
{
|
||||
IL2CPP_NOT_IMPLEMENTED("COM is not yet supported with the libmonoruntime backend.");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
inline void il2cpp_codegen_com_destroy_variant(Il2CppVariant* variant)
|
||||
{
|
||||
IL2CPP_NOT_IMPLEMENTED("COM is not yet supported with the libmonoruntime backend.");
|
||||
}
|
||||
|
||||
inline Il2CppSafeArray* il2cpp_codegen_com_marshal_safe_array(Il2CppChar type, RuntimeArray* managedArray)
|
||||
{
|
||||
IL2CPP_NOT_IMPLEMENTED("COM is not yet supported with the libmonoruntime backend.");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
inline RuntimeArray* il2cpp_codegen_com_marshal_safe_array_result(Il2CppChar variantType, RuntimeClass* type, Il2CppSafeArray* safeArray)
|
||||
{
|
||||
IL2CPP_NOT_IMPLEMENTED("COM is not yet supported with the libmonoruntime backend.");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
inline Il2CppSafeArray* il2cpp_codegen_com_marshal_safe_array_bstring(RuntimeArray* managedArray)
|
||||
{
|
||||
IL2CPP_NOT_IMPLEMENTED("COM is not yet supported with the libmonoruntime backend.");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
inline RuntimeArray* il2cpp_codegen_com_marshal_safe_array_bstring_result(RuntimeClass* type, Il2CppSafeArray* safeArray)
|
||||
{
|
||||
IL2CPP_NOT_IMPLEMENTED("COM is not yet supported with the libmonoruntime backend.");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
inline void il2cpp_codegen_com_destroy_safe_array(Il2CppSafeArray* safeArray)
|
||||
{
|
||||
IL2CPP_NOT_IMPLEMENTED("COM is not yet supported with the libmonoruntime backend.");
|
||||
}
|
||||
|
||||
inline void il2cpp_codegen_com_create_instance(const Il2CppGuid& clsid, Il2CppIUnknown** identity)
|
||||
{
|
||||
IL2CPP_NOT_IMPLEMENTED("COM is not yet supported with the libmonoruntime backend.");
|
||||
}
|
||||
|
||||
inline void il2cpp_codegen_com_register_rcw(Il2CppComObject* rcw)
|
||||
{
|
||||
IL2CPP_NOT_IMPLEMENTED("COM is not yet supported with the libmonoruntime backend.");
|
||||
}
|
||||
|
||||
template<typename T>
|
||||
inline T* il2cpp_codegen_com_get_or_create_rcw_from_iunknown(Il2CppIUnknown* unknown, RuntimeClass* fallbackClass)
|
||||
{
|
||||
IL2CPP_NOT_IMPLEMENTED("COM is not yet supported with the libmonoruntime backend.");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
template<typename T>
|
||||
inline T* il2cpp_codegen_com_get_or_create_rcw_from_iinspectable(Il2CppIInspectable* unknown, RuntimeClass* fallbackClass)
|
||||
{
|
||||
IL2CPP_NOT_IMPLEMENTED("COM is not yet supported with the libmonoruntime backend.");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
template<typename T>
|
||||
inline T* il2cpp_codegen_com_get_or_create_rcw_for_sealed_class(Il2CppIUnknown* unknown, RuntimeClass* objectClass)
|
||||
{
|
||||
IL2CPP_NOT_IMPLEMENTED("COM is not yet supported with the libmonoruntime backend.");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
inline void il2cpp_codegen_il2cpp_com_object_cleanup(Il2CppComObject* rcw)
|
||||
{
|
||||
IL2CPP_NOT_IMPLEMENTED("COM is not yet supported with the libmonoruntime backend.");
|
||||
}
|
||||
|
||||
template<typename InterfaceType>
|
||||
inline InterfaceType* il2cpp_codegen_com_get_or_create_ccw(RuntimeObject* obj)
|
||||
{
|
||||
IL2CPP_NOT_IMPLEMENTED("COM is not yet supported with the libmonoruntime backend.");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
inline intptr_t il2cpp_codegen_com_get_iunknown_for_object(RuntimeObject* obj)
|
||||
{
|
||||
IL2CPP_NOT_IMPLEMENTED("COM is not yet supported with the libmonoruntime backend.");
|
||||
return 0;
|
||||
}
|
||||
|
||||
inline void il2cpp_codegen_com_raise_exception(il2cpp_hresult_t hr)
|
||||
{
|
||||
IL2CPP_NOT_IMPLEMENTED("COM is not yet supported with the libmonoruntime backend.");
|
||||
}
|
||||
|
||||
inline void il2cpp_codegen_com_raise_exception_if_failed(il2cpp_hresult_t hr, bool defaultToCOMException)
|
||||
{
|
||||
IL2CPP_NOT_IMPLEMENTED("COM is not yet supported with the libmonoruntime backend.");
|
||||
}
|
||||
|
||||
inline RuntimeException* il2cpp_codegen_com_get_exception(il2cpp_hresult_t hr, bool defaultToCOMException)
|
||||
{
|
||||
IL2CPP_NOT_IMPLEMENTED("Not implemented yet.");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
inline RuntimeException* il2cpp_codegen_com_get_exception_for_invalid_iproperty_cast(RuntimeObject* value, const char* a, const char* b)
|
||||
{
|
||||
IL2CPP_NOT_IMPLEMENTED("COM is not yet supported with the libmonoruntime backend.");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
inline Il2CppIActivationFactory* il2cpp_codegen_windows_runtime_get_activation_factory(const il2cpp::utils::StringView<Il2CppNativeChar>& runtimeClassName)
|
||||
{
|
||||
IL2CPP_NOT_IMPLEMENTED("COM is not yet supported with the libmonoruntime backend.");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
// delegate
|
||||
|
||||
inline Il2CppAsyncResult* il2cpp_codegen_delegate_begin_invoke(RuntimeDelegate* delegate, void** params, RuntimeDelegate* asyncCallback, RuntimeObject* state)
|
||||
{
|
||||
return il2cpp_mono_delegate_begin_invoke(delegate, params, asyncCallback, state);
|
||||
}
|
||||
|
||||
inline RuntimeObject* il2cpp_codegen_delegate_end_invoke(Il2CppAsyncResult* asyncResult, void **out_args)
|
||||
{
|
||||
return il2cpp_mono_delegate_end_invoke(asyncResult, out_args);
|
||||
}
|
||||
|
||||
inline const Il2CppGenericInst* il2cpp_codegen_get_generic_class_inst(RuntimeClass* genericClass)
|
||||
{
|
||||
IL2CPP_NOT_IMPLEMENTED("Windows runtime is not yet supported with the libmonoruntime backend.");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
inline RuntimeClass* il2cpp_codegen_inflate_generic_class(RuntimeClass* genericClassDefinition, const Il2CppGenericInst* genericInst)
|
||||
{
|
||||
//return il2cpp::vm::Class::GetInflatedGenericInstanceClass(genericClassDefinition, genericInst);
|
||||
IL2CPP_NOT_IMPLEMENTED("Windows runtime is not yet supported with the libmonoruntime backend.");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
inline RuntimeAssembly* il2cpp_codegen_mono_corlib()
|
||||
{
|
||||
return mono_unity_assembly_get_mscorlib();
|
||||
}
|
||||
|
||||
inline RuntimeClass* il2cpp_codegen_mono_class(AssemblyIndex assemblyIndex, uint32_t classToken)
|
||||
{
|
||||
return mono_class_get(mono_assembly_get_image(il2cpp_mono_assembly_from_index(assemblyIndex)), classToken);
|
||||
}
|
||||
|
||||
inline RuntimeClass* il2cpp_codegen_mono_class(RuntimeAssembly* assembly, uint32_t classToken)
|
||||
{
|
||||
return mono_class_get(mono_assembly_get_image(assembly), classToken);
|
||||
}
|
||||
|
||||
inline RuntimeMethod* il2cpp_codegen_mono_method(AssemblyIndex index, uint32_t methodToken)
|
||||
{
|
||||
return mono_get_method(mono_assembly_get_image(il2cpp_mono_assembly_from_index(index)), methodToken, NULL);
|
||||
}
|
||||
|
||||
inline RuntimeMethod* il2cpp_codegen_mono_method(RuntimeAssembly* assembly, uint32_t methodToken)
|
||||
{
|
||||
return mono_get_method(mono_assembly_get_image(assembly), methodToken, NULL);
|
||||
}
|
||||
|
||||
inline void* il2cpp_codegen_mono_get_static_field_address(RuntimeClass* klass, RuntimeField* field)
|
||||
{
|
||||
return il2cpp_mono_get_static_field_address(klass, field);
|
||||
}
|
||||
|
||||
inline void* il2cpp_codegen_mono_get_thread_static_field_address(RuntimeClass* klass, RuntimeField* field)
|
||||
{
|
||||
return il2cpp_mono_get_thread_static_field_address(klass, field);
|
||||
}
|
||||
|
||||
inline RuntimeField* il2cpp_codegen_mono_class_get_field(RuntimeClass* klass, uint32_t fieldToken)
|
||||
{
|
||||
return mono_class_get_field(klass, fieldToken);
|
||||
}
|
||||
|
||||
inline Il2CppMethodPointer il2cpp_codegen_get_method_pointer(const RuntimeMethod* method)
|
||||
{
|
||||
MonoError unused;
|
||||
il2cpp_mono_method_initialize_function_pointers(const_cast<RuntimeMethod*>(method), &unused);
|
||||
return (Il2CppMethodPointer)mono_unity_method_get_method_pointer(const_cast<RuntimeMethod*>(method));
|
||||
}
|
||||
|
||||
inline RuntimeType* il2cpp_codegen_method_return_type(const RuntimeMethod* method)
|
||||
{
|
||||
return mono_signature_get_return_type(mono_method_signature(const_cast<RuntimeMethod*>(method)));
|
||||
}
|
||||
|
||||
inline int il2cpp_codegen_method_parameter_count(const RuntimeMethod* method)
|
||||
{
|
||||
return mono_signature_get_param_count(mono_method_signature(const_cast<RuntimeMethod*>(method)));
|
||||
}
|
||||
|
||||
template<class T>
|
||||
T il2cpp_mono_cast_nullable_method_param(const RuntimeMethod *method, int index, void *value)
|
||||
{
|
||||
if (value)
|
||||
return *((T*)value);
|
||||
|
||||
T retVal;
|
||||
RuntimeClass *klass = mono_unity_signature_get_class_for_param(mono_method_signature(const_cast<RuntimeMethod*>(method)), index);
|
||||
mono_nullable_init((uint8_t*)&retVal, NULL, klass);
|
||||
return retVal;
|
||||
}
|
||||
|
||||
inline const RuntimeMethod* il2cpp_codegen_vtable_slot_method(const RuntimeClass* klass, RuntimeMethod* slot)
|
||||
{
|
||||
return slot;
|
||||
}
|
||||
|
||||
inline Il2CppMethodPointer il2cpp_codegen_vtable_slot_method_pointer(const RuntimeClass* klass, RuntimeMethod* slot)
|
||||
{
|
||||
MonoError unused;
|
||||
il2cpp_mono_method_initialize_function_pointers(slot, &unused);
|
||||
return (Il2CppMethodPointer)mono_unity_method_get_method_pointer(slot);
|
||||
}
|
||||
|
||||
inline bool il2cpp_codegen_is_import_or_windows_runtime(const RuntimeObject *object)
|
||||
{
|
||||
assert(0 && "Not implemented yet.");
|
||||
return false;
|
||||
}
|
||||
|
||||
inline std::string il2cpp_codegen_format_exception(const RuntimeException* ex)
|
||||
{
|
||||
return il2cpp_mono_format_exception(ex);
|
||||
}
|
||||
|
||||
inline intptr_t il2cpp_codegen_get_com_interface_for_object(RuntimeObject* object, Type_t* type)
|
||||
{
|
||||
assert(0 && "Not implemented yet.");
|
||||
return 0;
|
||||
}
|
||||
|
||||
inline NORETURN void il2cpp_codegen_raise_profile_exception(const RuntimeMethod* method)
|
||||
{
|
||||
il2cpp_codegen_raise_exception(il2cpp_codegen_get_not_supported_exception(mono_unity_method_get_name(method)));
|
||||
}
|
||||
@@ -0,0 +1,55 @@
|
||||
#pragma once
|
||||
|
||||
struct String_t;
|
||||
struct Type_t;
|
||||
struct Exception_t;
|
||||
struct StringBuilder_t;
|
||||
struct MulticastDelegate_t;
|
||||
struct MethodBase_t;
|
||||
struct Assembly_t;
|
||||
|
||||
#if RUNTIME_MONO
|
||||
extern "C"
|
||||
{
|
||||
#include <mono/metadata/class.h>
|
||||
#include <mono/metadata/image.h>
|
||||
#include <mono/metadata/metadata.h>
|
||||
#include <mono/metadata/object.h>
|
||||
#include <mono/metadata/object-internals.h>
|
||||
}
|
||||
|
||||
typedef MonoClass RuntimeClass;
|
||||
typedef MonoMethod RuntimeMethod;
|
||||
typedef MonoClassField RuntimeField;
|
||||
typedef MonoType RuntimeType;
|
||||
typedef MonoObject RuntimeObject;
|
||||
typedef MonoImage RuntimeImage;
|
||||
typedef MonoException RuntimeException;
|
||||
typedef MonoArray RuntimeArray;
|
||||
typedef MonoAssembly RuntimeAssembly;
|
||||
typedef MonoString RuntimeString;
|
||||
typedef MonoStringBuilder RuntimeStringBuilder;
|
||||
typedef MonoDelegate RuntimeDelegate;
|
||||
#include "il2cpp-codegen-mono.h"
|
||||
|
||||
|
||||
#else
|
||||
struct TypeInfo;
|
||||
struct MethodInfo;
|
||||
struct FieldInfo;
|
||||
struct Il2CppType;
|
||||
typedef Il2CppClass RuntimeClass;
|
||||
typedef MethodInfo RuntimeMethod;
|
||||
typedef FieldInfo RuntimeField;
|
||||
typedef Il2CppType RuntimeType;
|
||||
typedef Il2CppObject RuntimeObject;
|
||||
typedef Il2CppImage RuntimeImage;
|
||||
typedef Il2CppException RuntimeException;
|
||||
typedef Il2CppArray RuntimeArray;
|
||||
typedef Il2CppAssembly RuntimeAssembly;
|
||||
typedef Il2CppString RuntimeString;
|
||||
struct Il2CppStringBuilder;
|
||||
typedef Il2CppStringBuilder RuntimeStringBuilder;
|
||||
typedef Il2CppDelegate RuntimeDelegate;
|
||||
#include "il2cpp-codegen-il2cpp.h"
|
||||
#endif
|
||||
Vendored
+243
@@ -0,0 +1,243 @@
|
||||
// Copyright (c) 2005, Google Inc.
|
||||
// All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without
|
||||
// modification, are permitted provided that the following conditions are
|
||||
// met:
|
||||
//
|
||||
// * Redistributions of source code must retain the above copyright
|
||||
// notice, this list of conditions and the following disclaimer.
|
||||
// * Redistributions in binary form must reproduce the above
|
||||
// copyright notice, this list of conditions and the following disclaimer
|
||||
// in the documentation and/or other materials provided with the
|
||||
// distribution.
|
||||
// * Neither the name of Google Inc. nor the names of its
|
||||
// contributors may be used to endorse or promote products derived from
|
||||
// this software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
// ----
|
||||
// Author: Craig Silverstein
|
||||
//
|
||||
// This is just a very thin wrapper over densehashtable.h, just
|
||||
// like sgi stl's stl_hash_map is a very thin wrapper over
|
||||
// stl_hashtable. The major thing we define is operator[], because
|
||||
// we have a concept of a data_type which stl_hashtable doesn't
|
||||
// (it only has a key and a value).
|
||||
//
|
||||
// NOTE: this is exactly like sparse_hash_map.h, with the word
|
||||
// "sparse" replaced by "dense", except for the addition of
|
||||
// set_empty_key().
|
||||
//
|
||||
// YOU MUST CALL SET_EMPTY_KEY() IMMEDIATELY AFTER CONSTRUCTION.
|
||||
//
|
||||
// Otherwise your program will die in mysterious ways.
|
||||
//
|
||||
// In other respects, we adhere mostly to the STL semantics for
|
||||
// hash-map. One important exception is that insert() invalidates
|
||||
// iterators entirely. On the plus side, though, erase() doesn't
|
||||
// invalidate iterators at all, or even change the ordering of elements.
|
||||
//
|
||||
// Here are a few "power user" tips:
|
||||
//
|
||||
// 1) set_deleted_key():
|
||||
// If you want to use erase() you must call set_deleted_key(),
|
||||
// in addition to set_empty_key(), after construction.
|
||||
// The deleted and empty keys must differ.
|
||||
//
|
||||
// 2) resize(0):
|
||||
// When an item is deleted, its memory isn't freed right
|
||||
// away. This allows you to iterate over a hashtable,
|
||||
// and call erase(), without invalidating the iterator.
|
||||
// To force the memory to be freed, call resize(0).
|
||||
//
|
||||
// Guide to what kind of hash_map to use:
|
||||
// (1) dense_hash_map: fastest, uses the most memory
|
||||
// (2) sparse_hash_map: slowest, uses the least memory
|
||||
// (3) hash_map (STL): in the middle
|
||||
// Typically I use sparse_hash_map when I care about space and/or when
|
||||
// I need to save the hashtable on disk. I use hash_map otherwise. I
|
||||
// don't personally use dense_hash_map ever; the only use of
|
||||
// dense_hash_map I know of is to work around malloc() bugs in some
|
||||
// systems (dense_hash_map has a particularly simple allocation scheme).
|
||||
//
|
||||
// - dense_hash_map has, typically, a factor of 2 memory overhead (if your
|
||||
// data takes up X bytes, the hash_map uses X more bytes in overhead).
|
||||
// - sparse_hash_map has about 2 bits overhead per entry.
|
||||
// - sparse_hash_map can be 3-7 times slower than the others for lookup and,
|
||||
// especially, inserts. See time_hash_map.cc for details.
|
||||
//
|
||||
// See /usr/(local/)?doc/sparsehash-0.1/dense_hash_map.html
|
||||
// for information about how to use this class.
|
||||
|
||||
#ifndef _DENSE_HASH_MAP_H_
|
||||
#define _DENSE_HASH_MAP_H_
|
||||
|
||||
//#include <google/sparsehash/sparseconfig.h>
|
||||
#include <stdio.h> // for FILE * in read()/write()
|
||||
#include <algorithm> // for the default template args
|
||||
#include <functional> // for equal_to
|
||||
#include <memory> // for alloc<>
|
||||
#include <utility> // for pair<>
|
||||
//#include <ext/hash_fun.h> // defined in config.h
|
||||
#include "densehashtable.h"
|
||||
|
||||
|
||||
using std::pair;
|
||||
|
||||
template <class Key, class T,
|
||||
class HashFcn,
|
||||
class EqualKey = std::equal_to<Key>,
|
||||
class Alloc = std::allocator< std::pair<const Key, T> > >
|
||||
class dense_hash_map {
|
||||
private:
|
||||
// Apparently select1st is not stl-standard, so we define our own
|
||||
struct SelectKey {
|
||||
const Key& operator()(const pair<const Key, T>& p) const {
|
||||
return p.first;
|
||||
}
|
||||
};
|
||||
|
||||
// The actual data
|
||||
typedef dense_hashtable<pair<const Key, T>, Key, HashFcn,
|
||||
SelectKey, EqualKey, Alloc> ht;
|
||||
ht rep;
|
||||
|
||||
public:
|
||||
typedef typename ht::key_type key_type;
|
||||
typedef T data_type;
|
||||
typedef T mapped_type;
|
||||
typedef typename ht::value_type value_type;
|
||||
typedef typename ht::hasher hasher;
|
||||
typedef typename ht::key_equal key_equal;
|
||||
|
||||
typedef typename ht::size_type size_type;
|
||||
typedef typename ht::difference_type difference_type;
|
||||
typedef typename ht::pointer pointer;
|
||||
typedef typename ht::const_pointer const_pointer;
|
||||
typedef typename ht::reference reference;
|
||||
typedef typename ht::const_reference const_reference;
|
||||
|
||||
typedef typename ht::iterator iterator;
|
||||
typedef typename ht::const_iterator const_iterator;
|
||||
|
||||
// Iterator functions
|
||||
iterator begin() { return rep.begin(); }
|
||||
iterator end() { return rep.end(); }
|
||||
const_iterator begin() const { return rep.begin(); }
|
||||
const_iterator end() const { return rep.end(); }
|
||||
|
||||
|
||||
// Accessor functions
|
||||
hasher hash_funct() const { return rep.hash_funct(); }
|
||||
key_equal key_eq() const { return rep.key_eq(); }
|
||||
|
||||
|
||||
// Constructors
|
||||
explicit dense_hash_map(size_type n = 0,
|
||||
const hasher& hf = hasher(),
|
||||
const key_equal& eql = key_equal())
|
||||
: rep(n, hf, eql) { }
|
||||
|
||||
template <class InputIterator>
|
||||
dense_hash_map(InputIterator f, InputIterator l,
|
||||
size_type n = 0,
|
||||
const hasher& hf = hasher(),
|
||||
const key_equal& eql = key_equal())
|
||||
: rep(n, hf, eql) {
|
||||
rep.insert(f, l);
|
||||
}
|
||||
// We use the default copy constructor
|
||||
// We use the default operator=()
|
||||
// We use the default destructor
|
||||
|
||||
void clear() { rep.clear(); }
|
||||
// This clears the hash map without resizing it down to the minimum
|
||||
// bucket count, but rather keeps the number of buckets constant
|
||||
void clear_no_resize() { rep.clear_no_resize(); }
|
||||
void swap(dense_hash_map& hs) { rep.swap(hs.rep); }
|
||||
|
||||
|
||||
// Functions concerning size
|
||||
size_type size() const { return rep.size(); }
|
||||
size_type max_size() const { return rep.max_size(); }
|
||||
bool empty() const { return rep.empty(); }
|
||||
size_type bucket_count() const { return rep.bucket_count(); }
|
||||
size_type max_bucket_count() const { return rep.max_bucket_count(); }
|
||||
|
||||
void resize(size_type hint) { rep.resize(hint); }
|
||||
|
||||
|
||||
// Lookup routines
|
||||
iterator find(const key_type& key) { return rep.find(key); }
|
||||
const_iterator find(const key_type& key) const { return rep.find(key); }
|
||||
|
||||
data_type& operator[](const key_type& key) { // This is our value-add!
|
||||
iterator it = find(key);
|
||||
if (it != end()) {
|
||||
return it->second;
|
||||
} else {
|
||||
return insert(value_type(key, data_type())).first->second;
|
||||
}
|
||||
}
|
||||
|
||||
size_type count(const key_type& key) const { return rep.count(key); }
|
||||
|
||||
pair<iterator, iterator> equal_range(const key_type& key) {
|
||||
return rep.equal_range(key);
|
||||
}
|
||||
pair<const_iterator, const_iterator> equal_range(const key_type& key) const {
|
||||
return rep.equal_range(key);
|
||||
}
|
||||
|
||||
// Insertion routines
|
||||
pair<iterator, bool> insert(const value_type& obj) { return rep.insert(obj); }
|
||||
template <class InputIterator>
|
||||
void insert(InputIterator f, InputIterator l) { rep.insert(f, l); }
|
||||
void insert(const_iterator f, const_iterator l) { rep.insert(f, l); }
|
||||
// required for std::insert_iterator; the passed-in iterator is ignored
|
||||
iterator insert(iterator, const value_type& obj) { return insert(obj).first; }
|
||||
|
||||
|
||||
// Deletion and empty routines
|
||||
// THESE ARE NON-STANDARD! I make you specify an "impossible" key
|
||||
// value to identify deleted and empty buckets. You can change the
|
||||
// deleted key as time goes on, or get rid of it entirely to be insert-only.
|
||||
void set_empty_key(const key_type& key) { // YOU MUST CALL THIS!
|
||||
rep.set_empty_key(value_type(key, data_type())); // rep wants a value
|
||||
}
|
||||
void set_deleted_key(const key_type& key) {
|
||||
rep.set_deleted_key(value_type(key, data_type())); // rep wants a value
|
||||
}
|
||||
void clear_deleted_key() { rep.clear_deleted_key(); }
|
||||
|
||||
// These are standard
|
||||
size_type erase(const key_type& key) { return rep.erase(key); }
|
||||
void erase(iterator it) { rep.erase(it); }
|
||||
void erase(iterator f, iterator l) { rep.erase(f, l); }
|
||||
|
||||
|
||||
// Comparison
|
||||
bool operator==(const dense_hash_map& hs) const { return rep == hs.rep; }
|
||||
bool operator!=(const dense_hash_map& hs) const { return rep != hs.rep; }
|
||||
};
|
||||
|
||||
// We need a global swap as well
|
||||
template <class Key, class T, class HashFcn, class EqualKey, class Alloc>
|
||||
inline void swap(dense_hash_map<Key, T, HashFcn, EqualKey, Alloc>& hm1,
|
||||
dense_hash_map<Key, T, HashFcn, EqualKey, Alloc>& hm2) {
|
||||
hm1.swap(hm2);
|
||||
}
|
||||
|
||||
#endif /* _DENSE_HASH_MAP_H_ */
|
||||
Vendored
+227
@@ -0,0 +1,227 @@
|
||||
// Copyright (c) 2005, Google Inc.
|
||||
// All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without
|
||||
// modification, are permitted provided that the following conditions are
|
||||
// met:
|
||||
//
|
||||
// * Redistributions of source code must retain the above copyright
|
||||
// notice, this list of conditions and the following disclaimer.
|
||||
// * Redistributions in binary form must reproduce the above
|
||||
// copyright notice, this list of conditions and the following disclaimer
|
||||
// in the documentation and/or other materials provided with the
|
||||
// distribution.
|
||||
// * Neither the name of Google Inc. nor the names of its
|
||||
// contributors may be used to endorse or promote products derived from
|
||||
// this software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
// ---
|
||||
// Author: Craig Silverstein
|
||||
//
|
||||
// This is just a very thin wrapper over densehashtable.h, just
|
||||
// like sgi stl's stl_hash_set is a very thin wrapper over
|
||||
// stl_hashtable. The major thing we define is operator[], because
|
||||
// we have a concept of a data_type which stl_hashtable doesn't
|
||||
// (it only has a key and a value).
|
||||
//
|
||||
// This is more different from dense_hash_map than you might think,
|
||||
// because all iterators for sets are const (you obviously can't
|
||||
// change the key, and for sets there is no value).
|
||||
//
|
||||
// NOTE: this is exactly like sparse_hash_set.h, with the word
|
||||
// "sparse" replaced by "dense", except for the addition of
|
||||
// set_empty_key().
|
||||
//
|
||||
// YOU MUST CALL SET_EMPTY_KEY() IMMEDIATELY AFTER CONSTRUCTION.
|
||||
//
|
||||
// Otherwise your program will die in mysterious ways.
|
||||
//
|
||||
// In other respects, we adhere mostly to the STL semantics for
|
||||
// hash-set. One important exception is that insert() invalidates
|
||||
// iterators entirely. On the plus side, though, erase() doesn't
|
||||
// invalidate iterators at all, or even change the ordering of elements.
|
||||
//
|
||||
// Here are a few "power user" tips:
|
||||
//
|
||||
// 1) set_deleted_key():
|
||||
// If you want to use erase() you must call set_deleted_key(),
|
||||
// in addition to set_empty_key(), after construction.
|
||||
// The deleted and empty keys must differ.
|
||||
//
|
||||
// 2) resize(0):
|
||||
// When an item is deleted, its memory isn't freed right
|
||||
// away. This allows you to iterate over a hashtable,
|
||||
// and call erase(), without invalidating the iterator.
|
||||
// To force the memory to be freed, call resize(0).
|
||||
//
|
||||
// Guide to what kind of hash_set to use:
|
||||
// (1) dense_hash_set: fastest, uses the most memory
|
||||
// (2) sparse_hash_set: slowest, uses the least memory
|
||||
// (3) hash_set (STL): in the middle
|
||||
// Typically I use sparse_hash_set when I care about space and/or when
|
||||
// I need to save the hashtable on disk. I use hash_set otherwise. I
|
||||
// don't personally use dense_hash_set ever; the only use of
|
||||
// dense_hash_set I know of is to work around malloc() bugs in some
|
||||
// systems (dense_hash_set has a particularly simple allocation scheme).
|
||||
//
|
||||
// - dense_hash_set has, typically, a factor of 2 memory overhead (if your
|
||||
// data takes up X bytes, the hash_set uses X more bytes in overhead).
|
||||
// - sparse_hash_set has about 2 bits overhead per entry.
|
||||
// - sparse_hash_map can be 3-7 times slower than the others for lookup and,
|
||||
// especially, inserts. See time_hash_map.cc for details.
|
||||
//
|
||||
// See /usr/(local/)?doc/sparsehash-0.1/dense_hash_set.html
|
||||
// for information about how to use this class.
|
||||
|
||||
#ifndef _DENSE_HASH_SET_H_
|
||||
#define _DENSE_HASH_SET_H_
|
||||
|
||||
//#include <google/sparsehash/sparseconfig.h>
|
||||
#include <stdio.h> // for FILE * in read()/write()
|
||||
#include <algorithm> // for the default template args
|
||||
#include <functional> // for equal_to
|
||||
#include <memory> // for alloc<>
|
||||
#include <utility> // for pair<>
|
||||
//#include HASH_FUN_H // defined in config.h
|
||||
#include "densehashtable.h"
|
||||
|
||||
using std::pair;
|
||||
|
||||
template <class Value,
|
||||
class HashFcn,
|
||||
class EqualKey = std::equal_to<Value>,
|
||||
class Alloc = std::allocator<Value> >
|
||||
class dense_hash_set {
|
||||
private:
|
||||
// Apparently identity is not stl-standard, so we define our own
|
||||
struct Identity {
|
||||
Value& operator()(Value& v) const { return v; }
|
||||
const Value& operator()(const Value& v) const { return v; }
|
||||
};
|
||||
|
||||
// The actual data
|
||||
typedef dense_hashtable<Value, Value, HashFcn, Identity, EqualKey, Alloc> ht;
|
||||
ht rep;
|
||||
|
||||
public:
|
||||
typedef typename ht::key_type key_type;
|
||||
typedef typename ht::value_type value_type;
|
||||
typedef typename ht::hasher hasher;
|
||||
typedef typename ht::key_equal key_equal;
|
||||
|
||||
typedef typename ht::size_type size_type;
|
||||
typedef typename ht::difference_type difference_type;
|
||||
typedef typename ht::const_pointer pointer;
|
||||
typedef typename ht::const_pointer const_pointer;
|
||||
typedef typename ht::const_reference reference;
|
||||
typedef typename ht::const_reference const_reference;
|
||||
|
||||
typedef typename ht::const_iterator iterator;
|
||||
typedef typename ht::const_iterator const_iterator;
|
||||
|
||||
|
||||
// Iterator functions -- recall all iterators are const
|
||||
iterator begin() const { return rep.begin(); }
|
||||
iterator end() const { return rep.end(); }
|
||||
|
||||
|
||||
// Accessor functions
|
||||
hasher hash_funct() const { return rep.hash_funct(); }
|
||||
key_equal key_eq() const { return rep.key_eq(); }
|
||||
|
||||
|
||||
// Constructors
|
||||
explicit dense_hash_set(size_type n = 0,
|
||||
const hasher& hf = hasher(),
|
||||
const key_equal& eql = key_equal())
|
||||
: rep(n, hf, eql) { }
|
||||
|
||||
template <class InputIterator>
|
||||
dense_hash_set(InputIterator f, InputIterator l,
|
||||
size_type n = 0,
|
||||
const hasher& hf = hasher(),
|
||||
const key_equal& eql = key_equal())
|
||||
: rep(n, hf, eql) {
|
||||
rep.insert(f, l);
|
||||
}
|
||||
// We use the default copy constructor
|
||||
// We use the default operator=()
|
||||
// We use the default destructor
|
||||
|
||||
void clear() { rep.clear(); }
|
||||
// This clears the hash set without resizing it down to the minimum
|
||||
// bucket count, but rather keeps the number of buckets constant
|
||||
void clear_no_resize() { rep.clear_no_resize(); }
|
||||
void swap(dense_hash_set& hs) { rep.swap(hs.rep); }
|
||||
|
||||
|
||||
// Functions concerning size
|
||||
size_type size() const { return rep.size(); }
|
||||
size_type max_size() const { return rep.max_size(); }
|
||||
bool empty() const { return rep.empty(); }
|
||||
size_type bucket_count() const { return rep.bucket_count(); }
|
||||
size_type max_bucket_count() const { return rep.max_bucket_count(); }
|
||||
|
||||
void resize(size_type hint) { rep.resize(hint); }
|
||||
|
||||
|
||||
// Lookup routines
|
||||
iterator find(const key_type& key) const { return rep.find(key); }
|
||||
|
||||
size_type count(const key_type& key) const { return rep.count(key); }
|
||||
|
||||
pair<iterator, iterator> equal_range(const key_type& key) const {
|
||||
return rep.equal_range(key);
|
||||
}
|
||||
|
||||
// Insertion routines
|
||||
pair<iterator, bool> insert(const value_type& obj) {
|
||||
pair<typename ht::iterator, bool> p = rep.insert(obj);
|
||||
return pair<iterator, bool>(p.first, p.second); // const to non-const
|
||||
}
|
||||
template <class InputIterator>
|
||||
void insert(InputIterator f, InputIterator l) { rep.insert(f, l); }
|
||||
void insert(const_iterator f, const_iterator l) { rep.insert(f, l); }
|
||||
// required for std::insert_iterator; the passed-in iterator is ignored
|
||||
iterator insert(iterator, const value_type& obj) { return insert(obj).first; }
|
||||
|
||||
|
||||
// Deletion and empty routines
|
||||
// THESE ARE NON-STANDARD! I make you specify an "impossible" key
|
||||
// value to identify deleted and empty buckets. You can change the
|
||||
// deleted key as time goes on, or get rid of it entirely to be insert-only.
|
||||
void set_empty_key(const key_type& key) { rep.set_empty_key(key); }
|
||||
void set_deleted_key(const key_type& key) { rep.set_deleted_key(key); }
|
||||
void clear_deleted_key() { rep.clear_deleted_key(); }
|
||||
|
||||
// These are standard
|
||||
size_type erase(const key_type& key) { return rep.erase(key); }
|
||||
void erase(iterator it) { rep.erase(it); }
|
||||
void erase(iterator f, iterator l) { rep.erase(f, l); }
|
||||
|
||||
|
||||
// Comparison
|
||||
bool operator==(const dense_hash_set& hs) const { return rep == hs.rep; }
|
||||
bool operator!=(const dense_hash_set& hs) const { return rep != hs.rep; }
|
||||
};
|
||||
|
||||
template <class Val, class HashFcn, class EqualKey, class Alloc>
|
||||
inline void swap(dense_hash_set<Val, HashFcn, EqualKey, Alloc>& hs1,
|
||||
dense_hash_set<Val, HashFcn, EqualKey, Alloc>& hs2) {
|
||||
hs1.swap(hs2);
|
||||
}
|
||||
|
||||
|
||||
#endif /* _DENSE_HASH_SET_H_ */
|
||||
Vendored
+1021
File diff suppressed because it is too large
Load Diff
Vendored
+250
@@ -0,0 +1,250 @@
|
||||
// Copyright (c) 2006, Google Inc.
|
||||
// All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without
|
||||
// modification, are permitted provided that the following conditions are
|
||||
// met:
|
||||
//
|
||||
// * Redistributions of source code must retain the above copyright
|
||||
// notice, this list of conditions and the following disclaimer.
|
||||
// * Redistributions in binary form must reproduce the above
|
||||
// copyright notice, this list of conditions and the following disclaimer
|
||||
// in the documentation and/or other materials provided with the
|
||||
// distribution.
|
||||
// * Neither the name of Google Inc. nor the names of its
|
||||
// contributors may be used to endorse or promote products derived from
|
||||
// this software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
// ----
|
||||
// Author: Matt Austern
|
||||
//
|
||||
// Define a small subset of tr1 type traits. The traits we define are:
|
||||
// is_integral
|
||||
// is_floating_point
|
||||
// is_pointer
|
||||
// is_reference
|
||||
// is_pod
|
||||
// has_trivial_constructor
|
||||
// has_trivial_copy
|
||||
// has_trivial_assign
|
||||
// has_trivial_destructor
|
||||
// remove_const
|
||||
// remove_volatile
|
||||
// remove_cv
|
||||
// remove_reference
|
||||
// remove_pointer
|
||||
// is_convertible
|
||||
// We can add more type traits as required.
|
||||
|
||||
#ifndef BASE_TYPE_TRAITS_H_
|
||||
#define BASE_TYPE_TRAITS_H_
|
||||
|
||||
//#include <google/sparsehash/sparseconfig.h>
|
||||
#include <utility> // For pair
|
||||
|
||||
namespace dense_hash_map_traits
|
||||
{
|
||||
|
||||
// integral_constant, defined in tr1, is a wrapper for an integer
|
||||
// value. We don't really need this generality; we could get away
|
||||
// with hardcoding the integer type to bool. We use the fully
|
||||
// general integer_constant for compatibility with tr1.
|
||||
|
||||
template<class T, T v>
|
||||
struct integral_constant {
|
||||
static const T value = v;
|
||||
typedef T value_type;
|
||||
typedef integral_constant<T, v> type;
|
||||
};
|
||||
|
||||
template <class T, T v> const T integral_constant<T, v>::value;
|
||||
|
||||
// Abbreviations: true_type and false_type are structs that represent
|
||||
// boolean true and false values.
|
||||
typedef integral_constant<bool, true> true_type;
|
||||
typedef integral_constant<bool, false> false_type;
|
||||
|
||||
// Types small_ and big_ are guaranteed such that sizeof(small_) <
|
||||
// sizeof(big_)
|
||||
typedef char small_;
|
||||
|
||||
struct big_ {
|
||||
char dummy[2];
|
||||
};
|
||||
|
||||
// is_integral is false except for the built-in integer types.
|
||||
template <class T> struct is_integral : false_type { };
|
||||
template<> struct is_integral<bool> : true_type { };
|
||||
template<> struct is_integral<char> : true_type { };
|
||||
template<> struct is_integral<unsigned char> : true_type { };
|
||||
template<> struct is_integral<signed char> : true_type { };
|
||||
#if defined(_MSC_VER)
|
||||
// wchar_t is not by default a distinct type from unsigned short in
|
||||
// Microsoft C.
|
||||
// See http://msdn2.microsoft.com/en-us/library/dh8che7s(VS.80).aspx
|
||||
template<> struct is_integral<__wchar_t> : true_type { };
|
||||
#else
|
||||
template<> struct is_integral<wchar_t> : true_type { };
|
||||
#endif
|
||||
template<> struct is_integral<short> : true_type { };
|
||||
template<> struct is_integral<unsigned short> : true_type { };
|
||||
template<> struct is_integral<int> : true_type { };
|
||||
template<> struct is_integral<unsigned int> : true_type { };
|
||||
template<> struct is_integral<long> : true_type { };
|
||||
template<> struct is_integral<unsigned long> : true_type { };
|
||||
#ifdef HAVE_LONG_LONG
|
||||
template<> struct is_integral<long long> : true_type { };
|
||||
template<> struct is_integral<unsigned long long> : true_type { };
|
||||
#endif
|
||||
|
||||
|
||||
// is_floating_point is false except for the built-in floating-point types.
|
||||
template <class T> struct is_floating_point : false_type { };
|
||||
template<> struct is_floating_point<float> : true_type { };
|
||||
template<> struct is_floating_point<double> : true_type { };
|
||||
template<> struct is_floating_point<long double> : true_type { };
|
||||
|
||||
|
||||
// is_pointer is false except for pointer types.
|
||||
template <class T> struct is_pointer : false_type { };
|
||||
template <class T> struct is_pointer<T*> : true_type { };
|
||||
|
||||
|
||||
// is_reference is false except for reference types.
|
||||
template<typename T> struct is_reference : false_type {};
|
||||
template<typename T> struct is_reference<T&> : true_type {};
|
||||
|
||||
|
||||
// We can't get is_pod right without compiler help, so fail conservatively.
|
||||
// We will assume it's false except for arithmetic types and pointers,
|
||||
// and const versions thereof. Note that std::pair is not a POD.
|
||||
template <class T> struct is_pod
|
||||
: integral_constant<bool, (is_integral<T>::value ||
|
||||
is_floating_point<T>::value ||
|
||||
is_pointer<T>::value)> { };
|
||||
template <class T> struct is_pod<const T> : is_pod<T> { };
|
||||
|
||||
|
||||
// We can't get has_trivial_constructor right without compiler help, so
|
||||
// fail conservatively. We will assume it's false except for: (1) types
|
||||
// for which is_pod is true. (2) std::pair of types with trivial
|
||||
// constructors. (3) array of a type with a trivial constructor.
|
||||
// (4) const versions thereof.
|
||||
template <class T> struct has_trivial_constructor : is_pod<T> { };
|
||||
template <class T, class U> struct has_trivial_constructor<std::pair<T, U> >
|
||||
: integral_constant<bool,
|
||||
(has_trivial_constructor<T>::value &&
|
||||
has_trivial_constructor<U>::value)> { };
|
||||
template <class A, int N> struct has_trivial_constructor<A[N]>
|
||||
: has_trivial_constructor<A> { };
|
||||
template <class T> struct has_trivial_constructor<const T>
|
||||
: has_trivial_constructor<T> { };
|
||||
|
||||
// We can't get has_trivial_copy right without compiler help, so fail
|
||||
// conservatively. We will assume it's false except for: (1) types
|
||||
// for which is_pod is true. (2) std::pair of types with trivial copy
|
||||
// constructors. (3) array of a type with a trivial copy constructor.
|
||||
// (4) const versions thereof.
|
||||
template <class T> struct has_trivial_copy : is_pod<T> { };
|
||||
template <class T, class U> struct has_trivial_copy<std::pair<T, U> >
|
||||
: integral_constant<bool,
|
||||
(has_trivial_copy<T>::value &&
|
||||
has_trivial_copy<U>::value)> { };
|
||||
template <class A, int N> struct has_trivial_copy<A[N]>
|
||||
: has_trivial_copy<A> { };
|
||||
template <class T> struct has_trivial_copy<const T> : has_trivial_copy<T> { };
|
||||
|
||||
// We can't get has_trivial_assign right without compiler help, so fail
|
||||
// conservatively. We will assume it's false except for: (1) types
|
||||
// for which is_pod is true. (2) std::pair of types with trivial copy
|
||||
// constructors. (3) array of a type with a trivial assign constructor.
|
||||
template <class T> struct has_trivial_assign : is_pod<T> { };
|
||||
template <class T, class U> struct has_trivial_assign<std::pair<T, U> >
|
||||
: integral_constant<bool,
|
||||
(has_trivial_assign<T>::value &&
|
||||
has_trivial_assign<U>::value)> { };
|
||||
template <class A, int N> struct has_trivial_assign<A[N]>
|
||||
: has_trivial_assign<A> { };
|
||||
|
||||
// We can't get has_trivial_destructor right without compiler help, so
|
||||
// fail conservatively. We will assume it's false except for: (1) types
|
||||
// for which is_pod is true. (2) std::pair of types with trivial
|
||||
// destructors. (3) array of a type with a trivial destructor.
|
||||
// (4) const versions thereof.
|
||||
template <class T> struct has_trivial_destructor : is_pod<T> { };
|
||||
template <class T, class U> struct has_trivial_destructor<std::pair<T, U> >
|
||||
: integral_constant<bool,
|
||||
(has_trivial_destructor<T>::value &&
|
||||
has_trivial_destructor<U>::value)> { };
|
||||
template <class A, int N> struct has_trivial_destructor<A[N]>
|
||||
: has_trivial_destructor<A> { };
|
||||
template <class T> struct has_trivial_destructor<const T>
|
||||
: has_trivial_destructor<T> { };
|
||||
|
||||
// Specified by TR1 [4.7.1]
|
||||
template<typename T> struct remove_const { typedef T type; };
|
||||
template<typename T> struct remove_const<T const> { typedef T type; };
|
||||
template<typename T> struct remove_volatile { typedef T type; };
|
||||
template<typename T> struct remove_volatile<T volatile> { typedef T type; };
|
||||
template<typename T> struct remove_cv {
|
||||
typedef typename remove_const<typename remove_volatile<T>::type>::type type;
|
||||
};
|
||||
|
||||
|
||||
// Specified by TR1 [4.7.2]
|
||||
template<typename T> struct remove_reference { typedef T type; };
|
||||
template<typename T> struct remove_reference<T&> { typedef T type; };
|
||||
|
||||
// Specified by TR1 [4.7.4] Pointer modifications.
|
||||
template<typename T> struct remove_pointer { typedef T type; };
|
||||
template<typename T> struct remove_pointer<T*> { typedef T type; };
|
||||
template<typename T> struct remove_pointer<T* const> { typedef T type; };
|
||||
template<typename T> struct remove_pointer<T* volatile> { typedef T type; };
|
||||
template<typename T> struct remove_pointer<T* const volatile> {
|
||||
typedef T type; };
|
||||
|
||||
// Specified by TR1 [4.6] Relationships between types
|
||||
#ifndef _MSC_VER
|
||||
namespace internal_type_traits {
|
||||
|
||||
// This class is an implementation detail for is_convertible, and you
|
||||
// don't need to know how it works to use is_convertible. For those
|
||||
// who care: we declare two different functions, one whose argument is
|
||||
// of type To and one with a variadic argument list. We give them
|
||||
// return types of different size, so we can use sizeof to trick the
|
||||
// compiler into telling us which function it would have chosen if we
|
||||
// had called it with an argument of type From. See Alexandrescu's
|
||||
// _Modern C++ Design_ for more details on this sort of trick.
|
||||
|
||||
template <typename From, typename To>
|
||||
struct ConvertHelper {
|
||||
static small_ Test(To);
|
||||
static big_ Test(...);
|
||||
static From Create();
|
||||
};
|
||||
} // namespace internal
|
||||
|
||||
// Inherits from true_type if From is convertible to To, false_type otherwise.
|
||||
template <typename From, typename To>
|
||||
struct is_convertible
|
||||
: integral_constant<bool,
|
||||
sizeof(internal_type_traits::ConvertHelper<From, To>::Test(
|
||||
internal_type_traits::ConvertHelper<From, To>::Create()))
|
||||
== sizeof(small_)> {
|
||||
};
|
||||
#endif
|
||||
|
||||
}
|
||||
#endif // BASE_TYPE_TRAITS_H_
|
||||
+74
@@ -0,0 +1,74 @@
|
||||
#ifndef __MONODROID_LOGGER_H__
|
||||
#define __MONODROID_LOGGER_H__
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#ifndef ANDROID
|
||||
typedef enum android_LogPriority
|
||||
{
|
||||
ANDROID_LOG_UNKNOWN = 0,
|
||||
ANDROID_LOG_DEFAULT, /* only for SetMinPriority() */
|
||||
ANDROID_LOG_VERBOSE,
|
||||
ANDROID_LOG_DEBUG,
|
||||
ANDROID_LOG_INFO,
|
||||
ANDROID_LOG_WARN,
|
||||
ANDROID_LOG_ERROR,
|
||||
ANDROID_LOG_FATAL,
|
||||
ANDROID_LOG_SILENT, /* only for SetMinPriority(); must be last */
|
||||
} android_LogPriority;
|
||||
#endif
|
||||
|
||||
// Keep in sync with Mono.Android/src/Runtime/Logger.cs!LogCategories enum
|
||||
typedef enum _LogCategories
|
||||
{
|
||||
LOG_NONE = 0,
|
||||
LOG_DEFAULT = 1 << 0,
|
||||
LOG_ASSEMBLY = 1 << 1,
|
||||
LOG_DEBUGGER = 1 << 2,
|
||||
LOG_GC = 1 << 3,
|
||||
LOG_GREF = 1 << 4,
|
||||
LOG_LREF = 1 << 5,
|
||||
LOG_TIMING = 1 << 6,
|
||||
LOG_BUNDLE = 1 << 7,
|
||||
LOG_NET = 1 << 8,
|
||||
LOG_NETLINK = 1 << 9,
|
||||
} LogCategories;
|
||||
|
||||
#if 0
|
||||
|
||||
extern unsigned int log_categories;
|
||||
|
||||
#if DEBUG
|
||||
extern int gc_spew_enabled;
|
||||
#endif
|
||||
|
||||
void init_categories(const char *override_dir);
|
||||
|
||||
void log_error(LogCategories category, const char *format, ...);
|
||||
|
||||
void log_fatal(LogCategories category, const char *format, ...);
|
||||
|
||||
void log_info(LogCategories category, const char *format, ...);
|
||||
|
||||
void log_warn(LogCategories category, const char *format, ...);
|
||||
|
||||
void log_debug(LogCategories category, const char *format, ...);
|
||||
|
||||
#else
|
||||
|
||||
#define init_categories(override_dir)
|
||||
#define log_error(category, format, ...)
|
||||
#define log_fatal(category, format, ...)
|
||||
#define log_info(category, format, ...)
|
||||
#define log_warn(category, format, ...)
|
||||
#define log_debug(category, format, ...)
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* __MONODROID_LOGGER_H__ */
|
||||
+54
@@ -0,0 +1,54 @@
|
||||
#ifndef __MONODROID_H
|
||||
#define __MONODROID_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/* VS 2010 and later have stdint.h */
|
||||
#if defined(_MSC_VER)
|
||||
|
||||
#define MONO_API_EXPORT __declspec(dllexport)
|
||||
#define MONO_API_IMPORT __declspec(dllimport)
|
||||
|
||||
#else /* defined(_MSC_VER */
|
||||
|
||||
#define MONO_API_EXPORT __attribute__ ((visibility ("default")))
|
||||
#define MONO_API_IMPORT
|
||||
|
||||
#endif /* !defined(_MSC_VER) */
|
||||
|
||||
#if defined(MONO_DLL_EXPORT)
|
||||
#define MONO_API MONO_API_EXPORT
|
||||
#elif defined(MONO_DLL_IMPORT)
|
||||
#define MONO_API MONO_API_IMPORT
|
||||
#else /* !defined(MONO_DLL_IMPORT) && !defined(MONO_API_IMPORT) */
|
||||
#define MONO_API
|
||||
#endif /* MONO_DLL_EXPORT... */
|
||||
|
||||
enum FatalExitCodes
|
||||
{
|
||||
FATAL_EXIT_CANNOT_FIND_MONO = 1,
|
||||
FATAL_EXIT_ATTACH_JVM_FAILED = 2,
|
||||
FATAL_EXIT_DEBUGGER_CONNECT = 3,
|
||||
FATAL_EXIT_CANNOT_FIND_JNIENV = 4,
|
||||
FATAL_EXIT_CANNOT_FIND_APK = 10,
|
||||
FATAL_EXIT_TRIAL_EXPIRED = 11,
|
||||
FATAL_EXIT_PTHREAD_FAILED = 12,
|
||||
FATAL_EXIT_MISSING_ASSEMBLY = 13,
|
||||
FATAL_EXIT_CANNOT_LOAD_BUNDLE = 14,
|
||||
FATAL_EXIT_CANNOT_FIND_LIBMONOSGEN = 15,
|
||||
FATAL_EXIT_NO_ASSEMBLIES = 'A',
|
||||
FATAL_EXIT_MONO_MISSING_SYMBOLS = 'B',
|
||||
FATAL_EXIT_FORK_FAILED = 'F',
|
||||
FATAL_EXIT_MISSING_INIT = 'I',
|
||||
FATAL_EXIT_MISSING_TIMEZONE_MEMBERS = 'T',
|
||||
FATAL_EXIT_MISSING_ZIPALIGN = 'Z',
|
||||
FATAL_EXIT_OUT_OF_MEMORY = 'M',
|
||||
};
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* defined __MONODROID_H */
|
||||
Vendored
+50
@@ -0,0 +1,50 @@
|
||||
#ifndef __XAMARIN_GETIFADDRS_H
|
||||
|
||||
#include "monodroid.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/* We're implementing getifaddrs behavior, this is the structure we use. It is exactly the same as
|
||||
* struct ifaddrs defined in ifaddrs.h but since bionics doesn't have it we need to mirror it here.
|
||||
*/
|
||||
struct _monodroid_ifaddrs
|
||||
{
|
||||
struct _monodroid_ifaddrs *ifa_next; /* Pointer to the next structure. */
|
||||
|
||||
char *ifa_name; /* Name of this network interface. */
|
||||
unsigned int ifa_flags; /* Flags as from SIOCGIFFLAGS ioctl. */
|
||||
|
||||
struct sockaddr *ifa_addr; /* Network address of this interface. */
|
||||
struct sockaddr *ifa_netmask; /* Netmask of this interface. */
|
||||
union
|
||||
{
|
||||
/* At most one of the following two is valid. If the IFF_BROADCAST
|
||||
bit is set in `ifa_flags', then `ifa_broadaddr' is valid. If the
|
||||
IFF_POINTOPOINT bit is set, then `ifa_dstaddr' is valid.
|
||||
It is never the case that both these bits are set at once. */
|
||||
struct sockaddr *ifu_broadaddr; /* Broadcast address of this interface. */
|
||||
struct sockaddr *ifu_dstaddr; /* Point-to-point destination address. */
|
||||
} ifa_ifu;
|
||||
/* These very same macros are defined by <net/if.h> for `struct ifaddr'.
|
||||
So if they are defined already, the existing definitions will be fine. */
|
||||
# ifndef _monodroid_ifa_broadaddr
|
||||
# define _monodroid_ifa_broadaddr ifa_ifu.ifu_broadaddr
|
||||
# endif
|
||||
# ifndef _monodroid_ifa_dstaddr
|
||||
# define _monodroid_ifa_dstaddr ifa_ifu.ifu_dstaddr
|
||||
# endif
|
||||
|
||||
void *ifa_data; /* Address-specific data (may be unused). */
|
||||
};
|
||||
|
||||
void _monodroid_getifaddrs_init(void);
|
||||
MONO_API int _monodroid_getifaddrs(struct _monodroid_ifaddrs **ifap);
|
||||
MONO_API void _monodroid_freeifaddrs(struct _monodroid_ifaddrs *ifa);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,441 @@
|
||||
/* crc32.h -- tables for rapid CRC calculation
|
||||
* Generated automatically by crc32.c
|
||||
*/
|
||||
|
||||
local const z_crc_t FAR crc_table[TBLS][256] =
|
||||
{
|
||||
{
|
||||
0x00000000UL, 0x77073096UL, 0xee0e612cUL, 0x990951baUL, 0x076dc419UL,
|
||||
0x706af48fUL, 0xe963a535UL, 0x9e6495a3UL, 0x0edb8832UL, 0x79dcb8a4UL,
|
||||
0xe0d5e91eUL, 0x97d2d988UL, 0x09b64c2bUL, 0x7eb17cbdUL, 0xe7b82d07UL,
|
||||
0x90bf1d91UL, 0x1db71064UL, 0x6ab020f2UL, 0xf3b97148UL, 0x84be41deUL,
|
||||
0x1adad47dUL, 0x6ddde4ebUL, 0xf4d4b551UL, 0x83d385c7UL, 0x136c9856UL,
|
||||
0x646ba8c0UL, 0xfd62f97aUL, 0x8a65c9ecUL, 0x14015c4fUL, 0x63066cd9UL,
|
||||
0xfa0f3d63UL, 0x8d080df5UL, 0x3b6e20c8UL, 0x4c69105eUL, 0xd56041e4UL,
|
||||
0xa2677172UL, 0x3c03e4d1UL, 0x4b04d447UL, 0xd20d85fdUL, 0xa50ab56bUL,
|
||||
0x35b5a8faUL, 0x42b2986cUL, 0xdbbbc9d6UL, 0xacbcf940UL, 0x32d86ce3UL,
|
||||
0x45df5c75UL, 0xdcd60dcfUL, 0xabd13d59UL, 0x26d930acUL, 0x51de003aUL,
|
||||
0xc8d75180UL, 0xbfd06116UL, 0x21b4f4b5UL, 0x56b3c423UL, 0xcfba9599UL,
|
||||
0xb8bda50fUL, 0x2802b89eUL, 0x5f058808UL, 0xc60cd9b2UL, 0xb10be924UL,
|
||||
0x2f6f7c87UL, 0x58684c11UL, 0xc1611dabUL, 0xb6662d3dUL, 0x76dc4190UL,
|
||||
0x01db7106UL, 0x98d220bcUL, 0xefd5102aUL, 0x71b18589UL, 0x06b6b51fUL,
|
||||
0x9fbfe4a5UL, 0xe8b8d433UL, 0x7807c9a2UL, 0x0f00f934UL, 0x9609a88eUL,
|
||||
0xe10e9818UL, 0x7f6a0dbbUL, 0x086d3d2dUL, 0x91646c97UL, 0xe6635c01UL,
|
||||
0x6b6b51f4UL, 0x1c6c6162UL, 0x856530d8UL, 0xf262004eUL, 0x6c0695edUL,
|
||||
0x1b01a57bUL, 0x8208f4c1UL, 0xf50fc457UL, 0x65b0d9c6UL, 0x12b7e950UL,
|
||||
0x8bbeb8eaUL, 0xfcb9887cUL, 0x62dd1ddfUL, 0x15da2d49UL, 0x8cd37cf3UL,
|
||||
0xfbd44c65UL, 0x4db26158UL, 0x3ab551ceUL, 0xa3bc0074UL, 0xd4bb30e2UL,
|
||||
0x4adfa541UL, 0x3dd895d7UL, 0xa4d1c46dUL, 0xd3d6f4fbUL, 0x4369e96aUL,
|
||||
0x346ed9fcUL, 0xad678846UL, 0xda60b8d0UL, 0x44042d73UL, 0x33031de5UL,
|
||||
0xaa0a4c5fUL, 0xdd0d7cc9UL, 0x5005713cUL, 0x270241aaUL, 0xbe0b1010UL,
|
||||
0xc90c2086UL, 0x5768b525UL, 0x206f85b3UL, 0xb966d409UL, 0xce61e49fUL,
|
||||
0x5edef90eUL, 0x29d9c998UL, 0xb0d09822UL, 0xc7d7a8b4UL, 0x59b33d17UL,
|
||||
0x2eb40d81UL, 0xb7bd5c3bUL, 0xc0ba6cadUL, 0xedb88320UL, 0x9abfb3b6UL,
|
||||
0x03b6e20cUL, 0x74b1d29aUL, 0xead54739UL, 0x9dd277afUL, 0x04db2615UL,
|
||||
0x73dc1683UL, 0xe3630b12UL, 0x94643b84UL, 0x0d6d6a3eUL, 0x7a6a5aa8UL,
|
||||
0xe40ecf0bUL, 0x9309ff9dUL, 0x0a00ae27UL, 0x7d079eb1UL, 0xf00f9344UL,
|
||||
0x8708a3d2UL, 0x1e01f268UL, 0x6906c2feUL, 0xf762575dUL, 0x806567cbUL,
|
||||
0x196c3671UL, 0x6e6b06e7UL, 0xfed41b76UL, 0x89d32be0UL, 0x10da7a5aUL,
|
||||
0x67dd4accUL, 0xf9b9df6fUL, 0x8ebeeff9UL, 0x17b7be43UL, 0x60b08ed5UL,
|
||||
0xd6d6a3e8UL, 0xa1d1937eUL, 0x38d8c2c4UL, 0x4fdff252UL, 0xd1bb67f1UL,
|
||||
0xa6bc5767UL, 0x3fb506ddUL, 0x48b2364bUL, 0xd80d2bdaUL, 0xaf0a1b4cUL,
|
||||
0x36034af6UL, 0x41047a60UL, 0xdf60efc3UL, 0xa867df55UL, 0x316e8eefUL,
|
||||
0x4669be79UL, 0xcb61b38cUL, 0xbc66831aUL, 0x256fd2a0UL, 0x5268e236UL,
|
||||
0xcc0c7795UL, 0xbb0b4703UL, 0x220216b9UL, 0x5505262fUL, 0xc5ba3bbeUL,
|
||||
0xb2bd0b28UL, 0x2bb45a92UL, 0x5cb36a04UL, 0xc2d7ffa7UL, 0xb5d0cf31UL,
|
||||
0x2cd99e8bUL, 0x5bdeae1dUL, 0x9b64c2b0UL, 0xec63f226UL, 0x756aa39cUL,
|
||||
0x026d930aUL, 0x9c0906a9UL, 0xeb0e363fUL, 0x72076785UL, 0x05005713UL,
|
||||
0x95bf4a82UL, 0xe2b87a14UL, 0x7bb12baeUL, 0x0cb61b38UL, 0x92d28e9bUL,
|
||||
0xe5d5be0dUL, 0x7cdcefb7UL, 0x0bdbdf21UL, 0x86d3d2d4UL, 0xf1d4e242UL,
|
||||
0x68ddb3f8UL, 0x1fda836eUL, 0x81be16cdUL, 0xf6b9265bUL, 0x6fb077e1UL,
|
||||
0x18b74777UL, 0x88085ae6UL, 0xff0f6a70UL, 0x66063bcaUL, 0x11010b5cUL,
|
||||
0x8f659effUL, 0xf862ae69UL, 0x616bffd3UL, 0x166ccf45UL, 0xa00ae278UL,
|
||||
0xd70dd2eeUL, 0x4e048354UL, 0x3903b3c2UL, 0xa7672661UL, 0xd06016f7UL,
|
||||
0x4969474dUL, 0x3e6e77dbUL, 0xaed16a4aUL, 0xd9d65adcUL, 0x40df0b66UL,
|
||||
0x37d83bf0UL, 0xa9bcae53UL, 0xdebb9ec5UL, 0x47b2cf7fUL, 0x30b5ffe9UL,
|
||||
0xbdbdf21cUL, 0xcabac28aUL, 0x53b39330UL, 0x24b4a3a6UL, 0xbad03605UL,
|
||||
0xcdd70693UL, 0x54de5729UL, 0x23d967bfUL, 0xb3667a2eUL, 0xc4614ab8UL,
|
||||
0x5d681b02UL, 0x2a6f2b94UL, 0xb40bbe37UL, 0xc30c8ea1UL, 0x5a05df1bUL,
|
||||
0x2d02ef8dUL
|
||||
#ifdef BYFOUR
|
||||
},
|
||||
{
|
||||
0x00000000UL, 0x191b3141UL, 0x32366282UL, 0x2b2d53c3UL, 0x646cc504UL,
|
||||
0x7d77f445UL, 0x565aa786UL, 0x4f4196c7UL, 0xc8d98a08UL, 0xd1c2bb49UL,
|
||||
0xfaefe88aUL, 0xe3f4d9cbUL, 0xacb54f0cUL, 0xb5ae7e4dUL, 0x9e832d8eUL,
|
||||
0x87981ccfUL, 0x4ac21251UL, 0x53d92310UL, 0x78f470d3UL, 0x61ef4192UL,
|
||||
0x2eaed755UL, 0x37b5e614UL, 0x1c98b5d7UL, 0x05838496UL, 0x821b9859UL,
|
||||
0x9b00a918UL, 0xb02dfadbUL, 0xa936cb9aUL, 0xe6775d5dUL, 0xff6c6c1cUL,
|
||||
0xd4413fdfUL, 0xcd5a0e9eUL, 0x958424a2UL, 0x8c9f15e3UL, 0xa7b24620UL,
|
||||
0xbea97761UL, 0xf1e8e1a6UL, 0xe8f3d0e7UL, 0xc3de8324UL, 0xdac5b265UL,
|
||||
0x5d5daeaaUL, 0x44469febUL, 0x6f6bcc28UL, 0x7670fd69UL, 0x39316baeUL,
|
||||
0x202a5aefUL, 0x0b07092cUL, 0x121c386dUL, 0xdf4636f3UL, 0xc65d07b2UL,
|
||||
0xed705471UL, 0xf46b6530UL, 0xbb2af3f7UL, 0xa231c2b6UL, 0x891c9175UL,
|
||||
0x9007a034UL, 0x179fbcfbUL, 0x0e848dbaUL, 0x25a9de79UL, 0x3cb2ef38UL,
|
||||
0x73f379ffUL, 0x6ae848beUL, 0x41c51b7dUL, 0x58de2a3cUL, 0xf0794f05UL,
|
||||
0xe9627e44UL, 0xc24f2d87UL, 0xdb541cc6UL, 0x94158a01UL, 0x8d0ebb40UL,
|
||||
0xa623e883UL, 0xbf38d9c2UL, 0x38a0c50dUL, 0x21bbf44cUL, 0x0a96a78fUL,
|
||||
0x138d96ceUL, 0x5ccc0009UL, 0x45d73148UL, 0x6efa628bUL, 0x77e153caUL,
|
||||
0xbabb5d54UL, 0xa3a06c15UL, 0x888d3fd6UL, 0x91960e97UL, 0xded79850UL,
|
||||
0xc7cca911UL, 0xece1fad2UL, 0xf5facb93UL, 0x7262d75cUL, 0x6b79e61dUL,
|
||||
0x4054b5deUL, 0x594f849fUL, 0x160e1258UL, 0x0f152319UL, 0x243870daUL,
|
||||
0x3d23419bUL, 0x65fd6ba7UL, 0x7ce65ae6UL, 0x57cb0925UL, 0x4ed03864UL,
|
||||
0x0191aea3UL, 0x188a9fe2UL, 0x33a7cc21UL, 0x2abcfd60UL, 0xad24e1afUL,
|
||||
0xb43fd0eeUL, 0x9f12832dUL, 0x8609b26cUL, 0xc94824abUL, 0xd05315eaUL,
|
||||
0xfb7e4629UL, 0xe2657768UL, 0x2f3f79f6UL, 0x362448b7UL, 0x1d091b74UL,
|
||||
0x04122a35UL, 0x4b53bcf2UL, 0x52488db3UL, 0x7965de70UL, 0x607eef31UL,
|
||||
0xe7e6f3feUL, 0xfefdc2bfUL, 0xd5d0917cUL, 0xcccba03dUL, 0x838a36faUL,
|
||||
0x9a9107bbUL, 0xb1bc5478UL, 0xa8a76539UL, 0x3b83984bUL, 0x2298a90aUL,
|
||||
0x09b5fac9UL, 0x10aecb88UL, 0x5fef5d4fUL, 0x46f46c0eUL, 0x6dd93fcdUL,
|
||||
0x74c20e8cUL, 0xf35a1243UL, 0xea412302UL, 0xc16c70c1UL, 0xd8774180UL,
|
||||
0x9736d747UL, 0x8e2de606UL, 0xa500b5c5UL, 0xbc1b8484UL, 0x71418a1aUL,
|
||||
0x685abb5bUL, 0x4377e898UL, 0x5a6cd9d9UL, 0x152d4f1eUL, 0x0c367e5fUL,
|
||||
0x271b2d9cUL, 0x3e001cddUL, 0xb9980012UL, 0xa0833153UL, 0x8bae6290UL,
|
||||
0x92b553d1UL, 0xddf4c516UL, 0xc4eff457UL, 0xefc2a794UL, 0xf6d996d5UL,
|
||||
0xae07bce9UL, 0xb71c8da8UL, 0x9c31de6bUL, 0x852aef2aUL, 0xca6b79edUL,
|
||||
0xd37048acUL, 0xf85d1b6fUL, 0xe1462a2eUL, 0x66de36e1UL, 0x7fc507a0UL,
|
||||
0x54e85463UL, 0x4df36522UL, 0x02b2f3e5UL, 0x1ba9c2a4UL, 0x30849167UL,
|
||||
0x299fa026UL, 0xe4c5aeb8UL, 0xfdde9ff9UL, 0xd6f3cc3aUL, 0xcfe8fd7bUL,
|
||||
0x80a96bbcUL, 0x99b25afdUL, 0xb29f093eUL, 0xab84387fUL, 0x2c1c24b0UL,
|
||||
0x350715f1UL, 0x1e2a4632UL, 0x07317773UL, 0x4870e1b4UL, 0x516bd0f5UL,
|
||||
0x7a468336UL, 0x635db277UL, 0xcbfad74eUL, 0xd2e1e60fUL, 0xf9ccb5ccUL,
|
||||
0xe0d7848dUL, 0xaf96124aUL, 0xb68d230bUL, 0x9da070c8UL, 0x84bb4189UL,
|
||||
0x03235d46UL, 0x1a386c07UL, 0x31153fc4UL, 0x280e0e85UL, 0x674f9842UL,
|
||||
0x7e54a903UL, 0x5579fac0UL, 0x4c62cb81UL, 0x8138c51fUL, 0x9823f45eUL,
|
||||
0xb30ea79dUL, 0xaa1596dcUL, 0xe554001bUL, 0xfc4f315aUL, 0xd7626299UL,
|
||||
0xce7953d8UL, 0x49e14f17UL, 0x50fa7e56UL, 0x7bd72d95UL, 0x62cc1cd4UL,
|
||||
0x2d8d8a13UL, 0x3496bb52UL, 0x1fbbe891UL, 0x06a0d9d0UL, 0x5e7ef3ecUL,
|
||||
0x4765c2adUL, 0x6c48916eUL, 0x7553a02fUL, 0x3a1236e8UL, 0x230907a9UL,
|
||||
0x0824546aUL, 0x113f652bUL, 0x96a779e4UL, 0x8fbc48a5UL, 0xa4911b66UL,
|
||||
0xbd8a2a27UL, 0xf2cbbce0UL, 0xebd08da1UL, 0xc0fdde62UL, 0xd9e6ef23UL,
|
||||
0x14bce1bdUL, 0x0da7d0fcUL, 0x268a833fUL, 0x3f91b27eUL, 0x70d024b9UL,
|
||||
0x69cb15f8UL, 0x42e6463bUL, 0x5bfd777aUL, 0xdc656bb5UL, 0xc57e5af4UL,
|
||||
0xee530937UL, 0xf7483876UL, 0xb809aeb1UL, 0xa1129ff0UL, 0x8a3fcc33UL,
|
||||
0x9324fd72UL
|
||||
},
|
||||
{
|
||||
0x00000000UL, 0x01c26a37UL, 0x0384d46eUL, 0x0246be59UL, 0x0709a8dcUL,
|
||||
0x06cbc2ebUL, 0x048d7cb2UL, 0x054f1685UL, 0x0e1351b8UL, 0x0fd13b8fUL,
|
||||
0x0d9785d6UL, 0x0c55efe1UL, 0x091af964UL, 0x08d89353UL, 0x0a9e2d0aUL,
|
||||
0x0b5c473dUL, 0x1c26a370UL, 0x1de4c947UL, 0x1fa2771eUL, 0x1e601d29UL,
|
||||
0x1b2f0bacUL, 0x1aed619bUL, 0x18abdfc2UL, 0x1969b5f5UL, 0x1235f2c8UL,
|
||||
0x13f798ffUL, 0x11b126a6UL, 0x10734c91UL, 0x153c5a14UL, 0x14fe3023UL,
|
||||
0x16b88e7aUL, 0x177ae44dUL, 0x384d46e0UL, 0x398f2cd7UL, 0x3bc9928eUL,
|
||||
0x3a0bf8b9UL, 0x3f44ee3cUL, 0x3e86840bUL, 0x3cc03a52UL, 0x3d025065UL,
|
||||
0x365e1758UL, 0x379c7d6fUL, 0x35dac336UL, 0x3418a901UL, 0x3157bf84UL,
|
||||
0x3095d5b3UL, 0x32d36beaUL, 0x331101ddUL, 0x246be590UL, 0x25a98fa7UL,
|
||||
0x27ef31feUL, 0x262d5bc9UL, 0x23624d4cUL, 0x22a0277bUL, 0x20e69922UL,
|
||||
0x2124f315UL, 0x2a78b428UL, 0x2bbade1fUL, 0x29fc6046UL, 0x283e0a71UL,
|
||||
0x2d711cf4UL, 0x2cb376c3UL, 0x2ef5c89aUL, 0x2f37a2adUL, 0x709a8dc0UL,
|
||||
0x7158e7f7UL, 0x731e59aeUL, 0x72dc3399UL, 0x7793251cUL, 0x76514f2bUL,
|
||||
0x7417f172UL, 0x75d59b45UL, 0x7e89dc78UL, 0x7f4bb64fUL, 0x7d0d0816UL,
|
||||
0x7ccf6221UL, 0x798074a4UL, 0x78421e93UL, 0x7a04a0caUL, 0x7bc6cafdUL,
|
||||
0x6cbc2eb0UL, 0x6d7e4487UL, 0x6f38fadeUL, 0x6efa90e9UL, 0x6bb5866cUL,
|
||||
0x6a77ec5bUL, 0x68315202UL, 0x69f33835UL, 0x62af7f08UL, 0x636d153fUL,
|
||||
0x612bab66UL, 0x60e9c151UL, 0x65a6d7d4UL, 0x6464bde3UL, 0x662203baUL,
|
||||
0x67e0698dUL, 0x48d7cb20UL, 0x4915a117UL, 0x4b531f4eUL, 0x4a917579UL,
|
||||
0x4fde63fcUL, 0x4e1c09cbUL, 0x4c5ab792UL, 0x4d98dda5UL, 0x46c49a98UL,
|
||||
0x4706f0afUL, 0x45404ef6UL, 0x448224c1UL, 0x41cd3244UL, 0x400f5873UL,
|
||||
0x4249e62aUL, 0x438b8c1dUL, 0x54f16850UL, 0x55330267UL, 0x5775bc3eUL,
|
||||
0x56b7d609UL, 0x53f8c08cUL, 0x523aaabbUL, 0x507c14e2UL, 0x51be7ed5UL,
|
||||
0x5ae239e8UL, 0x5b2053dfUL, 0x5966ed86UL, 0x58a487b1UL, 0x5deb9134UL,
|
||||
0x5c29fb03UL, 0x5e6f455aUL, 0x5fad2f6dUL, 0xe1351b80UL, 0xe0f771b7UL,
|
||||
0xe2b1cfeeUL, 0xe373a5d9UL, 0xe63cb35cUL, 0xe7fed96bUL, 0xe5b86732UL,
|
||||
0xe47a0d05UL, 0xef264a38UL, 0xeee4200fUL, 0xeca29e56UL, 0xed60f461UL,
|
||||
0xe82fe2e4UL, 0xe9ed88d3UL, 0xebab368aUL, 0xea695cbdUL, 0xfd13b8f0UL,
|
||||
0xfcd1d2c7UL, 0xfe976c9eUL, 0xff5506a9UL, 0xfa1a102cUL, 0xfbd87a1bUL,
|
||||
0xf99ec442UL, 0xf85cae75UL, 0xf300e948UL, 0xf2c2837fUL, 0xf0843d26UL,
|
||||
0xf1465711UL, 0xf4094194UL, 0xf5cb2ba3UL, 0xf78d95faUL, 0xf64fffcdUL,
|
||||
0xd9785d60UL, 0xd8ba3757UL, 0xdafc890eUL, 0xdb3ee339UL, 0xde71f5bcUL,
|
||||
0xdfb39f8bUL, 0xddf521d2UL, 0xdc374be5UL, 0xd76b0cd8UL, 0xd6a966efUL,
|
||||
0xd4efd8b6UL, 0xd52db281UL, 0xd062a404UL, 0xd1a0ce33UL, 0xd3e6706aUL,
|
||||
0xd2241a5dUL, 0xc55efe10UL, 0xc49c9427UL, 0xc6da2a7eUL, 0xc7184049UL,
|
||||
0xc25756ccUL, 0xc3953cfbUL, 0xc1d382a2UL, 0xc011e895UL, 0xcb4dafa8UL,
|
||||
0xca8fc59fUL, 0xc8c97bc6UL, 0xc90b11f1UL, 0xcc440774UL, 0xcd866d43UL,
|
||||
0xcfc0d31aUL, 0xce02b92dUL, 0x91af9640UL, 0x906dfc77UL, 0x922b422eUL,
|
||||
0x93e92819UL, 0x96a63e9cUL, 0x976454abUL, 0x9522eaf2UL, 0x94e080c5UL,
|
||||
0x9fbcc7f8UL, 0x9e7eadcfUL, 0x9c381396UL, 0x9dfa79a1UL, 0x98b56f24UL,
|
||||
0x99770513UL, 0x9b31bb4aUL, 0x9af3d17dUL, 0x8d893530UL, 0x8c4b5f07UL,
|
||||
0x8e0de15eUL, 0x8fcf8b69UL, 0x8a809decUL, 0x8b42f7dbUL, 0x89044982UL,
|
||||
0x88c623b5UL, 0x839a6488UL, 0x82580ebfUL, 0x801eb0e6UL, 0x81dcdad1UL,
|
||||
0x8493cc54UL, 0x8551a663UL, 0x8717183aUL, 0x86d5720dUL, 0xa9e2d0a0UL,
|
||||
0xa820ba97UL, 0xaa6604ceUL, 0xaba46ef9UL, 0xaeeb787cUL, 0xaf29124bUL,
|
||||
0xad6fac12UL, 0xacadc625UL, 0xa7f18118UL, 0xa633eb2fUL, 0xa4755576UL,
|
||||
0xa5b73f41UL, 0xa0f829c4UL, 0xa13a43f3UL, 0xa37cfdaaUL, 0xa2be979dUL,
|
||||
0xb5c473d0UL, 0xb40619e7UL, 0xb640a7beUL, 0xb782cd89UL, 0xb2cddb0cUL,
|
||||
0xb30fb13bUL, 0xb1490f62UL, 0xb08b6555UL, 0xbbd72268UL, 0xba15485fUL,
|
||||
0xb853f606UL, 0xb9919c31UL, 0xbcde8ab4UL, 0xbd1ce083UL, 0xbf5a5edaUL,
|
||||
0xbe9834edUL
|
||||
},
|
||||
{
|
||||
0x00000000UL, 0xb8bc6765UL, 0xaa09c88bUL, 0x12b5afeeUL, 0x8f629757UL,
|
||||
0x37def032UL, 0x256b5fdcUL, 0x9dd738b9UL, 0xc5b428efUL, 0x7d084f8aUL,
|
||||
0x6fbde064UL, 0xd7018701UL, 0x4ad6bfb8UL, 0xf26ad8ddUL, 0xe0df7733UL,
|
||||
0x58631056UL, 0x5019579fUL, 0xe8a530faUL, 0xfa109f14UL, 0x42acf871UL,
|
||||
0xdf7bc0c8UL, 0x67c7a7adUL, 0x75720843UL, 0xcdce6f26UL, 0x95ad7f70UL,
|
||||
0x2d111815UL, 0x3fa4b7fbUL, 0x8718d09eUL, 0x1acfe827UL, 0xa2738f42UL,
|
||||
0xb0c620acUL, 0x087a47c9UL, 0xa032af3eUL, 0x188ec85bUL, 0x0a3b67b5UL,
|
||||
0xb28700d0UL, 0x2f503869UL, 0x97ec5f0cUL, 0x8559f0e2UL, 0x3de59787UL,
|
||||
0x658687d1UL, 0xdd3ae0b4UL, 0xcf8f4f5aUL, 0x7733283fUL, 0xeae41086UL,
|
||||
0x525877e3UL, 0x40edd80dUL, 0xf851bf68UL, 0xf02bf8a1UL, 0x48979fc4UL,
|
||||
0x5a22302aUL, 0xe29e574fUL, 0x7f496ff6UL, 0xc7f50893UL, 0xd540a77dUL,
|
||||
0x6dfcc018UL, 0x359fd04eUL, 0x8d23b72bUL, 0x9f9618c5UL, 0x272a7fa0UL,
|
||||
0xbafd4719UL, 0x0241207cUL, 0x10f48f92UL, 0xa848e8f7UL, 0x9b14583dUL,
|
||||
0x23a83f58UL, 0x311d90b6UL, 0x89a1f7d3UL, 0x1476cf6aUL, 0xaccaa80fUL,
|
||||
0xbe7f07e1UL, 0x06c36084UL, 0x5ea070d2UL, 0xe61c17b7UL, 0xf4a9b859UL,
|
||||
0x4c15df3cUL, 0xd1c2e785UL, 0x697e80e0UL, 0x7bcb2f0eUL, 0xc377486bUL,
|
||||
0xcb0d0fa2UL, 0x73b168c7UL, 0x6104c729UL, 0xd9b8a04cUL, 0x446f98f5UL,
|
||||
0xfcd3ff90UL, 0xee66507eUL, 0x56da371bUL, 0x0eb9274dUL, 0xb6054028UL,
|
||||
0xa4b0efc6UL, 0x1c0c88a3UL, 0x81dbb01aUL, 0x3967d77fUL, 0x2bd27891UL,
|
||||
0x936e1ff4UL, 0x3b26f703UL, 0x839a9066UL, 0x912f3f88UL, 0x299358edUL,
|
||||
0xb4446054UL, 0x0cf80731UL, 0x1e4da8dfUL, 0xa6f1cfbaUL, 0xfe92dfecUL,
|
||||
0x462eb889UL, 0x549b1767UL, 0xec277002UL, 0x71f048bbUL, 0xc94c2fdeUL,
|
||||
0xdbf98030UL, 0x6345e755UL, 0x6b3fa09cUL, 0xd383c7f9UL, 0xc1366817UL,
|
||||
0x798a0f72UL, 0xe45d37cbUL, 0x5ce150aeUL, 0x4e54ff40UL, 0xf6e89825UL,
|
||||
0xae8b8873UL, 0x1637ef16UL, 0x048240f8UL, 0xbc3e279dUL, 0x21e91f24UL,
|
||||
0x99557841UL, 0x8be0d7afUL, 0x335cb0caUL, 0xed59b63bUL, 0x55e5d15eUL,
|
||||
0x47507eb0UL, 0xffec19d5UL, 0x623b216cUL, 0xda874609UL, 0xc832e9e7UL,
|
||||
0x708e8e82UL, 0x28ed9ed4UL, 0x9051f9b1UL, 0x82e4565fUL, 0x3a58313aUL,
|
||||
0xa78f0983UL, 0x1f336ee6UL, 0x0d86c108UL, 0xb53aa66dUL, 0xbd40e1a4UL,
|
||||
0x05fc86c1UL, 0x1749292fUL, 0xaff54e4aUL, 0x322276f3UL, 0x8a9e1196UL,
|
||||
0x982bbe78UL, 0x2097d91dUL, 0x78f4c94bUL, 0xc048ae2eUL, 0xd2fd01c0UL,
|
||||
0x6a4166a5UL, 0xf7965e1cUL, 0x4f2a3979UL, 0x5d9f9697UL, 0xe523f1f2UL,
|
||||
0x4d6b1905UL, 0xf5d77e60UL, 0xe762d18eUL, 0x5fdeb6ebUL, 0xc2098e52UL,
|
||||
0x7ab5e937UL, 0x680046d9UL, 0xd0bc21bcUL, 0x88df31eaUL, 0x3063568fUL,
|
||||
0x22d6f961UL, 0x9a6a9e04UL, 0x07bda6bdUL, 0xbf01c1d8UL, 0xadb46e36UL,
|
||||
0x15080953UL, 0x1d724e9aUL, 0xa5ce29ffUL, 0xb77b8611UL, 0x0fc7e174UL,
|
||||
0x9210d9cdUL, 0x2aacbea8UL, 0x38191146UL, 0x80a57623UL, 0xd8c66675UL,
|
||||
0x607a0110UL, 0x72cfaefeUL, 0xca73c99bUL, 0x57a4f122UL, 0xef189647UL,
|
||||
0xfdad39a9UL, 0x45115eccUL, 0x764dee06UL, 0xcef18963UL, 0xdc44268dUL,
|
||||
0x64f841e8UL, 0xf92f7951UL, 0x41931e34UL, 0x5326b1daUL, 0xeb9ad6bfUL,
|
||||
0xb3f9c6e9UL, 0x0b45a18cUL, 0x19f00e62UL, 0xa14c6907UL, 0x3c9b51beUL,
|
||||
0x842736dbUL, 0x96929935UL, 0x2e2efe50UL, 0x2654b999UL, 0x9ee8defcUL,
|
||||
0x8c5d7112UL, 0x34e11677UL, 0xa9362eceUL, 0x118a49abUL, 0x033fe645UL,
|
||||
0xbb838120UL, 0xe3e09176UL, 0x5b5cf613UL, 0x49e959fdUL, 0xf1553e98UL,
|
||||
0x6c820621UL, 0xd43e6144UL, 0xc68bceaaUL, 0x7e37a9cfUL, 0xd67f4138UL,
|
||||
0x6ec3265dUL, 0x7c7689b3UL, 0xc4caeed6UL, 0x591dd66fUL, 0xe1a1b10aUL,
|
||||
0xf3141ee4UL, 0x4ba87981UL, 0x13cb69d7UL, 0xab770eb2UL, 0xb9c2a15cUL,
|
||||
0x017ec639UL, 0x9ca9fe80UL, 0x241599e5UL, 0x36a0360bUL, 0x8e1c516eUL,
|
||||
0x866616a7UL, 0x3eda71c2UL, 0x2c6fde2cUL, 0x94d3b949UL, 0x090481f0UL,
|
||||
0xb1b8e695UL, 0xa30d497bUL, 0x1bb12e1eUL, 0x43d23e48UL, 0xfb6e592dUL,
|
||||
0xe9dbf6c3UL, 0x516791a6UL, 0xccb0a91fUL, 0x740cce7aUL, 0x66b96194UL,
|
||||
0xde0506f1UL
|
||||
},
|
||||
{
|
||||
0x00000000UL, 0x96300777UL, 0x2c610eeeUL, 0xba510999UL, 0x19c46d07UL,
|
||||
0x8ff46a70UL, 0x35a563e9UL, 0xa395649eUL, 0x3288db0eUL, 0xa4b8dc79UL,
|
||||
0x1ee9d5e0UL, 0x88d9d297UL, 0x2b4cb609UL, 0xbd7cb17eUL, 0x072db8e7UL,
|
||||
0x911dbf90UL, 0x6410b71dUL, 0xf220b06aUL, 0x4871b9f3UL, 0xde41be84UL,
|
||||
0x7dd4da1aUL, 0xebe4dd6dUL, 0x51b5d4f4UL, 0xc785d383UL, 0x56986c13UL,
|
||||
0xc0a86b64UL, 0x7af962fdUL, 0xecc9658aUL, 0x4f5c0114UL, 0xd96c0663UL,
|
||||
0x633d0ffaUL, 0xf50d088dUL, 0xc8206e3bUL, 0x5e10694cUL, 0xe44160d5UL,
|
||||
0x727167a2UL, 0xd1e4033cUL, 0x47d4044bUL, 0xfd850dd2UL, 0x6bb50aa5UL,
|
||||
0xfaa8b535UL, 0x6c98b242UL, 0xd6c9bbdbUL, 0x40f9bcacUL, 0xe36cd832UL,
|
||||
0x755cdf45UL, 0xcf0dd6dcUL, 0x593dd1abUL, 0xac30d926UL, 0x3a00de51UL,
|
||||
0x8051d7c8UL, 0x1661d0bfUL, 0xb5f4b421UL, 0x23c4b356UL, 0x9995bacfUL,
|
||||
0x0fa5bdb8UL, 0x9eb80228UL, 0x0888055fUL, 0xb2d90cc6UL, 0x24e90bb1UL,
|
||||
0x877c6f2fUL, 0x114c6858UL, 0xab1d61c1UL, 0x3d2d66b6UL, 0x9041dc76UL,
|
||||
0x0671db01UL, 0xbc20d298UL, 0x2a10d5efUL, 0x8985b171UL, 0x1fb5b606UL,
|
||||
0xa5e4bf9fUL, 0x33d4b8e8UL, 0xa2c90778UL, 0x34f9000fUL, 0x8ea80996UL,
|
||||
0x18980ee1UL, 0xbb0d6a7fUL, 0x2d3d6d08UL, 0x976c6491UL, 0x015c63e6UL,
|
||||
0xf4516b6bUL, 0x62616c1cUL, 0xd8306585UL, 0x4e0062f2UL, 0xed95066cUL,
|
||||
0x7ba5011bUL, 0xc1f40882UL, 0x57c40ff5UL, 0xc6d9b065UL, 0x50e9b712UL,
|
||||
0xeab8be8bUL, 0x7c88b9fcUL, 0xdf1ddd62UL, 0x492dda15UL, 0xf37cd38cUL,
|
||||
0x654cd4fbUL, 0x5861b24dUL, 0xce51b53aUL, 0x7400bca3UL, 0xe230bbd4UL,
|
||||
0x41a5df4aUL, 0xd795d83dUL, 0x6dc4d1a4UL, 0xfbf4d6d3UL, 0x6ae96943UL,
|
||||
0xfcd96e34UL, 0x468867adUL, 0xd0b860daUL, 0x732d0444UL, 0xe51d0333UL,
|
||||
0x5f4c0aaaUL, 0xc97c0dddUL, 0x3c710550UL, 0xaa410227UL, 0x10100bbeUL,
|
||||
0x86200cc9UL, 0x25b56857UL, 0xb3856f20UL, 0x09d466b9UL, 0x9fe461ceUL,
|
||||
0x0ef9de5eUL, 0x98c9d929UL, 0x2298d0b0UL, 0xb4a8d7c7UL, 0x173db359UL,
|
||||
0x810db42eUL, 0x3b5cbdb7UL, 0xad6cbac0UL, 0x2083b8edUL, 0xb6b3bf9aUL,
|
||||
0x0ce2b603UL, 0x9ad2b174UL, 0x3947d5eaUL, 0xaf77d29dUL, 0x1526db04UL,
|
||||
0x8316dc73UL, 0x120b63e3UL, 0x843b6494UL, 0x3e6a6d0dUL, 0xa85a6a7aUL,
|
||||
0x0bcf0ee4UL, 0x9dff0993UL, 0x27ae000aUL, 0xb19e077dUL, 0x44930ff0UL,
|
||||
0xd2a30887UL, 0x68f2011eUL, 0xfec20669UL, 0x5d5762f7UL, 0xcb676580UL,
|
||||
0x71366c19UL, 0xe7066b6eUL, 0x761bd4feUL, 0xe02bd389UL, 0x5a7ada10UL,
|
||||
0xcc4add67UL, 0x6fdfb9f9UL, 0xf9efbe8eUL, 0x43beb717UL, 0xd58eb060UL,
|
||||
0xe8a3d6d6UL, 0x7e93d1a1UL, 0xc4c2d838UL, 0x52f2df4fUL, 0xf167bbd1UL,
|
||||
0x6757bca6UL, 0xdd06b53fUL, 0x4b36b248UL, 0xda2b0dd8UL, 0x4c1b0aafUL,
|
||||
0xf64a0336UL, 0x607a0441UL, 0xc3ef60dfUL, 0x55df67a8UL, 0xef8e6e31UL,
|
||||
0x79be6946UL, 0x8cb361cbUL, 0x1a8366bcUL, 0xa0d26f25UL, 0x36e26852UL,
|
||||
0x95770cccUL, 0x03470bbbUL, 0xb9160222UL, 0x2f260555UL, 0xbe3bbac5UL,
|
||||
0x280bbdb2UL, 0x925ab42bUL, 0x046ab35cUL, 0xa7ffd7c2UL, 0x31cfd0b5UL,
|
||||
0x8b9ed92cUL, 0x1daede5bUL, 0xb0c2649bUL, 0x26f263ecUL, 0x9ca36a75UL,
|
||||
0x0a936d02UL, 0xa906099cUL, 0x3f360eebUL, 0x85670772UL, 0x13570005UL,
|
||||
0x824abf95UL, 0x147ab8e2UL, 0xae2bb17bUL, 0x381bb60cUL, 0x9b8ed292UL,
|
||||
0x0dbed5e5UL, 0xb7efdc7cUL, 0x21dfdb0bUL, 0xd4d2d386UL, 0x42e2d4f1UL,
|
||||
0xf8b3dd68UL, 0x6e83da1fUL, 0xcd16be81UL, 0x5b26b9f6UL, 0xe177b06fUL,
|
||||
0x7747b718UL, 0xe65a0888UL, 0x706a0fffUL, 0xca3b0666UL, 0x5c0b0111UL,
|
||||
0xff9e658fUL, 0x69ae62f8UL, 0xd3ff6b61UL, 0x45cf6c16UL, 0x78e20aa0UL,
|
||||
0xeed20dd7UL, 0x5483044eUL, 0xc2b30339UL, 0x612667a7UL, 0xf71660d0UL,
|
||||
0x4d476949UL, 0xdb776e3eUL, 0x4a6ad1aeUL, 0xdc5ad6d9UL, 0x660bdf40UL,
|
||||
0xf03bd837UL, 0x53aebca9UL, 0xc59ebbdeUL, 0x7fcfb247UL, 0xe9ffb530UL,
|
||||
0x1cf2bdbdUL, 0x8ac2bacaUL, 0x3093b353UL, 0xa6a3b424UL, 0x0536d0baUL,
|
||||
0x9306d7cdUL, 0x2957de54UL, 0xbf67d923UL, 0x2e7a66b3UL, 0xb84a61c4UL,
|
||||
0x021b685dUL, 0x942b6f2aUL, 0x37be0bb4UL, 0xa18e0cc3UL, 0x1bdf055aUL,
|
||||
0x8def022dUL
|
||||
},
|
||||
{
|
||||
0x00000000UL, 0x41311b19UL, 0x82623632UL, 0xc3532d2bUL, 0x04c56c64UL,
|
||||
0x45f4777dUL, 0x86a75a56UL, 0xc796414fUL, 0x088ad9c8UL, 0x49bbc2d1UL,
|
||||
0x8ae8effaUL, 0xcbd9f4e3UL, 0x0c4fb5acUL, 0x4d7eaeb5UL, 0x8e2d839eUL,
|
||||
0xcf1c9887UL, 0x5112c24aUL, 0x1023d953UL, 0xd370f478UL, 0x9241ef61UL,
|
||||
0x55d7ae2eUL, 0x14e6b537UL, 0xd7b5981cUL, 0x96848305UL, 0x59981b82UL,
|
||||
0x18a9009bUL, 0xdbfa2db0UL, 0x9acb36a9UL, 0x5d5d77e6UL, 0x1c6c6cffUL,
|
||||
0xdf3f41d4UL, 0x9e0e5acdUL, 0xa2248495UL, 0xe3159f8cUL, 0x2046b2a7UL,
|
||||
0x6177a9beUL, 0xa6e1e8f1UL, 0xe7d0f3e8UL, 0x2483dec3UL, 0x65b2c5daUL,
|
||||
0xaaae5d5dUL, 0xeb9f4644UL, 0x28cc6b6fUL, 0x69fd7076UL, 0xae6b3139UL,
|
||||
0xef5a2a20UL, 0x2c09070bUL, 0x6d381c12UL, 0xf33646dfUL, 0xb2075dc6UL,
|
||||
0x715470edUL, 0x30656bf4UL, 0xf7f32abbUL, 0xb6c231a2UL, 0x75911c89UL,
|
||||
0x34a00790UL, 0xfbbc9f17UL, 0xba8d840eUL, 0x79dea925UL, 0x38efb23cUL,
|
||||
0xff79f373UL, 0xbe48e86aUL, 0x7d1bc541UL, 0x3c2ade58UL, 0x054f79f0UL,
|
||||
0x447e62e9UL, 0x872d4fc2UL, 0xc61c54dbUL, 0x018a1594UL, 0x40bb0e8dUL,
|
||||
0x83e823a6UL, 0xc2d938bfUL, 0x0dc5a038UL, 0x4cf4bb21UL, 0x8fa7960aUL,
|
||||
0xce968d13UL, 0x0900cc5cUL, 0x4831d745UL, 0x8b62fa6eUL, 0xca53e177UL,
|
||||
0x545dbbbaUL, 0x156ca0a3UL, 0xd63f8d88UL, 0x970e9691UL, 0x5098d7deUL,
|
||||
0x11a9ccc7UL, 0xd2fae1ecUL, 0x93cbfaf5UL, 0x5cd76272UL, 0x1de6796bUL,
|
||||
0xdeb55440UL, 0x9f844f59UL, 0x58120e16UL, 0x1923150fUL, 0xda703824UL,
|
||||
0x9b41233dUL, 0xa76bfd65UL, 0xe65ae67cUL, 0x2509cb57UL, 0x6438d04eUL,
|
||||
0xa3ae9101UL, 0xe29f8a18UL, 0x21cca733UL, 0x60fdbc2aUL, 0xafe124adUL,
|
||||
0xeed03fb4UL, 0x2d83129fUL, 0x6cb20986UL, 0xab2448c9UL, 0xea1553d0UL,
|
||||
0x29467efbUL, 0x687765e2UL, 0xf6793f2fUL, 0xb7482436UL, 0x741b091dUL,
|
||||
0x352a1204UL, 0xf2bc534bUL, 0xb38d4852UL, 0x70de6579UL, 0x31ef7e60UL,
|
||||
0xfef3e6e7UL, 0xbfc2fdfeUL, 0x7c91d0d5UL, 0x3da0cbccUL, 0xfa368a83UL,
|
||||
0xbb07919aUL, 0x7854bcb1UL, 0x3965a7a8UL, 0x4b98833bUL, 0x0aa99822UL,
|
||||
0xc9fab509UL, 0x88cbae10UL, 0x4f5def5fUL, 0x0e6cf446UL, 0xcd3fd96dUL,
|
||||
0x8c0ec274UL, 0x43125af3UL, 0x022341eaUL, 0xc1706cc1UL, 0x804177d8UL,
|
||||
0x47d73697UL, 0x06e62d8eUL, 0xc5b500a5UL, 0x84841bbcUL, 0x1a8a4171UL,
|
||||
0x5bbb5a68UL, 0x98e87743UL, 0xd9d96c5aUL, 0x1e4f2d15UL, 0x5f7e360cUL,
|
||||
0x9c2d1b27UL, 0xdd1c003eUL, 0x120098b9UL, 0x533183a0UL, 0x9062ae8bUL,
|
||||
0xd153b592UL, 0x16c5f4ddUL, 0x57f4efc4UL, 0x94a7c2efUL, 0xd596d9f6UL,
|
||||
0xe9bc07aeUL, 0xa88d1cb7UL, 0x6bde319cUL, 0x2aef2a85UL, 0xed796bcaUL,
|
||||
0xac4870d3UL, 0x6f1b5df8UL, 0x2e2a46e1UL, 0xe136de66UL, 0xa007c57fUL,
|
||||
0x6354e854UL, 0x2265f34dUL, 0xe5f3b202UL, 0xa4c2a91bUL, 0x67918430UL,
|
||||
0x26a09f29UL, 0xb8aec5e4UL, 0xf99fdefdUL, 0x3accf3d6UL, 0x7bfde8cfUL,
|
||||
0xbc6ba980UL, 0xfd5ab299UL, 0x3e099fb2UL, 0x7f3884abUL, 0xb0241c2cUL,
|
||||
0xf1150735UL, 0x32462a1eUL, 0x73773107UL, 0xb4e17048UL, 0xf5d06b51UL,
|
||||
0x3683467aUL, 0x77b25d63UL, 0x4ed7facbUL, 0x0fe6e1d2UL, 0xccb5ccf9UL,
|
||||
0x8d84d7e0UL, 0x4a1296afUL, 0x0b238db6UL, 0xc870a09dUL, 0x8941bb84UL,
|
||||
0x465d2303UL, 0x076c381aUL, 0xc43f1531UL, 0x850e0e28UL, 0x42984f67UL,
|
||||
0x03a9547eUL, 0xc0fa7955UL, 0x81cb624cUL, 0x1fc53881UL, 0x5ef42398UL,
|
||||
0x9da70eb3UL, 0xdc9615aaUL, 0x1b0054e5UL, 0x5a314ffcUL, 0x996262d7UL,
|
||||
0xd85379ceUL, 0x174fe149UL, 0x567efa50UL, 0x952dd77bUL, 0xd41ccc62UL,
|
||||
0x138a8d2dUL, 0x52bb9634UL, 0x91e8bb1fUL, 0xd0d9a006UL, 0xecf37e5eUL,
|
||||
0xadc26547UL, 0x6e91486cUL, 0x2fa05375UL, 0xe836123aUL, 0xa9070923UL,
|
||||
0x6a542408UL, 0x2b653f11UL, 0xe479a796UL, 0xa548bc8fUL, 0x661b91a4UL,
|
||||
0x272a8abdUL, 0xe0bccbf2UL, 0xa18dd0ebUL, 0x62defdc0UL, 0x23efe6d9UL,
|
||||
0xbde1bc14UL, 0xfcd0a70dUL, 0x3f838a26UL, 0x7eb2913fUL, 0xb924d070UL,
|
||||
0xf815cb69UL, 0x3b46e642UL, 0x7a77fd5bUL, 0xb56b65dcUL, 0xf45a7ec5UL,
|
||||
0x370953eeUL, 0x763848f7UL, 0xb1ae09b8UL, 0xf09f12a1UL, 0x33cc3f8aUL,
|
||||
0x72fd2493UL
|
||||
},
|
||||
{
|
||||
0x00000000UL, 0x376ac201UL, 0x6ed48403UL, 0x59be4602UL, 0xdca80907UL,
|
||||
0xebc2cb06UL, 0xb27c8d04UL, 0x85164f05UL, 0xb851130eUL, 0x8f3bd10fUL,
|
||||
0xd685970dUL, 0xe1ef550cUL, 0x64f91a09UL, 0x5393d808UL, 0x0a2d9e0aUL,
|
||||
0x3d475c0bUL, 0x70a3261cUL, 0x47c9e41dUL, 0x1e77a21fUL, 0x291d601eUL,
|
||||
0xac0b2f1bUL, 0x9b61ed1aUL, 0xc2dfab18UL, 0xf5b56919UL, 0xc8f23512UL,
|
||||
0xff98f713UL, 0xa626b111UL, 0x914c7310UL, 0x145a3c15UL, 0x2330fe14UL,
|
||||
0x7a8eb816UL, 0x4de47a17UL, 0xe0464d38UL, 0xd72c8f39UL, 0x8e92c93bUL,
|
||||
0xb9f80b3aUL, 0x3cee443fUL, 0x0b84863eUL, 0x523ac03cUL, 0x6550023dUL,
|
||||
0x58175e36UL, 0x6f7d9c37UL, 0x36c3da35UL, 0x01a91834UL, 0x84bf5731UL,
|
||||
0xb3d59530UL, 0xea6bd332UL, 0xdd011133UL, 0x90e56b24UL, 0xa78fa925UL,
|
||||
0xfe31ef27UL, 0xc95b2d26UL, 0x4c4d6223UL, 0x7b27a022UL, 0x2299e620UL,
|
||||
0x15f32421UL, 0x28b4782aUL, 0x1fdeba2bUL, 0x4660fc29UL, 0x710a3e28UL,
|
||||
0xf41c712dUL, 0xc376b32cUL, 0x9ac8f52eUL, 0xada2372fUL, 0xc08d9a70UL,
|
||||
0xf7e75871UL, 0xae591e73UL, 0x9933dc72UL, 0x1c259377UL, 0x2b4f5176UL,
|
||||
0x72f11774UL, 0x459bd575UL, 0x78dc897eUL, 0x4fb64b7fUL, 0x16080d7dUL,
|
||||
0x2162cf7cUL, 0xa4748079UL, 0x931e4278UL, 0xcaa0047aUL, 0xfdcac67bUL,
|
||||
0xb02ebc6cUL, 0x87447e6dUL, 0xdefa386fUL, 0xe990fa6eUL, 0x6c86b56bUL,
|
||||
0x5bec776aUL, 0x02523168UL, 0x3538f369UL, 0x087faf62UL, 0x3f156d63UL,
|
||||
0x66ab2b61UL, 0x51c1e960UL, 0xd4d7a665UL, 0xe3bd6464UL, 0xba032266UL,
|
||||
0x8d69e067UL, 0x20cbd748UL, 0x17a11549UL, 0x4e1f534bUL, 0x7975914aUL,
|
||||
0xfc63de4fUL, 0xcb091c4eUL, 0x92b75a4cUL, 0xa5dd984dUL, 0x989ac446UL,
|
||||
0xaff00647UL, 0xf64e4045UL, 0xc1248244UL, 0x4432cd41UL, 0x73580f40UL,
|
||||
0x2ae64942UL, 0x1d8c8b43UL, 0x5068f154UL, 0x67023355UL, 0x3ebc7557UL,
|
||||
0x09d6b756UL, 0x8cc0f853UL, 0xbbaa3a52UL, 0xe2147c50UL, 0xd57ebe51UL,
|
||||
0xe839e25aUL, 0xdf53205bUL, 0x86ed6659UL, 0xb187a458UL, 0x3491eb5dUL,
|
||||
0x03fb295cUL, 0x5a456f5eUL, 0x6d2fad5fUL, 0x801b35e1UL, 0xb771f7e0UL,
|
||||
0xeecfb1e2UL, 0xd9a573e3UL, 0x5cb33ce6UL, 0x6bd9fee7UL, 0x3267b8e5UL,
|
||||
0x050d7ae4UL, 0x384a26efUL, 0x0f20e4eeUL, 0x569ea2ecUL, 0x61f460edUL,
|
||||
0xe4e22fe8UL, 0xd388ede9UL, 0x8a36abebUL, 0xbd5c69eaUL, 0xf0b813fdUL,
|
||||
0xc7d2d1fcUL, 0x9e6c97feUL, 0xa90655ffUL, 0x2c101afaUL, 0x1b7ad8fbUL,
|
||||
0x42c49ef9UL, 0x75ae5cf8UL, 0x48e900f3UL, 0x7f83c2f2UL, 0x263d84f0UL,
|
||||
0x115746f1UL, 0x944109f4UL, 0xa32bcbf5UL, 0xfa958df7UL, 0xcdff4ff6UL,
|
||||
0x605d78d9UL, 0x5737bad8UL, 0x0e89fcdaUL, 0x39e33edbUL, 0xbcf571deUL,
|
||||
0x8b9fb3dfUL, 0xd221f5ddUL, 0xe54b37dcUL, 0xd80c6bd7UL, 0xef66a9d6UL,
|
||||
0xb6d8efd4UL, 0x81b22dd5UL, 0x04a462d0UL, 0x33cea0d1UL, 0x6a70e6d3UL,
|
||||
0x5d1a24d2UL, 0x10fe5ec5UL, 0x27949cc4UL, 0x7e2adac6UL, 0x494018c7UL,
|
||||
0xcc5657c2UL, 0xfb3c95c3UL, 0xa282d3c1UL, 0x95e811c0UL, 0xa8af4dcbUL,
|
||||
0x9fc58fcaUL, 0xc67bc9c8UL, 0xf1110bc9UL, 0x740744ccUL, 0x436d86cdUL,
|
||||
0x1ad3c0cfUL, 0x2db902ceUL, 0x4096af91UL, 0x77fc6d90UL, 0x2e422b92UL,
|
||||
0x1928e993UL, 0x9c3ea696UL, 0xab546497UL, 0xf2ea2295UL, 0xc580e094UL,
|
||||
0xf8c7bc9fUL, 0xcfad7e9eUL, 0x9613389cUL, 0xa179fa9dUL, 0x246fb598UL,
|
||||
0x13057799UL, 0x4abb319bUL, 0x7dd1f39aUL, 0x3035898dUL, 0x075f4b8cUL,
|
||||
0x5ee10d8eUL, 0x698bcf8fUL, 0xec9d808aUL, 0xdbf7428bUL, 0x82490489UL,
|
||||
0xb523c688UL, 0x88649a83UL, 0xbf0e5882UL, 0xe6b01e80UL, 0xd1dadc81UL,
|
||||
0x54cc9384UL, 0x63a65185UL, 0x3a181787UL, 0x0d72d586UL, 0xa0d0e2a9UL,
|
||||
0x97ba20a8UL, 0xce0466aaUL, 0xf96ea4abUL, 0x7c78ebaeUL, 0x4b1229afUL,
|
||||
0x12ac6fadUL, 0x25c6adacUL, 0x1881f1a7UL, 0x2feb33a6UL, 0x765575a4UL,
|
||||
0x413fb7a5UL, 0xc429f8a0UL, 0xf3433aa1UL, 0xaafd7ca3UL, 0x9d97bea2UL,
|
||||
0xd073c4b5UL, 0xe71906b4UL, 0xbea740b6UL, 0x89cd82b7UL, 0x0cdbcdb2UL,
|
||||
0x3bb10fb3UL, 0x620f49b1UL, 0x55658bb0UL, 0x6822d7bbUL, 0x5f4815baUL,
|
||||
0x06f653b8UL, 0x319c91b9UL, 0xb48adebcUL, 0x83e01cbdUL, 0xda5e5abfUL,
|
||||
0xed3498beUL
|
||||
},
|
||||
{
|
||||
0x00000000UL, 0x6567bcb8UL, 0x8bc809aaUL, 0xeeafb512UL, 0x5797628fUL,
|
||||
0x32f0de37UL, 0xdc5f6b25UL, 0xb938d79dUL, 0xef28b4c5UL, 0x8a4f087dUL,
|
||||
0x64e0bd6fUL, 0x018701d7UL, 0xb8bfd64aUL, 0xddd86af2UL, 0x3377dfe0UL,
|
||||
0x56106358UL, 0x9f571950UL, 0xfa30a5e8UL, 0x149f10faUL, 0x71f8ac42UL,
|
||||
0xc8c07bdfUL, 0xada7c767UL, 0x43087275UL, 0x266fcecdUL, 0x707fad95UL,
|
||||
0x1518112dUL, 0xfbb7a43fUL, 0x9ed01887UL, 0x27e8cf1aUL, 0x428f73a2UL,
|
||||
0xac20c6b0UL, 0xc9477a08UL, 0x3eaf32a0UL, 0x5bc88e18UL, 0xb5673b0aUL,
|
||||
0xd00087b2UL, 0x6938502fUL, 0x0c5fec97UL, 0xe2f05985UL, 0x8797e53dUL,
|
||||
0xd1878665UL, 0xb4e03addUL, 0x5a4f8fcfUL, 0x3f283377UL, 0x8610e4eaUL,
|
||||
0xe3775852UL, 0x0dd8ed40UL, 0x68bf51f8UL, 0xa1f82bf0UL, 0xc49f9748UL,
|
||||
0x2a30225aUL, 0x4f579ee2UL, 0xf66f497fUL, 0x9308f5c7UL, 0x7da740d5UL,
|
||||
0x18c0fc6dUL, 0x4ed09f35UL, 0x2bb7238dUL, 0xc518969fUL, 0xa07f2a27UL,
|
||||
0x1947fdbaUL, 0x7c204102UL, 0x928ff410UL, 0xf7e848a8UL, 0x3d58149bUL,
|
||||
0x583fa823UL, 0xb6901d31UL, 0xd3f7a189UL, 0x6acf7614UL, 0x0fa8caacUL,
|
||||
0xe1077fbeUL, 0x8460c306UL, 0xd270a05eUL, 0xb7171ce6UL, 0x59b8a9f4UL,
|
||||
0x3cdf154cUL, 0x85e7c2d1UL, 0xe0807e69UL, 0x0e2fcb7bUL, 0x6b4877c3UL,
|
||||
0xa20f0dcbUL, 0xc768b173UL, 0x29c70461UL, 0x4ca0b8d9UL, 0xf5986f44UL,
|
||||
0x90ffd3fcUL, 0x7e5066eeUL, 0x1b37da56UL, 0x4d27b90eUL, 0x284005b6UL,
|
||||
0xc6efb0a4UL, 0xa3880c1cUL, 0x1ab0db81UL, 0x7fd76739UL, 0x9178d22bUL,
|
||||
0xf41f6e93UL, 0x03f7263bUL, 0x66909a83UL, 0x883f2f91UL, 0xed589329UL,
|
||||
0x546044b4UL, 0x3107f80cUL, 0xdfa84d1eUL, 0xbacff1a6UL, 0xecdf92feUL,
|
||||
0x89b82e46UL, 0x67179b54UL, 0x027027ecUL, 0xbb48f071UL, 0xde2f4cc9UL,
|
||||
0x3080f9dbUL, 0x55e74563UL, 0x9ca03f6bUL, 0xf9c783d3UL, 0x176836c1UL,
|
||||
0x720f8a79UL, 0xcb375de4UL, 0xae50e15cUL, 0x40ff544eUL, 0x2598e8f6UL,
|
||||
0x73888baeUL, 0x16ef3716UL, 0xf8408204UL, 0x9d273ebcUL, 0x241fe921UL,
|
||||
0x41785599UL, 0xafd7e08bUL, 0xcab05c33UL, 0x3bb659edUL, 0x5ed1e555UL,
|
||||
0xb07e5047UL, 0xd519ecffUL, 0x6c213b62UL, 0x094687daUL, 0xe7e932c8UL,
|
||||
0x828e8e70UL, 0xd49eed28UL, 0xb1f95190UL, 0x5f56e482UL, 0x3a31583aUL,
|
||||
0x83098fa7UL, 0xe66e331fUL, 0x08c1860dUL, 0x6da63ab5UL, 0xa4e140bdUL,
|
||||
0xc186fc05UL, 0x2f294917UL, 0x4a4ef5afUL, 0xf3762232UL, 0x96119e8aUL,
|
||||
0x78be2b98UL, 0x1dd99720UL, 0x4bc9f478UL, 0x2eae48c0UL, 0xc001fdd2UL,
|
||||
0xa566416aUL, 0x1c5e96f7UL, 0x79392a4fUL, 0x97969f5dUL, 0xf2f123e5UL,
|
||||
0x05196b4dUL, 0x607ed7f5UL, 0x8ed162e7UL, 0xebb6de5fUL, 0x528e09c2UL,
|
||||
0x37e9b57aUL, 0xd9460068UL, 0xbc21bcd0UL, 0xea31df88UL, 0x8f566330UL,
|
||||
0x61f9d622UL, 0x049e6a9aUL, 0xbda6bd07UL, 0xd8c101bfUL, 0x366eb4adUL,
|
||||
0x53090815UL, 0x9a4e721dUL, 0xff29cea5UL, 0x11867bb7UL, 0x74e1c70fUL,
|
||||
0xcdd91092UL, 0xa8beac2aUL, 0x46111938UL, 0x2376a580UL, 0x7566c6d8UL,
|
||||
0x10017a60UL, 0xfeaecf72UL, 0x9bc973caUL, 0x22f1a457UL, 0x479618efUL,
|
||||
0xa939adfdUL, 0xcc5e1145UL, 0x06ee4d76UL, 0x6389f1ceUL, 0x8d2644dcUL,
|
||||
0xe841f864UL, 0x51792ff9UL, 0x341e9341UL, 0xdab12653UL, 0xbfd69aebUL,
|
||||
0xe9c6f9b3UL, 0x8ca1450bUL, 0x620ef019UL, 0x07694ca1UL, 0xbe519b3cUL,
|
||||
0xdb362784UL, 0x35999296UL, 0x50fe2e2eUL, 0x99b95426UL, 0xfcdee89eUL,
|
||||
0x12715d8cUL, 0x7716e134UL, 0xce2e36a9UL, 0xab498a11UL, 0x45e63f03UL,
|
||||
0x208183bbUL, 0x7691e0e3UL, 0x13f65c5bUL, 0xfd59e949UL, 0x983e55f1UL,
|
||||
0x2106826cUL, 0x44613ed4UL, 0xaace8bc6UL, 0xcfa9377eUL, 0x38417fd6UL,
|
||||
0x5d26c36eUL, 0xb389767cUL, 0xd6eecac4UL, 0x6fd61d59UL, 0x0ab1a1e1UL,
|
||||
0xe41e14f3UL, 0x8179a84bUL, 0xd769cb13UL, 0xb20e77abUL, 0x5ca1c2b9UL,
|
||||
0x39c67e01UL, 0x80fea99cUL, 0xe5991524UL, 0x0b36a036UL, 0x6e511c8eUL,
|
||||
0xa7166686UL, 0xc271da3eUL, 0x2cde6f2cUL, 0x49b9d394UL, 0xf0810409UL,
|
||||
0x95e6b8b1UL, 0x7b490da3UL, 0x1e2eb11bUL, 0x483ed243UL, 0x2d596efbUL,
|
||||
0xc3f6dbe9UL, 0xa6916751UL, 0x1fa9b0ccUL, 0x7ace0c74UL, 0x9461b966UL,
|
||||
0xf10605deUL
|
||||
#endif
|
||||
}
|
||||
};
|
||||
@@ -0,0 +1,349 @@
|
||||
/* deflate.h -- internal compression state
|
||||
* Copyright (C) 1995-2016 Jean-loup Gailly
|
||||
* For conditions of distribution and use, see copyright notice in zlib.h
|
||||
*/
|
||||
|
||||
/* WARNING: this file should *not* be used by applications. It is
|
||||
part of the implementation of the compression library and is
|
||||
subject to change. Applications should only use zlib.h.
|
||||
*/
|
||||
|
||||
/* @(#) $Id$ */
|
||||
|
||||
#ifndef DEFLATE_H
|
||||
#define DEFLATE_H
|
||||
|
||||
#include "zutil.h"
|
||||
|
||||
/* define NO_GZIP when compiling if you want to disable gzip header and
|
||||
trailer creation by deflate(). NO_GZIP would be used to avoid linking in
|
||||
the crc code when it is not needed. For shared libraries, gzip encoding
|
||||
should be left enabled. */
|
||||
#ifndef NO_GZIP
|
||||
# define GZIP
|
||||
#endif
|
||||
|
||||
/* ===========================================================================
|
||||
* Internal compression state.
|
||||
*/
|
||||
|
||||
#define LENGTH_CODES 29
|
||||
/* number of length codes, not counting the special END_BLOCK code */
|
||||
|
||||
#define LITERALS 256
|
||||
/* number of literal bytes 0..255 */
|
||||
|
||||
#define L_CODES (LITERALS+1+LENGTH_CODES)
|
||||
/* number of Literal or Length codes, including the END_BLOCK code */
|
||||
|
||||
#define D_CODES 30
|
||||
/* number of distance codes */
|
||||
|
||||
#define BL_CODES 19
|
||||
/* number of codes used to transfer the bit lengths */
|
||||
|
||||
#define HEAP_SIZE (2*L_CODES+1)
|
||||
/* maximum heap size */
|
||||
|
||||
#define MAX_BITS 15
|
||||
/* All codes must not exceed MAX_BITS bits */
|
||||
|
||||
#define Buf_size 16
|
||||
/* size of bit buffer in bi_buf */
|
||||
|
||||
#define INIT_STATE 42 /* zlib header -> BUSY_STATE */
|
||||
#ifdef GZIP
|
||||
# define GZIP_STATE 57 /* gzip header -> BUSY_STATE | EXTRA_STATE */
|
||||
#endif
|
||||
#define EXTRA_STATE 69 /* gzip extra block -> NAME_STATE */
|
||||
#define NAME_STATE 73 /* gzip file name -> COMMENT_STATE */
|
||||
#define COMMENT_STATE 91 /* gzip comment -> HCRC_STATE */
|
||||
#define HCRC_STATE 103 /* gzip header CRC -> BUSY_STATE */
|
||||
#define BUSY_STATE 113 /* deflate -> FINISH_STATE */
|
||||
#define FINISH_STATE 666 /* stream complete */
|
||||
/* Stream status */
|
||||
|
||||
|
||||
/* Data structure describing a single value and its code string. */
|
||||
typedef struct ct_data_s {
|
||||
union {
|
||||
ush freq; /* frequency count */
|
||||
ush code; /* bit string */
|
||||
} fc;
|
||||
union {
|
||||
ush dad; /* father node in Huffman tree */
|
||||
ush len; /* length of bit string */
|
||||
} dl;
|
||||
} FAR ct_data;
|
||||
|
||||
#define Freq fc.freq
|
||||
#define Code fc.code
|
||||
#define Dad dl.dad
|
||||
#define Len dl.len
|
||||
|
||||
typedef struct static_tree_desc_s static_tree_desc;
|
||||
|
||||
typedef struct tree_desc_s {
|
||||
ct_data *dyn_tree; /* the dynamic tree */
|
||||
int max_code; /* largest code with non zero frequency */
|
||||
const static_tree_desc *stat_desc; /* the corresponding static tree */
|
||||
} FAR tree_desc;
|
||||
|
||||
typedef ush Pos;
|
||||
typedef Pos FAR Posf;
|
||||
typedef unsigned IPos;
|
||||
|
||||
/* A Pos is an index in the character window. We use short instead of int to
|
||||
* save space in the various tables. IPos is used only for parameter passing.
|
||||
*/
|
||||
|
||||
typedef struct internal_state {
|
||||
z_streamp strm; /* pointer back to this zlib stream */
|
||||
int status; /* as the name implies */
|
||||
Bytef *pending_buf; /* output still pending */
|
||||
ulg pending_buf_size; /* size of pending_buf */
|
||||
Bytef *pending_out; /* next pending byte to output to the stream */
|
||||
ulg pending; /* nb of bytes in the pending buffer */
|
||||
int wrap; /* bit 0 true for zlib, bit 1 true for gzip */
|
||||
gz_headerp gzhead; /* gzip header information to write */
|
||||
ulg gzindex; /* where in extra, name, or comment */
|
||||
Byte method; /* can only be DEFLATED */
|
||||
int last_flush; /* value of flush param for previous deflate call */
|
||||
|
||||
/* used by deflate.c: */
|
||||
|
||||
uInt w_size; /* LZ77 window size (32K by default) */
|
||||
uInt w_bits; /* log2(w_size) (8..16) */
|
||||
uInt w_mask; /* w_size - 1 */
|
||||
|
||||
Bytef *window;
|
||||
/* Sliding window. Input bytes are read into the second half of the window,
|
||||
* and move to the first half later to keep a dictionary of at least wSize
|
||||
* bytes. With this organization, matches are limited to a distance of
|
||||
* wSize-MAX_MATCH bytes, but this ensures that IO is always
|
||||
* performed with a length multiple of the block size. Also, it limits
|
||||
* the window size to 64K, which is quite useful on MSDOS.
|
||||
* To do: use the user input buffer as sliding window.
|
||||
*/
|
||||
|
||||
ulg window_size;
|
||||
/* Actual size of window: 2*wSize, except when the user input buffer
|
||||
* is directly used as sliding window.
|
||||
*/
|
||||
|
||||
Posf *prev;
|
||||
/* Link to older string with same hash index. To limit the size of this
|
||||
* array to 64K, this link is maintained only for the last 32K strings.
|
||||
* An index in this array is thus a window index modulo 32K.
|
||||
*/
|
||||
|
||||
Posf *head; /* Heads of the hash chains or NIL. */
|
||||
|
||||
uInt ins_h; /* hash index of string to be inserted */
|
||||
uInt hash_size; /* number of elements in hash table */
|
||||
uInt hash_bits; /* log2(hash_size) */
|
||||
uInt hash_mask; /* hash_size-1 */
|
||||
|
||||
uInt hash_shift;
|
||||
/* Number of bits by which ins_h must be shifted at each input
|
||||
* step. It must be such that after MIN_MATCH steps, the oldest
|
||||
* byte no longer takes part in the hash key, that is:
|
||||
* hash_shift * MIN_MATCH >= hash_bits
|
||||
*/
|
||||
|
||||
long block_start;
|
||||
/* Window position at the beginning of the current output block. Gets
|
||||
* negative when the window is moved backwards.
|
||||
*/
|
||||
|
||||
uInt match_length; /* length of best match */
|
||||
IPos prev_match; /* previous match */
|
||||
int match_available; /* set if previous match exists */
|
||||
uInt strstart; /* start of string to insert */
|
||||
uInt match_start; /* start of matching string */
|
||||
uInt lookahead; /* number of valid bytes ahead in window */
|
||||
|
||||
uInt prev_length;
|
||||
/* Length of the best match at previous step. Matches not greater than this
|
||||
* are discarded. This is used in the lazy match evaluation.
|
||||
*/
|
||||
|
||||
uInt max_chain_length;
|
||||
/* To speed up deflation, hash chains are never searched beyond this
|
||||
* length. A higher limit improves compression ratio but degrades the
|
||||
* speed.
|
||||
*/
|
||||
|
||||
uInt max_lazy_match;
|
||||
/* Attempt to find a better match only when the current match is strictly
|
||||
* smaller than this value. This mechanism is used only for compression
|
||||
* levels >= 4.
|
||||
*/
|
||||
# define max_insert_length max_lazy_match
|
||||
/* Insert new strings in the hash table only if the match length is not
|
||||
* greater than this length. This saves time but degrades compression.
|
||||
* max_insert_length is used only for compression levels <= 3.
|
||||
*/
|
||||
|
||||
int level; /* compression level (1..9) */
|
||||
int strategy; /* favor or force Huffman coding*/
|
||||
|
||||
uInt good_match;
|
||||
/* Use a faster search when the previous match is longer than this */
|
||||
|
||||
int nice_match; /* Stop searching when current match exceeds this */
|
||||
|
||||
/* used by trees.c: */
|
||||
/* Didn't use ct_data typedef below to suppress compiler warning */
|
||||
struct ct_data_s dyn_ltree[HEAP_SIZE]; /* literal and length tree */
|
||||
struct ct_data_s dyn_dtree[2*D_CODES+1]; /* distance tree */
|
||||
struct ct_data_s bl_tree[2*BL_CODES+1]; /* Huffman tree for bit lengths */
|
||||
|
||||
struct tree_desc_s l_desc; /* desc. for literal tree */
|
||||
struct tree_desc_s d_desc; /* desc. for distance tree */
|
||||
struct tree_desc_s bl_desc; /* desc. for bit length tree */
|
||||
|
||||
ush bl_count[MAX_BITS+1];
|
||||
/* number of codes at each bit length for an optimal tree */
|
||||
|
||||
int heap[2*L_CODES+1]; /* heap used to build the Huffman trees */
|
||||
int heap_len; /* number of elements in the heap */
|
||||
int heap_max; /* element of largest frequency */
|
||||
/* The sons of heap[n] are heap[2*n] and heap[2*n+1]. heap[0] is not used.
|
||||
* The same heap array is used to build all trees.
|
||||
*/
|
||||
|
||||
uch depth[2*L_CODES+1];
|
||||
/* Depth of each subtree used as tie breaker for trees of equal frequency
|
||||
*/
|
||||
|
||||
uchf *l_buf; /* buffer for literals or lengths */
|
||||
|
||||
uInt lit_bufsize;
|
||||
/* Size of match buffer for literals/lengths. There are 4 reasons for
|
||||
* limiting lit_bufsize to 64K:
|
||||
* - frequencies can be kept in 16 bit counters
|
||||
* - if compression is not successful for the first block, all input
|
||||
* data is still in the window so we can still emit a stored block even
|
||||
* when input comes from standard input. (This can also be done for
|
||||
* all blocks if lit_bufsize is not greater than 32K.)
|
||||
* - if compression is not successful for a file smaller than 64K, we can
|
||||
* even emit a stored file instead of a stored block (saving 5 bytes).
|
||||
* This is applicable only for zip (not gzip or zlib).
|
||||
* - creating new Huffman trees less frequently may not provide fast
|
||||
* adaptation to changes in the input data statistics. (Take for
|
||||
* example a binary file with poorly compressible code followed by
|
||||
* a highly compressible string table.) Smaller buffer sizes give
|
||||
* fast adaptation but have of course the overhead of transmitting
|
||||
* trees more frequently.
|
||||
* - I can't count above 4
|
||||
*/
|
||||
|
||||
uInt last_lit; /* running index in l_buf */
|
||||
|
||||
ushf *d_buf;
|
||||
/* Buffer for distances. To simplify the code, d_buf and l_buf have
|
||||
* the same number of elements. To use different lengths, an extra flag
|
||||
* array would be necessary.
|
||||
*/
|
||||
|
||||
ulg opt_len; /* bit length of current block with optimal trees */
|
||||
ulg static_len; /* bit length of current block with static trees */
|
||||
uInt matches; /* number of string matches in current block */
|
||||
uInt insert; /* bytes at end of window left to insert */
|
||||
|
||||
#ifdef ZLIB_DEBUG
|
||||
ulg compressed_len; /* total bit length of compressed file mod 2^32 */
|
||||
ulg bits_sent; /* bit length of compressed data sent mod 2^32 */
|
||||
#endif
|
||||
|
||||
ush bi_buf;
|
||||
/* Output buffer. bits are inserted starting at the bottom (least
|
||||
* significant bits).
|
||||
*/
|
||||
int bi_valid;
|
||||
/* Number of valid bits in bi_buf. All bits above the last valid bit
|
||||
* are always zero.
|
||||
*/
|
||||
|
||||
ulg high_water;
|
||||
/* High water mark offset in window for initialized bytes -- bytes above
|
||||
* this are set to zero in order to avoid memory check warnings when
|
||||
* longest match routines access bytes past the input. This is then
|
||||
* updated to the new high water mark.
|
||||
*/
|
||||
|
||||
} FAR deflate_state;
|
||||
|
||||
/* Output a byte on the stream.
|
||||
* IN assertion: there is enough room in pending_buf.
|
||||
*/
|
||||
#define put_byte(s, c) {s->pending_buf[s->pending++] = (Bytef)(c);}
|
||||
|
||||
|
||||
#define MIN_LOOKAHEAD (MAX_MATCH+MIN_MATCH+1)
|
||||
/* Minimum amount of lookahead, except at the end of the input file.
|
||||
* See deflate.c for comments about the MIN_MATCH+1.
|
||||
*/
|
||||
|
||||
#define MAX_DIST(s) ((s)->w_size-MIN_LOOKAHEAD)
|
||||
/* In order to simplify the code, particularly on 16 bit machines, match
|
||||
* distances are limited to MAX_DIST instead of WSIZE.
|
||||
*/
|
||||
|
||||
#define WIN_INIT MAX_MATCH
|
||||
/* Number of bytes after end of data in window to initialize in order to avoid
|
||||
memory checker errors from longest match routines */
|
||||
|
||||
/* in trees.c */
|
||||
void ZLIB_INTERNAL _tr_init OF((deflate_state *s));
|
||||
int ZLIB_INTERNAL _tr_tally OF((deflate_state *s, unsigned dist, unsigned lc));
|
||||
void ZLIB_INTERNAL _tr_flush_block OF((deflate_state *s, charf *buf,
|
||||
ulg stored_len, int last));
|
||||
void ZLIB_INTERNAL _tr_flush_bits OF((deflate_state *s));
|
||||
void ZLIB_INTERNAL _tr_align OF((deflate_state *s));
|
||||
void ZLIB_INTERNAL _tr_stored_block OF((deflate_state *s, charf *buf,
|
||||
ulg stored_len, int last));
|
||||
|
||||
#define d_code(dist) \
|
||||
((dist) < 256 ? _dist_code[dist] : _dist_code[256+((dist)>>7)])
|
||||
/* Mapping from a distance to a distance code. dist is the distance - 1 and
|
||||
* must not have side effects. _dist_code[256] and _dist_code[257] are never
|
||||
* used.
|
||||
*/
|
||||
|
||||
#ifndef ZLIB_DEBUG
|
||||
/* Inline versions of _tr_tally for speed: */
|
||||
|
||||
#if defined(GEN_TREES_H) || !defined(STDC)
|
||||
extern uch ZLIB_INTERNAL _length_code[];
|
||||
extern uch ZLIB_INTERNAL _dist_code[];
|
||||
#else
|
||||
extern const uch ZLIB_INTERNAL _length_code[];
|
||||
extern const uch ZLIB_INTERNAL _dist_code[];
|
||||
#endif
|
||||
|
||||
# define _tr_tally_lit(s, c, flush) \
|
||||
{ uch cc = (c); \
|
||||
s->d_buf[s->last_lit] = 0; \
|
||||
s->l_buf[s->last_lit++] = cc; \
|
||||
s->dyn_ltree[cc].Freq++; \
|
||||
flush = (s->last_lit == s->lit_bufsize-1); \
|
||||
}
|
||||
# define _tr_tally_dist(s, distance, length, flush) \
|
||||
{ uch len = (uch)(length); \
|
||||
ush dist = (ush)(distance); \
|
||||
s->d_buf[s->last_lit] = dist; \
|
||||
s->l_buf[s->last_lit++] = len; \
|
||||
dist--; \
|
||||
s->dyn_ltree[_length_code[len]+LITERALS+1].Freq++; \
|
||||
s->dyn_dtree[d_code(dist)].Freq++; \
|
||||
flush = (s->last_lit == s->lit_bufsize-1); \
|
||||
}
|
||||
#else
|
||||
# define _tr_tally_lit(s, c, flush) flush = _tr_tally(s, 0, c)
|
||||
# define _tr_tally_dist(s, distance, length, flush) \
|
||||
flush = _tr_tally(s, distance, length)
|
||||
#endif
|
||||
|
||||
#endif /* DEFLATE_H */
|
||||
@@ -0,0 +1,220 @@
|
||||
/* gzguts.h -- zlib internal header definitions for gz* operations
|
||||
* Copyright (C) 2004, 2005, 2010, 2011, 2012, 2013, 2016 Mark Adler
|
||||
* For conditions of distribution and use, see copyright notice in zlib.h
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#ifdef _LARGEFILE64_SOURCE
|
||||
# ifndef _LARGEFILE_SOURCE
|
||||
# define _LARGEFILE_SOURCE 1
|
||||
# endif
|
||||
# ifdef _FILE_OFFSET_BITS
|
||||
# undef _FILE_OFFSET_BITS
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_HIDDEN
|
||||
# define ZLIB_INTERNAL __attribute__((visibility ("hidden")))
|
||||
#else
|
||||
# define ZLIB_INTERNAL
|
||||
#endif
|
||||
|
||||
#include <stdio.h>
|
||||
#include "zlib.h"
|
||||
#ifdef STDC
|
||||
# include <string.h>
|
||||
# include <stdlib.h>
|
||||
# include <limits.h>
|
||||
#endif
|
||||
|
||||
#ifndef _POSIX_SOURCE
|
||||
# define _POSIX_SOURCE
|
||||
#endif
|
||||
#include <fcntl.h>
|
||||
|
||||
#ifdef _WIN32
|
||||
# include <stddef.h>
|
||||
#endif
|
||||
|
||||
#if defined(__TURBOC__) || defined(_MSC_VER) || defined(_WIN32)
|
||||
# include <io.h>
|
||||
#endif
|
||||
|
||||
#if defined(_WIN32) || defined(__CYGWIN__)
|
||||
# define WIDECHAR
|
||||
#endif
|
||||
|
||||
#ifdef WINAPI_FAMILY
|
||||
# define open _open
|
||||
# define read _read
|
||||
# define write _write
|
||||
# define close _close
|
||||
#endif
|
||||
|
||||
#ifdef NO_DEFLATE /* for compatibility with old definition */
|
||||
# define NO_GZCOMPRESS
|
||||
#endif
|
||||
|
||||
#if defined(STDC99) || (defined(__TURBOC__) && __TURBOC__ >= 0x550)
|
||||
# ifndef HAVE_VSNPRINTF
|
||||
# define HAVE_VSNPRINTF
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if defined(__CYGWIN__)
|
||||
# ifndef HAVE_VSNPRINTF
|
||||
# define HAVE_VSNPRINTF
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if defined(MSDOS) && defined(__BORLANDC__) && (BORLANDC > 0x410)
|
||||
# ifndef HAVE_VSNPRINTF
|
||||
# define HAVE_VSNPRINTF
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifndef HAVE_VSNPRINTF
|
||||
# ifdef MSDOS
|
||||
/* vsnprintf may exist on some MS-DOS compilers (DJGPP?),
|
||||
but for now we just assume it doesn't. */
|
||||
# define NO_vsnprintf
|
||||
# endif
|
||||
# ifdef __TURBOC__
|
||||
# define NO_vsnprintf
|
||||
# endif
|
||||
# ifdef WIN32
|
||||
/* In Win32, vsnprintf is available as the "non-ANSI" _vsnprintf. */
|
||||
# if !defined(vsnprintf) && !defined(NO_vsnprintf)
|
||||
# if !defined(_MSC_VER) || ( defined(_MSC_VER) && _MSC_VER < 1500 )
|
||||
# define vsnprintf _vsnprintf
|
||||
# endif
|
||||
# endif
|
||||
# endif
|
||||
# ifdef __SASC
|
||||
# define NO_vsnprintf
|
||||
# endif
|
||||
# ifdef VMS
|
||||
# define NO_vsnprintf
|
||||
# endif
|
||||
# ifdef __OS400__
|
||||
# define NO_vsnprintf
|
||||
# endif
|
||||
# ifdef __MVS__
|
||||
# define NO_vsnprintf
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* unlike snprintf (which is required in C99), _snprintf does not guarantee
|
||||
null termination of the result -- however this is only used in gzlib.c where
|
||||
the result is assured to fit in the space provided */
|
||||
#if defined(_MSC_VER) && _MSC_VER < 1900
|
||||
# define snprintf _snprintf
|
||||
#endif
|
||||
|
||||
#ifndef local
|
||||
# define local static
|
||||
#endif
|
||||
/* since "static" is used to mean two completely different things in C, we
|
||||
define "local" for the non-static meaning of "static", for readability
|
||||
(compile with -Dlocal if your debugger can't find static symbols) */
|
||||
|
||||
/* gz* functions always use library allocation functions */
|
||||
#ifndef STDC
|
||||
extern voidp malloc OF((uInt size));
|
||||
extern void free OF((voidpf ptr));
|
||||
#endif
|
||||
|
||||
/* get errno and strerror definition */
|
||||
#if defined UNDER_CE
|
||||
# include <windows.h>
|
||||
# define zstrerror() gz_strwinerror((DWORD)GetLastError())
|
||||
#else
|
||||
# ifndef NO_STRERROR
|
||||
# include <errno.h>
|
||||
# define zstrerror() strerror(errno)
|
||||
# else
|
||||
# define zstrerror() "stdio error (consult errno)"
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* provide prototypes for these when building zlib without LFS */
|
||||
#if !defined(_LARGEFILE64_SOURCE) || _LFS64_LARGEFILE-0 == 0
|
||||
ZEXTERN gzFile ZEXPORT gzopen64 OF((const char *, const char *));
|
||||
ZEXTERN z_off64_t ZEXPORT gzseek64 OF((gzFile, z_off64_t, int));
|
||||
ZEXTERN z_off64_t ZEXPORT gztell64 OF((gzFile));
|
||||
ZEXTERN z_off64_t ZEXPORT gzoffset64 OF((gzFile));
|
||||
#endif
|
||||
|
||||
/* default memLevel */
|
||||
#if MAX_MEM_LEVEL >= 8
|
||||
# define DEF_MEM_LEVEL 8
|
||||
#else
|
||||
# define DEF_MEM_LEVEL MAX_MEM_LEVEL
|
||||
#endif
|
||||
|
||||
/* default i/o buffer size -- double this for output when reading (this and
|
||||
twice this must be able to fit in an unsigned type) */
|
||||
#define GZBUFSIZE 8192
|
||||
|
||||
/* gzip modes, also provide a little integrity check on the passed structure */
|
||||
#define GZ_NONE 0
|
||||
#define GZ_READ 7247
|
||||
#define GZ_WRITE 31153
|
||||
#define GZ_APPEND 1 /* mode set to GZ_WRITE after the file is opened */
|
||||
|
||||
/* values for gz_state how */
|
||||
#define LOOK 0 /* look for a gzip header */
|
||||
#define COPY 1 /* copy input directly */
|
||||
#define GZIP 2 /* decompress a gzip stream */
|
||||
|
||||
/* internal gzip file state data structure */
|
||||
typedef struct {
|
||||
/* exposed contents for gzgetc() macro */
|
||||
struct gzFile_s x; /* "x" for exposed */
|
||||
/* x.have: number of bytes available at x.next */
|
||||
/* x.next: next output data to deliver or write */
|
||||
/* x.pos: current position in uncompressed data */
|
||||
/* used for both reading and writing */
|
||||
int mode; /* see gzip modes above */
|
||||
int fd; /* file descriptor */
|
||||
char *path; /* path or fd for error messages */
|
||||
unsigned size; /* buffer size, zero if not allocated yet */
|
||||
unsigned want; /* requested buffer size, default is GZBUFSIZE */
|
||||
unsigned char *in; /* input buffer (double-sized when writing) */
|
||||
unsigned char *out; /* output buffer (double-sized when reading) */
|
||||
int direct; /* 0 if processing gzip, 1 if transparent */
|
||||
/* just for reading */
|
||||
int how; /* 0: get header, 1: copy, 2: decompress */
|
||||
z_off64_t start; /* where the gzip data started, for rewinding */
|
||||
int eof; /* true if end of input file reached */
|
||||
int past; /* true if read requested past end */
|
||||
/* just for writing */
|
||||
int level; /* compression level */
|
||||
int strategy; /* compression strategy */
|
||||
/* seek request */
|
||||
z_off64_t skip; /* amount to skip (already rewound if backwards) */
|
||||
int seek; /* true if seek request pending */
|
||||
/* error information */
|
||||
int err; /* error code */
|
||||
char *msg; /* error message */
|
||||
/* zlib inflate or deflate stream */
|
||||
z_stream strm; /* stream structure in-place (not a pointer) */
|
||||
} gz_state;
|
||||
typedef gz_state FAR *gz_statep;
|
||||
|
||||
/* shared functions */
|
||||
void ZLIB_INTERNAL gz_error OF((gz_statep, int, const char *));
|
||||
#if defined UNDER_CE
|
||||
char ZLIB_INTERNAL *gz_strwinerror OF((DWORD error));
|
||||
#endif
|
||||
|
||||
/* GT_OFF(x), where x is an unsigned value, is true if x > maximum z_off64_t
|
||||
value -- needed when comparing unsigned to z_off64_t, which is signed
|
||||
(possible z_off64_t types off_t, off64_t, and long are all signed) */
|
||||
#ifdef INT_MAX
|
||||
# define GT_OFF(x) (sizeof(int) == sizeof(z_off64_t) && (x) > INT_MAX)
|
||||
#else
|
||||
unsigned ZLIB_INTERNAL gz_intmax OF((void));
|
||||
# define GT_OFF(x) (sizeof(int) == sizeof(z_off64_t) && (x) > gz_intmax())
|
||||
#endif
|
||||
@@ -0,0 +1,11 @@
|
||||
/* inffast.h -- header to use inffast.c
|
||||
* Copyright (C) 1995-2003, 2010 Mark Adler
|
||||
* For conditions of distribution and use, see copyright notice in zlib.h
|
||||
*/
|
||||
|
||||
/* WARNING: this file should *not* be used by applications. It is
|
||||
part of the implementation of the compression library and is
|
||||
subject to change. Applications should only use zlib.h.
|
||||
*/
|
||||
|
||||
void ZLIB_INTERNAL inflate_fast OF((z_streamp strm, unsigned start));
|
||||
@@ -0,0 +1,94 @@
|
||||
/* inffixed.h -- table for decoding fixed codes
|
||||
* Generated automatically by makefixed().
|
||||
*/
|
||||
|
||||
/* WARNING: this file should *not* be used by applications.
|
||||
It is part of the implementation of this library and is
|
||||
subject to change. Applications should only use zlib.h.
|
||||
*/
|
||||
|
||||
static const code lenfix[512] = {
|
||||
{96,7,0},{0,8,80},{0,8,16},{20,8,115},{18,7,31},{0,8,112},{0,8,48},
|
||||
{0,9,192},{16,7,10},{0,8,96},{0,8,32},{0,9,160},{0,8,0},{0,8,128},
|
||||
{0,8,64},{0,9,224},{16,7,6},{0,8,88},{0,8,24},{0,9,144},{19,7,59},
|
||||
{0,8,120},{0,8,56},{0,9,208},{17,7,17},{0,8,104},{0,8,40},{0,9,176},
|
||||
{0,8,8},{0,8,136},{0,8,72},{0,9,240},{16,7,4},{0,8,84},{0,8,20},
|
||||
{21,8,227},{19,7,43},{0,8,116},{0,8,52},{0,9,200},{17,7,13},{0,8,100},
|
||||
{0,8,36},{0,9,168},{0,8,4},{0,8,132},{0,8,68},{0,9,232},{16,7,8},
|
||||
{0,8,92},{0,8,28},{0,9,152},{20,7,83},{0,8,124},{0,8,60},{0,9,216},
|
||||
{18,7,23},{0,8,108},{0,8,44},{0,9,184},{0,8,12},{0,8,140},{0,8,76},
|
||||
{0,9,248},{16,7,3},{0,8,82},{0,8,18},{21,8,163},{19,7,35},{0,8,114},
|
||||
{0,8,50},{0,9,196},{17,7,11},{0,8,98},{0,8,34},{0,9,164},{0,8,2},
|
||||
{0,8,130},{0,8,66},{0,9,228},{16,7,7},{0,8,90},{0,8,26},{0,9,148},
|
||||
{20,7,67},{0,8,122},{0,8,58},{0,9,212},{18,7,19},{0,8,106},{0,8,42},
|
||||
{0,9,180},{0,8,10},{0,8,138},{0,8,74},{0,9,244},{16,7,5},{0,8,86},
|
||||
{0,8,22},{64,8,0},{19,7,51},{0,8,118},{0,8,54},{0,9,204},{17,7,15},
|
||||
{0,8,102},{0,8,38},{0,9,172},{0,8,6},{0,8,134},{0,8,70},{0,9,236},
|
||||
{16,7,9},{0,8,94},{0,8,30},{0,9,156},{20,7,99},{0,8,126},{0,8,62},
|
||||
{0,9,220},{18,7,27},{0,8,110},{0,8,46},{0,9,188},{0,8,14},{0,8,142},
|
||||
{0,8,78},{0,9,252},{96,7,0},{0,8,81},{0,8,17},{21,8,131},{18,7,31},
|
||||
{0,8,113},{0,8,49},{0,9,194},{16,7,10},{0,8,97},{0,8,33},{0,9,162},
|
||||
{0,8,1},{0,8,129},{0,8,65},{0,9,226},{16,7,6},{0,8,89},{0,8,25},
|
||||
{0,9,146},{19,7,59},{0,8,121},{0,8,57},{0,9,210},{17,7,17},{0,8,105},
|
||||
{0,8,41},{0,9,178},{0,8,9},{0,8,137},{0,8,73},{0,9,242},{16,7,4},
|
||||
{0,8,85},{0,8,21},{16,8,258},{19,7,43},{0,8,117},{0,8,53},{0,9,202},
|
||||
{17,7,13},{0,8,101},{0,8,37},{0,9,170},{0,8,5},{0,8,133},{0,8,69},
|
||||
{0,9,234},{16,7,8},{0,8,93},{0,8,29},{0,9,154},{20,7,83},{0,8,125},
|
||||
{0,8,61},{0,9,218},{18,7,23},{0,8,109},{0,8,45},{0,9,186},{0,8,13},
|
||||
{0,8,141},{0,8,77},{0,9,250},{16,7,3},{0,8,83},{0,8,19},{21,8,195},
|
||||
{19,7,35},{0,8,115},{0,8,51},{0,9,198},{17,7,11},{0,8,99},{0,8,35},
|
||||
{0,9,166},{0,8,3},{0,8,131},{0,8,67},{0,9,230},{16,7,7},{0,8,91},
|
||||
{0,8,27},{0,9,150},{20,7,67},{0,8,123},{0,8,59},{0,9,214},{18,7,19},
|
||||
{0,8,107},{0,8,43},{0,9,182},{0,8,11},{0,8,139},{0,8,75},{0,9,246},
|
||||
{16,7,5},{0,8,87},{0,8,23},{64,8,0},{19,7,51},{0,8,119},{0,8,55},
|
||||
{0,9,206},{17,7,15},{0,8,103},{0,8,39},{0,9,174},{0,8,7},{0,8,135},
|
||||
{0,8,71},{0,9,238},{16,7,9},{0,8,95},{0,8,31},{0,9,158},{20,7,99},
|
||||
{0,8,127},{0,8,63},{0,9,222},{18,7,27},{0,8,111},{0,8,47},{0,9,190},
|
||||
{0,8,15},{0,8,143},{0,8,79},{0,9,254},{96,7,0},{0,8,80},{0,8,16},
|
||||
{20,8,115},{18,7,31},{0,8,112},{0,8,48},{0,9,193},{16,7,10},{0,8,96},
|
||||
{0,8,32},{0,9,161},{0,8,0},{0,8,128},{0,8,64},{0,9,225},{16,7,6},
|
||||
{0,8,88},{0,8,24},{0,9,145},{19,7,59},{0,8,120},{0,8,56},{0,9,209},
|
||||
{17,7,17},{0,8,104},{0,8,40},{0,9,177},{0,8,8},{0,8,136},{0,8,72},
|
||||
{0,9,241},{16,7,4},{0,8,84},{0,8,20},{21,8,227},{19,7,43},{0,8,116},
|
||||
{0,8,52},{0,9,201},{17,7,13},{0,8,100},{0,8,36},{0,9,169},{0,8,4},
|
||||
{0,8,132},{0,8,68},{0,9,233},{16,7,8},{0,8,92},{0,8,28},{0,9,153},
|
||||
{20,7,83},{0,8,124},{0,8,60},{0,9,217},{18,7,23},{0,8,108},{0,8,44},
|
||||
{0,9,185},{0,8,12},{0,8,140},{0,8,76},{0,9,249},{16,7,3},{0,8,82},
|
||||
{0,8,18},{21,8,163},{19,7,35},{0,8,114},{0,8,50},{0,9,197},{17,7,11},
|
||||
{0,8,98},{0,8,34},{0,9,165},{0,8,2},{0,8,130},{0,8,66},{0,9,229},
|
||||
{16,7,7},{0,8,90},{0,8,26},{0,9,149},{20,7,67},{0,8,122},{0,8,58},
|
||||
{0,9,213},{18,7,19},{0,8,106},{0,8,42},{0,9,181},{0,8,10},{0,8,138},
|
||||
{0,8,74},{0,9,245},{16,7,5},{0,8,86},{0,8,22},{64,8,0},{19,7,51},
|
||||
{0,8,118},{0,8,54},{0,9,205},{17,7,15},{0,8,102},{0,8,38},{0,9,173},
|
||||
{0,8,6},{0,8,134},{0,8,70},{0,9,237},{16,7,9},{0,8,94},{0,8,30},
|
||||
{0,9,157},{20,7,99},{0,8,126},{0,8,62},{0,9,221},{18,7,27},{0,8,110},
|
||||
{0,8,46},{0,9,189},{0,8,14},{0,8,142},{0,8,78},{0,9,253},{96,7,0},
|
||||
{0,8,81},{0,8,17},{21,8,131},{18,7,31},{0,8,113},{0,8,49},{0,9,195},
|
||||
{16,7,10},{0,8,97},{0,8,33},{0,9,163},{0,8,1},{0,8,129},{0,8,65},
|
||||
{0,9,227},{16,7,6},{0,8,89},{0,8,25},{0,9,147},{19,7,59},{0,8,121},
|
||||
{0,8,57},{0,9,211},{17,7,17},{0,8,105},{0,8,41},{0,9,179},{0,8,9},
|
||||
{0,8,137},{0,8,73},{0,9,243},{16,7,4},{0,8,85},{0,8,21},{16,8,258},
|
||||
{19,7,43},{0,8,117},{0,8,53},{0,9,203},{17,7,13},{0,8,101},{0,8,37},
|
||||
{0,9,171},{0,8,5},{0,8,133},{0,8,69},{0,9,235},{16,7,8},{0,8,93},
|
||||
{0,8,29},{0,9,155},{20,7,83},{0,8,125},{0,8,61},{0,9,219},{18,7,23},
|
||||
{0,8,109},{0,8,45},{0,9,187},{0,8,13},{0,8,141},{0,8,77},{0,9,251},
|
||||
{16,7,3},{0,8,83},{0,8,19},{21,8,195},{19,7,35},{0,8,115},{0,8,51},
|
||||
{0,9,199},{17,7,11},{0,8,99},{0,8,35},{0,9,167},{0,8,3},{0,8,131},
|
||||
{0,8,67},{0,9,231},{16,7,7},{0,8,91},{0,8,27},{0,9,151},{20,7,67},
|
||||
{0,8,123},{0,8,59},{0,9,215},{18,7,19},{0,8,107},{0,8,43},{0,9,183},
|
||||
{0,8,11},{0,8,139},{0,8,75},{0,9,247},{16,7,5},{0,8,87},{0,8,23},
|
||||
{64,8,0},{19,7,51},{0,8,119},{0,8,55},{0,9,207},{17,7,15},{0,8,103},
|
||||
{0,8,39},{0,9,175},{0,8,7},{0,8,135},{0,8,71},{0,9,239},{16,7,9},
|
||||
{0,8,95},{0,8,31},{0,9,159},{20,7,99},{0,8,127},{0,8,63},{0,9,223},
|
||||
{18,7,27},{0,8,111},{0,8,47},{0,9,191},{0,8,15},{0,8,143},{0,8,79},
|
||||
{0,9,255}
|
||||
};
|
||||
|
||||
static const code distfix[32] = {
|
||||
{16,5,1},{23,5,257},{19,5,17},{27,5,4097},{17,5,5},{25,5,1025},
|
||||
{21,5,65},{29,5,16385},{16,5,3},{24,5,513},{20,5,33},{28,5,8193},
|
||||
{18,5,9},{26,5,2049},{22,5,129},{64,5,0},{16,5,2},{23,5,385},
|
||||
{19,5,25},{27,5,6145},{17,5,7},{25,5,1537},{21,5,97},{29,5,24577},
|
||||
{16,5,4},{24,5,769},{20,5,49},{28,5,12289},{18,5,13},{26,5,3073},
|
||||
{22,5,193},{64,5,0}
|
||||
};
|
||||
@@ -0,0 +1,125 @@
|
||||
/* inflate.h -- internal inflate state definition
|
||||
* Copyright (C) 1995-2016 Mark Adler
|
||||
* For conditions of distribution and use, see copyright notice in zlib.h
|
||||
*/
|
||||
|
||||
/* WARNING: this file should *not* be used by applications. It is
|
||||
part of the implementation of the compression library and is
|
||||
subject to change. Applications should only use zlib.h.
|
||||
*/
|
||||
|
||||
/* define NO_GZIP when compiling if you want to disable gzip header and
|
||||
trailer decoding by inflate(). NO_GZIP would be used to avoid linking in
|
||||
the crc code when it is not needed. For shared libraries, gzip decoding
|
||||
should be left enabled. */
|
||||
#ifndef NO_GZIP
|
||||
# define GUNZIP
|
||||
#endif
|
||||
|
||||
/* Possible inflate modes between inflate() calls */
|
||||
typedef enum {
|
||||
HEAD = 16180, /* i: waiting for magic header */
|
||||
FLAGS, /* i: waiting for method and flags (gzip) */
|
||||
TIME, /* i: waiting for modification time (gzip) */
|
||||
OS, /* i: waiting for extra flags and operating system (gzip) */
|
||||
EXLEN, /* i: waiting for extra length (gzip) */
|
||||
EXTRA, /* i: waiting for extra bytes (gzip) */
|
||||
NAME, /* i: waiting for end of file name (gzip) */
|
||||
COMMENT, /* i: waiting for end of comment (gzip) */
|
||||
HCRC, /* i: waiting for header crc (gzip) */
|
||||
DICTID, /* i: waiting for dictionary check value */
|
||||
DICT, /* waiting for inflateSetDictionary() call */
|
||||
TYPE, /* i: waiting for type bits, including last-flag bit */
|
||||
TYPEDO, /* i: same, but skip check to exit inflate on new block */
|
||||
STORED, /* i: waiting for stored size (length and complement) */
|
||||
COPY_, /* i/o: same as COPY below, but only first time in */
|
||||
COPY, /* i/o: waiting for input or output to copy stored block */
|
||||
TABLE, /* i: waiting for dynamic block table lengths */
|
||||
LENLENS, /* i: waiting for code length code lengths */
|
||||
CODELENS, /* i: waiting for length/lit and distance code lengths */
|
||||
LEN_, /* i: same as LEN below, but only first time in */
|
||||
LEN, /* i: waiting for length/lit/eob code */
|
||||
LENEXT, /* i: waiting for length extra bits */
|
||||
DIST, /* i: waiting for distance code */
|
||||
DISTEXT, /* i: waiting for distance extra bits */
|
||||
MATCH, /* o: waiting for output space to copy string */
|
||||
LIT, /* o: waiting for output space to write literal */
|
||||
CHECK, /* i: waiting for 32-bit check value */
|
||||
LENGTH, /* i: waiting for 32-bit length (gzip) */
|
||||
DONE, /* finished check, done -- remain here until reset */
|
||||
BAD, /* got a data error -- remain here until reset */
|
||||
MEM, /* got an inflate() memory error -- remain here until reset */
|
||||
SYNC /* looking for synchronization bytes to restart inflate() */
|
||||
} inflate_mode;
|
||||
|
||||
/*
|
||||
State transitions between above modes -
|
||||
|
||||
(most modes can go to BAD or MEM on error -- not shown for clarity)
|
||||
|
||||
Process header:
|
||||
HEAD -> (gzip) or (zlib) or (raw)
|
||||
(gzip) -> FLAGS -> TIME -> OS -> EXLEN -> EXTRA -> NAME -> COMMENT ->
|
||||
HCRC -> TYPE
|
||||
(zlib) -> DICTID or TYPE
|
||||
DICTID -> DICT -> TYPE
|
||||
(raw) -> TYPEDO
|
||||
Read deflate blocks:
|
||||
TYPE -> TYPEDO -> STORED or TABLE or LEN_ or CHECK
|
||||
STORED -> COPY_ -> COPY -> TYPE
|
||||
TABLE -> LENLENS -> CODELENS -> LEN_
|
||||
LEN_ -> LEN
|
||||
Read deflate codes in fixed or dynamic block:
|
||||
LEN -> LENEXT or LIT or TYPE
|
||||
LENEXT -> DIST -> DISTEXT -> MATCH -> LEN
|
||||
LIT -> LEN
|
||||
Process trailer:
|
||||
CHECK -> LENGTH -> DONE
|
||||
*/
|
||||
|
||||
/* State maintained between inflate() calls -- approximately 7K bytes, not
|
||||
including the allocated sliding window, which is up to 32K bytes. */
|
||||
struct inflate_state {
|
||||
z_streamp strm; /* pointer back to this zlib stream */
|
||||
inflate_mode mode; /* current inflate mode */
|
||||
int last; /* true if processing last block */
|
||||
int wrap; /* bit 0 true for zlib, bit 1 true for gzip,
|
||||
bit 2 true to validate check value */
|
||||
int havedict; /* true if dictionary provided */
|
||||
int flags; /* gzip header method and flags (0 if zlib) */
|
||||
unsigned dmax; /* zlib header max distance (INFLATE_STRICT) */
|
||||
unsigned long check; /* protected copy of check value */
|
||||
unsigned long total; /* protected copy of output count */
|
||||
gz_headerp head; /* where to save gzip header information */
|
||||
/* sliding window */
|
||||
unsigned wbits; /* log base 2 of requested window size */
|
||||
unsigned wsize; /* window size or zero if not using window */
|
||||
unsigned whave; /* valid bytes in the window */
|
||||
unsigned wnext; /* window write index */
|
||||
unsigned char FAR *window; /* allocated sliding window, if needed */
|
||||
/* bit accumulator */
|
||||
unsigned long hold; /* input bit accumulator */
|
||||
unsigned bits; /* number of bits in "in" */
|
||||
/* for string and stored block copying */
|
||||
unsigned length; /* literal or length of data to copy */
|
||||
unsigned offset; /* distance back to copy string from */
|
||||
/* for table and code decoding */
|
||||
unsigned extra; /* extra bits needed */
|
||||
/* fixed and dynamic code tables */
|
||||
code const FAR *lencode; /* starting table for length/literal codes */
|
||||
code const FAR *distcode; /* starting table for distance codes */
|
||||
unsigned lenbits; /* index bits for lencode */
|
||||
unsigned distbits; /* index bits for distcode */
|
||||
/* dynamic table building */
|
||||
unsigned ncode; /* number of code length code lengths */
|
||||
unsigned nlen; /* number of length code lengths */
|
||||
unsigned ndist; /* number of distance code lengths */
|
||||
unsigned have; /* number of code lengths in lens[] */
|
||||
code FAR *next; /* next available space in codes[] */
|
||||
unsigned short lens[320]; /* temporary storage for code lengths */
|
||||
unsigned short work[288]; /* work area for code table building */
|
||||
code codes[ENOUGH]; /* space for code tables */
|
||||
int sane; /* if false, allow invalid distance too far */
|
||||
int back; /* bits back of last unprocessed length/lit */
|
||||
unsigned was; /* initial length of match */
|
||||
};
|
||||
@@ -0,0 +1,62 @@
|
||||
/* inftrees.h -- header to use inftrees.c
|
||||
* Copyright (C) 1995-2005, 2010 Mark Adler
|
||||
* For conditions of distribution and use, see copyright notice in zlib.h
|
||||
*/
|
||||
|
||||
/* WARNING: this file should *not* be used by applications. It is
|
||||
part of the implementation of the compression library and is
|
||||
subject to change. Applications should only use zlib.h.
|
||||
*/
|
||||
|
||||
/* Structure for decoding tables. Each entry provides either the
|
||||
information needed to do the operation requested by the code that
|
||||
indexed that table entry, or it provides a pointer to another
|
||||
table that indexes more bits of the code. op indicates whether
|
||||
the entry is a pointer to another table, a literal, a length or
|
||||
distance, an end-of-block, or an invalid code. For a table
|
||||
pointer, the low four bits of op is the number of index bits of
|
||||
that table. For a length or distance, the low four bits of op
|
||||
is the number of extra bits to get after the code. bits is
|
||||
the number of bits in this code or part of the code to drop off
|
||||
of the bit buffer. val is the actual byte to output in the case
|
||||
of a literal, the base length or distance, or the offset from
|
||||
the current table to the next table. Each entry is four bytes. */
|
||||
typedef struct {
|
||||
unsigned char op; /* operation, extra bits, table bits */
|
||||
unsigned char bits; /* bits in this part of the code */
|
||||
unsigned short val; /* offset in table or code value */
|
||||
} code;
|
||||
|
||||
/* op values as set by inflate_table():
|
||||
00000000 - literal
|
||||
0000tttt - table link, tttt != 0 is the number of table index bits
|
||||
0001eeee - length or distance, eeee is the number of extra bits
|
||||
01100000 - end of block
|
||||
01000000 - invalid code
|
||||
*/
|
||||
|
||||
/* Maximum size of the dynamic table. The maximum number of code structures is
|
||||
1444, which is the sum of 852 for literal/length codes and 592 for distance
|
||||
codes. These values were found by exhaustive searches using the program
|
||||
examples/enough.c found in the zlib distribtution. The arguments to that
|
||||
program are the number of symbols, the initial root table size, and the
|
||||
maximum bit length of a code. "enough 286 9 15" for literal/length codes
|
||||
returns returns 852, and "enough 30 6 15" for distance codes returns 592.
|
||||
The initial root table size (9 or 6) is found in the fifth argument of the
|
||||
inflate_table() calls in inflate.c and infback.c. If the root table size is
|
||||
changed, then these maximum sizes would be need to be recalculated and
|
||||
updated. */
|
||||
#define ENOUGH_LENS 852
|
||||
#define ENOUGH_DISTS 592
|
||||
#define ENOUGH (ENOUGH_LENS+ENOUGH_DISTS)
|
||||
|
||||
/* Type of code to build for inflate_table() */
|
||||
typedef enum {
|
||||
CODES,
|
||||
LENS,
|
||||
DISTS
|
||||
} codetype;
|
||||
|
||||
int ZLIB_INTERNAL inflate_table OF((codetype type, unsigned short FAR *lens,
|
||||
unsigned codes, code FAR * FAR *table,
|
||||
unsigned FAR *bits, unsigned short FAR *work));
|
||||
@@ -0,0 +1,128 @@
|
||||
/* header created automatically with -DGEN_TREES_H */
|
||||
|
||||
local const ct_data static_ltree[L_CODES+2] = {
|
||||
{{ 12},{ 8}}, {{140},{ 8}}, {{ 76},{ 8}}, {{204},{ 8}}, {{ 44},{ 8}},
|
||||
{{172},{ 8}}, {{108},{ 8}}, {{236},{ 8}}, {{ 28},{ 8}}, {{156},{ 8}},
|
||||
{{ 92},{ 8}}, {{220},{ 8}}, {{ 60},{ 8}}, {{188},{ 8}}, {{124},{ 8}},
|
||||
{{252},{ 8}}, {{ 2},{ 8}}, {{130},{ 8}}, {{ 66},{ 8}}, {{194},{ 8}},
|
||||
{{ 34},{ 8}}, {{162},{ 8}}, {{ 98},{ 8}}, {{226},{ 8}}, {{ 18},{ 8}},
|
||||
{{146},{ 8}}, {{ 82},{ 8}}, {{210},{ 8}}, {{ 50},{ 8}}, {{178},{ 8}},
|
||||
{{114},{ 8}}, {{242},{ 8}}, {{ 10},{ 8}}, {{138},{ 8}}, {{ 74},{ 8}},
|
||||
{{202},{ 8}}, {{ 42},{ 8}}, {{170},{ 8}}, {{106},{ 8}}, {{234},{ 8}},
|
||||
{{ 26},{ 8}}, {{154},{ 8}}, {{ 90},{ 8}}, {{218},{ 8}}, {{ 58},{ 8}},
|
||||
{{186},{ 8}}, {{122},{ 8}}, {{250},{ 8}}, {{ 6},{ 8}}, {{134},{ 8}},
|
||||
{{ 70},{ 8}}, {{198},{ 8}}, {{ 38},{ 8}}, {{166},{ 8}}, {{102},{ 8}},
|
||||
{{230},{ 8}}, {{ 22},{ 8}}, {{150},{ 8}}, {{ 86},{ 8}}, {{214},{ 8}},
|
||||
{{ 54},{ 8}}, {{182},{ 8}}, {{118},{ 8}}, {{246},{ 8}}, {{ 14},{ 8}},
|
||||
{{142},{ 8}}, {{ 78},{ 8}}, {{206},{ 8}}, {{ 46},{ 8}}, {{174},{ 8}},
|
||||
{{110},{ 8}}, {{238},{ 8}}, {{ 30},{ 8}}, {{158},{ 8}}, {{ 94},{ 8}},
|
||||
{{222},{ 8}}, {{ 62},{ 8}}, {{190},{ 8}}, {{126},{ 8}}, {{254},{ 8}},
|
||||
{{ 1},{ 8}}, {{129},{ 8}}, {{ 65},{ 8}}, {{193},{ 8}}, {{ 33},{ 8}},
|
||||
{{161},{ 8}}, {{ 97},{ 8}}, {{225},{ 8}}, {{ 17},{ 8}}, {{145},{ 8}},
|
||||
{{ 81},{ 8}}, {{209},{ 8}}, {{ 49},{ 8}}, {{177},{ 8}}, {{113},{ 8}},
|
||||
{{241},{ 8}}, {{ 9},{ 8}}, {{137},{ 8}}, {{ 73},{ 8}}, {{201},{ 8}},
|
||||
{{ 41},{ 8}}, {{169},{ 8}}, {{105},{ 8}}, {{233},{ 8}}, {{ 25},{ 8}},
|
||||
{{153},{ 8}}, {{ 89},{ 8}}, {{217},{ 8}}, {{ 57},{ 8}}, {{185},{ 8}},
|
||||
{{121},{ 8}}, {{249},{ 8}}, {{ 5},{ 8}}, {{133},{ 8}}, {{ 69},{ 8}},
|
||||
{{197},{ 8}}, {{ 37},{ 8}}, {{165},{ 8}}, {{101},{ 8}}, {{229},{ 8}},
|
||||
{{ 21},{ 8}}, {{149},{ 8}}, {{ 85},{ 8}}, {{213},{ 8}}, {{ 53},{ 8}},
|
||||
{{181},{ 8}}, {{117},{ 8}}, {{245},{ 8}}, {{ 13},{ 8}}, {{141},{ 8}},
|
||||
{{ 77},{ 8}}, {{205},{ 8}}, {{ 45},{ 8}}, {{173},{ 8}}, {{109},{ 8}},
|
||||
{{237},{ 8}}, {{ 29},{ 8}}, {{157},{ 8}}, {{ 93},{ 8}}, {{221},{ 8}},
|
||||
{{ 61},{ 8}}, {{189},{ 8}}, {{125},{ 8}}, {{253},{ 8}}, {{ 19},{ 9}},
|
||||
{{275},{ 9}}, {{147},{ 9}}, {{403},{ 9}}, {{ 83},{ 9}}, {{339},{ 9}},
|
||||
{{211},{ 9}}, {{467},{ 9}}, {{ 51},{ 9}}, {{307},{ 9}}, {{179},{ 9}},
|
||||
{{435},{ 9}}, {{115},{ 9}}, {{371},{ 9}}, {{243},{ 9}}, {{499},{ 9}},
|
||||
{{ 11},{ 9}}, {{267},{ 9}}, {{139},{ 9}}, {{395},{ 9}}, {{ 75},{ 9}},
|
||||
{{331},{ 9}}, {{203},{ 9}}, {{459},{ 9}}, {{ 43},{ 9}}, {{299},{ 9}},
|
||||
{{171},{ 9}}, {{427},{ 9}}, {{107},{ 9}}, {{363},{ 9}}, {{235},{ 9}},
|
||||
{{491},{ 9}}, {{ 27},{ 9}}, {{283},{ 9}}, {{155},{ 9}}, {{411},{ 9}},
|
||||
{{ 91},{ 9}}, {{347},{ 9}}, {{219},{ 9}}, {{475},{ 9}}, {{ 59},{ 9}},
|
||||
{{315},{ 9}}, {{187},{ 9}}, {{443},{ 9}}, {{123},{ 9}}, {{379},{ 9}},
|
||||
{{251},{ 9}}, {{507},{ 9}}, {{ 7},{ 9}}, {{263},{ 9}}, {{135},{ 9}},
|
||||
{{391},{ 9}}, {{ 71},{ 9}}, {{327},{ 9}}, {{199},{ 9}}, {{455},{ 9}},
|
||||
{{ 39},{ 9}}, {{295},{ 9}}, {{167},{ 9}}, {{423},{ 9}}, {{103},{ 9}},
|
||||
{{359},{ 9}}, {{231},{ 9}}, {{487},{ 9}}, {{ 23},{ 9}}, {{279},{ 9}},
|
||||
{{151},{ 9}}, {{407},{ 9}}, {{ 87},{ 9}}, {{343},{ 9}}, {{215},{ 9}},
|
||||
{{471},{ 9}}, {{ 55},{ 9}}, {{311},{ 9}}, {{183},{ 9}}, {{439},{ 9}},
|
||||
{{119},{ 9}}, {{375},{ 9}}, {{247},{ 9}}, {{503},{ 9}}, {{ 15},{ 9}},
|
||||
{{271},{ 9}}, {{143},{ 9}}, {{399},{ 9}}, {{ 79},{ 9}}, {{335},{ 9}},
|
||||
{{207},{ 9}}, {{463},{ 9}}, {{ 47},{ 9}}, {{303},{ 9}}, {{175},{ 9}},
|
||||
{{431},{ 9}}, {{111},{ 9}}, {{367},{ 9}}, {{239},{ 9}}, {{495},{ 9}},
|
||||
{{ 31},{ 9}}, {{287},{ 9}}, {{159},{ 9}}, {{415},{ 9}}, {{ 95},{ 9}},
|
||||
{{351},{ 9}}, {{223},{ 9}}, {{479},{ 9}}, {{ 63},{ 9}}, {{319},{ 9}},
|
||||
{{191},{ 9}}, {{447},{ 9}}, {{127},{ 9}}, {{383},{ 9}}, {{255},{ 9}},
|
||||
{{511},{ 9}}, {{ 0},{ 7}}, {{ 64},{ 7}}, {{ 32},{ 7}}, {{ 96},{ 7}},
|
||||
{{ 16},{ 7}}, {{ 80},{ 7}}, {{ 48},{ 7}}, {{112},{ 7}}, {{ 8},{ 7}},
|
||||
{{ 72},{ 7}}, {{ 40},{ 7}}, {{104},{ 7}}, {{ 24},{ 7}}, {{ 88},{ 7}},
|
||||
{{ 56},{ 7}}, {{120},{ 7}}, {{ 4},{ 7}}, {{ 68},{ 7}}, {{ 36},{ 7}},
|
||||
{{100},{ 7}}, {{ 20},{ 7}}, {{ 84},{ 7}}, {{ 52},{ 7}}, {{116},{ 7}},
|
||||
{{ 3},{ 8}}, {{131},{ 8}}, {{ 67},{ 8}}, {{195},{ 8}}, {{ 35},{ 8}},
|
||||
{{163},{ 8}}, {{ 99},{ 8}}, {{227},{ 8}}
|
||||
};
|
||||
|
||||
local const ct_data static_dtree[D_CODES] = {
|
||||
{{ 0},{ 5}}, {{16},{ 5}}, {{ 8},{ 5}}, {{24},{ 5}}, {{ 4},{ 5}},
|
||||
{{20},{ 5}}, {{12},{ 5}}, {{28},{ 5}}, {{ 2},{ 5}}, {{18},{ 5}},
|
||||
{{10},{ 5}}, {{26},{ 5}}, {{ 6},{ 5}}, {{22},{ 5}}, {{14},{ 5}},
|
||||
{{30},{ 5}}, {{ 1},{ 5}}, {{17},{ 5}}, {{ 9},{ 5}}, {{25},{ 5}},
|
||||
{{ 5},{ 5}}, {{21},{ 5}}, {{13},{ 5}}, {{29},{ 5}}, {{ 3},{ 5}},
|
||||
{{19},{ 5}}, {{11},{ 5}}, {{27},{ 5}}, {{ 7},{ 5}}, {{23},{ 5}}
|
||||
};
|
||||
|
||||
const uch ZLIB_INTERNAL _dist_code[DIST_CODE_LEN] = {
|
||||
0, 1, 2, 3, 4, 4, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8,
|
||||
8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10,
|
||||
10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
|
||||
11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
|
||||
12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13,
|
||||
13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
|
||||
13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
|
||||
14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
|
||||
14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
|
||||
14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15, 15,
|
||||
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
|
||||
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
|
||||
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 16, 17,
|
||||
18, 18, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22, 22, 22,
|
||||
23, 23, 23, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
|
||||
24, 24, 24, 24, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
|
||||
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
|
||||
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 27, 27, 27, 27, 27, 27, 27, 27,
|
||||
27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27,
|
||||
27, 27, 27, 27, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
|
||||
28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
|
||||
28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
|
||||
28, 28, 28, 28, 28, 28, 28, 28, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
|
||||
29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
|
||||
29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
|
||||
29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29
|
||||
};
|
||||
|
||||
const uch ZLIB_INTERNAL _length_code[MAX_MATCH-MIN_MATCH+1]= {
|
||||
0, 1, 2, 3, 4, 5, 6, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 12, 12,
|
||||
13, 13, 13, 13, 14, 14, 14, 14, 15, 15, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16,
|
||||
17, 17, 17, 17, 17, 17, 17, 17, 18, 18, 18, 18, 18, 18, 18, 18, 19, 19, 19, 19,
|
||||
19, 19, 19, 19, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
|
||||
21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 22, 22, 22, 22,
|
||||
22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 23, 23, 23, 23, 23, 23, 23, 23,
|
||||
23, 23, 23, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
|
||||
24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
|
||||
25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
|
||||
25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 26, 26, 26, 26, 26, 26, 26, 26,
|
||||
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
|
||||
26, 26, 26, 26, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27,
|
||||
27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 28
|
||||
};
|
||||
|
||||
local const int base_length[LENGTH_CODES] = {
|
||||
0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 14, 16, 20, 24, 28, 32, 40, 48, 56,
|
||||
64, 80, 96, 112, 128, 160, 192, 224, 0
|
||||
};
|
||||
|
||||
local const int base_dist[D_CODES] = {
|
||||
0, 1, 2, 3, 4, 6, 8, 12, 16, 24,
|
||||
32, 48, 64, 96, 128, 192, 256, 384, 512, 768,
|
||||
1024, 1536, 2048, 3072, 4096, 6144, 8192, 12288, 16384, 24576
|
||||
};
|
||||
|
||||
@@ -0,0 +1,533 @@
|
||||
/* zconf.h -- configuration of the zlib compression library
|
||||
* Copyright (C) 1995-2016 Jean-loup Gailly, Mark Adler
|
||||
* For conditions of distribution and use, see copyright notice in zlib.h
|
||||
*/
|
||||
|
||||
/* @(#) $Id$ */
|
||||
|
||||
#ifndef ZCONF_H
|
||||
#define ZCONF_H
|
||||
|
||||
#if !defined(WINDOWS) && !defined(WIN32)
|
||||
#define HAVE_UNISTD_H
|
||||
#endif
|
||||
|
||||
/*
|
||||
* If you *really* need a unique prefix for all types and library functions,
|
||||
* compile with -DZ_PREFIX. The "standard" zlib should be compiled without it.
|
||||
* Even better than compiling with -DZ_PREFIX would be to use configure to set
|
||||
* this permanently in zconf.h using "./configure --zprefix".
|
||||
*/
|
||||
#define Z_PREFIX 1
|
||||
#ifdef Z_PREFIX /* may be set to #if 1 by ./configure */
|
||||
|
||||
/* all linked symbols and init macros */
|
||||
# define _dist_code il2cpp_z__dist_code
|
||||
# define _length_code il2cpp_z__length_code
|
||||
# define _tr_align il2cpp_z__tr_align
|
||||
# define _tr_flush_bits il2cpp_z__tr_flush_bits
|
||||
# define _tr_flush_block il2cpp_z__tr_flush_block
|
||||
# define _tr_init il2cpp_z__tr_init
|
||||
# define _tr_stored_block il2cpp_z__tr_stored_block
|
||||
# define _tr_tally il2cpp_z__tr_tally
|
||||
# define adler32 il2cpp_z_adler32
|
||||
# define adler32_combine il2cpp_z_adler32_combine
|
||||
# define adler32_combine64 il2cpp_z_adler32_combine64
|
||||
# define adler32_z il2cpp_z_adler32_z
|
||||
# ifndef Z_SOLO
|
||||
# define compress il2cpp_z_compress
|
||||
# define compress2 il2cpp_z_compress2
|
||||
# define compressBound il2cpp_z_compressBound
|
||||
# endif
|
||||
# define crc32 il2cpp_z_crc32
|
||||
# define crc32_combine il2cpp_z_crc32_combine
|
||||
# define crc32_combine64 il2cpp_z_crc32_combine64
|
||||
# define crc32_z il2cpp_z_crc32_z
|
||||
# define deflate il2cpp_z_deflate
|
||||
# define deflateBound il2cpp_z_deflateBound
|
||||
# define deflateCopy il2cpp_z_deflateCopy
|
||||
# define deflateEnd il2cpp_z_deflateEnd
|
||||
# define deflateGetDictionary il2cpp_z_deflateGetDictionary
|
||||
# define deflateInit2_ il2cpp_z_deflateInit2_
|
||||
# define deflateInit_ il2cpp_z_deflateInit_
|
||||
# define deflateParams il2cpp_z_deflateParams
|
||||
# define deflatePending il2cpp_z_deflatePending
|
||||
# define deflatePrime il2cpp_z_deflatePrime
|
||||
# define deflateReset il2cpp_z_deflateReset
|
||||
# define deflateResetKeep il2cpp_z_deflateResetKeep
|
||||
# define deflateSetDictionary il2cpp_z_deflateSetDictionary
|
||||
# define deflateSetHeader il2cpp_z_deflateSetHeader
|
||||
# define deflateTune il2cpp_z_deflateTune
|
||||
# define deflate_copyright il2cpp_z_deflate_copyright
|
||||
# define get_crc_table il2cpp_z_get_crc_table
|
||||
# ifndef Z_SOLO
|
||||
# define gz_error il2cpp_z_gz_error
|
||||
# define gz_intmax il2cpp_z_gz_intmax
|
||||
# define gz_strwinerror il2cpp_z_gz_strwinerror
|
||||
# define gzbuffer il2cpp_z_gzbuffer
|
||||
# define gzclearerr il2cpp_z_gzclearerr
|
||||
# define gzclose il2cpp_z_gzclose
|
||||
# define gzclose_r il2cpp_z_gzclose_r
|
||||
# define gzclose_w il2cpp_z_gzclose_w
|
||||
# define gzdirect il2cpp_z_gzdirect
|
||||
# define gzdopen il2cpp_z_gzdopen
|
||||
# define gzeof il2cpp_z_gzeof
|
||||
# define gzerror il2cpp_z_gzerror
|
||||
# define gzflush il2cpp_z_gzflush
|
||||
# define gzfread il2cpp_z_gzfread
|
||||
# define gzfwrite il2cpp_z_gzfwrite
|
||||
# define gzgetc_ il2cpp_z_gzgetc_
|
||||
# define gzgets il2cpp_z_gzgets
|
||||
# define gzoffset il2cpp_z_gzoffset
|
||||
# define gzoffset64 il2cpp_z_gzoffset64
|
||||
# define gzopen il2cpp_z_gzopen
|
||||
# define gzopen64 il2cpp_z_gzopen64
|
||||
# ifdef _WIN32
|
||||
# define gzopen_w il2cpp_z_gzopen_w
|
||||
# endif
|
||||
# define gzprintf il2cpp_z_gzprintf
|
||||
# define gzputc il2cpp_z_gzputc
|
||||
# define gzputs il2cpp_z_gzputs
|
||||
# define gzread il2cpp_z_gzread
|
||||
# define gzrewind il2cpp_z_gzrewind
|
||||
# define gzseek il2cpp_z_gzseek
|
||||
# define gzseek64 il2cpp_z_gzseek64
|
||||
# define gzsetparams il2cpp_z_gzsetparams
|
||||
# define gztell il2cpp_z_gztell
|
||||
# define gztell64 il2cpp_z_gztell64
|
||||
# define gzungetc il2cpp_z_gzungetc
|
||||
# define gzvprintf il2cpp_z_gzvprintf
|
||||
# define gzwrite il2cpp_z_gzwrite
|
||||
# endif
|
||||
# define inflate il2cpp_z_inflate
|
||||
# define inflateBack il2cpp_z_inflateBack
|
||||
# define inflateBackEnd il2cpp_z_inflateBackEnd
|
||||
# define inflateBackInit_ il2cpp_z_inflateBackInit_
|
||||
# define inflateCodesUsed il2cpp_z_inflateCodesUsed
|
||||
# define inflateCopy il2cpp_z_inflateCopy
|
||||
# define inflateEnd il2cpp_z_inflateEnd
|
||||
# define inflateGetDictionary il2cpp_z_inflateGetDictionary
|
||||
# define inflateGetHeader il2cpp_z_inflateGetHeader
|
||||
# define inflateInit2_ il2cpp_z_inflateInit2_
|
||||
# define inflateInit_ il2cpp_z_inflateInit_
|
||||
# define inflateMark il2cpp_z_inflateMark
|
||||
# define inflatePrime il2cpp_z_inflatePrime
|
||||
# define inflateReset il2cpp_z_inflateReset
|
||||
# define inflateReset2 il2cpp_z_inflateReset2
|
||||
# define inflateResetKeep il2cpp_z_inflateResetKeep
|
||||
# define inflateSetDictionary il2cpp_z_inflateSetDictionary
|
||||
# define inflateSync il2cpp_z_inflateSync
|
||||
# define inflateSyncPoint il2cpp_z_inflateSyncPoint
|
||||
# define inflateUndermine il2cpp_z_inflateUndermine
|
||||
# define inflateValidate il2cpp_z_inflateValidate
|
||||
# define inflate_copyright il2cpp_z_inflate_copyright
|
||||
# define inflate_fast il2cpp_z_inflate_fast
|
||||
# define inflate_table il2cpp_z_inflate_table
|
||||
# ifndef Z_SOLO
|
||||
# define uncompress il2cpp_z_uncompress
|
||||
# define uncompress2 il2cpp_z_uncompress2
|
||||
# endif
|
||||
# define zError il2cpp_z_zError
|
||||
# define z_errmsg il2cpp_z_z_errmsg
|
||||
# ifndef Z_SOLO
|
||||
# define zcalloc il2cpp_z_zcalloc
|
||||
# define zcfree il2cpp_z_zcfree
|
||||
# endif
|
||||
# define zlibCompileFlags il2cpp_z_zlibCompileFlags
|
||||
# define zlibVersion il2cpp_z_zlibVersion
|
||||
|
||||
/* all zlib typedefs in zlib.h and zconf.h */
|
||||
# define Byte il2cpp_z_Byte
|
||||
# define Bytef il2cpp_z_Bytef
|
||||
# define alloc_func il2cpp_z_alloc_func
|
||||
# define charf il2cpp_z_charf
|
||||
# define free_func il2cpp_z_free_func
|
||||
# ifndef Z_SOLO
|
||||
# define gzFile il2cpp_z_gzFile
|
||||
# endif
|
||||
# define gz_header il2cpp_z_gz_header
|
||||
# define gz_headerp il2cpp_z_gz_headerp
|
||||
# define in_func il2cpp_z_in_func
|
||||
# define intf il2cpp_z_intf
|
||||
# define out_func il2cpp_z_out_func
|
||||
# define uInt il2cpp_z_uInt
|
||||
# define uIntf il2cpp_z_uIntf
|
||||
# define uLong il2cpp_z_uLong
|
||||
# define uLongf il2cpp_z_uLongf
|
||||
# define voidp il2cpp_z_voidp
|
||||
# define voidpc il2cpp_z_voidpc
|
||||
# define voidpf il2cpp_z_voidpf
|
||||
|
||||
/* all zlib structs in zlib.h and zconf.h */
|
||||
# define gz_header_s il2cpp_z_gz_header_s
|
||||
# define internal_state il2cpp_z_internal_state
|
||||
|
||||
#endif
|
||||
|
||||
#if defined(__MSDOS__) && !defined(MSDOS)
|
||||
# define MSDOS
|
||||
#endif
|
||||
#if (defined(OS_2) || defined(__OS2__)) && !defined(OS2)
|
||||
# define OS2
|
||||
#endif
|
||||
#if defined(_WINDOWS) && !defined(WINDOWS)
|
||||
# define WINDOWS
|
||||
#endif
|
||||
#if defined(_WIN32) || defined(_WIN32_WCE) || defined(__WIN32__)
|
||||
# ifndef WIN32
|
||||
# define WIN32
|
||||
# endif
|
||||
#endif
|
||||
#if (defined(MSDOS) || defined(OS2) || defined(WINDOWS)) && !defined(WIN32)
|
||||
# if !defined(__GNUC__) && !defined(__FLAT__) && !defined(__386__)
|
||||
# ifndef SYS16BIT
|
||||
# define SYS16BIT
|
||||
# endif
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Compile with -DMAXSEG_64K if the alloc function cannot allocate more
|
||||
* than 64k bytes at a time (needed on systems with 16-bit int).
|
||||
*/
|
||||
#ifdef SYS16BIT
|
||||
# define MAXSEG_64K
|
||||
#endif
|
||||
#ifdef MSDOS
|
||||
# define UNALIGNED_OK
|
||||
#endif
|
||||
|
||||
#ifdef __STDC_VERSION__
|
||||
# ifndef STDC
|
||||
# define STDC
|
||||
# endif
|
||||
# if __STDC_VERSION__ >= 199901L
|
||||
# ifndef STDC99
|
||||
# define STDC99
|
||||
# endif
|
||||
# endif
|
||||
#endif
|
||||
#if !defined(STDC) && (defined(__STDC__) || defined(__cplusplus))
|
||||
# define STDC
|
||||
#endif
|
||||
#if !defined(STDC) && (defined(__GNUC__) || defined(__BORLANDC__))
|
||||
# define STDC
|
||||
#endif
|
||||
#if !defined(STDC) && (defined(MSDOS) || defined(WINDOWS) || defined(WIN32))
|
||||
# define STDC
|
||||
#endif
|
||||
#if !defined(STDC) && (defined(OS2) || defined(__HOS_AIX__))
|
||||
# define STDC
|
||||
#endif
|
||||
|
||||
#if defined(__OS400__) && !defined(STDC) /* iSeries (formerly AS/400). */
|
||||
# define STDC
|
||||
#endif
|
||||
|
||||
#ifndef STDC
|
||||
# ifndef const /* cannot use !defined(STDC) && !defined(const) on Mac */
|
||||
# define const /* note: need a more gentle solution here */
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if defined(ZLIB_CONST) && !defined(z_const)
|
||||
# define z_const const
|
||||
#else
|
||||
# define z_const
|
||||
#endif
|
||||
|
||||
#ifdef Z_SOLO
|
||||
typedef unsigned long z_size_t;
|
||||
#else
|
||||
# define z_longlong long long
|
||||
# if defined(NO_SIZE_T)
|
||||
typedef unsigned NO_SIZE_T z_size_t;
|
||||
# elif defined(STDC)
|
||||
# include <stddef.h>
|
||||
typedef size_t z_size_t;
|
||||
# else
|
||||
typedef unsigned long z_size_t;
|
||||
# endif
|
||||
# undef z_longlong
|
||||
#endif
|
||||
|
||||
/* Maximum value for memLevel in deflateInit2 */
|
||||
#ifndef MAX_MEM_LEVEL
|
||||
# ifdef MAXSEG_64K
|
||||
# define MAX_MEM_LEVEL 8
|
||||
# else
|
||||
# define MAX_MEM_LEVEL 9
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* Maximum value for windowBits in deflateInit2 and inflateInit2.
|
||||
* WARNING: reducing MAX_WBITS makes minigzip unable to extract .gz files
|
||||
* created by gzip. (Files created by minigzip can still be extracted by
|
||||
* gzip.)
|
||||
*/
|
||||
#ifndef MAX_WBITS
|
||||
# define MAX_WBITS 15 /* 32K LZ77 window */
|
||||
#endif
|
||||
|
||||
/* The memory requirements for deflate are (in bytes):
|
||||
(1 << (windowBits+2)) + (1 << (memLevel+9))
|
||||
that is: 128K for windowBits=15 + 128K for memLevel = 8 (default values)
|
||||
plus a few kilobytes for small objects. For example, if you want to reduce
|
||||
the default memory requirements from 256K to 128K, compile with
|
||||
make CFLAGS="-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7"
|
||||
Of course this will generally degrade compression (there's no free lunch).
|
||||
|
||||
The memory requirements for inflate are (in bytes) 1 << windowBits
|
||||
that is, 32K for windowBits=15 (default value) plus about 7 kilobytes
|
||||
for small objects.
|
||||
*/
|
||||
|
||||
/* Type declarations */
|
||||
|
||||
#ifndef OF /* function prototypes */
|
||||
# ifdef STDC
|
||||
# define OF(args) args
|
||||
# else
|
||||
# define OF(args) ()
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifndef Z_ARG /* function prototypes for stdarg */
|
||||
# if defined(STDC) || defined(Z_HAVE_STDARG_H)
|
||||
# define Z_ARG(args) args
|
||||
# else
|
||||
# define Z_ARG(args) ()
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* The following definitions for FAR are needed only for MSDOS mixed
|
||||
* model programming (small or medium model with some far allocations).
|
||||
* This was tested only with MSC; for other MSDOS compilers you may have
|
||||
* to define NO_MEMCPY in zutil.h. If you don't need the mixed model,
|
||||
* just define FAR to be empty.
|
||||
*/
|
||||
#ifdef SYS16BIT
|
||||
# if defined(M_I86SM) || defined(M_I86MM)
|
||||
/* MSC small or medium model */
|
||||
# define SMALL_MEDIUM
|
||||
# ifdef _MSC_VER
|
||||
# define FAR _far
|
||||
# else
|
||||
# define FAR far
|
||||
# endif
|
||||
# endif
|
||||
# if (defined(__SMALL__) || defined(__MEDIUM__))
|
||||
/* Turbo C small or medium model */
|
||||
# define SMALL_MEDIUM
|
||||
# ifdef __BORLANDC__
|
||||
# define FAR _far
|
||||
# else
|
||||
# define FAR far
|
||||
# endif
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if defined(WINDOWS) || defined(WIN32)
|
||||
/* If building or using zlib as a DLL, define ZLIB_DLL.
|
||||
* This is not mandatory, but it offers a little performance increase.
|
||||
*/
|
||||
# ifdef ZLIB_DLL
|
||||
# if defined(WIN32) && (!defined(__BORLANDC__) || (__BORLANDC__ >= 0x500))
|
||||
# ifdef ZLIB_INTERNAL
|
||||
# define ZEXTERN extern __declspec(dllexport)
|
||||
# else
|
||||
# define ZEXTERN extern __declspec(dllimport)
|
||||
# endif
|
||||
# endif
|
||||
# endif /* ZLIB_DLL */
|
||||
/* If building or using zlib with the WINAPI/WINAPIV calling convention,
|
||||
* define ZLIB_WINAPI.
|
||||
* Caution: the standard ZLIB1.DLL is NOT compiled using ZLIB_WINAPI.
|
||||
*/
|
||||
# ifdef ZLIB_WINAPI
|
||||
# ifdef FAR
|
||||
# undef FAR
|
||||
# endif
|
||||
# include <windows.h>
|
||||
/* No need for _export, use ZLIB.DEF instead. */
|
||||
/* For complete Windows compatibility, use WINAPI, not __stdcall. */
|
||||
# define ZEXPORT WINAPI
|
||||
# ifdef WIN32
|
||||
# define ZEXPORTVA WINAPIV
|
||||
# else
|
||||
# define ZEXPORTVA FAR CDECL
|
||||
# endif
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if defined (__BEOS__)
|
||||
# ifdef ZLIB_DLL
|
||||
# ifdef ZLIB_INTERNAL
|
||||
# define ZEXPORT __declspec(dllexport)
|
||||
# define ZEXPORTVA __declspec(dllexport)
|
||||
# else
|
||||
# define ZEXPORT __declspec(dllimport)
|
||||
# define ZEXPORTVA __declspec(dllimport)
|
||||
# endif
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifndef ZEXTERN
|
||||
# define ZEXTERN extern
|
||||
#endif
|
||||
#ifndef ZEXPORT
|
||||
# define ZEXPORT
|
||||
#endif
|
||||
#ifndef ZEXPORTVA
|
||||
# define ZEXPORTVA
|
||||
#endif
|
||||
|
||||
#ifndef FAR
|
||||
# define FAR
|
||||
#endif
|
||||
|
||||
#if !defined(__MACTYPES__)
|
||||
typedef unsigned char Byte; /* 8 bits */
|
||||
#endif
|
||||
typedef unsigned int uInt; /* 16 bits or more */
|
||||
typedef unsigned long uLong; /* 32 bits or more */
|
||||
|
||||
#ifdef SMALL_MEDIUM
|
||||
/* Borland C/C++ and some old MSC versions ignore FAR inside typedef */
|
||||
# define Bytef Byte FAR
|
||||
#else
|
||||
typedef Byte FAR Bytef;
|
||||
#endif
|
||||
typedef char FAR charf;
|
||||
typedef int FAR intf;
|
||||
typedef uInt FAR uIntf;
|
||||
typedef uLong FAR uLongf;
|
||||
|
||||
#ifdef STDC
|
||||
typedef void const *voidpc;
|
||||
typedef void FAR *voidpf;
|
||||
typedef void *voidp;
|
||||
#else
|
||||
typedef Byte const *voidpc;
|
||||
typedef Byte FAR *voidpf;
|
||||
typedef Byte *voidp;
|
||||
#endif
|
||||
|
||||
#if !defined(Z_U4) && !defined(Z_SOLO) && defined(STDC)
|
||||
# include <limits.h>
|
||||
# if (UINT_MAX == 0xffffffffUL)
|
||||
# define Z_U4 unsigned
|
||||
# elif (ULONG_MAX == 0xffffffffUL)
|
||||
# define Z_U4 unsigned long
|
||||
# elif (USHRT_MAX == 0xffffffffUL)
|
||||
# define Z_U4 unsigned short
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifdef Z_U4
|
||||
typedef Z_U4 z_crc_t;
|
||||
#else
|
||||
typedef unsigned long z_crc_t;
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_UNISTD_H /* may be set to #if 1 by ./configure */
|
||||
# define Z_HAVE_UNISTD_H
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_STDARG_H /* may be set to #if 1 by ./configure */
|
||||
# define Z_HAVE_STDARG_H
|
||||
#endif
|
||||
|
||||
#ifdef STDC
|
||||
# ifndef Z_SOLO
|
||||
# include <sys/types.h> /* for off_t */
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if defined(STDC) || defined(Z_HAVE_STDARG_H)
|
||||
# ifndef Z_SOLO
|
||||
# include <stdarg.h> /* for va_list */
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifdef _WIN32
|
||||
# ifndef Z_SOLO
|
||||
# include <stddef.h> /* for wchar_t */
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* a little trick to accommodate both "#define _LARGEFILE64_SOURCE" and
|
||||
* "#define _LARGEFILE64_SOURCE 1" as requesting 64-bit operations, (even
|
||||
* though the former does not conform to the LFS document), but considering
|
||||
* both "#undef _LARGEFILE64_SOURCE" and "#define _LARGEFILE64_SOURCE 0" as
|
||||
* equivalently requesting no 64-bit operations
|
||||
*/
|
||||
#if defined(_LARGEFILE64_SOURCE) && -_LARGEFILE64_SOURCE - -1 == 1
|
||||
# undef _LARGEFILE64_SOURCE
|
||||
#endif
|
||||
|
||||
#if defined(__WATCOMC__) && !defined(Z_HAVE_UNISTD_H)
|
||||
# define Z_HAVE_UNISTD_H
|
||||
#endif
|
||||
#ifndef Z_SOLO
|
||||
# if defined(Z_HAVE_UNISTD_H) || defined(_LARGEFILE64_SOURCE)
|
||||
# include <unistd.h> /* for SEEK_*, off_t, and _LFS64_LARGEFILE */
|
||||
# ifdef VMS
|
||||
# include <unixio.h> /* for off_t */
|
||||
# endif
|
||||
# ifndef z_off_t
|
||||
# define z_off_t off_t
|
||||
# endif
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if defined(_LFS64_LARGEFILE) && _LFS64_LARGEFILE-0
|
||||
# define Z_LFS64
|
||||
#endif
|
||||
|
||||
#if defined(_LARGEFILE64_SOURCE) && defined(Z_LFS64)
|
||||
# define Z_LARGE64
|
||||
#endif
|
||||
|
||||
#if defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS-0 == 64 && defined(Z_LFS64)
|
||||
# define Z_WANT64
|
||||
#endif
|
||||
|
||||
#if !defined(SEEK_SET) && !defined(Z_SOLO)
|
||||
# define SEEK_SET 0 /* Seek from beginning of file. */
|
||||
# define SEEK_CUR 1 /* Seek from current position. */
|
||||
# define SEEK_END 2 /* Set file pointer to EOF plus "offset" */
|
||||
#endif
|
||||
|
||||
#ifndef z_off_t
|
||||
# define z_off_t long
|
||||
#endif
|
||||
|
||||
#if !defined(_WIN32) && defined(Z_LARGE64)
|
||||
# define z_off64_t off64_t
|
||||
#else
|
||||
# if defined(_WIN32) && !defined(__GNUC__) && !defined(Z_SOLO)
|
||||
# define z_off64_t __int64
|
||||
# else
|
||||
# define z_off64_t z_off_t
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* MVS linker does not support external names larger than 8 bytes */
|
||||
#if defined(__MVS__)
|
||||
#pragma map(deflateInit_,"DEIN")
|
||||
#pragma map(deflateInit2_,"DEIN2")
|
||||
#pragma map(deflateEnd,"DEEND")
|
||||
#pragma map(deflateBound,"DEBND")
|
||||
#pragma map(inflateInit_,"ININ")
|
||||
#pragma map(inflateInit2_,"ININ2")
|
||||
#pragma map(inflateEnd,"INEND")
|
||||
#pragma map(inflateSync,"INSY")
|
||||
#pragma map(inflateSetDictionary,"INSEDI")
|
||||
#pragma map(compressBound,"CMBND")
|
||||
#pragma map(inflate_table,"INTABL")
|
||||
#pragma map(inflate_fast,"INFA")
|
||||
#pragma map(inflate_copyright,"INCOPY")
|
||||
#endif
|
||||
|
||||
#endif /* ZCONF_H */
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,271 @@
|
||||
/* zutil.h -- internal interface and configuration of the compression library
|
||||
* Copyright (C) 1995-2016 Jean-loup Gailly, Mark Adler
|
||||
* For conditions of distribution and use, see copyright notice in zlib.h
|
||||
*/
|
||||
|
||||
/* WARNING: this file should *not* be used by applications. It is
|
||||
part of the implementation of the compression library and is
|
||||
subject to change. Applications should only use zlib.h.
|
||||
*/
|
||||
|
||||
/* @(#) $Id$ */
|
||||
|
||||
#ifndef ZUTIL_H
|
||||
#define ZUTIL_H
|
||||
|
||||
#ifdef HAVE_HIDDEN
|
||||
# define ZLIB_INTERNAL __attribute__((visibility ("hidden")))
|
||||
#else
|
||||
# define ZLIB_INTERNAL
|
||||
#endif
|
||||
|
||||
#include "zlib.h"
|
||||
|
||||
#if defined(STDC) && !defined(Z_SOLO)
|
||||
# if !(defined(_WIN32_WCE) && defined(_MSC_VER))
|
||||
# include <stddef.h>
|
||||
# endif
|
||||
# include <string.h>
|
||||
# include <stdlib.h>
|
||||
#endif
|
||||
|
||||
#ifdef Z_SOLO
|
||||
typedef long ptrdiff_t; /* guess -- will be caught if guess is wrong */
|
||||
#endif
|
||||
|
||||
#ifndef local
|
||||
# define local static
|
||||
#endif
|
||||
/* since "static" is used to mean two completely different things in C, we
|
||||
define "local" for the non-static meaning of "static", for readability
|
||||
(compile with -Dlocal if your debugger can't find static symbols) */
|
||||
|
||||
typedef unsigned char uch;
|
||||
typedef uch FAR uchf;
|
||||
typedef unsigned short ush;
|
||||
typedef ush FAR ushf;
|
||||
typedef unsigned long ulg;
|
||||
|
||||
extern z_const char * const z_errmsg[10]; /* indexed by 2-zlib_error */
|
||||
/* (size given to avoid silly warnings with Visual C++) */
|
||||
|
||||
#define ERR_MSG(err) z_errmsg[Z_NEED_DICT-(err)]
|
||||
|
||||
#define ERR_RETURN(strm,err) \
|
||||
return (strm->msg = ERR_MSG(err), (err))
|
||||
/* To be used only when the state is known to be valid */
|
||||
|
||||
/* common constants */
|
||||
|
||||
#ifndef DEF_WBITS
|
||||
# define DEF_WBITS MAX_WBITS
|
||||
#endif
|
||||
/* default windowBits for decompression. MAX_WBITS is for compression only */
|
||||
|
||||
#if MAX_MEM_LEVEL >= 8
|
||||
# define DEF_MEM_LEVEL 8
|
||||
#else
|
||||
# define DEF_MEM_LEVEL MAX_MEM_LEVEL
|
||||
#endif
|
||||
/* default memLevel */
|
||||
|
||||
#define STORED_BLOCK 0
|
||||
#define STATIC_TREES 1
|
||||
#define DYN_TREES 2
|
||||
/* The three kinds of block type */
|
||||
|
||||
#define MIN_MATCH 3
|
||||
#define MAX_MATCH 258
|
||||
/* The minimum and maximum match lengths */
|
||||
|
||||
#define PRESET_DICT 0x20 /* preset dictionary flag in zlib header */
|
||||
|
||||
/* target dependencies */
|
||||
|
||||
#if defined(MSDOS) || (defined(WINDOWS) && !defined(WIN32))
|
||||
# define OS_CODE 0x00
|
||||
# ifndef Z_SOLO
|
||||
# if defined(__TURBOC__) || defined(__BORLANDC__)
|
||||
# if (__STDC__ == 1) && (defined(__LARGE__) || defined(__COMPACT__))
|
||||
/* Allow compilation with ANSI keywords only enabled */
|
||||
void _Cdecl farfree( void *block );
|
||||
void *_Cdecl farmalloc( unsigned long nbytes );
|
||||
# else
|
||||
# include <alloc.h>
|
||||
# endif
|
||||
# else /* MSC or DJGPP */
|
||||
# include <malloc.h>
|
||||
# endif
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifdef AMIGA
|
||||
# define OS_CODE 1
|
||||
#endif
|
||||
|
||||
#if defined(VAXC) || defined(VMS)
|
||||
# define OS_CODE 2
|
||||
# define F_OPEN(name, mode) \
|
||||
fopen((name), (mode), "mbc=60", "ctx=stm", "rfm=fix", "mrs=512")
|
||||
#endif
|
||||
|
||||
#ifdef __370__
|
||||
# if __TARGET_LIB__ < 0x20000000
|
||||
# define OS_CODE 4
|
||||
# elif __TARGET_LIB__ < 0x40000000
|
||||
# define OS_CODE 11
|
||||
# else
|
||||
# define OS_CODE 8
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if defined(ATARI) || defined(atarist)
|
||||
# define OS_CODE 5
|
||||
#endif
|
||||
|
||||
#ifdef OS2
|
||||
# define OS_CODE 6
|
||||
# if defined(M_I86) && !defined(Z_SOLO)
|
||||
# include <malloc.h>
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if defined(MACOS) || defined(TARGET_OS_MAC)
|
||||
# define OS_CODE 7
|
||||
# ifndef Z_SOLO
|
||||
# if defined(__MWERKS__) && __dest_os != __be_os && __dest_os != __win32_os
|
||||
# include <unix.h> /* for fdopen */
|
||||
# else
|
||||
# ifndef fdopen
|
||||
# define fdopen(fd,mode) NULL /* No fdopen() */
|
||||
# endif
|
||||
# endif
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifdef __acorn
|
||||
# define OS_CODE 13
|
||||
#endif
|
||||
|
||||
#if defined(WIN32) && !defined(__CYGWIN__)
|
||||
# define OS_CODE 10
|
||||
#endif
|
||||
|
||||
#ifdef _BEOS_
|
||||
# define OS_CODE 16
|
||||
#endif
|
||||
|
||||
#ifdef __TOS_OS400__
|
||||
# define OS_CODE 18
|
||||
#endif
|
||||
|
||||
#ifdef __APPLE__
|
||||
# define OS_CODE 19
|
||||
#endif
|
||||
|
||||
#if defined(_BEOS_) || defined(RISCOS)
|
||||
# define fdopen(fd,mode) NULL /* No fdopen() */
|
||||
#endif
|
||||
|
||||
#if (defined(_MSC_VER) && (_MSC_VER > 600)) && !defined __INTERIX
|
||||
# if defined(_WIN32_WCE)
|
||||
# define fdopen(fd,mode) NULL /* No fdopen() */
|
||||
# ifndef _PTRDIFF_T_DEFINED
|
||||
typedef int ptrdiff_t;
|
||||
# define _PTRDIFF_T_DEFINED
|
||||
# endif
|
||||
# else
|
||||
# define fdopen(fd,type) _fdopen(fd,type)
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if defined(__BORLANDC__) && !defined(MSDOS)
|
||||
#pragma warn -8004
|
||||
#pragma warn -8008
|
||||
#pragma warn -8066
|
||||
#endif
|
||||
|
||||
/* provide prototypes for these when building zlib without LFS */
|
||||
#if !defined(_WIN32) && \
|
||||
(!defined(_LARGEFILE64_SOURCE) || _LFS64_LARGEFILE-0 == 0)
|
||||
ZEXTERN uLong ZEXPORT adler32_combine64 OF((uLong, uLong, z_off_t));
|
||||
ZEXTERN uLong ZEXPORT crc32_combine64 OF((uLong, uLong, z_off_t));
|
||||
#endif
|
||||
|
||||
/* common defaults */
|
||||
|
||||
#ifndef OS_CODE
|
||||
# define OS_CODE 3 /* assume Unix */
|
||||
#endif
|
||||
|
||||
#ifndef F_OPEN
|
||||
# define F_OPEN(name, mode) fopen((name), (mode))
|
||||
#endif
|
||||
|
||||
/* functions */
|
||||
|
||||
#if defined(pyr) || defined(Z_SOLO)
|
||||
# define NO_MEMCPY
|
||||
#endif
|
||||
#if defined(SMALL_MEDIUM) && !defined(_MSC_VER) && !defined(__SC__)
|
||||
/* Use our own functions for small and medium model with MSC <= 5.0.
|
||||
* You may have to use the same strategy for Borland C (untested).
|
||||
* The __SC__ check is for Symantec.
|
||||
*/
|
||||
# define NO_MEMCPY
|
||||
#endif
|
||||
#if defined(STDC) && !defined(HAVE_MEMCPY) && !defined(NO_MEMCPY)
|
||||
# define HAVE_MEMCPY
|
||||
#endif
|
||||
#ifdef HAVE_MEMCPY
|
||||
# ifdef SMALL_MEDIUM /* MSDOS small or medium model */
|
||||
# define zmemcpy _fmemcpy
|
||||
# define zmemcmp _fmemcmp
|
||||
# define zmemzero(dest, len) _fmemset(dest, 0, len)
|
||||
# else
|
||||
# define zmemcpy memcpy
|
||||
# define zmemcmp memcmp
|
||||
# define zmemzero(dest, len) memset(dest, 0, len)
|
||||
# endif
|
||||
#else
|
||||
void ZLIB_INTERNAL zmemcpy OF((Bytef* dest, const Bytef* source, uInt len));
|
||||
int ZLIB_INTERNAL zmemcmp OF((const Bytef* s1, const Bytef* s2, uInt len));
|
||||
void ZLIB_INTERNAL zmemzero OF((Bytef* dest, uInt len));
|
||||
#endif
|
||||
|
||||
/* Diagnostic functions */
|
||||
#ifdef ZLIB_DEBUG
|
||||
# include <stdio.h>
|
||||
extern int ZLIB_INTERNAL z_verbose;
|
||||
extern void ZLIB_INTERNAL z_error OF((char *m));
|
||||
# define Assert(cond,msg) {if(!(cond)) z_error(msg);}
|
||||
# define Trace(x) {if (z_verbose>=0) fprintf x ;}
|
||||
# define Tracev(x) {if (z_verbose>0) fprintf x ;}
|
||||
# define Tracevv(x) {if (z_verbose>1) fprintf x ;}
|
||||
# define Tracec(c,x) {if (z_verbose>0 && (c)) fprintf x ;}
|
||||
# define Tracecv(c,x) {if (z_verbose>1 && (c)) fprintf x ;}
|
||||
#else
|
||||
# define Assert(cond,msg)
|
||||
# define Trace(x)
|
||||
# define Tracev(x)
|
||||
# define Tracevv(x)
|
||||
# define Tracec(c,x)
|
||||
# define Tracecv(c,x)
|
||||
#endif
|
||||
|
||||
#ifndef Z_SOLO
|
||||
voidpf ZLIB_INTERNAL zcalloc OF((voidpf opaque, unsigned items,
|
||||
unsigned size));
|
||||
void ZLIB_INTERNAL zcfree OF((voidpf opaque, voidpf ptr));
|
||||
#endif
|
||||
|
||||
#define ZALLOC(strm, items, size) \
|
||||
(*((strm)->zalloc))((strm)->opaque, (items), (size))
|
||||
#define ZFREE(strm, addr) (*((strm)->zfree))((strm)->opaque, (voidpf)(addr))
|
||||
#define TRY_FREE(s, p) {if (p) ZFREE(s, p);}
|
||||
|
||||
/* Reverse the bytes in a 32-bit value */
|
||||
#define ZSWAP32(q) ((((q) >> 24) & 0xff) + (((q) >> 8) & 0xff00) + \
|
||||
(((q) & 0xff00) << 8) + (((q) & 0xff) << 24))
|
||||
|
||||
#endif /* ZUTIL_H */
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#include "il2cpp-config.h"
|
||||
#include "il2cpp-object-internals.h"
|
||||
|
||||
extern "C"
|
||||
{
|
||||
struct ZStream;
|
||||
|
||||
IL2CPP_EXPORT intptr_t CreateZStream(int32_t compress, uint8_t gzip, Il2CppMethodPointer func, intptr_t gchandle);
|
||||
IL2CPP_EXPORT int32_t CloseZStream(intptr_t zstream);
|
||||
IL2CPP_EXPORT int32_t Flush(intptr_t zstream);
|
||||
IL2CPP_EXPORT int32_t ReadZStream(intptr_t zstream, intptr_t buffer, int32_t length);
|
||||
IL2CPP_EXPORT int32_t WriteZStream(intptr_t zstream, intptr_t buffer, int32_t length);
|
||||
}
|
||||
@@ -0,0 +1,55 @@
|
||||
#pragma once
|
||||
#include "GarbageCollector.h"
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace gc
|
||||
{
|
||||
template<typename T>
|
||||
class Allocator
|
||||
{
|
||||
public:
|
||||
typedef size_t size_type;
|
||||
typedef ptrdiff_t difference_type;
|
||||
typedef T* pointer;
|
||||
typedef const T* const_pointer;
|
||||
typedef T& reference;
|
||||
typedef const T& const_reference;
|
||||
typedef T value_type;
|
||||
typedef Allocator<T> allocator_type;
|
||||
Allocator() {}
|
||||
Allocator(const Allocator&) {}
|
||||
|
||||
pointer allocate(size_type n, const void * = 0)
|
||||
{
|
||||
T* t = (T*)GarbageCollector::AllocateFixed(n * sizeof(T), 0);
|
||||
return t;
|
||||
}
|
||||
|
||||
void deallocate(void* p, size_type)
|
||||
{
|
||||
if (p)
|
||||
{
|
||||
GarbageCollector::FreeFixed(p);
|
||||
}
|
||||
}
|
||||
|
||||
pointer address(reference x) const { return &x; }
|
||||
const_pointer address(const_reference x) const { return &x; }
|
||||
Allocator<T>& operator=(const Allocator&) { return *this; }
|
||||
void construct(pointer p, const T& val) { new((T*)p)T(val); }
|
||||
void destroy(pointer p) { p->~T(); }
|
||||
|
||||
size_type max_size() const { return size_t(-1); }
|
||||
|
||||
template<class U>
|
||||
struct rebind { typedef Allocator<U> other; };
|
||||
|
||||
template<class U>
|
||||
Allocator(const Allocator<U>&) {}
|
||||
|
||||
template<class U>
|
||||
Allocator& operator=(const Allocator<U>&) { return *this; }
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,115 @@
|
||||
#pragma once
|
||||
|
||||
#include "utils/Il2CppHashMap.h"
|
||||
#include "utils/NonCopyable.h"
|
||||
#include "GarbageCollector.h"
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace gc
|
||||
{
|
||||
template<class Key, class T,
|
||||
class HashFcn,
|
||||
class EqualKey = std::equal_to<Key> >
|
||||
class AppendOnlyGCHashMap : public il2cpp::utils::NonCopyable
|
||||
{
|
||||
typedef Il2CppHashMap<Key, size_t, HashFcn, EqualKey> hash_map_type;
|
||||
typedef typename Il2CppHashMap<Key, size_t, HashFcn, EqualKey>::const_iterator ConstIterator;
|
||||
public:
|
||||
|
||||
typedef typename hash_map_type::key_type key_type;
|
||||
typedef T data_type;
|
||||
typedef typename hash_map_type::size_type size_type;
|
||||
typedef typename hash_map_type::hasher hasher;
|
||||
typedef typename hash_map_type::key_equal key_equal;
|
||||
|
||||
AppendOnlyGCHashMap() :
|
||||
m_Data(NULL),
|
||||
m_Size(0)
|
||||
{
|
||||
}
|
||||
|
||||
~AppendOnlyGCHashMap()
|
||||
{
|
||||
if (m_Data)
|
||||
il2cpp::gc::GarbageCollector::FreeFixed(m_Data);
|
||||
}
|
||||
|
||||
bool Contains(const Key& k)
|
||||
{
|
||||
return m_Map.find(k) != m_Map.end();
|
||||
}
|
||||
|
||||
// Returns true if value was added. False if it already existed
|
||||
bool Add(const Key& k, T value)
|
||||
{
|
||||
if (m_Map.find(k) != m_Map.end())
|
||||
return false;
|
||||
|
||||
if (m_Size == 0)
|
||||
{
|
||||
m_Size = 8;
|
||||
m_Data = (T*)il2cpp::gc::GarbageCollector::AllocateFixed(m_Size * sizeof(T), NULL);
|
||||
assert(m_Data);
|
||||
}
|
||||
else if (m_Map.size() == m_Size)
|
||||
{
|
||||
size_t newSize = 2 * m_Size;
|
||||
T* newData = (T*)il2cpp::gc::GarbageCollector::AllocateFixed(newSize * sizeof(T), NULL);
|
||||
|
||||
MemCpyData memCpyData = { newData, m_Data, m_Size * sizeof(T) };
|
||||
// perform memcpy with GC lock held so GC doesn't see torn pointer values.I think this is less of an issue with Boehm than other GCs, but being safe.
|
||||
il2cpp::gc::GarbageCollector::CallWithAllocLockHeld(&CopyValues, &memCpyData);
|
||||
|
||||
il2cpp::gc::GarbageCollector::FreeFixed(m_Data);
|
||||
|
||||
GarbageCollector::SetWriteBarrier((void**)newData, m_Size * sizeof(T));
|
||||
|
||||
m_Size = newSize;
|
||||
m_Data = newData;
|
||||
assert(m_Data);
|
||||
}
|
||||
|
||||
size_t index = m_Map.size();
|
||||
m_Map.insert(std::make_pair(k, index));
|
||||
m_Data[index] = value;
|
||||
|
||||
GarbageCollector::SetWriteBarrier((void**)(m_Data + index));
|
||||
|
||||
assert(m_Map.size() <= m_Size);
|
||||
return true;
|
||||
}
|
||||
|
||||
bool TryGetValue(const Key& k, T* value)
|
||||
{
|
||||
ConstIterator iter = m_Map.find(k);
|
||||
if (iter == m_Map.end())
|
||||
return false;
|
||||
|
||||
size_t index = iter->second;
|
||||
assert(index <= m_Map.size());
|
||||
*value = m_Data[index];
|
||||
return true;
|
||||
}
|
||||
|
||||
private:
|
||||
struct MemCpyData
|
||||
{
|
||||
void* dst;
|
||||
const void* src;
|
||||
size_t size;
|
||||
};
|
||||
|
||||
static void* CopyValues(void* arg)
|
||||
{
|
||||
MemCpyData* thisPtr = (MemCpyData*)arg;
|
||||
memcpy(thisPtr->dst, thisPtr->src, thisPtr->size);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
Il2CppHashMap<Key, size_t, HashFcn, EqualKey> m_Map;
|
||||
T* m_Data;
|
||||
size_t m_Size;
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
struct Il2CppObject;
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace gc
|
||||
{
|
||||
enum GCHandleType
|
||||
{
|
||||
HANDLE_WEAK,
|
||||
HANDLE_WEAK_TRACK,
|
||||
HANDLE_NORMAL,
|
||||
HANDLE_PINNED
|
||||
};
|
||||
|
||||
class LIBIL2CPP_CODEGEN_API GCHandle
|
||||
{
|
||||
public:
|
||||
// external
|
||||
static uint32_t New(Il2CppObject *obj, bool pinned);
|
||||
static uint32_t NewWeakref(Il2CppObject *obj, bool track_resurrection);
|
||||
static Il2CppObject* GetTarget(uint32_t gchandle);
|
||||
static GCHandleType GetHandleType(uint32_t gcHandle);
|
||||
static void Free(uint32_t gchandle);
|
||||
public:
|
||||
//internal
|
||||
static int32_t GetTargetHandle(Il2CppObject * obj, int32_t handle, int32_t type);
|
||||
|
||||
typedef void(*WalkGCHandleTargetsCallback)(Il2CppObject* obj, void* context);
|
||||
static void WalkStrongGCHandleTargets(WalkGCHandleTargetsCallback callback, void* context);
|
||||
};
|
||||
} /* gc */
|
||||
} /* il2cpp */
|
||||
@@ -0,0 +1,93 @@
|
||||
#pragma once
|
||||
|
||||
struct Il2CppGuid;
|
||||
struct Il2CppIUnknown;
|
||||
struct Il2CppObject;
|
||||
struct Il2CppThread;
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace gc
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API GarbageCollector
|
||||
{
|
||||
public:
|
||||
static void Collect(int maxGeneration);
|
||||
static int32_t CollectALittle();
|
||||
static int32_t GetCollectionCount(int32_t generation);
|
||||
static int64_t GetUsedHeapSize();
|
||||
#if IL2CPP_ENABLE_WRITE_BARRIERS
|
||||
static void SetWriteBarrier(void **ptr);
|
||||
static void SetWriteBarrier(void **ptr, size_t numBytes);
|
||||
#else
|
||||
static inline void SetWriteBarrier(void **ptr) {}
|
||||
static inline void SetWriteBarrier(void **ptr, size_t numBytes) {}
|
||||
#endif
|
||||
|
||||
public:
|
||||
// internal
|
||||
typedef void (*FinalizerCallback)(void* object, void* client_data);
|
||||
|
||||
// functions implemented in a GC agnostic manner
|
||||
static void InitializeFinalizer();
|
||||
static bool IsFinalizerThread(Il2CppThread* thread);
|
||||
static int32_t GetGeneration(void* addr);
|
||||
static void UninitializeFinalizers();
|
||||
static void UninitializeGC();
|
||||
static void NotifyFinalizers();
|
||||
static void RunFinalizer(void *obj, void *data);
|
||||
static void RegisterFinalizerForNewObject(Il2CppObject* obj);
|
||||
static void RegisterFinalizer(Il2CppObject* obj);
|
||||
static void SuppressFinalizer(Il2CppObject* obj);
|
||||
static void WaitForPendingFinalizers();
|
||||
static int32_t GetMaxGeneration();
|
||||
static void AddMemoryPressure(int64_t value);
|
||||
static Il2CppIUnknown* GetOrCreateCCW(Il2CppObject* obj, const Il2CppGuid& iid);
|
||||
|
||||
// functions implemented in a GC specific manner
|
||||
static void Initialize();
|
||||
static void Enable();
|
||||
static void Disable();
|
||||
static bool IsDisabled();
|
||||
|
||||
static FinalizerCallback RegisterFinalizerWithCallback(Il2CppObject* obj, FinalizerCallback callback);
|
||||
|
||||
static int64_t GetAllocatedHeapSize();
|
||||
|
||||
static void* MakeDescriptorForObject(size_t *bitmap, int numbits);
|
||||
static void* MakeDescriptorForString();
|
||||
static void* MakeDescriptorForArray();
|
||||
|
||||
static void* AllocateFixed(size_t size, void *descr);
|
||||
static void FreeFixed(void* addr);
|
||||
|
||||
static bool RegisterThread(void *baseptr);
|
||||
static bool UnregisterThread();
|
||||
|
||||
static bool HasPendingFinalizers();
|
||||
static int32_t InvokeFinalizers();
|
||||
|
||||
static void AddWeakLink(void **link_addr, Il2CppObject *obj, bool track);
|
||||
static void RemoveWeakLink(void **link_addr);
|
||||
static Il2CppObject *GetWeakLink(void **link_addr);
|
||||
|
||||
/* Used by liveness code */
|
||||
static void StopWorld();
|
||||
static void StartWorld();
|
||||
|
||||
typedef void (*HeapSectionCallback) (void* user_data, void* start, void* end);
|
||||
static void ForEachHeapSection(void* user_data, HeapSectionCallback callback);
|
||||
static size_t GetSectionCount();
|
||||
|
||||
typedef void* (*GCCallWithAllocLockCallback)(void* user_data);
|
||||
static void* CallWithAllocLockHeld(GCCallWithAllocLockCallback callback, void* user_data);
|
||||
|
||||
static void RegisterRoot(char *start, size_t size);
|
||||
static void UnregisterRoot(char* start);
|
||||
|
||||
#if NET_4_0
|
||||
static void SetSkipThread(bool skip);
|
||||
#endif
|
||||
};
|
||||
} /* namespace vm */
|
||||
} /* namespace il2cpp */
|
||||
@@ -0,0 +1,15 @@
|
||||
#pragma once
|
||||
|
||||
struct Il2CppObject;
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace gc
|
||||
{
|
||||
class WriteBarrier
|
||||
{
|
||||
public:
|
||||
static void GenericStore(void* ptr, Il2CppObject* value);
|
||||
};
|
||||
} /* gc */
|
||||
} /* il2cpp */
|
||||
@@ -0,0 +1,27 @@
|
||||
#pragma once
|
||||
|
||||
#include "il2cpp-config.h"
|
||||
|
||||
#if IL2CPP_GC_BOEHM
|
||||
|
||||
/* here is the defines we build Boehm with */
|
||||
#define IGNORE_DYNAMIC_LOADING 1
|
||||
#define GC_DONT_REGISTER_MAIN_STATIC_DATA 1
|
||||
#if IL2CPP_HAS_GC_DESCRIPTORS
|
||||
#define GC_GCJ_SUPPORT 1
|
||||
#endif
|
||||
#if IL2CPP_SUPPORT_THREADS
|
||||
#define GC_THREADS 1
|
||||
#endif
|
||||
|
||||
#include "gc.h"
|
||||
#include "gc_typed.h"
|
||||
#include "gc_mark.h"
|
||||
#include "gc_gcj.h"
|
||||
|
||||
#define GC_NO_DESCRIPTOR ((void*)(0 | GC_DS_LENGTH))
|
||||
|
||||
#else
|
||||
#define GC_NO_DESCRIPTOR ((void*)0)
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,180 @@
|
||||
#include "icalls/mscorlib/Mono.Globalization.Unicode/Normalization.h"
|
||||
|
||||
#include "icalls/mscorlib/Mono.Interop/ComInteropProxy.h"
|
||||
|
||||
#include "icalls/mscorlib/Mono/Runtime.h"
|
||||
|
||||
#include "icalls/mscorlib/Mono.Security.Cryptography/KeyPairPersistence.h"
|
||||
|
||||
#include "icalls/mscorlib/Mono.Unity/UnityTls.h"
|
||||
|
||||
#include "icalls/mscorlib/System/__ComObject.h"
|
||||
|
||||
#include "icalls/mscorlib/System/Activator.h"
|
||||
#include "icalls/mscorlib/System/AppDomain.h"
|
||||
#include "icalls/mscorlib/System/ArgIterator.h"
|
||||
#include "icalls/mscorlib/System/Array.h"
|
||||
#include "icalls/mscorlib/System/Buffer.h"
|
||||
#include "icalls/mscorlib/System/Char.h"
|
||||
#include "icalls/mscorlib/System/CLRConfig.h"
|
||||
#include "icalls/mscorlib/System/Convert.h"
|
||||
#include "icalls/mscorlib/System/ConsoleDriver.h"
|
||||
#include "icalls/mscorlib/System/CurrentSystemTimeZone.h"
|
||||
#include "icalls/mscorlib/System/DateTime.h"
|
||||
#include "icalls/mscorlib/System/Decimal.h"
|
||||
#include "icalls/mscorlib/System/Delegate.h"
|
||||
|
||||
#include "icalls/mscorlib/System.Diagnostics/Assert.h"
|
||||
#include "icalls/mscorlib/System.Diagnostics/Debugger.h"
|
||||
#include "icalls/mscorlib/System.Diagnostics/StackFrame.h"
|
||||
#include "icalls/mscorlib/System.Diagnostics/StackTrace.h"
|
||||
#include "icalls/mscorlib/System/Double.h"
|
||||
|
||||
#include "icalls/mscorlib/System/Enum.h"
|
||||
#include "icalls/mscorlib/System/Environment.h"
|
||||
#include "icalls/mscorlib/System/Exception.h"
|
||||
#include "icalls/mscorlib/System/GC.h"
|
||||
|
||||
#include "icalls/mscorlib/System.Globalization/CalendarData.h"
|
||||
#include "icalls/mscorlib/System.Globalization/CompareInfo.h"
|
||||
#include "icalls/mscorlib/System.Globalization/CultureData.h"
|
||||
#include "icalls/mscorlib/System.Globalization/CultureInfo.h"
|
||||
#include "icalls/mscorlib/System.Globalization/RegionInfo.h"
|
||||
#include "icalls/mscorlib/System.IO/DriveInfo.h"
|
||||
#include "icalls/mscorlib/System.IO/MonoIO.h"
|
||||
#include "icalls/mscorlib/System.IO/Path.h"
|
||||
#include "icalls/mscorlib/System/Math.h"
|
||||
#include "icalls/mscorlib/System/MissingMemberException.h"
|
||||
#include "icalls/mscorlib/System/MonoCustomAttrs.h"
|
||||
#include "icalls/mscorlib/System/MonoEnumInfo.h"
|
||||
#include "icalls/mscorlib/System/MonoType.h"
|
||||
#include "icalls/mscorlib/System/Number.h"
|
||||
#include "icalls/mscorlib/System/NumberFormatter.h"
|
||||
#include "icalls/mscorlib/System/Object.h"
|
||||
|
||||
#include "icalls/mscorlib/System.Reflection/Assembly.h"
|
||||
#include "icalls/mscorlib/System.Reflection/AssemblyName.h"
|
||||
#include "icalls/mscorlib/System.Reflection/CustomAttributeData.h"
|
||||
|
||||
#include "icalls/mscorlib/System.Reflection.Emit/AssemblyBuilder.h"
|
||||
#include "icalls/mscorlib/System.Reflection.Emit/CustomAttributeBuilder.h"
|
||||
#include "icalls/mscorlib/System.Reflection.Emit/DerivedType.h"
|
||||
#include "icalls/mscorlib/System.Reflection.Emit/DynamicMethod.h"
|
||||
#include "icalls/mscorlib/System.Reflection.Emit/EnumBuilder.h"
|
||||
#include "icalls/mscorlib/System.Reflection.Emit/GenericTypeParameterBuilder.h"
|
||||
#include "icalls/mscorlib/System.Reflection.Emit/MethodBuilder.h"
|
||||
#include "icalls/mscorlib/System.Reflection.Emit/ModuleBuilder.h"
|
||||
#include "icalls/mscorlib/System.Reflection.Emit/SignatureHelper.h"
|
||||
#include "icalls/mscorlib/System.Reflection.Emit/SymbolType.h"
|
||||
#include "icalls/mscorlib/System.Reflection.Emit/TypeBuilder.h"
|
||||
|
||||
#include "icalls/mscorlib/System.Reflection/FieldInfo.h"
|
||||
#include "icalls/mscorlib/System.Reflection/MemberInfo.h"
|
||||
#include "icalls/mscorlib/System.Reflection/MethodBase.h"
|
||||
#include "icalls/mscorlib/System.Reflection/Module.h"
|
||||
#include "icalls/mscorlib/System.Reflection/MonoCMethod.h"
|
||||
#include "icalls/mscorlib/System.Reflection/MonoEventInfo.h"
|
||||
#include "icalls/mscorlib/System.Reflection/MonoField.h"
|
||||
#include "icalls/mscorlib/System.Reflection/MonoGenericClass.h"
|
||||
#include "icalls/mscorlib/System.Reflection/MonoGenericCMethod.h"
|
||||
#include "icalls/mscorlib/System.Reflection/MonoGenericMethod.h"
|
||||
#include "icalls/mscorlib/System.Reflection/MonoMethod.h"
|
||||
#include "icalls/mscorlib/System.Reflection/MonoMethodInfo.h"
|
||||
#include "icalls/mscorlib/System.Reflection/MonoPropertyInfo.h"
|
||||
#include "icalls/mscorlib/System.Reflection/ParameterInfo.h"
|
||||
#include "icalls/mscorlib/System.Reflection/RtFieldInfo.h"
|
||||
|
||||
#include "icalls/mscorlib/System.Runtime.CompilerServices/RuntimeHelpers.h"
|
||||
|
||||
#include "icalls/mscorlib/System.Runtime.InteropServices/GCHandle.h"
|
||||
#include "icalls/mscorlib/System.Runtime.InteropServices/Marshal.h"
|
||||
#include "icalls/mscorlib/System.Runtime.InteropServices.WindowsRuntime/UnsafeNativeMethods.h"
|
||||
|
||||
#include "icalls/mscorlib/System.Runtime.Remoting.Activation/ActivationServices.h"
|
||||
#include "icalls/mscorlib/System.Runtime.Remoting.Contexts/Context.h"
|
||||
#include "icalls/mscorlib/System.Runtime.Remoting.Messaging/AsyncResult.h"
|
||||
#include "icalls/mscorlib/System.Runtime.Remoting.Messaging/MonoMethodMessage.h"
|
||||
#include "icalls/mscorlib/System.Runtime.Remoting.Proxies/RealProxy.h"
|
||||
#include "icalls/mscorlib/System.Runtime.Remoting/RemotingServices.h"
|
||||
#include "icalls/mscorlib/System.Runtime.Versioning/VersioningHelper.h"
|
||||
|
||||
#include "icalls/mscorlib/System/RuntimeFieldHandle.h"
|
||||
#include "icalls/mscorlib/System/RuntimeMethodHandle.h"
|
||||
#include "icalls/mscorlib/System/RuntimeTypeHandle.h"
|
||||
#include "icalls/mscorlib/System/RuntimeType.h"
|
||||
|
||||
#include "icalls/mscorlib/System.Security.Cryptography/RNGCryptoServiceProvider.h"
|
||||
|
||||
#include "icalls/mscorlib/System.Security.Policy/Evidence.h"
|
||||
|
||||
#include "icalls/mscorlib/System.Security.Principal/WindowsIdentity.h"
|
||||
|
||||
#include "icalls/mscorlib/System.Security.Principal/WindowsImpersonationContext.h"
|
||||
#include "icalls/mscorlib/System.Security.Principal/WindowsPrincipal.h"
|
||||
#include "icalls/mscorlib/System.Security/SecurityFrame.h"
|
||||
|
||||
#include "icalls/mscorlib/System.Security/SecurityManager.h"
|
||||
#include "icalls/mscorlib/System/SizedReference.h"
|
||||
#include "icalls/mscorlib/System/String.h"
|
||||
|
||||
#include "icalls/mscorlib/System.Text/Encoding.h"
|
||||
#include "icalls/mscorlib/System.Text/EncodingHelper.h"
|
||||
#include "icalls/mscorlib/System.Text/Normalization.h"
|
||||
|
||||
#include "icalls/mscorlib/System.Threading/Interlocked.h"
|
||||
#include "icalls/mscorlib/System.Threading/InternalThread.h"
|
||||
#include "icalls/mscorlib/System.Threading/Monitor.h"
|
||||
#include "icalls/mscorlib/System.Threading/Mutex.h"
|
||||
#include "icalls/mscorlib/System.Threading/NativeEventCalls.h"
|
||||
#include "icalls/mscorlib/System.Threading/Timer.h"
|
||||
#include "icalls/mscorlib/System.Threading/Thread.h"
|
||||
#include "icalls/mscorlib/System.Threading/ThreadPool.h"
|
||||
#include "icalls/mscorlib/System.Threading/WaitHandle.h"
|
||||
#include "icalls/mscorlib/System/TimeSpan.h"
|
||||
#include "icalls/mscorlib/System/TimeZoneInfo.h"
|
||||
#include "icalls/mscorlib/System/Type.h"
|
||||
#include "icalls/mscorlib/System/TypedReference.h"
|
||||
#include "icalls/mscorlib/System/ValueType.h"
|
||||
|
||||
#include "icalls/System/Microsoft.Win32/NativeMethods.h"
|
||||
#include "icalls/System/Mono.Net.Security/MonoTlsProviderFactory.h"
|
||||
|
||||
#include "icalls/System.Configuration/System.Configuration/InternalConfigurationHost.h"
|
||||
#include "icalls/System.Core/System.IO.MemoryMappedFiles/MemoryMapImpl.h"
|
||||
|
||||
#include "icalls/System/System.ComponentModel/Win32Exception.h"
|
||||
#include "icalls/System/System.Configuration/DefaultConfig.h"
|
||||
#include "icalls/System/System.Configuration/InternalConfigurationHost.h"
|
||||
|
||||
#include "icalls/System/System.IO/FAMWatcher.h"
|
||||
#include "icalls/System/System.IO/FileSystemWatcher.h"
|
||||
#include "icalls/System/System.IO/InotifyWatcher.h"
|
||||
#include "icalls/System/System.IO/KqueueMonitor.h"
|
||||
#include "icalls/System/System/IOSelector.h"
|
||||
|
||||
#include "icalls/System/System.Diagnostics/DefaultTraceListener.h"
|
||||
#include "icalls/System/System.Diagnostics/FileVersionInfo.h"
|
||||
#include "icalls/System/System.Diagnostics/PerformanceCounter.h"
|
||||
#include "icalls/System/System.Diagnostics/PerformanceCounterCategory.h"
|
||||
#include "icalls/System/System.Diagnostics/Process.h"
|
||||
#include "icalls/System/System.Diagnostics/Stopwatch.h"
|
||||
|
||||
#include "icalls/System/System.Net/Dns.h"
|
||||
|
||||
#include "icalls/System/System.Net.NetworkInformation/LinuxNetworkInterface.h"
|
||||
#include "icalls/System/System.Net.NetworkInformation/MacOsIPInterfaceProperties.h"
|
||||
#include "icalls/System/System.Net.Sockets/Socket.h"
|
||||
#include "icalls/System/System.Net.Sockets/SocketException.h"
|
||||
|
||||
#include "icalls/System/System.Threading/Semaphore.h"
|
||||
|
||||
#include "mono/ThreadPool/threadpool-ms.h"
|
||||
#include "mono/ThreadPool/threadpool-ms-io.h"
|
||||
|
||||
#include "icalls/mscorlib/Mono/SafeStringMarshal.h"
|
||||
#include "icalls/mscorlib/Mono/RuntimeMarshal.h"
|
||||
#include "icalls/mscorlib/Mono/RuntimeGPtrArrayHandle.h"
|
||||
#include "icalls/mscorlib/Mono/RuntimeClassHandle.h"
|
||||
|
||||
#include "icalls/mscorlib/System.Reflection/EventInfo.h"
|
||||
#include "icalls/mscorlib/System.Reflection/PropertyInfo.h"
|
||||
+29
@@ -0,0 +1,29 @@
|
||||
#pragma once
|
||||
|
||||
#if NET_4_0
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace Configuration
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace Configuration
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API InternalConfigurationHost
|
||||
{
|
||||
public:
|
||||
static Il2CppString* get_bundled_app_config();
|
||||
};
|
||||
} // namespace Configuration
|
||||
} // namespace System
|
||||
} // namespace Configuration
|
||||
} // namespace System
|
||||
} // namespace icalls
|
||||
} // namespace il2cpp
|
||||
|
||||
#endif
|
||||
+38
@@ -0,0 +1,38 @@
|
||||
#pragma once
|
||||
|
||||
#if NET_4_0
|
||||
#include "il2cpp-object-internals.h"
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace Core
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace IO
|
||||
{
|
||||
namespace MemoryMappedFiles
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API MemoryMapImpl
|
||||
{
|
||||
public:
|
||||
static bool Unmap(intptr_t mmap_handle);
|
||||
static int32_t MapInternal(intptr_t handle, int64_t offset, int64_t* size, int32_t access, intptr_t* mmap_handle, intptr_t* base_address);
|
||||
static intptr_t OpenFileInternal(Il2CppString* path, int32_t mode, Il2CppString* mapName, int64_t* capacity, int32_t access, int32_t options, int32_t* error);
|
||||
static intptr_t OpenHandleInternal(intptr_t handle, Il2CppString* mapName, int64_t* capacity, int32_t access, int32_t options, int32_t* error);
|
||||
static void CloseMapping(intptr_t handle);
|
||||
static void ConfigureHandleInheritability(intptr_t handle, int32_t inheritability);
|
||||
static void Flush(intptr_t mmap_handle);
|
||||
};
|
||||
} // namespace MemoryMappedFiles
|
||||
} // namespace IO
|
||||
} // namespace System
|
||||
} // namespace Core
|
||||
} // namespace System
|
||||
} // namespace icalls
|
||||
} // namespace il2cpp
|
||||
#endif
|
||||
+36
@@ -0,0 +1,36 @@
|
||||
#pragma once
|
||||
|
||||
#if NET_4_0
|
||||
#include "il2cpp-object-internals.h"
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace Microsoft
|
||||
{
|
||||
namespace Win32
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API NativeMethods
|
||||
{
|
||||
public:
|
||||
static bool CloseProcess(intptr_t handle);
|
||||
static bool GetExitCodeProcess(intptr_t processHandle, int32_t* exitCode);
|
||||
static bool GetProcessTimes(intptr_t handle, int64_t* creation, int64_t* exit, int64_t* kernel, int64_t* user);
|
||||
static bool GetProcessWorkingSetSize(intptr_t handle, intptr_t* min, intptr_t* max);
|
||||
static bool SetPriorityClass(intptr_t handle, int32_t priorityClass);
|
||||
static bool SetProcessWorkingSetSize(intptr_t handle, intptr_t min, intptr_t max);
|
||||
static bool TerminateProcess(intptr_t processHandle, int32_t exitCode);
|
||||
static int32_t GetCurrentProcessId();
|
||||
static int32_t GetPriorityClass(intptr_t handle);
|
||||
static int32_t WaitForInputIdle(intptr_t handle, int32_t milliseconds);
|
||||
static intptr_t GetCurrentProcess();
|
||||
};
|
||||
} // namespace Win32
|
||||
} // namespace Microsoft
|
||||
} // namespace System
|
||||
} // namespace icalls
|
||||
} // namespace il2cpp
|
||||
#endif
|
||||
+32
@@ -0,0 +1,32 @@
|
||||
#pragma once
|
||||
|
||||
#if NET_4_0
|
||||
|
||||
struct Il2CppString;
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace Mono
|
||||
{
|
||||
namespace Net
|
||||
{
|
||||
namespace Security
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API MonoTlsProviderFactory
|
||||
{
|
||||
public:
|
||||
static bool IsBtlsSupported();
|
||||
static Il2CppString* GetDefaultProviderForPlatform();
|
||||
};
|
||||
} // namespace Security
|
||||
} // namespace Net
|
||||
} // namespace Mono
|
||||
} // namespace System
|
||||
} // namespace icalls
|
||||
} // namespace il2cpp
|
||||
|
||||
#endif
|
||||
+27
@@ -0,0 +1,27 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
#include "il2cpp-config.h"
|
||||
|
||||
struct Il2CppString;
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace ComponentModel
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API Win32Exception
|
||||
{
|
||||
public:
|
||||
static Il2CppString *W32ErrorMessage(int32_t code);
|
||||
};
|
||||
} /* namespace ComponentModel */
|
||||
} /* namespace System */
|
||||
} /* namespace System */
|
||||
} /* namespace icalls */
|
||||
} /* namespace il2cpp */
|
||||
+39
@@ -0,0 +1,39 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
#include "il2cpp-object-internals.h"
|
||||
#include "il2cpp-config.h"
|
||||
|
||||
struct Il2CppObject;
|
||||
struct Il2CppDelegate;
|
||||
struct Il2CppReflectionType;
|
||||
struct Il2CppReflectionMethod;
|
||||
struct Il2CppReflectionField;
|
||||
struct Il2CppArray;
|
||||
struct Il2CppException;
|
||||
struct Il2CppReflectionModule;
|
||||
struct Il2CppAssembly;
|
||||
struct Il2CppAssemblyName;
|
||||
struct Il2CppAppDomain;
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace Configuration
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API DefaultConfig
|
||||
{
|
||||
public:
|
||||
static Il2CppString* get_machine_config_path();
|
||||
static Il2CppString* get_bundled_machine_config();
|
||||
};
|
||||
} /* namespace Configuration */
|
||||
} /* namespace System */
|
||||
} /* namespace System */
|
||||
} /* namespace icalls */
|
||||
} /* namespace il2cpp */
|
||||
+25
@@ -0,0 +1,25 @@
|
||||
#pragma once
|
||||
|
||||
#include "il2cpp-config.h"
|
||||
struct Il2CppString;
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace Configuration
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API InternalConfigurationHost
|
||||
{
|
||||
public:
|
||||
static Il2CppString* get_bundled_machine_config();
|
||||
};
|
||||
} /* namespace Configuration */
|
||||
} /* namespace System */
|
||||
} /* namespace System */
|
||||
} /* namespace icalls */
|
||||
} /* namespace il2cpp */
|
||||
+38
@@ -0,0 +1,38 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
#include "il2cpp-config.h"
|
||||
#include "il2cpp-object-internals.h"
|
||||
|
||||
struct Il2CppObject;
|
||||
struct Il2CppDelegate;
|
||||
struct Il2CppReflectionType;
|
||||
struct Il2CppReflectionMethod;
|
||||
struct Il2CppReflectionField;
|
||||
struct Il2CppArray;
|
||||
struct Il2CppException;
|
||||
struct Il2CppReflectionModule;
|
||||
struct Il2CppAssembly;
|
||||
struct Il2CppAssemblyName;
|
||||
struct Il2CppAppDomain;
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace Diagnostics
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API DefaultTraceListener
|
||||
{
|
||||
public:
|
||||
static void WriteWindowsDebugString(Il2CppString* message);
|
||||
};
|
||||
} /* namespace Diagnostics */
|
||||
} /* namespace System */
|
||||
} /* namespace System */
|
||||
} /* namespace icalls */
|
||||
} /* namespace il2cpp */
|
||||
+38
@@ -0,0 +1,38 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
#include "il2cpp-config.h"
|
||||
#include "il2cpp-object-internals.h"
|
||||
|
||||
struct Il2CppObject;
|
||||
struct Il2CppDelegate;
|
||||
struct Il2CppReflectionType;
|
||||
struct Il2CppReflectionMethod;
|
||||
struct Il2CppReflectionField;
|
||||
struct Il2CppArray;
|
||||
struct Il2CppException;
|
||||
struct Il2CppReflectionModule;
|
||||
struct Il2CppAssembly;
|
||||
struct Il2CppAssemblyName;
|
||||
struct Il2CppAppDomain;
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace Diagnostics
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API FileVersionInfo
|
||||
{
|
||||
public:
|
||||
static void GetVersionInfo_internal(void* /* System.Diagnostics.FileVersionInfo */ self, Il2CppString* fileName);
|
||||
};
|
||||
} /* namespace Diagnostics */
|
||||
} /* namespace System */
|
||||
} /* namespace System */
|
||||
} /* namespace icalls */
|
||||
} /* namespace il2cpp */
|
||||
+43
@@ -0,0 +1,43 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
#include "il2cpp-config.h"
|
||||
#include "il2cpp-object-internals.h"
|
||||
|
||||
struct Il2CppObject;
|
||||
struct Il2CppDelegate;
|
||||
struct Il2CppReflectionType;
|
||||
struct Il2CppReflectionMethod;
|
||||
struct Il2CppReflectionField;
|
||||
struct Il2CppArray;
|
||||
struct Il2CppException;
|
||||
struct Il2CppReflectionModule;
|
||||
struct Il2CppAssembly;
|
||||
struct Il2CppAssemblyName;
|
||||
struct Il2CppAppDomain;
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace Diagnostics
|
||||
{
|
||||
struct Il2CppCounterSample;
|
||||
|
||||
class LIBIL2CPP_CODEGEN_API PerformanceCounter
|
||||
{
|
||||
public:
|
||||
static void FreeData(intptr_t impl);
|
||||
static bool GetSample(intptr_t impl, bool only_value, Il2CppCounterSample* sample);
|
||||
static int64_t UpdateValue(intptr_t impl, bool do_incr, int64_t value);
|
||||
static intptr_t GetImpl(Il2CppString* category, Il2CppString* counter, Il2CppString* instance, Il2CppString* machine, int* type, bool* custom);
|
||||
};
|
||||
} /* namespace Diagnostics */
|
||||
} /* namespace System */
|
||||
} /* namespace System */
|
||||
} /* namespace icalls */
|
||||
} /* namespace il2cpp */
|
||||
+47
@@ -0,0 +1,47 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
#include "il2cpp-config.h"
|
||||
#include "il2cpp-object-internals.h"
|
||||
|
||||
struct Il2CppObject;
|
||||
struct Il2CppDelegate;
|
||||
struct Il2CppReflectionType;
|
||||
struct Il2CppReflectionMethod;
|
||||
struct Il2CppReflectionField;
|
||||
struct Il2CppArray;
|
||||
struct Il2CppException;
|
||||
struct Il2CppReflectionModule;
|
||||
struct Il2CppAssembly;
|
||||
struct Il2CppAssemblyName;
|
||||
struct Il2CppAppDomain;
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace Diagnostics
|
||||
{
|
||||
typedef int32_t PerformanceCounterCategoryType;
|
||||
|
||||
class LIBIL2CPP_CODEGEN_API PerformanceCounterCategory
|
||||
{
|
||||
public:
|
||||
static Il2CppString* CategoryHelpInternal(Il2CppString* category, Il2CppString* machine);
|
||||
static bool CounterCategoryExists(Il2CppString* counter, Il2CppString* category, Il2CppString* machine);
|
||||
static bool Create(Il2CppString* categoryName, Il2CppString* categoryHelp, PerformanceCounterCategoryType categoryType, Il2CppArray* items);
|
||||
static Il2CppArray* GetCategoryNames(Il2CppString* machine);
|
||||
static Il2CppArray* GetCounterNames(Il2CppString* category, Il2CppString* machine);
|
||||
static Il2CppArray* GetInstanceNames(Il2CppString* category, Il2CppString* machine);
|
||||
static int32_t InstanceExistsInternal(Il2CppString* instance, Il2CppString* category, Il2CppString* machine);
|
||||
static bool CategoryDelete(Il2CppString* name);
|
||||
};
|
||||
} /* namespace Diagnostics */
|
||||
} /* namespace System */
|
||||
} /* namespace System */
|
||||
} /* namespace icalls */
|
||||
} /* namespace il2cpp */
|
||||
+262
@@ -0,0 +1,262 @@
|
||||
#pragma once
|
||||
|
||||
#include "il2cpp-class-internals.h"
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace Diagnostics
|
||||
{
|
||||
struct CategoryDesc
|
||||
{
|
||||
const char *name;
|
||||
const char *help;
|
||||
unsigned char id;
|
||||
signed int type : 2;
|
||||
unsigned int instance_type : 6;
|
||||
short first_counter;
|
||||
};
|
||||
|
||||
#define PERFCTR_CAT(id, name, help, type, inst, first_counter) CATEGORY_ ## id,
|
||||
#define PERFCTR_COUNTER(id, name, help, type, field)
|
||||
enum
|
||||
{
|
||||
#include "perfcounters-def.h"
|
||||
NUM_CATEGORIES
|
||||
};
|
||||
|
||||
#undef PERFCTR_CAT
|
||||
#undef PERFCTR_COUNTER
|
||||
#define PERFCTR_CAT(id, name, help, type, inst, first_counter) CATEGORY_START_ ## id = -1,
|
||||
#define PERFCTR_COUNTER(id, name, help, type, field) COUNTER_ ## id,
|
||||
/* each counter is assigned an id starting from 0 inside the category */
|
||||
enum
|
||||
{
|
||||
#include "perfcounters-def.h"
|
||||
END_COUNTERS
|
||||
};
|
||||
|
||||
#undef PERFCTR_CAT
|
||||
#undef PERFCTR_COUNTER
|
||||
#define PERFCTR_CAT(id, name, help, type, inst, first_counter)
|
||||
#define PERFCTR_COUNTER(id, name, help, type, field) CCOUNTER_ ## id,
|
||||
/* this is used just to count the number of counters */
|
||||
enum
|
||||
{
|
||||
#include "perfcounters-def.h"
|
||||
NUM_COUNTERS
|
||||
};
|
||||
|
||||
struct CounterDesc
|
||||
{
|
||||
const char *name;
|
||||
const char *help;
|
||||
short id;
|
||||
unsigned short offset; // offset inside Il2CppPerfCounters
|
||||
int type;
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
FTYPE_CATEGORY = 'C',
|
||||
FTYPE_DELETED = 'D',
|
||||
FTYPE_PREDEF_INSTANCE = 'P', // an instance of a predef counter
|
||||
FTYPE_INSTANCE = 'I',
|
||||
FTYPE_DIRTY = 'd',
|
||||
FTYPE_END = 0
|
||||
};
|
||||
|
||||
struct SharedHeader
|
||||
{
|
||||
unsigned char ftype;
|
||||
unsigned char extra;
|
||||
unsigned short size;
|
||||
};
|
||||
|
||||
struct SharedCategory
|
||||
{
|
||||
SharedHeader header;
|
||||
unsigned short num_counters;
|
||||
unsigned short counters_data_size;
|
||||
int num_instances;
|
||||
/* variable length data follows */
|
||||
char name[1];
|
||||
// string name
|
||||
// string help
|
||||
// SharedCounter counters_info [num_counters]
|
||||
};
|
||||
|
||||
struct SharedInstance
|
||||
{
|
||||
SharedHeader header;
|
||||
size_t category_offset;
|
||||
/* variable length data follows */
|
||||
char instance_name[1];
|
||||
// string name
|
||||
};
|
||||
|
||||
struct SharedCounter
|
||||
{
|
||||
unsigned char type;
|
||||
uint8_t seq_num;
|
||||
/* variable length data follows */
|
||||
char name[1];
|
||||
// string name
|
||||
// string help
|
||||
};
|
||||
|
||||
struct CatSearch
|
||||
{
|
||||
Il2CppString *name;
|
||||
SharedCategory *cat;
|
||||
};
|
||||
|
||||
/* map of PerformanceCounterType.cs */
|
||||
enum
|
||||
{
|
||||
NumberOfItemsHEX32 = 0x00000000,
|
||||
NumberOfItemsHEX64 = 0x00000100,
|
||||
NumberOfItems32 = 0x00010000,
|
||||
NumberOfItems64 = 0x00010100,
|
||||
CounterDelta32 = 0x00400400,
|
||||
CounterDelta64 = 0x00400500,
|
||||
SampleCounter = 0x00410400,
|
||||
CountPerTimeInterval32 = 0x00450400,
|
||||
CountPerTimeInterval64 = 0x00450500,
|
||||
RateOfCountsPerSecond32 = 0x10410400,
|
||||
RateOfCountsPerSecond64 = 0x10410500,
|
||||
RawFraction = 0x20020400,
|
||||
CounterTimer = 0x20410500,
|
||||
Timer100Ns = 0x20510500,
|
||||
SampleFraction = 0x20C20400,
|
||||
CounterTimerInverse = 0x21410500,
|
||||
Timer100NsInverse = 0x21510500,
|
||||
CounterMultiTimer = 0x22410500,
|
||||
CounterMultiTimer100Ns = 0x22510500,
|
||||
CounterMultiTimerInverse = 0x23410500,
|
||||
CounterMultiTimer100NsInverse = 0x23510500,
|
||||
AverageTimer32 = 0x30020400,
|
||||
ElapsedTime = 0x30240500,
|
||||
AverageCount64 = 0x40020500,
|
||||
SampleBase = 0x40030401,
|
||||
AverageBase = 0x40030402,
|
||||
RawBase = 0x40030403,
|
||||
CounterMultiBase = 0x42030500
|
||||
};
|
||||
|
||||
/* maps a small integer type to the counter types above */
|
||||
static const int simple_type_to_type[] =
|
||||
{
|
||||
NumberOfItemsHEX32, NumberOfItemsHEX64,
|
||||
NumberOfItems32, NumberOfItems64,
|
||||
CounterDelta32, CounterDelta64,
|
||||
SampleCounter, CountPerTimeInterval32,
|
||||
CountPerTimeInterval64, RateOfCountsPerSecond32,
|
||||
RateOfCountsPerSecond64, RawFraction,
|
||||
CounterTimer, Timer100Ns,
|
||||
SampleFraction, CounterTimerInverse,
|
||||
Timer100NsInverse, CounterMultiTimer,
|
||||
CounterMultiTimer100Ns, CounterMultiTimerInverse,
|
||||
CounterMultiTimer100NsInverse, AverageTimer32,
|
||||
ElapsedTime, AverageCount64,
|
||||
SampleBase, AverageBase,
|
||||
RawBase, CounterMultiBase
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
SingleInstance,
|
||||
MultiInstance,
|
||||
CatTypeUnknown = -1
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
ProcessInstance,
|
||||
ThreadInstance,
|
||||
CPUInstance,
|
||||
MonoInstance,
|
||||
NetworkInterfaceInstance,
|
||||
CustomInstance
|
||||
};
|
||||
|
||||
/* map of CounterSample.cs */
|
||||
struct Il2CppCounterSample
|
||||
{
|
||||
int64_t rawValue;
|
||||
int64_t baseValue;
|
||||
int64_t counterFrequency;
|
||||
int64_t systemFrequency;
|
||||
int64_t timeStamp;
|
||||
int64_t timeStamp100nSec;
|
||||
int64_t counterTimeStamp;
|
||||
int counterType;
|
||||
};
|
||||
|
||||
#undef PERFCTR_CAT
|
||||
#undef PERFCTR_COUNTER
|
||||
#define PERFCTR_CAT(id, name, help, type, inst, first_counter) {name, help, CATEGORY_ ## id, type, inst ## Instance, CCOUNTER_ ## first_counter},
|
||||
#define PERFCTR_COUNTER(id, name, help, type, field)
|
||||
static const CategoryDesc
|
||||
predef_categories[] =
|
||||
{
|
||||
/* sample runtime counter */
|
||||
#include "perfcounters-def.h"
|
||||
{ NULL, NULL, NUM_CATEGORIES, -1, 0, NUM_COUNTERS }
|
||||
};
|
||||
|
||||
#undef PERFCTR_CAT
|
||||
#undef PERFCTR_COUNTER
|
||||
#define PERFCTR_CAT(id, name, help, type, inst, first_counter)
|
||||
#define PERFCTR_COUNTER(id, name, help, type, field) {name, help, COUNTER_ ## id, offsetof (Il2CppPerfCounters, field), type},
|
||||
static const CounterDesc
|
||||
predef_counters[] =
|
||||
{
|
||||
#include "perfcounters-def.h"
|
||||
{ NULL, NULL, -1, 0, 0 }
|
||||
};
|
||||
/*
|
||||
* We have several different classes of counters:
|
||||
* *) system counters
|
||||
* *) runtime counters
|
||||
* *) remote counters
|
||||
* *) user-defined counters
|
||||
* *) windows counters (the implementation on windows will use this)
|
||||
*
|
||||
* To easily handle the differences we create a vtable for each class that contains the
|
||||
* function pointers with the actual implementation to access the counters.
|
||||
*/
|
||||
typedef struct _ImplVtable ImplVtable;
|
||||
|
||||
typedef bool(*SampleFunc) (ImplVtable *vtable, bool only_value, Il2CppCounterSample* sample);
|
||||
typedef uint64_t(*UpdateFunc) (ImplVtable *vtable, bool do_incr, int64_t value);
|
||||
typedef void(*CleanupFunc) (ImplVtable *vtable);
|
||||
|
||||
struct _ImplVtable
|
||||
{
|
||||
void *arg;
|
||||
SampleFunc sample;
|
||||
UpdateFunc update;
|
||||
CleanupFunc cleanup;
|
||||
};
|
||||
|
||||
struct CustomVTable
|
||||
{
|
||||
ImplVtable vtable;
|
||||
SharedInstance *instance_desc;
|
||||
SharedCounter *counter_desc;
|
||||
};
|
||||
|
||||
const CategoryDesc* find_category(Il2CppString *category);
|
||||
const CounterDesc* get_counter_in_category(const CategoryDesc *desc, Il2CppString *counter);
|
||||
ImplVtable* create_vtable(void *arg, SampleFunc sample, UpdateFunc update);
|
||||
} /* namespace Diagnostics */
|
||||
} /* namespace System */
|
||||
} /* namespace System */
|
||||
} /* namespace icalls */
|
||||
} /* namespace il2cpp */
|
||||
+59
@@ -0,0 +1,59 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
#include "il2cpp-config.h"
|
||||
#include "il2cpp-object-internals.h"
|
||||
|
||||
struct Il2CppObject;
|
||||
struct Il2CppDelegate;
|
||||
struct Il2CppReflectionType;
|
||||
struct Il2CppReflectionMethod;
|
||||
struct Il2CppReflectionField;
|
||||
struct Il2CppArray;
|
||||
struct Il2CppException;
|
||||
struct Il2CppReflectionModule;
|
||||
struct Il2CppAssembly;
|
||||
struct Il2CppAssemblyName;
|
||||
struct Il2CppAppDomain;
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace Diagnostics
|
||||
{
|
||||
struct ProcInfo;
|
||||
|
||||
class LIBIL2CPP_CODEGEN_API Process
|
||||
{
|
||||
public:
|
||||
static Il2CppArray* GetProcesses_internal();
|
||||
static int32_t GetPid_internal();
|
||||
static bool CreateProcess_internal(void* /* System.Diagnostics.ProcessStartInfo */ startInfo, intptr_t _stdin, intptr_t _stdout, intptr_t _stderr, ProcInfo* proc_info);
|
||||
static int64_t ExitTime_internal(intptr_t handle);
|
||||
static Il2CppArray* GetModules_internal(void* /* System.Diagnostics.Process */ self, intptr_t handle);
|
||||
static int32_t GetPriorityClass(intptr_t handle, int32_t* error);
|
||||
static int64_t GetProcessData(int32_t pid, int32_t data_type, int32_t* error);
|
||||
static intptr_t GetProcess_internal(int32_t pid);
|
||||
static bool GetWorkingSet_internal(intptr_t handle, int32_t* min, int32_t* max);
|
||||
static bool Kill_internal(intptr_t handle, int32_t signo);
|
||||
static Il2CppString* ProcessName_internal(intptr_t handle);
|
||||
static void Process_free_internal(void* /* System.Diagnostics.Process */ self, intptr_t handle);
|
||||
static bool SetPriorityClass(intptr_t handle, int32_t priority, int32_t* error);
|
||||
static bool SetWorkingSet_internal(intptr_t handle, int32_t min, int32_t max, bool use_min);
|
||||
static bool ShellExecuteEx_internal(void* /* System.Diagnostics.ProcessStartInfo */ startInfo, ProcInfo* proc_info);
|
||||
static int64_t StartTime_internal(intptr_t handle);
|
||||
static int64_t Times(intptr_t handle, int32_t type);
|
||||
static bool WaitForExit_internal(void* /* System.Diagnostics.Process */ self, intptr_t handle, int32_t ms);
|
||||
static bool WaitForInputIdle_internal(void* /* System.Diagnostics.Process */ self, intptr_t handle, int32_t ms);
|
||||
static int32_t ExitCode_internal(intptr_t handle);
|
||||
};
|
||||
} /* namespace Diagnostics */
|
||||
} /* namespace System */
|
||||
} /* namespace System */
|
||||
} /* namespace icalls */
|
||||
} /* namespace il2cpp */
|
||||
+25
@@ -0,0 +1,25 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
#include "il2cpp-config.h"
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace Diagnostics
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API Stopwatch
|
||||
{
|
||||
public:
|
||||
static int64_t GetTimestamp();
|
||||
};
|
||||
} /* namespace Diagnostics */
|
||||
} /* namespace System */
|
||||
} /* namespace mscorlib */
|
||||
} /* namespace icalls */
|
||||
} /* namespace il2cpp */
|
||||
+135
@@ -0,0 +1,135 @@
|
||||
/*
|
||||
* Define the system and runtime performance counters.
|
||||
* Each category is defined with the macro:
|
||||
* PERFCTR_CAT(catid, name, help, type, instances, first_counter_id)
|
||||
* and after that follows the counters inside the category, defined by the macro:
|
||||
* PERFCTR_COUNTER(counter_id, name, help, type, field)
|
||||
* field is the field inside MonoPerfCounters per predefined counters.
|
||||
* Note we set it to unused for unrelated counters: it is unused
|
||||
* in those cases.
|
||||
*/
|
||||
//PERFCTR_CAT(CPU, "Processor", "", MultiInstance, CPU, CPU_USER_TIME)
|
||||
//PERFCTR_COUNTER(CPU_USER_TIME, "% User Time", "", Timer100Ns, unused)
|
||||
//PERFCTR_COUNTER(CPU_PRIV_TIME, "% Privileged Time", "", Timer100Ns, unused)
|
||||
//PERFCTR_COUNTER(CPU_INTR_TIME, "% Interrupt Time", "", Timer100Ns, unused)
|
||||
//PERFCTR_COUNTER(CPU_DCP_TIME, "% DCP Time", "", Timer100Ns, unused)
|
||||
//PERFCTR_COUNTER(CPU_PROC_TIME, "% Processor Time", "", Timer100NsInverse, unused)
|
||||
//
|
||||
//PERFCTR_CAT(PROC, "Process", "", MultiInstance, Process, PROC_USER_TIME)
|
||||
//PERFCTR_COUNTER(PROC_USER_TIME, "% User Time", "", Timer100Ns, unused)
|
||||
//PERFCTR_COUNTER(PROC_PRIV_TIME, "% Privileged Time", "", Timer100Ns, unused)
|
||||
//PERFCTR_COUNTER(PROC_PROC_TIME, "% Processor Time", "", Timer100Ns, unused)
|
||||
//PERFCTR_COUNTER(PROC_THREADS, "Thread Count", "", NumberOfItems64, unused)
|
||||
//PERFCTR_COUNTER(PROC_VBYTES, "Virtual Bytes", "", NumberOfItems64, unused)
|
||||
//PERFCTR_COUNTER(PROC_WSET, "Working Set", "", NumberOfItems64, unused)
|
||||
//PERFCTR_COUNTER(PROC_PBYTES, "Private Bytes", "", NumberOfItems64, unused)
|
||||
|
||||
/* sample runtime counter */
|
||||
PERFCTR_CAT(MONO_MEM, "Mono Memory", "", SingleInstance, Mono, MEM_NUM_OBJECTS)
|
||||
PERFCTR_COUNTER(MEM_NUM_OBJECTS, "Allocated Objects", "", NumberOfItems64, unused)
|
||||
//PERFCTR_COUNTER(MEM_PHYS_TOTAL, "Total Physical Memory", "Physical memory installed in the machine, in bytes", NumberOfItems64, unused)
|
||||
//PERFCTR_COUNTER(MEM_PHYS_AVAILABLE, "Available Physical Memory", "Physical memory available in the machine, in bytes", NumberOfItems64, unused)
|
||||
//
|
||||
//PERFCTR_CAT(ASPNET, "ASP.NET", "", MultiInstance, Mono, ASPNET_REQ_Q)
|
||||
//PERFCTR_COUNTER(ASPNET_REQ_Q, "Requests Queued", "", NumberOfItems64, aspnet_requests_queued)
|
||||
//PERFCTR_COUNTER(ASPNET_REQ_TOTAL, "Requests Total", "", NumberOfItems32, aspnet_requests)
|
||||
//PERFCTR_COUNTER(ASPNET_REQ_PSEC, "Requests/Sec", "", RateOfCountsPerSecond32, aspnet_requests)
|
||||
//
|
||||
//PERFCTR_CAT(JIT, ".NET CLR JIT", "", MultiInstance, Mono, JIT_BYTES)
|
||||
//PERFCTR_COUNTER(JIT_BYTES, "# of IL Bytes JITted", "", NumberOfItems32, jit_bytes)
|
||||
//PERFCTR_COUNTER(JIT_METHODS, "# of IL Methods JITted", "", NumberOfItems32, jit_methods)
|
||||
//PERFCTR_COUNTER(JIT_TIME, "% Time in JIT", "", RawFraction, jit_time)
|
||||
//PERFCTR_COUNTER(JIT_BYTES_PSEC, "IL Bytes Jitted/Sec", "", RateOfCountsPerSecond32, jit_bytes)
|
||||
//PERFCTR_COUNTER(JIT_FAILURES, "Standard Jit Failures", "", NumberOfItems32, jit_failures)
|
||||
//
|
||||
//PERFCTR_CAT(EXC, ".NET CLR Exceptions", "", MultiInstance, Mono, EXC_THROWN)
|
||||
//PERFCTR_COUNTER(EXC_THROWN, "# of Exceps Thrown", "", NumberOfItems32, exceptions_thrown)
|
||||
//PERFCTR_COUNTER(EXC_THROWN_PSEC, "# of Exceps Thrown/Sec", "", RateOfCountsPerSecond32, exceptions_thrown)
|
||||
//PERFCTR_COUNTER(EXC_FILTERS_PSEC, "# of Filters/Sec", "", RateOfCountsPerSecond32, exceptions_filters)
|
||||
//PERFCTR_COUNTER(EXC_FINALLYS_PSEC, "# of Finallys/Sec", "", RateOfCountsPerSecond32, exceptions_finallys)
|
||||
//PERFCTR_COUNTER(EXC_CATCH_DEPTH, "Throw to Catch Depth/Sec", "", NumberOfItems32, exceptions_depth)
|
||||
//
|
||||
//PERFCTR_CAT(GC, ".NET CLR Memory", "", MultiInstance, Mono, GC_GEN0)
|
||||
//PERFCTR_COUNTER(GC_GEN0, "# Gen 0 Collections", "", NumberOfItems32, gc_collections0)
|
||||
//PERFCTR_COUNTER(GC_GEN1, "# Gen 1 Collections", "", NumberOfItems32, gc_collections1)
|
||||
//PERFCTR_COUNTER(GC_GEN2, "# Gen 2 Collections", "", NumberOfItems32, gc_collections2)
|
||||
//PERFCTR_COUNTER(GC_PROM0, "Promoted Memory from Gen 0", "", NumberOfItems32, gc_promotions0)
|
||||
//PERFCTR_COUNTER(GC_PROM1, "Promoted Memory from Gen 1", "", NumberOfItems32, gc_promotions1)
|
||||
//PERFCTR_COUNTER(GC_PROM0SEC, "Gen 0 Promoted Bytes/Sec", "", RateOfCountsPerSecond32, gc_promotions0)
|
||||
//PERFCTR_COUNTER(GC_PROM1SEC, "Gen 1 Promoted Bytes/Sec", "", RateOfCountsPerSecond32, gc_promotions1)
|
||||
//PERFCTR_COUNTER(GC_PROMFIN, "Promoted Finalization-Memory from Gen 0", "", NumberOfItems32, gc_promotion_finalizers)
|
||||
//PERFCTR_COUNTER(GC_GEN0SIZE, "Gen 0 heap size", "", NumberOfItems32, gc_gen0size)
|
||||
//PERFCTR_COUNTER(GC_GEN1SIZE, "Gen 1 heap size", "", NumberOfItems32, gc_gen1size)
|
||||
//PERFCTR_COUNTER(GC_GEN2SIZE, "Gen 2 heap size", "", NumberOfItems32, gc_gen2size)
|
||||
//PERFCTR_COUNTER(GC_LOSIZE, "Large Object Heap size", "", NumberOfItems32, gc_lossize)
|
||||
//PERFCTR_COUNTER(GC_FINSURV, "Finalization Survivors", "", NumberOfItems32, gc_fin_survivors)
|
||||
//PERFCTR_COUNTER(GC_NHANDLES, "# GC Handles", "", NumberOfItems32, gc_num_handles)
|
||||
//PERFCTR_COUNTER(GC_BYTESSEC, "Allocated Bytes/sec", "", RateOfCountsPerSecond32, gc_allocated)
|
||||
//PERFCTR_COUNTER(GC_INDGC, "# Induced GC", "", NumberOfItems32, gc_induced)
|
||||
//PERFCTR_COUNTER(GC_PERCTIME, "% Time in GC", "", RawFraction, gc_time)
|
||||
//PERFCTR_COUNTER(GC_BYTES, "# Bytes in all Heaps", "", NumberOfItems32, gc_total_bytes)
|
||||
//PERFCTR_COUNTER(GC_COMMBYTES, "# Total committed Bytes", "", NumberOfItems32, gc_committed_bytes)
|
||||
//PERFCTR_COUNTER(GC_RESBYTES, "# Total reserved Bytes", "", NumberOfItems32, gc_reserved_bytes)
|
||||
//PERFCTR_COUNTER(GC_PINNED, "# of Pinned Objects", "", NumberOfItems32, gc_num_pinned)
|
||||
//PERFCTR_COUNTER(GC_SYNKB, "# of Sink Blocks in use", "", NumberOfItems32, gc_sync_blocks)
|
||||
//
|
||||
//PERFCTR_CAT(REMOTING, ".NET CLR Remoting", "", MultiInstance, Mono, REMOTING_CALLSEC)
|
||||
//PERFCTR_COUNTER(REMOTING_CALLSEC, "Remote Calls/sec", "", RateOfCountsPerSecond32, remoting_calls)
|
||||
//PERFCTR_COUNTER(REMOTING_CALLS, "Total Remote Calls", "", NumberOfItems32, remoting_calls)
|
||||
//PERFCTR_COUNTER(REMOTING_CHANNELS, "Channels", "", NumberOfItems32, remoting_channels)
|
||||
//PERFCTR_COUNTER(REMOTING_CPROXIES, "Context Proxies", "", NumberOfItems32, remoting_proxies)
|
||||
//PERFCTR_COUNTER(REMOTING_CBLOADED, "Context-Bound Classes Loaded", "", NumberOfItems32, remoting_classes)
|
||||
//PERFCTR_COUNTER(REMOTING_CBALLOCSEC, "Context-Bound Objects Alloc / sec", "", RateOfCountsPerSecond32, remoting_objects)
|
||||
//PERFCTR_COUNTER(REMOTING_CONTEXTS, "Contexts", "", NumberOfItems32, remoting_contexts)
|
||||
//
|
||||
//PERFCTR_CAT(LOADING, ".NET CLR Loading", "", MultiInstance, Mono, LOADING_CLASSES)
|
||||
//PERFCTR_COUNTER(LOADING_CLASSES, "Current Classes Loaded", "", NumberOfItems32, loader_classes)
|
||||
//PERFCTR_COUNTER(LOADING_TOTCLASSES, "Total Classes Loaded", "", NumberOfItems32, loader_total_classes)
|
||||
//PERFCTR_COUNTER(LOADING_CLASSESSEC, "Rate of Classes Loaded", "", RateOfCountsPerSecond32, loader_total_classes)
|
||||
//PERFCTR_COUNTER(LOADING_APPDOMAINS, "Current appdomains", "", NumberOfItems32, loader_appdomains)
|
||||
//PERFCTR_COUNTER(LOADING_TOTAPPDOMAINS, "Total Appdomains", "", NumberOfItems32, loader_total_appdomains)
|
||||
//PERFCTR_COUNTER(LOADING_APPDOMAINSEC, "Rate of appdomains", "", RateOfCountsPerSecond32, loader_total_appdomains)
|
||||
//PERFCTR_COUNTER(LOADING_ASSEMBLIES, "Current Assemblies", "", NumberOfItems32, loader_assemblies)
|
||||
//PERFCTR_COUNTER(LOADING_TOTASSEMBLIES, "Total Assemblies", "", NumberOfItems32, loader_total_assemblies)
|
||||
//PERFCTR_COUNTER(LOADING_ASSEMBLIESEC, "Rate of Assemblies", "", RateOfCountsPerSecond32, loader_total_assemblies)
|
||||
//PERFCTR_COUNTER(LOADING_FAILURES, "Total # of Load Failures", "", NumberOfItems32, loader_failures)
|
||||
//PERFCTR_COUNTER(LOADING_FAILURESSEC, "Rate of Load Failures", "", RateOfCountsPerSecond32, loader_failures)
|
||||
//PERFCTR_COUNTER(LOADING_BYTES, "Bytes in Loader Heap", "", NumberOfItems32, loader_bytes)
|
||||
//PERFCTR_COUNTER(LOADING_APPUNLOADED, "Total appdomains unloaded", "", NumberOfItems32, loader_appdomains_uloaded)
|
||||
//PERFCTR_COUNTER(LOADING_APPUNLOADEDSEC, "Rate of appdomains unloaded", "", RateOfCountsPerSecond32, loader_appdomains_uloaded)
|
||||
//
|
||||
//PERFCTR_CAT(THREAD, ".NET CLR LocksAndThreads", "", MultiInstance, Mono, THREAD_CONTENTIONS)
|
||||
//PERFCTR_COUNTER(THREAD_CONTENTIONS, "Total # of Contentions", "", NumberOfItems32, thread_contentions)
|
||||
//PERFCTR_COUNTER(THREAD_CONTENTIONSSEC, "Contention Rate / sec", "", RateOfCountsPerSecond32, thread_contentions)
|
||||
//PERFCTR_COUNTER(THREAD_QUEUELEN, "Current Queue Length", "", NumberOfItems32, thread_queue_len)
|
||||
//PERFCTR_COUNTER(THREAD_QUEUELENP, "Queue Length Peak", "", NumberOfItems32, thread_queue_max)
|
||||
//PERFCTR_COUNTER(THREAD_QUEUELENSEC, "Queue Length / sec", "", RateOfCountsPerSecond32, thread_queue_max)
|
||||
//PERFCTR_COUNTER(THREAD_NUMLOG, "# of current logical Threads", "", NumberOfItems32, thread_num_logical)
|
||||
//PERFCTR_COUNTER(THREAD_NUMPHYS, "# of current physical Threads", "", NumberOfItems32, thread_num_physical)
|
||||
//PERFCTR_COUNTER(THREAD_NUMREC, "# of current recognized threads", "", NumberOfItems32, thread_cur_recognized)
|
||||
//PERFCTR_COUNTER(THREAD_TOTREC, "# of total recognized threads", "", NumberOfItems32, thread_num_recognized)
|
||||
//PERFCTR_COUNTER(THREAD_TOTRECSEC, "rate of recognized threads / sec", "", RateOfCountsPerSecond32, thread_num_recognized)
|
||||
//
|
||||
//PERFCTR_CAT(INTEROP, ".NET CLR Interop", "", MultiInstance, Mono, INTEROP_NUMCCW)
|
||||
//PERFCTR_COUNTER(INTEROP_NUMCCW, "# of CCWs", "", NumberOfItems32, interop_num_ccw)
|
||||
//PERFCTR_COUNTER(INTEROP_STUBS, "# of Stubs", "", NumberOfItems32, interop_num_stubs)
|
||||
//PERFCTR_COUNTER(INTEROP_MARSH, "# of marshalling", "", NumberOfItems32, interop_num_marshals)
|
||||
//
|
||||
//PERFCTR_CAT(SECURITY, ".NET CLR Security", "", MultiInstance, Mono, SECURITY_CHECKS)
|
||||
//PERFCTR_COUNTER(SECURITY_CHECKS, "Total Runtime Checks", "", NumberOfItems32, security_num_checks)
|
||||
//PERFCTR_COUNTER(SECURITY_LCHECKS, "# Link Time Checks", "", NumberOfItems32, security_num_link_checks)
|
||||
//PERFCTR_COUNTER(SECURITY_PERCTIME, "% Time in RT checks", "", RawFraction, security_time)
|
||||
//PERFCTR_COUNTER(SECURITY_SWDEPTH, "Stack Walk Depth", "", NumberOfItems32, security_depth)
|
||||
//
|
||||
//PERFCTR_CAT(THREADPOOL, "Mono Threadpool", "", MultiInstance, Mono, THREADPOOL_WORKITEMS)
|
||||
//PERFCTR_COUNTER(THREADPOOL_WORKITEMS, "Work Items Added", "", NumberOfItems64, threadpool_workitems)
|
||||
//PERFCTR_COUNTER(THREADPOOL_WORKITEMS_PSEC, "Work Items Added/Sec", "", RateOfCountsPerSecond32, threadpool_workitems)
|
||||
//PERFCTR_COUNTER(THREADPOOL_IOWORKITEMS, "IO Work Items Added", "", NumberOfItems64, threadpool_ioworkitems)
|
||||
//PERFCTR_COUNTER(THREADPOOL_IOWORKITEMS_PSEC, "IO Work Items Added/Sec", "", RateOfCountsPerSecond32, threadpool_ioworkitems)
|
||||
//PERFCTR_COUNTER(THREADPOOL_THREADS, "# of Threads", "", NumberOfItems32, threadpool_threads)
|
||||
//PERFCTR_COUNTER(THREADPOOL_IOTHREADS, "# of IO Threads", "", NumberOfItems32, threadpool_iothreads)
|
||||
//
|
||||
//PERFCTR_CAT(NETWORK, "Network Interface", "", MultiInstance, NetworkInterface, NETWORK_BYTESRECSEC)
|
||||
//PERFCTR_COUNTER(NETWORK_BYTESRECSEC, "Bytes Received/sec", "", RateOfCountsPerSecond64, unused)
|
||||
//PERFCTR_COUNTER(NETWORK_BYTESSENTSEC, "Bytes Sent/sec", "", RateOfCountsPerSecond64, unused)
|
||||
//PERFCTR_COUNTER(NETWORK_BYTESTOTALSEC, "Bytes Total/sec", "", RateOfCountsPerSecond64, unused)
|
||||
+40
@@ -0,0 +1,40 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
#include "il2cpp-object-internals.h"
|
||||
#include "il2cpp-config.h"
|
||||
|
||||
struct Il2CppObject;
|
||||
struct Il2CppDelegate;
|
||||
struct Il2CppReflectionType;
|
||||
struct Il2CppReflectionMethod;
|
||||
struct Il2CppReflectionField;
|
||||
struct Il2CppArray;
|
||||
struct Il2CppException;
|
||||
struct Il2CppReflectionModule;
|
||||
struct Il2CppAssembly;
|
||||
struct Il2CppAssemblyName;
|
||||
struct Il2CppAppDomain;
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace IO
|
||||
{
|
||||
struct FAMConnection;
|
||||
|
||||
class LIBIL2CPP_CODEGEN_API FAMWatcher
|
||||
{
|
||||
public:
|
||||
static int32_t InternalFAMNextEvent(FAMConnection* fc, Il2CppString** filename, int32_t* code, int32_t* reqnum);
|
||||
};
|
||||
} /* namespace IO */
|
||||
} /* namespace System */
|
||||
} /* namespace System */
|
||||
} /* namespace icalls */
|
||||
} /* namespace il2cpp */
|
||||
+38
@@ -0,0 +1,38 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
#include "il2cpp-object-internals.h"
|
||||
#include "il2cpp-config.h"
|
||||
|
||||
struct Il2CppObject;
|
||||
struct Il2CppDelegate;
|
||||
struct Il2CppReflectionType;
|
||||
struct Il2CppReflectionMethod;
|
||||
struct Il2CppReflectionField;
|
||||
struct Il2CppArray;
|
||||
struct Il2CppException;
|
||||
struct Il2CppReflectionModule;
|
||||
struct Il2CppAssembly;
|
||||
struct Il2CppAssemblyName;
|
||||
struct Il2CppAppDomain;
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace IO
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API FileSystemWatcher
|
||||
{
|
||||
public:
|
||||
static int32_t InternalSupportsFSW();
|
||||
};
|
||||
} /* namespace IO */
|
||||
} /* namespace System */
|
||||
} /* namespace System */
|
||||
} /* namespace icalls */
|
||||
} /* namespace il2cpp */
|
||||
+42
@@ -0,0 +1,42 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
#include "il2cpp-object-internals.h"
|
||||
#include "il2cpp-config.h"
|
||||
|
||||
struct Il2CppObject;
|
||||
struct Il2CppDelegate;
|
||||
struct Il2CppReflectionType;
|
||||
struct Il2CppReflectionMethod;
|
||||
struct Il2CppReflectionField;
|
||||
struct Il2CppArray;
|
||||
struct Il2CppException;
|
||||
struct Il2CppReflectionModule;
|
||||
struct Il2CppAssembly;
|
||||
struct Il2CppAssemblyName;
|
||||
struct Il2CppAppDomain;
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace IO
|
||||
{
|
||||
typedef int32_t InotifyMask;
|
||||
|
||||
class LIBIL2CPP_CODEGEN_API InotifyWatcher
|
||||
{
|
||||
public:
|
||||
static intptr_t RemoveWatch(intptr_t fd, int32_t wd);
|
||||
static int32_t AddWatch(intptr_t fd, Il2CppString* name, InotifyMask mask);
|
||||
static intptr_t GetInotifyInstance();
|
||||
};
|
||||
} /* namespace IO */
|
||||
} /* namespace System */
|
||||
} /* namespace System */
|
||||
} /* namespace icalls */
|
||||
} /* namespace il2cpp */
|
||||
+25
@@ -0,0 +1,25 @@
|
||||
#pragma once
|
||||
#if NET_4_0
|
||||
#include "il2cpp-object-internals.h"
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace IO
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API KqueueMonitor
|
||||
{
|
||||
public:
|
||||
static int32_t kevent_notimeout(int32_t* kq, intptr_t ev, int32_t nchanges, intptr_t evtlist, int32_t nevents);
|
||||
};
|
||||
} // namespace IO
|
||||
} // namespace System
|
||||
} // namespace System
|
||||
} // namespace icalls
|
||||
} // namespace il2cpp
|
||||
#endif
|
||||
+33
@@ -0,0 +1,33 @@
|
||||
#pragma once
|
||||
|
||||
#if !NET_4_0
|
||||
|
||||
#include "il2cpp-object-internals.h"
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace Net
|
||||
{
|
||||
namespace NetworkInformation
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API LinuxNetworkInterface
|
||||
{
|
||||
public:
|
||||
static int32_t GetInterfaceAddresses(intptr_t* ifap);
|
||||
static void FreeInterfaceAddresses(intptr_t ifap);
|
||||
static void InitializeInterfaceAddresses();
|
||||
};
|
||||
} // namespace NetworkInformation
|
||||
} // namespace Net
|
||||
} // namespace System
|
||||
} // namespace System
|
||||
} // namespace icalls
|
||||
} // namespace il2cpp
|
||||
|
||||
#endif
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
#pragma once
|
||||
#if NET_4_0
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace Net
|
||||
{
|
||||
namespace NetworkInformation
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API MacOsIPInterfaceProperties
|
||||
{
|
||||
public:
|
||||
static bool ParseRouteInfo_internal(Il2CppString* iface, Il2CppArray** gw_addr_list);
|
||||
};
|
||||
} // namespace NetworkInformation
|
||||
} // namespace Net
|
||||
} // namespace System
|
||||
} // namespace System
|
||||
} // namespace icalls
|
||||
} // namespace il2cpp
|
||||
#endif
|
||||
+257
@@ -0,0 +1,257 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
#include "il2cpp-config.h"
|
||||
#include "il2cpp-object-internals.h"
|
||||
|
||||
struct Il2CppArray;
|
||||
struct Il2CppObject;
|
||||
struct Il2CppString;
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace Net
|
||||
{
|
||||
namespace Sockets
|
||||
{
|
||||
enum AddressFamily
|
||||
{
|
||||
kAddressFamilyUnknown = -1,
|
||||
kAddressFamilyUnspecified = 0,
|
||||
kAddressFamilyUnix = 1,
|
||||
kAddressFamilyInterNetwork = 2,
|
||||
kAddressFamilyImpLink = 3,
|
||||
kAddressFamilyPup = 4,
|
||||
kAddressFamilyChaos = 5,
|
||||
kAddressFamilyNS = 6,
|
||||
kAddressFamilyIpx = 6,
|
||||
kAddressFamilyIso = 7,
|
||||
kAddressFamilyOsi = 7,
|
||||
kAddressFamilyEcma = 8,
|
||||
kAddressFamilyDataKit = 9,
|
||||
kAddressFamilyCcitt = 10,
|
||||
kAddressFamilySna = 11,
|
||||
kAddressFamilyDecNet = 12,
|
||||
kAddressFamilyDataLink = 13,
|
||||
kAddressFamilyLat = 14,
|
||||
kAddressFamilyHyperChannel = 15,
|
||||
kAddressFamilyAppleTalk = 16,
|
||||
kAddressFamilyNetBios = 17,
|
||||
kAddressFamilyVoiceView = 18,
|
||||
kAddressFamilyFireFox = 19,
|
||||
kAddressFamilyBanyan = 21,
|
||||
kAddressFamilyAtm = 22,
|
||||
kAddressFamilyInterNetworkV6 = 23,
|
||||
kAddressFamilyCluster = 24,
|
||||
kAddressFamilyIeee12844 = 25,
|
||||
kAddressFamilyIrda = 26,
|
||||
kAddressFamilyNetworkDesigners = 28,
|
||||
kAddressFamilyMax = 29,
|
||||
};
|
||||
|
||||
enum SocketType
|
||||
{
|
||||
kSocketTypeUnknown = -1,
|
||||
kSocketTypeStream = 1,
|
||||
kSocketTypeDgram = 2,
|
||||
kSocketTypeRaw = 3,
|
||||
kSocketTypeRdm = 4,
|
||||
kSocketTypeSeqpacket = 5,
|
||||
};
|
||||
|
||||
enum ProtocolType
|
||||
{
|
||||
kProtocolTypeUnknown = -1,
|
||||
kProtocolTypeIP = 0,
|
||||
kProtocolTypeIcmp = 1,
|
||||
kProtocolTypeIgmp = 2,
|
||||
kProtocolTypeGgp = 3,
|
||||
kProtocolTypeTcp = 6,
|
||||
kProtocolTypePup = 12,
|
||||
kProtocolTypeUdp = 17,
|
||||
kProtocolTypeIdp = 22,
|
||||
kProtocolTypeND = 77,
|
||||
kProtocolTypeRaw = 255,
|
||||
kProtocolTypeUnspecified = 0,
|
||||
kProtocolTypeIpx = 1000,
|
||||
kProtocolTypeSpx = 1256,
|
||||
kProtocolTypeSpxII = 1257,
|
||||
|
||||
// #if NET_1_1
|
||||
kProtocolTypeIPv6 = 41,
|
||||
// #endif
|
||||
|
||||
// #if NET_2_0
|
||||
kProtocolTypeIPv4 = 4,
|
||||
kProtocolTypeIPv6RoutingHeader = 43,
|
||||
kProtocolTypeIPv6FragmentHeader = 44,
|
||||
kProtocolTypeIPSecEncapsulatingSecurityPayload = 50,
|
||||
kProtocolTypeIPSecAuthenticationHeader = 51,
|
||||
kProtocolTypeIcmpV6 = 58,
|
||||
kProtocolTypeIPv6NoNextHeader = 59,
|
||||
kProtocolTypeIPv6DestinationOptions = 60,
|
||||
kProtocolTypeIPv6HopByHopOptions = 0,
|
||||
// #endif
|
||||
};
|
||||
|
||||
enum SocketOptionLevel
|
||||
{
|
||||
kSocketOptionLevelSocket = 65535,
|
||||
kSocketOptionLevelIP = 0,
|
||||
kSocketOptionLevelTcp = 6,
|
||||
kSocketOptionLevelUdp = 17,
|
||||
|
||||
//#if NET_1_1
|
||||
kSocketOptionLevelIPv6 = 41,
|
||||
//#endif
|
||||
};
|
||||
|
||||
enum SocketOptionName
|
||||
{
|
||||
kSocketOptionNameDebug = 1,
|
||||
kSocketOptionNameAcceptConnection = 2,
|
||||
kSocketOptionNameReuseAddress = 4,
|
||||
kSocketOptionNameKeepAlive = 8,
|
||||
kSocketOptionNameDontRoute = 16,
|
||||
kSocketOptionNameBroadcast = 32,
|
||||
kSocketOptionNameUseLoopback = 64,
|
||||
kSocketOptionNameLinger = 128,
|
||||
kSocketOptionNameOutOfBandInline = 256,
|
||||
kSocketOptionNameDontLinger = -129,
|
||||
kSocketOptionNameExclusiveAddressUse = -5,
|
||||
kSocketOptionNameSendBuffer = 4097,
|
||||
kSocketOptionNameReceiveBuffer = 4098,
|
||||
kSocketOptionNameSendLowWater = 4099,
|
||||
kSocketOptionNameReceiveLowWater = 4100,
|
||||
kSocketOptionNameSendTimeout = 4101,
|
||||
kSocketOptionNameReceiveTimeout = 4102,
|
||||
kSocketOptionNameError = 4103,
|
||||
kSocketOptionNameType = 4104,
|
||||
kSocketOptionNameMaxConnections = 2147483647,
|
||||
kSocketOptionNameIPOptions = 1,
|
||||
kSocketOptionNameHeaderIncluded = 2,
|
||||
kSocketOptionNameTypeOfService = 3,
|
||||
kSocketOptionNameIpTimeToLive = 4,
|
||||
kSocketOptionNameMulticastInterface = 9,
|
||||
kSocketOptionNameMulticastTimeToLive = 10,
|
||||
kSocketOptionNameMulticastLoopback = 11,
|
||||
kSocketOptionNameAddMembership = 12,
|
||||
kSocketOptionNameDropMembership = 13,
|
||||
kSocketOptionNameDontFragment = 14,
|
||||
kSocketOptionNameAddSourceMembership = 15,
|
||||
kSocketOptionNameDropSourceMembership = 16,
|
||||
kSocketOptionNameBlockSource = 17,
|
||||
kSocketOptionNameUnblockSource = 18,
|
||||
kSocketOptionNamePacketInformation = 19,
|
||||
kSocketOptionNameNoDelay = 1,
|
||||
kSocketOptionNameBsdUrgent = 2,
|
||||
kSocketOptionNameExpedited = 2,
|
||||
kSocketOptionNameNoChecksum = 1,
|
||||
kSocketOptionNameChecksumCoverage = 20,
|
||||
|
||||
// #if NET_2_0
|
||||
kSocketOptionNameHopLimit = 21,
|
||||
kSocketOptionNameUpdateAcceptContext = 28683,
|
||||
kSocketOptionNameUpdateConnectContext = 28688,
|
||||
// #endif
|
||||
};
|
||||
|
||||
enum SelectMode
|
||||
{
|
||||
kSelectModeSelectRead = 0,
|
||||
kSelectModeSelectWrite = 1,
|
||||
kSelectModeSelectError = 2,
|
||||
};
|
||||
|
||||
enum SocketFlags
|
||||
{
|
||||
kSocketFlagsNone = 0x00000000,
|
||||
kSocketFlagsOutOfBand = 0x00000001,
|
||||
kSocketFlagsPeek = 0x00000002,
|
||||
kSocketFlagsDontRoute = 0x00000004,
|
||||
kSocketFlagsMaxIOVectorLength = 0x00000010,
|
||||
// #if NET_2_0
|
||||
kSocketFlagsTruncated = 0x00000100,
|
||||
kSocketFlagsControlDataTruncated = 0x00000200,
|
||||
kSocketFlagsBroadcast = 0x00000400,
|
||||
kSocketFlagsMulticast = 0x00000800,
|
||||
// #endif
|
||||
kSocketFlagsPartial = 0x00008000,
|
||||
};
|
||||
|
||||
enum TransmitFileOptions
|
||||
{
|
||||
kTransmitFileOptionsUseDefaultWorkerThread = 0x00000000,
|
||||
kTransmitFileOptionsDisconnect = 0x00000001,
|
||||
kTransmitFileOptionsReuseSocket = 0x00000002,
|
||||
kTransmitFileOptionsWriteBehind = 0x00000004,
|
||||
kTransmitFileOptionsUseSystemThread = 0x00000010,
|
||||
kTransmitFileOptionsUseKernelApc = 0x00000020,
|
||||
};
|
||||
|
||||
enum SocketShutdown
|
||||
{
|
||||
kSocketShutdownReceive = 0,
|
||||
kSocketShutdownSend = 1,
|
||||
kSocketShutdownBoth = 2,
|
||||
};
|
||||
|
||||
class LIBIL2CPP_CODEGEN_API Socket
|
||||
{
|
||||
public:
|
||||
static intptr_t Accept(intptr_t, int32_t*, bool);
|
||||
static int32_t Available(intptr_t, int32_t*);
|
||||
static void Bind(intptr_t, Il2CppSocketAddress*, int32_t*);
|
||||
static void Blocking(intptr_t, bool, int32_t*);
|
||||
static void Close(intptr_t, int32_t*);
|
||||
static void Connect(intptr_t, Il2CppSocketAddress*, int32_t*);
|
||||
static void Disconnect(intptr_t, bool, int32_t*);
|
||||
static void GetSocketOptionArray(intptr_t, SocketOptionLevel, SocketOptionName, Il2CppArray**, int32_t*);
|
||||
static void GetSocketOptionObj(intptr_t, SocketOptionLevel, SocketOptionName, Il2CppObject**, int32_t*);
|
||||
static void Listen(intptr_t, int32_t, int32_t*);
|
||||
static Il2CppSocketAddress* LocalEndPoint(intptr_t, int32_t*);
|
||||
static bool Poll(intptr_t, SelectMode, int32_t, int32_t*);
|
||||
static int32_t ReceiveArray(intptr_t, Il2CppArray*, SocketFlags, int32_t*);
|
||||
static int32_t Receive(intptr_t, Il2CppArray*, int32_t, int32_t, SocketFlags, int32_t*);
|
||||
static int32_t RecvFrom(intptr_t, Il2CppArray*, int32_t, int32_t, SocketFlags, Il2CppSocketAddress**, int32_t*);
|
||||
static Il2CppSocketAddress* RemoteEndPoint(intptr_t, int32_t*);
|
||||
static void Select(Il2CppArray**, int32_t, int32_t*);
|
||||
static bool SendFile(intptr_t, Il2CppString*, Il2CppArray*, Il2CppArray*, TransmitFileOptions);
|
||||
static int32_t SendTo(intptr_t, Il2CppArray*, int32_t, int32_t, SocketFlags, Il2CppSocketAddress*, int32_t*);
|
||||
static int32_t SendArray(intptr_t, Il2CppArray*, SocketFlags, int32_t*);
|
||||
static int32_t Send(intptr_t, Il2CppArray*, int32_t, int32_t, SocketFlags, int32_t*);
|
||||
static void SetSocketOption(intptr_t, SocketOptionLevel, SocketOptionName, Il2CppObject*, Il2CppArray*, int32_t, int32_t*);
|
||||
static void Shutdown(intptr_t, SocketShutdown, int32_t*);
|
||||
static intptr_t Socket_internal(Il2CppObject * self, AddressFamily, SocketType, ProtocolType, int32_t*);
|
||||
static int32_t WSAIoctl(intptr_t, int32_t, Il2CppArray*, Il2CppArray*, int32_t*);
|
||||
#if NET_4_0
|
||||
static bool SendFile_internal(intptr_t sock, Il2CppString* filename, Il2CppArray* pre_buffer, Il2CppArray* post_buffer, int32_t flags, int32_t* error, bool blocking);
|
||||
static bool SupportsPortReuse(ProtocolType proto);
|
||||
static int32_t IOControl_internal(intptr_t sock, int32_t ioctl_code, Il2CppArray* input, Il2CppArray* output, int32_t* error);
|
||||
static int32_t ReceiveFrom_internal(intptr_t sock, uint8_t* buffer, int32_t count, SocketFlags flags, Il2CppSocketAddress** sockaddr, int32_t* error, bool blocking);
|
||||
static int32_t SendTo_internal(intptr_t sock, uint8_t* buffer, int32_t count, SocketFlags flags, Il2CppSocketAddress* sa, int32_t* error, bool blocking);
|
||||
static Il2CppSocketAddress* LocalEndPoint_internal(intptr_t socket, int32_t family, int32_t* error);
|
||||
static Il2CppSocketAddress* RemoteEndPoint_internal(intptr_t socket, int32_t family, int32_t* error);
|
||||
static void cancel_blocking_socket_operation(Il2CppObject* thread);
|
||||
static void Connect_internal(intptr_t sock, Il2CppSocketAddress* sa, int32_t* error, bool blocking);
|
||||
static bool Duplicate_internal(intptr_t handle, int32_t targetProcessId, intptr_t *duplicate_handle, int32_t *werror);
|
||||
|
||||
static int32_t ReceiveArray40(intptr_t, void*, int32_t, SocketFlags, int32_t*, bool);
|
||||
static int32_t Receive40(intptr_t, uint8_t*, int32_t, SocketFlags, int32_t*, bool);
|
||||
static int32_t SendArray40(intptr_t, void*, int32_t, SocketFlags, int32_t*, bool);
|
||||
static int32_t Send40(intptr_t, uint8_t*, int32_t, SocketFlags, int32_t*, bool);
|
||||
static bool IsProtocolSupported_internal(int32_t networkInterface);
|
||||
#endif
|
||||
};
|
||||
} /* namespace Sockets */
|
||||
} /* namespace Net */
|
||||
} /* namespace System */
|
||||
} /* namespace System */
|
||||
} /* namespace icalls */
|
||||
} /* namespace il2cpp */
|
||||
+31
@@ -0,0 +1,31 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
#include "il2cpp-config.h"
|
||||
|
||||
struct Il2CppArray;
|
||||
struct Il2CppString;
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace Net
|
||||
{
|
||||
namespace Sockets
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API SocketException
|
||||
{
|
||||
public:
|
||||
static int32_t WSAGetLastError();
|
||||
};
|
||||
} /* namespace Sockets */
|
||||
} /* namespace Net */
|
||||
} /* namespace System */
|
||||
} /* namespace System */
|
||||
} /* namespace icalls */
|
||||
} /* namespace il2cpp */
|
||||
@@ -0,0 +1,34 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
#include "il2cpp-config.h"
|
||||
|
||||
struct Il2CppArray;
|
||||
struct Il2CppString;
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace Net
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API Dns
|
||||
{
|
||||
public:
|
||||
static bool GetHostByAddr(Il2CppString*, Il2CppString**, Il2CppArray**, Il2CppArray**);
|
||||
static bool GetHostByName(Il2CppString*, Il2CppString**, Il2CppArray**, Il2CppArray**);
|
||||
#if NET_4_0
|
||||
static bool GetHostByAddr40(Il2CppString*, Il2CppString**, Il2CppArray**, Il2CppArray**, int32_t hint);
|
||||
static bool GetHostByName40(Il2CppString*, Il2CppString**, Il2CppArray**, Il2CppArray**, int32_t hint);
|
||||
#endif
|
||||
static bool GetHostName(Il2CppString**);
|
||||
};
|
||||
} /* namespace Net */
|
||||
} /* namespace System */
|
||||
} /* namespace System */
|
||||
} /* namespace icalls */
|
||||
} /* namespace il2cpp */
|
||||
+35
@@ -0,0 +1,35 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
#include "il2cpp-config.h"
|
||||
#include "il2cpp-object-internals.h"
|
||||
|
||||
struct Il2CppString;
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace Threading
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API Semaphore
|
||||
{
|
||||
public:
|
||||
#if !NET_4_0
|
||||
static intptr_t CreateSemaphore_internal(int32_t initialCount, int32_t maximumCount, Il2CppString* name, bool* created);
|
||||
static int32_t ReleaseSemaphore_internal(intptr_t handlePtr, int32_t releaseCount, bool* fail);
|
||||
#else
|
||||
static intptr_t CreateSemaphore_internal40(int32_t initialCount, int32_t maximumCount, Il2CppString* name, int32_t* errorCode);
|
||||
static bool ReleaseSemaphore_internal40(intptr_t handlePtr, int32_t releaseCount, int32_t* previousCount);
|
||||
#endif
|
||||
static intptr_t OpenSemaphore_internal(Il2CppString* name, int32_t rights, int32_t* error);
|
||||
};
|
||||
} /* namespace Threading */
|
||||
} /* namespace System */
|
||||
} /* namespace System */
|
||||
} /* namespace icalls */
|
||||
} /* namespace il2cpp */
|
||||
@@ -0,0 +1,24 @@
|
||||
#pragma once
|
||||
|
||||
#if NET_4_0
|
||||
#include "il2cpp-object-internals.h"
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API IOSelector
|
||||
{
|
||||
public:
|
||||
static void Add(intptr_t handle, Il2CppObject* job);
|
||||
static void Remove(intptr_t handle);
|
||||
};
|
||||
} // namespace System
|
||||
} // namespace System
|
||||
} // namespace icalls
|
||||
} // namespace il2cpp
|
||||
#endif
|
||||
+41
@@ -0,0 +1,41 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
#include "il2cpp-config.h"
|
||||
#include "il2cpp-object-internals.h"
|
||||
|
||||
struct Il2CppObject;
|
||||
struct Il2CppDelegate;
|
||||
struct Il2CppReflectionType;
|
||||
struct Il2CppReflectionMethod;
|
||||
struct Il2CppReflectionField;
|
||||
struct Il2CppArray;
|
||||
struct Il2CppException;
|
||||
struct Il2CppReflectionModule;
|
||||
struct Il2CppAssembly;
|
||||
struct Il2CppAssemblyName;
|
||||
struct Il2CppAppDomain;
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace Mono
|
||||
{
|
||||
namespace Globalization
|
||||
{
|
||||
namespace Unicode
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API Normalization
|
||||
{
|
||||
public:
|
||||
static void load_normalization_resource(intptr_t* argProps, intptr_t* argMappedChars, intptr_t* argCharMapIndex, intptr_t* argHelperIndex, intptr_t* argMapIdxToComposite, intptr_t* argCombiningClass);
|
||||
};
|
||||
} /* namespace Unicode */
|
||||
} /* namespace Globalization */
|
||||
} /* namespace Mono */
|
||||
} /* namespace mscorlib */
|
||||
} /* namespace icalls */
|
||||
} /* namespace il2cpp */
|
||||
+29
@@ -0,0 +1,29 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
#include "il2cpp-config.h"
|
||||
#include "il2cpp-object-internals.h"
|
||||
|
||||
struct mscorlib_Mono_Interop_ComInteropProxy;
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace Mono
|
||||
{
|
||||
namespace Interop
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API ComInteropProxy
|
||||
{
|
||||
public:
|
||||
static void AddProxy(intptr_t pItf, mscorlib_Mono_Interop_ComInteropProxy * proxy);
|
||||
static mscorlib_Mono_Interop_ComInteropProxy* FindProxy(intptr_t pItf);
|
||||
};
|
||||
} /* namespace Interop */
|
||||
} /* namespace Mono */
|
||||
} /* namespace mscorlib */
|
||||
} /* namespace icalls */
|
||||
} /* namespace il2cpp */
|
||||
+32
@@ -0,0 +1,32 @@
|
||||
#pragma once
|
||||
#include "il2cpp-config.h"
|
||||
|
||||
struct Il2CppString;
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace Mono
|
||||
{
|
||||
namespace Security
|
||||
{
|
||||
namespace Cryptography
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API KeyPairPersistence
|
||||
{
|
||||
public:
|
||||
static bool _CanSecure(Il2CppString* root);
|
||||
static bool _IsUserProtected(Il2CppString* path);
|
||||
static bool _ProtectMachine(Il2CppString* path);
|
||||
static bool _ProtectUser(Il2CppString* path);
|
||||
static bool _IsMachineProtected(Il2CppString* path);
|
||||
};
|
||||
} /* namespace Cryptography */
|
||||
} /* namespace Security */
|
||||
} /* namespace Mono */
|
||||
} /* namespace mscorlib */
|
||||
} /* namespace icalls */
|
||||
} /* namespace il2cpp */
|
||||
+23
@@ -0,0 +1,23 @@
|
||||
#pragma once
|
||||
#include "il2cpp-config.h"
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace Mono
|
||||
{
|
||||
namespace Unity
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API UnityTls
|
||||
{
|
||||
public:
|
||||
static const void* GetUnityTlsInterface();
|
||||
};
|
||||
} /* namespace Unity */
|
||||
} /* namespace Mono */
|
||||
} /* namespace mscorlib */
|
||||
} /* namespace icalls */
|
||||
} /* namespace il2cpp */
|
||||
@@ -0,0 +1,26 @@
|
||||
#pragma once
|
||||
#include "il2cpp-config.h"
|
||||
|
||||
struct Il2CppString;
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace Mono
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API Runtime
|
||||
{
|
||||
public:
|
||||
static void mono_runtime_install_handlers();
|
||||
static Il2CppString* GetDisplayName();
|
||||
#if NET_4_0
|
||||
static Il2CppString* GetNativeStackTrace(Il2CppException* exception);
|
||||
#endif
|
||||
};
|
||||
} /* namespace Mono */
|
||||
} /* namespace mscorlib */
|
||||
} /* namespace icalls */
|
||||
} /* namespace il2cpp */
|
||||
+25
@@ -0,0 +1,25 @@
|
||||
#pragma once
|
||||
|
||||
#if NET_4_0
|
||||
|
||||
#include "il2cpp-object-internals.h"
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace Mono
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API RuntimeClassHandle
|
||||
{
|
||||
public:
|
||||
static intptr_t GetTypeFromClass(Il2CppClass* klass);
|
||||
};
|
||||
} // namespace Mono
|
||||
} // namespace mscorlib
|
||||
} // namespace icalls
|
||||
} // namespace il2cpp
|
||||
|
||||
#endif
|
||||
+23
@@ -0,0 +1,23 @@
|
||||
#pragma once
|
||||
|
||||
#if NET_4_0
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace Mono
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API RuntimeGPtrArrayHandle
|
||||
{
|
||||
public:
|
||||
static void GPtrArrayFree(void* value);
|
||||
};
|
||||
} // namespace Mono
|
||||
} // namespace mscorlib
|
||||
} // namespace icalls
|
||||
} // namespace il2cpp
|
||||
|
||||
#endif
|
||||
+25
@@ -0,0 +1,25 @@
|
||||
#pragma once
|
||||
|
||||
#if NET_4_0
|
||||
|
||||
struct Il2CppMonoAssemblyName;
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace Mono
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API RuntimeMarshal
|
||||
{
|
||||
public:
|
||||
static void FreeAssemblyName(Il2CppMonoAssemblyName* name, bool freeStruct);
|
||||
};
|
||||
} // namespace Mono
|
||||
} // namespace mscorlib
|
||||
} // namespace icalls
|
||||
} // namespace il2cpp
|
||||
|
||||
#endif
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
#pragma once
|
||||
|
||||
#if NET_4_0
|
||||
|
||||
#include "il2cpp-object-internals.h"
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace Mono
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API SafeStringMarshal
|
||||
{
|
||||
public:
|
||||
static intptr_t StringToUtf8(Il2CppString* str);
|
||||
static void GFree(intptr_t ptr);
|
||||
};
|
||||
} // namespace Mono
|
||||
} // namespace mscorlib
|
||||
} // namespace icalls
|
||||
} // namespace il2cpp
|
||||
|
||||
#endif
|
||||
+23
@@ -0,0 +1,23 @@
|
||||
#pragma once
|
||||
#if NET_4_0
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace Diagnostics
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API Assert
|
||||
{
|
||||
public:
|
||||
static int32_t ShowDefaultAssertDialog(Il2CppString* conditionString, Il2CppString* message, Il2CppString* stackTrace, Il2CppString* windowTitle);
|
||||
};
|
||||
} // namespace Diagnostics
|
||||
} // namespace System
|
||||
} // namespace mscorlib
|
||||
} // namespace icalls
|
||||
} // namespace il2cpp
|
||||
#endif
|
||||
+43
@@ -0,0 +1,43 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
#include "il2cpp-config.h"
|
||||
#include "il2cpp-object-internals.h"
|
||||
|
||||
struct Il2CppObject;
|
||||
struct Il2CppDelegate;
|
||||
struct Il2CppReflectionType;
|
||||
struct Il2CppReflectionMethod;
|
||||
struct Il2CppReflectionField;
|
||||
struct Il2CppArray;
|
||||
struct Il2CppException;
|
||||
struct Il2CppReflectionModule;
|
||||
struct Il2CppAssembly;
|
||||
struct Il2CppAssemblyName;
|
||||
struct Il2CppAppDomain;
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace Diagnostics
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API Debugger
|
||||
{
|
||||
public:
|
||||
static bool IsAttached_internal();
|
||||
|
||||
#if NET_4_0
|
||||
static bool IsLogging();
|
||||
static void Log(int32_t level, Il2CppString* category, Il2CppString* message);
|
||||
#endif
|
||||
};
|
||||
} /* namespace Diagnostics */
|
||||
} /* namespace System */
|
||||
} /* namespace mscorlib */
|
||||
} /* namespace icalls */
|
||||
} /* namespace il2cpp */
|
||||
+36
@@ -0,0 +1,36 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
#include "il2cpp-config.h"
|
||||
|
||||
struct Il2CppString;
|
||||
struct Il2CppReflectionMethod;
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace Diagnostics
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API StackFrame
|
||||
{
|
||||
public:
|
||||
static bool get_frame_info(
|
||||
int32_t skip,
|
||||
bool needFileInfo,
|
||||
Il2CppReflectionMethod ** method,
|
||||
int32_t* iloffset,
|
||||
int32_t* native_offset,
|
||||
Il2CppString** file,
|
||||
int32_t* line,
|
||||
int32_t* column);
|
||||
};
|
||||
} /* namespace Diagnostics */
|
||||
} /* namespace System */
|
||||
} /* namespace mscorlib */
|
||||
} /* namespace icalls */
|
||||
} /* namespace il2cpp */
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
#include "il2cpp-config.h"
|
||||
|
||||
struct Il2CppArray;
|
||||
struct Il2CppException;
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace Diagnostics
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API StackTrace
|
||||
{
|
||||
public:
|
||||
static Il2CppArray* get_trace(Il2CppException *exc, int32_t skip, bool need_file_info);
|
||||
};
|
||||
} /* namespace Diagnostics */
|
||||
} /* namespace System */
|
||||
} /* namespace mscorlib */
|
||||
} /* namespace icalls */
|
||||
} /* namespace il2cpp */
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
#pragma once
|
||||
|
||||
#if NET_4_0
|
||||
struct Il2CppCalendarData;
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace Globalization
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API CalendarData
|
||||
{
|
||||
public:
|
||||
static bool fill_calendar_data(Il2CppCalendarData* _this, Il2CppString* localeName, int32_t datetimeIndex);
|
||||
};
|
||||
} // namespace Globalization
|
||||
} // namespace System
|
||||
} // namespace mscorlib
|
||||
} // namespace icalls
|
||||
} // namespace il2cpp
|
||||
#endif
|
||||
+35
@@ -0,0 +1,35 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
#include "il2cpp-config.h"
|
||||
#include "CompareOptions.h"
|
||||
|
||||
struct Il2CppString;
|
||||
struct Il2CppObject;
|
||||
struct Il2CppSortKey;
|
||||
struct mscorlib_System_Globalization_CompareInfo;
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace Globalization
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API CompareInfo
|
||||
{
|
||||
public:
|
||||
static void assign_sortkey(void* /* System.Globalization.CompareInfo */ self, Il2CppSortKey* key, Il2CppString* source, CompareOptions options);
|
||||
static void free_internal_collator(mscorlib_System_Globalization_CompareInfo * thisPtr);
|
||||
static int internal_compare(mscorlib_System_Globalization_CompareInfo *, Il2CppString *, int, int, Il2CppString *, int, int, int);
|
||||
static int internal_index(mscorlib_System_Globalization_CompareInfo *thisPtr, Il2CppString *source, int sindex, int count, Il2CppString *value, int options, bool first);
|
||||
static void construct_compareinfo(mscorlib_System_Globalization_CompareInfo *, Il2CppString *);
|
||||
};
|
||||
} /* namespace Globalization */
|
||||
} /* namespace System */
|
||||
} /* namespace mscorlib */
|
||||
} /* namespace icalls */
|
||||
} /* namespace il2cpp */
|
||||
+32
@@ -0,0 +1,32 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace Globalization
|
||||
{
|
||||
// System.Globalization.CompareOptions
|
||||
typedef enum
|
||||
{
|
||||
CompareOptions_None = 0x00,
|
||||
CompareOptions_IgnoreCase = 0x01,
|
||||
CompareOptions_IgnoreNonSpace = 0x02,
|
||||
CompareOptions_IgnoreSymbols = 0x04,
|
||||
CompareOptions_IgnoreKanaType = 0x08,
|
||||
CompareOptions_IgnoreWidth = 0x10,
|
||||
CompareOptions_StringSort = 0x20000000,
|
||||
CompareOptions_Ordinal = 0x40000000,
|
||||
CompareOptions_OrdinalIgnoreCase = 0x10000000
|
||||
} CompareOptions;
|
||||
} /* namespace Globalization */
|
||||
} /* namespace System */
|
||||
} /* namespace mscorlib */
|
||||
} /* namespace icalls */
|
||||
} /* namespace il2cpp */
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
#pragma once
|
||||
|
||||
#if NET_4_0
|
||||
#include "il2cpp-object-internals.h"
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace Globalization
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API CultureData
|
||||
{
|
||||
public:
|
||||
static void fill_culture_data(Il2CppCultureData* _this, int32_t datetimeIndex);
|
||||
static void fill_number_data(Il2CppNumberFormatInfo* number, int32_t numberIndex);
|
||||
};
|
||||
} // namespace Globalization
|
||||
} // namespace System
|
||||
} // namespace mscorlib
|
||||
} // namespace icalls
|
||||
} // namespace il2cpp
|
||||
|
||||
#endif
|
||||
+42
@@ -0,0 +1,42 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
#include "il2cpp-config.h"
|
||||
|
||||
struct Il2CppString;
|
||||
struct Il2CppCultureInfo;
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace Globalization
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API CultureInfo
|
||||
{
|
||||
public:
|
||||
#if !NET_4_0
|
||||
static void construct_datetime_format(Il2CppCultureInfo* cultureInfo);
|
||||
static bool construct_internal_locale_from_current_locale(Il2CppCultureInfo* cultureInfo);
|
||||
#endif
|
||||
static bool construct_internal_locale_from_lcid(Il2CppCultureInfo* cultureInfo, int lcid);
|
||||
static bool construct_internal_locale_from_name(Il2CppCultureInfo* cultureInfo, Il2CppString* name);
|
||||
#if !NET_4_0
|
||||
static bool construct_internal_locale_from_specific_name(Il2CppCultureInfo* cultureInfo, Il2CppString* name);
|
||||
#endif
|
||||
static Il2CppArray* internal_get_cultures(bool neutral, bool specific, bool installed);
|
||||
static bool internal_is_lcid_neutral(int32_t lcid, bool* is_neutral);
|
||||
#if !NET_4_0
|
||||
static void construct_number_format(Il2CppCultureInfo* cultureInfo);
|
||||
#endif
|
||||
static Il2CppString* get_current_locale_name();
|
||||
};
|
||||
} /* namespace Diagnostics */
|
||||
} /* namespace System */
|
||||
} /* namespace mscorlib */
|
||||
} /* namespace icalls */
|
||||
} /* namespace il2cpp */
|
||||
+143
@@ -0,0 +1,143 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#if NET_4_0
|
||||
#include "Generated/CultureInfoInternalsNet_4_0.h"
|
||||
#else
|
||||
|
||||
#define NUM_DAYS 7
|
||||
#define NUM_MONTHS 13
|
||||
#define GROUP_SIZE 5
|
||||
#define NUM_OPT_CALS 5
|
||||
|
||||
#define NUM_SHORT_DATE_PATTERNS 14
|
||||
#define NUM_LONG_DATE_PATTERNS 8
|
||||
#define NUM_SHORT_TIME_PATTERNS 11
|
||||
#define NUM_LONG_TIME_PATTERNS 10
|
||||
|
||||
#define idx2string(idx) (locale_strings + (idx))
|
||||
|
||||
struct DateTimeFormatEntry
|
||||
{
|
||||
const uint16_t full_date_time_pattern;
|
||||
const uint16_t long_date_pattern;
|
||||
const uint16_t short_date_pattern;
|
||||
const uint16_t long_time_pattern;
|
||||
const uint16_t short_time_pattern;
|
||||
const uint16_t year_month_pattern;
|
||||
const uint16_t month_day_pattern;
|
||||
|
||||
const uint16_t am_designator;
|
||||
const uint16_t pm_designator;
|
||||
|
||||
const uint16_t day_names[NUM_DAYS];
|
||||
const uint16_t abbreviated_day_names[NUM_DAYS];
|
||||
const uint16_t month_names[NUM_MONTHS];
|
||||
const uint16_t abbreviated_month_names[NUM_MONTHS];
|
||||
|
||||
int8_t calendar_week_rule;
|
||||
int8_t first_day_of_week;
|
||||
|
||||
const uint16_t date_separator;
|
||||
const uint16_t time_separator;
|
||||
|
||||
const uint16_t short_date_patterns[NUM_SHORT_DATE_PATTERNS];
|
||||
const uint16_t long_date_patterns[NUM_LONG_DATE_PATTERNS];
|
||||
const uint16_t short_time_patterns[NUM_SHORT_TIME_PATTERNS];
|
||||
const uint16_t long_time_patterns[NUM_LONG_TIME_PATTERNS];
|
||||
};
|
||||
|
||||
struct NumberFormatEntry
|
||||
{
|
||||
const uint16_t currency_decimal_separator;
|
||||
const uint16_t currency_group_separator;
|
||||
const uint16_t percent_decimal_separator;
|
||||
const uint16_t percent_group_separator;
|
||||
const uint16_t number_decimal_separator;
|
||||
const uint16_t number_group_separator;
|
||||
|
||||
const uint16_t currency_symbol;
|
||||
const uint16_t percent_symbol;
|
||||
const uint16_t nan_symbol;
|
||||
const uint16_t per_mille_symbol;
|
||||
const uint16_t negative_infinity_symbol;
|
||||
const uint16_t positive_infinity_symbol;
|
||||
|
||||
const uint16_t negative_sign;
|
||||
const uint16_t positive_sign;
|
||||
|
||||
int8_t currency_negative_pattern;
|
||||
int8_t currency_positive_pattern;
|
||||
int8_t percent_negative_pattern;
|
||||
int8_t percent_positive_pattern;
|
||||
int8_t number_negative_pattern;
|
||||
|
||||
int8_t currency_decimal_digits;
|
||||
int8_t percent_decimal_digits;
|
||||
int8_t number_decimal_digits;
|
||||
|
||||
const int currency_group_sizes[GROUP_SIZE];
|
||||
const int percent_group_sizes[GROUP_SIZE];
|
||||
const int number_group_sizes[GROUP_SIZE];
|
||||
};
|
||||
|
||||
struct TextInfoEntry
|
||||
{
|
||||
/*const*/ int ansi;
|
||||
/*const*/ int ebcdic;
|
||||
/*const*/ int mac;
|
||||
/*const*/ int oem;
|
||||
/*const*/ char list_sep;
|
||||
};
|
||||
|
||||
struct CultureInfoEntry
|
||||
{
|
||||
int16_t lcid;
|
||||
int16_t parent_lcid;
|
||||
int16_t specific_lcid;
|
||||
int16_t region_entry_index;
|
||||
/*const*/ uint16_t name;
|
||||
/*const*/ uint16_t icu_name;
|
||||
/*const*/ uint16_t englishname;
|
||||
/*const*/ uint16_t displayname;
|
||||
/*const*/ uint16_t nativename;
|
||||
/*const*/ uint16_t win3lang;
|
||||
/*const*/ uint16_t iso3lang;
|
||||
/*const*/ uint16_t iso2lang;
|
||||
/*const*/ uint16_t territory;
|
||||
|
||||
int calendar_data[NUM_OPT_CALS];
|
||||
|
||||
int16_t datetime_format_index;
|
||||
int16_t number_format_index;
|
||||
|
||||
TextInfoEntry text_info;
|
||||
};
|
||||
|
||||
struct CultureInfoNameEntry
|
||||
{
|
||||
const uint16_t name;
|
||||
int16_t culture_entry_index;
|
||||
};
|
||||
|
||||
struct RegionInfoEntry
|
||||
{
|
||||
int16_t lcid;
|
||||
int16_t region_id;
|
||||
const uint16_t iso2name;
|
||||
const uint16_t iso3name;
|
||||
const uint16_t win3name;
|
||||
const uint16_t english_name;
|
||||
const uint16_t currency_symbol;
|
||||
const uint16_t iso_currency_symbol;
|
||||
const uint16_t currency_english_name;
|
||||
};
|
||||
|
||||
struct RegionInfoNameEntry
|
||||
{
|
||||
const uint16_t name;
|
||||
int16_t region_entry_index;
|
||||
};
|
||||
|
||||
#endif
|
||||
+4570
File diff suppressed because it is too large
Load Diff
+138
@@ -0,0 +1,138 @@
|
||||
//This is a Generated File.... Run CultureInfoUpdater tool to update
|
||||
/**
|
||||
* \file
|
||||
*/
|
||||
|
||||
#ifndef _MONO_METADATA_CULTURE_INFO_H_
|
||||
#define _MONO_METADATA_CULTURE_INFO_H_ 1
|
||||
|
||||
|
||||
|
||||
|
||||
#define NUM_DAYS 7
|
||||
#define NUM_MONTHS 13
|
||||
#define GROUP_SIZE 2
|
||||
#define NUM_CALENDARS 4
|
||||
|
||||
#define NUM_SHORT_DATE_PATTERNS 14
|
||||
#define NUM_LONG_DATE_PATTERNS 10
|
||||
#define NUM_SHORT_TIME_PATTERNS 12
|
||||
#define NUM_LONG_TIME_PATTERNS 9
|
||||
#define NUM_YEAR_MONTH_PATTERNS 8
|
||||
|
||||
#define idx2string(idx) (locale_strings + (idx))
|
||||
#define pattern2string(idx) (patterns + (idx))
|
||||
#define dtidx2string(idx) (datetime_strings + (idx))
|
||||
|
||||
/* need to change this if the string data ends up to not fit in a 64KB array. */
|
||||
|
||||
|
||||
typedef struct {
|
||||
const uint16_t month_day_pattern;
|
||||
const uint16_t am_designator;
|
||||
const uint16_t pm_designator;
|
||||
|
||||
const uint16_t day_names [NUM_DAYS];
|
||||
const uint16_t abbreviated_day_names [NUM_DAYS];
|
||||
const uint16_t shortest_day_names [NUM_DAYS];
|
||||
const uint16_t month_names [NUM_MONTHS];
|
||||
const uint16_t month_genitive_names [NUM_MONTHS];
|
||||
const uint16_t abbreviated_month_names [NUM_MONTHS];
|
||||
const uint16_t abbreviated_month_genitive_names [NUM_MONTHS];
|
||||
|
||||
const int8_t calendar_week_rule;
|
||||
const int8_t first_day_of_week;
|
||||
|
||||
const uint16_t date_separator;
|
||||
const uint16_t time_separator;
|
||||
|
||||
const uint16_t short_date_patterns [NUM_SHORT_DATE_PATTERNS];
|
||||
const uint16_t long_date_patterns [NUM_LONG_DATE_PATTERNS];
|
||||
const uint16_t short_time_patterns [NUM_SHORT_TIME_PATTERNS];
|
||||
const uint16_t long_time_patterns [NUM_LONG_TIME_PATTERNS];
|
||||
const uint16_t year_month_patterns [NUM_YEAR_MONTH_PATTERNS];
|
||||
} DateTimeFormatEntry;
|
||||
|
||||
typedef struct {
|
||||
const uint16_t currency_decimal_separator;
|
||||
const uint16_t currency_group_separator;
|
||||
const uint16_t number_decimal_separator;
|
||||
const uint16_t number_group_separator;
|
||||
|
||||
const uint16_t currency_symbol;
|
||||
const uint16_t percent_symbol;
|
||||
const uint16_t nan_symbol;
|
||||
const uint16_t per_mille_symbol;
|
||||
const uint16_t negative_infinity_symbol;
|
||||
const uint16_t positive_infinity_symbol;
|
||||
|
||||
const uint16_t negative_sign;
|
||||
const uint16_t positive_sign;
|
||||
|
||||
const int8_t currency_negative_pattern;
|
||||
const int8_t currency_positive_pattern;
|
||||
const int8_t percent_negative_pattern;
|
||||
const int8_t percent_positive_pattern;
|
||||
const int8_t number_negative_pattern;
|
||||
|
||||
const int8_t currency_decimal_digits;
|
||||
const int8_t number_decimal_digits;
|
||||
|
||||
const int currency_group_sizes [GROUP_SIZE];
|
||||
const int number_group_sizes [GROUP_SIZE];
|
||||
} NumberFormatEntry;
|
||||
|
||||
typedef struct {
|
||||
int ansi;
|
||||
int ebcdic;
|
||||
int mac;
|
||||
int oem;
|
||||
bool is_right_to_left;
|
||||
char list_sep;
|
||||
} TextInfoEntry;
|
||||
|
||||
typedef struct {
|
||||
int16_t lcid;
|
||||
int16_t parent_lcid;
|
||||
int16_t calendar_type;
|
||||
int16_t region_entry_index;
|
||||
uint16_t name;
|
||||
uint16_t englishname;
|
||||
uint16_t nativename;
|
||||
uint16_t win3lang;
|
||||
uint16_t iso3lang;
|
||||
uint16_t iso2lang;
|
||||
uint16_t territory;
|
||||
uint16_t native_calendar_names [NUM_CALENDARS];
|
||||
|
||||
int16_t datetime_format_index;
|
||||
int16_t number_format_index;
|
||||
|
||||
TextInfoEntry text_info;
|
||||
} CultureInfoEntry;
|
||||
|
||||
typedef struct {
|
||||
const uint16_t name;
|
||||
const int16_t culture_entry_index;
|
||||
} CultureInfoNameEntry;
|
||||
|
||||
typedef struct {
|
||||
const int16_t geo_id;
|
||||
const uint16_t iso2name;
|
||||
const uint16_t iso3name;
|
||||
const uint16_t win3name;
|
||||
const uint16_t english_name;
|
||||
const uint16_t native_name;
|
||||
const uint16_t currency_symbol;
|
||||
const uint16_t iso_currency_symbol;
|
||||
const uint16_t currency_english_name;
|
||||
const uint16_t currency_native_name;
|
||||
} RegionInfoEntry;
|
||||
|
||||
typedef struct {
|
||||
const uint16_t name;
|
||||
const int16_t region_entry_index;
|
||||
} RegionInfoNameEntry;
|
||||
|
||||
#endif
|
||||
|
||||
+8486
File diff suppressed because it is too large
Load Diff
+38
@@ -0,0 +1,38 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
#include "il2cpp-config.h"
|
||||
#include "il2cpp-object-internals.h"
|
||||
|
||||
struct Il2CppObject;
|
||||
struct Il2CppDelegate;
|
||||
struct Il2CppReflectionType;
|
||||
struct Il2CppReflectionMethod;
|
||||
struct Il2CppReflectionField;
|
||||
struct Il2CppArray;
|
||||
struct Il2CppException;
|
||||
struct Il2CppReflectionModule;
|
||||
struct Il2CppAssembly;
|
||||
struct Il2CppAssemblyName;
|
||||
struct Il2CppAppDomain;
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace Globalization
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API RegionInfo
|
||||
{
|
||||
public:
|
||||
static bool construct_internal_region_from_name(Il2CppRegionInfo* regionInfo, Il2CppString* name);
|
||||
};
|
||||
} /* namespace Globalization */
|
||||
} /* namespace System */
|
||||
} /* namespace mscorlib */
|
||||
} /* namespace icalls */
|
||||
} /* namespace il2cpp */
|
||||
+44
@@ -0,0 +1,44 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
#include "il2cpp-config.h"
|
||||
#include "il2cpp-object-internals.h"
|
||||
|
||||
struct Il2CppObject;
|
||||
struct Il2CppDelegate;
|
||||
struct Il2CppReflectionType;
|
||||
struct Il2CppReflectionMethod;
|
||||
struct Il2CppReflectionField;
|
||||
struct Il2CppArray;
|
||||
struct Il2CppException;
|
||||
struct Il2CppReflectionModule;
|
||||
struct Il2CppAssembly;
|
||||
struct Il2CppAssemblyName;
|
||||
struct Il2CppAppDomain;
|
||||
|
||||
typedef int32_t MonoIOError;
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace IO
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API DriveInfo
|
||||
{
|
||||
public:
|
||||
static uint32_t GetDriveTypeInternal(Il2CppString* rootPathName);
|
||||
static bool GetDiskFreeSpaceInternal(Il2CppString* pathName, uint64_t* freeBytesAvail, uint64_t* totalNumberOfBytes, uint64_t* totalNumberOfFreeBytes, MonoIOError* error);
|
||||
#if NET_4_0
|
||||
static Il2CppString* GetDriveFormat(Il2CppString* rootPathName);
|
||||
#endif
|
||||
};
|
||||
} /* namespace IO */
|
||||
} /* namespace System */
|
||||
} /* namespace mscorlib */
|
||||
} /* namespace icalls */
|
||||
} /* namespace il2cpp */
|
||||
+104
@@ -0,0 +1,104 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
#include "il2cpp-config.h"
|
||||
#include "il2cpp-object-internals.h"
|
||||
|
||||
struct Il2CppArray;
|
||||
struct Il2CppString;
|
||||
|
||||
typedef int32_t MonoIOError;
|
||||
typedef int32_t FileAttributes;
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace IO
|
||||
{
|
||||
struct FileStat
|
||||
{
|
||||
#if !NET_4_0
|
||||
Il2CppString *name;
|
||||
#endif
|
||||
int32_t attributes;
|
||||
int64_t length;
|
||||
int64_t creation_time;
|
||||
int64_t last_access_time;
|
||||
int64_t last_write_time;
|
||||
};
|
||||
|
||||
class LIBIL2CPP_CODEGEN_API MonoIO
|
||||
{
|
||||
public:
|
||||
static bool Close(intptr_t handle, int *error);
|
||||
static bool CopyFile(Il2CppString* src, Il2CppString* dest, bool overwrite, MonoIOError* error);
|
||||
static bool CopyFile40(Il2CppChar* src, Il2CppChar* dest, bool overwrite, MonoIOError* error);
|
||||
static bool CreateDirectory(Il2CppString* path, MonoIOError* error);
|
||||
static bool CreateDirectory40(Il2CppChar* path, MonoIOError* error);
|
||||
static bool CreatePipe(intptr_t* read_handle, intptr_t* write_handle);
|
||||
static bool DeleteFile(Il2CppString* path, MonoIOError* error);
|
||||
static bool DeleteFile40(Il2CppChar* path, MonoIOError* error);
|
||||
static bool DuplicateHandle(intptr_t source_process_handle, intptr_t source_handle, intptr_t target_process_handle, intptr_t* target_handle, int32_t access, int32_t inherit, int32_t options);
|
||||
static bool Flush(intptr_t handle, MonoIOError* error);
|
||||
static Il2CppString* GetCurrentDirectory(MonoIOError* error);
|
||||
static FileAttributes GetFileAttributes(Il2CppString* path, MonoIOError* error);
|
||||
static FileAttributes GetFileAttributes40(Il2CppChar* path, MonoIOError* error);
|
||||
static bool GetFileStat(Il2CppString* path, FileStat * stat, int32_t* error);
|
||||
static bool GetFileStat40(Il2CppChar* path, FileStat * stat, int32_t* error);
|
||||
static Il2CppArray* GetFileSystemEntries(Il2CppString* path, Il2CppString* path_with_pattern, int32_t attrs, int32_t mask, MonoIOError* error);
|
||||
static int GetFileType(intptr_t handle, int *error);
|
||||
static int64_t GetLength(intptr_t handle, int *error);
|
||||
static int32_t GetTempPath(Il2CppString** path);
|
||||
static void Lock(intptr_t handle, int64_t position, int64_t length, MonoIOError* error);
|
||||
static bool MoveFile(Il2CppString* src, Il2CppString* dest, MonoIOError* error);
|
||||
static bool MoveFile40(Il2CppChar* src, Il2CppChar* dest, MonoIOError* error);
|
||||
static intptr_t Open(Il2CppString *filename, int mode, int access_mode, int share, int options, int *error);
|
||||
static intptr_t Open40(Il2CppChar *filename, int mode, int access_mode, int share, int options, int *error);
|
||||
static int Read(intptr_t handle, Il2CppArray *dest, int dest_offset, int count, int *error);
|
||||
static bool RemoveDirectory(Il2CppString* path, MonoIOError* error);
|
||||
static bool RemoveDirectory40(Il2CppChar* path, MonoIOError* error);
|
||||
static bool ReplaceFile(Il2CppString* sourceFileName, Il2CppString* destinationFileName, Il2CppString* destinationBackupFileName, bool ignoreMetadataErrors, MonoIOError* error);
|
||||
static bool ReplaceFile40(Il2CppChar* sourceFileName, Il2CppChar* destinationFileName, Il2CppChar* destinationBackupFileName, bool ignoreMetadataErrors, MonoIOError* error);
|
||||
static int64_t Seek(intptr_t handle, int64_t offset, int origin, int *error);
|
||||
static bool SetCurrentDirectory(Il2CppString* path, int* error);
|
||||
static bool SetCurrentDirectory40(Il2CppChar* path, int* error);
|
||||
static bool SetFileAttributes(Il2CppString* path, FileAttributes attrs, MonoIOError* error);
|
||||
static bool SetFileAttributes40(Il2CppChar* path, FileAttributes attrs, MonoIOError* error);
|
||||
static bool SetFileTime(intptr_t handle, int64_t creation_time, int64_t last_access_time, int64_t last_write_time, MonoIOError* error);
|
||||
static bool SetLength(intptr_t handle, int64_t length, int *error);
|
||||
static void Unlock(intptr_t handle, int64_t position, int64_t length, MonoIOError* error);
|
||||
static int Write(intptr_t handle, Il2CppArray * src, int src_offset, int count, int * error);
|
||||
static Il2CppChar get_AltDirectorySeparatorChar(void);
|
||||
static intptr_t get_ConsoleError(void);
|
||||
static intptr_t get_ConsoleInput(void);
|
||||
static intptr_t get_ConsoleOutput(void);
|
||||
static Il2CppChar get_DirectorySeparatorChar(void);
|
||||
static Il2CppChar get_PathSeparator(void);
|
||||
static Il2CppChar get_VolumeSeparatorChar(void);
|
||||
static bool CreatePipe40(intptr_t* read_handle, intptr_t* write_handle, MonoIOError* error);
|
||||
static bool DuplicateHandle40(intptr_t source_process_handle, intptr_t source_handle, intptr_t target_process_handle, intptr_t* target_handle, int32_t access, int32_t inherit, int32_t options, MonoIOError* error);
|
||||
static bool RemapPath(Il2CppString* path, Il2CppString** newPath);
|
||||
|
||||
#if NET_4_0
|
||||
static int32_t FindClose(intptr_t handle);
|
||||
static Il2CppString* FindFirst(Il2CppString* path, Il2CppString* pathWithPattern, int32_t* resultAttributes, MonoIOError* error, intptr_t* handle);
|
||||
static Il2CppString* FindNext(intptr_t handle, int32_t* result_attr, MonoIOError* error);
|
||||
static void DumpHandles();
|
||||
#endif
|
||||
|
||||
#if NET_4_0
|
||||
static bool FindCloseFile(intptr_t hnd);
|
||||
static bool FindNextFile(intptr_t hnd, Il2CppString** fileName, int32_t* fileAttr, int32_t* error);
|
||||
static intptr_t FindFirstFile(Il2CppChar* path_with_pattern, Il2CppString** fileName, int32_t* fileAttr, int32_t* error);
|
||||
#endif
|
||||
};
|
||||
} /* namespace IO */
|
||||
} /* namespace System */
|
||||
} /* namespace mscorlib */
|
||||
} /* namespace icalls */
|
||||
} /* namespace il2cpp */
|
||||
@@ -0,0 +1,38 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
#include "il2cpp-config.h"
|
||||
#include "il2cpp-object-internals.h"
|
||||
|
||||
struct Il2CppObject;
|
||||
struct Il2CppDelegate;
|
||||
struct Il2CppReflectionType;
|
||||
struct Il2CppReflectionMethod;
|
||||
struct Il2CppReflectionField;
|
||||
struct Il2CppArray;
|
||||
struct Il2CppException;
|
||||
struct Il2CppReflectionModule;
|
||||
struct Il2CppAssembly;
|
||||
struct Il2CppAssemblyName;
|
||||
struct Il2CppAppDomain;
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace IO
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API Path
|
||||
{
|
||||
public:
|
||||
static Il2CppString* get_temp_path();
|
||||
};
|
||||
} /* namespace IO */
|
||||
} /* namespace System */
|
||||
} /* namespace mscorlib */
|
||||
} /* namespace icalls */
|
||||
} /* namespace il2cpp */
|
||||
+32
@@ -0,0 +1,32 @@
|
||||
#pragma once
|
||||
|
||||
#include "il2cpp-config.h"
|
||||
struct Il2CppString;
|
||||
struct mscorlib_System_Reflection_Emit_AssemblyBuilder;
|
||||
struct mscorlib_System_Reflection_Module;
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace Reflection
|
||||
{
|
||||
namespace Emit
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API AssemblyBuilder
|
||||
{
|
||||
public:
|
||||
static void basic_init(mscorlib_System_Reflection_Emit_AssemblyBuilder*);
|
||||
static mscorlib_System_Reflection_Module* InternalAddModule(mscorlib_System_Reflection_Emit_AssemblyBuilder * thisPtr, Il2CppString* fileName);
|
||||
static void UpdateNativeCustomAttributes40(mscorlib_System_Reflection_Emit_AssemblyBuilder * thisPtr);
|
||||
};
|
||||
} /* namespace Emit */
|
||||
} /* namespace Reflection */
|
||||
} /* namespace System */
|
||||
} /* namespace mscorlib */
|
||||
} /* namespace icalls */
|
||||
} /* namespace il2cpp */
|
||||
+41
@@ -0,0 +1,41 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
#include "il2cpp-config.h"
|
||||
#include "il2cpp-object-internals.h"
|
||||
|
||||
struct Il2CppObject;
|
||||
struct Il2CppDelegate;
|
||||
struct Il2CppReflectionType;
|
||||
struct Il2CppReflectionMethod;
|
||||
struct Il2CppReflectionField;
|
||||
struct Il2CppArray;
|
||||
struct Il2CppException;
|
||||
struct Il2CppReflectionModule;
|
||||
struct Il2CppAssembly;
|
||||
struct Il2CppAssemblyName;
|
||||
struct Il2CppAppDomain;
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace Reflection
|
||||
{
|
||||
namespace Emit
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API CustomAttributeBuilder
|
||||
{
|
||||
public:
|
||||
static Il2CppArray* GetBlob(Il2CppAssembly* asmb, void* /* System.Reflection.ConstructorInfo */ con, Il2CppArray* constructorArgs, Il2CppArray* namedProperties, Il2CppArray* propertyValues, Il2CppArray* namedFields, Il2CppArray* fieldValues);
|
||||
};
|
||||
} /* namespace Emit */
|
||||
} /* namespace Reflection */
|
||||
} /* namespace System */
|
||||
} /* namespace mscorlib */
|
||||
} /* namespace icalls */
|
||||
} /* namespace il2cpp */
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
#pragma once
|
||||
|
||||
#include "il2cpp-config.h"
|
||||
struct Il2CppReflectionType;
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace Reflection
|
||||
{
|
||||
namespace Emit
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API DerivedType
|
||||
{
|
||||
public:
|
||||
static void create_unmanaged_type(Il2CppReflectionType* type);
|
||||
};
|
||||
} /* namespace Emit */
|
||||
} /* namespace Reflection */
|
||||
} /* namespace System */
|
||||
} /* namespace mscorlib */
|
||||
} /* namespace icalls */
|
||||
} /* namespace il2cpp */
|
||||
+29
@@ -0,0 +1,29 @@
|
||||
#pragma once
|
||||
|
||||
#include "il2cpp-config.h"
|
||||
struct Il2CppReflectionDynamicMethod;
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace Reflection
|
||||
{
|
||||
namespace Emit
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API DynamicMethod
|
||||
{
|
||||
public:
|
||||
static void create_dynamic_method(Il2CppReflectionDynamicMethod*, Il2CppReflectionDynamicMethod*);
|
||||
static void destroy_dynamic_method(Il2CppReflectionDynamicMethod*, Il2CppReflectionDynamicMethod*);
|
||||
};
|
||||
} /* namespace Emit */
|
||||
} /* namespace Reflection */
|
||||
} /* namespace System */
|
||||
} /* namespace mscorlib */
|
||||
} /* namespace icalls */
|
||||
} /* namespace il2cpp */
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
#pragma once
|
||||
|
||||
#include "il2cpp-config.h"
|
||||
struct Il2CppReflectionType;
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace Reflection
|
||||
{
|
||||
namespace Emit
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API EnumBuilder
|
||||
{
|
||||
public:
|
||||
static void setup_enum_type(Il2CppReflectionType *enumtype, Il2CppReflectionType* t);
|
||||
};
|
||||
} /* namespace Emit */
|
||||
} /* namespace Reflection */
|
||||
} /* namespace System */
|
||||
} /* namespace mscorlib */
|
||||
} /* namespace icalls */
|
||||
} /* namespace il2cpp */
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
#pragma once
|
||||
|
||||
#include "il2cpp-config.h"
|
||||
struct Il2CppReflectionGenericParam;
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace Reflection
|
||||
{
|
||||
namespace Emit
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API GenericTypeParameterBuilder
|
||||
{
|
||||
public:
|
||||
static void initialize(Il2CppReflectionGenericParam* genericParameter);
|
||||
};
|
||||
} /* namespace Emit */
|
||||
} /* namespace Reflection */
|
||||
} /* namespace System */
|
||||
} /* namespace mscorlib */
|
||||
} /* namespace icalls */
|
||||
} /* namespace il2cpp */
|
||||
+29
@@ -0,0 +1,29 @@
|
||||
#pragma once
|
||||
|
||||
#include "il2cpp-config.h"
|
||||
struct Il2CppArray;
|
||||
struct Il2CppReflectionMethod;
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace Reflection
|
||||
{
|
||||
namespace Emit
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API MethodBuilder
|
||||
{
|
||||
public:
|
||||
static Il2CppReflectionMethod* MakeGenericMethod(Il2CppReflectionMethod*, Il2CppArray*);
|
||||
};
|
||||
} /* namespace Emit */
|
||||
} /* namespace Reflection */
|
||||
} /* namespace System */
|
||||
} /* namespace mscorlib */
|
||||
} /* namespace icalls */
|
||||
} /* namespace il2cpp */
|
||||
+50
@@ -0,0 +1,50 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
#include "il2cpp-config.h"
|
||||
#include "il2cpp-object-internals.h"
|
||||
|
||||
struct Il2CppObject;
|
||||
struct Il2CppArray;
|
||||
struct Il2CppString;
|
||||
struct Il2CppReflectionMethod;
|
||||
struct Il2CppReflectionModuleBuilder;
|
||||
struct Il2CppReflectionTypeBuilder;
|
||||
struct Il2CppReflectionType;
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace Reflection
|
||||
{
|
||||
namespace Emit
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API ModuleBuilder
|
||||
{
|
||||
public:
|
||||
static void RegisterToken(Il2CppReflectionModuleBuilder*, Il2CppObject*, int);
|
||||
static void WriteToFile(Il2CppReflectionModuleBuilder*, intptr_t);
|
||||
static void basic_init(Il2CppReflectionModuleBuilder*);
|
||||
static void build_metadata(Il2CppReflectionModuleBuilder*);
|
||||
static Il2CppReflectionType * create_modified_type(Il2CppReflectionTypeBuilder*, Il2CppString*);
|
||||
static int32_t getToken(Il2CppReflectionModuleBuilder*, Il2CppObject*);
|
||||
static int32_t getUSIndex(Il2CppReflectionModuleBuilder*, Il2CppString*);
|
||||
static void set_wrappers_type(Il2CppReflectionModuleBuilder*, Il2CppReflectionType*);
|
||||
static int32_t getMethodToken(Il2CppReflectionModuleBuilder*, Il2CppReflectionMethod*, Il2CppArray*);
|
||||
#if NET_4_0
|
||||
static int32_t getMethodToken40(Il2CppObject* mb, Il2CppObject* method, Il2CppArray* opt_param_types);
|
||||
static int32_t getToken40(Il2CppObject* mb, Il2CppObject* obj, bool create_open_instance);
|
||||
static Il2CppObject* GetRegisteredToken(Il2CppObject* _this, int32_t token);
|
||||
#endif
|
||||
};
|
||||
} /* namespace Emit */
|
||||
} /* namespace Reflection */
|
||||
} /* namespace System */
|
||||
} /* namespace mscorlib */
|
||||
} /* namespace icalls */
|
||||
} /* namespace il2cpp */
|
||||
+30
@@ -0,0 +1,30 @@
|
||||
#pragma once
|
||||
|
||||
#include "il2cpp-config.h"
|
||||
struct Il2CppArray;
|
||||
struct Il2CppReflectionSigHelper;
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace Reflection
|
||||
{
|
||||
namespace Emit
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API SignatureHelper
|
||||
{
|
||||
public:
|
||||
static Il2CppArray* get_signature_field(Il2CppReflectionSigHelper*);
|
||||
static Il2CppArray* get_signature_local(Il2CppReflectionSigHelper*);
|
||||
};
|
||||
} /* namespace Emit */
|
||||
} /* namespace Reflection */
|
||||
} /* namespace System */
|
||||
} /* namespace mscorlib */
|
||||
} /* namespace icalls */
|
||||
} /* namespace il2cpp */
|
||||
+27
@@ -0,0 +1,27 @@
|
||||
#if NET_4_0
|
||||
#pragma once
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace Reflection
|
||||
{
|
||||
namespace Emit
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API SymbolType
|
||||
{
|
||||
public:
|
||||
static void create_unmanaged_type(Il2CppObject* type);
|
||||
};
|
||||
} // namespace Emit
|
||||
} // namespace Reflection
|
||||
} // namespace System
|
||||
} // namespace mscorlib
|
||||
} // namespace icalls
|
||||
} // namespace il2cpp
|
||||
#endif
|
||||
+38
@@ -0,0 +1,38 @@
|
||||
#pragma once
|
||||
|
||||
#include "il2cpp-config.h"
|
||||
struct Il2CppReflectionEvent;
|
||||
struct Il2CppReflectionEventBuilder;
|
||||
struct Il2CppReflectionType;
|
||||
struct Il2CppReflectionTypeBuilder;
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace Reflection
|
||||
{
|
||||
namespace Emit
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API TypeBuilder
|
||||
{
|
||||
public:
|
||||
static void create_generic_class(Il2CppReflectionTypeBuilder*);
|
||||
static void create_internal_class(Il2CppReflectionTypeBuilder*);
|
||||
static Il2CppReflectionType* create_runtime_class(Il2CppReflectionTypeBuilder*, Il2CppReflectionTypeBuilder*);
|
||||
static bool get_IsGenericParameter(Il2CppReflectionTypeBuilder*);
|
||||
static Il2CppReflectionEvent* get_event_info(Il2CppReflectionTypeBuilder*, Il2CppReflectionEventBuilder*);
|
||||
static void setup_generic_class(Il2CppReflectionTypeBuilder*);
|
||||
static void setup_internal_class(Il2CppReflectionTypeBuilder*, Il2CppReflectionTypeBuilder*);
|
||||
static Il2CppReflectionType* create_runtime_class40(Il2CppReflectionTypeBuilder*);
|
||||
};
|
||||
} /* namespace Emit */
|
||||
} /* namespace Reflection */
|
||||
} /* namespace System */
|
||||
} /* namespace mscorlib */
|
||||
} /* namespace icalls */
|
||||
} /* namespace il2cpp */
|
||||
+70
@@ -0,0 +1,70 @@
|
||||
#pragma once
|
||||
|
||||
#include "il2cpp-config.h"
|
||||
#include "il2cpp-object-internals.h"
|
||||
|
||||
struct Il2CppString;
|
||||
struct Il2CppAssemblyName;
|
||||
struct Il2CppReflectionAssembly;
|
||||
struct mscorlib_System_Reflection_Assembly;
|
||||
struct mscorlib_System_Reflection_Module;
|
||||
struct mscorlib_System_Security_Policy_Evidence;
|
||||
struct mscorlib_System_Reflection_AssemblyName;
|
||||
struct Il2CppMonoAssemblyName;
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace Reflection
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API Assembly
|
||||
{
|
||||
public:
|
||||
static Il2CppReflectionAssembly* GetExecutingAssembly();
|
||||
static Il2CppReflectionAssembly* GetEntryAssembly();
|
||||
static Il2CppReflectionAssembly* GetCallingAssembly();
|
||||
static void FillName(Il2CppReflectionAssembly* ass, mscorlib_System_Reflection_AssemblyName* aname);
|
||||
static Il2CppObject* GetFilesInternal(Il2CppAssembly* self, Il2CppString* name, bool getResourceModules);
|
||||
static Il2CppReflectionModule* GetManifestModuleInternal(Il2CppAssembly* self);
|
||||
static bool GetManifestResourceInfoInternal(Il2CppReflectionAssembly* assembly, Il2CppString* name, Il2CppManifestResourceInfo* info);
|
||||
static intptr_t GetManifestResourceInternal(Il2CppReflectionAssembly* assembly, Il2CppString* name, int* size, Il2CppReflectionModule** module);
|
||||
static Il2CppArray* GetManifestResourceNames(Il2CppReflectionAssembly* assembly);
|
||||
static Il2CppArray* GetModulesInternal(Il2CppReflectionAssembly* thisPtr);
|
||||
static Il2CppArray* GetNamespaces(Il2CppAssembly* self);
|
||||
static Il2CppArray* GetReferencedAssemblies(Il2CppReflectionAssembly* self);
|
||||
static void InternalGetAssemblyName(Il2CppString* assemblyFile, Il2CppAssemblyName* aname);
|
||||
#if NET_4_0
|
||||
static void InternalGetAssemblyName40(Il2CppString* assemblyFile, Il2CppMonoAssemblyName* aname, Il2CppString** codebase);
|
||||
#endif
|
||||
static Il2CppReflectionType* InternalGetType(Il2CppReflectionAssembly* , mscorlib_System_Reflection_Module* , Il2CppString* , bool, bool);
|
||||
static Il2CppString* InternalImageRuntimeVersion(Il2CppAssembly* self);
|
||||
static Il2CppReflectionAssembly* LoadFrom(Il2CppString* assemblyFile, bool refonly);
|
||||
static bool LoadPermissions(mscorlib_System_Reflection_Assembly* a, intptr_t* minimum, int32_t* minLength, intptr_t* optional, int32_t* optLength, intptr_t* refused, int32_t* refLength);
|
||||
static int32_t MonoDebugger_GetMethodToken(void* /* System.Reflection.MethodBase */ method);
|
||||
static Il2CppReflectionMethod* get_EntryPoint(Il2CppReflectionAssembly* self);
|
||||
static bool get_ReflectionOnly(Il2CppAssembly* self);
|
||||
static Il2CppString* get_code_base(Il2CppReflectionAssembly* assembly, bool escaped);
|
||||
static Il2CppString* get_fullname(Il2CppReflectionAssembly *ass);
|
||||
static bool get_global_assembly_cache(Il2CppAssembly* self);
|
||||
static Il2CppString* get_location(Il2CppReflectionAssembly *assembly);
|
||||
static Il2CppReflectionAssembly* load_with_partial_name(Il2CppString* name, mscorlib_System_Security_Policy_Evidence* evidence);
|
||||
static Il2CppArray* GetTypes(Il2CppReflectionAssembly* thisPtr, bool exportedOnly);
|
||||
|
||||
#if NET_4_0
|
||||
static Il2CppString* GetAotId();
|
||||
#endif
|
||||
|
||||
#if NET_4_0
|
||||
static intptr_t InternalGetReferencedAssemblies(Il2CppReflectionAssembly* module);
|
||||
#endif
|
||||
};
|
||||
} /* namespace Reflection */
|
||||
} /* namespace System */
|
||||
} /* namespace mscorlib */
|
||||
} /* namespace icalls */
|
||||
} /* namespace il2cpp */
|
||||
+34
@@ -0,0 +1,34 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
#include "il2cpp-config.h"
|
||||
|
||||
struct Il2CppString;
|
||||
struct Il2CppReflectionAssemblyName;
|
||||
struct Il2CppMonoAssemblyName;
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace Reflection
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API AssemblyName
|
||||
{
|
||||
public:
|
||||
static bool ParseName(Il2CppReflectionAssemblyName* aname, Il2CppString* assemblyName);
|
||||
#if NET_4_0
|
||||
static void get_public_token(uint8_t* token, uint8_t* pubkey, int32_t len);
|
||||
static Il2CppMonoAssemblyName* GetNativeName(intptr_t assembly_ptr);
|
||||
static bool ParseAssemblyName(intptr_t name, Il2CppMonoAssemblyName* aname, bool* is_version_defined, bool* is_token_defined);
|
||||
#endif
|
||||
};
|
||||
} /* namespace Reflection */
|
||||
} /* namespace System */
|
||||
} /* namespace mscorlib */
|
||||
} /* namespace icalls */
|
||||
} /* namespace il2cpp */
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
#if NET_4_0
|
||||
#pragma once
|
||||
|
||||
#include "il2cpp-object-internals.h"
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace Reflection
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API CustomAttributeData
|
||||
{
|
||||
public:
|
||||
static void ResolveArgumentsInternal(Il2CppObject* ctor, Il2CppObject* assembly, intptr_t data, uint32_t data_length, Il2CppArray** ctorArgs, Il2CppArray** namedArgs);
|
||||
};
|
||||
} // namespace Reflection
|
||||
} // namespace System
|
||||
} // namespace mscorlib
|
||||
} // namespace icalls
|
||||
} // namespace il2cpp
|
||||
#endif
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
#pragma once
|
||||
|
||||
#if NET_4_0
|
||||
|
||||
#include "il2cpp-object-internals.h"
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace Reflection
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API EventInfo
|
||||
{
|
||||
public:
|
||||
static Il2CppReflectionEvent* internal_from_handle_type(intptr_t event_handle, intptr_t type_handle);
|
||||
};
|
||||
} // namespace Reflection
|
||||
} // namespace System
|
||||
} // namespace mscorlib
|
||||
} // namespace icalls
|
||||
} // namespace il2cpp
|
||||
|
||||
#endif
|
||||
+33
@@ -0,0 +1,33 @@
|
||||
#pragma once
|
||||
|
||||
#include "il2cpp-object-internals.h"
|
||||
#include "il2cpp-config.h"
|
||||
|
||||
struct Il2CppReflectionField;
|
||||
struct Il2CppReflectionMarshal;
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace Reflection
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API FieldInfo
|
||||
{
|
||||
public:
|
||||
static Il2CppReflectionMarshal* GetUnmanagedMarshal(Il2CppReflectionField* field);
|
||||
static Il2CppReflectionField* internal_from_handle_type(intptr_t field_handle, intptr_t type_handle);
|
||||
static Il2CppArray* GetTypeModifiers(Il2CppReflectionField* field, bool optional);
|
||||
#if NET_4_0
|
||||
static Il2CppObject* get_marshal_info(Il2CppObject* _this);
|
||||
#endif
|
||||
};
|
||||
} /* namespace Reflection */
|
||||
} /* namespace System */
|
||||
} /* namespace mscorlib */
|
||||
} /* namespace icalls */
|
||||
} /* namespace il2cpp */
|
||||
+38
@@ -0,0 +1,38 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
#include "il2cpp-config.h"
|
||||
#include "il2cpp-object-internals.h"
|
||||
|
||||
struct Il2CppObject;
|
||||
struct Il2CppDelegate;
|
||||
struct Il2CppReflectionType;
|
||||
struct Il2CppReflectionMethod;
|
||||
struct Il2CppReflectionField;
|
||||
struct Il2CppArray;
|
||||
struct Il2CppException;
|
||||
struct Il2CppReflectionModule;
|
||||
struct Il2CppAssembly;
|
||||
struct Il2CppAssemblyName;
|
||||
struct Il2CppAppDomain;
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace Reflection
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API MemberInfo
|
||||
{
|
||||
public:
|
||||
static int32_t get_MetadataToken(Il2CppObject* /* System.Reflection.MemberInfo */ self);
|
||||
};
|
||||
} /* namespace Reflection */
|
||||
} /* namespace System */
|
||||
} /* namespace mscorlib */
|
||||
} /* namespace icalls */
|
||||
} /* namespace il2cpp */
|
||||
+31
@@ -0,0 +1,31 @@
|
||||
#pragma once
|
||||
|
||||
#include "il2cpp-config.h"
|
||||
#include "il2cpp-object-internals.h"
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace Reflection
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API MethodBase
|
||||
{
|
||||
public:
|
||||
static Il2CppReflectionMethod* GetCurrentMethod();
|
||||
static void* /* System.Reflection.MethodBody */ GetMethodBodyInternal(intptr_t handle);
|
||||
static Il2CppReflectionMethod* GetMethodFromHandleInternalType(intptr_t method, intptr_t type);
|
||||
|
||||
#if NET_4_0
|
||||
static Il2CppReflectionMethod* GetMethodFromHandleInternalType_native(intptr_t method_handle, intptr_t type_handle, bool genericCheck);
|
||||
#endif
|
||||
};
|
||||
} /* namespace Reflection */
|
||||
} /* namespace System */
|
||||
} /* namespace mscorlib */
|
||||
} /* namespace icalls */
|
||||
} /* namespace il2cpp */
|
||||
+45
@@ -0,0 +1,45 @@
|
||||
#pragma once
|
||||
|
||||
#include "il2cpp-config.h"
|
||||
#include "il2cpp-object-internals.h"
|
||||
|
||||
struct Il2CppArray;
|
||||
struct Il2CppString;
|
||||
struct mscorlib_System_Reflection_Module;
|
||||
|
||||
typedef int32_t PortableExecutableKinds;
|
||||
typedef int32_t ImageFileMachine;
|
||||
typedef int32_t ResolveTokenError;
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace Reflection
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API Module
|
||||
{
|
||||
public:
|
||||
static Il2CppReflectionType* GetGlobalType(Il2CppReflectionModule* self);
|
||||
static Il2CppString* GetGuidInternal(mscorlib_System_Reflection_Module * thisPtr);
|
||||
static int32_t GetMDStreamVersion(intptr_t module_handle);
|
||||
static void GetPEKind(intptr_t module, PortableExecutableKinds* peKind, ImageFileMachine* machine);
|
||||
static Il2CppArray* InternalGetTypes(Il2CppReflectionModule * self);
|
||||
static intptr_t ResolveFieldToken(intptr_t module, int32_t token, Il2CppArray* type_args, Il2CppArray* method_args, ResolveTokenError* error);
|
||||
static void* /* System.Reflection.MemberInfo */ ResolveMemberToken(intptr_t module, int32_t token, Il2CppArray* type_args, Il2CppArray* method_args, ResolveTokenError* error);
|
||||
static intptr_t ResolveMethodToken(intptr_t module, int32_t token, Il2CppArray* type_args, Il2CppArray* method_args, ResolveTokenError* error);
|
||||
static Il2CppArray* ResolveSignature(intptr_t module, int32_t metadataToken, ResolveTokenError* error);
|
||||
static Il2CppString* ResolveStringToken(intptr_t module, int32_t token, ResolveTokenError* error);
|
||||
static intptr_t ResolveTypeToken(intptr_t module, int32_t token, Il2CppArray* type_args, Il2CppArray* method_args, ResolveTokenError* error);
|
||||
static int32_t get_MetadataToken(Il2CppReflectionModule* self);
|
||||
static intptr_t GetHINSTANCE(mscorlib_System_Reflection_Module * thisPtr);
|
||||
};
|
||||
} /* namespace Reflection */
|
||||
} /* namespace System */
|
||||
} /* namespace mscorlib */
|
||||
} /* namespace icalls */
|
||||
} /* namespace il2cpp */
|
||||
+41
@@ -0,0 +1,41 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
#include "il2cpp-config.h"
|
||||
#include "il2cpp-object-internals.h"
|
||||
|
||||
struct Il2CppObject;
|
||||
struct Il2CppDelegate;
|
||||
struct Il2CppReflectionType;
|
||||
struct Il2CppReflectionMethod;
|
||||
struct Il2CppReflectionField;
|
||||
struct Il2CppArray;
|
||||
struct Il2CppException;
|
||||
struct Il2CppReflectionModule;
|
||||
struct Il2CppAssembly;
|
||||
struct Il2CppAssemblyName;
|
||||
struct Il2CppAppDomain;
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace Reflection
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API MonoCMethod
|
||||
{
|
||||
public:
|
||||
static Il2CppObject* InternalInvoke(void* /* System.Reflection.MonoCMethod */ self, Il2CppObject* obj, Il2CppArray* parameters, Il2CppException** exc);
|
||||
#if NET_4_0
|
||||
static int32_t get_core_clr_security_level(Il2CppObject* _this);
|
||||
#endif
|
||||
};
|
||||
} /* namespace Reflection */
|
||||
} /* namespace System */
|
||||
} /* namespace mscorlib */
|
||||
} /* namespace icalls */
|
||||
} /* namespace il2cpp */
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
#pragma once
|
||||
|
||||
#include "il2cpp-config.h"
|
||||
struct Il2CppReflectionMonoEvent;
|
||||
struct Il2CppReflectionMonoEventInfo;
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace Reflection
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API MonoEventInfo
|
||||
{
|
||||
public:
|
||||
static void get_event_info(Il2CppReflectionMonoEvent* event, Il2CppReflectionMonoEventInfo* eventInfo);
|
||||
};
|
||||
} /* namespace Reflection */
|
||||
} /* namespace System */
|
||||
} /* namespace mscorlib */
|
||||
} /* namespace icalls */
|
||||
} /* namespace il2cpp */
|
||||
+38
@@ -0,0 +1,38 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
#include "il2cpp-config.h"
|
||||
#include "il2cpp-object-internals.h"
|
||||
|
||||
struct mscorlib_System_Reflection_FieldInfo;
|
||||
struct mscorlib_System_Reflection_Emit_UnmanagedMarshal;
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace Reflection
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API MonoField
|
||||
{
|
||||
public:
|
||||
static int32_t GetFieldOffset(Il2CppReflectionField * thisPtr);
|
||||
static Il2CppReflectionType * GetParentType(Il2CppReflectionField * field, bool declaring);
|
||||
static Il2CppObject* GetRawConstantValue(Il2CppReflectionField* field);
|
||||
static Il2CppObject * GetValueInternal(Il2CppReflectionField * thisPtr, Il2CppObject * obj);
|
||||
static void SetValueInternal(Il2CppReflectionField * fi, Il2CppObject * obj, Il2CppObject * value);
|
||||
|
||||
#if NET_4_0
|
||||
static int32_t get_core_clr_security_level(Il2CppObject* _this);
|
||||
static Il2CppObject* ResolveType(Il2CppObject* _this);
|
||||
#endif
|
||||
};
|
||||
} /* namespace Reflection */
|
||||
} /* namespace System */
|
||||
} /* namespace mscorlib */
|
||||
} /* namespace icalls */
|
||||
} /* namespace il2cpp */
|
||||
+38
@@ -0,0 +1,38 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
#include "il2cpp-config.h"
|
||||
#include "il2cpp-object-internals.h"
|
||||
|
||||
struct Il2CppObject;
|
||||
struct Il2CppDelegate;
|
||||
struct Il2CppReflectionType;
|
||||
struct Il2CppReflectionMethod;
|
||||
struct Il2CppReflectionField;
|
||||
struct Il2CppArray;
|
||||
struct Il2CppException;
|
||||
struct Il2CppReflectionModule;
|
||||
struct Il2CppAssembly;
|
||||
struct Il2CppAssemblyName;
|
||||
struct Il2CppAppDomain;
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace Reflection
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API MonoGenericCMethod
|
||||
{
|
||||
public:
|
||||
static Il2CppReflectionType* get_ReflectedType(void* /* System.Reflection.MonoGenericCMethod */ self);
|
||||
};
|
||||
} /* namespace Reflection */
|
||||
} /* namespace System */
|
||||
} /* namespace mscorlib */
|
||||
} /* namespace icalls */
|
||||
} /* namespace il2cpp */
|
||||
+30
@@ -0,0 +1,30 @@
|
||||
#pragma once
|
||||
|
||||
#include "il2cpp-config.h"
|
||||
struct Il2CppArray;
|
||||
struct mscorlib_System_Reflection_MonoGenericClass;
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace Reflection
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API MonoGenericClass
|
||||
{
|
||||
public:
|
||||
static void initialize(mscorlib_System_Reflection_MonoGenericClass * thisPtr, Il2CppArray* methods, Il2CppArray* ctors, Il2CppArray* fields, Il2CppArray* properties, Il2CppArray* events);
|
||||
#if NET_4_0
|
||||
static void initialize40(Il2CppObject* _this, Il2CppArray* fields);
|
||||
static void register_with_runtime(Il2CppObject* type);
|
||||
#endif
|
||||
};
|
||||
} /* namespace Reflection */
|
||||
} /* namespace System */
|
||||
} /* namespace mscorlib */
|
||||
} /* namespace icalls */
|
||||
} /* namespace il2cpp */
|
||||
+38
@@ -0,0 +1,38 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
#include "il2cpp-config.h"
|
||||
#include "il2cpp-object-internals.h"
|
||||
|
||||
struct Il2CppObject;
|
||||
struct Il2CppDelegate;
|
||||
struct Il2CppReflectionType;
|
||||
struct Il2CppReflectionMethod;
|
||||
struct Il2CppReflectionField;
|
||||
struct Il2CppArray;
|
||||
struct Il2CppException;
|
||||
struct Il2CppReflectionModule;
|
||||
struct Il2CppAssembly;
|
||||
struct Il2CppAssemblyName;
|
||||
struct Il2CppAppDomain;
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace Reflection
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API MonoGenericMethod
|
||||
{
|
||||
public:
|
||||
static Il2CppReflectionType* get_ReflectedType(void* /* System.Reflection.MonoGenericMethod */ self);
|
||||
};
|
||||
} /* namespace Reflection */
|
||||
} /* namespace System */
|
||||
} /* namespace mscorlib */
|
||||
} /* namespace icalls */
|
||||
} /* namespace il2cpp */
|
||||
+43
@@ -0,0 +1,43 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
#include "il2cpp-config.h"
|
||||
#include "il2cpp-object-internals.h"
|
||||
|
||||
struct mscorlib_System_Runtime_InteropServices_DllImportAttribute;
|
||||
struct mscorlib_System_Reflection_MethodInfo;
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace Reflection
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API MonoMethod
|
||||
{
|
||||
public:
|
||||
static mscorlib_System_Runtime_InteropServices_DllImportAttribute * GetDllImportAttribute(intptr_t);
|
||||
static Il2CppArray * GetGenericArguments(Il2CppReflectionMethod *);
|
||||
static Il2CppReflectionMethod* GetGenericMethodDefinition_impl(Il2CppReflectionMethod* method);
|
||||
static Il2CppObject * InternalInvoke(Il2CppReflectionMethod * method, Il2CppObject * thisPtr, Il2CppArray * params, Il2CppObject * * exc);
|
||||
static bool get_IsGenericMethod(Il2CppReflectionMethod *);
|
||||
static bool get_IsGenericMethodDefinition(Il2CppReflectionMethod *);
|
||||
static Il2CppReflectionMethod* get_base_definition(Il2CppReflectionMethod *);
|
||||
static Il2CppString * get_name(Il2CppReflectionMethod * m);
|
||||
static Il2CppReflectionMethod* MakeGenericMethod_impl(Il2CppReflectionMethod *, Il2CppArray *);
|
||||
|
||||
#if NET_4_0
|
||||
static int32_t get_core_clr_security_level(Il2CppObject* _this);
|
||||
static Il2CppReflectionMethod* get_base_method(Il2CppReflectionMethod* method, bool definition);
|
||||
static void GetPInvoke(Il2CppReflectionMethod* _this, int32_t* flags, Il2CppString** entryPoint, Il2CppString** dllName);
|
||||
#endif
|
||||
};
|
||||
} /* namespace Reflection */
|
||||
} /* namespace System */
|
||||
} /* namespace mscorlib */
|
||||
} /* namespace icalls */
|
||||
} /* namespace il2cpp */
|
||||
+32
@@ -0,0 +1,32 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
#include "il2cpp-config.h"
|
||||
#include "il2cpp-object-internals.h"
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace Reflection
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API MonoMethodInfo
|
||||
{
|
||||
public:
|
||||
static void get_method_info(intptr_t methodPtr, Il2CppMethodInfo* info);
|
||||
static void* /* System.Reflection.Emit.UnmanagedMarshal */ get_retval_marshal(intptr_t handle);
|
||||
static Il2CppArray* get_parameter_info(intptr_t methodPtr, Il2CppReflectionMethod* member);
|
||||
|
||||
#if NET_4_0
|
||||
static int32_t get_method_attributes(intptr_t methodPtr);
|
||||
#endif
|
||||
};
|
||||
} /* namespace Reflection */
|
||||
} /* namespace System */
|
||||
} /* namespace mscorlib */
|
||||
} /* namespace icalls */
|
||||
} /* namespace il2cpp */
|
||||
+42
@@ -0,0 +1,42 @@
|
||||
#pragma once
|
||||
|
||||
#include "il2cpp-config.h"
|
||||
struct Il2CppReflectionProperty;
|
||||
struct Il2CppPropertyInfo;
|
||||
struct Il2CppArray;
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace Reflection
|
||||
{
|
||||
typedef enum
|
||||
{
|
||||
PInfo_Attributes = 1,
|
||||
PInfo_GetMethod = 1 << 1,
|
||||
PInfo_SetMethod = 1 << 2,
|
||||
PInfo_ReflectedType = 1 << 3,
|
||||
PInfo_DeclaringType = 1 << 4,
|
||||
PInfo_Name = 1 << 5
|
||||
} PInfo;
|
||||
|
||||
class LIBIL2CPP_CODEGEN_API MonoPropertyInfo
|
||||
{
|
||||
public:
|
||||
static Il2CppArray* GetTypeModifiers(void* /* System.Reflection.MonoProperty */ prop, bool optional);
|
||||
static void get_property_info(Il2CppReflectionProperty *property, Il2CppPropertyInfo *info, PInfo req_info);
|
||||
|
||||
#if NET_4_0
|
||||
static Il2CppObject* get_default_value(Il2CppReflectionProperty* prop);
|
||||
#endif
|
||||
};
|
||||
} /* namespace Reflection */
|
||||
} /* namespace System */
|
||||
} /* namespace mscorlib */
|
||||
} /* namespace icalls */
|
||||
} /* namespace il2cpp */
|
||||
+39
@@ -0,0 +1,39 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
#include "il2cpp-config.h"
|
||||
#include "il2cpp-object-internals.h"
|
||||
|
||||
struct Il2CppObject;
|
||||
struct Il2CppDelegate;
|
||||
struct Il2CppReflectionType;
|
||||
struct Il2CppReflectionMethod;
|
||||
struct Il2CppReflectionField;
|
||||
struct Il2CppArray;
|
||||
struct Il2CppException;
|
||||
struct Il2CppReflectionModule;
|
||||
struct Il2CppAssembly;
|
||||
struct Il2CppAssemblyName;
|
||||
struct Il2CppAppDomain;
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace Reflection
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API ParameterInfo
|
||||
{
|
||||
public:
|
||||
static Il2CppArray* GetTypeModifiers(void* /* System.Reflection.ParameterInfo */ self, bool optional);
|
||||
static int32_t GetMetadataToken(Il2CppReflectionParameter* self);
|
||||
};
|
||||
} /* namespace Reflection */
|
||||
} /* namespace System */
|
||||
} /* namespace mscorlib */
|
||||
} /* namespace icalls */
|
||||
} /* namespace il2cpp */
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
#pragma once
|
||||
|
||||
#if NET_4_0
|
||||
|
||||
#include "il2cpp-object-internals.h"
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace Reflection
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API PropertyInfo
|
||||
{
|
||||
public:
|
||||
static Il2CppReflectionProperty* internal_from_handle_type(intptr_t event_handle, intptr_t type_handle);
|
||||
};
|
||||
} // namespace Reflection
|
||||
} // namespace System
|
||||
} // namespace mscorlib
|
||||
} // namespace icalls
|
||||
} // namespace il2cpp
|
||||
|
||||
#endif
|
||||
+25
@@ -0,0 +1,25 @@
|
||||
#pragma once
|
||||
#if NET_4_0
|
||||
#include "il2cpp-object-internals.h"
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace Reflection
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API RtFieldInfo
|
||||
{
|
||||
public:
|
||||
static Il2CppObject* UnsafeGetValue(Il2CppReflectionField* _this, Il2CppObject* obj);
|
||||
};
|
||||
} // namespace Reflection
|
||||
} // namespace System
|
||||
} // namespace mscorlib
|
||||
} // namespace icalls
|
||||
} // namespace il2cpp
|
||||
#endif
|
||||
+36
@@ -0,0 +1,36 @@
|
||||
#pragma once
|
||||
|
||||
#include "il2cpp-config.h"
|
||||
#include "il2cpp-object-internals.h"
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace Runtime
|
||||
{
|
||||
namespace CompilerServices
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API RuntimeHelpers
|
||||
{
|
||||
public:
|
||||
static Il2CppObject* GetObjectValue(Il2CppObject* obj);
|
||||
static void RunClassConstructor(intptr_t type);
|
||||
static void RunModuleConstructor(intptr_t module);
|
||||
static int get_OffsetToStringData(void);
|
||||
static void InitializeArray(Il2CppArray* arr, intptr_t ptr);
|
||||
|
||||
#if NET_4_0
|
||||
static bool SufficientExecutionStack();
|
||||
#endif
|
||||
};
|
||||
} /* namespace CompilerServices */
|
||||
} /* namespace Runtime */
|
||||
} /* namespace System */
|
||||
} /* namespace mscorlib */
|
||||
} /* namespace icalls */
|
||||
} /* namespace il2cpp */
|
||||
+39
@@ -0,0 +1,39 @@
|
||||
#pragma once
|
||||
|
||||
#if NET_4_0
|
||||
|
||||
#include "il2cpp-object-internals.h"
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace Runtime
|
||||
{
|
||||
namespace InteropServices
|
||||
{
|
||||
namespace WindowsRuntime
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API UnsafeNativeMethods
|
||||
{
|
||||
public:
|
||||
static bool RoOriginateLanguageException(int32_t error, Il2CppString* message, intptr_t languageException);
|
||||
static Il2CppChar* WindowsGetStringRawBuffer(intptr_t hstring, uint32_t* length);
|
||||
static int32_t WindowsCreateString(Il2CppString* sourceString, int32_t length, intptr_t* hstring);
|
||||
static int32_t WindowsDeleteString(intptr_t hstring);
|
||||
static Il2CppObject* GetRestrictedErrorInfo();
|
||||
static void RoReportUnhandledError(Il2CppObject* error);
|
||||
};
|
||||
} // namespace WindowsRuntime
|
||||
} // namespace InteropServices
|
||||
} // namespace Runtime
|
||||
} // namespace System
|
||||
} // namespace mscorlib
|
||||
} // namespace icalls
|
||||
} // namespace il2cpp
|
||||
|
||||
#endif
|
||||
+35
@@ -0,0 +1,35 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
#include "il2cpp-config.h"
|
||||
#include "il2cpp-object-internals.h"
|
||||
|
||||
struct Il2CppObject;
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace Runtime
|
||||
{
|
||||
namespace InteropServices
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API GCHandle
|
||||
{
|
||||
public:
|
||||
static bool CheckCurrentDomain(int32_t handle);
|
||||
static void FreeHandle(int32_t handle);
|
||||
static intptr_t GetAddrOfPinnedObject(int32_t handle);
|
||||
static Il2CppObject * GetTarget(int32_t handle);
|
||||
static int32_t GetTargetHandle(Il2CppObject * obj, int32_t handle, int32_t type);
|
||||
};
|
||||
} /* namespace InteropServices */
|
||||
} /* namespace Runtime */
|
||||
} /* namespace System */
|
||||
} /* namespace mscorlib */
|
||||
} /* namespace icalls */
|
||||
} /* namespace il2cpp */
|
||||
+99
@@ -0,0 +1,99 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
#include "il2cpp-config.h"
|
||||
#include "il2cpp-object-internals.h"
|
||||
|
||||
struct mscorlib_System_Guid;
|
||||
struct mscorlib_System_Reflection_MemberInfo;
|
||||
|
||||
struct Il2CppObject;
|
||||
struct Il2CppDelegate;
|
||||
struct Il2CppReflectionType;
|
||||
struct Il2CppString;
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace Runtime
|
||||
{
|
||||
namespace InteropServices
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API Marshal
|
||||
{
|
||||
public:
|
||||
static int32_t GetLastWin32Error();
|
||||
static int32_t AddRefInternal(intptr_t pUnk);
|
||||
static intptr_t AllocCoTaskMem(int32_t size);
|
||||
static intptr_t AllocHGlobal(intptr_t size);
|
||||
static void DestroyStructure(intptr_t ptr, Il2CppReflectionType* structureType);
|
||||
static void FreeBSTR(intptr_t ptr);
|
||||
static void FreeCoTaskMem(intptr_t ptr);
|
||||
static void FreeHGlobal(intptr_t hglobal);
|
||||
static intptr_t GetCCW(Il2CppObject* o, Il2CppReflectionType * T);
|
||||
static int32_t GetComSlotForMethodInfoInternal(mscorlib_System_Reflection_MemberInfo * m);
|
||||
static Il2CppDelegate* GetDelegateForFunctionPointerInternal(intptr_t ptr, Il2CppReflectionType* t);
|
||||
static intptr_t GetFunctionPointerForDelegateInternal(Il2CppDelegate* d);
|
||||
static intptr_t GetIDispatchForObjectInternal(Il2CppObject* o);
|
||||
static intptr_t GetIUnknownForObjectInternal(Il2CppObject* o);
|
||||
static Il2CppObject* GetObjectForCCW(intptr_t pUnk);
|
||||
static bool IsComObject(Il2CppObject* o);
|
||||
static intptr_t OffsetOf(Il2CppReflectionType* t, Il2CppString* fieldName);
|
||||
static void Prelink(Il2CppReflectionMethod* m);
|
||||
static void PrelinkAll(Il2CppReflectionType* c);
|
||||
static Il2CppString* PtrToStringAnsi_mscorlib_System_String_mscorlib_System_IntPtr(intptr_t ptr);
|
||||
static Il2CppString* PtrToStringAnsi_mscorlib_System_String_mscorlib_System_IntPtr_mscorlib_System_Int32(intptr_t ptr, int32_t len);
|
||||
static Il2CppString* PtrToStringBSTR(intptr_t ptr);
|
||||
static Il2CppString* PtrToStringUni_mscorlib_System_String_mscorlib_System_IntPtr(intptr_t ptr);
|
||||
static Il2CppString* PtrToStringUni_mscorlib_System_String_mscorlib_System_IntPtr_mscorlib_System_Int32(intptr_t ptr, int32_t len);
|
||||
static Il2CppObject* PtrToStructure(intptr_t ptr, Il2CppReflectionType * structureType);
|
||||
static void PtrToStructureObject(intptr_t ptr, Il2CppObject* structure);
|
||||
static int32_t QueryInterfaceInternal(intptr_t pUnk, mscorlib_System_Guid * iid, intptr_t* ppv);
|
||||
static intptr_t ReAllocCoTaskMem(intptr_t ptr, int32_t size);
|
||||
static intptr_t ReAllocHGlobal(intptr_t ptr, intptr_t size);
|
||||
static uint8_t ReadByte(intptr_t ptr, int32_t ofs);
|
||||
static int16_t ReadInt16(intptr_t ptr, int32_t ofs);
|
||||
static int32_t ReadInt32(intptr_t ptr, int32_t ofs);
|
||||
static int64_t ReadInt64(intptr_t ptr, int32_t ofs);
|
||||
static intptr_t ReadIntPtr(intptr_t ptr, int32_t ofs);
|
||||
static int32_t ReleaseComObjectInternal(Il2CppObject* co);
|
||||
static int32_t ReleaseInternal(intptr_t pUnk);
|
||||
static int SizeOf(Il2CppReflectionType * rtype);
|
||||
static intptr_t StringToBSTR(Il2CppString* s);
|
||||
static intptr_t StringToHGlobalAnsi(Il2CppString* s);
|
||||
static intptr_t StringToHGlobalUni(Il2CppString* s);
|
||||
static void StructureToPtr(Il2CppObject* structure, intptr_t ptr, bool deleteOld);
|
||||
static intptr_t UnsafeAddrOfPinnedArrayElement(Il2CppArray* arr, int32_t index);
|
||||
static void WriteByte(intptr_t ptr, int32_t ofs, uint8_t val);
|
||||
static void WriteInt16(intptr_t ptr, int32_t ofs, int16_t val);
|
||||
static void WriteInt32(intptr_t ptr, int32_t ofs, int32_t val);
|
||||
static void WriteInt64(intptr_t ptr, int32_t ofs, int64_t val);
|
||||
static void copy_from_unmanaged(intptr_t, int, Il2CppArray *, int);
|
||||
static void copy_to_unmanaged(Il2CppArray * source, int32_t startIndex, intptr_t destination, int32_t length);
|
||||
static void WriteIntPtr(intptr_t ptr, int32_t ofs, intptr_t val);
|
||||
|
||||
#if NET_4_0
|
||||
static intptr_t BufferToBSTR(Il2CppArray* ptr, int32_t slen);
|
||||
#endif
|
||||
|
||||
#if NET_4_0
|
||||
static int32_t GetHRForException_WinRT(Il2CppException* e);
|
||||
static intptr_t GetRawIUnknownForComObjectNoAddRef(Il2CppObject* o);
|
||||
static Il2CppObject* GetNativeActivationFactory(Il2CppObject* type);
|
||||
#endif
|
||||
|
||||
#if NET_4_0
|
||||
static intptr_t AllocCoTaskMemSize(intptr_t sizet);
|
||||
#endif
|
||||
};
|
||||
} /* namespace InteropServices */
|
||||
} /* namespace Runtime */
|
||||
} /* namespace System */
|
||||
} /* namespace mscorlib */
|
||||
} /* namespace icalls */
|
||||
} /* namespace il2cpp */
|
||||
+33
@@ -0,0 +1,33 @@
|
||||
#pragma once
|
||||
|
||||
#include "il2cpp-config.h"
|
||||
struct Il2CppObject;
|
||||
struct Il2CppReflectionType;
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace Runtime
|
||||
{
|
||||
namespace Remoting
|
||||
{
|
||||
namespace Activation
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API ActivationServices
|
||||
{
|
||||
public:
|
||||
static void EnableProxyActivation(Il2CppReflectionType*, bool);
|
||||
static Il2CppObject * AllocateUninitializedClassInstance(Il2CppReflectionType*);
|
||||
};
|
||||
} /* namespace Activation */
|
||||
} /* namespace Remoting */
|
||||
} /* namespace Runtime */
|
||||
} /* namespace System */
|
||||
} /* namespace mscorlib */
|
||||
} /* namespace icalls */
|
||||
} /* namespace il2cpp */
|
||||
+31
@@ -0,0 +1,31 @@
|
||||
#pragma once
|
||||
#if NET_4_0
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace Runtime
|
||||
{
|
||||
namespace Remoting
|
||||
{
|
||||
namespace Contexts
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API Context
|
||||
{
|
||||
public:
|
||||
static void RegisterContext(Il2CppObject* ctx);
|
||||
static void ReleaseContext(Il2CppObject* ctx);
|
||||
};
|
||||
} // namespace Contexts
|
||||
} // namespace Remoting
|
||||
} // namespace Runtime
|
||||
} // namespace System
|
||||
} // namespace mscorlib
|
||||
} // namespace icalls
|
||||
} // namespace il2cpp
|
||||
#endif
|
||||
+30
@@ -0,0 +1,30 @@
|
||||
#pragma once
|
||||
#if NET_4_0
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace Runtime
|
||||
{
|
||||
namespace Remoting
|
||||
{
|
||||
namespace Messaging
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API AsyncResult
|
||||
{
|
||||
public:
|
||||
static Il2CppObject* Invoke(Il2CppObject* _this);
|
||||
};
|
||||
} // namespace Messaging
|
||||
} // namespace Remoting
|
||||
} // namespace Runtime
|
||||
} // namespace System
|
||||
} // namespace mscorlib
|
||||
} // namespace icalls
|
||||
} // namespace il2cpp
|
||||
#endif
|
||||
+33
@@ -0,0 +1,33 @@
|
||||
#pragma once
|
||||
|
||||
#include "il2cpp-config.h"
|
||||
struct Il2CppArray;
|
||||
struct Il2CppMethodMessage;
|
||||
struct Il2CppReflectionMethod;
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace Runtime
|
||||
{
|
||||
namespace Remoting
|
||||
{
|
||||
namespace Messaging
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API MonoMethodMessage
|
||||
{
|
||||
public:
|
||||
static void InitMessage(Il2CppMethodMessage*, Il2CppReflectionMethod*, Il2CppArray*);
|
||||
};
|
||||
} /* namespace Messaging */
|
||||
} /* namespace Remoting */
|
||||
} /* namespace Runtime */
|
||||
} /* namespace System */
|
||||
} /* namespace mscorlib */
|
||||
} /* namespace icalls */
|
||||
} /* namespace il2cpp */
|
||||
+34
@@ -0,0 +1,34 @@
|
||||
#pragma once
|
||||
|
||||
#include "il2cpp-config.h"
|
||||
struct Il2CppObject;
|
||||
struct Il2CppReflectionType;
|
||||
struct Il2CppString;
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace Runtime
|
||||
{
|
||||
namespace Remoting
|
||||
{
|
||||
namespace Proxies
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API RealProxy
|
||||
{
|
||||
public:
|
||||
static Il2CppObject* InternalGetTransparentProxy(Il2CppObject*, Il2CppString*);
|
||||
static Il2CppReflectionType* InternalGetProxyType(Il2CppObject*);
|
||||
};
|
||||
} /* namespace Proxies */
|
||||
} /* namespace Remoting */
|
||||
} /* namespace Runtime */
|
||||
} /* namespace System */
|
||||
} /* namespace mscorlib */
|
||||
} /* namespace icalls */
|
||||
} /* namespace il2cpp */
|
||||
+33
@@ -0,0 +1,33 @@
|
||||
#pragma once
|
||||
|
||||
#include "il2cpp-config.h"
|
||||
struct Il2CppArray;
|
||||
struct Il2CppObject;
|
||||
struct Il2CppReflectionMethod;
|
||||
struct Il2CppReflectionType;
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace Runtime
|
||||
{
|
||||
namespace Remoting
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API RemotingServices
|
||||
{
|
||||
public:
|
||||
static Il2CppReflectionMethod * GetVirtualMethod(Il2CppReflectionType*, Il2CppReflectionMethod*);
|
||||
static Il2CppObject* InternalExecute(Il2CppReflectionMethod*, Il2CppObject*, Il2CppArray*, Il2CppArray**);
|
||||
static bool IsTransparentProxy(Il2CppObject*);
|
||||
};
|
||||
} /* namespace Remoting */
|
||||
} /* namespace Runtime */
|
||||
} /* namespace System */
|
||||
} /* namespace mscorlib */
|
||||
} /* namespace icalls */
|
||||
} /* namespace il2cpp */
|
||||
+27
@@ -0,0 +1,27 @@
|
||||
#pragma once
|
||||
#if NET_4_0
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace Runtime
|
||||
{
|
||||
namespace Versioning
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API VersioningHelper
|
||||
{
|
||||
public:
|
||||
static int32_t GetRuntimeId();
|
||||
};
|
||||
} // namespace Versioning
|
||||
} // namespace Runtime
|
||||
} // namespace System
|
||||
} // namespace mscorlib
|
||||
} // namespace icalls
|
||||
} // namespace il2cpp
|
||||
#endif
|
||||
+31
@@ -0,0 +1,31 @@
|
||||
#pragma once
|
||||
|
||||
#include "il2cpp-config.h"
|
||||
#include "il2cpp-object-internals.h"
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace Security
|
||||
{
|
||||
namespace Cryptography
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API RNGCryptoServiceProvider
|
||||
{
|
||||
public:
|
||||
static void RngClose(intptr_t handle);
|
||||
static intptr_t RngGetBytes(intptr_t, Il2CppArray *);
|
||||
static intptr_t RngInitialize(Il2CppArray *);
|
||||
static bool RngOpen();
|
||||
};
|
||||
} /* namespace Cryptography */
|
||||
} /* namespace Security */
|
||||
} /* namespace System */
|
||||
} /* namespace mscorlib */
|
||||
} /* namespace icalls */
|
||||
} /* namespace il2cpp */
|
||||
+41
@@ -0,0 +1,41 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
#include "il2cpp-config.h"
|
||||
#include "il2cpp-object-internals.h"
|
||||
|
||||
struct Il2CppObject;
|
||||
struct Il2CppDelegate;
|
||||
struct Il2CppReflectionType;
|
||||
struct Il2CppReflectionMethod;
|
||||
struct Il2CppReflectionField;
|
||||
struct Il2CppArray;
|
||||
struct Il2CppException;
|
||||
struct Il2CppReflectionModule;
|
||||
struct Il2CppAssembly;
|
||||
struct Il2CppAssemblyName;
|
||||
struct Il2CppAppDomain;
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace Security
|
||||
{
|
||||
namespace Policy
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API Evidence
|
||||
{
|
||||
public:
|
||||
static bool IsAuthenticodePresent(Il2CppAssembly* a);
|
||||
};
|
||||
} /* namespace Policy */
|
||||
} /* namespace Security */
|
||||
} /* namespace System */
|
||||
} /* namespace mscorlib */
|
||||
} /* namespace icalls */
|
||||
} /* namespace il2cpp */
|
||||
+33
@@ -0,0 +1,33 @@
|
||||
#pragma once
|
||||
|
||||
#include "il2cpp-config.h"
|
||||
#include "il2cpp-object-internals.h"
|
||||
|
||||
struct Il2CppString;
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace Security
|
||||
{
|
||||
namespace Principal
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API WindowsIdentity
|
||||
{
|
||||
public:
|
||||
static intptr_t GetUserToken(Il2CppString* username);
|
||||
static Il2CppArray* _GetRoles(intptr_t token);
|
||||
static Il2CppString* GetTokenName(intptr_t token);
|
||||
static intptr_t GetCurrentToken();
|
||||
};
|
||||
} /* namespace Principal */
|
||||
} /* namespace Security */
|
||||
} /* namespace System */
|
||||
} /* namespace mscorlib */
|
||||
} /* namespace icalls */
|
||||
} /* namespace il2cpp */
|
||||
+44
@@ -0,0 +1,44 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
#include "il2cpp-config.h"
|
||||
#include "il2cpp-object-internals.h"
|
||||
|
||||
struct Il2CppObject;
|
||||
struct Il2CppDelegate;
|
||||
struct Il2CppReflectionType;
|
||||
struct Il2CppReflectionMethod;
|
||||
struct Il2CppReflectionField;
|
||||
struct Il2CppArray;
|
||||
struct Il2CppException;
|
||||
struct Il2CppReflectionModule;
|
||||
struct Il2CppAssembly;
|
||||
struct Il2CppAssemblyName;
|
||||
struct Il2CppAppDomain;
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace Security
|
||||
{
|
||||
namespace Principal
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API WindowsImpersonationContext
|
||||
{
|
||||
public:
|
||||
static bool RevertToSelf();
|
||||
static intptr_t DuplicateToken(intptr_t token);
|
||||
static bool SetCurrentToken(intptr_t token);
|
||||
static bool CloseToken(intptr_t token);
|
||||
};
|
||||
} /* namespace Principal */
|
||||
} /* namespace Security */
|
||||
} /* namespace System */
|
||||
} /* namespace mscorlib */
|
||||
} /* namespace icalls */
|
||||
} /* namespace il2cpp */
|
||||
+42
@@ -0,0 +1,42 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
#include "il2cpp-config.h"
|
||||
#include "il2cpp-object-internals.h"
|
||||
|
||||
struct Il2CppObject;
|
||||
struct Il2CppDelegate;
|
||||
struct Il2CppReflectionType;
|
||||
struct Il2CppReflectionMethod;
|
||||
struct Il2CppReflectionField;
|
||||
struct Il2CppArray;
|
||||
struct Il2CppException;
|
||||
struct Il2CppReflectionModule;
|
||||
struct Il2CppAssembly;
|
||||
struct Il2CppAssemblyName;
|
||||
struct Il2CppAppDomain;
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace Security
|
||||
{
|
||||
namespace Principal
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API WindowsPrincipal
|
||||
{
|
||||
public:
|
||||
static bool IsMemberOfGroupName(intptr_t user, Il2CppString* group);
|
||||
static bool IsMemberOfGroupId(intptr_t user, intptr_t group);
|
||||
};
|
||||
} /* namespace Principal */
|
||||
} /* namespace Security */
|
||||
} /* namespace System */
|
||||
} /* namespace mscorlib */
|
||||
} /* namespace icalls */
|
||||
} /* namespace il2cpp */
|
||||
+27
@@ -0,0 +1,27 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
#include "il2cpp-config.h"
|
||||
struct Il2CppArray;
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace Security
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API SecurityFrame
|
||||
{
|
||||
public:
|
||||
static void* /* System.Security.RuntimeSecurityFrame */ _GetSecurityFrame(int32_t skip);
|
||||
static Il2CppArray * _GetSecurityStack(int32_t skip);
|
||||
};
|
||||
} /* namespace Security */
|
||||
} /* namespace System */
|
||||
} /* namespace mscorlib */
|
||||
} /* namespace icalls */
|
||||
} /* namespace il2cpp */
|
||||
+32
@@ -0,0 +1,32 @@
|
||||
#pragma once
|
||||
|
||||
#include "il2cpp-config.h"
|
||||
#include "il2cpp-object-internals.h"
|
||||
|
||||
struct mscorlib_System_Reflection_MethodBase;
|
||||
struct mscorlib_System_Security_RuntimeDeclSecurityActions;
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace Security
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API SecurityManager
|
||||
{
|
||||
public:
|
||||
static bool get_CheckExecutionRights();
|
||||
static void set_CheckExecutionRights(bool value);
|
||||
static void set_SecurityEnabled(bool value);
|
||||
static bool GetLinkDemandSecurity(mscorlib_System_Reflection_MethodBase * method, mscorlib_System_Security_RuntimeDeclSecurityActions * _____cdecl, mscorlib_System_Security_RuntimeDeclSecurityActions * mdecl);
|
||||
static bool get_SecurityEnabled();
|
||||
};
|
||||
} /* namespace Security */
|
||||
} /* namespace System */
|
||||
} /* namespace mscorlib */
|
||||
} /* namespace icalls */
|
||||
} /* namespace il2cpp */
|
||||
+27
@@ -0,0 +1,27 @@
|
||||
#pragma once
|
||||
|
||||
#include "il2cpp-config.h"
|
||||
#include <stdint.h>
|
||||
|
||||
struct Il2CppString;
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace Text
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API Encoding
|
||||
{
|
||||
public:
|
||||
static Il2CppString* InternalCodePage(int32_t *codePage);
|
||||
};
|
||||
} /* namespace Text */
|
||||
} /* namespace System */
|
||||
} /* namespace mscorlib */
|
||||
} /* namespace icalls */
|
||||
} /* namespace il2cpp */
|
||||
+24
@@ -0,0 +1,24 @@
|
||||
#pragma once
|
||||
#if NET_4_0
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace Text
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API EncodingHelper
|
||||
{
|
||||
public:
|
||||
static Il2CppString* InternalCodePage(int32_t* code_page);
|
||||
};
|
||||
} // namespace Text
|
||||
} // namespace System
|
||||
} // namespace mscorlib
|
||||
} // namespace icalls
|
||||
} // namespace il2cpp
|
||||
#endif
|
||||
+25
@@ -0,0 +1,25 @@
|
||||
#pragma once
|
||||
#if NET_4_0
|
||||
#include "il2cpp-object-internals.h"
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace Text
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API Normalization
|
||||
{
|
||||
public:
|
||||
static void load_normalization_resource(intptr_t* props, intptr_t* mappedChars, intptr_t* charMapIndex, intptr_t* helperIndex, intptr_t* mapIdxToComposite, intptr_t* combiningClass);
|
||||
};
|
||||
} // namespace Text
|
||||
} // namespace System
|
||||
} // namespace mscorlib
|
||||
} // namespace icalls
|
||||
} // namespace il2cpp
|
||||
#endif
|
||||
+47
@@ -0,0 +1,47 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
#include "il2cpp-config.h"
|
||||
#include "il2cpp-object-internals.h"
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace Threading
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API Interlocked
|
||||
{
|
||||
public:
|
||||
static int32_t Add(int32_t* location1, int32_t value);
|
||||
static int64_t Add64(int64_t* location1, int64_t value);
|
||||
static int32_t CompareExchange(int32_t* location, int32_t value, int32_t comparand);
|
||||
static int64_t CompareExchange64(int64_t* location1, int64_t value, int64_t comparand);
|
||||
static double CompareExchangeDouble(double* location1, double value, double comparand);
|
||||
static intptr_t CompareExchangeIntPtr(intptr_t* location, intptr_t value, intptr_t comparand);
|
||||
static float CompareExchangeSingle(float* location1, float value, float comparand);
|
||||
static void* CompareExchange_T(void** location, void* value, void* comparand);
|
||||
static int32_t Decrement(int32_t* location);
|
||||
static int64_t Decrement64(int64_t* location);
|
||||
static intptr_t ExchangeIntPtr(intptr_t* location, intptr_t value);
|
||||
static int32_t Exchange(int32_t* location1, int32_t value);
|
||||
static int64_t Exchange64(int64_t* location1, int64_t value);
|
||||
static double ExchangeDouble(double* location1, double value);
|
||||
static void* ExchangePointer(void** location1, void* value);
|
||||
static float ExchangeSingle(float* location1, float value);
|
||||
static int32_t Increment(int32_t* value);
|
||||
static int64_t Increment64(int64_t* location);
|
||||
static int64_t Read(int64_t* location);
|
||||
#if NET_4_0
|
||||
static int32_t CompareExchange(int32_t* location1, int32_t value, int32_t comparand, bool* succeeded);
|
||||
#endif
|
||||
};
|
||||
} /* namespace Threading */
|
||||
} /* namespace System */
|
||||
} /* namespace mscorlib */
|
||||
} /* namespace icalls */
|
||||
} /* namespace il2cpp */
|
||||
+27
@@ -0,0 +1,27 @@
|
||||
#pragma once
|
||||
#if NET_4_0
|
||||
#include "il2cpp-object-internals.h"
|
||||
|
||||
struct Il2CppInternalThread;
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace Threading
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API InternalThread
|
||||
{
|
||||
public:
|
||||
static void Thread_free_internal(Il2CppInternalThread* _this);
|
||||
};
|
||||
} // namespace Threading
|
||||
} // namespace System
|
||||
} // namespace mscorlib
|
||||
} // namespace icalls
|
||||
} // namespace il2cpp
|
||||
#endif
|
||||
+37
@@ -0,0 +1,37 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
#include "il2cpp-config.h"
|
||||
struct Il2CppObject;
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace Threading
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API Monitor
|
||||
{
|
||||
public:
|
||||
static void Enter(Il2CppObject *);
|
||||
static void Exit(Il2CppObject *);
|
||||
static void Monitor_pulse(Il2CppObject* obj);
|
||||
static void Monitor_pulse_all(Il2CppObject* obj);
|
||||
static bool Monitor_test_synchronised(Il2CppObject* obj);
|
||||
static bool Monitor_try_enter(Il2CppObject* obj, int32_t ms);
|
||||
static bool Monitor_wait(Il2CppObject* obj, int32_t ms);
|
||||
#if NET_4_0
|
||||
static bool Monitor_test_owner(Il2CppObject* obj);
|
||||
static void enter_with_atomic_var(Il2CppObject* obj, bool* lockTaken);
|
||||
static void try_enter_with_atomic_var(Il2CppObject* obj, int32_t millisecondsTimeout, bool* lockTaken);
|
||||
#endif
|
||||
};
|
||||
} /* namespace Threading */
|
||||
} /* namespace System */
|
||||
} /* namespace mscorlib */
|
||||
} /* namespace icalls */
|
||||
} /* namespace il2cpp */
|
||||
+34
@@ -0,0 +1,34 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
#include "il2cpp-object-internals.h"
|
||||
#include "il2cpp-config.h"
|
||||
|
||||
struct Il2CppString;
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace Threading
|
||||
{
|
||||
struct MonoIOError;
|
||||
|
||||
typedef int32_t MutexRights;
|
||||
|
||||
class LIBIL2CPP_CODEGEN_API Mutex
|
||||
{
|
||||
public:
|
||||
static intptr_t CreateMutex_internal(bool initiallyOwned, Il2CppString* name, bool* created);
|
||||
static intptr_t OpenMutex_internal(Il2CppString* name, MutexRights rights, MonoIOError* error);
|
||||
static bool ReleaseMutex_internal(intptr_t handle);
|
||||
};
|
||||
} /* namespace Threading */
|
||||
} /* namespace System */
|
||||
} /* namespace mscorlib */
|
||||
} /* namespace icalls */
|
||||
} /* namespace il2cpp */
|
||||
+43
@@ -0,0 +1,43 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
#include "il2cpp-object-internals.h"
|
||||
#include "il2cpp-config.h"
|
||||
|
||||
struct Il2CppString;
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace Threading
|
||||
{
|
||||
struct MonoIOError;
|
||||
|
||||
typedef int32_t EventWaitHandleRights;
|
||||
|
||||
class LIBIL2CPP_CODEGEN_API NativeEventCalls
|
||||
{
|
||||
public:
|
||||
|
||||
#if !NET_4_0
|
||||
static intptr_t CreateEvent_internal(bool manualReset, bool signaled, Il2CppString* name, bool* created);
|
||||
static intptr_t OpenEvent_internal(Il2CppString* name, EventWaitHandleRights rights, MonoIOError* error);
|
||||
#else
|
||||
static intptr_t CreateEvent_internal(bool manual, bool initial, Il2CppString* name, int32_t* errorCode);
|
||||
static intptr_t OpenEvent_internal(Il2CppString* name, EventWaitHandleRights rights, int32_t* errorCode);
|
||||
#endif
|
||||
|
||||
static bool ResetEvent_internal(intptr_t handlePtr);
|
||||
static bool SetEvent_internal(intptr_t handlePtr);
|
||||
static void CloseEvent_internal(intptr_t handlePtr);
|
||||
};
|
||||
} /* namespace Threading */
|
||||
} /* namespace System */
|
||||
} /* namespace mscorlib */
|
||||
} /* namespace icalls */
|
||||
} /* namespace il2cpp */
|
||||
+112
@@ -0,0 +1,112 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
#include "il2cpp-object-internals.h"
|
||||
#include "vm/Thread.h"
|
||||
#include "il2cpp-config.h"
|
||||
|
||||
struct Il2CppString;
|
||||
struct Il2CppThread;
|
||||
struct mscorlib_System_Globalization_CultureInfo;
|
||||
struct Il2CppDelegate;
|
||||
struct mscorlib_System_Threading_Thread;
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace Threading
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API Thread
|
||||
{
|
||||
public:
|
||||
static int32_t GetDomainID();
|
||||
static Il2CppThread * CurrentThread_internal();
|
||||
static void ResetAbort_internal();
|
||||
static void MemoryBarrier_();
|
||||
static void SpinWait_nop();
|
||||
static void Abort_internal(Il2CppThread* thisPtr, Il2CppObject* stateInfo);
|
||||
static void ClrState(Il2CppThread* thisPtr, il2cpp::vm::ThreadState clr);
|
||||
static void FreeLocalSlotValues(int32_t slot, bool use_thread_local);
|
||||
static Il2CppObject* GetAbortExceptionState(void* /* System.Threading.Thread */ self);
|
||||
static mscorlib_System_Globalization_CultureInfo * GetCachedCurrentCulture(Il2CppThread* thisPtr);
|
||||
static mscorlib_System_Globalization_CultureInfo* GetCachedCurrentUICulture(Il2CppThread* thisPtr);
|
||||
static Il2CppString* GetName_internal(Il2CppThread* thisPtr);
|
||||
static void SetName_internal(Il2CppThread* thisPtr, Il2CppString* name);
|
||||
static int32_t GetNewManagedId_internal();
|
||||
#if !NET_4_0
|
||||
static Il2CppArray * GetSerializedCurrentCulture(Il2CppThread* thisPtr);
|
||||
static Il2CppArray* GetSerializedCurrentUICulture(Il2CppThread* thisPtr);
|
||||
#endif
|
||||
static il2cpp::vm::ThreadState GetState(Il2CppThread * thisPtr);
|
||||
static void Interrupt_internal(Il2CppThread* thisPtr);
|
||||
static bool Join_internal(Il2CppThread * thisPtr, int32_t ms, void* thread);
|
||||
static void Resume_internal(void* /* System.Threading.Thread */ self);
|
||||
static void SetCachedCurrentCulture(Il2CppThread *thisPtr, Il2CppObject* culture);
|
||||
static void SetCachedCurrentUICulture(Il2CppThread* thisPtr, Il2CppObject* culture);
|
||||
#if !NET_4_0
|
||||
static void SetSerializedCurrentCulture(Il2CppThread* thisPtr, Il2CppArray* culture);
|
||||
static void SetSerializedCurrentUICulture(Il2CppThread* thisPtr, Il2CppArray* culture);
|
||||
#endif
|
||||
static void SetState(Il2CppThread * thisPtr, il2cpp::vm::ThreadState state);
|
||||
static void Sleep_internal(int32_t milliseconds);
|
||||
static void Suspend_internal(void* /* System.Threading.Thread */ self);
|
||||
static void Thread_init(Il2CppThread* thisPtr);
|
||||
static intptr_t Thread_internal(Il2CppThread* thisPtr, Il2CppDelegate * start);
|
||||
static int8_t VolatileReadInt8(volatile void* address);
|
||||
static int16_t VolatileReadInt16(volatile void* address);
|
||||
static int32_t VolatileReadInt32(volatile void* address);
|
||||
static int64_t VolatileReadInt64(volatile void* address);
|
||||
static float VolatileReadFloat(volatile void* address);
|
||||
static double VolatileReadDouble(volatile void* address);
|
||||
static void* VolatileReadPtr(volatile void* address);
|
||||
static intptr_t VolatileReadIntPtr(volatile void* address);
|
||||
static void VolatileWriteInt8(volatile void* address, int8_t value);
|
||||
static void VolatileWriteInt16(volatile void* address, int16_t value);
|
||||
static void VolatileWriteInt32(volatile void* address, int32_t value);
|
||||
static void VolatileWriteInt64(volatile void* address, int64_t value);
|
||||
static void VolatileWriteFloat(volatile void* address, float value);
|
||||
static void VolatileWriteDouble(volatile void* address, double value);
|
||||
static void VolatileWritePtr(volatile void* address, void* value);
|
||||
static void VolatileWriteIntPtr(volatile void* address, intptr_t value);
|
||||
#if !NET_4_0
|
||||
static void Thread_free_internal(Il2CppThread* thisPtr, intptr_t handle);
|
||||
#endif
|
||||
|
||||
#if NET_4_0
|
||||
static Il2CppArray* ByteArrayToCurrentDomain(Il2CppArray* arr);
|
||||
static Il2CppArray* ByteArrayToRootDomain(Il2CppArray* arr);
|
||||
static bool YieldInternal();
|
||||
static bool JoinInternal(Il2CppThread* _this, int32_t millisecondsTimeout);
|
||||
static int32_t GetPriorityNative(Il2CppThread* _this);
|
||||
static int32_t SystemMaxStackStize();
|
||||
static Il2CppString* GetName_internal40(Il2CppInternalThread* thread);
|
||||
static Il2CppInternalThread* CurrentInternalThread_internal();
|
||||
static int32_t GetState40(Il2CppInternalThread* thread);
|
||||
static void Abort_internal40(Il2CppInternalThread* thread, Il2CppObject* stateInfo);
|
||||
static void ClrState40(Il2CppInternalThread* thread, il2cpp::vm::ThreadState clr);
|
||||
static void ConstructInternalThread(Il2CppThread* _this);
|
||||
static void GetStackTraces(Il2CppArray** threads, Il2CppArray** stack_frames);
|
||||
static void InterruptInternal(Il2CppThread* _this);
|
||||
static void ResetAbortNative(Il2CppObject* _this);
|
||||
static void ResumeInternal(Il2CppObject* _this);
|
||||
static void SetName_internal40(Il2CppInternalThread* thread, Il2CppString* name);
|
||||
static void SetPriorityNative(Il2CppThread* _this, int32_t priority);
|
||||
static void SetState40(Il2CppInternalThread* thread, vm::ThreadState set);
|
||||
static void SleepInternal(int32_t millisecondsTimeout);
|
||||
static void SuspendInternal(Il2CppObject* _this);
|
||||
#endif
|
||||
|
||||
#if NET_4_0
|
||||
static Il2CppThread* GetCurrentThread();
|
||||
#endif
|
||||
};
|
||||
} /* namespace Threading */
|
||||
} /* namespace System */
|
||||
} /* namespace mscorlib */
|
||||
} /* namespace icalls */
|
||||
} /* namespace il2cpp */
|
||||
+46
@@ -0,0 +1,46 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
#include "il2cpp-object-internals.h"
|
||||
#include "il2cpp-config.h"
|
||||
|
||||
struct Il2CppObject;
|
||||
struct Il2CppDelegate;
|
||||
struct Il2CppReflectionType;
|
||||
struct Il2CppReflectionMethod;
|
||||
struct Il2CppReflectionField;
|
||||
struct Il2CppArray;
|
||||
struct Il2CppException;
|
||||
struct Il2CppReflectionModule;
|
||||
struct Il2CppAssembly;
|
||||
struct Il2CppAssemblyName;
|
||||
struct Il2CppAppDomain;
|
||||
|
||||
#if NET_4_0
|
||||
struct Il2CppNativeOverlapped;
|
||||
#endif
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace Threading
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API ThreadPool
|
||||
{
|
||||
public:
|
||||
static void GetAvailableThreads(int32_t* workerThreads, int32_t* completionPortThreads);
|
||||
static void GetMinThreads(int32_t* workerThreads, int32_t* completionPortThreads);
|
||||
static bool SetMaxThreads(int32_t workerThreads, int32_t completionPortThreads);
|
||||
static bool SetMinThreads(int32_t workerThreads, int32_t completionPortThreads);
|
||||
static void GetMaxThreads(int32_t* workerThreads, int32_t* completionPortThreads);
|
||||
};
|
||||
} /* namespace Threading */
|
||||
} /* namespace System */
|
||||
} /* namespace mscorlib */
|
||||
} /* namespace icalls */
|
||||
} /* namespace il2cpp */
|
||||
+24
@@ -0,0 +1,24 @@
|
||||
#pragma once
|
||||
#if NET_4_0
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace Threading
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API Timer
|
||||
{
|
||||
public:
|
||||
static int64_t GetTimeMonotonic();
|
||||
};
|
||||
} // namespace Threading
|
||||
} // namespace System
|
||||
} // namespace mscorlib
|
||||
} // namespace icalls
|
||||
} // namespace il2cpp
|
||||
#endif
|
||||
+39
@@ -0,0 +1,39 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
#include "il2cpp-object-internals.h"
|
||||
#include "il2cpp-config.h"
|
||||
|
||||
struct Il2CppArray;
|
||||
struct Il2CppObject;
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
namespace Threading
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API WaitHandle
|
||||
{
|
||||
public:
|
||||
static bool SignalAndWait_Internal(intptr_t toSignal, intptr_t toWaitOn, int32_t ms, bool exitContext);
|
||||
static bool WaitAll_internal(Il2CppArray* handles, int32_t ms, bool exitContext);
|
||||
static int32_t WaitAny_internal(Il2CppArray* handles, int32_t ms, bool exitContext);
|
||||
static bool WaitOne_internal(Il2CppObject* unused, intptr_t handlePtr, int32_t ms, bool exitContext);
|
||||
#if NET_4_0
|
||||
static int32_t SignalAndWait_Internal40(intptr_t toSignal, intptr_t toWaitOn, int32_t ms);
|
||||
static int32_t Wait_internal(void* *handles, int32_t numhandles, bool waitall, int32_t timeout);
|
||||
#endif
|
||||
|
||||
private:
|
||||
static const int m_waitIntervalMs = 10;
|
||||
};
|
||||
} /* namespace Threading */
|
||||
} /* namespace System */
|
||||
} /* namespace mscorlib */
|
||||
} /* namespace icalls */
|
||||
} /* namespace il2cpp */
|
||||
@@ -0,0 +1,24 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
#include "il2cpp-config.h"
|
||||
struct Il2CppObject;
|
||||
struct Il2CppReflectionType;
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API Activator
|
||||
{
|
||||
public:
|
||||
static Il2CppObject* CreateInstanceInternal(Il2CppReflectionType *type);
|
||||
};
|
||||
} /* namespace System */
|
||||
} /* namespace mscorlib */
|
||||
} /* namespace icalls */
|
||||
} /* namespace il2cpp */
|
||||
@@ -0,0 +1,61 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
#include "il2cpp-config.h"
|
||||
|
||||
struct mscorlib_System_AppDomain;
|
||||
struct mscorlib_System_AppDomainSetup;
|
||||
struct mscorlib_System_Runtime_Remoting_Contexts_Context;
|
||||
struct mscorlib_System_Security_Policy_Evidence;
|
||||
struct mscorlib_System_Reflection_Assembly;
|
||||
|
||||
struct Il2CppObject;
|
||||
struct Il2CppString;
|
||||
struct Il2CppArray;
|
||||
struct Il2CppAssembly;
|
||||
struct Il2CppAppDomain;
|
||||
struct Il2CppAppDomainSetup;
|
||||
struct Il2CppReflectionAssembly;
|
||||
struct Il2CppAppContext;
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API AppDomain
|
||||
{
|
||||
public:
|
||||
static void InternalPopDomainRef();
|
||||
static Il2CppAppDomain* getCurDomain();
|
||||
static Il2CppAppDomain* getRootDomain();
|
||||
static int32_t ExecuteAssembly(Il2CppAppDomain* self, Il2CppAssembly* a, Il2CppArray* args);
|
||||
static Il2CppObject* GetData(Il2CppAppDomain* self, Il2CppString* name);
|
||||
static Il2CppAppContext* InternalGetContext(void);
|
||||
static Il2CppAppContext* InternalGetDefaultContext(void);
|
||||
static Il2CppString* InternalGetProcessGuid(Il2CppString* newguid);
|
||||
static bool InternalIsFinalizingForUnload(int32_t domain_id);
|
||||
static void InternalPushDomainRef(mscorlib_System_AppDomain * domain);
|
||||
static void InternalPushDomainRefByID(int32_t domain_id);
|
||||
static mscorlib_System_Runtime_Remoting_Contexts_Context * InternalSetContext(mscorlib_System_Runtime_Remoting_Contexts_Context * context);
|
||||
static mscorlib_System_AppDomain * InternalSetDomain(mscorlib_System_AppDomain * context);
|
||||
static mscorlib_System_AppDomain * InternalSetDomainByID(int32_t domain_id);
|
||||
static void InternalUnload(int32_t domain_id);
|
||||
static Il2CppReflectionAssembly* LoadAssembly(Il2CppAppDomain* ad, Il2CppString* assemblyRef, struct mscorlib_System_Security_Policy_Evidence* evidence, bool refOnly);
|
||||
static Il2CppAssembly* LoadAssemblyRaw(Il2CppAppDomain* self, Il2CppArray* rawAssembly, Il2CppArray* rawSymbolStore, void* /* System.Security.Policy.Evidence */ securityEvidence, bool refonly);
|
||||
static void SetData(Il2CppAppDomain* self, Il2CppString* name, Il2CppObject* data);
|
||||
static Il2CppAppDomain* createDomain(Il2CppString*, mscorlib_System_AppDomainSetup*);
|
||||
static Il2CppString * getFriendlyName(Il2CppAppDomain* ad);
|
||||
static Il2CppAppDomainSetup* getSetup(Il2CppAppDomain* domain);
|
||||
static Il2CppArray* GetAssemblies(Il2CppAppDomain* ad, bool refonly);
|
||||
#if NET_4_0
|
||||
static void DoUnhandledException(Il2CppObject* _this, Il2CppException* e);
|
||||
#endif
|
||||
};
|
||||
} /* namespace System */
|
||||
} /* namespace mscorlib */
|
||||
} /* namespace icalls */
|
||||
} /* namespace il2cpp */
|
||||
+29
@@ -0,0 +1,29 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
#include "il2cpp-config.h"
|
||||
#include "il2cpp-object-internals.h"
|
||||
|
||||
struct mscorlib_System_ArgIterator;
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API ArgIterator
|
||||
{
|
||||
public:
|
||||
static void* /* System.TypedReference */ IntGetNextArg(ArgIterator self);
|
||||
static Il2CppTypedRef IntGetNextArg_mscorlib_System_TypedReference(mscorlib_System_ArgIterator * thisPtr);
|
||||
static Il2CppTypedRef IntGetNextArg_mscorlib_System_TypedReference_mscorlib_System_IntPtr(mscorlib_System_ArgIterator * thisPtr, intptr_t rth);
|
||||
static void Setup(mscorlib_System_ArgIterator * thisPtr, intptr_t argsp, intptr_t start);
|
||||
static intptr_t IntGetNextArgType(mscorlib_System_ArgIterator * thisPtr);
|
||||
};
|
||||
} /* namespace System */
|
||||
} /* namespace mscorlib */
|
||||
} /* namespace icalls */
|
||||
} /* namespace il2cpp */
|
||||
@@ -0,0 +1,35 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
#include "il2cpp-config.h"
|
||||
struct Il2CppArray;
|
||||
struct Il2CppReflectionType;
|
||||
struct Il2CppObject;
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API Array
|
||||
{
|
||||
public:
|
||||
static void ClearInternal(Il2CppArray* arr, int32_t idx, int32_t length);
|
||||
static Il2CppArray* Clone(Il2CppArray* arr);
|
||||
static Il2CppArray* CreateInstanceImpl(Il2CppReflectionType* elementType, Il2CppArray* lengths, Il2CppArray* bounds);
|
||||
static bool FastCopy(Il2CppArray* source, int32_t source_idx, Il2CppArray* dest, int32_t dest_idx, int32_t length);
|
||||
static int32_t GetLength(Il2CppArray* thisPtr, int dimension);
|
||||
static int32_t GetLowerBound(Il2CppArray* , int32_t);
|
||||
static Il2CppObject* GetValue(Il2CppArray* thisPtr, Il2CppArray* indices);
|
||||
static Il2CppObject* GetValueImpl(Il2CppArray* thisPtr, int32_t pos);
|
||||
static void SetValue(Il2CppArray* , Il2CppObject* , Il2CppArray*);
|
||||
static void SetValueImpl(Il2CppArray* thisPtr, Il2CppObject* value, int index);
|
||||
static int GetRank(Il2CppArray* array);
|
||||
};
|
||||
} /* namespace System */
|
||||
} /* namespace mscorlib */
|
||||
} /* namespace icalls */
|
||||
} /* namespace il2cpp */
|
||||
@@ -0,0 +1,34 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
#include "il2cpp-config.h"
|
||||
#include "il2cpp-object-internals.h"
|
||||
|
||||
struct Il2CppArray;
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API Buffer
|
||||
{
|
||||
public:
|
||||
static bool BlockCopyInternal(Il2CppArray * src, int src_offset, Il2CppArray * dest, int dest_offset, int count);
|
||||
static int32_t ByteLengthInternal(Il2CppArray* arr);
|
||||
static uint8_t GetByteInternal(Il2CppArray* arr, int idx);
|
||||
static void SetByteInternal(Il2CppArray* arr, int idx, int value);
|
||||
#if NET_4_0
|
||||
static uint8_t _GetByte(Il2CppArray* array, int32_t index);
|
||||
static bool InternalBlockCopy(Il2CppArray* src, int32_t srcOffsetBytes, Il2CppArray* dst, int32_t dstOffsetBytes, int32_t byteCount);
|
||||
static int32_t _ByteLength(Il2CppArray* array);
|
||||
static void _SetByte(Il2CppArray* array, int32_t index, uint8_t value);
|
||||
#endif
|
||||
};
|
||||
} /* namespace System */
|
||||
} /* namespace mscorlib */
|
||||
} /* namespace icalls */
|
||||
} /* namespace il2cpp */
|
||||
@@ -0,0 +1,21 @@
|
||||
#pragma once
|
||||
#if NET_4_0
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API CLRConfig
|
||||
{
|
||||
public:
|
||||
static bool CheckThrowUnobservedTaskExceptions();
|
||||
};
|
||||
} // namespace System
|
||||
} // namespace mscorlib
|
||||
} // namespace icalls
|
||||
} // namespace il2cpp
|
||||
#endif
|
||||
@@ -0,0 +1,29 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
#include "il2cpp-config.h"
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API Char
|
||||
{
|
||||
public:
|
||||
static void GetDataTablePointers(
|
||||
const unsigned char** category_data,
|
||||
const unsigned char** numeric_data,
|
||||
const double** numeric_data_values,
|
||||
const Il2CppChar** to_lower_data_low,
|
||||
const Il2CppChar** to_lower_data_high,
|
||||
const Il2CppChar** to_upper_data_low,
|
||||
const Il2CppChar** to_upper_data_high);
|
||||
};
|
||||
} /* namespace System */
|
||||
} /* namespace mscorlib */
|
||||
} /* namespace icalls */
|
||||
} /* namespace il2cpp */
|
||||
+39
@@ -0,0 +1,39 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
#include "il2cpp-config.h"
|
||||
#include "il2cpp-object-internals.h"
|
||||
|
||||
struct Il2CppObject;
|
||||
struct Il2CppDelegate;
|
||||
struct Il2CppReflectionType;
|
||||
struct Il2CppReflectionMethod;
|
||||
struct Il2CppReflectionField;
|
||||
struct Il2CppArray;
|
||||
struct Il2CppException;
|
||||
struct Il2CppReflectionModule;
|
||||
struct Il2CppAssembly;
|
||||
struct Il2CppAssemblyName;
|
||||
struct Il2CppAppDomain;
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API ConsoleDriver
|
||||
{
|
||||
public:
|
||||
static int32_t InternalKeyAvailable(int32_t ms_timeout);
|
||||
static bool SetBreak(bool wantBreak);
|
||||
static bool SetEcho(bool wantEcho);
|
||||
static bool TtySetup(Il2CppString* keypadXmit, Il2CppString* teardown, Il2CppArray** control_characters, int32_t** size);
|
||||
static bool Isatty(intptr_t handle);
|
||||
};
|
||||
} /* namespace System */
|
||||
} /* namespace mscorlib */
|
||||
} /* namespace icalls */
|
||||
} /* namespace il2cpp */
|
||||
@@ -0,0 +1,27 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
#include "il2cpp-config.h"
|
||||
|
||||
struct Il2CppArray;
|
||||
struct Il2CppString;
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API Convert
|
||||
{
|
||||
public:
|
||||
static Il2CppArray* InternalFromBase64CharArray(Il2CppArray* arr, int32_t offset, int32_t length);
|
||||
static Il2CppArray* InternalFromBase64String(Il2CppString* str, bool allowWhitespaceOnly);
|
||||
static Il2CppArray* Base64ToByteArray(Il2CppChar* start, int length, bool allowWhitespaceOnly);
|
||||
};
|
||||
} /* namespace System */
|
||||
} /* namespace mscorlib */
|
||||
} /* namespace icalls */
|
||||
} /* namespace il2cpp */
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
#include "il2cpp-config.h"
|
||||
|
||||
struct Il2CppArray;
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API CurrentSystemTimeZone
|
||||
{
|
||||
public:
|
||||
#if NET_4_0
|
||||
static bool GetTimeZoneData40(int year, Il2CppArray * *, Il2CppArray * *, bool * daylight_inverted);
|
||||
#else
|
||||
static bool GetTimeZoneData(int, Il2CppArray * *, Il2CppArray * *);
|
||||
#endif
|
||||
};
|
||||
} /* namespace System */
|
||||
} /* namespace mscorlib */
|
||||
} /* namespace icalls */
|
||||
} /* namespace il2cpp */
|
||||
@@ -0,0 +1,26 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
#include "il2cpp-config.h"
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API DateTime
|
||||
{
|
||||
public:
|
||||
static int64_t GetNow(void);
|
||||
static int64_t GetTimeMonotonic();
|
||||
#if NET_4_0
|
||||
static int64_t GetSystemTimeAsFileTime();
|
||||
#endif
|
||||
};
|
||||
} /* namespace System */
|
||||
} /* namespace mscorlib */
|
||||
} /* namespace icalls */
|
||||
} /* namespace il2cpp */
|
||||
@@ -0,0 +1,52 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
#include "il2cpp-config.h"
|
||||
|
||||
struct Il2CppString;
|
||||
struct mscorlib_System_Decimal;
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API Decimal
|
||||
{
|
||||
public:
|
||||
#if !NET_4_0
|
||||
static int32_t decimal2Int64(il2cpp_decimal_repr* val, int64_t* result);
|
||||
static int32_t decimal2UInt64(il2cpp_decimal_repr* val, uint64_t* result);
|
||||
static int32_t decimal2string(il2cpp_decimal_repr* val, int32_t digits, int32_t decimals, Il2CppArray* bufDigits, int32_t bufSize, int32_t* decPos, int32_t* sign);
|
||||
static int decimalCompare(il2cpp_decimal_repr *pA, il2cpp_decimal_repr *pB);
|
||||
static int32_t decimalDiv(il2cpp_decimal_repr* pC, il2cpp_decimal_repr* pA, il2cpp_decimal_repr* pB);
|
||||
static void decimalFloorAndTrunc(il2cpp_decimal_repr * pA, int32_t floorFlag);
|
||||
static int32_t decimalIncr(il2cpp_decimal_repr * d1, il2cpp_decimal_repr * d2);
|
||||
static int32_t decimalIntDiv(il2cpp_decimal_repr* pc, il2cpp_decimal_repr* pa, il2cpp_decimal_repr* pb);
|
||||
static int32_t decimalMult(il2cpp_decimal_repr* pA, il2cpp_decimal_repr* pB);
|
||||
static int decimalSetExponent(il2cpp_decimal_repr*, int);
|
||||
static int string2decimal(il2cpp_decimal_repr *pA, Il2CppString *str, unsigned int decrDecimal, int sign);
|
||||
static double decimal2double(il2cpp_decimal_repr* val);
|
||||
#else
|
||||
static double ToDouble(Il2CppDecimal d);
|
||||
static int32_t FCallCompare(Il2CppDecimal* left, Il2CppDecimal* right);
|
||||
static int32_t FCallToInt32(Il2CppDecimal d);
|
||||
static int32_t GetHashCode(Il2CppDecimal* _this);
|
||||
static float ToSingle(Il2CppDecimal d);
|
||||
static void ConstructorDouble(Il2CppDecimal* _this, double value);
|
||||
static void ConstructorFloat(Il2CppDecimal* _this, float value);
|
||||
static void FCallAddSub(Il2CppDecimal* left, Il2CppDecimal* right, uint8_t sign);
|
||||
static void FCallDivide(Il2CppDecimal* left, Il2CppDecimal* right);
|
||||
static void FCallFloor(Il2CppDecimal* d);
|
||||
static void FCallMultiply(Il2CppDecimal* d1, Il2CppDecimal* d2);
|
||||
static void FCallRound(Il2CppDecimal* d, int32_t decimals);
|
||||
static void FCallTruncate(Il2CppDecimal* d);
|
||||
#endif
|
||||
};
|
||||
} /* namespace System */
|
||||
} /* namespace mscorlib */
|
||||
} /* namespace icalls */
|
||||
} /* namespace il2cpp */
|
||||
@@ -0,0 +1,34 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
#include "il2cpp-config.h"
|
||||
|
||||
struct Il2CppObject;
|
||||
struct Il2CppReflectionType;
|
||||
struct Il2CppReflectionMethod;
|
||||
|
||||
struct Il2CppDelegate;
|
||||
struct Il2CppMulticastDelegate;
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API Delegate
|
||||
{
|
||||
public:
|
||||
static Il2CppDelegate * CreateDelegate_internal(Il2CppReflectionType *, Il2CppObject *, Il2CppReflectionMethod *, bool);
|
||||
static void SetMulticastInvoke(Il2CppDelegate *);
|
||||
#if NET_4_0
|
||||
static Il2CppMulticastDelegate* AllocDelegateLike_internal(Il2CppDelegate* d);
|
||||
static Il2CppObject* GetVirtualMethod_internal(Il2CppObject* _this);
|
||||
#endif
|
||||
};
|
||||
} /* namespace System */
|
||||
} /* namespace mscorlib */
|
||||
} /* namespace icalls */
|
||||
} /* namespace il2cpp */
|
||||
@@ -0,0 +1,22 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
#include "il2cpp-config.h"
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API Double
|
||||
{
|
||||
public:
|
||||
static bool ParseImpl(char *, double *);
|
||||
};
|
||||
} /* namespace System */
|
||||
} /* namespace mscorlib */
|
||||
} /* namespace icalls */
|
||||
} /* namespace il2cpp */
|
||||
@@ -0,0 +1,35 @@
|
||||
#pragma once
|
||||
|
||||
#include "il2cpp-config.h"
|
||||
struct Il2CppObject;
|
||||
struct Il2CppReflectionType;
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API Enum
|
||||
{
|
||||
public:
|
||||
static Il2CppObject* ToObject(Il2CppReflectionType* enumType, Il2CppObject* value);
|
||||
static int compare_value_to(Il2CppObject* thisPtr, Il2CppObject* other);
|
||||
static int32_t get_hashcode(Il2CppObject* thisPtr);
|
||||
static Il2CppObject* get_value(Il2CppObject* thisPtr);
|
||||
static Il2CppReflectionType* get_underlying_type(Il2CppReflectionType* type);
|
||||
|
||||
#if NET_4_0
|
||||
static bool GetEnumValuesAndNames(Il2CppReflectionRuntimeType* enumType, Il2CppArray** values, Il2CppArray** names);
|
||||
static bool InternalHasFlag(Il2CppObject* thisPtr, Il2CppObject* flags);
|
||||
static int32_t InternalCompareTo(Il2CppObject* o1, Il2CppObject* o2);
|
||||
static Il2CppObject* InternalBoxEnum(Il2CppReflectionRuntimeType* enumType, int64_t value);
|
||||
static Il2CppReflectionRuntimeType* InternalGetUnderlyingType(Il2CppReflectionRuntimeType* enumType);
|
||||
#endif
|
||||
};
|
||||
} /* namespace System */
|
||||
} /* namespace mscorlib */
|
||||
} /* namespace icalls */
|
||||
} /* namespace il2cpp */
|
||||
+54
@@ -0,0 +1,54 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
#include "il2cpp-config.h"
|
||||
|
||||
struct Il2CppString;
|
||||
struct Il2CppArray;
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API Environment
|
||||
{
|
||||
public:
|
||||
static Il2CppString* internalGetGacPath();
|
||||
static int32_t get_ProcessorCount();
|
||||
static bool get_SocketSecurityEnabled();
|
||||
static void internalBroadcastSettingChange();
|
||||
static Il2CppString* GetOSVersionString();
|
||||
static Il2CppString* GetMachineConfigPath();
|
||||
static Il2CppArray* GetLogicalDrivesInternal();
|
||||
static Il2CppArray* GetEnvironmentVariableNames();
|
||||
static Il2CppArray* GetCommandLineArgs();
|
||||
static Il2CppString* internalGetHome();
|
||||
static Il2CppString* get_NewLine();
|
||||
static Il2CppString* get_MachineName();
|
||||
static int32_t get_ExitCode();
|
||||
static bool get_HasShutdownStarted();
|
||||
static Il2CppString* get_EmbeddingHostName();
|
||||
static Il2CppString* get_UserName();
|
||||
static int get_Platform();
|
||||
static int32_t get_TickCount();
|
||||
static void Exit(int32_t exitCode);
|
||||
static Il2CppString* GetWindowsFolderPath(int32_t folder);
|
||||
static Il2CppString* internalGetEnvironmentVariable(Il2CppString *);
|
||||
static void set_ExitCode(int32_t value);
|
||||
static void InternalSetEnvironmentVariable(Il2CppString* variable, Il2CppString* value);
|
||||
#if NET_4_0
|
||||
static bool GetIs64BitOperatingSystem();
|
||||
static int32_t GetPageSize();
|
||||
static Il2CppString* GetNewLine();
|
||||
static Il2CppString* internalGetEnvironmentVariable_native(intptr_t variable);
|
||||
static Il2CppString* get_bundled_machine_config();
|
||||
#endif
|
||||
};
|
||||
} /* namespace System */
|
||||
} /* namespace mscorlib */
|
||||
} /* namespace icalls */
|
||||
} /* namespace il2cpp */
|
||||
@@ -0,0 +1,22 @@
|
||||
#pragma once
|
||||
#if NET_4_0
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API Exception
|
||||
{
|
||||
public:
|
||||
static bool nIsTransient(int32_t hr);
|
||||
static Il2CppObject* GetMethodFromStackTrace(Il2CppObject* stackTrace);
|
||||
};
|
||||
} // namespace System
|
||||
} // namespace mscorlib
|
||||
} // namespace icalls
|
||||
} // namespace il2cpp
|
||||
#endif
|
||||
@@ -0,0 +1,41 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
#include "il2cpp-config.h"
|
||||
|
||||
struct Il2CppObject;
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API GC
|
||||
{
|
||||
public:
|
||||
static int get_MaxGeneration();
|
||||
static int32_t CollectionCount(int32_t generation);
|
||||
static int32_t GetGeneration(Il2CppObject* obj);
|
||||
static int64_t GetTotalMemory(bool forceFullCollection);
|
||||
static void InternalCollect(int generation);
|
||||
static void KeepAlive(Il2CppObject* obj);
|
||||
static void ReRegisterForFinalize(Il2CppObject* obj);
|
||||
static void SuppressFinalize(Il2CppObject *);
|
||||
static void RecordPressure(int64_t bytesAllocated);
|
||||
static void WaitForPendingFinalizers();
|
||||
#if NET_4_0
|
||||
static Il2CppObject* get_ephemeron_tombstone();
|
||||
static void register_ephemeron_array(Il2CppArray* array);
|
||||
static int32_t GetCollectionCount(int32_t generation);
|
||||
static int32_t GetMaxGeneration();
|
||||
static void _ReRegisterForFinalize(Il2CppObject* o);
|
||||
static void _SuppressFinalize(Il2CppObject* o);
|
||||
#endif
|
||||
};
|
||||
} /* namespace System */
|
||||
} /* namespace mscorlib */
|
||||
} /* namespace icalls */
|
||||
} /* namespace il2cpp */
|
||||
@@ -0,0 +1,43 @@
|
||||
#pragma once
|
||||
#include "il2cpp-config.h"
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API Math
|
||||
{
|
||||
public:
|
||||
static double Acos(double val);
|
||||
static double Asin(double val);
|
||||
static double Atan(double val);
|
||||
static double Atan2(double y, double x);
|
||||
static double Cos(double val);
|
||||
static double Cosh(double val);
|
||||
static double Exp(double val);
|
||||
static double Floor(double x);
|
||||
static double Log(double x);
|
||||
static double Log10(double val);
|
||||
static double Pow(double val, double exp);
|
||||
static double Round(double x);
|
||||
static double Round2(double value, int32_t digits, bool away_from_zero);
|
||||
static double Sin(double val);
|
||||
static double Sinh(double val);
|
||||
static double Sqrt(double val);
|
||||
static double Tan(double val);
|
||||
static double Tanh(double val);
|
||||
#if NET_4_0
|
||||
static double Abs(double value);
|
||||
static double Ceiling(double a);
|
||||
static double SplitFractionDouble(double* value);
|
||||
static float Abs(float value);
|
||||
#endif
|
||||
};
|
||||
} /* namespace System */
|
||||
} /* namespace mscorlib */
|
||||
} /* namespace icalls */
|
||||
} /* namespace il2cpp */
|
||||
+21
@@ -0,0 +1,21 @@
|
||||
#pragma once
|
||||
#if NET_4_0
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API MissingMemberException
|
||||
{
|
||||
public:
|
||||
static Il2CppString* FormatSignature(Il2CppArray* signature);
|
||||
};
|
||||
} // namespace System
|
||||
} // namespace mscorlib
|
||||
} // namespace icalls
|
||||
} // namespace il2cpp
|
||||
#endif
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
#include "il2cpp-config.h"
|
||||
|
||||
struct Il2CppArray;
|
||||
struct Il2CppObject;
|
||||
struct Il2CppReflectionType;
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API MonoCustomAttrs
|
||||
{
|
||||
public:
|
||||
static Il2CppArray* GetCustomAttributesDataInternal(Il2CppObject* obj);
|
||||
static Il2CppArray * GetCustomAttributesInternal(Il2CppObject* obj, Il2CppReflectionType* type, bool pseudoAttrs);
|
||||
static bool IsDefinedInternal(Il2CppObject *obj, Il2CppReflectionType *attr_type);
|
||||
};
|
||||
} /* namespace System */
|
||||
} /* namespace mscorlib */
|
||||
} /* namespace icalls */
|
||||
} /* namespace il2cpp */
|
||||
+27
@@ -0,0 +1,27 @@
|
||||
#pragma once
|
||||
#include "il2cpp-config.h"
|
||||
|
||||
#if !NET_4_0
|
||||
|
||||
struct Il2CppReflectionType;
|
||||
struct Il2CppEnumInfo;
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API MonoEnumInfo
|
||||
{
|
||||
public:
|
||||
static void get_enum_info(Il2CppReflectionType* type, Il2CppEnumInfo* info);
|
||||
};
|
||||
} /* namespace System */
|
||||
} /* namespace mscorlib */
|
||||
} /* namespace icalls */
|
||||
} /* namespace il2cpp */
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,90 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
#include "il2cpp-config.h"
|
||||
|
||||
struct mscorlib_System_Reflection_MethodInfo;
|
||||
|
||||
struct Il2CppArray;
|
||||
struct Il2CppString;
|
||||
struct Il2CppReflectionAssembly;
|
||||
struct Il2CppReflectionField;
|
||||
struct Il2CppReflectionModule;
|
||||
struct Il2CppReflectionMonoType;
|
||||
struct Il2CppReflectionType;
|
||||
struct Il2CppReflectionEvent;
|
||||
|
||||
typedef int32_t BindingFlags;
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
enum
|
||||
{
|
||||
BFLAGS_IgnoreCase = 1,
|
||||
BFLAGS_DeclaredOnly = 2,
|
||||
BFLAGS_Instance = 4,
|
||||
BFLAGS_Static = 8,
|
||||
BFLAGS_Public = 0x10,
|
||||
BFLAGS_NonPublic = 0x20,
|
||||
BFLAGS_FlattenHierarchy = 0x40,
|
||||
BFLAGS_InvokeMethod = 0x100,
|
||||
BFLAGS_CreateInstance = 0x200,
|
||||
BFLAGS_GetField = 0x400,
|
||||
BFLAGS_SetField = 0x800,
|
||||
BFLAGS_GetProperty = 0x1000,
|
||||
BFLAGS_SetProperty = 0x2000,
|
||||
BFLAGS_ExactBinding = 0x10000,
|
||||
BFLAGS_SuppressChangeType = 0x20000,
|
||||
BFLAGS_OptionalParamBinding = 0x40000
|
||||
};
|
||||
|
||||
|
||||
class LIBIL2CPP_CODEGEN_API MonoType
|
||||
{
|
||||
public:
|
||||
static Il2CppString* getFullName(Il2CppReflectionType* type, bool full_name, bool assembly_qualified);
|
||||
static Il2CppArray* GetFields_internal(Il2CppReflectionType* _this, int, Il2CppReflectionType* reflectedType);
|
||||
static Il2CppArray* GetFieldsByName(Il2CppReflectionType* _this, Il2CppString* name, int, Il2CppReflectionType* reflectedType);
|
||||
static int GetArrayRank(Il2CppReflectionType* type);
|
||||
static Il2CppArray* GetConstructors_internal(Il2CppReflectionType* type, int32_t bflags, Il2CppReflectionType* reftype);
|
||||
static Il2CppReflectionType* GetElementType(Il2CppReflectionType* type);
|
||||
static Il2CppArray* GetEvents_internal(Il2CppReflectionType* thisPtr, int32_t bindingFlags, Il2CppReflectionType* type);
|
||||
static Il2CppArray* GetEventsByName(Il2CppReflectionType* _this, Il2CppString* name, int bindingFlags, Il2CppReflectionType* reflectedType);
|
||||
static Il2CppReflectionField* GetField(Il2CppReflectionType* _this, Il2CppString* name, int32_t bindingFlags);
|
||||
static Il2CppArray* GetGenericArguments(Il2CppReflectionType* type);
|
||||
static Il2CppArray* GetInterfaces(Il2CppReflectionType* type);
|
||||
static Il2CppArray* GetMethodsByName(Il2CppReflectionType* _this, Il2CppString* name, int bindingFlags, bool ignoreCase, Il2CppReflectionType* type);
|
||||
static Il2CppReflectionType* GetNestedType(Il2CppReflectionType* type, Il2CppString* name, BindingFlags bindingFlags);
|
||||
static Il2CppArray* GetNestedTypesByName(Il2CppReflectionType* type, Il2CppString* name, int32_t bindingAttr);
|
||||
static Il2CppArray* GetNestedTypes(Il2CppReflectionType* type, int32_t bindingAttr);
|
||||
static Il2CppArray* GetPropertiesByName(Il2CppReflectionType* _this, Il2CppString* name, uint32_t bindingFlags, bool ignoreCase, Il2CppReflectionType* type);
|
||||
static Il2CppReflectionEvent* InternalGetEvent(Il2CppReflectionType* _this, Il2CppString* name, int32_t bindingFlags);
|
||||
static bool IsByRefImpl(Il2CppReflectionType* type);
|
||||
static bool IsCOMObjectImpl(Il2CppReflectionMonoType*);
|
||||
static bool IsPointerImpl(Il2CppReflectionType* type);
|
||||
static Il2CppReflectionAssembly* get_Assembly(Il2CppReflectionType*);
|
||||
static Il2CppReflectionType* get_BaseType(Il2CppReflectionType* type);
|
||||
static void* /* System.Reflection.MethodBase */ get_DeclaringMethod(void* /* System.MonoType */ self);
|
||||
static Il2CppReflectionType* get_DeclaringType(Il2CppReflectionMonoType*);
|
||||
static bool get_IsGenericParameter(Il2CppReflectionType*);
|
||||
static bool IsGenericParameter(const Il2CppType *type);
|
||||
static Il2CppReflectionModule* get_Module(Il2CppReflectionType* thisPtr);
|
||||
static Il2CppString* get_Name(Il2CppReflectionType* type);
|
||||
static Il2CppString* get_Namespace(Il2CppReflectionType* type);
|
||||
static int get_attributes(Il2CppReflectionType* type);
|
||||
static void type_from_obj(void* /* System.MonoType */ type, Il2CppObject* obj);
|
||||
static bool IsPrimitiveImpl(Il2CppReflectionType*);
|
||||
static bool PropertyEqual(const PropertyInfo* prop1, const PropertyInfo* prop2);
|
||||
static bool PropertyAccessorNonPublic(const MethodInfo* accessor, bool start_klass);
|
||||
static bool MethodNonPublic(const MethodInfo* method, bool start_klass);
|
||||
};
|
||||
} /* namespace System */
|
||||
} /* namespace mscorlib */
|
||||
} /* namespace icalls */
|
||||
} /* namespace il2cpp */
|
||||
@@ -0,0 +1,24 @@
|
||||
#pragma once
|
||||
#if NET_4_0
|
||||
|
||||
#include "il2cpp-object-internals.h"
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API Number
|
||||
{
|
||||
public:
|
||||
static bool NumberBufferToDecimal(uint8_t* number, Il2CppDecimal* value);
|
||||
static bool NumberBufferToDouble(uint8_t* number, double* value);
|
||||
};
|
||||
} // namespace System
|
||||
} // namespace mscorlib
|
||||
} // namespace icalls
|
||||
} // namespace il2cpp
|
||||
#endif
|
||||
+27
@@ -0,0 +1,27 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
#include "il2cpp-config.h"
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API NumberFormatter
|
||||
{
|
||||
public:
|
||||
static void GetFormatterTables(uint64_t * * mantissas,
|
||||
int32_t * * exponents,
|
||||
int16_t * * digitLowerTable,
|
||||
int16_t * * digitUpperTable,
|
||||
int64_t * * tenPowersList,
|
||||
int32_t * * decHexDigits);
|
||||
};
|
||||
} /* namespace System */
|
||||
} /* namespace mscorlib */
|
||||
} /* namespace icalls */
|
||||
} /* namespace il2cpp */
|
||||
@@ -0,0 +1,28 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
#include "il2cpp-config.h"
|
||||
|
||||
struct Il2CppObject;
|
||||
struct Il2CppReflectionType;
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API Object
|
||||
{
|
||||
public:
|
||||
static Il2CppReflectionType* GetType(Il2CppObject* obj);
|
||||
static int InternalGetHashCode(Il2CppObject* obj);
|
||||
static intptr_t obj_address(Il2CppObject* obj);
|
||||
static Il2CppObject* MemberwiseClone(Il2CppObject* obj);
|
||||
};
|
||||
} /* namespace System */
|
||||
} /* namespace mscorlib */
|
||||
} /* namespace icalls */
|
||||
} /* namespace il2cpp */
|
||||
+23
@@ -0,0 +1,23 @@
|
||||
#pragma once
|
||||
#if NET_4_0
|
||||
#include "il2cpp-object-internals.h"
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API RuntimeFieldHandle
|
||||
{
|
||||
public:
|
||||
static void SetValueDirect(Il2CppReflectionField* field, Il2CppObject* fieldType, Il2CppTypedRef* typedRef, Il2CppObject* value, Il2CppObject* contextType);
|
||||
static void SetValueInternal(Il2CppReflectionField* fi, Il2CppObject* obj, Il2CppObject* value);
|
||||
};
|
||||
} // namespace System
|
||||
} // namespace mscorlib
|
||||
} // namespace icalls
|
||||
} // namespace il2cpp
|
||||
#endif
|
||||
+35
@@ -0,0 +1,35 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
#include "il2cpp-object-internals.h"
|
||||
#include "il2cpp-config.h"
|
||||
|
||||
struct Il2CppObject;
|
||||
struct Il2CppDelegate;
|
||||
struct Il2CppReflectionType;
|
||||
struct Il2CppReflectionMethod;
|
||||
struct Il2CppReflectionField;
|
||||
struct Il2CppArray;
|
||||
struct Il2CppException;
|
||||
struct Il2CppReflectionModule;
|
||||
struct Il2CppAssembly;
|
||||
struct Il2CppAssemblyName;
|
||||
struct Il2CppAppDomain;
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API RuntimeMethodHandle
|
||||
{
|
||||
public:
|
||||
static intptr_t GetFunctionPointer(intptr_t m);
|
||||
};
|
||||
} /* namespace System */
|
||||
} /* namespace mscorlib */
|
||||
} /* namespace icalls */
|
||||
} /* namespace il2cpp */
|
||||
+63
@@ -0,0 +1,63 @@
|
||||
#pragma once
|
||||
|
||||
#if NET_4_0
|
||||
|
||||
struct Il2CppReflectionRuntimeType;
|
||||
|
||||
#include "il2cpp-object-internals.h"
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API RuntimeType
|
||||
{
|
||||
public:
|
||||
static bool IsTypeExportedToWindowsRuntime(Il2CppObject* type);
|
||||
static bool IsWindowsRuntimeObjectType(Il2CppObject* type);
|
||||
static int32_t get_core_clr_security_level(Il2CppObject* _this);
|
||||
static int32_t GetGenericParameterPosition(Il2CppReflectionRuntimeType* _this);
|
||||
static Il2CppObject* CreateInstanceInternal(Il2CppReflectionType* type);
|
||||
static int32_t GetGenericParameterAttributes(Il2CppReflectionRuntimeType* _this);
|
||||
static Il2CppObject* get_DeclaringMethod(Il2CppObject* _this);
|
||||
static Il2CppArray* GetConstructors_internal(Il2CppReflectionRuntimeType* _this, int32_t bindingAttr, Il2CppReflectionType* reflected_type);
|
||||
static Il2CppArray* GetEvents_internal(Il2CppReflectionRuntimeType* _this, Il2CppString* name, int32_t bindingAttr, Il2CppReflectionType* reflected_type);
|
||||
static Il2CppArray* GetFields_internal(Il2CppReflectionRuntimeType* _this, Il2CppString* name, int32_t bindingAttr, Il2CppReflectionType* reflected_type);
|
||||
static Il2CppArray* GetMethodsByName(Il2CppReflectionRuntimeType* _this, Il2CppString* name, int32_t bindingAttr, bool ignoreCase, Il2CppReflectionType* reflected_type);
|
||||
static Il2CppArray* GetPropertiesByName(Il2CppReflectionRuntimeType* _this, Il2CppString* name, int32_t bindingAttr, bool icase, Il2CppReflectionType* reflected_type);
|
||||
static Il2CppArray* GetNestedTypes_internal(Il2CppReflectionRuntimeType* _this, Il2CppString* name, int32_t bindingFlags);
|
||||
static Il2CppString* get_Name(Il2CppReflectionRuntimeType* _this);
|
||||
static Il2CppString* get_Namespace(Il2CppReflectionRuntimeType* _this);
|
||||
static Il2CppString* getFullName(Il2CppReflectionRuntimeType* _this, bool full_name, bool assembly_qualified);
|
||||
static Il2CppReflectionType* get_DeclaringType(Il2CppReflectionRuntimeType* _this);
|
||||
static Il2CppReflectionType* make_array_type(Il2CppReflectionRuntimeType* _this, int32_t rank);
|
||||
static Il2CppReflectionType* make_byref_type(Il2CppReflectionRuntimeType* _this);
|
||||
static Il2CppReflectionType* MakeGenericType(Il2CppReflectionType* gt, Il2CppArray* types);
|
||||
static Il2CppReflectionType* MakePointerType(Il2CppReflectionType* type);
|
||||
static Il2CppArray* GetGenericArgumentsInternal(Il2CppReflectionRuntimeType* _this, bool runtimeArray);
|
||||
static Il2CppArray* GetGenericParameterConstraints_impl(Il2CppReflectionRuntimeType* _this);
|
||||
static Il2CppArray* GetInterfaces(Il2CppReflectionRuntimeType* _this);
|
||||
static int32_t GetTypeCodeImplInternal(Il2CppReflectionType* type);
|
||||
static void GetInterfaceMapData(Il2CppReflectionType* t, Il2CppReflectionType* iface, Il2CppArray** targets, Il2CppArray** methods);
|
||||
static void GetPacking(Il2CppReflectionRuntimeType* _this, int32_t* packing, int32_t* size);
|
||||
|
||||
static intptr_t GetConstructors_native(Il2CppReflectionRuntimeType* thisPtr, int32_t bindingAttr);
|
||||
static intptr_t GetEvents_native(Il2CppReflectionRuntimeType* thisPtr, intptr_t name, int32_t bindingAttr);
|
||||
static intptr_t GetFields_native(Il2CppReflectionRuntimeType* thisPtr, intptr_t name, int32_t bindingAttr);
|
||||
static intptr_t GetMethodsByName_native(Il2CppReflectionRuntimeType* thisPtr, intptr_t namePtr, int32_t bindingAttr, bool ignoreCase);
|
||||
static intptr_t GetNestedTypes_native(Il2CppReflectionRuntimeType* thisPtr, intptr_t name, int32_t bindingAttr);
|
||||
static intptr_t GetPropertiesByName_native(Il2CppReflectionRuntimeType* thisPtr, intptr_t name, int32_t bindingAttr, bool icase);
|
||||
|
||||
static void* /* System.Reflection.ConstructorInfo */ GetCorrespondingInflatedConstructor(void* /* System.MonoType */ self, void* /* System.Reflection.ConstructorInfo */ genericInfo);
|
||||
static mscorlib_System_Reflection_MethodInfo* GetCorrespondingInflatedMethod(Il2CppReflectionMonoType*, Il2CppReflectionMonoType*);
|
||||
};
|
||||
} // namespace System
|
||||
} // namespace mscorlib
|
||||
} // namespace icalls
|
||||
} // namespace il2cpp
|
||||
|
||||
#endif
|
||||
+42
@@ -0,0 +1,42 @@
|
||||
#pragma once
|
||||
|
||||
#if NET_4_0
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API RuntimeTypeHandle
|
||||
{
|
||||
public:
|
||||
static bool HasInstantiation(Il2CppReflectionRuntimeType* type);
|
||||
static bool HasReferences(Il2CppReflectionRuntimeType* type);
|
||||
static bool IsArray(Il2CppReflectionRuntimeType* type);
|
||||
static bool IsByRef(Il2CppReflectionRuntimeType* type);
|
||||
static bool IsComObject(Il2CppReflectionRuntimeType* type);
|
||||
static bool IsGenericTypeDefinition(Il2CppReflectionRuntimeType* type);
|
||||
static bool IsGenericVariable(Il2CppReflectionRuntimeType* type);
|
||||
static bool IsInstanceOfType(Il2CppReflectionRuntimeType* type, Il2CppObject* o);
|
||||
static bool IsPointer(Il2CppReflectionRuntimeType* type);
|
||||
static bool IsPrimitive(Il2CppReflectionRuntimeType* type);
|
||||
static bool type_is_assignable_from(Il2CppReflectionType* a, Il2CppReflectionType* b);
|
||||
static int32_t GetArrayRank(Il2CppReflectionRuntimeType* type);
|
||||
static int32_t GetMetadataToken(Il2CppReflectionRuntimeType* type);
|
||||
static Il2CppReflectionAssembly* GetAssembly(Il2CppReflectionRuntimeType* type);
|
||||
static Il2CppReflectionModule* GetModule(Il2CppReflectionRuntimeType* type);
|
||||
static int32_t GetAttributes(Il2CppReflectionRuntimeType* type);
|
||||
static Il2CppReflectionRuntimeType* GetBaseType(Il2CppReflectionRuntimeType* type);
|
||||
static Il2CppReflectionRuntimeType* GetElementType(Il2CppReflectionRuntimeType* type);
|
||||
static Il2CppReflectionType* GetGenericTypeDefinition_impl(Il2CppReflectionRuntimeType* type);
|
||||
static intptr_t GetGenericParameterInfo(Il2CppReflectionRuntimeType* type);
|
||||
};
|
||||
} // namespace System
|
||||
} // namespace mscorlib
|
||||
} // namespace icalls
|
||||
} // namespace il2cpp
|
||||
|
||||
#endif
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
#pragma once
|
||||
|
||||
#if NET_4_0
|
||||
|
||||
#include "il2cpp-object-internals.h"
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API SizedReference
|
||||
{
|
||||
public:
|
||||
static int64_t GetApproximateSizeOfSizedRef(intptr_t h);
|
||||
static intptr_t CreateSizedRef(Il2CppObject* o);
|
||||
static Il2CppObject* GetTargetOfSizedRef(intptr_t h);
|
||||
static void FreeSizedRef(intptr_t h);
|
||||
};
|
||||
} // namespace System
|
||||
} // namespace mscorlib
|
||||
} // namespace icalls
|
||||
} // namespace il2cpp
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,32 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
#include "il2cpp-config.h"
|
||||
|
||||
struct Il2CppString;
|
||||
struct Il2CppArray;
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API String
|
||||
{
|
||||
public:
|
||||
static void RedirectToCreateString();
|
||||
static Il2CppString* InternalAllocateStr(int length);
|
||||
static Il2CppString* InternalIntern(Il2CppString* str);
|
||||
static Il2CppArray* InternalSplit(Il2CppString *, Il2CppArray*, int, int);
|
||||
static Il2CppString* InternalIsInterned(Il2CppString* str);
|
||||
#if NET_4_0
|
||||
static Il2CppString* FastAllocateString(int32_t length);
|
||||
#endif
|
||||
};
|
||||
} /* namespace System */
|
||||
} /* namespace mscorlib */
|
||||
} /* namespace icalls */
|
||||
} /* namespace il2cpp */
|
||||
@@ -0,0 +1,21 @@
|
||||
#pragma once
|
||||
#if NET_4_0
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API TimeSpan
|
||||
{
|
||||
public:
|
||||
static bool LegacyFormatMode();
|
||||
};
|
||||
} // namespace System
|
||||
} // namespace mscorlib
|
||||
} // namespace icalls
|
||||
} // namespace il2cpp
|
||||
#endif
|
||||
+23
@@ -0,0 +1,23 @@
|
||||
#pragma once
|
||||
|
||||
#if NET_4_0
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API TimeZoneInfo
|
||||
{
|
||||
public:
|
||||
static inline bool UseRegistryForTimeZoneInformation() { return IL2CPP_TARGET_WINDOWS_DESKTOP; }
|
||||
};
|
||||
} // namespace System
|
||||
} // namespace mscorlib
|
||||
} // namespace icalls
|
||||
} // namespace il2cpp
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,47 @@
|
||||
#pragma once
|
||||
|
||||
#include "il2cpp-config.h"
|
||||
#include "il2cpp-object-internals.h"
|
||||
|
||||
struct mscorlib_System_Reflection_Assembly;
|
||||
struct mscorlib_System_Reflection_Module;
|
||||
struct mscorlib_System_Reflection_MethodInfo;
|
||||
|
||||
typedef int32_t Il2CppGenericParameterAttributes;
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API Type
|
||||
{
|
||||
public:
|
||||
static bool EqualsInternal(Il2CppReflectionType* left, Il2CppReflectionType* right);
|
||||
static Il2CppGenericParameterAttributes GetGenericParameterAttributes(Il2CppReflectionType* type);
|
||||
static Il2CppArray* GetGenericParameterConstraints_impl(Il2CppReflectionType* type);
|
||||
static int32_t GetGenericParameterPosition(Il2CppReflectionType* type);
|
||||
static Il2CppReflectionType* GetGenericTypeDefinition_impl(Il2CppReflectionType*);
|
||||
static void GetInterfaceMapData(Il2CppReflectionType* t, Il2CppReflectionType* iface, Il2CppArray** targets, Il2CppArray** methods);
|
||||
static void GetPacking(Il2CppReflectionType* type, int32_t* packing, int32_t* size);
|
||||
static int GetTypeCodeInternal(Il2CppReflectionType*);
|
||||
static bool IsArrayImpl(Il2CppReflectionType* t);
|
||||
static bool IsInstanceOfType(Il2CppReflectionType* type, Il2CppObject* obj);
|
||||
static Il2CppReflectionType* MakeGenericType(Il2CppReflectionType* , Il2CppArray*);
|
||||
static Il2CppReflectionType* MakePointerType(Il2CppReflectionType* thisPtr);
|
||||
static bool get_IsGenericType(Il2CppReflectionType*);
|
||||
static bool get_IsGenericTypeDefinition(Il2CppReflectionType* type);
|
||||
static Il2CppReflectionType* internal_from_handle(intptr_t ptr);
|
||||
static Il2CppReflectionType* internal_from_name(Il2CppString* name, bool throwOnError, bool ignoreCase);
|
||||
static Il2CppReflectionType* make_array_type(Il2CppReflectionType* type, int32_t rank);
|
||||
static bool type_is_assignable_from(Il2CppReflectionType* type, Il2CppReflectionType* c);
|
||||
static bool type_is_subtype_of(Il2CppReflectionType* type, Il2CppReflectionType* c, bool check_interfaces);
|
||||
static Il2CppReflectionType* make_byref_type(Il2CppReflectionType* type);
|
||||
};
|
||||
} /* namespace System */
|
||||
} /* namespace mscorlib */
|
||||
} /* namespace icalls */
|
||||
} /* namespace il2cpp */
|
||||
+39
@@ -0,0 +1,39 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
#include "il2cpp-config.h"
|
||||
#include "il2cpp-object-internals.h"
|
||||
|
||||
struct Il2CppObject;
|
||||
struct Il2CppDelegate;
|
||||
struct Il2CppReflectionType;
|
||||
struct Il2CppReflectionMethod;
|
||||
struct Il2CppReflectionField;
|
||||
struct Il2CppArray;
|
||||
struct Il2CppException;
|
||||
struct Il2CppReflectionModule;
|
||||
struct Il2CppAssembly;
|
||||
struct Il2CppAssemblyName;
|
||||
struct Il2CppAppDomain;
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API TypedReference
|
||||
{
|
||||
public:
|
||||
static Il2CppObject* ToObject(void* /* System.TypedReference */ value);
|
||||
#if NET_4_0
|
||||
static Il2CppObject* InternalToObject(Il2CppTypedRef* typedRef);
|
||||
static Il2CppTypedRef MakeTypedReferenceInternal(Il2CppObject* target, Il2CppArray* fields);
|
||||
#endif
|
||||
};
|
||||
} /* namespace System */
|
||||
} /* namespace mscorlib */
|
||||
} /* namespace icalls */
|
||||
} /* namespace il2cpp */
|
||||
@@ -0,0 +1,26 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
#include "il2cpp-config.h"
|
||||
|
||||
struct Il2CppArray;
|
||||
struct Il2CppObject;
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API ValueType
|
||||
{
|
||||
public:
|
||||
static bool InternalEquals(Il2CppObject * thisPtr, Il2CppObject * that, Il2CppArray** fields);
|
||||
static int InternalGetHashCode(Il2CppObject *, Il2CppArray * *);
|
||||
};
|
||||
} /* namespace System */
|
||||
} /* namespace mscorlib */
|
||||
} /* namespace icalls */
|
||||
} /* namespace il2cpp */
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
#include "il2cpp-config.h"
|
||||
#include "il2cpp-object-internals.h"
|
||||
|
||||
struct Il2CppReflectionType;
|
||||
struct mscorlib_System___ComObject;
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace icalls
|
||||
{
|
||||
namespace mscorlib
|
||||
{
|
||||
namespace System
|
||||
{
|
||||
class LIBIL2CPP_CODEGEN_API __ComObject
|
||||
{
|
||||
public:
|
||||
static mscorlib_System___ComObject * CreateRCW(Il2CppReflectionType * t);
|
||||
static void ReleaseInterfaces(mscorlib_System___ComObject * thisPtr);
|
||||
static intptr_t GetInterfaceInternal(mscorlib_System___ComObject * thisPtr, Il2CppReflectionType * t, bool throwException);
|
||||
};
|
||||
} /* namespace System */
|
||||
} /* namespace mscorlib */
|
||||
} /* namespace icalls */
|
||||
} /* namespace il2cpp */
|
||||
@@ -0,0 +1,274 @@
|
||||
#ifndef DO_API_NO_RETURN
|
||||
#define DO_API_NO_RETURN(r, n, p) DO_API(r,n,p)
|
||||
#endif
|
||||
|
||||
|
||||
DO_API(void, il2cpp_init, (const char* domain_name));
|
||||
DO_API(void, il2cpp_init_utf16, (const Il2CppChar * domain_name));
|
||||
DO_API(void, il2cpp_shutdown, ());
|
||||
DO_API(void, il2cpp_set_config_dir, (const char *config_path));
|
||||
DO_API(void, il2cpp_set_data_dir, (const char *data_path));
|
||||
DO_API(void, il2cpp_set_temp_dir, (const char *temp_path));
|
||||
DO_API(void, il2cpp_set_commandline_arguments, (int argc, const char* const argv[], const char* basedir));
|
||||
DO_API(void, il2cpp_set_commandline_arguments_utf16, (int argc, const Il2CppChar * const argv[], const char* basedir));
|
||||
DO_API(void, il2cpp_set_config_utf16, (const Il2CppChar * executablePath));
|
||||
DO_API(void, il2cpp_set_config, (const char* executablePath));
|
||||
|
||||
DO_API(void, il2cpp_set_memory_callbacks, (Il2CppMemoryCallbacks * callbacks));
|
||||
DO_API(const Il2CppImage*, il2cpp_get_corlib, ());
|
||||
DO_API(void, il2cpp_add_internal_call, (const char* name, Il2CppMethodPointer method));
|
||||
DO_API(Il2CppMethodPointer, il2cpp_resolve_icall, (const char* name));
|
||||
|
||||
DO_API(void*, il2cpp_alloc, (size_t size));
|
||||
DO_API(void, il2cpp_free, (void* ptr));
|
||||
|
||||
// array
|
||||
DO_API(Il2CppClass*, il2cpp_array_class_get, (Il2CppClass * element_class, uint32_t rank));
|
||||
DO_API(uint32_t, il2cpp_array_length, (Il2CppArray * array));
|
||||
DO_API(uint32_t, il2cpp_array_get_byte_length, (Il2CppArray * array));
|
||||
DO_API(Il2CppArray*, il2cpp_array_new, (Il2CppClass * elementTypeInfo, il2cpp_array_size_t length));
|
||||
DO_API(Il2CppArray*, il2cpp_array_new_specific, (Il2CppClass * arrayTypeInfo, il2cpp_array_size_t length));
|
||||
DO_API(Il2CppArray*, il2cpp_array_new_full, (Il2CppClass * array_class, il2cpp_array_size_t * lengths, il2cpp_array_size_t * lower_bounds));
|
||||
DO_API(Il2CppClass*, il2cpp_bounded_array_class_get, (Il2CppClass * element_class, uint32_t rank, bool bounded));
|
||||
DO_API(int, il2cpp_array_element_size, (const Il2CppClass * array_class));
|
||||
|
||||
// assembly
|
||||
DO_API(const Il2CppImage*, il2cpp_assembly_get_image, (const Il2CppAssembly * assembly));
|
||||
|
||||
// class
|
||||
DO_API(const Il2CppType*, il2cpp_class_enum_basetype, (Il2CppClass * klass));
|
||||
DO_API(bool, il2cpp_class_is_generic, (const Il2CppClass * klass));
|
||||
DO_API(bool, il2cpp_class_is_inflated, (const Il2CppClass * klass));
|
||||
DO_API(bool, il2cpp_class_is_assignable_from, (Il2CppClass * klass, Il2CppClass * oklass));
|
||||
DO_API(bool, il2cpp_class_is_subclass_of, (Il2CppClass * klass, Il2CppClass * klassc, bool check_interfaces));
|
||||
DO_API(bool, il2cpp_class_has_parent, (Il2CppClass * klass, Il2CppClass * klassc));
|
||||
DO_API(Il2CppClass*, il2cpp_class_from_il2cpp_type, (const Il2CppType * type));
|
||||
DO_API(Il2CppClass*, il2cpp_class_from_name, (const Il2CppImage * image, const char* namespaze, const char *name));
|
||||
DO_API(Il2CppClass*, il2cpp_class_from_system_type, (Il2CppReflectionType * type));
|
||||
DO_API(Il2CppClass*, il2cpp_class_get_element_class, (Il2CppClass * klass));
|
||||
DO_API(const EventInfo*, il2cpp_class_get_events, (Il2CppClass * klass, void* *iter));
|
||||
DO_API(FieldInfo*, il2cpp_class_get_fields, (Il2CppClass * klass, void* *iter));
|
||||
DO_API(Il2CppClass*, il2cpp_class_get_nested_types, (Il2CppClass * klass, void* *iter));
|
||||
DO_API(Il2CppClass*, il2cpp_class_get_interfaces, (Il2CppClass * klass, void* *iter));
|
||||
DO_API(const PropertyInfo*, il2cpp_class_get_properties, (Il2CppClass * klass, void* *iter));
|
||||
DO_API(const PropertyInfo*, il2cpp_class_get_property_from_name, (Il2CppClass * klass, const char *name));
|
||||
DO_API(FieldInfo*, il2cpp_class_get_field_from_name, (Il2CppClass * klass, const char *name));
|
||||
DO_API(const MethodInfo*, il2cpp_class_get_methods, (Il2CppClass * klass, void* *iter));
|
||||
DO_API(const MethodInfo*, il2cpp_class_get_method_from_name, (Il2CppClass * klass, const char* name, int argsCount));
|
||||
DO_API(const char*, il2cpp_class_get_name, (Il2CppClass * klass));
|
||||
DO_API(const char*, il2cpp_class_get_namespace, (Il2CppClass * klass));
|
||||
DO_API(Il2CppClass*, il2cpp_class_get_parent, (Il2CppClass * klass));
|
||||
DO_API(Il2CppClass*, il2cpp_class_get_declaring_type, (Il2CppClass * klass));
|
||||
DO_API(int32_t, il2cpp_class_instance_size, (Il2CppClass * klass));
|
||||
DO_API(size_t, il2cpp_class_num_fields, (const Il2CppClass * enumKlass));
|
||||
DO_API(bool, il2cpp_class_is_valuetype, (const Il2CppClass * klass));
|
||||
DO_API(int32_t, il2cpp_class_value_size, (Il2CppClass * klass, uint32_t * align));
|
||||
DO_API(bool, il2cpp_class_is_blittable, (const Il2CppClass * klass));
|
||||
DO_API(int, il2cpp_class_get_flags, (const Il2CppClass * klass));
|
||||
DO_API(bool, il2cpp_class_is_abstract, (const Il2CppClass * klass));
|
||||
DO_API(bool, il2cpp_class_is_interface, (const Il2CppClass * klass));
|
||||
DO_API(int, il2cpp_class_array_element_size, (const Il2CppClass * klass));
|
||||
DO_API(Il2CppClass*, il2cpp_class_from_type, (const Il2CppType * type));
|
||||
DO_API(const Il2CppType*, il2cpp_class_get_type, (Il2CppClass * klass));
|
||||
DO_API(uint32_t, il2cpp_class_get_type_token, (Il2CppClass * klass));
|
||||
DO_API(bool, il2cpp_class_has_attribute, (Il2CppClass * klass, Il2CppClass * attr_class));
|
||||
DO_API(bool, il2cpp_class_has_references, (Il2CppClass * klass));
|
||||
DO_API(bool, il2cpp_class_is_enum, (const Il2CppClass * klass));
|
||||
DO_API(const Il2CppImage*, il2cpp_class_get_image, (Il2CppClass * klass));
|
||||
DO_API(const char*, il2cpp_class_get_assemblyname, (const Il2CppClass * klass));
|
||||
DO_API(int, il2cpp_class_get_rank, (const Il2CppClass * klass));
|
||||
|
||||
// testing only
|
||||
DO_API(size_t, il2cpp_class_get_bitmap_size, (const Il2CppClass * klass));
|
||||
DO_API(void, il2cpp_class_get_bitmap, (Il2CppClass * klass, size_t * bitmap));
|
||||
|
||||
// stats
|
||||
DO_API(bool, il2cpp_stats_dump_to_file, (const char *path));
|
||||
DO_API(uint64_t, il2cpp_stats_get_value, (Il2CppStat stat));
|
||||
|
||||
// domain
|
||||
DO_API(Il2CppDomain*, il2cpp_domain_get, ());
|
||||
DO_API(const Il2CppAssembly*, il2cpp_domain_assembly_open, (Il2CppDomain * domain, const char* name));
|
||||
DO_API(const Il2CppAssembly**, il2cpp_domain_get_assemblies, (const Il2CppDomain * domain, size_t * size));
|
||||
|
||||
// exception
|
||||
DO_API_NO_RETURN(void, il2cpp_raise_exception, (Il2CppException*));
|
||||
DO_API(Il2CppException*, il2cpp_exception_from_name_msg, (const Il2CppImage * image, const char *name_space, const char *name, const char *msg));
|
||||
DO_API(Il2CppException*, il2cpp_get_exception_argument_null, (const char *arg));
|
||||
DO_API(void, il2cpp_format_exception, (const Il2CppException * ex, char* message, int message_size));
|
||||
DO_API(void, il2cpp_format_stack_trace, (const Il2CppException * ex, char* output, int output_size));
|
||||
DO_API(void, il2cpp_unhandled_exception, (Il2CppException*));
|
||||
|
||||
// field
|
||||
DO_API(int, il2cpp_field_get_flags, (FieldInfo * field));
|
||||
DO_API(const char*, il2cpp_field_get_name, (FieldInfo * field));
|
||||
DO_API(Il2CppClass*, il2cpp_field_get_parent, (FieldInfo * field));
|
||||
DO_API(size_t, il2cpp_field_get_offset, (FieldInfo * field));
|
||||
DO_API(const Il2CppType*, il2cpp_field_get_type, (FieldInfo * field));
|
||||
DO_API(void, il2cpp_field_get_value, (Il2CppObject * obj, FieldInfo * field, void *value));
|
||||
DO_API(Il2CppObject*, il2cpp_field_get_value_object, (FieldInfo * field, Il2CppObject * obj));
|
||||
DO_API(bool, il2cpp_field_has_attribute, (FieldInfo * field, Il2CppClass * attr_class));
|
||||
DO_API(void, il2cpp_field_set_value, (Il2CppObject * obj, FieldInfo * field, void *value));
|
||||
DO_API(void, il2cpp_field_static_get_value, (FieldInfo * field, void *value));
|
||||
DO_API(void, il2cpp_field_static_set_value, (FieldInfo * field, void *value));
|
||||
DO_API(void, il2cpp_field_set_value_object, (Il2CppObject * instance, FieldInfo * field, Il2CppObject * value));
|
||||
|
||||
// gc
|
||||
DO_API(void, il2cpp_gc_collect, (int maxGenerations));
|
||||
DO_API(int32_t, il2cpp_gc_collect_a_little, ());
|
||||
DO_API(void, il2cpp_gc_disable, ());
|
||||
DO_API(void, il2cpp_gc_enable, ());
|
||||
DO_API(bool, il2cpp_gc_is_disabled, ());
|
||||
DO_API(int64_t, il2cpp_gc_get_used_size, ());
|
||||
DO_API(int64_t, il2cpp_gc_get_heap_size, ());
|
||||
DO_API(void, il2cpp_gc_wbarrier_set_field, (Il2CppObject * obj, void **targetAddress, void *object));
|
||||
|
||||
// gchandle
|
||||
DO_API(uint32_t, il2cpp_gchandle_new, (Il2CppObject * obj, bool pinned));
|
||||
DO_API(uint32_t, il2cpp_gchandle_new_weakref, (Il2CppObject * obj, bool track_resurrection));
|
||||
DO_API(Il2CppObject*, il2cpp_gchandle_get_target , (uint32_t gchandle));
|
||||
DO_API(void, il2cpp_gchandle_free, (uint32_t gchandle));
|
||||
|
||||
// liveness
|
||||
DO_API(void*, il2cpp_unity_liveness_calculation_begin, (Il2CppClass * filter, int max_object_count, il2cpp_register_object_callback callback, void* userdata, il2cpp_WorldChangedCallback onWorldStarted, il2cpp_WorldChangedCallback onWorldStopped));
|
||||
DO_API(void, il2cpp_unity_liveness_calculation_end, (void* state));
|
||||
DO_API(void, il2cpp_unity_liveness_calculation_from_root, (Il2CppObject * root, void* state));
|
||||
DO_API(void, il2cpp_unity_liveness_calculation_from_statics, (void* state));
|
||||
|
||||
// method
|
||||
DO_API(const Il2CppType*, il2cpp_method_get_return_type, (const MethodInfo * method));
|
||||
DO_API(Il2CppClass*, il2cpp_method_get_declaring_type, (const MethodInfo * method));
|
||||
DO_API(const char*, il2cpp_method_get_name, (const MethodInfo * method));
|
||||
DO_API(const MethodInfo*, il2cpp_method_get_from_reflection, (const Il2CppReflectionMethod * method));
|
||||
DO_API(Il2CppReflectionMethod*, il2cpp_method_get_object, (const MethodInfo * method, Il2CppClass * refclass));
|
||||
DO_API(bool, il2cpp_method_is_generic, (const MethodInfo * method));
|
||||
DO_API(bool, il2cpp_method_is_inflated, (const MethodInfo * method));
|
||||
DO_API(bool, il2cpp_method_is_instance, (const MethodInfo * method));
|
||||
DO_API(uint32_t, il2cpp_method_get_param_count, (const MethodInfo * method));
|
||||
DO_API(const Il2CppType*, il2cpp_method_get_param, (const MethodInfo * method, uint32_t index));
|
||||
DO_API(Il2CppClass*, il2cpp_method_get_class, (const MethodInfo * method));
|
||||
DO_API(bool, il2cpp_method_has_attribute, (const MethodInfo * method, Il2CppClass * attr_class));
|
||||
DO_API(uint32_t, il2cpp_method_get_flags, (const MethodInfo * method, uint32_t * iflags));
|
||||
DO_API(uint32_t, il2cpp_method_get_token, (const MethodInfo * method));
|
||||
DO_API(const char*, il2cpp_method_get_param_name, (const MethodInfo * method, uint32_t index));
|
||||
|
||||
// profiler
|
||||
#if IL2CPP_ENABLE_PROFILER
|
||||
|
||||
DO_API(void, il2cpp_profiler_install, (Il2CppProfiler * prof, Il2CppProfileFunc shutdown_callback));
|
||||
DO_API(void, il2cpp_profiler_set_events, (Il2CppProfileFlags events));
|
||||
DO_API(void, il2cpp_profiler_install_enter_leave, (Il2CppProfileMethodFunc enter, Il2CppProfileMethodFunc fleave));
|
||||
DO_API(void, il2cpp_profiler_install_allocation, (Il2CppProfileAllocFunc callback));
|
||||
DO_API(void, il2cpp_profiler_install_gc, (Il2CppProfileGCFunc callback, Il2CppProfileGCResizeFunc heap_resize_callback));
|
||||
DO_API(void, il2cpp_profiler_install_fileio, (Il2CppProfileFileIOFunc callback));
|
||||
DO_API(void, il2cpp_profiler_install_thread, (Il2CppProfileThreadFunc start, Il2CppProfileThreadFunc end));
|
||||
|
||||
#endif
|
||||
|
||||
// property
|
||||
DO_API(uint32_t, il2cpp_property_get_flags, (PropertyInfo * prop));
|
||||
DO_API(const MethodInfo*, il2cpp_property_get_get_method, (PropertyInfo * prop));
|
||||
DO_API(const MethodInfo*, il2cpp_property_get_set_method, (PropertyInfo * prop));
|
||||
DO_API(const char*, il2cpp_property_get_name, (PropertyInfo * prop));
|
||||
DO_API(Il2CppClass*, il2cpp_property_get_parent, (PropertyInfo * prop));
|
||||
|
||||
// object
|
||||
DO_API(Il2CppClass*, il2cpp_object_get_class, (Il2CppObject * obj));
|
||||
DO_API(uint32_t, il2cpp_object_get_size, (Il2CppObject * obj));
|
||||
DO_API(const MethodInfo*, il2cpp_object_get_virtual_method, (Il2CppObject * obj, const MethodInfo * method));
|
||||
DO_API(Il2CppObject*, il2cpp_object_new, (const Il2CppClass * klass));
|
||||
DO_API(void*, il2cpp_object_unbox, (Il2CppObject * obj));
|
||||
|
||||
DO_API(Il2CppObject*, il2cpp_value_box, (Il2CppClass * klass, void* data));
|
||||
|
||||
// monitor
|
||||
DO_API(void, il2cpp_monitor_enter, (Il2CppObject * obj));
|
||||
DO_API(bool, il2cpp_monitor_try_enter, (Il2CppObject * obj, uint32_t timeout));
|
||||
DO_API(void, il2cpp_monitor_exit, (Il2CppObject * obj));
|
||||
DO_API(void, il2cpp_monitor_pulse, (Il2CppObject * obj));
|
||||
DO_API(void, il2cpp_monitor_pulse_all, (Il2CppObject * obj));
|
||||
DO_API(void, il2cpp_monitor_wait, (Il2CppObject * obj));
|
||||
DO_API(bool, il2cpp_monitor_try_wait, (Il2CppObject * obj, uint32_t timeout));
|
||||
|
||||
// runtime
|
||||
DO_API(Il2CppObject*, il2cpp_runtime_invoke, (const MethodInfo * method, void *obj, void **params, Il2CppException **exc));
|
||||
DO_API(Il2CppObject*, il2cpp_runtime_invoke_convert_args, (const MethodInfo * method, void *obj, Il2CppObject **params, int paramCount, Il2CppException **exc));
|
||||
DO_API(void, il2cpp_runtime_class_init, (Il2CppClass * klass));
|
||||
DO_API(void, il2cpp_runtime_object_init, (Il2CppObject * obj));
|
||||
|
||||
DO_API(void, il2cpp_runtime_object_init_exception, (Il2CppObject * obj, Il2CppException** exc));
|
||||
|
||||
DO_API(void, il2cpp_runtime_unhandled_exception_policy_set, (Il2CppRuntimeUnhandledExceptionPolicy value));
|
||||
|
||||
// string
|
||||
DO_API(int32_t, il2cpp_string_length, (Il2CppString * str));
|
||||
DO_API(Il2CppChar*, il2cpp_string_chars, (Il2CppString * str));
|
||||
DO_API(Il2CppString*, il2cpp_string_new, (const char* str));
|
||||
DO_API(Il2CppString*, il2cpp_string_new_len, (const char* str, uint32_t length));
|
||||
DO_API(Il2CppString*, il2cpp_string_new_utf16, (const Il2CppChar * text, int32_t len));
|
||||
DO_API(Il2CppString*, il2cpp_string_new_wrapper, (const char* str));
|
||||
DO_API(Il2CppString*, il2cpp_string_intern, (Il2CppString * str));
|
||||
DO_API(Il2CppString*, il2cpp_string_is_interned, (Il2CppString * str));
|
||||
|
||||
// thread
|
||||
DO_API(Il2CppThread*, il2cpp_thread_current, ());
|
||||
DO_API(Il2CppThread*, il2cpp_thread_attach, (Il2CppDomain * domain));
|
||||
DO_API(void, il2cpp_thread_detach, (Il2CppThread * thread));
|
||||
|
||||
DO_API(Il2CppThread**, il2cpp_thread_get_all_attached_threads, (size_t * size));
|
||||
DO_API(bool, il2cpp_is_vm_thread, (Il2CppThread * thread));
|
||||
|
||||
// stacktrace
|
||||
DO_API(void, il2cpp_current_thread_walk_frame_stack, (Il2CppFrameWalkFunc func, void* user_data));
|
||||
DO_API(void, il2cpp_thread_walk_frame_stack, (Il2CppThread * thread, Il2CppFrameWalkFunc func, void* user_data));
|
||||
DO_API(bool, il2cpp_current_thread_get_top_frame, (Il2CppStackFrameInfo * frame));
|
||||
DO_API(bool, il2cpp_thread_get_top_frame, (Il2CppThread * thread, Il2CppStackFrameInfo * frame));
|
||||
DO_API(bool, il2cpp_current_thread_get_frame_at, (int32_t offset, Il2CppStackFrameInfo * frame));
|
||||
DO_API(bool, il2cpp_thread_get_frame_at, (Il2CppThread * thread, int32_t offset, Il2CppStackFrameInfo * frame));
|
||||
DO_API(int32_t, il2cpp_current_thread_get_stack_depth, ());
|
||||
DO_API(int32_t, il2cpp_thread_get_stack_depth, (Il2CppThread * thread));
|
||||
|
||||
// type
|
||||
DO_API(Il2CppObject*, il2cpp_type_get_object, (const Il2CppType * type));
|
||||
DO_API(int, il2cpp_type_get_type, (const Il2CppType * type));
|
||||
DO_API(Il2CppClass*, il2cpp_type_get_class_or_element_class, (const Il2CppType * type));
|
||||
DO_API(char*, il2cpp_type_get_name, (const Il2CppType * type));
|
||||
DO_API(bool, il2cpp_type_is_byref, (const Il2CppType * type));
|
||||
DO_API(uint32_t, il2cpp_type_get_attrs, (const Il2CppType * type));
|
||||
DO_API(bool, il2cpp_type_equals, (const Il2CppType * type, const Il2CppType * otherType));
|
||||
DO_API(char*, il2cpp_type_get_assembly_qualified_name, (const Il2CppType * type));
|
||||
|
||||
// image
|
||||
DO_API(const Il2CppAssembly*, il2cpp_image_get_assembly, (const Il2CppImage * image));
|
||||
DO_API(const char*, il2cpp_image_get_name, (const Il2CppImage * image));
|
||||
DO_API(const char*, il2cpp_image_get_filename, (const Il2CppImage * image));
|
||||
DO_API(const MethodInfo*, il2cpp_image_get_entry_point, (const Il2CppImage * image));
|
||||
|
||||
DO_API(size_t, il2cpp_image_get_class_count, (const Il2CppImage * image));
|
||||
DO_API(const Il2CppClass*, il2cpp_image_get_class, (const Il2CppImage * image, size_t index));
|
||||
|
||||
// Memory information
|
||||
DO_API(Il2CppManagedMemorySnapshot*, il2cpp_capture_memory_snapshot, ());
|
||||
DO_API(void, il2cpp_free_captured_memory_snapshot, (Il2CppManagedMemorySnapshot * snapshot));
|
||||
|
||||
DO_API(void, il2cpp_set_find_plugin_callback, (Il2CppSetFindPlugInCallback method));
|
||||
|
||||
// Logging
|
||||
DO_API(void, il2cpp_register_log_callback, (Il2CppLogCallback method));
|
||||
|
||||
// Debugger
|
||||
DO_API(void, il2cpp_debugger_set_agent_options, (const char* options));
|
||||
DO_API(bool, il2cpp_is_debugger_attached, ());
|
||||
|
||||
// TLS module
|
||||
DO_API(void, il2cpp_unity_install_unitytls_interface, (const void* unitytlsInterfaceStruct));
|
||||
|
||||
// custom attributes
|
||||
DO_API(Il2CppCustomAttrInfo*, il2cpp_custom_attrs_from_class, (Il2CppClass * klass));
|
||||
DO_API(Il2CppCustomAttrInfo*, il2cpp_custom_attrs_from_method, (const MethodInfo * method));
|
||||
|
||||
DO_API(Il2CppObject*, il2cpp_custom_attrs_get_attr, (Il2CppCustomAttrInfo * ainfo, Il2CppClass * attr_klass));
|
||||
DO_API(bool, il2cpp_custom_attrs_has_attr, (Il2CppCustomAttrInfo * ainfo, Il2CppClass * attr_klass));
|
||||
DO_API(Il2CppArray*, il2cpp_custom_attrs_construct, (Il2CppCustomAttrInfo * cinfo));
|
||||
|
||||
DO_API(void, il2cpp_custom_attrs_free, (Il2CppCustomAttrInfo * ainfo));
|
||||
@@ -0,0 +1,161 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
#include <stddef.h>
|
||||
|
||||
#if !defined(__cplusplus)
|
||||
#define bool uint8_t
|
||||
#endif // !__cplusplus
|
||||
|
||||
typedef struct Il2CppClass Il2CppClass;
|
||||
typedef struct Il2CppType Il2CppType;
|
||||
typedef struct EventInfo EventInfo;
|
||||
typedef struct MethodInfo MethodInfo;
|
||||
typedef struct FieldInfo FieldInfo;
|
||||
typedef struct PropertyInfo PropertyInfo;
|
||||
|
||||
typedef struct Il2CppAssembly Il2CppAssembly;
|
||||
typedef struct Il2CppArray Il2CppArray;
|
||||
typedef struct Il2CppDelegate Il2CppDelegate;
|
||||
typedef struct Il2CppDomain Il2CppDomain;
|
||||
typedef struct Il2CppImage Il2CppImage;
|
||||
typedef struct Il2CppException Il2CppException;
|
||||
typedef struct Il2CppProfiler Il2CppProfiler;
|
||||
typedef struct Il2CppObject Il2CppObject;
|
||||
typedef struct Il2CppReflectionMethod Il2CppReflectionMethod;
|
||||
typedef struct Il2CppReflectionType Il2CppReflectionType;
|
||||
typedef struct Il2CppString Il2CppString;
|
||||
typedef struct Il2CppThread Il2CppThread;
|
||||
typedef struct Il2CppAsyncResult Il2CppAsyncResult;
|
||||
typedef struct Il2CppManagedMemorySnapshot Il2CppManagedMemorySnapshot;
|
||||
typedef struct Il2CppCustomAttrInfo Il2CppCustomAttrInfo;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
IL2CPP_PROFILE_NONE = 0,
|
||||
IL2CPP_PROFILE_APPDOMAIN_EVENTS = 1 << 0,
|
||||
IL2CPP_PROFILE_ASSEMBLY_EVENTS = 1 << 1,
|
||||
IL2CPP_PROFILE_MODULE_EVENTS = 1 << 2,
|
||||
IL2CPP_PROFILE_CLASS_EVENTS = 1 << 3,
|
||||
IL2CPP_PROFILE_JIT_COMPILATION = 1 << 4,
|
||||
IL2CPP_PROFILE_INLINING = 1 << 5,
|
||||
IL2CPP_PROFILE_EXCEPTIONS = 1 << 6,
|
||||
IL2CPP_PROFILE_ALLOCATIONS = 1 << 7,
|
||||
IL2CPP_PROFILE_GC = 1 << 8,
|
||||
IL2CPP_PROFILE_THREADS = 1 << 9,
|
||||
IL2CPP_PROFILE_REMOTING = 1 << 10,
|
||||
IL2CPP_PROFILE_TRANSITIONS = 1 << 11,
|
||||
IL2CPP_PROFILE_ENTER_LEAVE = 1 << 12,
|
||||
IL2CPP_PROFILE_COVERAGE = 1 << 13,
|
||||
IL2CPP_PROFILE_INS_COVERAGE = 1 << 14,
|
||||
IL2CPP_PROFILE_STATISTICAL = 1 << 15,
|
||||
IL2CPP_PROFILE_METHOD_EVENTS = 1 << 16,
|
||||
IL2CPP_PROFILE_MONITOR_EVENTS = 1 << 17,
|
||||
IL2CPP_PROFILE_IOMAP_EVENTS = 1 << 18, /* this should likely be removed, too */
|
||||
IL2CPP_PROFILE_GC_MOVES = 1 << 19,
|
||||
IL2CPP_PROFILE_FILEIO = 1 << 20
|
||||
} Il2CppProfileFlags;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
IL2CPP_PROFILE_FILEIO_WRITE = 0,
|
||||
IL2CPP_PROFILE_FILEIO_READ
|
||||
} Il2CppProfileFileIOKind;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
IL2CPP_GC_EVENT_START,
|
||||
IL2CPP_GC_EVENT_MARK_START,
|
||||
IL2CPP_GC_EVENT_MARK_END,
|
||||
IL2CPP_GC_EVENT_RECLAIM_START,
|
||||
IL2CPP_GC_EVENT_RECLAIM_END,
|
||||
IL2CPP_GC_EVENT_END,
|
||||
IL2CPP_GC_EVENT_PRE_STOP_WORLD,
|
||||
IL2CPP_GC_EVENT_POST_STOP_WORLD,
|
||||
IL2CPP_GC_EVENT_PRE_START_WORLD,
|
||||
IL2CPP_GC_EVENT_POST_START_WORLD
|
||||
} Il2CppGCEvent;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
IL2CPP_STAT_NEW_OBJECT_COUNT,
|
||||
IL2CPP_STAT_INITIALIZED_CLASS_COUNT,
|
||||
//IL2CPP_STAT_GENERIC_VTABLE_COUNT,
|
||||
//IL2CPP_STAT_USED_CLASS_COUNT,
|
||||
IL2CPP_STAT_METHOD_COUNT,
|
||||
//IL2CPP_STAT_CLASS_VTABLE_SIZE,
|
||||
IL2CPP_STAT_CLASS_STATIC_DATA_SIZE,
|
||||
IL2CPP_STAT_GENERIC_INSTANCE_COUNT,
|
||||
IL2CPP_STAT_GENERIC_CLASS_COUNT,
|
||||
IL2CPP_STAT_INFLATED_METHOD_COUNT,
|
||||
IL2CPP_STAT_INFLATED_TYPE_COUNT,
|
||||
//IL2CPP_STAT_DELEGATE_CREATIONS,
|
||||
//IL2CPP_STAT_MINOR_GC_COUNT,
|
||||
//IL2CPP_STAT_MAJOR_GC_COUNT,
|
||||
//IL2CPP_STAT_MINOR_GC_TIME_USECS,
|
||||
//IL2CPP_STAT_MAJOR_GC_TIME_USECS
|
||||
} Il2CppStat;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
IL2CPP_UNHANDLED_POLICY_LEGACY,
|
||||
IL2CPP_UNHANDLED_POLICY_CURRENT
|
||||
} Il2CppRuntimeUnhandledExceptionPolicy;
|
||||
|
||||
typedef struct Il2CppStackFrameInfo
|
||||
{
|
||||
const MethodInfo *method;
|
||||
} Il2CppStackFrameInfo;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
void* (*malloc_func)(size_t size);
|
||||
void* (*aligned_malloc_func)(size_t size, size_t alignment);
|
||||
void (*free_func)(void *ptr);
|
||||
void (*aligned_free_func)(void *ptr);
|
||||
void* (*calloc_func)(size_t nmemb, size_t size);
|
||||
void* (*realloc_func)(void *ptr, size_t size);
|
||||
void* (*aligned_realloc_func)(void *ptr, size_t size, size_t alignment);
|
||||
} Il2CppMemoryCallbacks;
|
||||
|
||||
#if !__SNC__ // SNC doesn't like the following define: "warning 1576: predefined meaning of __has_feature discarded"
|
||||
#ifndef __has_feature // clang specific __has_feature check
|
||||
#define __has_feature(x) 0 // Compatibility with non-clang compilers.
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if _MSC_VER
|
||||
typedef wchar_t Il2CppChar;
|
||||
#elif __has_feature(cxx_unicode_literals)
|
||||
typedef char16_t Il2CppChar;
|
||||
#else
|
||||
typedef uint16_t Il2CppChar;
|
||||
#endif
|
||||
|
||||
#if _MSC_VER
|
||||
typedef wchar_t Il2CppNativeChar;
|
||||
#define IL2CPP_NATIVE_STRING(str) L##str
|
||||
#else
|
||||
typedef char Il2CppNativeChar;
|
||||
#define IL2CPP_NATIVE_STRING(str) str
|
||||
#endif
|
||||
|
||||
typedef void (*il2cpp_register_object_callback)(Il2CppObject** arr, int size, void* userdata);
|
||||
typedef void (*il2cpp_WorldChangedCallback)();
|
||||
typedef void (*Il2CppFrameWalkFunc) (const Il2CppStackFrameInfo *info, void *user_data);
|
||||
typedef void (*Il2CppProfileFunc) (Il2CppProfiler* prof);
|
||||
typedef void (*Il2CppProfileMethodFunc) (Il2CppProfiler* prof, const MethodInfo *method);
|
||||
typedef void (*Il2CppProfileAllocFunc) (Il2CppProfiler* prof, Il2CppObject *obj, Il2CppClass *klass);
|
||||
typedef void (*Il2CppProfileGCFunc) (Il2CppProfiler* prof, Il2CppGCEvent event, int generation);
|
||||
typedef void (*Il2CppProfileGCResizeFunc) (Il2CppProfiler* prof, int64_t new_size);
|
||||
typedef void (*Il2CppProfileFileIOFunc) (Il2CppProfiler* prof, Il2CppProfileFileIOKind kind, int count);
|
||||
typedef void (*Il2CppProfileThreadFunc) (Il2CppProfiler *prof, unsigned long tid);
|
||||
|
||||
typedef const Il2CppNativeChar* (*Il2CppSetFindPlugInCallback)(const Il2CppNativeChar*);
|
||||
typedef void (*Il2CppLogCallback)(const char*);
|
||||
|
||||
struct Il2CppManagedMemorySnapshot;
|
||||
|
||||
typedef void (*Il2CppMethodPointer)();
|
||||
typedef uintptr_t il2cpp_array_size_t;
|
||||
#define ARRAY_LENGTH_AS_INT32(a) ((int32_t)a)
|
||||
@@ -0,0 +1,30 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#include "il2cpp-config-api.h"
|
||||
|
||||
#if IL2CPP_API_DYNAMIC_NO_DLSYM
|
||||
#if defined(__cplusplus)
|
||||
extern "C"
|
||||
{
|
||||
#endif // __cplusplus
|
||||
IL2CPP_EXPORT void il2cpp_api_register_symbols(void);
|
||||
IL2CPP_EXPORT void* il2cpp_api_lookup_symbol(const char* name);
|
||||
#if defined(__cplusplus)
|
||||
}
|
||||
#endif // __cplusplus
|
||||
#endif
|
||||
|
||||
#if defined(__cplusplus)
|
||||
extern "C"
|
||||
{
|
||||
#endif // __cplusplus
|
||||
#define DO_API(r, n, p) IL2CPP_EXPORT r n p;
|
||||
#define DO_API_NO_RETURN(r, n, p) IL2CPP_EXPORT NORETURN r n p;
|
||||
#include "il2cpp-api-functions.h"
|
||||
#undef DO_API
|
||||
#undef DO_API_NORETURN
|
||||
#if defined(__cplusplus)
|
||||
}
|
||||
#endif // __cplusplus
|
||||
@@ -0,0 +1,46 @@
|
||||
#pragma once
|
||||
|
||||
// Corresponds to element type signatures
|
||||
// See ECMA-335, II.23.1.16
|
||||
|
||||
typedef enum Il2CppTypeEnum
|
||||
{
|
||||
IL2CPP_TYPE_END = 0x00, /* End of List */
|
||||
IL2CPP_TYPE_VOID = 0x01,
|
||||
IL2CPP_TYPE_BOOLEAN = 0x02,
|
||||
IL2CPP_TYPE_CHAR = 0x03,
|
||||
IL2CPP_TYPE_I1 = 0x04,
|
||||
IL2CPP_TYPE_U1 = 0x05,
|
||||
IL2CPP_TYPE_I2 = 0x06,
|
||||
IL2CPP_TYPE_U2 = 0x07,
|
||||
IL2CPP_TYPE_I4 = 0x08,
|
||||
IL2CPP_TYPE_U4 = 0x09,
|
||||
IL2CPP_TYPE_I8 = 0x0a,
|
||||
IL2CPP_TYPE_U8 = 0x0b,
|
||||
IL2CPP_TYPE_R4 = 0x0c,
|
||||
IL2CPP_TYPE_R8 = 0x0d,
|
||||
IL2CPP_TYPE_STRING = 0x0e,
|
||||
IL2CPP_TYPE_PTR = 0x0f, /* arg: <type> token */
|
||||
IL2CPP_TYPE_BYREF = 0x10, /* arg: <type> token */
|
||||
IL2CPP_TYPE_VALUETYPE = 0x11, /* arg: <type> token */
|
||||
IL2CPP_TYPE_CLASS = 0x12, /* arg: <type> token */
|
||||
IL2CPP_TYPE_VAR = 0x13, /* Generic parameter in a generic type definition, represented as number (compressed unsigned integer) number */
|
||||
IL2CPP_TYPE_ARRAY = 0x14, /* type, rank, boundsCount, bound1, loCount, lo1 */
|
||||
IL2CPP_TYPE_GENERICINST = 0x15, /* <type> <type-arg-count> <type-1> \x{2026} <type-n> */
|
||||
IL2CPP_TYPE_TYPEDBYREF = 0x16,
|
||||
IL2CPP_TYPE_I = 0x18,
|
||||
IL2CPP_TYPE_U = 0x19,
|
||||
IL2CPP_TYPE_FNPTR = 0x1b, /* arg: full method signature */
|
||||
IL2CPP_TYPE_OBJECT = 0x1c,
|
||||
IL2CPP_TYPE_SZARRAY = 0x1d, /* 0-based one-dim-array */
|
||||
IL2CPP_TYPE_MVAR = 0x1e, /* Generic parameter in a generic method definition, represented as number (compressed unsigned integer) */
|
||||
IL2CPP_TYPE_CMOD_REQD = 0x1f, /* arg: typedef or typeref token */
|
||||
IL2CPP_TYPE_CMOD_OPT = 0x20, /* optional arg: typedef or typref token */
|
||||
IL2CPP_TYPE_INTERNAL = 0x21, /* CLR internal type */
|
||||
|
||||
IL2CPP_TYPE_MODIFIER = 0x40, /* Or with the following types */
|
||||
IL2CPP_TYPE_SENTINEL = 0x41, /* Sentinel for varargs method signature */
|
||||
IL2CPP_TYPE_PINNED = 0x45, /* Local var that points to pinned object */
|
||||
|
||||
IL2CPP_TYPE_ENUM = 0x55 /* an enumeration */
|
||||
} Il2CppTypeEnum;
|
||||
@@ -0,0 +1,741 @@
|
||||
#pragma once
|
||||
|
||||
#include "il2cpp-config.h"
|
||||
#include <stdint.h>
|
||||
#include "il2cpp-runtime-metadata.h"
|
||||
#include "il2cpp-metadata.h"
|
||||
|
||||
|
||||
#define IL2CPP_CLASS_IS_ARRAY(c) ((c)->rank)
|
||||
|
||||
typedef struct Il2CppClass Il2CppClass;
|
||||
typedef struct Il2CppGuid Il2CppGuid;
|
||||
typedef struct Il2CppImage Il2CppImage;
|
||||
typedef struct Il2CppAppDomain Il2CppAppDomain;
|
||||
typedef struct Il2CppAppDomainSetup Il2CppAppDomainSetup;
|
||||
typedef struct Il2CppDelegate Il2CppDelegate;
|
||||
typedef struct Il2CppAppContext Il2CppAppContext;
|
||||
typedef struct Il2CppNameToTypeDefinitionIndexHashTable Il2CppNameToTypeDefinitionIndexHashTable;
|
||||
|
||||
#if RUNTIME_MONO
|
||||
extern "C"
|
||||
{
|
||||
#include <mono/metadata/metadata.h>
|
||||
}
|
||||
#endif
|
||||
|
||||
typedef struct VirtualInvokeData
|
||||
{
|
||||
Il2CppMethodPointer methodPtr;
|
||||
#if RUNTIME_MONO
|
||||
const MonoMethod* method;
|
||||
#else
|
||||
const MethodInfo* method;
|
||||
#endif
|
||||
} VirtualInvokeData;
|
||||
|
||||
typedef enum Il2CppTypeNameFormat
|
||||
{
|
||||
IL2CPP_TYPE_NAME_FORMAT_IL,
|
||||
IL2CPP_TYPE_NAME_FORMAT_REFLECTION,
|
||||
IL2CPP_TYPE_NAME_FORMAT_FULL_NAME,
|
||||
IL2CPP_TYPE_NAME_FORMAT_ASSEMBLY_QUALIFIED
|
||||
} Il2CppTypeNameFormat;
|
||||
|
||||
|
||||
typedef struct Il2CppDefaults
|
||||
{
|
||||
Il2CppImage *corlib;
|
||||
Il2CppClass *object_class;
|
||||
Il2CppClass *byte_class;
|
||||
Il2CppClass *void_class;
|
||||
Il2CppClass *boolean_class;
|
||||
Il2CppClass *sbyte_class;
|
||||
Il2CppClass *int16_class;
|
||||
Il2CppClass *uint16_class;
|
||||
Il2CppClass *int32_class;
|
||||
Il2CppClass *uint32_class;
|
||||
Il2CppClass *int_class;
|
||||
Il2CppClass *uint_class;
|
||||
Il2CppClass *int64_class;
|
||||
Il2CppClass *uint64_class;
|
||||
Il2CppClass *single_class;
|
||||
Il2CppClass *double_class;
|
||||
Il2CppClass *char_class;
|
||||
Il2CppClass *string_class;
|
||||
Il2CppClass *enum_class;
|
||||
Il2CppClass *array_class;
|
||||
Il2CppClass *delegate_class;
|
||||
Il2CppClass *multicastdelegate_class;
|
||||
Il2CppClass *asyncresult_class;
|
||||
Il2CppClass *manualresetevent_class;
|
||||
Il2CppClass *typehandle_class;
|
||||
Il2CppClass *fieldhandle_class;
|
||||
Il2CppClass *methodhandle_class;
|
||||
Il2CppClass *systemtype_class;
|
||||
Il2CppClass *monotype_class;
|
||||
Il2CppClass *exception_class;
|
||||
Il2CppClass *threadabortexception_class;
|
||||
Il2CppClass *thread_class;
|
||||
#if NET_4_0
|
||||
Il2CppClass *internal_thread_class;
|
||||
#endif
|
||||
/*Il2CppClass *transparent_proxy_class;
|
||||
Il2CppClass *real_proxy_class;
|
||||
Il2CppClass *mono_method_message_class;*/
|
||||
Il2CppClass *appdomain_class;
|
||||
Il2CppClass *appdomain_setup_class;
|
||||
Il2CppClass *field_info_class;
|
||||
Il2CppClass *method_info_class;
|
||||
Il2CppClass *property_info_class;
|
||||
Il2CppClass *event_info_class;
|
||||
Il2CppClass *mono_event_info_class;
|
||||
Il2CppClass *stringbuilder_class;
|
||||
/*Il2CppClass *math_class;*/
|
||||
Il2CppClass *stack_frame_class;
|
||||
Il2CppClass *stack_trace_class;
|
||||
Il2CppClass *marshal_class;
|
||||
/*Il2CppClass *iserializeable_class;
|
||||
Il2CppClass *serializationinfo_class;
|
||||
Il2CppClass *streamingcontext_class;*/
|
||||
Il2CppClass *typed_reference_class;
|
||||
/*Il2CppClass *argumenthandle_class;*/
|
||||
Il2CppClass *marshalbyrefobject_class;
|
||||
/*Il2CppClass *monitor_class;
|
||||
Il2CppClass *iremotingtypeinfo_class;
|
||||
Il2CppClass *runtimesecurityframe_class;
|
||||
Il2CppClass *executioncontext_class;
|
||||
Il2CppClass *internals_visible_class;*/
|
||||
Il2CppClass *generic_ilist_class;
|
||||
Il2CppClass *generic_icollection_class;
|
||||
Il2CppClass *generic_ienumerable_class;
|
||||
#if NET_4_0
|
||||
Il2CppClass *generic_ireadonlylist_class;
|
||||
Il2CppClass *generic_ireadonlycollection_class;
|
||||
Il2CppClass *runtimetype_class;
|
||||
#endif
|
||||
Il2CppClass *generic_nullable_class;
|
||||
/*Il2CppClass *variant_class;
|
||||
Il2CppClass *com_object_class;*/
|
||||
Il2CppClass *il2cpp_com_object_class;
|
||||
/*Il2CppClass *com_interop_proxy_class;
|
||||
Il2CppClass *iunknown_class;
|
||||
Il2CppClass *idispatch_class;
|
||||
Il2CppClass *safehandle_class;
|
||||
Il2CppClass *handleref_class;*/
|
||||
Il2CppClass *attribute_class;
|
||||
Il2CppClass *customattribute_data_class;
|
||||
//Il2CppClass *critical_finalizer_object;
|
||||
Il2CppClass *version;
|
||||
Il2CppClass *culture_info;
|
||||
Il2CppClass *async_call_class;
|
||||
Il2CppClass *assembly_class;
|
||||
#if NET_4_0
|
||||
Il2CppClass *mono_assembly_class;
|
||||
#endif
|
||||
Il2CppClass *assembly_name_class;
|
||||
#if !NET_4_0
|
||||
Il2CppClass *enum_info_class;
|
||||
#endif
|
||||
Il2CppClass *mono_field_class;
|
||||
Il2CppClass *mono_method_class;
|
||||
Il2CppClass *mono_method_info_class;
|
||||
Il2CppClass *mono_property_info_class;
|
||||
Il2CppClass *parameter_info_class;
|
||||
#if NET_4_0
|
||||
Il2CppClass *mono_parameter_info_class;
|
||||
#endif
|
||||
Il2CppClass *module_class;
|
||||
Il2CppClass *pointer_class;
|
||||
Il2CppClass *system_exception_class;
|
||||
Il2CppClass *argument_exception_class;
|
||||
Il2CppClass *wait_handle_class;
|
||||
Il2CppClass *safe_handle_class;
|
||||
Il2CppClass *sort_key_class;
|
||||
Il2CppClass *dbnull_class;
|
||||
Il2CppClass *error_wrapper_class;
|
||||
Il2CppClass *missing_class;
|
||||
Il2CppClass *value_type_class;
|
||||
|
||||
#if NET_4_0
|
||||
// Stuff used by the mono code
|
||||
Il2CppClass *threadpool_wait_callback_class;
|
||||
MethodInfo *threadpool_perform_wait_callback_method;
|
||||
Il2CppClass *mono_method_message_class;
|
||||
#endif
|
||||
|
||||
// Windows.Foundation.IReference`1<T>
|
||||
Il2CppClass* ireference_class;
|
||||
// Windows.Foundation.IReferenceArray`1<T>
|
||||
Il2CppClass* ireferencearray_class;
|
||||
// Windows.Foundation.Collections.IKeyValuePair`2<K, V>
|
||||
Il2CppClass* ikey_value_pair_class;
|
||||
// System.Collections.Generic.KeyValuePair`2<K, V>
|
||||
Il2CppClass* key_value_pair_class;
|
||||
// Windows.Foundation.Uri
|
||||
Il2CppClass* windows_foundation_uri_class;
|
||||
// Windows.Foundation.IUriRuntimeClass
|
||||
Il2CppClass* windows_foundation_iuri_runtime_class_class;
|
||||
// System.Uri
|
||||
Il2CppClass* system_uri_class;
|
||||
// System.Guid
|
||||
Il2CppClass* system_guid_class;
|
||||
|
||||
#if NET_4_0
|
||||
Il2CppClass* sbyte_shared_enum;
|
||||
Il2CppClass* int16_shared_enum;
|
||||
Il2CppClass* int32_shared_enum;
|
||||
Il2CppClass* int64_shared_enum;
|
||||
|
||||
Il2CppClass* byte_shared_enum;
|
||||
Il2CppClass* uint16_shared_enum;
|
||||
Il2CppClass* uint32_shared_enum;
|
||||
Il2CppClass* uint64_shared_enum;
|
||||
#endif
|
||||
} Il2CppDefaults;
|
||||
|
||||
extern LIBIL2CPP_CODEGEN_API Il2CppDefaults il2cpp_defaults;
|
||||
|
||||
struct Il2CppClass;
|
||||
struct MethodInfo;
|
||||
struct FieldInfo;
|
||||
struct Il2CppObject;
|
||||
struct MemberInfo;
|
||||
|
||||
typedef struct CustomAttributesCache
|
||||
{
|
||||
int count;
|
||||
Il2CppObject** attributes;
|
||||
} CustomAttributesCache;
|
||||
|
||||
typedef void (*CustomAttributesCacheGenerator)(CustomAttributesCache*);
|
||||
|
||||
const int THREAD_STATIC_FIELD_OFFSET = -1;
|
||||
|
||||
typedef struct FieldInfo
|
||||
{
|
||||
const char* name;
|
||||
const Il2CppType* type;
|
||||
Il2CppClass *parent;
|
||||
int32_t offset; // If offset is -1, then it's thread static
|
||||
uint32_t token;
|
||||
} FieldInfo;
|
||||
|
||||
typedef struct PropertyInfo
|
||||
{
|
||||
Il2CppClass *parent;
|
||||
const char *name;
|
||||
const MethodInfo *get;
|
||||
const MethodInfo *set;
|
||||
uint32_t attrs;
|
||||
uint32_t token;
|
||||
} PropertyInfo;
|
||||
|
||||
typedef struct EventInfo
|
||||
{
|
||||
const char* name;
|
||||
const Il2CppType* eventType;
|
||||
Il2CppClass* parent;
|
||||
const MethodInfo* add;
|
||||
const MethodInfo* remove;
|
||||
const MethodInfo* raise;
|
||||
uint32_t token;
|
||||
} EventInfo;
|
||||
|
||||
typedef struct ParameterInfo
|
||||
{
|
||||
const char* name;
|
||||
int32_t position;
|
||||
uint32_t token;
|
||||
const Il2CppType* parameter_type;
|
||||
} ParameterInfo;
|
||||
|
||||
#if RUNTIME_MONO
|
||||
typedef void* (*InvokerMethod)(Il2CppMethodPointer, const MonoMethod*, void*, void**);
|
||||
#else
|
||||
typedef void* (*InvokerMethod)(Il2CppMethodPointer, const MethodInfo*, void*, void**);
|
||||
#endif
|
||||
|
||||
typedef enum MethodVariableKind
|
||||
{
|
||||
kMethodVariableKind_This,
|
||||
kMethodVariableKind_Parameter,
|
||||
kMethodVariableKind_LocalVariable
|
||||
} MethodVariableKind;
|
||||
|
||||
typedef enum SequencePointKind
|
||||
{
|
||||
kSequencePointKind_Normal,
|
||||
kSequencePointKind_StepOut
|
||||
} SequencePointKind;
|
||||
|
||||
typedef struct Il2CppMethodExecutionContextInfo
|
||||
{
|
||||
TypeIndex typeIndex;
|
||||
int32_t nameIndex;
|
||||
int32_t scopeIndex;
|
||||
} Il2CppMethodExecutionContextInfo;
|
||||
|
||||
typedef struct Il2CppMethodExecutionContextInfoIndex
|
||||
{
|
||||
int8_t tableIndex;
|
||||
int32_t startIndex;
|
||||
int32_t count;
|
||||
} Il2CppMethodExecutionContextInfoIndex;
|
||||
|
||||
typedef struct Il2CppMethodScope
|
||||
{
|
||||
int32_t startOffset;
|
||||
int32_t endOffset;
|
||||
} Il2CppMethodScope;
|
||||
|
||||
typedef struct Il2CppMethodHeaderInfo
|
||||
{
|
||||
int32_t codeSize;
|
||||
int32_t startScope;
|
||||
int32_t numScopes;
|
||||
} Il2CppMethodHeaderInfo;
|
||||
|
||||
typedef struct Il2CppSequencePointIndex
|
||||
{
|
||||
uint8_t tableIndex;
|
||||
int32_t index;
|
||||
} Il2CppSequencePointIndex;
|
||||
|
||||
typedef struct Il2CppSequencePointSourceFile
|
||||
{
|
||||
const char *file;
|
||||
uint8_t hash[16];
|
||||
} Il2CppSequencePointSourceFile;
|
||||
|
||||
typedef struct Il2CppTypeSourceFilePair
|
||||
{
|
||||
TypeIndex klassIndex;
|
||||
int32_t sourceFileIndex;
|
||||
} Il2CppTypeSourceFilePair;
|
||||
|
||||
typedef struct Il2CppSequencePoint
|
||||
{
|
||||
MethodIndex methodDefinitionIndex;
|
||||
TypeIndex catchTypeIndex;
|
||||
int32_t sourceFileIndex;
|
||||
int32_t lineStart, lineEnd;
|
||||
int32_t columnStart, columnEnd;
|
||||
int32_t ilOffset;
|
||||
SequencePointKind kind;
|
||||
uint8_t isActive;
|
||||
int32_t id;
|
||||
uint8_t tryDepth;
|
||||
} Il2CppSequencePoint;
|
||||
|
||||
typedef struct Il2CppDebuggerMetadataRegistration
|
||||
{
|
||||
Il2CppMethodExecutionContextInfo** methodExecutionContextInfos;
|
||||
Il2CppMethodExecutionContextInfoIndex* methodExecutionContextInfoIndexes;
|
||||
Il2CppMethodScope* methodScopes;
|
||||
Il2CppMethodHeaderInfo* methodHeaderInfos;
|
||||
Il2CppSequencePointSourceFile* sequencePointSourceFiles;
|
||||
int32_t numSequencePoints;
|
||||
Il2CppSequencePointIndex* sequencePointIndexes;
|
||||
Il2CppSequencePoint** sequencePoints;
|
||||
int32_t numTypeSourceFileEntries;
|
||||
Il2CppTypeSourceFilePair* typeSourceFiles;
|
||||
const char** methodExecutionContextInfoStrings;
|
||||
} Il2CppDebuggerMetadataRegistration;
|
||||
|
||||
typedef union Il2CppRGCTXData
|
||||
{
|
||||
void* rgctxDataDummy;
|
||||
const MethodInfo* method;
|
||||
const Il2CppType* type;
|
||||
Il2CppClass* klass;
|
||||
} Il2CppRGCTXData;
|
||||
|
||||
typedef struct MethodInfo
|
||||
{
|
||||
Il2CppMethodPointer methodPointer;
|
||||
InvokerMethod invoker_method;
|
||||
const char* name;
|
||||
Il2CppClass *klass;
|
||||
const Il2CppType *return_type;
|
||||
const ParameterInfo* parameters;
|
||||
|
||||
union
|
||||
{
|
||||
const Il2CppRGCTXData* rgctx_data; /* is_inflated is true and is_generic is false, i.e. a generic instance method */
|
||||
const Il2CppMethodDefinition* methodDefinition;
|
||||
};
|
||||
|
||||
/* note, when is_generic == true and is_inflated == true the method represents an uninflated generic method on an inflated type. */
|
||||
union
|
||||
{
|
||||
const Il2CppGenericMethod* genericMethod; /* is_inflated is true */
|
||||
const Il2CppGenericContainer* genericContainer; /* is_inflated is false and is_generic is true */
|
||||
};
|
||||
|
||||
uint32_t token;
|
||||
uint16_t flags;
|
||||
uint16_t iflags;
|
||||
uint16_t slot;
|
||||
uint8_t parameters_count;
|
||||
uint8_t is_generic : 1; /* true if method is a generic method definition */
|
||||
uint8_t is_inflated : 1; /* true if declaring_type is a generic instance or if method is a generic instance*/
|
||||
uint8_t wrapper_type : 1; /* always zero (MONO_WRAPPER_NONE) needed for the debugger */
|
||||
uint8_t is_marshaled_from_native : 1; /* a fake MethodInfo wrapping a native function pointer */
|
||||
} MethodInfo;
|
||||
|
||||
typedef struct Il2CppRuntimeInterfaceOffsetPair
|
||||
{
|
||||
Il2CppClass* interfaceType;
|
||||
int32_t offset;
|
||||
} Il2CppRuntimeInterfaceOffsetPair;
|
||||
|
||||
typedef void (*PInvokeMarshalToNativeFunc)(void* managedStructure, void* marshaledStructure);
|
||||
typedef void (*PInvokeMarshalFromNativeFunc)(void* marshaledStructure, void* managedStructure);
|
||||
typedef void (*PInvokeMarshalCleanupFunc)(void* marshaledStructure);
|
||||
typedef struct Il2CppIUnknown* (*CreateCCWFunc)(Il2CppObject* obj);
|
||||
|
||||
#if RUNTIME_MONO
|
||||
#include "il2cpp-mapping.h"
|
||||
#endif
|
||||
|
||||
typedef struct Il2CppInteropData
|
||||
{
|
||||
Il2CppMethodPointer delegatePInvokeWrapperFunction;
|
||||
PInvokeMarshalToNativeFunc pinvokeMarshalToNativeFunction;
|
||||
PInvokeMarshalFromNativeFunc pinvokeMarshalFromNativeFunction;
|
||||
PInvokeMarshalCleanupFunc pinvokeMarshalCleanupFunction;
|
||||
CreateCCWFunc createCCWFunction;
|
||||
const Il2CppGuid* guid;
|
||||
#if RUNTIME_MONO
|
||||
MonoMetadataToken typeToken;
|
||||
uint64_t hash;
|
||||
#else
|
||||
const Il2CppType* type;
|
||||
#endif
|
||||
} Il2CppInteropData;
|
||||
|
||||
#if IL2CPP_COMPILER_MSVC
|
||||
#pragma warning( push )
|
||||
#pragma warning( disable : 4200 )
|
||||
#elif defined(__clang__)
|
||||
#pragma clang diagnostic push
|
||||
#pragma clang diagnostic ignored "-Winvalid-offsetof"
|
||||
#endif
|
||||
|
||||
typedef struct Il2CppClass
|
||||
{
|
||||
// The following fields are always valid for a Il2CppClass structure
|
||||
const Il2CppImage* image;
|
||||
void* gc_desc;
|
||||
const char* name;
|
||||
const char* namespaze;
|
||||
Il2CppType byval_arg;
|
||||
Il2CppType this_arg;
|
||||
Il2CppClass* element_class;
|
||||
Il2CppClass* castClass;
|
||||
Il2CppClass* declaringType;
|
||||
Il2CppClass* parent;
|
||||
Il2CppGenericClass *generic_class;
|
||||
const Il2CppTypeDefinition* typeDefinition; // non-NULL for Il2CppClass's constructed from type defintions
|
||||
const Il2CppInteropData* interopData;
|
||||
Il2CppClass* klass; // hack to pretend we are a MonoVTable. Points to ourself
|
||||
// End always valid fields
|
||||
|
||||
// The following fields need initialized before access. This can be done per field or as an aggregate via a call to Class::Init
|
||||
FieldInfo* fields; // Initialized in SetupFields
|
||||
const EventInfo* events; // Initialized in SetupEvents
|
||||
const PropertyInfo* properties; // Initialized in SetupProperties
|
||||
const MethodInfo** methods; // Initialized in SetupMethods
|
||||
Il2CppClass** nestedTypes; // Initialized in SetupNestedTypes
|
||||
Il2CppClass** implementedInterfaces; // Initialized in SetupInterfaces
|
||||
Il2CppRuntimeInterfaceOffsetPair* interfaceOffsets; // Initialized in Init
|
||||
void* static_fields; // Initialized in Init
|
||||
const Il2CppRGCTXData* rgctx_data; // Initialized in Init
|
||||
// used for fast parent checks
|
||||
Il2CppClass** typeHierarchy; // Initialized in SetupTypeHierachy
|
||||
// End initialization required fields
|
||||
|
||||
uint32_t initializationExceptionGCHandle;
|
||||
|
||||
uint32_t cctor_started;
|
||||
uint32_t cctor_finished;
|
||||
ALIGN_TYPE(8) uint64_t cctor_thread;
|
||||
|
||||
// Remaining fields are always valid except where noted
|
||||
GenericContainerIndex genericContainerIndex;
|
||||
uint32_t instance_size;
|
||||
uint32_t actualSize;
|
||||
uint32_t element_size;
|
||||
int32_t native_size;
|
||||
uint32_t static_fields_size;
|
||||
uint32_t thread_static_fields_size;
|
||||
int32_t thread_static_fields_offset;
|
||||
uint32_t flags;
|
||||
uint32_t token;
|
||||
|
||||
uint16_t method_count; // lazily calculated for arrays, i.e. when rank > 0
|
||||
uint16_t property_count;
|
||||
uint16_t field_count;
|
||||
uint16_t event_count;
|
||||
uint16_t nested_type_count;
|
||||
uint16_t vtable_count; // lazily calculated for arrays, i.e. when rank > 0
|
||||
uint16_t interfaces_count;
|
||||
uint16_t interface_offsets_count; // lazily calculated for arrays, i.e. when rank > 0
|
||||
|
||||
uint8_t typeHierarchyDepth; // Initialized in SetupTypeHierachy
|
||||
uint8_t genericRecursionDepth;
|
||||
uint8_t rank;
|
||||
uint8_t minimumAlignment;
|
||||
uint8_t packingSize;
|
||||
|
||||
// this is critical for performance of Class::InitFromCodegen. Equals to initialized && !has_initialization_error at all times.
|
||||
// Use Class::UpdateInitializedAndNoError to update
|
||||
uint8_t initialized_and_no_error : 1;
|
||||
|
||||
uint8_t valuetype : 1;
|
||||
uint8_t initialized : 1;
|
||||
uint8_t enumtype : 1;
|
||||
uint8_t is_generic : 1;
|
||||
uint8_t has_references : 1;
|
||||
uint8_t init_pending : 1;
|
||||
uint8_t size_inited : 1;
|
||||
uint8_t has_finalize : 1;
|
||||
uint8_t has_cctor : 1;
|
||||
uint8_t is_blittable : 1;
|
||||
uint8_t is_import_or_windows_runtime : 1;
|
||||
uint8_t is_vtable_initialized : 1;
|
||||
uint8_t has_initialization_error : 1;
|
||||
VirtualInvokeData vtable[IL2CPP_ZERO_LEN_ARRAY];
|
||||
} Il2CppClass;
|
||||
|
||||
#if IL2CPP_COMPILER_MSVC
|
||||
#pragma warning( pop )
|
||||
#elif defined(__clang__)
|
||||
#pragma clang diagnostic pop
|
||||
#endif
|
||||
|
||||
// compiler calcualted values
|
||||
typedef struct Il2CppTypeDefinitionSizes
|
||||
{
|
||||
uint32_t instance_size;
|
||||
int32_t native_size;
|
||||
uint32_t static_fields_size;
|
||||
uint32_t thread_static_fields_size;
|
||||
} Il2CppTypeDefinitionSizes;
|
||||
|
||||
typedef struct Il2CppDomain
|
||||
{
|
||||
Il2CppAppDomain* domain;
|
||||
Il2CppAppDomainSetup* setup;
|
||||
Il2CppAppContext* default_context;
|
||||
const char* friendly_name;
|
||||
uint32_t domain_id;
|
||||
|
||||
#if NET_4_0
|
||||
volatile int threadpool_jobs;
|
||||
#endif
|
||||
void* agent_info;
|
||||
} Il2CppDomain;
|
||||
|
||||
typedef struct Il2CppAssemblyName
|
||||
{
|
||||
const char* name;
|
||||
const char* culture;
|
||||
const char* hash_value;
|
||||
const char* public_key;
|
||||
uint32_t hash_alg;
|
||||
int32_t hash_len;
|
||||
uint32_t flags;
|
||||
int32_t major;
|
||||
int32_t minor;
|
||||
int32_t build;
|
||||
int32_t revision;
|
||||
uint8_t public_key_token[PUBLIC_KEY_BYTE_LENGTH];
|
||||
} Il2CppAssemblyName;
|
||||
|
||||
typedef struct Il2CppImage
|
||||
{
|
||||
const char* name;
|
||||
const char *nameNoExt;
|
||||
Il2CppAssembly* assembly;
|
||||
|
||||
TypeDefinitionIndex typeStart;
|
||||
uint32_t typeCount;
|
||||
|
||||
TypeDefinitionIndex exportedTypeStart;
|
||||
uint32_t exportedTypeCount;
|
||||
|
||||
CustomAttributeIndex customAttributeStart;
|
||||
uint32_t customAttributeCount;
|
||||
|
||||
MethodIndex entryPointIndex;
|
||||
|
||||
#ifdef __cplusplus
|
||||
mutable
|
||||
#endif
|
||||
Il2CppNameToTypeDefinitionIndexHashTable * nameToClassHashTable;
|
||||
|
||||
uint32_t token;
|
||||
uint8_t dynamic;
|
||||
} Il2CppImage;
|
||||
|
||||
typedef struct Il2CppAssembly
|
||||
{
|
||||
Il2CppImage* image;
|
||||
uint32_t token;
|
||||
int32_t referencedAssemblyStart;
|
||||
int32_t referencedAssemblyCount;
|
||||
Il2CppAssemblyName aname;
|
||||
} Il2CppAssembly;
|
||||
|
||||
typedef struct Il2CppCodeGenOptions
|
||||
{
|
||||
bool enablePrimitiveValueTypeGenericSharing;
|
||||
} Il2CppCodeGenOptions;
|
||||
|
||||
typedef struct Il2CppCodeRegistration
|
||||
{
|
||||
uint32_t methodPointersCount;
|
||||
const Il2CppMethodPointer* methodPointers;
|
||||
uint32_t reversePInvokeWrapperCount;
|
||||
const Il2CppMethodPointer* reversePInvokeWrappers;
|
||||
uint32_t genericMethodPointersCount;
|
||||
const Il2CppMethodPointer* genericMethodPointers;
|
||||
uint32_t invokerPointersCount;
|
||||
const InvokerMethod* invokerPointers;
|
||||
CustomAttributeIndex customAttributeCount;
|
||||
const CustomAttributesCacheGenerator* customAttributeGenerators;
|
||||
uint32_t unresolvedVirtualCallCount;
|
||||
const Il2CppMethodPointer* unresolvedVirtualCallPointers;
|
||||
uint32_t interopDataCount;
|
||||
Il2CppInteropData* interopData;
|
||||
} Il2CppCodeRegistration;
|
||||
|
||||
typedef struct Il2CppMetadataRegistration
|
||||
{
|
||||
int32_t genericClassesCount;
|
||||
Il2CppGenericClass* const * genericClasses;
|
||||
int32_t genericInstsCount;
|
||||
const Il2CppGenericInst* const * genericInsts;
|
||||
int32_t genericMethodTableCount;
|
||||
const Il2CppGenericMethodFunctionsDefinitions* genericMethodTable;
|
||||
int32_t typesCount;
|
||||
const Il2CppType* const * types;
|
||||
int32_t methodSpecsCount;
|
||||
const Il2CppMethodSpec* methodSpecs;
|
||||
|
||||
FieldIndex fieldOffsetsCount;
|
||||
const int32_t** fieldOffsets;
|
||||
|
||||
TypeDefinitionIndex typeDefinitionsSizesCount;
|
||||
const Il2CppTypeDefinitionSizes** typeDefinitionsSizes;
|
||||
const size_t metadataUsagesCount;
|
||||
void** const* metadataUsages;
|
||||
} Il2CppMetadataRegistration;
|
||||
|
||||
typedef struct Il2CppRuntimeStats
|
||||
{
|
||||
uint64_t new_object_count;
|
||||
uint64_t initialized_class_count;
|
||||
// uint64_t generic_vtable_count;
|
||||
// uint64_t used_class_count;
|
||||
uint64_t method_count;
|
||||
// uint64_t class_vtable_size;
|
||||
uint64_t class_static_data_size;
|
||||
uint64_t generic_instance_count;
|
||||
uint64_t generic_class_count;
|
||||
uint64_t inflated_method_count;
|
||||
uint64_t inflated_type_count;
|
||||
// uint64_t delegate_creations;
|
||||
// uint64_t minor_gc_count;
|
||||
// uint64_t major_gc_count;
|
||||
// uint64_t minor_gc_time_usecs;
|
||||
// uint64_t major_gc_time_usecs;
|
||||
bool enabled;
|
||||
} Il2CppRuntimeStats;
|
||||
|
||||
extern Il2CppRuntimeStats il2cpp_runtime_stats;
|
||||
|
||||
/*
|
||||
* new structure to hold performance counters values that are exported
|
||||
* to managed code.
|
||||
* Note: never remove fields from this structure and only add them to the end.
|
||||
* Size of fields and type should not be changed as well.
|
||||
*/
|
||||
typedef struct Il2CppPerfCounters
|
||||
{
|
||||
/* JIT category */
|
||||
uint32_t jit_methods;
|
||||
uint32_t jit_bytes;
|
||||
uint32_t jit_time;
|
||||
uint32_t jit_failures;
|
||||
/* Exceptions category */
|
||||
uint32_t exceptions_thrown;
|
||||
uint32_t exceptions_filters;
|
||||
uint32_t exceptions_finallys;
|
||||
uint32_t exceptions_depth;
|
||||
uint32_t aspnet_requests_queued;
|
||||
uint32_t aspnet_requests;
|
||||
/* Memory category */
|
||||
uint32_t gc_collections0;
|
||||
uint32_t gc_collections1;
|
||||
uint32_t gc_collections2;
|
||||
uint32_t gc_promotions0;
|
||||
uint32_t gc_promotions1;
|
||||
uint32_t gc_promotion_finalizers;
|
||||
uint32_t gc_gen0size;
|
||||
uint32_t gc_gen1size;
|
||||
uint32_t gc_gen2size;
|
||||
uint32_t gc_lossize;
|
||||
uint32_t gc_fin_survivors;
|
||||
uint32_t gc_num_handles;
|
||||
uint32_t gc_allocated;
|
||||
uint32_t gc_induced;
|
||||
uint32_t gc_time;
|
||||
uint32_t gc_total_bytes;
|
||||
uint32_t gc_committed_bytes;
|
||||
uint32_t gc_reserved_bytes;
|
||||
uint32_t gc_num_pinned;
|
||||
uint32_t gc_sync_blocks;
|
||||
/* Remoting category */
|
||||
uint32_t remoting_calls;
|
||||
uint32_t remoting_channels;
|
||||
uint32_t remoting_proxies;
|
||||
uint32_t remoting_classes;
|
||||
uint32_t remoting_objects;
|
||||
uint32_t remoting_contexts;
|
||||
/* Loader category */
|
||||
uint32_t loader_classes;
|
||||
uint32_t loader_total_classes;
|
||||
uint32_t loader_appdomains;
|
||||
uint32_t loader_total_appdomains;
|
||||
uint32_t loader_assemblies;
|
||||
uint32_t loader_total_assemblies;
|
||||
uint32_t loader_failures;
|
||||
uint32_t loader_bytes;
|
||||
uint32_t loader_appdomains_uloaded;
|
||||
/* Threads and Locks category */
|
||||
uint32_t thread_contentions;
|
||||
uint32_t thread_queue_len;
|
||||
uint32_t thread_queue_max;
|
||||
uint32_t thread_num_logical;
|
||||
uint32_t thread_num_physical;
|
||||
uint32_t thread_cur_recognized;
|
||||
uint32_t thread_num_recognized;
|
||||
/* Interop category */
|
||||
uint32_t interop_num_ccw;
|
||||
uint32_t interop_num_stubs;
|
||||
uint32_t interop_num_marshals;
|
||||
/* Security category */
|
||||
uint32_t security_num_checks;
|
||||
uint32_t security_num_link_checks;
|
||||
uint32_t security_time;
|
||||
uint32_t security_depth;
|
||||
uint32_t unused;
|
||||
/* Threadpool */
|
||||
uint64_t threadpool_workitems;
|
||||
uint64_t threadpool_ioworkitems;
|
||||
unsigned int threadpool_threads;
|
||||
unsigned int threadpool_iothreads;
|
||||
} Il2CppPerfCounters;
|
||||
@@ -0,0 +1,29 @@
|
||||
#pragma once
|
||||
|
||||
#include "os/c-api/il2cpp-config-platforms.h"
|
||||
#include "os/c-api/il2cpp-config-api-platforms.h"
|
||||
#include "il2cpp-api-types.h"
|
||||
|
||||
// If the platform loads il2cpp as a dynamic library but does not have dlsym (or equivalent) then
|
||||
// define IL2CPP_API_DYNAMIC_NO_DLSYM = 1 to add support for api function registration and symbol
|
||||
// lookup APIs, see il2cpp-api.cpp
|
||||
#ifndef IL2CPP_API_DYNAMIC_NO_DLSYM
|
||||
#define IL2CPP_API_DYNAMIC_NO_DLSYM 0
|
||||
#endif
|
||||
|
||||
/* Profiler */
|
||||
#ifndef IL2CPP_ENABLE_PROFILER
|
||||
#define IL2CPP_ENABLE_PROFILER 1
|
||||
#endif
|
||||
|
||||
#if IL2CPP_COMPILER_MSVC || defined(__ARMCC_VERSION)
|
||||
#define NORETURN __declspec(noreturn)
|
||||
#else
|
||||
#define NORETURN
|
||||
#endif
|
||||
|
||||
#if IL2CPP_TARGET_IOS || IL2CPP_TARGET_ANDROID || IL2CPP_TARGET_DARWIN
|
||||
#define REAL_NORETURN __attribute__ ((noreturn))
|
||||
#else
|
||||
#define REAL_NORETURN NORETURN
|
||||
#endif
|
||||
@@ -0,0 +1,475 @@
|
||||
#pragma once
|
||||
|
||||
#include <assert.h>
|
||||
#include <stddef.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <stdint.h>
|
||||
|
||||
/* first setup platform defines*/
|
||||
#include "os/c-api/il2cpp-config-platforms.h"
|
||||
#include "os/c-api/il2cpp-config-api-platforms.h"
|
||||
|
||||
/* il2cpp-config-api.h need this define */
|
||||
#define IL2CPP_COMPILER_MSVC (IL2CPP_TARGET_WINDOWS || IL2CPP_TARGET_XBOXONE)
|
||||
|
||||
#include "il2cpp-config-api.h"
|
||||
|
||||
#ifndef IL2CPP_EXCEPTION_DISABLED
|
||||
#define IL2CPP_EXCEPTION_DISABLED 0
|
||||
#endif
|
||||
|
||||
#ifdef LIBIL2CPP_EXPORT_CODEGEN_API
|
||||
# define LIBIL2CPP_CODEGEN_API IL2CPP_EXPORT
|
||||
#elif LIBIL2CPP_IMPORT_CODEGEN_API
|
||||
# define LIBIL2CPP_CODEGEN_API IL2CPP_IMPORT
|
||||
#else
|
||||
# define LIBIL2CPP_CODEGEN_API
|
||||
#endif
|
||||
|
||||
#if defined(__ARMCC_VERSION)
|
||||
#include <assert.h>
|
||||
#include <wchar.h>
|
||||
#include <ctype.h>
|
||||
#define INTPTR_MAX 2147483647
|
||||
#endif
|
||||
|
||||
#ifndef IL2CPP_METHOD_ATTR
|
||||
#define IL2CPP_METHOD_ATTR
|
||||
#endif
|
||||
|
||||
#if defined(_MSC_VER)
|
||||
#define IL2CPP_CXX_ABI_MSVC 1
|
||||
#else
|
||||
#define IL2CPP_CXX_ABI_MSVC 0
|
||||
#endif
|
||||
|
||||
#if IL2CPP_COMPILER_MSVC
|
||||
#ifndef STDCALL
|
||||
#define STDCALL __stdcall
|
||||
#endif
|
||||
#ifndef CDECL
|
||||
#define CDECL __cdecl
|
||||
#endif
|
||||
#ifndef FASTCALL
|
||||
#define FASTCALL __fastcall
|
||||
#endif
|
||||
#ifndef THISCALL
|
||||
#define THISCALL __thiscall
|
||||
#endif
|
||||
#else
|
||||
#define STDCALL
|
||||
#define CDECL
|
||||
#define FASTCALL
|
||||
#define THISCALL
|
||||
#endif
|
||||
|
||||
#if IL2CPP_COMPILER_MSVC || defined(__ARMCC_VERSION)
|
||||
#define IL2CPP_NO_INLINE __declspec(noinline)
|
||||
#else
|
||||
#define IL2CPP_NO_INLINE __attribute__ ((noinline))
|
||||
#endif
|
||||
|
||||
#if IL2CPP_COMPILER_MSVC
|
||||
#define NOVTABLE __declspec(novtable)
|
||||
#else
|
||||
#define NOVTABLE
|
||||
#endif
|
||||
|
||||
#define IL2CPP_ENABLE_MONO_BUG_EMULATION 1
|
||||
|
||||
// We currently use ALIGN_TYPE just for types decorated with IL2CPPStructAlignment, as it's needed for WebGL to properly align UnityEngine.Color.
|
||||
// On MSVC, it causes build issues on x86 since you cannot pass aligned type by value as an argument to a function:
|
||||
// error C2719: 'value': formal parameter with requested alignment of 16 won't be aligned
|
||||
// Since this isn't actually needed for Windows, and it's not a standard .NET feature but just IL2CPP extension, let's just turn it off on Windows
|
||||
#if defined(__GNUC__) || defined(__SNC__) || defined(__clang__)
|
||||
#define ALIGN_OF(T) __alignof__(T)
|
||||
#define ALIGN_TYPE(val) __attribute__((aligned(val)))
|
||||
#define ALIGN_FIELD(val) ALIGN_TYPE(val)
|
||||
#define FORCE_INLINE inline __attribute__ ((always_inline))
|
||||
#elif defined(_MSC_VER)
|
||||
#define ALIGN_OF(T) __alignof(T)
|
||||
#define ALIGN_TYPE(val)
|
||||
#define ALIGN_FIELD(val) __declspec(align(val))
|
||||
#define FORCE_INLINE __forceinline
|
||||
#else
|
||||
#define ALIGN_TYPE(size)
|
||||
#define ALIGN_FIELD(size)
|
||||
#define FORCE_INLINE inline
|
||||
#endif
|
||||
|
||||
#define IL2CPP_PAGE_SIZE 4096
|
||||
|
||||
// 64-bit types are aligned to 8 bytes on 64-bit platforms and always on Windows
|
||||
#define IL2CPP_ENABLE_INTERLOCKED_64_REQUIRED_ALIGNMENT ((IL2CPP_SIZEOF_VOID_P == 8) || (IL2CPP_TARGET_WINDOWS))
|
||||
|
||||
/* Debugging */
|
||||
#ifndef IL2CPP_DEBUG
|
||||
#define IL2CPP_DEBUG 0
|
||||
#endif
|
||||
|
||||
#ifndef IL2CPP_DEVELOPMENT
|
||||
#define IL2CPP_DEVELOPMENT 0
|
||||
#endif
|
||||
|
||||
#define IL2CPP_THREADS_ALL_ACCESS (!IL2CPP_THREADS_STD && IL2CPP_TARGET_XBOXONE)
|
||||
|
||||
#if (IL2CPP_SUPPORT_THREADS && (!IL2CPP_THREADS_STD && !IL2CPP_THREADS_PTHREAD && !IL2CPP_THREADS_WIN32 && !IL2CPP_THREADS_XBOXONE && !IL2CPP_THREADS_N3DS && !IL2CPP_THREADS_PS4 && !IL2CPP_THREADS_PSP2 && !IL2CPP_THREADS_SWITCH))
|
||||
#error "No thread implementation defined"
|
||||
#endif
|
||||
|
||||
/* Platform support to cleanup attached threads even when native threads are not exited cleanly */
|
||||
#define IL2CPP_HAS_NATIVE_THREAD_CLEANUP (IL2CPP_THREADS_PTHREAD || IL2CPP_THREADS_WIN32)
|
||||
|
||||
#define IL2CPP_THREAD_IMPL_HAS_COM_APARTMENTS IL2CPP_TARGET_WINDOWS
|
||||
|
||||
#if !defined(IL2CPP_ENABLE_PLATFORM_THREAD_STACKSIZE) && IL2CPP_TARGET_IOS
|
||||
#define IL2CPP_ENABLE_PLATFORM_THREAD_STACKSIZE 1
|
||||
#endif
|
||||
|
||||
#define IL2CPP_ENABLE_STACKTRACES 1
|
||||
/* Platforms which use OS specific implementation to extract stracktrace */
|
||||
#if !defined(IL2CPP_ENABLE_NATIVE_STACKTRACES)
|
||||
#define IL2CPP_ENABLE_NATIVE_STACKTRACES (IL2CPP_TARGET_WINDOWS || IL2CPP_TARGET_LINUX || IL2CPP_TARGET_DARWIN || IL2CPP_TARGET_IOS || IL2CPP_TARGET_ANDROID || IL2CPP_TARGET_NOVA)
|
||||
#endif
|
||||
|
||||
/* Platforms which use stacktrace sentries */
|
||||
#define IL2CPP_ENABLE_STACKTRACE_SENTRIES (IL2CPP_TARGET_JAVASCRIPT || IL2CPP_TARGET_N3DS || IL2CPP_TARGET_SWITCH)
|
||||
|
||||
#if (IL2CPP_ENABLE_STACKTRACES && !IL2CPP_ENABLE_NATIVE_STACKTRACES && !IL2CPP_ENABLE_STACKTRACE_SENTRIES)
|
||||
#error "If stacktraces are supported, then either native stack traces must be supported, or usage of stacktrace sentries must be enabled!"
|
||||
#endif
|
||||
|
||||
#if (IL2CPP_ENABLE_NATIVE_STACKTRACES + IL2CPP_ENABLE_STACKTRACE_SENTRIES) > 1
|
||||
#error "Only one type of stacktraces are allowed"
|
||||
#endif
|
||||
|
||||
#define IL2CPP_CAN_USE_MULTIPLE_SYMBOL_MAPS IL2CPP_TARGET_IOS
|
||||
|
||||
/* GC defines*/
|
||||
#define IL2CPP_GC_BOEHM 1
|
||||
#define IL2CPP_GC_NULL !IL2CPP_GC_BOEHM
|
||||
#define IL2CPP_ENABLE_DEFERRED_GC IL2CPP_TARGET_JAVASCRIPT
|
||||
|
||||
/* we always need to NULL pointer free memory with our current allocators */
|
||||
#define NEED_TO_ZERO_PTRFREE 1
|
||||
#define IL2CPP_HAS_GC_DESCRIPTORS 1
|
||||
|
||||
#if defined(_MSC_VER)
|
||||
#define IL2CPP_ZERO_LEN_ARRAY 0
|
||||
#else
|
||||
#define IL2CPP_ZERO_LEN_ARRAY 0
|
||||
#endif
|
||||
|
||||
#if defined(_MSC_VER)
|
||||
#define IL2CPP_HAS_CXX_CONSTEXPR (_MSC_VER >= 1900)
|
||||
#else
|
||||
#define IL2CPP_HAS_CXX_CONSTEXPR (__has_feature (cxx_constexpr))
|
||||
#endif
|
||||
|
||||
/* clang specific __has_builtin check */
|
||||
#ifndef __has_builtin
|
||||
#define __has_builtin(x) 0 // Compatibility with non-clang compilers.
|
||||
#endif
|
||||
|
||||
#if _MSC_VER
|
||||
#define IL2CPP_UNREACHABLE __assume(0)
|
||||
#elif __has_builtin(__builtin_unreachable)
|
||||
#define IL2CPP_UNREACHABLE __builtin_unreachable()
|
||||
#else
|
||||
#define IL2CPP_UNREACHABLE
|
||||
#endif
|
||||
|
||||
typedef uint32_t Il2CppMethodSlot;
|
||||
const uint32_t kInvalidIl2CppMethodSlot = 65535;
|
||||
|
||||
/* Debug macros */
|
||||
#define STRINGIZE(L) #L
|
||||
#define MAKE_STRING(M, L) M(L)
|
||||
#define $Line MAKE_STRING( STRINGIZE, __LINE__ )
|
||||
#define FIXME __FILE__ "(" $Line ") : FIXME: "
|
||||
#define ICALLMESSAGE(name) __FILE__ "(" $Line ") : FIXME: Missing internal call implementation: " name
|
||||
#define RUNTIMEMESSAGE(name) __FILE__ "(" $Line ") : FIXME: Missing runtime implementation: " name
|
||||
#define NOTSUPPORTEDICALLMESSAGE(target, name, reason) __FILE__ "(" $Line ") : Unsupported internal call for " target ":" name " - " reason
|
||||
|
||||
// Keeping this for future usage if needed.
|
||||
//#if defined(_MSC_VER)
|
||||
// #define PRAGMA_MESSAGE(value) __pragma(message(value))
|
||||
//#else
|
||||
// #define PRAGMA_MESSAGE(value) _Pragma(STRINGIZE(value))
|
||||
//#endif
|
||||
#define PRAGMA_MESSAGE(value)
|
||||
|
||||
#if !defined(EMSCRIPTEN)
|
||||
|
||||
#define IL2CPP_NOT_IMPLEMENTED_ICALL(func) \
|
||||
PRAGMA_MESSAGE(ICALLMESSAGE(#func)) \
|
||||
IL2CPP_ASSERT(0 && #func)
|
||||
#define IL2CPP_NOT_IMPLEMENTED_ICALL_NO_ASSERT(func, reason) \
|
||||
PRAGMA_MESSAGE(ICALLMESSAGE(#func))
|
||||
|
||||
#define IL2CPP_NOT_IMPLEMENTED(func) \
|
||||
PRAGMA_MESSAGE(RUNTIMEMESSAGE(#func)) \
|
||||
IL2CPP_ASSERT(0 && #func)
|
||||
#define IL2CPP_NOT_IMPLEMENTED_NO_ASSERT(func, reason) \
|
||||
PRAGMA_MESSAGE(RUNTIMEMESSAGE(#func))
|
||||
|
||||
#else
|
||||
|
||||
// emscripten's assert will throw an exception in js.
|
||||
// For now, we don't want that, so just printf and move on.
|
||||
#define IL2CPP_NOT_IMPLEMENTED_ICALL(func) \
|
||||
PRAGMA_MESSAGE(message(ICALLMESSAGE(#func))) \
|
||||
printf("Not implemented icall: %s\n", #func);
|
||||
#define IL2CPP_NOT_IMPLEMENTED_ICALL_NO_ASSERT(func, reason) \
|
||||
PRAGMA_MESSAGE(message(ICALLMESSAGE(#func)))
|
||||
|
||||
#define IL2CPP_NOT_IMPLEMENTED(func) \
|
||||
PRAGMA_MESSAGE(message(RUNTIMEMESSAGE(#func))) \
|
||||
printf("Not implemented: %s\n", #func);
|
||||
#define IL2CPP_NOT_IMPLEMENTED_NO_ASSERT(func, reason) \
|
||||
PRAGMA_MESSAGE(message(RUNTIMEMESSAGE(#func)))
|
||||
|
||||
#endif
|
||||
|
||||
#define NOT_SUPPORTED_IL2CPP(func, reason) \
|
||||
il2cpp::vm::Exception::Raise (il2cpp::vm::Exception::GetNotSupportedException ( NOTSUPPORTEDICALLMESSAGE ("IL2CPP", #func, #reason) ))
|
||||
|
||||
#define NOT_SUPPORTED_SRE(func) \
|
||||
il2cpp::vm::Exception::Raise (il2cpp::vm::Exception::GetNotSupportedException ( NOTSUPPORTEDICALLMESSAGE ("IL2CPP", #func, "System.Reflection.Emit is not supported.") ))
|
||||
|
||||
#define NOT_SUPPORTED_REMOTING(func) \
|
||||
il2cpp::vm::Exception::Raise (il2cpp::vm::Exception::GetNotSupportedException ( NOTSUPPORTEDICALLMESSAGE ("IL2CPP", #func, "System.Runtime.Remoting is not supported.") ))
|
||||
|
||||
#if IL2CPP_TARGET_JAVASCRIPT
|
||||
#define NOT_SUPPORTED_WEBGL(func, reason) \
|
||||
il2cpp::vm::Exception::Raise (il2cpp::vm::Exception::GetNotSupportedException ( NOTSUPPORTEDICALLMESSAGE ("WebGL", #func, #reason) ))
|
||||
#else
|
||||
#define NOT_SUPPORTED_WEBGL(func, reason)
|
||||
#endif
|
||||
|
||||
#if IL2CPP_COMPILER_MSVC
|
||||
#define IL2CPP_DIR_SEPARATOR '\\' /* backslash */
|
||||
#else
|
||||
#define IL2CPP_DIR_SEPARATOR '/' /* forward slash */
|
||||
#endif
|
||||
|
||||
#ifndef IL2CPP_DISABLE_FULL_MESSAGES
|
||||
#define IL2CPP_DISABLE_FULL_MESSAGES 1
|
||||
#endif
|
||||
|
||||
#if IL2CPP_COMPILER_MSVC
|
||||
#define IL2CPP_USE_GENERIC_SOCKET_IMPL 0
|
||||
#else
|
||||
#define IL2CPP_USE_GENERIC_SOCKET_IMPL (!IL2CPP_TARGET_POSIX || IL2CPP_TARGET_JAVASCRIPT) && (!IL2CPP_TARGET_SWITCH)
|
||||
#endif
|
||||
|
||||
/* set by platforms that require special handling of SIGPIPE signalling during socket sends */
|
||||
#ifndef IL2CPP_USE_SEND_NOSIGNAL
|
||||
#define IL2CPP_USE_SEND_NOSIGNAL 0
|
||||
#endif
|
||||
|
||||
#ifndef IL2CPP_USE_GENERIC_ENVIRONMENT
|
||||
#define IL2CPP_USE_GENERIC_ENVIRONMENT (!IL2CPP_TARGET_WINDOWS && !IL2CPP_TARGET_POSIX)
|
||||
#endif
|
||||
|
||||
#define IL2CPP_USE_GENERIC_COM (!IL2CPP_TARGET_WINDOWS)
|
||||
#define IL2CPP_USE_GENERIC_COM_SAFEARRAYS (!IL2CPP_TARGET_WINDOWS || IL2CPP_TARGET_XBOXONE)
|
||||
#define IL2CPP_USE_GENERIC_WINDOWSRUNTIME (!IL2CPP_TARGET_WINDOWS || RUNTIME_MONO || RUNTIME_NONE)
|
||||
|
||||
#ifndef IL2CPP_USE_GENERIC_MEMORY_MAPPED_FILE
|
||||
#define IL2CPP_USE_GENERIC_MEMORY_MAPPED_FILE (IL2CPP_TARGET_XBOXONE || (!IL2CPP_TARGET_WINDOWS && !IL2CPP_TARGET_POSIX))
|
||||
#endif
|
||||
|
||||
#ifndef IL2CPP_HAS_CLOSE_EXEC
|
||||
#define IL2CPP_HAS_CLOSE_EXEC (IL2CPP_TARGET_POSIX && !IL2CPP_TARGET_PS4)
|
||||
#endif
|
||||
|
||||
#ifndef IL2CPP_HAS_DUP
|
||||
#define IL2CPP_HAS_DUP (IL2CPP_TARGET_POSIX && !IL2CPP_TARGET_PS4)
|
||||
#endif
|
||||
|
||||
#ifndef IL2CPP_USE_GENERIC_FILE
|
||||
#define IL2CPP_USE_GENERIC_FILE (!IL2CPP_TARGET_WINDOWS && !IL2CPP_TARGET_DARWIN)
|
||||
#endif
|
||||
|
||||
#ifndef IL2CPP_USE_GENERIC_DEBUG_LOG
|
||||
#define IL2CPP_USE_GENERIC_DEBUG_LOG !IL2CPP_TARGET_WINDOWS
|
||||
#endif
|
||||
|
||||
#define IL2CPP_SIZEOF_STRUCT_WITH_NO_INSTANCE_FIELDS 1
|
||||
#define IL2CPP_VALIDATE_FIELD_LAYOUT 0
|
||||
|
||||
#ifndef IL2CPP_USE_POSIX_COND_TIMEDWAIT_REL
|
||||
#define IL2CPP_USE_POSIX_COND_TIMEDWAIT_REL ( IL2CPP_TARGET_DARWIN || IL2CPP_TARGET_PSP2 || ( IL2CPP_TARGET_ANDROID && !IL2CPP_TARGET_ARM64 ) )
|
||||
#endif
|
||||
|
||||
#if IL2CPP_MONO_DEBUGGER
|
||||
#define STORE_SEQ_POINT(storage, seqPointId) do { (storage).currentSequencePoint = seqPointId; } while (0)
|
||||
#define CHECK_SEQ_POINT(storage, seqPointId) il2cpp_codegen_check_sequence_point(&(storage), seqPointId)
|
||||
#define CHECK_METHOD_EXIT_SEQ_POINT(name, storage, seqPointId) MethodExitSequencePointChecker name(&(storage), seqPointId)
|
||||
#define DECLARE_METHOD_THIS(variableName, thisAddress) void* variableName[] = { thisAddress }
|
||||
#define DECLARE_METHOD_PARAMS(variableName, ...) void* variableName[] = { __VA_ARGS__ }
|
||||
#define DECLARE_METHOD_LOCALS(variableName, ...) void* variableName[] = { __VA_ARGS__ }
|
||||
#define DECLARE_METHOD_EXEC_CTX(ctxVariable, method, thisVariable, paramsVariable, localsVariable) Il2CppSequencePointExecutionContext ctxVariable(method, thisVariable, paramsVariable, localsVariable)
|
||||
#define CHECK_PAUSE_POINT il2cpp_codegen_check_pause_point()
|
||||
#else
|
||||
#define STORE_SEQ_POINT(storage, seqPointVar)
|
||||
#define CHECK_SEQ_POINT(storage, seqPointVar)
|
||||
#define CHECK_METHOD_EXIT_SEQ_POINT(name, storage, seqPointId)
|
||||
#define DECLARE_METHOD_THIS(variableName, thisAddress)
|
||||
#define DECLARE_METHOD_PARAMS(variableName, ...)
|
||||
#define DECLARE_METHOD_LOCALS(variableName, ...)
|
||||
#define DECLARE_METHOD_EXEC_CTX(ctxVariable, method, thisVariable, paramsVariable, localsVariable)
|
||||
#define CHECK_PAUSE_POINT
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
template<bool value>
|
||||
struct Il2CppStaticAssertHelper;
|
||||
|
||||
template<>
|
||||
struct Il2CppStaticAssertHelper<true>
|
||||
{
|
||||
};
|
||||
|
||||
|
||||
#define Assert(x) do { (void)(x); IL2CPP_ASSERT(x); } while (false)
|
||||
#define Il2CppStaticAssert(...) do { Il2CppStaticAssertHelper<(__VA_ARGS__)>(); } while (false)
|
||||
#endif
|
||||
|
||||
const int32_t kIl2CppInt32Min = INT32_MIN;
|
||||
const int32_t kIl2CppInt32Max = INT32_MAX;
|
||||
const uint32_t kIl2CppUInt32Max = UINT32_MAX;
|
||||
const int64_t kIl2CppInt64Min = INT64_MIN;
|
||||
const int64_t kIl2CppInt64Max = INT64_MAX;
|
||||
const uint64_t kIl2CppUInt64Max = UINT64_MAX;
|
||||
|
||||
#if IL2CPP_SIZEOF_VOID_P == 8
|
||||
const intptr_t kIl2CppIntPtrMin = INT64_MIN;
|
||||
const intptr_t kIl2CppIntPtrMax = INT64_MAX;
|
||||
const uintptr_t kIl2CppUIntPtrMax = UINT64_MAX;
|
||||
#else
|
||||
const intptr_t kIl2CppIntPtrMin = INT32_MIN;
|
||||
const intptr_t kIl2CppIntPtrMax = INT32_MAX;
|
||||
const uintptr_t kIl2CppUIntPtrMax = UINT32_MAX;
|
||||
#endif
|
||||
|
||||
const int ipv6AddressSize = 16;
|
||||
#define IL2CPP_SUPPORT_IPV6 !IL2CPP_TARGET_PS4 && !IL2CPP_TARGET_SWITCH
|
||||
|
||||
// Android: "There is no support for locales in the C library" https://code.google.com/p/android/issues/detail?id=57313
|
||||
// PS4/PS2: strtol_d doesn't exist
|
||||
#define IL2CPP_SUPPORT_LOCALE_INDEPENDENT_PARSING (!IL2CPP_TARGET_ANDROID && !IL2CPP_TARGET_PS4 && !IL2CPP_TARGET_PSP2 && !IL2CPP_TARGET_NOVA)
|
||||
|
||||
#define NO_UNUSED_WARNING(expr) (void)(expr)
|
||||
|
||||
typedef int32_t il2cpp_hresult_t;
|
||||
|
||||
// Sorted numerically!
|
||||
#define IL2CPP_S_OK ((il2cpp_hresult_t)0)
|
||||
#define IL2CPP_E_BOUNDS ((il2cpp_hresult_t)0x8000000B)
|
||||
#define IL2CPP_E_CHANGED_STATE ((il2cpp_hresult_t)0x8000000C)
|
||||
#define IL2CPP_E_ILLEGAL_METHOD_CALL ((il2cpp_hresult_t)0x8000000E)
|
||||
#define IL2CPP_RO_E_CLOSED ((il2cpp_hresult_t)0x80000013)
|
||||
#define IL2CPP_E_NOTIMPL ((il2cpp_hresult_t)0x80004001)
|
||||
#define IL2CPP_E_NOINTERFACE ((il2cpp_hresult_t)0x80004002)
|
||||
#define IL2CPP_E_POINTER ((il2cpp_hresult_t)0x80004003)
|
||||
#define IL2CPP_E_ABORT ((il2cpp_hresult_t)0x80004004)
|
||||
#define IL2CPP_E_FAIL ((il2cpp_hresult_t)0x80004005)
|
||||
#define IL2CPP_E_UNEXPECTED ((il2cpp_hresult_t)0x8000FFFF)
|
||||
#define IL2CPP_RPC_E_DISCONNECTED ((il2cpp_hresult_t)0x80010108)
|
||||
#define IL2CPP_RPC_E_WRONG_THREAD ((il2cpp_hresult_t)0x8001010E)
|
||||
#define IL2CPP_DISP_E_PARAMNOTFOUND ((il2cpp_hresult_t)0x80020004)
|
||||
#define IL2CPP_REGDB_E_CLASSNOTREG ((il2cpp_hresult_t)0x80040154)
|
||||
#define IL2CPP_E_ACCESS_DENIED ((il2cpp_hresult_t)0x80070005)
|
||||
#define IL2CPP_E_OUTOFMEMORY ((il2cpp_hresult_t)0x8007000E)
|
||||
#define IL2CPP_E_INVALIDARG ((il2cpp_hresult_t)0x80070057)
|
||||
#define IL2CPP_COR_E_EXCEPTION ((il2cpp_hresult_t)0x80131500)
|
||||
#define IL2CPP_COR_E_INVALIDOPERATION ((il2cpp_hresult_t)0x80131509)
|
||||
#define IL2CPP_COR_E_PLATFORMNOTSUPPORTED ((il2cpp_hresult_t)0x80131539)
|
||||
#define IL2CPP_COR_E_OPERATIONCANCELED ((il2cpp_hresult_t)0x8013153B)
|
||||
#define IL2CPP_COR_E_OBJECTDISPOSED ((il2cpp_hresult_t)0x80131622)
|
||||
|
||||
#define IL2CPP_HR_SUCCEEDED(hr) (((il2cpp_hresult_t)(hr)) >= 0)
|
||||
#define IL2CPP_HR_FAILED(hr) (((il2cpp_hresult_t)(hr)) < 0)
|
||||
|
||||
#define IL2CPP_LITTLE_ENDIAN 1
|
||||
#define IL2CPP_BIG_ENDIAN 2
|
||||
#define IL2CPP_BYTE_ORDER IL2CPP_LITTLE_ENDIAN
|
||||
|
||||
#if (defined(_MSC_VER) && _MSC_VER > 1600) || (__has_feature(cxx_override_control))
|
||||
#define IL2CPP_OVERRIDE override
|
||||
#define IL2CPP_FINAL final
|
||||
#else
|
||||
#define IL2CPP_OVERRIDE
|
||||
#define IL2CPP_FINAL
|
||||
#endif
|
||||
|
||||
#if (__has_feature(cxx_deleted_functions) || (defined(_MSC_VER) && _MSC_VER >= 1800))
|
||||
#define IL2CPP_HAS_DELETED_FUNCTIONS 1
|
||||
#else
|
||||
#define IL2CPP_HAS_DELETED_FUNCTIONS 0
|
||||
#endif
|
||||
|
||||
#if IL2CPP_TARGET_WINDOWS
|
||||
const Il2CppChar kIl2CppNewLine[] = { '\r', '\n', '\0' };
|
||||
#else
|
||||
const Il2CppChar kIl2CppNewLine[] = { '\n', '\0' };
|
||||
#endif
|
||||
|
||||
|
||||
#if IL2CPP_TARGET_ANDROID && defined(__i386__)
|
||||
// On Android with x86, function pointers are not aligned, so we
|
||||
// need to use all of the bits when comparing them. Hence we mask
|
||||
// nothing.
|
||||
#define IL2CPP_POINTER_SPARE_BITS 0
|
||||
#else
|
||||
// On ARMv7 with Thumb instructions the lowest bit is always set.
|
||||
// With Thumb2 the second-to-lowest bit is also set. Mask both of
|
||||
// them off so that we can do a comparison properly based on the data
|
||||
// from the linker map file. On other architectures this operation should
|
||||
// not matter, as we assume these two bits are always zero because the pointer
|
||||
// will be aligned.
|
||||
#define IL2CPP_POINTER_SPARE_BITS 3
|
||||
#endif
|
||||
|
||||
#define MAXIMUM_NESTED_GENERICS_EXCEPTION_MESSAGE "IL2CPP encountered a managed type which it cannot convert ahead-of-time. The type uses generic or array types which are nested beyond the maximum depth which can be converted."
|
||||
#if IL2CPP_COMPILER_MSVC
|
||||
#define IL2CPP_ATTRIBUTE_WEAK
|
||||
#else
|
||||
#define IL2CPP_ATTRIBUTE_WEAK __attribute__((weak))
|
||||
#endif
|
||||
|
||||
#if IL2CPP_TARGET_XBOXONE || IL2CPP_TARGET_WINRT || IL2CPP_TARGET_ANDROID || IL2CPP_TARGET_PS4 || IL2CPP_TARGET_PSP2
|
||||
#define IL2CPP_USE_GENERIC_CPU_INFO 1
|
||||
#else
|
||||
#define IL2CPP_USE_GENERIC_CPU_INFO 0
|
||||
#endif
|
||||
|
||||
#define IL2CPP_CAN_CHECK_EXECUTABLE IL2CPP_TARGET_WINDOWS || (IL2CPP_TARGET_POSIX && !IL2CPP_TARGET_PS4)
|
||||
|
||||
#if IL2CPP_MONO_DEBUGGER
|
||||
#define IL2CPP_DEBUG_BREAK() il2cpp::utils::Debugger::UserBreak()
|
||||
#else
|
||||
#ifdef _MSC_VER
|
||||
#define IL2CPP_DEBUG_BREAK() __debugbreak()
|
||||
#else
|
||||
#define IL2CPP_DEBUG_BREAK()
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if defined(__cplusplus)
|
||||
|
||||
template<typename Type, size_t Size>
|
||||
char(*il2cpp_array_size_helper(Type(&array)[Size]))[Size];
|
||||
|
||||
#define IL2CPP_ARRAY_SIZE(array) (sizeof(*il2cpp_array_size_helper(array)))
|
||||
|
||||
#endif // __cplusplus
|
||||
|
||||
#ifndef IOSBUILDENV_IL2CPP_FIX
|
||||
#define IOSBUILDENV_IL2CPP_FIX
|
||||
#define il2cpp_array_size_t unsigned long // Pierre-Marie Baty -- necessary addition to work around a compiler bug
|
||||
#endif // IOSBUILDENV_IL2CPP_FIX
|
||||
@@ -0,0 +1,467 @@
|
||||
#pragma once
|
||||
|
||||
#include "il2cpp-config.h"
|
||||
#include <stdint.h>
|
||||
|
||||
// This file contains the structures specifying how we store converted metadata.
|
||||
// These structures have 3 constraints:
|
||||
// 1. These structures will be stored in an external file, and as such must not contain any pointers.
|
||||
// All references to other metadata should occur via an index into a corresponding table.
|
||||
// 2. These structures are assumed to be const. Either const structures in the binary or mapped as
|
||||
// readonly memory from an external file. Do not add any 'calculated' fields which will be written to at runtime.
|
||||
// 3. These structures should be optimized for size. Other structures are used at runtime which can
|
||||
// be larger to store cached information
|
||||
|
||||
typedef int32_t TypeIndex;
|
||||
typedef int32_t TypeDefinitionIndex;
|
||||
typedef int32_t FieldIndex;
|
||||
typedef int32_t DefaultValueIndex;
|
||||
typedef int32_t DefaultValueDataIndex;
|
||||
typedef int32_t CustomAttributeIndex;
|
||||
typedef int32_t ParameterIndex;
|
||||
typedef int32_t MethodIndex;
|
||||
typedef int32_t GenericMethodIndex;
|
||||
typedef int32_t PropertyIndex;
|
||||
typedef int32_t EventIndex;
|
||||
typedef int32_t GenericContainerIndex;
|
||||
typedef int32_t GenericParameterIndex;
|
||||
typedef int16_t GenericParameterConstraintIndex;
|
||||
typedef int32_t NestedTypeIndex;
|
||||
typedef int32_t InterfacesIndex;
|
||||
typedef int32_t VTableIndex;
|
||||
typedef int32_t InterfaceOffsetIndex;
|
||||
typedef int32_t RGCTXIndex;
|
||||
typedef int32_t StringIndex;
|
||||
typedef int32_t StringLiteralIndex;
|
||||
typedef int32_t GenericInstIndex;
|
||||
typedef int32_t ImageIndex;
|
||||
typedef int32_t AssemblyIndex;
|
||||
typedef int32_t InteropDataIndex;
|
||||
|
||||
const TypeIndex kTypeIndexInvalid = -1;
|
||||
const TypeDefinitionIndex kTypeDefinitionIndexInvalid = -1;
|
||||
const DefaultValueDataIndex kDefaultValueIndexNull = -1;
|
||||
const CustomAttributeIndex kCustomAttributeIndexInvalid = -1;
|
||||
const EventIndex kEventIndexInvalid = -1;
|
||||
const FieldIndex kFieldIndexInvalid = -1;
|
||||
const MethodIndex kMethodIndexInvalid = -1;
|
||||
const PropertyIndex kPropertyIndexInvalid = -1;
|
||||
const GenericContainerIndex kGenericContainerIndexInvalid = -1;
|
||||
const GenericParameterIndex kGenericParameterIndexInvalid = -1;
|
||||
const RGCTXIndex kRGCTXIndexInvalid = -1;
|
||||
const StringLiteralIndex kStringLiteralIndexInvalid = -1;
|
||||
const InteropDataIndex kInteropDataIndexInvalid = -1;
|
||||
|
||||
// Encoded index (1 bit)
|
||||
// MethodDef - 0
|
||||
// MethodSpec - 1
|
||||
// We use the top 3 bits to indicate what table to index into
|
||||
// Type Binary Hex
|
||||
// Il2CppClass 001 0x20000000
|
||||
// Il2CppType 010 0x40000000
|
||||
// MethodInfo 011 0x60000000
|
||||
// FieldInfo 100 0x80000000
|
||||
// StringLiteral 101 0xA0000000
|
||||
// MethodRef 110 0xC0000000
|
||||
|
||||
typedef uint32_t EncodedMethodIndex;
|
||||
|
||||
enum Il2CppMetadataUsage
|
||||
{
|
||||
kIl2CppMetadataUsageInvalid,
|
||||
kIl2CppMetadataUsageTypeInfo,
|
||||
kIl2CppMetadataUsageIl2CppType,
|
||||
kIl2CppMetadataUsageMethodDef,
|
||||
kIl2CppMetadataUsageFieldInfo,
|
||||
kIl2CppMetadataUsageStringLiteral,
|
||||
kIl2CppMetadataUsageMethodRef,
|
||||
};
|
||||
|
||||
#ifdef __cplusplus
|
||||
static inline Il2CppMetadataUsage GetEncodedIndexType(EncodedMethodIndex index)
|
||||
{
|
||||
return (Il2CppMetadataUsage)((index & 0xE0000000) >> 29);
|
||||
}
|
||||
|
||||
static inline uint32_t GetDecodedMethodIndex(EncodedMethodIndex index)
|
||||
{
|
||||
return index & 0x1FFFFFFFU;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
struct Il2CppImage;
|
||||
struct Il2CppType;
|
||||
struct Il2CppTypeDefinitionMetadata;
|
||||
|
||||
typedef union Il2CppRGCTXDefinitionData
|
||||
{
|
||||
int32_t rgctxDataDummy;
|
||||
MethodIndex methodIndex;
|
||||
TypeIndex typeIndex;
|
||||
} Il2CppRGCTXDefinitionData;
|
||||
|
||||
typedef enum Il2CppRGCTXDataType
|
||||
{
|
||||
IL2CPP_RGCTX_DATA_INVALID,
|
||||
IL2CPP_RGCTX_DATA_TYPE,
|
||||
IL2CPP_RGCTX_DATA_CLASS,
|
||||
IL2CPP_RGCTX_DATA_METHOD,
|
||||
IL2CPP_RGCTX_DATA_ARRAY,
|
||||
} Il2CppRGCTXDataType;
|
||||
|
||||
typedef struct Il2CppRGCTXDefinition
|
||||
{
|
||||
Il2CppRGCTXDataType type;
|
||||
Il2CppRGCTXDefinitionData data;
|
||||
} Il2CppRGCTXDefinition;
|
||||
|
||||
typedef struct Il2CppInterfaceOffsetPair
|
||||
{
|
||||
TypeIndex interfaceTypeIndex;
|
||||
int32_t offset;
|
||||
} Il2CppInterfaceOffsetPair;
|
||||
|
||||
typedef struct Il2CppTypeDefinition
|
||||
{
|
||||
StringIndex nameIndex;
|
||||
StringIndex namespaceIndex;
|
||||
TypeIndex byvalTypeIndex;
|
||||
TypeIndex byrefTypeIndex;
|
||||
|
||||
TypeIndex declaringTypeIndex;
|
||||
TypeIndex parentIndex;
|
||||
TypeIndex elementTypeIndex; // we can probably remove this one. Only used for enums
|
||||
|
||||
RGCTXIndex rgctxStartIndex;
|
||||
int32_t rgctxCount;
|
||||
|
||||
GenericContainerIndex genericContainerIndex;
|
||||
|
||||
uint32_t flags;
|
||||
|
||||
FieldIndex fieldStart;
|
||||
MethodIndex methodStart;
|
||||
EventIndex eventStart;
|
||||
PropertyIndex propertyStart;
|
||||
NestedTypeIndex nestedTypesStart;
|
||||
InterfacesIndex interfacesStart;
|
||||
VTableIndex vtableStart;
|
||||
InterfacesIndex interfaceOffsetsStart;
|
||||
|
||||
uint16_t method_count;
|
||||
uint16_t property_count;
|
||||
uint16_t field_count;
|
||||
uint16_t event_count;
|
||||
uint16_t nested_type_count;
|
||||
uint16_t vtable_count;
|
||||
uint16_t interfaces_count;
|
||||
uint16_t interface_offsets_count;
|
||||
|
||||
// bitfield to portably encode boolean values as single bits
|
||||
// 01 - valuetype;
|
||||
// 02 - enumtype;
|
||||
// 03 - has_finalize;
|
||||
// 04 - has_cctor;
|
||||
// 05 - is_blittable;
|
||||
// 06 - is_import_or_windows_runtime;
|
||||
// 07-10 - One of nine possible PackingSize values (0, 1, 2, 4, 8, 16, 32, 64, or 128)
|
||||
uint32_t bitfield;
|
||||
uint32_t token;
|
||||
} Il2CppTypeDefinition;
|
||||
|
||||
typedef struct Il2CppFieldDefinition
|
||||
{
|
||||
StringIndex nameIndex;
|
||||
TypeIndex typeIndex;
|
||||
uint32_t token;
|
||||
} Il2CppFieldDefinition;
|
||||
|
||||
typedef struct Il2CppFieldDefaultValue
|
||||
{
|
||||
FieldIndex fieldIndex;
|
||||
TypeIndex typeIndex;
|
||||
DefaultValueDataIndex dataIndex;
|
||||
} Il2CppFieldDefaultValue;
|
||||
|
||||
typedef struct Il2CppFieldMarshaledSize
|
||||
{
|
||||
FieldIndex fieldIndex;
|
||||
TypeIndex typeIndex;
|
||||
int32_t size;
|
||||
} Il2CppFieldMarshaledSize;
|
||||
|
||||
typedef struct Il2CppFieldRef
|
||||
{
|
||||
TypeIndex typeIndex;
|
||||
FieldIndex fieldIndex; // local offset into type fields
|
||||
} Il2CppFieldRef;
|
||||
|
||||
typedef struct Il2CppParameterDefinition
|
||||
{
|
||||
StringIndex nameIndex;
|
||||
uint32_t token;
|
||||
TypeIndex typeIndex;
|
||||
} Il2CppParameterDefinition;
|
||||
|
||||
typedef struct Il2CppParameterDefaultValue
|
||||
{
|
||||
ParameterIndex parameterIndex;
|
||||
TypeIndex typeIndex;
|
||||
DefaultValueDataIndex dataIndex;
|
||||
} Il2CppParameterDefaultValue;
|
||||
|
||||
typedef struct Il2CppMethodDefinition
|
||||
{
|
||||
StringIndex nameIndex;
|
||||
TypeDefinitionIndex declaringType;
|
||||
TypeIndex returnType;
|
||||
ParameterIndex parameterStart;
|
||||
GenericContainerIndex genericContainerIndex;
|
||||
MethodIndex methodIndex;
|
||||
MethodIndex invokerIndex;
|
||||
MethodIndex reversePInvokeWrapperIndex;
|
||||
RGCTXIndex rgctxStartIndex;
|
||||
int32_t rgctxCount;
|
||||
uint32_t token;
|
||||
uint16_t flags;
|
||||
uint16_t iflags;
|
||||
uint16_t slot;
|
||||
uint16_t parameterCount;
|
||||
} Il2CppMethodDefinition;
|
||||
|
||||
typedef struct Il2CppEventDefinition
|
||||
{
|
||||
StringIndex nameIndex;
|
||||
TypeIndex typeIndex;
|
||||
MethodIndex add;
|
||||
MethodIndex remove;
|
||||
MethodIndex raise;
|
||||
uint32_t token;
|
||||
} Il2CppEventDefinition;
|
||||
|
||||
typedef struct Il2CppPropertyDefinition
|
||||
{
|
||||
StringIndex nameIndex;
|
||||
MethodIndex get;
|
||||
MethodIndex set;
|
||||
uint32_t attrs;
|
||||
uint32_t token;
|
||||
} Il2CppPropertyDefinition;
|
||||
|
||||
typedef struct Il2CppMethodSpec
|
||||
{
|
||||
MethodIndex methodDefinitionIndex;
|
||||
GenericInstIndex classIndexIndex;
|
||||
GenericInstIndex methodIndexIndex;
|
||||
} Il2CppMethodSpec;
|
||||
|
||||
typedef struct Il2CppStringLiteral
|
||||
{
|
||||
uint32_t length;
|
||||
StringLiteralIndex dataIndex;
|
||||
} Il2CppStringLiteral;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
MethodIndex methodIndex;
|
||||
MethodIndex invokerIndex;
|
||||
} Il2CppGenericMethodIndices;
|
||||
|
||||
typedef struct Il2CppGenericMethodFunctionsDefinitions
|
||||
{
|
||||
GenericMethodIndex genericMethodIndex;
|
||||
Il2CppGenericMethodIndices indices;
|
||||
} Il2CppGenericMethodFunctionsDefinitions;
|
||||
|
||||
#define PUBLIC_KEY_BYTE_LENGTH 8
|
||||
const int kPublicKeyByteLength = PUBLIC_KEY_BYTE_LENGTH;
|
||||
|
||||
typedef struct Il2CppAssemblyNameDefinition
|
||||
{
|
||||
StringIndex nameIndex;
|
||||
StringIndex cultureIndex;
|
||||
StringIndex hashValueIndex;
|
||||
StringIndex publicKeyIndex;
|
||||
uint32_t hash_alg;
|
||||
int32_t hash_len;
|
||||
uint32_t flags;
|
||||
int32_t major;
|
||||
int32_t minor;
|
||||
int32_t build;
|
||||
int32_t revision;
|
||||
uint8_t public_key_token[PUBLIC_KEY_BYTE_LENGTH];
|
||||
} Il2CppAssemblyNameDefinition;
|
||||
|
||||
typedef struct Il2CppImageDefinition
|
||||
{
|
||||
StringIndex nameIndex;
|
||||
AssemblyIndex assemblyIndex;
|
||||
|
||||
TypeDefinitionIndex typeStart;
|
||||
uint32_t typeCount;
|
||||
|
||||
TypeDefinitionIndex exportedTypeStart;
|
||||
uint32_t exportedTypeCount;
|
||||
|
||||
MethodIndex entryPointIndex;
|
||||
uint32_t token;
|
||||
|
||||
CustomAttributeIndex customAttributeStart;
|
||||
uint32_t customAttributeCount;
|
||||
} Il2CppImageDefinition;
|
||||
|
||||
typedef struct Il2CppAssemblyDefinition
|
||||
{
|
||||
ImageIndex imageIndex;
|
||||
uint32_t token;
|
||||
int32_t referencedAssemblyStart;
|
||||
int32_t referencedAssemblyCount;
|
||||
Il2CppAssemblyNameDefinition aname;
|
||||
} Il2CppAssemblyDefinition;
|
||||
|
||||
typedef struct Il2CppMetadataUsageList
|
||||
{
|
||||
uint32_t start;
|
||||
uint32_t count;
|
||||
} Il2CppMetadataUsageList;
|
||||
|
||||
typedef struct Il2CppMetadataUsagePair
|
||||
{
|
||||
uint32_t destinationIndex;
|
||||
uint32_t encodedSourceIndex;
|
||||
} Il2CppMetadataUsagePair;
|
||||
|
||||
typedef struct Il2CppCustomAttributeTypeRange
|
||||
{
|
||||
uint32_t token;
|
||||
int32_t start;
|
||||
int32_t count;
|
||||
} Il2CppCustomAttributeTypeRange;
|
||||
|
||||
typedef struct Il2CppRange
|
||||
{
|
||||
int32_t start;
|
||||
int32_t length;
|
||||
} Il2CppRange;
|
||||
|
||||
typedef struct Il2CppWindowsRuntimeTypeNamePair
|
||||
{
|
||||
StringIndex nameIndex;
|
||||
TypeIndex typeIndex;
|
||||
} Il2CppWindowsRuntimeTypeNamePair;
|
||||
|
||||
#pragma pack(push, p1,4)
|
||||
typedef struct Il2CppGlobalMetadataHeader
|
||||
{
|
||||
int32_t sanity;
|
||||
int32_t version;
|
||||
int32_t stringLiteralOffset; // string data for managed code
|
||||
int32_t stringLiteralCount;
|
||||
int32_t stringLiteralDataOffset;
|
||||
int32_t stringLiteralDataCount;
|
||||
int32_t stringOffset; // string data for metadata
|
||||
int32_t stringCount;
|
||||
int32_t eventsOffset; // Il2CppEventDefinition
|
||||
int32_t eventsCount;
|
||||
int32_t propertiesOffset; // Il2CppPropertyDefinition
|
||||
int32_t propertiesCount;
|
||||
int32_t methodsOffset; // Il2CppMethodDefinition
|
||||
int32_t methodsCount;
|
||||
int32_t parameterDefaultValuesOffset; // Il2CppParameterDefaultValue
|
||||
int32_t parameterDefaultValuesCount;
|
||||
int32_t fieldDefaultValuesOffset; // Il2CppFieldDefaultValue
|
||||
int32_t fieldDefaultValuesCount;
|
||||
int32_t fieldAndParameterDefaultValueDataOffset; // uint8_t
|
||||
int32_t fieldAndParameterDefaultValueDataCount;
|
||||
int32_t fieldMarshaledSizesOffset; // Il2CppFieldMarshaledSize
|
||||
int32_t fieldMarshaledSizesCount;
|
||||
int32_t parametersOffset; // Il2CppParameterDefinition
|
||||
int32_t parametersCount;
|
||||
int32_t fieldsOffset; // Il2CppFieldDefinition
|
||||
int32_t fieldsCount;
|
||||
int32_t genericParametersOffset; // Il2CppGenericParameter
|
||||
int32_t genericParametersCount;
|
||||
int32_t genericParameterConstraintsOffset; // TypeIndex
|
||||
int32_t genericParameterConstraintsCount;
|
||||
int32_t genericContainersOffset; // Il2CppGenericContainer
|
||||
int32_t genericContainersCount;
|
||||
int32_t nestedTypesOffset; // TypeDefinitionIndex
|
||||
int32_t nestedTypesCount;
|
||||
int32_t interfacesOffset; // TypeIndex
|
||||
int32_t interfacesCount;
|
||||
int32_t vtableMethodsOffset; // EncodedMethodIndex
|
||||
int32_t vtableMethodsCount;
|
||||
int32_t interfaceOffsetsOffset; // Il2CppInterfaceOffsetPair
|
||||
int32_t interfaceOffsetsCount;
|
||||
int32_t typeDefinitionsOffset; // Il2CppTypeDefinition
|
||||
int32_t typeDefinitionsCount;
|
||||
int32_t rgctxEntriesOffset; // Il2CppRGCTXDefinition
|
||||
int32_t rgctxEntriesCount;
|
||||
int32_t imagesOffset; // Il2CppImageDefinition
|
||||
int32_t imagesCount;
|
||||
int32_t assembliesOffset; // Il2CppAssemblyDefinition
|
||||
int32_t assembliesCount;
|
||||
int32_t metadataUsageListsOffset; // Il2CppMetadataUsageList
|
||||
int32_t metadataUsageListsCount;
|
||||
int32_t metadataUsagePairsOffset; // Il2CppMetadataUsagePair
|
||||
int32_t metadataUsagePairsCount;
|
||||
int32_t fieldRefsOffset; // Il2CppFieldRef
|
||||
int32_t fieldRefsCount;
|
||||
int32_t referencedAssembliesOffset; // int32_t
|
||||
int32_t referencedAssembliesCount;
|
||||
int32_t attributesInfoOffset; // Il2CppCustomAttributeTypeRange
|
||||
int32_t attributesInfoCount;
|
||||
int32_t attributeTypesOffset; // TypeIndex
|
||||
int32_t attributeTypesCount;
|
||||
int32_t unresolvedVirtualCallParameterTypesOffset; // TypeIndex
|
||||
int32_t unresolvedVirtualCallParameterTypesCount;
|
||||
int32_t unresolvedVirtualCallParameterRangesOffset; // Il2CppRange
|
||||
int32_t unresolvedVirtualCallParameterRangesCount;
|
||||
int32_t windowsRuntimeTypeNamesOffset; // Il2CppWindowsRuntimeTypeNamePair
|
||||
int32_t windowsRuntimeTypeNamesSize;
|
||||
int32_t exportedTypeDefinitionsOffset; // TypeDefinitionIndex
|
||||
int32_t exportedTypeDefinitionsCount;
|
||||
} Il2CppGlobalMetadataHeader;
|
||||
#pragma pack(pop, p1)
|
||||
|
||||
#if RUNTIME_MONO
|
||||
|
||||
#pragma pack(push, p1,4)
|
||||
typedef struct Il2CppGlobalMonoMetadataHeader
|
||||
{
|
||||
int32_t sanity;
|
||||
int32_t version;
|
||||
int32_t stringOffset; // string data for metadata
|
||||
int32_t stringCount;
|
||||
int32_t methodInfoMappingOffset; // hash -> MonoMethodInfo mapping
|
||||
int32_t methodInfoMappingCount;
|
||||
int32_t genericMethodInfoMappingOffset; // hash -> generic MonoMethodInfo mapping
|
||||
int32_t genericMethodInfoMappingCount;
|
||||
int32_t rgctxIndicesOffset; // runtime generic context indices
|
||||
int32_t rgctxIndicesCount;
|
||||
int32_t rgctxInfoOffset; // runtime generic context info
|
||||
int32_t rgctxInfoCount;
|
||||
int32_t monoStringOffset; // mono strings
|
||||
int32_t monoStringCount;
|
||||
int32_t methodMetadataOffset; // method metadata
|
||||
int32_t methodMetadataCount;
|
||||
int32_t genericArgumentIndicesOffset; // generic argument indices
|
||||
int32_t genericArgumentIndicesCount;
|
||||
int32_t typeTableOffset; // type table
|
||||
int32_t typeTableCount;
|
||||
int32_t fieldTableOffset; // field table
|
||||
int32_t fieldTableCount;
|
||||
int32_t methodIndexTableOffset; // method index table
|
||||
int32_t methodIndexTableCount;
|
||||
int32_t genericMethodIndexTableOffset; // generic method index table
|
||||
int32_t genericMethodIndexTableCount;
|
||||
int32_t metaDataUsageListsTableOffset; // meta data usage lists table
|
||||
int32_t metaDataUsageListsTableCount;
|
||||
int32_t metaDataUsagePairsTableOffset; // meta data usage pairs table
|
||||
int32_t metaDataUsagePairsTableCount;
|
||||
int32_t assemblyNameTableOffset; // assembly names
|
||||
int32_t assemblyNameTableCount;
|
||||
} Il2CppGlobalMonoMetadataHeader;
|
||||
#pragma pack(pop, p1)
|
||||
#endif
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,917 @@
|
||||
#ifndef _MONO_METADATA_NUMBER_FORMATTER_H_
|
||||
#define _MONO_METADATA_NUMBER_FORMATTER_H_ 1
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
static const uint64_t Formatter_MantissaBitsTable[] =
|
||||
{
|
||||
4556951262222748432ULL, 9113902524445496865ULL, 1822780504889099373ULL,
|
||||
3645561009778198746ULL, 7291122019556397492ULL, 14582244039112794984ULL,
|
||||
2916448807822558996ULL, 5832897615645117993ULL, 11665795231290235987ULL,
|
||||
2333159046258047197ULL, 4666318092516094394ULL, 9332636185032188789ULL,
|
||||
1866527237006437757ULL, 3733054474012875515ULL, 7466108948025751031ULL,
|
||||
14932217896051502063ULL, 2986443579210300412ULL, 5972887158420600825ULL,
|
||||
11945774316841201651ULL, 2389154863368240330ULL, 4778309726736480660ULL,
|
||||
9556619453472961320ULL, 1911323890694592264ULL, 3822647781389184528ULL,
|
||||
7645295562778369056ULL, 15290591125556738113ULL, 3058118225111347622ULL,
|
||||
6116236450222695245ULL, 12232472900445390490ULL, 2446494580089078098ULL,
|
||||
4892989160178156196ULL, 9785978320356312392ULL, 1957195664071262478ULL,
|
||||
3914391328142524957ULL, 7828782656285049914ULL, 15657565312570099828ULL,
|
||||
3131513062514019965ULL, 6263026125028039931ULL, 12526052250056079862ULL,
|
||||
2505210450011215972ULL, 5010420900022431944ULL, 10020841800044863889ULL,
|
||||
2004168360008972777ULL, 4008336720017945555ULL, 8016673440035891111ULL,
|
||||
16033346880071782223ULL, 3206669376014356444ULL, 6413338752028712889ULL,
|
||||
12826677504057425779ULL, 2565335500811485155ULL, 5130671001622970311ULL,
|
||||
10261342003245940623ULL, 2052268400649188124ULL, 4104536801298376249ULL,
|
||||
8209073602596752498ULL, 16418147205193504997ULL, 3283629441038700999ULL,
|
||||
6567258882077401998ULL, 13134517764154803997ULL, 2626903552830960799ULL,
|
||||
5253807105661921599ULL, 10507614211323843198ULL, 2101522842264768639ULL,
|
||||
4203045684529537279ULL, 8406091369059074558ULL, 16812182738118149117ULL,
|
||||
3362436547623629823ULL, 6724873095247259646ULL, 13449746190494519293ULL,
|
||||
2689949238098903858ULL, 5379898476197807717ULL, 10759796952395615435ULL,
|
||||
2151959390479123087ULL, 4303918780958246174ULL, 8607837561916492348ULL,
|
||||
17215675123832984696ULL, 3443135024766596939ULL, 6886270049533193878ULL,
|
||||
13772540099066387756ULL, 2754508019813277551ULL, 5509016039626555102ULL,
|
||||
11018032079253110205ULL, 2203606415850622041ULL, 4407212831701244082ULL,
|
||||
8814425663402488164ULL, 17628851326804976328ULL, 3525770265360995265ULL,
|
||||
7051540530721990531ULL, 14103081061443981063ULL, 2820616212288796212ULL,
|
||||
5641232424577592425ULL, 11282464849155184850ULL, 2256492969831036970ULL,
|
||||
4512985939662073940ULL, 9025971879324147880ULL, 18051943758648295760ULL,
|
||||
3610388751729659152ULL, 7220777503459318304ULL, 14441555006918636608ULL,
|
||||
2888311001383727321ULL, 5776622002767454643ULL, 11553244005534909286ULL,
|
||||
2310648801106981857ULL, 4621297602213963714ULL, 9242595204427927429ULL,
|
||||
1848519040885585485ULL, 3697038081771170971ULL, 7394076163542341943ULL,
|
||||
14788152327084683887ULL, 2957630465416936777ULL, 5915260930833873554ULL,
|
||||
11830521861667747109ULL, 2366104372333549421ULL, 4732208744667098843ULL,
|
||||
9464417489334197687ULL, 1892883497866839537ULL, 3785766995733679075ULL,
|
||||
7571533991467358150ULL, 15143067982934716300ULL, 3028613596586943260ULL,
|
||||
6057227193173886520ULL, 12114454386347773040ULL, 2422890877269554608ULL,
|
||||
4845781754539109216ULL, 9691563509078218432ULL, 1938312701815643686ULL,
|
||||
3876625403631287372ULL, 7753250807262574745ULL, 15506501614525149491ULL,
|
||||
3101300322905029898ULL, 6202600645810059796ULL, 12405201291620119593ULL,
|
||||
2481040258324023918ULL, 4962080516648047837ULL, 9924161033296095674ULL,
|
||||
1984832206659219134ULL, 3969664413318438269ULL, 7939328826636876539ULL,
|
||||
15878657653273753079ULL, 3175731530654750615ULL, 6351463061309501231ULL,
|
||||
12702926122619002463ULL, 2540585224523800492ULL, 5081170449047600985ULL,
|
||||
10162340898095201970ULL, 2032468179619040394ULL, 4064936359238080788ULL,
|
||||
8129872718476161576ULL, 16259745436952323153ULL, 3251949087390464630ULL,
|
||||
6503898174780929261ULL, 13007796349561858522ULL, 2601559269912371704ULL,
|
||||
5203118539824743409ULL, 10406237079649486818ULL, 2081247415929897363ULL,
|
||||
4162494831859794727ULL, 8324989663719589454ULL, 16649979327439178909ULL,
|
||||
3329995865487835781ULL, 6659991730975671563ULL, 13319983461951343127ULL,
|
||||
2663996692390268625ULL, 5327993384780537250ULL, 10655986769561074501ULL,
|
||||
2131197353912214900ULL, 4262394707824429800ULL, 8524789415648859601ULL,
|
||||
17049578831297719202ULL, 3409915766259543840ULL, 6819831532519087681ULL,
|
||||
13639663065038175362ULL, 2727932613007635072ULL, 5455865226015270144ULL,
|
||||
10911730452030540289ULL, 2182346090406108057ULL, 4364692180812216115ULL,
|
||||
8729384361624432231ULL, 17458768723248864463ULL, 3491753744649772892ULL,
|
||||
6983507489299545785ULL, 13967014978599091570ULL, 2793402995719818314ULL,
|
||||
5586805991439636628ULL, 11173611982879273256ULL, 2234722396575854651ULL,
|
||||
4469444793151709302ULL, 8938889586303418605ULL, 17877779172606837210ULL,
|
||||
3575555834521367442ULL, 7151111669042734884ULL, 14302223338085469768ULL,
|
||||
2860444667617093953ULL, 5720889335234187907ULL, 11441778670468375814ULL,
|
||||
2288355734093675162ULL, 4576711468187350325ULL, 9153422936374700651ULL,
|
||||
1830684587274940130ULL, 3661369174549880260ULL, 7322738349099760521ULL,
|
||||
14645476698199521043ULL, 2929095339639904208ULL, 5858190679279808417ULL,
|
||||
11716381358559616834ULL, 2343276271711923366ULL, 4686552543423846733ULL,
|
||||
9373105086847693467ULL, 1874621017369538693ULL, 3749242034739077387ULL,
|
||||
7498484069478154774ULL, 14996968138956309548ULL, 2999393627791261909ULL,
|
||||
5998787255582523819ULL, 11997574511165047638ULL, 2399514902233009527ULL,
|
||||
4799029804466019055ULL, 9598059608932038110ULL, 1919611921786407622ULL,
|
||||
3839223843572815244ULL, 7678447687145630488ULL, 15356895374291260977ULL,
|
||||
3071379074858252195ULL, 6142758149716504390ULL, 12285516299433008781ULL,
|
||||
2457103259886601756ULL, 4914206519773203512ULL, 9828413039546407025ULL,
|
||||
1965682607909281405ULL, 3931365215818562810ULL, 7862730431637125620ULL,
|
||||
15725460863274251240ULL, 3145092172654850248ULL, 6290184345309700496ULL,
|
||||
12580368690619400992ULL, 2516073738123880198ULL, 5032147476247760397ULL,
|
||||
10064294952495520794ULL, 2012858990499104158ULL, 4025717980998208317ULL,
|
||||
8051435961996416635ULL, 16102871923992833270ULL, 3220574384798566654ULL,
|
||||
6441148769597133308ULL, 12882297539194266616ULL, 2576459507838853323ULL,
|
||||
5152919015677706646ULL, 10305838031355413293ULL, 2061167606271082658ULL,
|
||||
4122335212542165317ULL, 8244670425084330634ULL, 16489340850168661269ULL,
|
||||
3297868170033732253ULL, 6595736340067464507ULL, 13191472680134929015ULL,
|
||||
2638294536026985803ULL, 5276589072053971606ULL, 10553178144107943212ULL,
|
||||
2110635628821588642ULL, 4221271257643177284ULL, 8442542515286354569ULL,
|
||||
16885085030572709139ULL, 3377017006114541827ULL, 6754034012229083655ULL,
|
||||
13508068024458167311ULL, 2701613604891633462ULL, 5403227209783266924ULL,
|
||||
10806454419566533849ULL, 2161290883913306769ULL, 4322581767826613539ULL,
|
||||
8645163535653227079ULL, 17290327071306454158ULL, 3458065414261290831ULL,
|
||||
6916130828522581663ULL, 13832261657045163327ULL, 2766452331409032665ULL,
|
||||
5532904662818065330ULL, 11065809325636130661ULL, 2213161865127226132ULL,
|
||||
4426323730254452264ULL, 8852647460508904529ULL, 17705294921017809058ULL,
|
||||
3541058984203561811ULL, 7082117968407123623ULL, 14164235936814247246ULL,
|
||||
2832847187362849449ULL, 5665694374725698898ULL, 11331388749451397797ULL,
|
||||
2266277749890279559ULL, 4532555499780559119ULL, 9065110999561118238ULL,
|
||||
1813022199912223647ULL, 3626044399824447295ULL, 7252088799648894590ULL,
|
||||
14504177599297789180ULL, 2900835519859557836ULL, 5801671039719115672ULL,
|
||||
11603342079438231344ULL, 2320668415887646268ULL, 4641336831775292537ULL,
|
||||
9282673663550585075ULL, 1856534732710117015ULL, 3713069465420234030ULL,
|
||||
7426138930840468060ULL, 14852277861680936121ULL, 2970455572336187224ULL,
|
||||
5940911144672374448ULL, 11881822289344748896ULL, 2376364457868949779ULL,
|
||||
4752728915737899558ULL, 9505457831475799117ULL, 1901091566295159823ULL,
|
||||
3802183132590319647ULL, 7604366265180639294ULL, 15208732530361278588ULL,
|
||||
3041746506072255717ULL, 6083493012144511435ULL, 12166986024289022870ULL,
|
||||
2433397204857804574ULL, 4866794409715609148ULL, 9733588819431218296ULL,
|
||||
1946717763886243659ULL, 3893435527772487318ULL, 7786871055544974637ULL,
|
||||
15573742111089949274ULL, 3114748422217989854ULL, 6229496844435979709ULL,
|
||||
12458993688871959419ULL, 2491798737774391883ULL, 4983597475548783767ULL,
|
||||
9967194951097567535ULL, 1993438990219513507ULL, 3986877980439027014ULL,
|
||||
7973755960878054028ULL, 15947511921756108056ULL, 3189502384351221611ULL,
|
||||
6379004768702443222ULL, 12758009537404886445ULL, 2551601907480977289ULL,
|
||||
5103203814961954578ULL, 10206407629923909156ULL, 2041281525984781831ULL,
|
||||
4082563051969563662ULL, 8165126103939127325ULL, 16330252207878254650ULL,
|
||||
3266050441575650930ULL, 6532100883151301860ULL, 13064201766302603720ULL,
|
||||
2612840353260520744ULL, 5225680706521041488ULL, 10451361413042082976ULL,
|
||||
2090272282608416595ULL, 4180544565216833190ULL, 8361089130433666380ULL,
|
||||
16722178260867332761ULL, 3344435652173466552ULL, 6688871304346933104ULL,
|
||||
13377742608693866209ULL, 2675548521738773241ULL, 5351097043477546483ULL,
|
||||
10702194086955092967ULL, 2140438817391018593ULL, 4280877634782037187ULL,
|
||||
8561755269564074374ULL, 17123510539128148748ULL, 3424702107825629749ULL,
|
||||
6849404215651259499ULL, 13698808431302518998ULL, 2739761686260503799ULL,
|
||||
5479523372521007599ULL, 10959046745042015198ULL, 2191809349008403039ULL,
|
||||
4383618698016806079ULL, 8767237396033612159ULL, 17534474792067224318ULL,
|
||||
3506894958413444863ULL, 7013789916826889727ULL, 14027579833653779454ULL,
|
||||
2805515966730755890ULL, 5611031933461511781ULL, 11222063866923023563ULL,
|
||||
2244412773384604712ULL, 4488825546769209425ULL, 8977651093538418850ULL,
|
||||
17955302187076837701ULL, 3591060437415367540ULL, 7182120874830735080ULL,
|
||||
14364241749661470161ULL, 2872848349932294032ULL, 5745696699864588064ULL,
|
||||
11491393399729176129ULL, 2298278679945835225ULL, 4596557359891670451ULL,
|
||||
9193114719783340903ULL, 1838622943956668180ULL, 3677245887913336361ULL,
|
||||
7354491775826672722ULL, 14708983551653345445ULL, 2941796710330669089ULL,
|
||||
5883593420661338178ULL, 11767186841322676356ULL, 2353437368264535271ULL,
|
||||
4706874736529070542ULL, 9413749473058141084ULL, 1882749894611628216ULL,
|
||||
3765499789223256433ULL, 7530999578446512867ULL, 15061999156893025735ULL,
|
||||
3012399831378605147ULL, 6024799662757210294ULL, 12049599325514420588ULL,
|
||||
2409919865102884117ULL, 4819839730205768235ULL, 9639679460411536470ULL,
|
||||
1927935892082307294ULL, 3855871784164614588ULL, 7711743568329229176ULL,
|
||||
15423487136658458353ULL, 3084697427331691670ULL, 6169394854663383341ULL,
|
||||
12338789709326766682ULL, 2467757941865353336ULL, 4935515883730706673ULL,
|
||||
9871031767461413346ULL, 1974206353492282669ULL, 3948412706984565338ULL,
|
||||
7896825413969130677ULL, 15793650827938261354ULL, 3158730165587652270ULL,
|
||||
6317460331175304541ULL, 12634920662350609083ULL, 2526984132470121816ULL,
|
||||
5053968264940243633ULL, 10107936529880487266ULL, 2021587305976097453ULL,
|
||||
4043174611952194906ULL, 8086349223904389813ULL, 16172698447808779626ULL,
|
||||
3234539689561755925ULL, 6469079379123511850ULL, 12938158758247023701ULL,
|
||||
2587631751649404740ULL, 5175263503298809480ULL, 10350527006597618960ULL,
|
||||
2070105401319523792ULL, 4140210802639047584ULL, 8280421605278095168ULL,
|
||||
16560843210556190337ULL, 3312168642111238067ULL, 6624337284222476135ULL,
|
||||
13248674568444952270ULL, 2649734913688990454ULL, 5299469827377980908ULL,
|
||||
10598939654755961816ULL, 2119787930951192363ULL, 4239575861902384726ULL,
|
||||
8479151723804769452ULL, 16958303447609538905ULL, 3391660689521907781ULL,
|
||||
6783321379043815562ULL, 13566642758087631124ULL, 2713328551617526224ULL,
|
||||
5426657103235052449ULL, 10853314206470104899ULL, 2170662841294020979ULL,
|
||||
4341325682588041959ULL, 8682651365176083919ULL, 17365302730352167839ULL,
|
||||
3473060546070433567ULL, 6946121092140867135ULL, 13892242184281734271ULL,
|
||||
2778448436856346854ULL, 5556896873712693708ULL, 11113793747425387417ULL,
|
||||
2222758749485077483ULL, 4445517498970154966ULL, 8891034997940309933ULL,
|
||||
17782069995880619867ULL, 3556413999176123973ULL, 7112827998352247947ULL,
|
||||
14225655996704495894ULL, 2845131199340899178ULL, 5690262398681798357ULL,
|
||||
11380524797363596715ULL, 2276104959472719343ULL, 4552209918945438686ULL,
|
||||
9104419837890877372ULL, 1820883967578175474ULL, 3641767935156350948ULL,
|
||||
7283535870312701897ULL, 14567071740625403795ULL, 2913414348125080759ULL,
|
||||
5826828696250161518ULL, 11653657392500323036ULL, 2330731478500064607ULL,
|
||||
4661462957000129214ULL, 9322925914000258429ULL, 1864585182800051685ULL,
|
||||
3729170365600103371ULL, 7458340731200206743ULL, 14916681462400413486ULL,
|
||||
2983336292480082697ULL, 5966672584960165394ULL, 11933345169920330789ULL,
|
||||
2386669033984066157ULL, 4773338067968132315ULL, 9546676135936264631ULL,
|
||||
1909335227187252926ULL, 3818670454374505852ULL, 7637340908749011705ULL,
|
||||
15274681817498023410ULL, 3054936363499604682ULL, 6109872726999209364ULL,
|
||||
12219745453998418728ULL, 2443949090799683745ULL, 4887898181599367491ULL,
|
||||
9775796363198734982ULL, 1955159272639746996ULL, 3910318545279493993ULL,
|
||||
7820637090558987986ULL, 15641274181117975972ULL, 3128254836223595194ULL,
|
||||
6256509672447190388ULL, 12513019344894380777ULL, 2502603868978876155ULL,
|
||||
5005207737957752311ULL, 10010415475915504622ULL, 2002083095183100924ULL,
|
||||
4004166190366201848ULL, 8008332380732403697ULL, 16016664761464807395ULL,
|
||||
3203332952292961479ULL, 6406665904585922958ULL, 12813331809171845916ULL,
|
||||
2562666361834369183ULL, 5125332723668738366ULL, 10250665447337476733ULL,
|
||||
2050133089467495346ULL, 4100266178934990693ULL, 8200532357869981386ULL,
|
||||
16401064715739962772ULL, 3280212943147992554ULL, 6560425886295985109ULL,
|
||||
13120851772591970218ULL, 2624170354518394043ULL, 5248340709036788087ULL,
|
||||
10496681418073576174ULL, 2099336283614715234ULL, 4198672567229430469ULL,
|
||||
8397345134458860939ULL, 16794690268917721879ULL, 3358938053783544375ULL,
|
||||
6717876107567088751ULL, 13435752215134177503ULL, 2687150443026835500ULL,
|
||||
5374300886053671001ULL, 10748601772107342002ULL, 2149720354421468400ULL,
|
||||
4299440708842936801ULL, 8598881417685873602ULL, 17197762835371747204ULL,
|
||||
3439552567074349440ULL, 6879105134148698881ULL, 13758210268297397763ULL,
|
||||
2751642053659479552ULL, 5503284107318959105ULL, 11006568214637918210ULL,
|
||||
2201313642927583642ULL, 4402627285855167284ULL, 8805254571710334568ULL,
|
||||
17610509143420669137ULL, 3522101828684133827ULL, 7044203657368267654ULL,
|
||||
14088407314736535309ULL, 2817681462947307061ULL, 5635362925894614123ULL,
|
||||
11270725851789228247ULL, 2254145170357845649ULL, 4508290340715691299ULL,
|
||||
9016580681431382598ULL, 18033161362862765196ULL, 3606632272572553039ULL,
|
||||
7213264545145106078ULL, 14426529090290212157ULL, 2885305818058042431ULL,
|
||||
5770611636116084862ULL, 11541223272232169725ULL, 2308244654446433945ULL,
|
||||
4616489308892867890ULL, 9232978617785735780ULL, 1846595723557147156ULL,
|
||||
3693191447114294312ULL, 7386382894228588624ULL, 14772765788457177249ULL,
|
||||
2954553157691435449ULL, 5909106315382870899ULL, 11818212630765741799ULL,
|
||||
2363642526153148359ULL, 4727285052306296719ULL, 9454570104612593439ULL,
|
||||
1890914020922518687ULL, 3781828041845037375ULL, 7563656083690074751ULL,
|
||||
15127312167380149503ULL, 3025462433476029900ULL, 6050924866952059801ULL,
|
||||
12101849733904119602ULL, 2420369946780823920ULL, 4840739893561647841ULL,
|
||||
9681479787123295682ULL, 1936295957424659136ULL, 3872591914849318272ULL,
|
||||
7745183829698636545ULL, 15490367659397273091ULL, 3098073531879454618ULL,
|
||||
6196147063758909236ULL, 12392294127517818473ULL, 2478458825503563694ULL,
|
||||
4956917651007127389ULL, 9913835302014254778ULL, 1982767060402850955ULL,
|
||||
3965534120805701911ULL, 7931068241611403822ULL, 15862136483222807645ULL,
|
||||
3172427296644561529ULL, 6344854593289123058ULL, 12689709186578246116ULL,
|
||||
2537941837315649223ULL, 5075883674631298446ULL, 10151767349262596893ULL,
|
||||
2030353469852519378ULL, 4060706939705038757ULL, 8121413879410077514ULL,
|
||||
16242827758820155028ULL, 3248565551764031005ULL, 6497131103528062011ULL,
|
||||
12994262207056124023ULL, 2598852441411224804ULL, 5197704882822449609ULL,
|
||||
10395409765644899218ULL, 2079081953128979843ULL, 4158163906257959687ULL,
|
||||
8316327812515919374ULL, 16632655625031838749ULL, 3326531125006367749ULL,
|
||||
6653062250012735499ULL, 13306124500025470999ULL, 2661224900005094199ULL,
|
||||
5322449800010188399ULL, 10644899600020376799ULL, 2128979920004075359ULL,
|
||||
4257959840008150719ULL, 8515919680016301439ULL, 17031839360032602879ULL,
|
||||
3406367872006520575ULL, 6812735744013041151ULL, 13625471488026082303ULL,
|
||||
2725094297605216460ULL, 5450188595210432921ULL, 10900377190420865842ULL,
|
||||
2180075438084173168ULL, 4360150876168346337ULL, 8720301752336692674ULL,
|
||||
17440603504673385348ULL, 3488120700934677069ULL, 6976241401869354139ULL,
|
||||
13952482803738708279ULL, 2790496560747741655ULL, 5580993121495483311ULL,
|
||||
11161986242990966623ULL, 2232397248598193324ULL, 4464794497196386649ULL,
|
||||
8929588994392773298ULL, 17859177988785546597ULL, 3571835597757109319ULL,
|
||||
7143671195514218638ULL, 14287342391028437277ULL, 2857468478205687455ULL,
|
||||
5714936956411374911ULL, 11429873912822749822ULL, 2285974782564549964ULL,
|
||||
4571949565129099928ULL, 9143899130258199857ULL, 1828779826051639971ULL,
|
||||
3657559652103279943ULL, 7315119304206559886ULL, 14630238608413119772ULL,
|
||||
2926047721682623954ULL, 5852095443365247908ULL, 11704190886730495817ULL,
|
||||
2340838177346099163ULL, 4681676354692198327ULL, 9363352709384396654ULL,
|
||||
1872670541876879330ULL, 3745341083753758661ULL, 7490682167507517323ULL,
|
||||
14981364335015034646ULL, 2996272867003006929ULL, 5992545734006013858ULL,
|
||||
11985091468012027717ULL, 2397018293602405543ULL, 4794036587204811087ULL,
|
||||
9588073174409622174ULL, 1917614634881924434ULL, 3835229269763848869ULL,
|
||||
7670458539527697739ULL, 15340917079055395478ULL, 3068183415811079095ULL,
|
||||
6136366831622158191ULL, 12272733663244316382ULL, 2454546732648863276ULL,
|
||||
4909093465297726553ULL, 9818186930595453106ULL, 1963637386119090621ULL,
|
||||
3927274772238181242ULL, 7854549544476362484ULL, 15709099088952724969ULL,
|
||||
3141819817790544993ULL, 6283639635581089987ULL, 12567279271162179975ULL,
|
||||
2513455854232435995ULL, 5026911708464871990ULL, 10053823416929743980ULL,
|
||||
2010764683385948796ULL, 4021529366771897592ULL, 8043058733543795184ULL,
|
||||
16086117467087590369ULL, 3217223493417518073ULL, 6434446986835036147ULL,
|
||||
12868893973670072295ULL, 2573778794734014459ULL, 5147557589468028918ULL,
|
||||
10295115178936057836ULL, 2059023035787211567ULL, 4118046071574423134ULL,
|
||||
8236092143148846269ULL, 16472184286297692538ULL, 3294436857259538507ULL,
|
||||
6588873714519077015ULL, 13177747429038154030ULL, 2635549485807630806ULL,
|
||||
5271098971615261612ULL, 10542197943230523224ULL, 2108439588646104644ULL,
|
||||
4216879177292209289ULL, 8433758354584418579ULL, 16867516709168837158ULL,
|
||||
3373503341833767431ULL, 6747006683667534863ULL, 13494013367335069727ULL,
|
||||
2698802673467013945ULL, 5397605346934027890ULL, 10795210693868055781ULL,
|
||||
2159042138773611156ULL, 4318084277547222312ULL, 8636168555094444625ULL,
|
||||
17272337110188889250ULL, 3454467422037777850ULL, 6908934844075555700ULL,
|
||||
13817869688151111400ULL, 2763573937630222280ULL, 5527147875260444560ULL,
|
||||
11054295750520889120ULL, 2210859150104177824ULL, 4421718300208355648ULL,
|
||||
8843436600416711296ULL, 17686873200833422592ULL, 3537374640166684518ULL,
|
||||
7074749280333369037ULL, 14149498560666738074ULL, 2829899712133347614ULL,
|
||||
5659799424266695229ULL, 11319598848533390459ULL, 2263919769706678091ULL,
|
||||
4527839539413356183ULL, 9055679078826712367ULL, 1811135815765342473ULL,
|
||||
3622271631530684947ULL, 7244543263061369894ULL, 14489086526122739788ULL,
|
||||
2897817305224547957ULL, 5795634610449095915ULL, 11591269220898191830ULL,
|
||||
2318253844179638366ULL, 4636507688359276732ULL, 9273015376718553464ULL,
|
||||
1854603075343710692ULL, 3709206150687421385ULL, 7418412301374842771ULL,
|
||||
14836824602749685542ULL, 2967364920549937108ULL, 5934729841099874217ULL,
|
||||
11869459682199748434ULL, 2373891936439949686ULL, 4747783872879899373ULL,
|
||||
9495567745759798747ULL, 1899113549151959749ULL, 3798227098303919498ULL,
|
||||
7596454196607838997ULL, 15192908393215677995ULL, 3038581678643135599ULL,
|
||||
6077163357286271198ULL, 12154326714572542396ULL, 2430865342914508479ULL,
|
||||
4861730685829016958ULL, 9723461371658033917ULL, 1944692274331606783ULL,
|
||||
3889384548663213566ULL, 7778769097326427133ULL, 15557538194652854267ULL,
|
||||
3111507638930570853ULL, 6223015277861141707ULL, 12446030555722283414ULL,
|
||||
2489206111144456682ULL, 4978412222288913365ULL, 9956824444577826731ULL,
|
||||
1991364888915565346ULL, 3982729777831130692ULL, 7965459555662261385ULL,
|
||||
15930919111324522770ULL, 3186183822264904554ULL, 6372367644529809108ULL,
|
||||
12744735289059618216ULL, 2548947057811923643ULL, 5097894115623847286ULL,
|
||||
10195788231247694572ULL, 2039157646249538914ULL, 4078315292499077829ULL,
|
||||
8156630584998155658ULL, 16313261169996311316ULL, 3262652233999262263ULL,
|
||||
6525304467998524526ULL, 13050608935997049053ULL, 2610121787199409810ULL,
|
||||
5220243574398819621ULL, 10440487148797639242ULL, 2088097429759527848ULL,
|
||||
4176194859519055697ULL, 8352389719038111394ULL, 16704779438076222788ULL,
|
||||
3340955887615244557ULL, 6681911775230489115ULL, 13363823550460978230ULL,
|
||||
2672764710092195646ULL, 5345529420184391292ULL, 10691058840368782584ULL,
|
||||
2138211768073756516ULL, 4276423536147513033ULL, 8552847072295026067ULL,
|
||||
17105694144590052135ULL, 3421138828918010427ULL, 6842277657836020854ULL,
|
||||
13684555315672041708ULL, 2736911063134408341ULL, 5473822126268816683ULL,
|
||||
10947644252537633366ULL, 2189528850507526673ULL, 4379057701015053346ULL,
|
||||
8758115402030106693ULL, 17516230804060213386ULL, 3503246160812042677ULL,
|
||||
7006492321624085354ULL, 14012984643248170709ULL, 2802596928649634141ULL,
|
||||
5605193857299268283ULL, 11210387714598536567ULL, 2242077542919707313ULL,
|
||||
4484155085839414626ULL, 8968310171678829253ULL, 17936620343357658507ULL,
|
||||
3587324068671531701ULL, 7174648137343063403ULL, 14349296274686126806ULL,
|
||||
2869859254937225361ULL, 5739718509874450722ULL, 11479437019748901445ULL,
|
||||
2295887403949780289ULL, 4591774807899560578ULL, 9183549615799121156ULL,
|
||||
1836709923159824231ULL, 3673419846319648462ULL, 7346839692639296924ULL,
|
||||
14693679385278593849ULL, 2938735877055718769ULL, 5877471754111437539ULL,
|
||||
11754943508222875079ULL, 2350988701644575015ULL, 4701977403289150031ULL,
|
||||
9403954806578300063ULL, 1880790961315660012ULL, 3761581922631320025ULL,
|
||||
7523163845262640050ULL, 15046327690525280101ULL, 3009265538105056020ULL,
|
||||
6018531076210112040ULL, 12037062152420224081ULL, 2407412430484044816ULL,
|
||||
4814824860968089632ULL, 9629649721936179265ULL, 1925929944387235853ULL,
|
||||
3851859888774471706ULL, 7703719777548943412ULL, 15407439555097886824ULL,
|
||||
3081487911019577364ULL, 6162975822039154729ULL, 12325951644078309459ULL,
|
||||
2465190328815661891ULL, 4930380657631323783ULL, 9860761315262647567ULL,
|
||||
1972152263052529513ULL, 3944304526105059027ULL, 7888609052210118054ULL,
|
||||
15777218104420236108ULL, 3155443620884047221ULL, 6310887241768094443ULL,
|
||||
12621774483536188886ULL, 2524354896707237777ULL, 5048709793414475554ULL,
|
||||
10097419586828951109ULL, 2019483917365790221ULL, 4038967834731580443ULL,
|
||||
8077935669463160887ULL, 16155871338926321774ULL, 3231174267785264354ULL,
|
||||
6462348535570528709ULL, 12924697071141057419ULL, 2584939414228211483ULL,
|
||||
5169878828456422967ULL, 10339757656912845935ULL, 2067951531382569187ULL,
|
||||
4135903062765138374ULL, 8271806125530276748ULL, 16543612251060553497ULL,
|
||||
3308722450212110699ULL, 6617444900424221398ULL, 13234889800848442797ULL,
|
||||
2646977960169688559ULL, 5293955920339377119ULL, 10587911840678754238ULL,
|
||||
2117582368135750847ULL, 4235164736271501695ULL, 8470329472543003390ULL,
|
||||
16940658945086006781ULL, 3388131789017201356ULL, 6776263578034402712ULL,
|
||||
13552527156068805425ULL, 2710505431213761085ULL, 5421010862427522170ULL,
|
||||
10842021724855044340ULL, 2168404344971008868ULL, 4336808689942017736ULL,
|
||||
8673617379884035472ULL, 17347234759768070944ULL, 3469446951953614188ULL,
|
||||
6938893903907228377ULL, 13877787807814456755ULL, 2775557561562891351ULL,
|
||||
5551115123125782702ULL, 11102230246251565404ULL, 2220446049250313080ULL,
|
||||
4440892098500626161ULL, 8881784197001252323ULL, 17763568394002504646ULL,
|
||||
3552713678800500929ULL, 7105427357601001858ULL, 14210854715202003717ULL,
|
||||
2842170943040400743ULL, 5684341886080801486ULL, 11368683772161602973ULL,
|
||||
2273736754432320594ULL, 4547473508864641189ULL, 9094947017729282379ULL,
|
||||
1818989403545856475ULL, 3637978807091712951ULL, 7275957614183425903ULL,
|
||||
14551915228366851806ULL, 2910383045673370361ULL, 5820766091346740722ULL,
|
||||
11641532182693481445ULL, 2328306436538696289ULL, 4656612873077392578ULL,
|
||||
9313225746154785156ULL, 1862645149230957031ULL, 3725290298461914062ULL,
|
||||
7450580596923828125ULL, 14901161193847656250ULL, 2980232238769531250ULL,
|
||||
5960464477539062500ULL, 11920928955078125000ULL, 2384185791015625000ULL,
|
||||
4768371582031250000ULL, 9536743164062500000ULL, 1907348632812500000ULL,
|
||||
3814697265625000000ULL, 7629394531250000000ULL, 15258789062500000000ULL,
|
||||
3051757812500000000ULL, 6103515625000000000ULL, 12207031250000000000ULL,
|
||||
2441406250000000000ULL, 4882812500000000000ULL, 9765625000000000000ULL,
|
||||
1953125000000000000ULL, 3906250000000000000ULL, 7812500000000000000ULL,
|
||||
15625000000000000000ULL, 3125000000000000000ULL, 6250000000000000000ULL,
|
||||
12500000000000000000ULL, 2500000000000000000ULL, 5000000000000000000ULL,
|
||||
10000000000000000000ULL, 2000000000000000000ULL, 4000000000000000000ULL,
|
||||
8000000000000000000ULL, 16000000000000000000ULL, 3200000000000000000ULL,
|
||||
6400000000000000000ULL, 12800000000000000000ULL, 2560000000000000000ULL,
|
||||
5120000000000000000ULL, 10240000000000000000ULL, 2048000000000000000ULL,
|
||||
4096000000000000000ULL, 8192000000000000000ULL, 16384000000000000000ULL,
|
||||
3276800000000000000ULL, 6553600000000000000ULL, 13107200000000000000ULL,
|
||||
2621440000000000000ULL, 5242880000000000000ULL, 10485760000000000000ULL,
|
||||
2097152000000000000ULL, 4194304000000000000ULL, 8388608000000000000ULL,
|
||||
16777216000000000000ULL, 3355443200000000000ULL, 6710886400000000000ULL,
|
||||
13421772800000000000ULL, 2684354560000000000ULL, 5368709120000000000ULL,
|
||||
10737418240000000000ULL, 2147483648000000000ULL, 4294967296000000000ULL,
|
||||
8589934592000000000ULL, 17179869184000000000ULL, 3435973836800000000ULL,
|
||||
6871947673600000000ULL, 13743895347200000000ULL, 2748779069440000000ULL,
|
||||
5497558138880000000ULL, 10995116277760000000ULL, 2199023255552000000ULL,
|
||||
4398046511104000000ULL, 8796093022208000000ULL, 17592186044416000000ULL,
|
||||
3518437208883200000ULL, 7036874417766400000ULL, 14073748835532800000ULL,
|
||||
2814749767106560000ULL, 5629499534213120000ULL, 11258999068426240000ULL,
|
||||
2251799813685248000ULL, 4503599627370496000ULL, 9007199254740992000ULL,
|
||||
18014398509481984000ULL, 3602879701896396800ULL, 7205759403792793600ULL,
|
||||
14411518807585587200ULL, 2882303761517117440ULL, 5764607523034234880ULL,
|
||||
11529215046068469760ULL, 2305843009213693952ULL, 4611686018427387904ULL,
|
||||
9223372036854775808ULL, 1844674407370955161ULL, 3689348814741910323ULL,
|
||||
7378697629483820646ULL, 14757395258967641292ULL, 2951479051793528258ULL,
|
||||
5902958103587056517ULL, 11805916207174113034ULL, 2361183241434822606ULL,
|
||||
4722366482869645213ULL, 9444732965739290427ULL, 1888946593147858085ULL,
|
||||
3777893186295716170ULL, 7555786372591432341ULL, 15111572745182864683ULL,
|
||||
3022314549036572936ULL, 6044629098073145873ULL, 12089258196146291747ULL,
|
||||
2417851639229258349ULL, 4835703278458516698ULL, 9671406556917033397ULL,
|
||||
1934281311383406679ULL, 3868562622766813359ULL, 7737125245533626718ULL,
|
||||
15474250491067253436ULL, 3094850098213450687ULL, 6189700196426901374ULL,
|
||||
12379400392853802748ULL, 2475880078570760549ULL, 4951760157141521099ULL,
|
||||
9903520314283042199ULL, 1980704062856608439ULL, 3961408125713216879ULL,
|
||||
7922816251426433759ULL, 15845632502852867518ULL, 3169126500570573503ULL,
|
||||
6338253001141147007ULL, 12676506002282294014ULL, 2535301200456458802ULL,
|
||||
5070602400912917605ULL, 10141204801825835211ULL, 2028240960365167042ULL,
|
||||
4056481920730334084ULL, 8112963841460668169ULL, 16225927682921336339ULL,
|
||||
3245185536584267267ULL, 6490371073168534535ULL, 12980742146337069071ULL,
|
||||
2596148429267413814ULL, 5192296858534827628ULL, 10384593717069655257ULL,
|
||||
2076918743413931051ULL, 4153837486827862102ULL, 8307674973655724205ULL,
|
||||
16615349947311448411ULL, 3323069989462289682ULL, 6646139978924579364ULL,
|
||||
13292279957849158729ULL, 2658455991569831745ULL, 5316911983139663491ULL,
|
||||
10633823966279326983ULL, 2126764793255865396ULL, 4253529586511730793ULL,
|
||||
8507059173023461586ULL, 17014118346046923173ULL, 3402823669209384634ULL,
|
||||
6805647338418769269ULL, 13611294676837538538ULL, 2722258935367507707ULL,
|
||||
5444517870735015415ULL, 10889035741470030830ULL, 2177807148294006166ULL,
|
||||
4355614296588012332ULL, 8711228593176024664ULL, 17422457186352049329ULL,
|
||||
3484491437270409865ULL, 6968982874540819731ULL, 13937965749081639463ULL,
|
||||
2787593149816327892ULL, 5575186299632655785ULL, 11150372599265311570ULL,
|
||||
2230074519853062314ULL, 4460149039706124628ULL, 8920298079412249256ULL,
|
||||
17840596158824498513ULL, 3568119231764899702ULL, 7136238463529799405ULL,
|
||||
14272476927059598810ULL, 2854495385411919762ULL, 5708990770823839524ULL,
|
||||
11417981541647679048ULL, 2283596308329535809ULL, 4567192616659071619ULL,
|
||||
9134385233318143238ULL, 1826877046663628647ULL, 3653754093327257295ULL,
|
||||
7307508186654514591ULL, 14615016373309029182ULL, 2923003274661805836ULL,
|
||||
5846006549323611672ULL, 11692013098647223345ULL, 2338402619729444669ULL,
|
||||
4676805239458889338ULL, 9353610478917778676ULL, 1870722095783555735ULL,
|
||||
3741444191567111470ULL, 7482888383134222941ULL, 14965776766268445882ULL,
|
||||
2993155353253689176ULL, 5986310706507378352ULL, 11972621413014756705ULL,
|
||||
2394524282602951341ULL, 4789048565205902682ULL, 9578097130411805364ULL,
|
||||
1915619426082361072ULL, 3831238852164722145ULL, 7662477704329444291ULL,
|
||||
15324955408658888583ULL, 3064991081731777716ULL, 6129982163463555433ULL,
|
||||
12259964326927110866ULL, 2451992865385422173ULL, 4903985730770844346ULL,
|
||||
9807971461541688693ULL, 1961594292308337738ULL, 3923188584616675477ULL,
|
||||
7846377169233350954ULL, 15692754338466701909ULL, 3138550867693340381ULL,
|
||||
6277101735386680763ULL, 12554203470773361527ULL, 2510840694154672305ULL,
|
||||
5021681388309344611ULL, 10043362776618689222ULL, 2008672555323737844ULL,
|
||||
4017345110647475688ULL, 8034690221294951377ULL, 16069380442589902755ULL,
|
||||
3213876088517980551ULL, 6427752177035961102ULL, 12855504354071922204ULL,
|
||||
2571100870814384440ULL, 5142201741628768881ULL, 10284403483257537763ULL,
|
||||
2056880696651507552ULL, 4113761393303015105ULL, 8227522786606030210ULL,
|
||||
16455045573212060421ULL, 3291009114642412084ULL, 6582018229284824168ULL,
|
||||
13164036458569648337ULL, 2632807291713929667ULL, 5265614583427859334ULL,
|
||||
10531229166855718669ULL, 2106245833371143733ULL, 4212491666742287467ULL,
|
||||
8424983333484574935ULL, 16849966666969149871ULL, 3369993333393829974ULL,
|
||||
6739986666787659948ULL, 13479973333575319897ULL, 2695994666715063979ULL,
|
||||
5391989333430127958ULL, 10783978666860255917ULL, 2156795733372051183ULL,
|
||||
4313591466744102367ULL, 8627182933488204734ULL, 17254365866976409468ULL,
|
||||
3450873173395281893ULL, 6901746346790563787ULL, 13803492693581127574ULL,
|
||||
2760698538716225514ULL, 5521397077432451029ULL, 11042794154864902059ULL,
|
||||
2208558830972980411ULL, 4417117661945960823ULL, 8834235323891921647ULL,
|
||||
17668470647783843295ULL, 3533694129556768659ULL, 7067388259113537318ULL,
|
||||
14134776518227074636ULL, 2826955303645414927ULL, 5653910607290829854ULL,
|
||||
11307821214581659709ULL, 2261564242916331941ULL, 4523128485832663883ULL,
|
||||
9046256971665327767ULL, 18092513943330655534ULL, 3618502788666131106ULL,
|
||||
7237005577332262213ULL, 14474011154664524427ULL, 2894802230932904885ULL,
|
||||
5789604461865809771ULL, 11579208923731619542ULL, 2315841784746323908ULL,
|
||||
4631683569492647816ULL, 9263367138985295633ULL, 1852673427797059126ULL,
|
||||
3705346855594118253ULL, 7410693711188236507ULL, 14821387422376473014ULL,
|
||||
2964277484475294602ULL, 5928554968950589205ULL, 11857109937901178411ULL,
|
||||
2371421987580235682ULL, 4742843975160471364ULL, 9485687950320942729ULL,
|
||||
1897137590064188545ULL, 3794275180128377091ULL, 7588550360256754183ULL,
|
||||
15177100720513508366ULL, 3035420144102701673ULL, 6070840288205403346ULL,
|
||||
12141680576410806693ULL, 2428336115282161338ULL, 4856672230564322677ULL,
|
||||
9713344461128645354ULL, 1942668892225729070ULL, 3885337784451458141ULL,
|
||||
7770675568902916283ULL, 15541351137805832567ULL, 3108270227561166513ULL,
|
||||
6216540455122333026ULL, 12433080910244666053ULL, 2486616182048933210ULL,
|
||||
4973232364097866421ULL, 9946464728195732843ULL, 1989292945639146568ULL,
|
||||
3978585891278293137ULL, 7957171782556586274ULL, 15914343565113172548ULL,
|
||||
3182868713022634509ULL, 6365737426045269019ULL, 12731474852090538039ULL,
|
||||
2546294970418107607ULL, 5092589940836215215ULL, 10185179881672430431ULL,
|
||||
2037035976334486086ULL, 4074071952668972172ULL, 8148143905337944345ULL,
|
||||
16296287810675888690ULL, 3259257562135177738ULL, 6518515124270355476ULL,
|
||||
13037030248540710952ULL, 2607406049708142190ULL, 5214812099416284380ULL,
|
||||
10429624198832568761ULL, 2085924839766513752ULL, 4171849679533027504ULL,
|
||||
8343699359066055009ULL, 16687398718132110018ULL, 3337479743626422003ULL,
|
||||
6674959487252844007ULL, 13349918974505688014ULL, 2669983794901137602ULL,
|
||||
5339967589802275205ULL, 10679935179604550411ULL, 2135987035920910082ULL,
|
||||
4271974071841820164ULL, 8543948143683640329ULL, 17087896287367280659ULL,
|
||||
3417579257473456131ULL, 6835158514946912263ULL, 13670317029893824527ULL,
|
||||
2734063405978764905ULL, 5468126811957529810ULL, 10936253623915059621ULL,
|
||||
2187250724783011924ULL, 4374501449566023848ULL, 8749002899132047697ULL,
|
||||
17498005798264095394ULL, 3499601159652819078ULL, 6999202319305638157ULL,
|
||||
13998404638611276315ULL, 2799680927722255263ULL, 5599361855444510526ULL,
|
||||
11198723710889021052ULL, 2239744742177804210ULL, 4479489484355608421ULL,
|
||||
8958978968711216842ULL, 17917957937422433684ULL, 3583591587484486736ULL,
|
||||
7167183174968973473ULL, 14334366349937946947ULL, 2866873269987589389ULL,
|
||||
5733746539975178779ULL, 11467493079950357558ULL, 2293498615990071511ULL,
|
||||
4586997231980143023ULL, 9173994463960286046ULL, 1834798892792057209ULL,
|
||||
3669597785584114418ULL, 7339195571168228837ULL, 14678391142336457674ULL,
|
||||
2935678228467291534ULL, 5871356456934583069ULL, 11742712913869166139ULL,
|
||||
2348542582773833227ULL, 4697085165547666455ULL, 9394170331095332911ULL,
|
||||
1878834066219066582ULL, 3757668132438133164ULL, 7515336264876266329ULL,
|
||||
15030672529752532658ULL, 3006134505950506531ULL, 6012269011901013063ULL,
|
||||
12024538023802026126ULL, 2404907604760405225ULL, 4809815209520810450ULL,
|
||||
9619630419041620901ULL, 1923926083808324180ULL, 3847852167616648360ULL,
|
||||
7695704335233296721ULL, 15391408670466593442ULL, 3078281734093318688ULL,
|
||||
6156563468186637376ULL, 12313126936373274753ULL, 2462625387274654950ULL,
|
||||
4925250774549309901ULL, 9850501549098619803ULL, 1970100309819723960ULL,
|
||||
3940200619639447921ULL, 7880401239278895842ULL, 15760802478557791684ULL,
|
||||
3152160495711558336ULL, 6304320991423116673ULL, 12608641982846233347ULL,
|
||||
2521728396569246669ULL, 5043456793138493339ULL, 10086913586276986678ULL,
|
||||
2017382717255397335ULL, 4034765434510794671ULL, 8069530869021589342ULL,
|
||||
16139061738043178685ULL, 3227812347608635737ULL, 6455624695217271474ULL,
|
||||
12911249390434542948ULL, 2582249878086908589ULL, 5164499756173817179ULL,
|
||||
10328999512347634358ULL, 2065799902469526871ULL, 4131599804939053743ULL,
|
||||
8263199609878107486ULL, 16526399219756214973ULL, 3305279843951242994ULL,
|
||||
6610559687902485989ULL, 13221119375804971979ULL, 2644223875160994395ULL,
|
||||
5288447750321988791ULL, 10576895500643977583ULL, 2115379100128795516ULL,
|
||||
4230758200257591033ULL, 8461516400515182066ULL, 16923032801030364133ULL,
|
||||
3384606560206072826ULL, 6769213120412145653ULL, 13538426240824291306ULL,
|
||||
2707685248164858261ULL, 5415370496329716522ULL, 10830740992659433045ULL,
|
||||
2166148198531886609ULL, 4332296397063773218ULL, 8664592794127546436ULL,
|
||||
17329185588255092872ULL, 3465837117651018574ULL, 6931674235302037148ULL,
|
||||
13863348470604074297ULL, 2772669694120814859ULL, 5545339388241629719ULL,
|
||||
11090678776483259438ULL, 2218135755296651887ULL, 4436271510593303775ULL,
|
||||
8872543021186607550ULL, 17745086042373215101ULL, 3549017208474643020ULL,
|
||||
7098034416949286040ULL, 14196068833898572081ULL, 2839213766779714416ULL,
|
||||
5678427533559428832ULL, 11356855067118857664ULL, 2271371013423771532ULL,
|
||||
4542742026847543065ULL, 9085484053695086131ULL, 1817096810739017226ULL,
|
||||
3634193621478034452ULL, 7268387242956068905ULL, 14536774485912137810ULL,
|
||||
2907354897182427562ULL, 5814709794364855124ULL, 11629419588729710248ULL,
|
||||
2325883917745942049ULL, 4651767835491884099ULL, 9303535670983768199ULL,
|
||||
1860707134196753639ULL, 3721414268393507279ULL, 7442828536787014559ULL,
|
||||
14885657073574029118ULL, 2977131414714805823ULL, 5954262829429611647ULL,
|
||||
11908525658859223294ULL, 2381705131771844658ULL, 4763410263543689317ULL,
|
||||
9526820527087378635ULL, 1905364105417475727ULL, 3810728210834951454ULL,
|
||||
7621456421669902908ULL, 15242912843339805817ULL, 3048582568667961163ULL,
|
||||
6097165137335922326ULL, 12194330274671844653ULL, 2438866054934368930ULL,
|
||||
4877732109868737861ULL, 9755464219737475723ULL, 1951092843947495144ULL,
|
||||
3902185687894990289ULL, 7804371375789980578ULL, 15608742751579961156ULL,
|
||||
3121748550315992231ULL, 6243497100631984462ULL, 12486994201263968925ULL,
|
||||
2497398840252793785ULL, 4994797680505587570ULL, 9989595361011175140ULL,
|
||||
1997919072202235028ULL, 3995838144404470056ULL, 7991676288808940112ULL,
|
||||
15983352577617880224ULL, 3196670515523576044ULL, 6393341031047152089ULL,
|
||||
12786682062094304179ULL, 2557336412418860835ULL, 5114672824837721671ULL,
|
||||
10229345649675443343ULL, 2045869129935088668ULL, 4091738259870177337ULL,
|
||||
8183476519740354675ULL, 16366953039480709350ULL, 3273390607896141870ULL,
|
||||
6546781215792283740ULL, 13093562431584567480ULL, 2618712486316913496ULL,
|
||||
5237424972633826992ULL, 10474849945267653984ULL, 2094969989053530796ULL,
|
||||
4189939978107061593ULL, 8379879956214123187ULL, 16759759912428246374ULL,
|
||||
3351951982485649274ULL, 6703903964971298549ULL, 13407807929942597099ULL,
|
||||
2681561585988519419ULL, 5363123171977038839ULL, 10726246343954077679ULL,
|
||||
2145249268790815535ULL, 4290498537581631071ULL, 8580997075163262143ULL,
|
||||
17161994150326524287ULL, 3432398830065304857ULL, 6864797660130609714ULL,
|
||||
13729595320261219429ULL, 2745919064052243885ULL, 5491838128104487771ULL,
|
||||
10983676256208975543ULL, 2196735251241795108ULL, 4393470502483590217ULL,
|
||||
8786941004967180435ULL, 17573882009934360870ULL, 3514776401986872174ULL,
|
||||
7029552803973744348ULL, 14059105607947488696ULL, 2811821121589497739ULL,
|
||||
5623642243178995478ULL, 11247284486357990957ULL, 2249456897271598191ULL,
|
||||
4498913794543196382ULL, 8997827589086392765ULL, 17995655178172785531ULL,
|
||||
3599131035634557106ULL, 7198262071269114212ULL, 14396524142538228424ULL,
|
||||
2879304828507645684ULL, 5758609657015291369ULL, 11517219314030582739ULL,
|
||||
2303443862806116547ULL, 4606887725612233095ULL, 9213775451224466191ULL,
|
||||
1842755090244893238ULL, 3685510180489786476ULL, 7371020360979572953ULL,
|
||||
14742040721959145907ULL, 2948408144391829181ULL, 5896816288783658362ULL,
|
||||
11793632577567316725ULL, 2358726515513463345ULL, 4717453031026926690ULL,
|
||||
9434906062053853380ULL, 1886981212410770676ULL, 3773962424821541352ULL,
|
||||
7547924849643082704ULL, 15095849699286165408ULL, 3019169939857233081ULL,
|
||||
6038339879714466163ULL, 12076679759428932327ULL, 2415335951885786465ULL,
|
||||
4830671903771572930ULL, 9661343807543145861ULL, 1932268761508629172ULL,
|
||||
3864537523017258344ULL, 7729075046034516689ULL, 15458150092069033378ULL,
|
||||
3091630018413806675ULL, 6183260036827613351ULL, 12366520073655226703ULL,
|
||||
2473304014731045340ULL, 4946608029462090681ULL, 9893216058924181362ULL,
|
||||
1978643211784836272ULL, 3957286423569672544ULL, 7914572847139345089ULL,
|
||||
15829145694278690179ULL, 3165829138855738035ULL, 6331658277711476071ULL,
|
||||
12663316555422952143ULL, 2532663311084590428ULL, 5065326622169180857ULL,
|
||||
10130653244338361715ULL, 2026130648867672343ULL, 4052261297735344686ULL,
|
||||
8104522595470689372ULL, 16209045190941378744ULL, 3241809038188275748ULL,
|
||||
6483618076376551497ULL, 12967236152753102995ULL, 2593447230550620599ULL,
|
||||
5186894461101241198ULL, 10373788922202482396ULL, 2074757784440496479ULL,
|
||||
4149515568880992958ULL, 8299031137761985917ULL, 16598062275523971834ULL,
|
||||
3319612455104794366ULL, 6639224910209588733ULL, 13278449820419177467ULL,
|
||||
2655689964083835493ULL, 5311379928167670986ULL, 10622759856335341973ULL,
|
||||
2124551971267068394ULL, 4249103942534136789ULL, 8498207885068273579ULL,
|
||||
16996415770136547158ULL, 3399283154027309431ULL, 6798566308054618863ULL,
|
||||
13597132616109237726ULL, 2719426523221847545ULL, 5438853046443695090ULL,
|
||||
10877706092887390181ULL, 2175541218577478036ULL, 4351082437154956072ULL,
|
||||
8702164874309912144ULL, 17404329748619824289ULL, 3480865949723964857ULL,
|
||||
6961731899447929715ULL, 13923463798895859431ULL, 2784692759779171886ULL,
|
||||
5569385519558343772ULL, 11138771039116687545ULL, 2227754207823337509ULL,
|
||||
4455508415646675018ULL, 8911016831293350036ULL, 17822033662586700072ULL,
|
||||
3564406732517340014ULL, 7128813465034680029ULL, 14257626930069360058ULL,
|
||||
2851525386013872011ULL, 5703050772027744023ULL, 11406101544055488046ULL,
|
||||
2281220308811097609ULL, 4562440617622195218ULL, 9124881235244390437ULL,
|
||||
1824976247048878087ULL, 3649952494097756174ULL, 7299904988195512349ULL,
|
||||
14599809976391024699ULL, 2919961995278204939ULL, 5839923990556409879ULL,
|
||||
11679847981112819759ULL, 2335969596222563951ULL, 4671939192445127903ULL,
|
||||
9343878384890255807ULL, 1868775676978051161ULL, 3737551353956102323ULL,
|
||||
7475102707912204646ULL, 14950205415824409292ULL, 2990041083164881858ULL,
|
||||
5980082166329763716ULL, 11960164332659527433ULL, 2392032866531905486ULL,
|
||||
4784065733063810973ULL, 9568131466127621947ULL, 1913626293225524389ULL,
|
||||
3827252586451048778ULL, 7654505172902097557ULL, 15309010345804195115ULL,
|
||||
3061802069160839023ULL, 6123604138321678046ULL, 12247208276643356092ULL,
|
||||
2449441655328671218ULL, 4898883310657342436ULL, 9797766621314684873ULL,
|
||||
1959553324262936974ULL, 3919106648525873949ULL, 7838213297051747899ULL,
|
||||
15676426594103495798ULL, 3135285318820699159ULL, 6270570637641398319ULL,
|
||||
12541141275282796638ULL, 2508228255056559327ULL, 5016456510113118655ULL,
|
||||
10032913020226237310ULL, 2006582604045247462ULL, 4013165208090494924ULL,
|
||||
8026330416180989848ULL, 16052660832361979697ULL, 3210532166472395939ULL,
|
||||
6421064332944791878ULL, 12842128665889583757ULL, 2568425733177916751ULL,
|
||||
5136851466355833503ULL, 10273702932711667006ULL, 2054740586542333401ULL,
|
||||
4109481173084666802ULL, 8218962346169333605ULL, 16437924692338667210ULL,
|
||||
3287584938467733442ULL, 6575169876935466884ULL, 13150339753870933768ULL,
|
||||
2630067950774186753ULL, 5260135901548373507ULL, 10520271803096747014ULL,
|
||||
2104054360619349402ULL, 4208108721238698805ULL, 8416217442477397611ULL,
|
||||
16832434884954795223ULL, 3366486976990959044ULL, 6732973953981918089ULL,
|
||||
13465947907963836178ULL, 2693189581592767235ULL, 5386379163185534471ULL,
|
||||
10772758326371068942ULL, 2154551665274213788ULL, 4309103330548427577ULL,
|
||||
8618206661096855154ULL, 17236413322193710308ULL, 3447282664438742061ULL,
|
||||
6894565328877484123ULL, 13789130657754968246ULL, 2757826131550993649ULL,
|
||||
5515652263101987298ULL, 11031304526203974597ULL, 2206260905240794919ULL,
|
||||
4412521810481589838ULL, 8825043620963179677ULL, 17650087241926359355ULL,
|
||||
3530017448385271871ULL, 7060034896770543742ULL, 14120069793541087484ULL,
|
||||
2824013958708217496ULL, 5648027917416434993ULL, 11296055834832869987ULL,
|
||||
2259211166966573997ULL, 4518422333933147995ULL, 9036844667866295990ULL,
|
||||
18073689335732591980ULL, 3614737867146518396ULL, 7229475734293036792ULL,
|
||||
14458951468586073584ULL, 2891790293717214716ULL, 5783580587434429433ULL,
|
||||
11567161174868858867ULL, 2313432234973771773ULL, 4626864469947543547ULL,
|
||||
9253728939895087094ULL, 1850745787979017418ULL, 3701491575958034837ULL,
|
||||
7402983151916069675ULL, 14805966303832139350ULL, 2961193260766427870ULL,
|
||||
5922386521532855740ULL, 11844773043065711480ULL, 2368954608613142296ULL,
|
||||
4737909217226284592ULL, 9475818434452569184ULL, 1895163686890513836ULL,
|
||||
3790327373781027673ULL, 7580654747562055347ULL, 15161309495124110694ULL,
|
||||
3032261899024822138ULL, 6064523798049644277ULL, 12129047596099288555ULL,
|
||||
2425809519219857711ULL, 4851619038439715422ULL, 9703238076879430844ULL,
|
||||
1940647615375886168ULL, 3881295230751772337ULL, 7762590461503544675ULL,
|
||||
15525180923007089351ULL, 3105036184601417870ULL, 6210072369202835740ULL,
|
||||
12420144738405671481ULL, 2484028947681134296ULL, 4968057895362268592ULL,
|
||||
9936115790724537184ULL, 1987223158144907436ULL, 3974446316289814873ULL,
|
||||
7948892632579629747ULL, 15897785265159259495ULL, 3179557053031851899ULL,
|
||||
6359114106063703798ULL, 12718228212127407596ULL, 2543645642425481519ULL,
|
||||
5087291284850963038ULL, 10174582569701926077ULL, 2034916513940385215ULL,
|
||||
4069833027880770430ULL, 8139666055761540861ULL, 16279332111523081723ULL,
|
||||
3255866422304616344ULL, 6511732844609232689ULL, 13023465689218465379ULL,
|
||||
2604693137843693075ULL, 5209386275687386151ULL, 10418772551374772303ULL,
|
||||
2083754510274954460ULL, 4167509020549908921ULL, 8335018041099817842ULL,
|
||||
16670036082199635685ULL, 3334007216439927137ULL, 6668014432879854274ULL,
|
||||
13336028865759708548ULL, 2667205773151941709ULL, 5334411546303883419ULL,
|
||||
10668823092607766838ULL, 2133764618521553367ULL, 4267529237043106735ULL,
|
||||
8535058474086213470ULL, 17070116948172426941ULL, 3414023389634485388ULL,
|
||||
6828046779268970776ULL, 13656093558537941553ULL, 2731218711707588310ULL,
|
||||
5462437423415176621ULL, 10924874846830353242ULL, 2184974969366070648ULL,
|
||||
4369949938732141297ULL, 8739899877464282594ULL, 17479799754928565188ULL,
|
||||
3495959950985713037ULL, 6991919901971426075ULL, 13983839803942852150ULL,
|
||||
2796767960788570430ULL, 5593535921577140860ULL, 11187071843154281720ULL,
|
||||
2237414368630856344ULL, 4474828737261712688ULL, 8949657474523425376ULL,
|
||||
17899314949046850752ULL, 3579862989809370150ULL, 7159725979618740301ULL,
|
||||
14319451959237480602ULL, 2863890391847496120ULL, 5727780783694992240ULL,
|
||||
11455561567389984481ULL, 2291112313477996896ULL, 4582224626955993792ULL,
|
||||
9164449253911987585ULL, 1832889850782397517ULL, 3665779701564795034ULL,
|
||||
7331559403129590068ULL, 14663118806259180136ULL, 2932623761251836027ULL,
|
||||
5865247522503672054ULL, 11730495045007344109ULL, 2346099009001468821ULL,
|
||||
4692198018002937643ULL, 9384396036005875287ULL, 1876879207201175057ULL,
|
||||
3753758414402350114ULL, 7507516828804700229ULL, 15015033657609400459ULL,
|
||||
3003006731521880091ULL, 6006013463043760183ULL, 12012026926087520367ULL,
|
||||
2402405385217504073ULL, 4804810770435008147ULL, 9609621540870016294ULL,
|
||||
1921924308174003258ULL, 3843848616348006517ULL, 7687697232696013035ULL,
|
||||
15375394465392026070ULL, 3075078893078405214ULL, 6150157786156810428ULL,
|
||||
12300315572313620856ULL, 2460063114462724171ULL, 4920126228925448342ULL,
|
||||
9840252457850896685ULL, 1968050491570179337ULL, 3936100983140358674ULL,
|
||||
7872201966280717348ULL, 15744403932561434696ULL, 3148880786512286939ULL,
|
||||
6297761573024573878ULL, 12595523146049147757ULL, 2519104629209829551ULL,
|
||||
5038209258419659102ULL, 10076418516839318205ULL, 2015283703367863641ULL,
|
||||
4030567406735727282ULL, 8061134813471454564ULL, 16122269626942909129ULL,
|
||||
3224453925388581825ULL, 6448907850777163651ULL, 12897815701554327303ULL,
|
||||
2579563140310865460ULL, 5159126280621730921ULL, 10318252561243461842ULL,
|
||||
2063650512248692368ULL, 4127301024497384737ULL, 8254602048994769474ULL,
|
||||
16509204097989538948ULL, 3301840819597907789ULL, 6603681639195815579ULL,
|
||||
13207363278391631158ULL, 2641472655678326231ULL, 5282945311356652463ULL,
|
||||
10565890622713304927ULL, 2113178124542660985ULL, 4226356249085321970ULL,
|
||||
8452712498170643941ULL, 16905424996341287883ULL, 3381084999268257576ULL,
|
||||
6762169998536515153ULL, 13524339997073030306ULL, 2704867999414606061ULL,
|
||||
5409735998829212122ULL, 10819471997658424245ULL, 2163894399531684849ULL,
|
||||
4327788799063369698ULL, 8655577598126739396ULL, 17311155196253478792ULL,
|
||||
3462231039250695758ULL, 6924462078501391516ULL, 13848924157002783033ULL,
|
||||
2769784831400556606ULL, 5539569662801113213ULL, 11079139325602226427ULL,
|
||||
2215827865120445285ULL, 4431655730240890570ULL, 8863311460481781141ULL,
|
||||
17726622920963562283ULL, 3545324584192712456ULL, 7090649168385424913ULL,
|
||||
14181298336770849826ULL, 2836259667354169965ULL, 5672519334708339930ULL,
|
||||
11345038669416679861ULL, 2269007733883335972ULL, 4538015467766671944ULL,
|
||||
9076030935533343889ULL, 18152061871066687778ULL, 3630412374213337555ULL,
|
||||
7260824748426675111ULL, 14521649496853350222ULL, 2904329899370670044ULL,
|
||||
5808659798741340089ULL, 11617319597482680178ULL, 2323463919496536035ULL,
|
||||
4646927838993072071ULL, 9293855677986144142ULL, 1858771135597228828ULL,
|
||||
3717542271194457656ULL, 7435084542388915313ULL, 14870169084777830627ULL,
|
||||
2974033816955566125ULL, 5948067633911132251ULL, 11896135267822264502ULL,
|
||||
2379227053564452900ULL, 4758454107128905800ULL, 9516908214257811601ULL,
|
||||
1903381642851562320ULL, 3806763285703124640ULL, 7613526571406249281ULL,
|
||||
15227053142812498563ULL, 3045410628562499712ULL, 6090821257124999425ULL,
|
||||
12181642514249998850ULL, 2436328502849999770ULL, 4872657005699999540ULL,
|
||||
9745314011399999080ULL, 1949062802279999816ULL, 3898125604559999632ULL,
|
||||
7796251209119999264ULL, 15592502418239998528ULL, 3118500483647999705ULL,
|
||||
6237000967295999411ULL, 12474001934591998822ULL, 2494800386918399764ULL,
|
||||
4989600773836799529ULL, 9979201547673599058ULL, 1995840309534719811ULL,
|
||||
3991680619069439623ULL, 7983361238138879246ULL, 15966722476277758493ULL,
|
||||
3193344495255551698ULL, 6386688990511103397ULL, 12773377981022206794ULL,
|
||||
2554675596204441358ULL, 5109351192408882717ULL, 10218702384817765435ULL,
|
||||
2043740476963553087ULL, 4087480953927106174ULL, 8174961907854212348ULL,
|
||||
16349923815708424697ULL, 3269984763141684939ULL, 6539969526283369878ULL,
|
||||
13079939052566739757ULL, 2615987810513347951ULL, 5231975621026695903ULL,
|
||||
10463951242053391806ULL, 2092790248410678361ULL, 4185580496821356722ULL,
|
||||
8371160993642713444ULL, 16742321987285426889ULL, 3348464397457085377ULL,
|
||||
6696928794914170755ULL, 13393857589828341511ULL, 2678771517965668302ULL,
|
||||
5357543035931336604ULL, 10715086071862673209ULL, 2143017214372534641ULL,
|
||||
4286034428745069283ULL, 8572068857490138567ULL, 17144137714980277135ULL,
|
||||
3428827542996055427ULL, 6857655085992110854ULL, 13715310171984221708ULL,
|
||||
2743062034396844341ULL, 5486124068793688683ULL, 10972248137587377366ULL,
|
||||
2194449627517475473ULL, 4388899255034950946ULL, 8777798510069901893ULL,
|
||||
17555597020139803786ULL, 3511119404027960757ULL, 7022238808055921514ULL,
|
||||
14044477616111843029ULL, 2808895523222368605ULL, 5617791046444737211ULL,
|
||||
11235582092889474423ULL, 2247116418577894884ULL, 4494232837155789769ULL,
|
||||
8988465674311579538ULL, 17976931348623159077ULL, 3595386269724631815ULL,
|
||||
7190772539449263630ULL, 14381545078898527261ULL, 2876309015779705452ULL,
|
||||
5752618031559410904ULL, 11505236063118821809ULL, 2301047212623764361ULL,
|
||||
4602094425247528723ULL, 9204188850495057447ULL, 1840837770099011489ULL,
|
||||
3681675540198022979ULL, 7363351080396045958ULL,
|
||||
};
|
||||
|
||||
static const int32_t Formatter_TensExponentTable[] =
|
||||
{
|
||||
-323, -323, -322, -322, -322, -322, -321, -321, -321, -320, -320, -320,
|
||||
-319, -319, -319, -319, -318, -318, -318, -317, -317, -317, -316, -316,
|
||||
-316, -316, -315, -315, -315, -314, -314, -314, -313, -313, -313, -313,
|
||||
-312, -312, -312, -311, -311, -311, -310, -310, -310, -310, -309, -309,
|
||||
-309, -308, -308, -308, -307, -307, -307, -307, -306, -306, -306, -305,
|
||||
-305, -305, -304, -304, -304, -304, -303, -303, -303, -302, -302, -302,
|
||||
-301, -301, -301, -301, -300, -300, -300, -299, -299, -299, -298, -298,
|
||||
-298, -298, -297, -297, -297, -296, -296, -296, -295, -295, -295, -295,
|
||||
-294, -294, -294, -293, -293, -293, -292, -292, -292, -291, -291, -291,
|
||||
-291, -290, -290, -290, -289, -289, -289, -288, -288, -288, -288, -287,
|
||||
-287, -287, -286, -286, -286, -285, -285, -285, -285, -284, -284, -284,
|
||||
-283, -283, -283, -282, -282, -282, -282, -281, -281, -281, -280, -280,
|
||||
-280, -279, -279, -279, -279, -278, -278, -278, -277, -277, -277, -276,
|
||||
-276, -276, -276, -275, -275, -275, -274, -274, -274, -273, -273, -273,
|
||||
-273, -272, -272, -272, -271, -271, -271, -270, -270, -270, -270, -269,
|
||||
-269, -269, -268, -268, -268, -267, -267, -267, -267, -266, -266, -266,
|
||||
-265, -265, -265, -264, -264, -264, -263, -263, -263, -263, -262, -262,
|
||||
-262, -261, -261, -261, -260, -260, -260, -260, -259, -259, -259, -258,
|
||||
-258, -258, -257, -257, -257, -257, -256, -256, -256, -255, -255, -255,
|
||||
-254, -254, -254, -254, -253, -253, -253, -252, -252, -252, -251, -251,
|
||||
-251, -251, -250, -250, -250, -249, -249, -249, -248, -248, -248, -248,
|
||||
-247, -247, -247, -246, -246, -246, -245, -245, -245, -245, -244, -244,
|
||||
-244, -243, -243, -243, -242, -242, -242, -242, -241, -241, -241, -240,
|
||||
-240, -240, -239, -239, -239, -239, -238, -238, -238, -237, -237, -237,
|
||||
-236, -236, -236, -235, -235, -235, -235, -234, -234, -234, -233, -233,
|
||||
-233, -232, -232, -232, -232, -231, -231, -231, -230, -230, -230, -229,
|
||||
-229, -229, -229, -228, -228, -228, -227, -227, -227, -226, -226, -226,
|
||||
-226, -225, -225, -225, -224, -224, -224, -223, -223, -223, -223, -222,
|
||||
-222, -222, -221, -221, -221, -220, -220, -220, -220, -219, -219, -219,
|
||||
-218, -218, -218, -217, -217, -217, -217, -216, -216, -216, -215, -215,
|
||||
-215, -214, -214, -214, -214, -213, -213, -213, -212, -212, -212, -211,
|
||||
-211, -211, -211, -210, -210, -210, -209, -209, -209, -208, -208, -208,
|
||||
-208, -207, -207, -207, -206, -206, -206, -205, -205, -205, -204, -204,
|
||||
-204, -204, -203, -203, -203, -202, -202, -202, -201, -201, -201, -201,
|
||||
-200, -200, -200, -199, -199, -199, -198, -198, -198, -198, -197, -197,
|
||||
-197, -196, -196, -196, -195, -195, -195, -195, -194, -194, -194, -193,
|
||||
-193, -193, -192, -192, -192, -192, -191, -191, -191, -190, -190, -190,
|
||||
-189, -189, -189, -189, -188, -188, -188, -187, -187, -187, -186, -186,
|
||||
-186, -186, -185, -185, -185, -184, -184, -184, -183, -183, -183, -183,
|
||||
-182, -182, -182, -181, -181, -181, -180, -180, -180, -180, -179, -179,
|
||||
-179, -178, -178, -178, -177, -177, -177, -176, -176, -176, -176, -175,
|
||||
-175, -175, -174, -174, -174, -173, -173, -173, -173, -172, -172, -172,
|
||||
-171, -171, -171, -170, -170, -170, -170, -169, -169, -169, -168, -168,
|
||||
-168, -167, -167, -167, -167, -166, -166, -166, -165, -165, -165, -164,
|
||||
-164, -164, -164, -163, -163, -163, -162, -162, -162, -161, -161, -161,
|
||||
-161, -160, -160, -160, -159, -159, -159, -158, -158, -158, -158, -157,
|
||||
-157, -157, -156, -156, -156, -155, -155, -155, -155, -154, -154, -154,
|
||||
-153, -153, -153, -152, -152, -152, -152, -151, -151, -151, -150, -150,
|
||||
-150, -149, -149, -149, -149, -148, -148, -148, -147, -147, -147, -146,
|
||||
-146, -146, -145, -145, -145, -145, -144, -144, -144, -143, -143, -143,
|
||||
-142, -142, -142, -142, -141, -141, -141, -140, -140, -140, -139, -139,
|
||||
-139, -139, -138, -138, -138, -137, -137, -137, -136, -136, -136, -136,
|
||||
-135, -135, -135, -134, -134, -134, -133, -133, -133, -133, -132, -132,
|
||||
-132, -131, -131, -131, -130, -130, -130, -130, -129, -129, -129, -128,
|
||||
-128, -128, -127, -127, -127, -127, -126, -126, -126, -125, -125, -125,
|
||||
-124, -124, -124, -124, -123, -123, -123, -122, -122, -122, -121, -121,
|
||||
-121, -121, -120, -120, -120, -119, -119, -119, -118, -118, -118, -117,
|
||||
-117, -117, -117, -116, -116, -116, -115, -115, -115, -114, -114, -114,
|
||||
-114, -113, -113, -113, -112, -112, -112, -111, -111, -111, -111, -110,
|
||||
-110, -110, -109, -109, -109, -108, -108, -108, -108, -107, -107, -107,
|
||||
-106, -106, -106, -105, -105, -105, -105, -104, -104, -104, -103, -103,
|
||||
-103, -102, -102, -102, -102, -101, -101, -101, -100, -100, -100, -99,
|
||||
-99, -99, -99, -98, -98, -98, -97, -97, -97, -96, -96, -96,
|
||||
-96, -95, -95, -95, -94, -94, -94, -93, -93, -93, -93, -92,
|
||||
-92, -92, -91, -91, -91, -90, -90, -90, -89, -89, -89, -89,
|
||||
-88, -88, -88, -87, -87, -87, -86, -86, -86, -86, -85, -85,
|
||||
-85, -84, -84, -84, -83, -83, -83, -83, -82, -82, -82, -81,
|
||||
-81, -81, -80, -80, -80, -80, -79, -79, -79, -78, -78, -78,
|
||||
-77, -77, -77, -77, -76, -76, -76, -75, -75, -75, -74, -74,
|
||||
-74, -74, -73, -73, -73, -72, -72, -72, -71, -71, -71, -71,
|
||||
-70, -70, -70, -69, -69, -69, -68, -68, -68, -68, -67, -67,
|
||||
-67, -66, -66, -66, -65, -65, -65, -65, -64, -64, -64, -63,
|
||||
-63, -63, -62, -62, -62, -62, -61, -61, -61, -60, -60, -60,
|
||||
-59, -59, -59, -58, -58, -58, -58, -57, -57, -57, -56, -56,
|
||||
-56, -55, -55, -55, -55, -54, -54, -54, -53, -53, -53, -52,
|
||||
-52, -52, -52, -51, -51, -51, -50, -50, -50, -49, -49, -49,
|
||||
-49, -48, -48, -48, -47, -47, -47, -46, -46, -46, -46, -45,
|
||||
-45, -45, -44, -44, -44, -43, -43, -43, -43, -42, -42, -42,
|
||||
-41, -41, -41, -40, -40, -40, -40, -39, -39, -39, -38, -38,
|
||||
-38, -37, -37, -37, -37, -36, -36, -36, -35, -35, -35, -34,
|
||||
-34, -34, -34, -33, -33, -33, -32, -32, -32, -31, -31, -31,
|
||||
-30, -30, -30, -30, -29, -29, -29, -28, -28, -28, -27, -27,
|
||||
-27, -27, -26, -26, -26, -25, -25, -25, -24, -24, -24, -24,
|
||||
-23, -23, -23, -22, -22, -22, -21, -21, -21, -21, -20, -20,
|
||||
-20, -19, -19, -19, -18, -18, -18, -18, -17, -17, -17, -16,
|
||||
-16, -16, -15, -15, -15, -15, -14, -14, -14, -13, -13, -13,
|
||||
-12, -12, -12, -12, -11, -11, -11, -10, -10, -10, -9, -9,
|
||||
-9, -9, -8, -8, -8, -7, -7, -7, -6, -6, -6, -6,
|
||||
-5, -5, -5, -4, -4, -4, -3, -3, -3, -3, -2, -2,
|
||||
-2, -1, -1, -1, 0, 0, 0, 1, 1, 1, 1, 2,
|
||||
2, 2, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5,
|
||||
6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 9, 9,
|
||||
9, 10, 10, 10, 10, 11, 11, 11, 12, 12, 12, 13,
|
||||
13, 13, 13, 14, 14, 14, 15, 15, 15, 16, 16, 16,
|
||||
16, 17, 17, 17, 18, 18, 18, 19, 19, 19, 19, 20,
|
||||
20, 20, 21, 21, 21, 22, 22, 22, 22, 23, 23, 23,
|
||||
24, 24, 24, 25, 25, 25, 25, 26, 26, 26, 27, 27,
|
||||
27, 28, 28, 28, 29, 29, 29, 29, 30, 30, 30, 31,
|
||||
31, 31, 32, 32, 32, 32, 33, 33, 33, 34, 34, 34,
|
||||
35, 35, 35, 35, 36, 36, 36, 37, 37, 37, 38, 38,
|
||||
38, 38, 39, 39, 39, 40, 40, 40, 41, 41, 41, 41,
|
||||
42, 42, 42, 43, 43, 43, 44, 44, 44, 44, 45, 45,
|
||||
45, 46, 46, 46, 47, 47, 47, 47, 48, 48, 48, 49,
|
||||
49, 49, 50, 50, 50, 50, 51, 51, 51, 52, 52, 52,
|
||||
53, 53, 53, 53, 54, 54, 54, 55, 55, 55, 56, 56,
|
||||
56, 56, 57, 57, 57, 58, 58, 58, 59, 59, 59, 60,
|
||||
60, 60, 60, 61, 61, 61, 62, 62, 62, 63, 63, 63,
|
||||
63, 64, 64, 64, 65, 65, 65, 66, 66, 66, 66, 67,
|
||||
67, 67, 68, 68, 68, 69, 69, 69, 69, 70, 70, 70,
|
||||
71, 71, 71, 72, 72, 72, 72, 73, 73, 73, 74, 74,
|
||||
74, 75, 75, 75, 75, 76, 76, 76, 77, 77, 77, 78,
|
||||
78, 78, 78, 79, 79, 79, 80, 80, 80, 81, 81, 81,
|
||||
81, 82, 82, 82, 83, 83, 83, 84, 84, 84, 84, 85,
|
||||
85, 85, 86, 86, 86, 87, 87, 87, 88, 88, 88, 88,
|
||||
89, 89, 89, 90, 90, 90, 91, 91, 91, 91, 92, 92,
|
||||
92, 93, 93, 93, 94, 94, 94, 94, 95, 95, 95, 96,
|
||||
96, 96, 97, 97, 97, 97, 98, 98, 98, 99, 99, 99,
|
||||
100, 100, 100, 100, 101, 101, 101, 102, 102, 102, 103, 103,
|
||||
103, 103, 104, 104, 104, 105, 105, 105, 106, 106, 106, 106,
|
||||
107, 107, 107, 108, 108, 108, 109, 109, 109, 109, 110, 110,
|
||||
110, 111, 111, 111, 112, 112, 112, 112, 113, 113, 113, 114,
|
||||
114, 114, 115, 115, 115, 116, 116, 116, 116, 117, 117, 117,
|
||||
118, 118, 118, 119, 119, 119, 119, 120, 120, 120, 121, 121,
|
||||
121, 122, 122, 122, 122, 123, 123, 123, 124, 124, 124, 125,
|
||||
125, 125, 125, 126, 126, 126, 127, 127, 127, 128, 128, 128,
|
||||
128, 129, 129, 129, 130, 130, 130, 131, 131, 131, 131, 132,
|
||||
132, 132, 133, 133, 133, 134, 134, 134, 134, 135, 135, 135,
|
||||
136, 136, 136, 137, 137, 137, 137, 138, 138, 138, 139, 139,
|
||||
139, 140, 140, 140, 140, 141, 141, 141, 142, 142, 142, 143,
|
||||
143, 143, 143, 144, 144, 144, 145, 145, 145, 146, 146, 146,
|
||||
147, 147, 147, 147, 148, 148, 148, 149, 149, 149, 150, 150,
|
||||
150, 150, 151, 151, 151, 152, 152, 152, 153, 153, 153, 153,
|
||||
154, 154, 154, 155, 155, 155, 156, 156, 156, 156, 157, 157,
|
||||
157, 158, 158, 158, 159, 159, 159, 159, 160, 160, 160, 161,
|
||||
161, 161, 162, 162, 162, 162, 163, 163, 163, 164, 164, 164,
|
||||
165, 165, 165, 165, 166, 166, 166, 167, 167, 167, 168, 168,
|
||||
168, 168, 169, 169, 169, 170, 170, 170, 171, 171, 171, 171,
|
||||
172, 172, 172, 173, 173, 173, 174, 174, 174, 175, 175, 175,
|
||||
175, 176, 176, 176, 177, 177, 177, 178, 178, 178, 178, 179,
|
||||
179, 179, 180, 180, 180, 181, 181, 181, 181, 182, 182, 182,
|
||||
183, 183, 183, 184, 184, 184, 184, 185, 185, 185, 186, 186,
|
||||
186, 187, 187, 187, 187, 188, 188, 188, 189, 189, 189, 190,
|
||||
190, 190, 190, 191, 191, 191, 192, 192, 192, 193, 193, 193,
|
||||
193, 194, 194, 194, 195, 195, 195, 196, 196, 196, 196, 197,
|
||||
197, 197, 198, 198, 198, 199, 199, 199, 199, 200, 200, 200,
|
||||
201, 201, 201, 202, 202, 202, 202, 203, 203, 203, 204, 204,
|
||||
204, 205, 205, 205, 206, 206, 206, 206, 207, 207, 207, 208,
|
||||
208, 208, 209, 209, 209, 209, 210, 210, 210, 211, 211, 211,
|
||||
212, 212, 212, 212, 213, 213, 213, 214, 214, 214, 215, 215,
|
||||
215, 215, 216, 216, 216, 217, 217, 217, 218, 218, 218, 218,
|
||||
219, 219, 219, 220, 220, 220, 221, 221, 221, 221, 222, 222,
|
||||
222, 223, 223, 223, 224, 224, 224, 224, 225, 225, 225, 226,
|
||||
226, 226, 227, 227, 227, 227, 228, 228, 228, 229, 229, 229,
|
||||
230, 230, 230, 230, 231, 231, 231, 232, 232, 232, 233, 233,
|
||||
233, 234, 234, 234, 234, 235, 235, 235, 236, 236, 236, 237,
|
||||
237, 237, 237, 238, 238, 238, 239, 239, 239, 240, 240, 240,
|
||||
240, 241, 241, 241, 242, 242, 242, 243, 243, 243, 243, 244,
|
||||
244, 244, 245, 245, 245, 246, 246, 246, 246, 247, 247, 247,
|
||||
248, 248, 248, 249, 249, 249, 249, 250, 250, 250, 251, 251,
|
||||
251, 252, 252, 252, 252, 253, 253, 253, 254, 254, 254, 255,
|
||||
255, 255, 255, 256, 256, 256, 257, 257, 257, 258, 258, 258,
|
||||
258, 259, 259, 259, 260, 260, 260, 261, 261, 261, 261, 262,
|
||||
262, 262, 263, 263, 263, 264, 264, 264, 265, 265, 265, 265,
|
||||
266, 266, 266, 267, 267, 267, 268, 268, 268, 268, 269, 269,
|
||||
269, 270, 270, 270, 271, 271, 271, 271, 272, 272, 272, 273,
|
||||
273, 273, 274, 274, 274, 274, 275, 275, 275, 276, 276, 276,
|
||||
277, 277, 277, 277, 278, 278, 278, 279, 279, 279, 280, 280,
|
||||
280, 280, 281, 281, 281, 282, 282, 282, 283, 283, 283, 283,
|
||||
284, 284, 284, 285, 285, 285, 286, 286, 286, 286, 287, 287,
|
||||
287, 288, 288, 288, 289, 289, 289, 289, 290, 290, 290, 291,
|
||||
291, 291, 292, 292, 292, 293, 293, 293,
|
||||
};
|
||||
|
||||
static const int16_t Formatter_DigitLowerTable[] =
|
||||
{
|
||||
'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'
|
||||
};
|
||||
|
||||
static const int16_t Formatter_DigitUpperTable[] =
|
||||
{
|
||||
'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'
|
||||
};
|
||||
|
||||
static const int64_t Formatter_TenPowersList[] =
|
||||
{
|
||||
1LL,
|
||||
10LL,
|
||||
100LL,
|
||||
1000LL,
|
||||
10000LL,
|
||||
100000LL,
|
||||
1000000LL,
|
||||
10000000LL,
|
||||
100000000LL,
|
||||
1000000000LL,
|
||||
10000000000LL,
|
||||
100000000000LL,
|
||||
1000000000000LL,
|
||||
10000000000000LL,
|
||||
100000000000000LL,
|
||||
1000000000000000LL,
|
||||
10000000000000000LL,
|
||||
100000000000000000LL,
|
||||
1000000000000000000LL,
|
||||
};
|
||||
|
||||
// DecHexDigits s a translation table from a decimal number to its
|
||||
// digits hexadecimal representation (e.g. DecHexDigits [34] = 0x34).
|
||||
static const int32_t Formatter_DecHexDigits[] =
|
||||
{
|
||||
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09,
|
||||
0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19,
|
||||
0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29,
|
||||
0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39,
|
||||
0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49,
|
||||
0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59,
|
||||
0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69,
|
||||
0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79,
|
||||
0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89,
|
||||
0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99,
|
||||
};
|
||||
|
||||
#endif
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,105 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
#include "il2cpp-blob.h"
|
||||
#include "il2cpp-metadata.h"
|
||||
|
||||
struct Il2CppClass;
|
||||
struct MethodInfo;
|
||||
struct Il2CppType;
|
||||
|
||||
typedef struct Il2CppArrayType
|
||||
{
|
||||
const Il2CppType* etype;
|
||||
uint8_t rank;
|
||||
uint8_t numsizes;
|
||||
uint8_t numlobounds;
|
||||
int *sizes;
|
||||
int *lobounds;
|
||||
} Il2CppArrayType;
|
||||
|
||||
typedef struct Il2CppGenericInst
|
||||
{
|
||||
uint32_t type_argc;
|
||||
const Il2CppType **type_argv;
|
||||
} Il2CppGenericInst;
|
||||
|
||||
typedef struct Il2CppGenericContext
|
||||
{
|
||||
/* The instantiation corresponding to the class generic parameters */
|
||||
const Il2CppGenericInst *class_inst;
|
||||
/* The instantiation corresponding to the method generic parameters */
|
||||
const Il2CppGenericInst *method_inst;
|
||||
} Il2CppGenericContext;
|
||||
|
||||
typedef struct Il2CppGenericParameter
|
||||
{
|
||||
GenericContainerIndex ownerIndex; /* Type or method this parameter was defined in. */
|
||||
StringIndex nameIndex;
|
||||
GenericParameterConstraintIndex constraintsStart;
|
||||
int16_t constraintsCount;
|
||||
uint16_t num;
|
||||
uint16_t flags;
|
||||
} Il2CppGenericParameter;
|
||||
|
||||
typedef struct Il2CppGenericContainer
|
||||
{
|
||||
/* index of the generic type definition or the generic method definition corresponding to this container */
|
||||
int32_t ownerIndex; // either index into Il2CppClass metadata array or Il2CppMethodDefinition array
|
||||
int32_t type_argc;
|
||||
/* If true, we're a generic method, otherwise a generic type definition. */
|
||||
int32_t is_method;
|
||||
/* Our type parameters. */
|
||||
GenericParameterIndex genericParameterStart;
|
||||
} Il2CppGenericContainer;
|
||||
|
||||
typedef struct Il2CppGenericClass
|
||||
{
|
||||
TypeDefinitionIndex typeDefinitionIndex; /* the generic type definition */
|
||||
Il2CppGenericContext context; /* a context that contains the type instantiation doesn't contain any method instantiation */
|
||||
Il2CppClass *cached_class; /* if present, the Il2CppClass corresponding to the instantiation. */
|
||||
} Il2CppGenericClass;
|
||||
|
||||
typedef struct Il2CppGenericMethod
|
||||
{
|
||||
const MethodInfo* methodDefinition;
|
||||
Il2CppGenericContext context;
|
||||
} Il2CppGenericMethod;
|
||||
|
||||
typedef struct Il2CppType
|
||||
{
|
||||
union
|
||||
{
|
||||
// We have this dummy field first because pre C99 compilers (MSVC) can only initializer the first value in a union.
|
||||
void* dummy;
|
||||
TypeDefinitionIndex klassIndex; /* for VALUETYPE and CLASS */
|
||||
const Il2CppType *type; /* for PTR and SZARRAY */
|
||||
Il2CppArrayType *array; /* for ARRAY */
|
||||
//MonoMethodSignature *method;
|
||||
GenericParameterIndex genericParameterIndex; /* for VAR and MVAR */
|
||||
Il2CppGenericClass *generic_class; /* for GENERICINST */
|
||||
} data;
|
||||
unsigned int attrs : 16; /* param attributes or field flags */
|
||||
Il2CppTypeEnum type : 8;
|
||||
unsigned int num_mods : 6; /* max 64 modifiers follow at the end */
|
||||
unsigned int byref : 1;
|
||||
unsigned int pinned : 1; /* valid when included in a local var signature */
|
||||
//MonoCustomMod modifiers [MONO_ZERO_LEN_ARRAY]; /* this may grow */
|
||||
} Il2CppType;
|
||||
|
||||
typedef enum Il2CppCallConvention
|
||||
{
|
||||
IL2CPP_CALL_DEFAULT,
|
||||
IL2CPP_CALL_C,
|
||||
IL2CPP_CALL_STDCALL,
|
||||
IL2CPP_CALL_THISCALL,
|
||||
IL2CPP_CALL_FASTCALL,
|
||||
IL2CPP_CALL_VARARG
|
||||
} Il2CppCallConvention;
|
||||
|
||||
typedef enum Il2CppCharSet
|
||||
{
|
||||
CHARSET_ANSI,
|
||||
CHARSET_UNICODE,
|
||||
CHARSET_NOT_SPECIFIED
|
||||
} Il2CppCharSet;
|
||||
@@ -0,0 +1,6 @@
|
||||
#pragma once
|
||||
#include "il2cpp-config.h"
|
||||
#include <string>
|
||||
|
||||
typedef std::basic_string<Il2CppChar> UTF16String;
|
||||
typedef std::basic_string<Il2CppNativeChar> Il2CppNativeString;
|
||||
@@ -0,0 +1,152 @@
|
||||
#pragma once
|
||||
|
||||
/*
|
||||
* Field Attributes (21.1.5).
|
||||
*/
|
||||
|
||||
#define FIELD_ATTRIBUTE_FIELD_ACCESS_MASK 0x0007
|
||||
#define FIELD_ATTRIBUTE_COMPILER_CONTROLLED 0x0000
|
||||
#define FIELD_ATTRIBUTE_PRIVATE 0x0001
|
||||
#define FIELD_ATTRIBUTE_FAM_AND_ASSEM 0x0002
|
||||
#define FIELD_ATTRIBUTE_ASSEMBLY 0x0003
|
||||
#define FIELD_ATTRIBUTE_FAMILY 0x0004
|
||||
#define FIELD_ATTRIBUTE_FAM_OR_ASSEM 0x0005
|
||||
#define FIELD_ATTRIBUTE_PUBLIC 0x0006
|
||||
|
||||
#define FIELD_ATTRIBUTE_STATIC 0x0010
|
||||
#define FIELD_ATTRIBUTE_INIT_ONLY 0x0020
|
||||
#define FIELD_ATTRIBUTE_LITERAL 0x0040
|
||||
#define FIELD_ATTRIBUTE_NOT_SERIALIZED 0x0080
|
||||
#define FIELD_ATTRIBUTE_SPECIAL_NAME 0x0200
|
||||
#define FIELD_ATTRIBUTE_PINVOKE_IMPL 0x2000
|
||||
|
||||
/* For runtime use only */
|
||||
#define FIELD_ATTRIBUTE_RESERVED_MASK 0x9500
|
||||
#define FIELD_ATTRIBUTE_RT_SPECIAL_NAME 0x0400
|
||||
#define FIELD_ATTRIBUTE_HAS_FIELD_MARSHAL 0x1000
|
||||
#define FIELD_ATTRIBUTE_HAS_DEFAULT 0x8000
|
||||
#define FIELD_ATTRIBUTE_HAS_FIELD_RVA 0x0100
|
||||
|
||||
/*
|
||||
* Method Attributes (22.1.9)
|
||||
*/
|
||||
|
||||
#define METHOD_IMPL_ATTRIBUTE_CODE_TYPE_MASK 0x0003
|
||||
#define METHOD_IMPL_ATTRIBUTE_IL 0x0000
|
||||
#define METHOD_IMPL_ATTRIBUTE_NATIVE 0x0001
|
||||
#define METHOD_IMPL_ATTRIBUTE_OPTIL 0x0002
|
||||
#define METHOD_IMPL_ATTRIBUTE_RUNTIME 0x0003
|
||||
|
||||
#define METHOD_IMPL_ATTRIBUTE_MANAGED_MASK 0x0004
|
||||
#define METHOD_IMPL_ATTRIBUTE_UNMANAGED 0x0004
|
||||
#define METHOD_IMPL_ATTRIBUTE_MANAGED 0x0000
|
||||
|
||||
#define METHOD_IMPL_ATTRIBUTE_FORWARD_REF 0x0010
|
||||
#define METHOD_IMPL_ATTRIBUTE_PRESERVE_SIG 0x0080
|
||||
#define METHOD_IMPL_ATTRIBUTE_INTERNAL_CALL 0x1000
|
||||
#define METHOD_IMPL_ATTRIBUTE_SYNCHRONIZED 0x0020
|
||||
#define METHOD_IMPL_ATTRIBUTE_NOINLINING 0x0008
|
||||
#define METHOD_IMPL_ATTRIBUTE_MAX_METHOD_IMPL_VAL 0xffff
|
||||
|
||||
#define METHOD_ATTRIBUTE_MEMBER_ACCESS_MASK 0x0007
|
||||
#define METHOD_ATTRIBUTE_COMPILER_CONTROLLED 0x0000
|
||||
#define METHOD_ATTRIBUTE_PRIVATE 0x0001
|
||||
#define METHOD_ATTRIBUTE_FAM_AND_ASSEM 0x0002
|
||||
#define METHOD_ATTRIBUTE_ASSEM 0x0003
|
||||
#define METHOD_ATTRIBUTE_FAMILY 0x0004
|
||||
#define METHOD_ATTRIBUTE_FAM_OR_ASSEM 0x0005
|
||||
#define METHOD_ATTRIBUTE_PUBLIC 0x0006
|
||||
|
||||
#define METHOD_ATTRIBUTE_STATIC 0x0010
|
||||
#define METHOD_ATTRIBUTE_FINAL 0x0020
|
||||
#define METHOD_ATTRIBUTE_VIRTUAL 0x0040
|
||||
#define METHOD_ATTRIBUTE_HIDE_BY_SIG 0x0080
|
||||
|
||||
#define METHOD_ATTRIBUTE_VTABLE_LAYOUT_MASK 0x0100
|
||||
#define METHOD_ATTRIBUTE_REUSE_SLOT 0x0000
|
||||
#define METHOD_ATTRIBUTE_NEW_SLOT 0x0100
|
||||
|
||||
#define METHOD_ATTRIBUTE_STRICT 0x0200
|
||||
#define METHOD_ATTRIBUTE_ABSTRACT 0x0400
|
||||
#define METHOD_ATTRIBUTE_SPECIAL_NAME 0x0800
|
||||
|
||||
#define METHOD_ATTRIBUTE_PINVOKE_IMPL 0x2000
|
||||
#define METHOD_ATTRIBUTE_UNMANAGED_EXPORT 0x0008
|
||||
|
||||
/*
|
||||
* For runtime use only
|
||||
*/
|
||||
#define METHOD_ATTRIBUTE_RESERVED_MASK 0xd000
|
||||
#define METHOD_ATTRIBUTE_RT_SPECIAL_NAME 0x1000
|
||||
#define METHOD_ATTRIBUTE_HAS_SECURITY 0x4000
|
||||
#define METHOD_ATTRIBUTE_REQUIRE_SEC_OBJECT 0x8000
|
||||
|
||||
/*
|
||||
* Type Attributes (21.1.13).
|
||||
*/
|
||||
#define TYPE_ATTRIBUTE_VISIBILITY_MASK 0x00000007
|
||||
#define TYPE_ATTRIBUTE_NOT_PUBLIC 0x00000000
|
||||
#define TYPE_ATTRIBUTE_PUBLIC 0x00000001
|
||||
#define TYPE_ATTRIBUTE_NESTED_PUBLIC 0x00000002
|
||||
#define TYPE_ATTRIBUTE_NESTED_PRIVATE 0x00000003
|
||||
#define TYPE_ATTRIBUTE_NESTED_FAMILY 0x00000004
|
||||
#define TYPE_ATTRIBUTE_NESTED_ASSEMBLY 0x00000005
|
||||
#define TYPE_ATTRIBUTE_NESTED_FAM_AND_ASSEM 0x00000006
|
||||
#define TYPE_ATTRIBUTE_NESTED_FAM_OR_ASSEM 0x00000007
|
||||
|
||||
#define TYPE_ATTRIBUTE_LAYOUT_MASK 0x00000018
|
||||
#define TYPE_ATTRIBUTE_AUTO_LAYOUT 0x00000000
|
||||
#define TYPE_ATTRIBUTE_SEQUENTIAL_LAYOUT 0x00000008
|
||||
#define TYPE_ATTRIBUTE_EXPLICIT_LAYOUT 0x00000010
|
||||
|
||||
#define TYPE_ATTRIBUTE_CLASS_SEMANTIC_MASK 0x00000020
|
||||
#define TYPE_ATTRIBUTE_CLASS 0x00000000
|
||||
#define TYPE_ATTRIBUTE_INTERFACE 0x00000020
|
||||
|
||||
#define TYPE_ATTRIBUTE_ABSTRACT 0x00000080
|
||||
#define TYPE_ATTRIBUTE_SEALED 0x00000100
|
||||
#define TYPE_ATTRIBUTE_SPECIAL_NAME 0x00000400
|
||||
|
||||
#define TYPE_ATTRIBUTE_IMPORT 0x00001000
|
||||
#define TYPE_ATTRIBUTE_SERIALIZABLE 0x00002000
|
||||
|
||||
#define TYPE_ATTRIBUTE_STRING_FORMAT_MASK 0x00030000
|
||||
#define TYPE_ATTRIBUTE_ANSI_CLASS 0x00000000
|
||||
#define TYPE_ATTRIBUTE_UNICODE_CLASS 0x00010000
|
||||
#define TYPE_ATTRIBUTE_AUTO_CLASS 0x00020000
|
||||
|
||||
#define TYPE_ATTRIBUTE_BEFORE_FIELD_INIT 0x00100000
|
||||
#define TYPE_ATTRIBUTE_FORWARDER 0x00200000
|
||||
|
||||
#define TYPE_ATTRIBUTE_RESERVED_MASK 0x00040800
|
||||
#define TYPE_ATTRIBUTE_RT_SPECIAL_NAME 0x00000800
|
||||
#define TYPE_ATTRIBUTE_HAS_SECURITY 0x00040000
|
||||
|
||||
/*
|
||||
* Flags for Params (22.1.12)
|
||||
*/
|
||||
#define PARAM_ATTRIBUTE_IN 0x0001
|
||||
#define PARAM_ATTRIBUTE_OUT 0x0002
|
||||
#define PARAM_ATTRIBUTE_OPTIONAL 0x0010
|
||||
#define PARAM_ATTRIBUTE_RESERVED_MASK 0xf000
|
||||
#define PARAM_ATTRIBUTE_HAS_DEFAULT 0x1000
|
||||
#define PARAM_ATTRIBUTE_HAS_FIELD_MARSHAL 0x2000
|
||||
#define PARAM_ATTRIBUTE_UNUSED 0xcfe0
|
||||
|
||||
// Flags for Generic Parameters (II.23.1.7)
|
||||
#define IL2CPP_GENERIC_PARAMETER_ATTRIBUTE_NON_VARIANT 0x00
|
||||
#define IL2CPP_GENERIC_PARAMETER_ATTRIBUTE_COVARIANT 0x01
|
||||
#define IL2CPP_GENERIC_PARAMETER_ATTRIBUTE_CONTRAVARIANT 0x02
|
||||
#define IL2CPP_GENERIC_PARAMETER_ATTRIBUTE_VARIANCE_MASK 0x03
|
||||
#define IL2CPP_GENERIC_PARAMETER_ATTRIBUTE_REFERENCE_TYPE_CONSTRAINT 0x04
|
||||
#define IL2CPP_GENERIC_PARAMETER_ATTRIBUTE_NOT_NULLABLE_VALUE_TYPE_CONSTRAINT 0x08
|
||||
#define IL2CPP_GENERIC_PARAMETER_ATTRIBUTE_DEFAULT_CONSTRUCTOR_CONSTRAINT 0x10
|
||||
#define IL2CPP_GENERIC_PARAMETER_ATTRIBUTE_SPECIAL_CONSTRAINT_MASK 0x1C
|
||||
|
||||
/**
|
||||
* 21.5 AssemblyRefs
|
||||
*/
|
||||
#define ASSEMBLYREF_FULL_PUBLIC_KEY_FLAG 0x00000001
|
||||
#define ASSEMBLYREF_RETARGETABLE_FLAG 0x00000100
|
||||
#define ASSEMBLYREF_ENABLEJITCOMPILE_TRACKING_FLAG 0x00008000
|
||||
#define ASSEMBLYREF_DISABLEJITCOMPILE_OPTIMIZER_FLAG 0x00004000
|
||||
@@ -0,0 +1,69 @@
|
||||
#pragma once
|
||||
|
||||
#include "il2cpp-config.h"
|
||||
|
||||
// This file is a compile-time abstraction for VM support needed by code in the os and utils namespaces that is used by both the
|
||||
// libil2cpp and the libmono runtimes. Code in those namespaces should never depend up on the vm namespace directly.
|
||||
|
||||
#if defined(RUNTIME_MONO)
|
||||
#include "mono-api.h"
|
||||
#include "il2cpp-mono-support.h"
|
||||
#include <cassert>
|
||||
#define IL2CPP_VM_RAISE_EXCEPTION(exception) mono_raise_exception(exception)
|
||||
#define IL2CPP_VM_RAISE_COM_EXCEPTION(hresult, defaultToCOMException) assert(false && "COM exceptions are not implemented yet.")
|
||||
#define IL2CPP_VM_RAISE_UNAUTHORIZED_ACCESS_EXCEPTION(message) mono_raise_exception(mono_exception_from_name_msg(mono_get_corlib (), "System.Security", "UnauthorizedAccessException", message))
|
||||
#define IL2CPP_VM_RAISE_PLATFORM_NOT_SUPPORTED_EXCEPTION(message) mono_raise_exception(mono_exception_from_name_msg(mono_get_corlib (), "System.Security", "PlatformNotSupportedException", message))
|
||||
#define IL2CPP_VM_RAISE_IF_FAILED(hresult, defaultToCOMException) assert(false && "COM exceptions are not implemented yet.")
|
||||
#define IL2CPP_VM_STRING_EMPTY() mono_string_empty(g_MonoDomain)
|
||||
#define IL2CPP_VM_STRING_NEW_UTF16(value, length) mono_string_new_utf16(g_MonoDomain, value, length)
|
||||
#define IL2CPP_VM_STRING_NEW_LEN(value, length) mono_string_new_len(g_MonoDomain, value, length);
|
||||
#define IL2CPP_VM_NOT_SUPPORTED(func, reason) mono_raise_exception(mono_get_exception_not_supported(NOTSUPPORTEDICALLMESSAGE ("IL2CPP", #func, #reason)))
|
||||
#define IL2CPP_VM_NOT_IMPLEMENTED(func) mono_raise_exception(mono_get_exception_not_supported(NOTSUPPORTEDICALLMESSAGE ("IL2CPP", #func)))
|
||||
#define IL2CPP_VM_METHOD_METADATA_FROM_INDEX(isGeneric, methodIndex) isGeneric ? GenericMethodFromIndex(methodIndex) : MethodFromIndex(methodIndex)
|
||||
#define IL2CPP_VM_SHUTDOWN() do { if (mono_runtime_try_shutdown()) mono_runtime_quit(); } while(0)
|
||||
#define IL2CPP_VM_GET_CREATE_CCW_EXCEPTION(ex) NULL
|
||||
// #define IL2CPP_VM_PROFILE_FILEIO(kind, count) if (mono_profiler_get_events () & MONO_PROFILE_FILEIO) mono_profiler_fileio (kind, count);
|
||||
// FIXME fix profiler under mono
|
||||
#define IL2CPP_VM_PROFILE_FILEIO(kind, count)
|
||||
|
||||
typedef MonoString VmString;
|
||||
typedef MonoMethod VmMethod;
|
||||
#elif RUNTIME_NONE // OS layer compiled with no runtime
|
||||
#define IL2CPP_VM_RAISE_EXCEPTION(exception) IL2CPP_ASSERT(0 && "This is not implemented without a VM runtime backend.")
|
||||
#define IL2CPP_VM_RAISE_COM_EXCEPTION(hresult, defaultToCOMException) IL2CPP_ASSERT(0 && "This is not implemented without a VM runtime backend.")
|
||||
#define IL2CPP_VM_RAISE_UNAUTHORIZED_ACCESS_EXCEPTION(message) IL2CPP_ASSERT(0 && message)
|
||||
#define IL2CPP_VM_RAISE_PLATFORM_NOT_SUPPORTED_EXCEPTION(message) IL2CPP_ASSERT(0 && message)
|
||||
#define IL2CPP_VM_RAISE_IF_FAILED(hresult, defaultToCOMException) IL2CPP_ASSERT(0 && "This is not implemented without a VM runtime backend.")
|
||||
#define IL2CPP_VM_STRING_EMPTY() NULL
|
||||
#define IL2CPP_VM_STRING_NEW_UTF16(value, length) NULL
|
||||
#define IL2CPP_VM_STRING_NEW_LEN(value, length) NULL
|
||||
#define IL2CPP_VM_NOT_SUPPORTED(func, reason) IL2CPP_ASSERT(0 && "This is not implemented without a VM runtime backend.")
|
||||
#define IL2CPP_VM_NOT_IMPLEMENTED(func) IL2CPP_ASSERT(0 && "This is not implemented without a VM runtime backend.")
|
||||
#define IL2CPP_VM_METHOD_METADATA_FROM_INDEX(isGeneric, methodIndex) IL2CPP_ASSERT(0 && "This is not implemented wihout a VM runtime backend.")
|
||||
#define IL2CPP_VM_SHUTDOWN() IL2CPP_ASSERT(0 && "This is not implemented without a VM runtime backend.")
|
||||
#define IL2CPP_VM_GET_CREATE_CCW_EXCEPTION(ex) NULL
|
||||
#define IL2CPP_VM_PROFILE_FILEIO(kind, count) NULL
|
||||
#else // Assume the libil2cpp runtime
|
||||
#include "vm/Exception.h"
|
||||
#include "vm/MetadataCache.h"
|
||||
#include "vm/StackTrace.h"
|
||||
#include "vm/String.h"
|
||||
#include "vm/Profiler.h"
|
||||
#define IL2CPP_VM_RAISE_EXCEPTION(exception) il2cpp::vm::Exception::Raise(exception)
|
||||
#define IL2CPP_VM_RAISE_COM_EXCEPTION(hresult, defaultToCOMException) il2cpp::vm::Exception::Raise(hresult, defaultToCOMException)
|
||||
#define IL2CPP_VM_RAISE_UNAUTHORIZED_ACCESS_EXCEPTION(message) il2cpp::vm::Exception::Raise(il2cpp::vm::Exception::GetUnauthorizedAccessException(message))
|
||||
#define IL2CPP_VM_RAISE_PLATFORM_NOT_SUPPORTED_EXCEPTION(message) il2cpp::vm::Exception::Raise(il2cpp::vm::Exception::GetPlatformNotSupportedException(message))
|
||||
#define IL2CPP_VM_RAISE_IF_FAILED(hresult, defaultToCOMException) il2cpp::vm::Exception::RaiseIfFailed(hresult, defaultToCOMException)
|
||||
#define IL2CPP_VM_STRING_EMPTY() il2cpp::vm::String::Empty()
|
||||
#define IL2CPP_VM_STRING_NEW_UTF16(value, length) il2cpp::vm::String::NewUtf16(value, length)
|
||||
#define IL2CPP_VM_STRING_NEW_LEN(value, length) il2cpp::vm::String::NewLen(value, length)
|
||||
#define IL2CPP_VM_NOT_SUPPORTED(func, reason) NOT_SUPPORTED_IL2CPP(func, reason)
|
||||
#define IL2CPP_VM_NOT_IMPLEMENTED(func) IL2CPP_NOT_IMPLEMENTED_ICALL(func)
|
||||
#define IL2CPP_VM_METHOD_METADATA_FROM_INDEX(isGeneric, methodIndex) il2cpp::vm::MetadataCache::GetMethodInfoFromMethodDefinitionIndex (methodIndex)
|
||||
#define IL2CPP_VM_SHUTDOWN() il2cpp_shutdown()
|
||||
#define IL2CPP_VM_GET_CREATE_CCW_EXCEPTION(ex) vm::CCW::GetOrCreate(reinterpret_cast<Il2CppObject*>(ex), Il2CppIUnknown::IID)
|
||||
#define IL2CPP_VM_PROFILE_FILEIO(kind, count) if (il2cpp::vm::Profiler::ProfileFileIO()) il2cpp::vm::Profiler::FileIO(kind, count);
|
||||
|
||||
typedef Il2CppString VmString;
|
||||
typedef MethodInfo VmMethod;
|
||||
#endif
|
||||
@@ -0,0 +1,158 @@
|
||||
LIBRARY libil2cpp.dll
|
||||
EXPORTS
|
||||
|
||||
il2cpp_init
|
||||
il2cpp_shutdown
|
||||
il2cpp_set_config_dir
|
||||
il2cpp_set_data_dir
|
||||
il2cpp_set_temp_dir
|
||||
il2cpp_set_commandline_arguments
|
||||
il2cpp_set_memory_callbacks
|
||||
il2cpp_get_corlib
|
||||
il2cpp_add_internal_call
|
||||
il2cpp_resolve_icall
|
||||
|
||||
il2cpp_alloc
|
||||
il2cpp_free
|
||||
|
||||
il2cpp_array_class_get
|
||||
il2cpp_array_length
|
||||
il2cpp_array_get_byte_length
|
||||
il2cpp_array_new
|
||||
il2cpp_array_new_specific
|
||||
il2cpp_array_new_full
|
||||
il2cpp_bounded_array_class_get
|
||||
il2cpp_array_element_size
|
||||
|
||||
il2cpp_assembly_get_image
|
||||
|
||||
il2cpp_class_enum_basetype
|
||||
il2cpp_class_is_generic
|
||||
il2cpp_class_is_assignable_from
|
||||
il2cpp_class_is_subclass_of
|
||||
il2cpp_class_from_il2cpp_type
|
||||
il2cpp_class_from_name
|
||||
il2cpp_class_from_system_type
|
||||
il2cpp_class_get_declaring_type
|
||||
il2cpp_class_get_element_class
|
||||
il2cpp_class_get_fields
|
||||
il2cpp_class_get_nested_types
|
||||
il2cpp_class_get_field_from_name
|
||||
il2cpp_class_get_interfaces
|
||||
il2cpp_class_get_methods
|
||||
il2cpp_class_get_method_from_name
|
||||
il2cpp_class_get_name
|
||||
il2cpp_class_get_namespace
|
||||
il2cpp_class_get_parent
|
||||
il2cpp_class_get_properties
|
||||
il2cpp_class_get_property_from_name
|
||||
il2cpp_class_instance_size
|
||||
il2cpp_class_num_fields
|
||||
il2cpp_class_is_valuetype
|
||||
il2cpp_class_is_blittable
|
||||
il2cpp_class_value_size
|
||||
il2cpp_class_get_flags
|
||||
il2cpp_class_is_abstract
|
||||
il2cpp_class_is_interface
|
||||
il2cpp_class_array_element_size
|
||||
il2cpp_class_from_type
|
||||
il2cpp_class_get_type
|
||||
il2cpp_class_has_attribute
|
||||
il2cpp_class_has_references
|
||||
il2cpp_class_is_enum
|
||||
il2cpp_class_get_image
|
||||
il2cpp_class_get_assemblyname
|
||||
|
||||
il2cpp_domain_get
|
||||
il2cpp_domain_assembly_open
|
||||
|
||||
il2cpp_raise_exception
|
||||
il2cpp_exception_from_name_msg
|
||||
il2cpp_get_exception_argument_null
|
||||
|
||||
il2cpp_field_get_flags
|
||||
il2cpp_field_get_name
|
||||
il2cpp_field_get_parent
|
||||
il2cpp_field_get_offset
|
||||
il2cpp_field_get_type
|
||||
il2cpp_field_get_value
|
||||
il2cpp_field_get_value_object
|
||||
il2cpp_field_has_attribute
|
||||
il2cpp_field_set_value
|
||||
il2cpp_field_static_get_value
|
||||
il2cpp_field_static_set_value
|
||||
il2cpp_field_set_value_object
|
||||
|
||||
il2cpp_gc_collect
|
||||
il2cpp_gc_collect_a_little
|
||||
il2cpp_gc_disable
|
||||
il2cpp_gc_enable
|
||||
il2cpp_gc_get_used_size
|
||||
il2cpp_gc_get_heap_size
|
||||
|
||||
il2cpp_gchandle_new
|
||||
il2cpp_gchandle_new_weakref
|
||||
il2cpp_gchandle_get_target
|
||||
il2cpp_gchandle_free
|
||||
|
||||
il2cpp_unity_liveness_calculation_begin
|
||||
il2cpp_unity_liveness_calculation_end
|
||||
il2cpp_unity_liveness_calculation_from_root
|
||||
il2cpp_unity_liveness_calculation_from_statics
|
||||
|
||||
il2cpp_method_get_return_type
|
||||
il2cpp_method_get_name
|
||||
il2cpp_method_get_object
|
||||
il2cpp_method_is_instance
|
||||
il2cpp_method_get_param_count
|
||||
il2cpp_method_get_param
|
||||
il2cpp_method_get_class
|
||||
il2cpp_method_has_attribute
|
||||
|
||||
il2cpp_profiler_install
|
||||
il2cpp_profiler_set_events
|
||||
il2cpp_profiler_install_enter_leave
|
||||
il2cpp_profiler_install_allocation
|
||||
il2cpp_profiler_install_gc
|
||||
|
||||
il2cpp_property_get_flags
|
||||
il2cpp_property_get_get_method
|
||||
il2cpp_property_get_set_method
|
||||
il2cpp_property_get_name
|
||||
il2cpp_property_get_parent
|
||||
|
||||
il2cpp_object_get_class
|
||||
il2cpp_object_get_size
|
||||
il2cpp_object_get_virtual_method
|
||||
il2cpp_object_new
|
||||
il2cpp_object_unbox
|
||||
|
||||
il2cpp_value_box
|
||||
|
||||
il2cpp_runtime_invoke
|
||||
il2cpp_runtime_invoke_convert_args
|
||||
il2cpp_runtime_class_init
|
||||
il2cpp_runtime_object_init
|
||||
il2cpp_runtime_object_init_exception
|
||||
il2cpp_runtime_unhandled_exception_policy_set
|
||||
|
||||
il2cpp_string_length
|
||||
il2cpp_string_chars
|
||||
il2cpp_string_new
|
||||
il2cpp_string_new_len
|
||||
il2cpp_string_new_utf16
|
||||
il2cpp_string_new_wrapper
|
||||
|
||||
il2cpp_thread_current
|
||||
il2cpp_thread_attach
|
||||
il2cpp_thread_detach
|
||||
|
||||
il2cpp_type_get_object
|
||||
il2cpp_type_get_type
|
||||
il2cpp_type_get_class_or_element_class
|
||||
il2cpp_type_get_name
|
||||
il2cpp_type_equals
|
||||
|
||||
il2cpp_unity_install_unitytls_interface
|
||||
|
||||
____visualizerHelpersPreventLinkerStripping @65535 NONAME DATA
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,25 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
#include "os/Mutex.h"
|
||||
struct Il2CppClass;
|
||||
|
||||
namespace il2cpp
|
||||
{
|
||||
namespace metadata
|
||||
{
|
||||
class ArrayMetadata
|
||||
{
|
||||
public:
|
||||
static Il2CppClass* GetBoundedArrayClass(Il2CppClass* elementClass, uint32_t rank, bool bounded);
|
||||
|
||||
typedef void(*ArrayTypeWalkCallback)(Il2CppClass* type, void* context);
|
||||
static void WalkSZArrays(ArrayTypeWalkCallback callback, void* context);
|
||||
static void WalkArrays(ArrayTypeWalkCallback callback, void* context);
|
||||
|
||||
// called as part of Class::Init with lock held
|
||||
static void SetupArrayInterfaces(Il2CppClass* klass, const il2cpp::os::FastAutoLock& lock);
|
||||
static void SetupArrayVTable(Il2CppClass* klass, const il2cpp::os::FastAutoLock& lock);
|
||||
};
|
||||
} /* namespace vm */
|
||||
} /* namespace il2cpp */
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user