diff options
author | Jan Kotas <jkotas@microsoft.com> | 2017-02-24 05:50:04 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-02-24 05:50:04 +0300 |
commit | fc6e62cbb6731f6971ce3ba76e1a79b6c3d99fcd (patch) | |
tree | 452bc3574b149d7b82a9e0436e09363464e78f6e /src/Runtime.Base | |
parent | 02194dbca0555c8d5dfce76d07c14e08ce50d3c4 (diff) | |
parent | 0123e898b2d521c47a0db31caecd98ca46543c84 (diff) |
Merge pull request #2810 from dotnet/nmirror
Merge nmirror to master
Diffstat (limited to 'src/Runtime.Base')
-rw-r--r-- | src/Runtime.Base/src/System/Runtime/InternalCalls.cs | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/Runtime.Base/src/System/Runtime/InternalCalls.cs b/src/Runtime.Base/src/System/Runtime/InternalCalls.cs index 5c104b0b3..68a9cdbcc 100644 --- a/src/Runtime.Base/src/System/Runtime/InternalCalls.cs +++ b/src/Runtime.Base/src/System/Runtime/InternalCalls.cs @@ -55,6 +55,18 @@ namespace System.Runtime [DllImport(Redhawk.BaseName, CallingConvention = CallingConvention.Cdecl)] private static extern long RhpGetGcTotalMemory(); + [RuntimeExport("RhStartNoGCRegion")] + internal static Int32 RhStartNoGCRegion(Int64 totalSize, bool hasLohSize, Int64 lohSize, bool disallowFullBlockingGC) + { + return RhpStartNoGCRegion(totalSize, hasLohSize, lohSize, disallowFullBlockingGC); + } + + [RuntimeExport("RhEndNoGCRegion")] + internal static Int32 RhEndNoGCRegion() + { + return RhpEndNoGCRegion(); + } + // // internalcalls for System.Runtime.__Finalizer. // @@ -417,5 +429,15 @@ namespace System.Runtime [DllImport(Redhawk.BaseName, CallingConvention = CallingConvention.Cdecl)] internal static extern IntPtr RhAllocateThunksMapping(); + + // Enters a no GC region, possibly doing a blocking GC if there is not enough + // memory available to satisfy the caller's request. + [DllImport(Redhawk.BaseName, CallingConvention = CallingConvention.Cdecl)] + internal static extern Int32 RhpStartNoGCRegion(Int64 totalSize, bool hasLohSize, Int64 lohSize, bool disallowFullBlockingGC); + + // Exits a no GC region, possibly doing a GC to clean up the garbage that + // the caller allocated. + [DllImport(Redhawk.BaseName, CallingConvention = CallingConvention.Cdecl)] + internal static extern Int32 RhpEndNoGCRegion(); } } |