internal static void Initialize(int count, UIntPtr size) { writeBufferSize = ((int)size * count) / UIntPtr.Size; chunkSize = (int)size; UIntPtr memorySize = (UIntPtr)UIntPtr.Size * (uint)writeBufferSize; writeBuffer = (UIntPtr *) PageManager.AllocateNonheapMemory(null, memorySize); VTable.Assert(writeBuffer != null); AdjustChunkSize(1); SequentialStoreBuffer.instance = (SequentialStoreBuffer) BootstrapMemory.Allocate(typeof(SequentialStoreBuffer)); }
private static void InstallRemSet() { switch (GC.remsetType) { case RemSetType.SSB: { SequentialStoreBuffer.Initialize(); installedRemSet = SequentialStoreBuffer.instance; break; } case RemSetType.Cards: { CardTable.Initialize(); installedRemSet = CardTable.instance; break; } default: { VTable.NotReached("Unsupported remembered set: " + GC.remsetType); break; } } }