53 lines
1.1 KiB
C#
53 lines
1.1 KiB
C#
|
using System;
|
||
|
using System.Runtime.InteropServices;
|
||
|
|
||
|
namespace Lucidiot.Raima {
|
||
|
public enum FileStatus : byte {
|
||
|
Open = (byte)'o',
|
||
|
Closed = (byte)'c',
|
||
|
}
|
||
|
|
||
|
public enum FileType : byte {
|
||
|
CompressedData = (byte)'c',
|
||
|
Data = (byte)'d',
|
||
|
Key = (byte)'k',
|
||
|
Overflow = (byte)'o',
|
||
|
}
|
||
|
|
||
|
[Flags]
|
||
|
public enum FileEntryOptions : ushort {
|
||
|
None = 0x0000,
|
||
|
Static = 0x0002,
|
||
|
Local = 0x0004,
|
||
|
Compressed = 0x0040,
|
||
|
}
|
||
|
|
||
|
[StructLayout(LayoutKind.Explicit, Size = 60)]
|
||
|
public struct FileEntry {
|
||
|
[FieldOffset(0)]
|
||
|
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 48)]
|
||
|
public string Name;
|
||
|
|
||
|
[FieldOffset(48)]
|
||
|
public short Descriptor;
|
||
|
|
||
|
[FieldOffset(50)]
|
||
|
public FileStatus Status;
|
||
|
|
||
|
[FieldOffset(51)]
|
||
|
public FileType Type;
|
||
|
|
||
|
[FieldOffset(52)]
|
||
|
public short Slots;
|
||
|
|
||
|
[FieldOffset(54)]
|
||
|
public short SlotSize;
|
||
|
|
||
|
[FieldOffset(56)]
|
||
|
public short PageSize;
|
||
|
|
||
|
[FieldOffset(58)]
|
||
|
public FileEntryOptions Options;
|
||
|
}
|
||
|
}
|