2025-09-26 13:06:18 -04:00
|
|
|
|
namespace SabreTools.Data.Models.NewExecutable
|
2025-09-26 12:09:34 -04:00
|
|
|
|
{
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// The location and size of the per-segment data is defined in the
|
|
|
|
|
|
/// segment table entry for the segment. If the segment has relocation
|
|
|
|
|
|
/// fixups, as defined in the segment table entry flags, they directly
|
|
|
|
|
|
/// follow the segment data in the file. The relocation fixup information
|
|
|
|
|
|
/// is defined as follows:
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <remarks>
|
|
|
|
|
|
/// To find the relocation data for a segment, seek to:
|
|
|
|
|
|
/// <see cref="SegmentTableEntry.Offset"/>
|
|
|
|
|
|
/// * (1 << <see cref="ExecutableHeader.SegmentAlignmentShiftCount"/>)
|
2025-10-30 22:47:17 -04:00
|
|
|
|
/// + <see cref="SegmentTableEntry.Length"/>
|
2025-09-26 12:09:34 -04:00
|
|
|
|
/// </remarks>
|
|
|
|
|
|
/// <see href="https://web.archive.org/web/20240422070115/http://bytepointer.com/resources/win16_ne_exe_format_win3.0.htm"/>
|
|
|
|
|
|
/// <see href="https://wiki.osdev.org/NE"/>
|
|
|
|
|
|
public sealed class PerSegmentData
|
|
|
|
|
|
{
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Number of relocation records that follow.
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public ushort RelocationRecordCount { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// A table of relocation records follows.
|
|
|
|
|
|
/// </summary>
|
2025-10-31 13:59:28 -04:00
|
|
|
|
public RelocationRecord[] RelocationRecords { get; set; } = [];
|
2025-09-26 12:09:34 -04:00
|
|
|
|
}
|
|
|
|
|
|
}
|