Cosmos/source/Cosmos.Core/DataLookupTable.cs
2015-07-29 15:35:47 -04:00

31 lines
819 B
C#

using System.Runtime.InteropServices;
namespace Cosmos.Core
{
// The DataLookupTable (DLT) basically is a linked list.
internal unsafe struct DataLookupTable
{
public const int EntriesPerTable = 169;
public DataLookupTable* Previous;
public DataLookupTable* Next;
public DataLookupEntry FirstEntry;
public unsafe DataLookupEntry* GetEntry(int index)
{
fixed (DataLookupEntry* xFirstEntryPtr = &FirstEntry)
{
return &xFirstEntryPtr[index];
}
}
public void* GetFirstByteAfterTable()
{
fixed (DataLookupTable* xThisPtr = &this)
{
return (void*)(uint)(xThisPtr + GlobalSystemInfo.TotalDataLookupTableSize);
}
}
}
}