mirror of
https://github.com/SabreTools/SabreTools.Serialization.git
synced 2026-04-05 22:01:33 +00:00
This change looks dramatic, but it's just separating out the already-split namespaces into separate top-level folders. In theory, every single one could be built into their own Nuget package. `SabreTools.Serialization` still builds the normal Nuget package that is used by all other projects and includes all namespaces.
62 lines
2.1 KiB
C#
62 lines
2.1 KiB
C#
namespace SabreTools.Data.Models.XboxExecutable
|
|
{
|
|
/// <summary>
|
|
/// XBox Executable format section header
|
|
/// </summary>
|
|
/// <see href="https://www.caustik.com/cxbx/download/xbe.htm"/>
|
|
/// <see href="https://github.com/Cxbx-Reloaded/Cxbx-Reloaded/blob/master/src/common/xbe/Xbe.h"/>
|
|
/// <see cref="COFF.SectionHeader"/>
|
|
public class SectionHeader
|
|
{
|
|
/// <summary>
|
|
/// Various flags for this .XBE section.
|
|
/// </summary>
|
|
public SectionFlags SectionFlags { get; set; }
|
|
|
|
/// <summary>
|
|
/// Address of memory to load this section at.
|
|
/// </summary>
|
|
public uint VirtualAddress { get; set; }
|
|
|
|
/// <summary>
|
|
/// Number of bytes in memory to fill with this section.
|
|
/// </summary>
|
|
public uint VirtualSize { get; set; }
|
|
|
|
/// <summary>
|
|
/// File address where this section resides in the .XBE file.
|
|
/// </summary>
|
|
public uint RawAddress { get; set; }
|
|
|
|
/// <summary>
|
|
/// Number of bytes of this section that exist in the .XBE file.
|
|
/// </summary>
|
|
public uint RawSize { get; set; }
|
|
|
|
/// <summary>
|
|
/// Address to the name for this section, after the .XBE is loaded into memory.
|
|
/// </summary>
|
|
public uint SectionNameAddress { get; set; }
|
|
|
|
/// <summary>
|
|
/// It is typically safe to set this to zero.
|
|
/// </summary>
|
|
public uint SectionNameReferenceCount { get; set; }
|
|
|
|
/// <summary>
|
|
/// It is typically safe to set this to point to a 2-byte WORD in memory with value zero.
|
|
/// </summary>
|
|
public uint HeadSharedPageReferenceCountAddress { get; set; }
|
|
|
|
/// <summary>
|
|
/// It is typically safe to set this to point to a 2-byte WORD in memory with value zero.
|
|
/// </summary>
|
|
public uint TailSharedPageReferenceCountAddress { get; set; }
|
|
|
|
/// <summary>
|
|
/// 20-byte digest for this section. For unsigned .XBE files, it is safe to set this to zeros.
|
|
/// </summary>
|
|
public byte[] SectionDigest { get; set; } = new byte[20];
|
|
}
|
|
}
|