93 lines
2.6 KiB
C#
93 lines
2.6 KiB
C#
/*******************************************************************/
|
|
/* WARNING */
|
|
/* This file should be identical in the Bartok and Singularity */
|
|
/* depots. Master copy resides in Bartok Depot. Changes should be */
|
|
/* made to Bartok Depot and propagated to Singularity Depot. */
|
|
/*******************************************************************/
|
|
|
|
//
|
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
|
//
|
|
|
|
namespace Microsoft.Bartok.Runtime {
|
|
|
|
using System;
|
|
using System.Runtime.CompilerServices;
|
|
using System.Threading;
|
|
|
|
internal sealed class Magic {
|
|
|
|
internal static extern UIntPtr OffsetOfVTable {
|
|
[NoHeapAllocation]
|
|
[Intrinsic]
|
|
get;
|
|
}
|
|
|
|
[Intrinsic]
|
|
[NoHeapAllocation]
|
|
internal static extern UIntPtr addressOf(Object o);
|
|
|
|
[Intrinsic]
|
|
[NoHeapAllocation]
|
|
internal static unsafe extern UIntPtr *toPointer(ref Object o);
|
|
|
|
[Intrinsic]
|
|
[NoHeapAllocation]
|
|
internal static unsafe extern UIntPtr *toPointer(ref VTable o);
|
|
|
|
[Intrinsic]
|
|
[NoHeapAllocation]
|
|
internal static extern Object fromAddress(UIntPtr v);
|
|
|
|
[Intrinsic]
|
|
[NoHeapAllocation]
|
|
internal static extern Thread toThread(Object o);
|
|
|
|
[Intrinsic]
|
|
[NoHeapAllocation]
|
|
internal static extern Monitor toMonitor(Object o);
|
|
|
|
[Intrinsic]
|
|
[NoHeapAllocation]
|
|
internal static extern EMU toEMU(Object o);
|
|
|
|
[Intrinsic]
|
|
[NoHeapAllocation]
|
|
internal static extern VTable toVTable(Object o);
|
|
|
|
[Intrinsic]
|
|
[NoHeapAllocation]
|
|
internal static extern Array toArray(Object o);
|
|
|
|
[Intrinsic]
|
|
[NoHeapAllocation]
|
|
internal static extern String toString(Object o);
|
|
|
|
[Intrinsic]
|
|
[NoHeapAllocation]
|
|
internal static extern RuntimeType toRuntimeType(Object o);
|
|
|
|
[Intrinsic]
|
|
[NoHeapAllocation]
|
|
internal static extern Type toType(Object o);
|
|
|
|
[Intrinsic]
|
|
[NoHeapAllocation]
|
|
internal static extern uint[] toUIntArray(Object o);
|
|
|
|
[Intrinsic]
|
|
internal static extern WeakReference toWeakReference(Object o);
|
|
|
|
[Intrinsic]
|
|
internal static extern void calli(System.UIntPtr p);
|
|
|
|
[Intrinsic]
|
|
internal static extern void calli(System.UIntPtr p, System.UIntPtr v);
|
|
|
|
[Intrinsic]
|
|
internal static extern void callFinalizer(Object o);
|
|
|
|
}
|
|
|
|
}
|