//
// Microsoft Research Singularity
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// Heap for memory passed between processes.
//
using System;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Threading;
using System.GCs;
using System.Collections;
using System.Diagnostics;
namespace Microsoft.Singularity.Memory
{
//
// Non-garbage collected heap for memory transferred between processes.
//
[NoCCtor]
[CLSCompliant(false)]
public partial class SharedHeap {
//
// Structure for tracking allocated regions.
//
[StructLayout(LayoutKind.Sequential)]
[RequiredByBartok]
public partial struct Allocation {
private UIntPtr data; // Address of the allocated memory region.
private UIntPtr size; // Size of above in bytes.
private unsafe UIntPtr type; // Type information.
internal unsafe Allocation *next; // Next on owner's list.
private unsafe Allocation *prev; // Previous on owner's list.
private int owner;
}
}
}