using System.Runtime.InteropServices;
namespace BurnOutSharp.Models.LinearExecutable
{
///
/// The entry table contains object and offset information that is used to resolve
/// fixup references to the entry points within this module. Not all entry points
/// in the entry table will be exported, some entry points will only be used
/// within the module. An ordinal number is used to index into the entry table.
/// The entry table entries are numbered starting from one.
///
/// The list of entries are compressed into 'bundles', where possible. The entries
/// within each bundle are all the same size. A bundle starts with a count field
/// which indicates the number of entries in the bundle. The count is followed by
/// a type field which identifies the bundle format. This provides both a means
/// for saving space as well as a mechanism for extending the bundle types.
///
///
///
[StructLayout(LayoutKind.Sequential)]
public sealed class EntryTableBundle
{
///
/// Number of entries.
///
///
/// This is the number of entries in this bundle.
///
/// A zero value for the number of entries identifies the end of the
/// entry table. There is no further bundle information when the number
/// of entries is zero. In other words the entry table is terminated by
/// a single zero byte.
///
/// For , this is the number of unused
/// entries to skip.
/// For , this is the number of 16-bit
/// entries in this bundle. The flags and offset value are repeated this
/// number of times.
/// For , this is the number
/// of 286 call gate entries in this bundle. The flags, callgate, and offset
/// value are repeated this number of times.
/// For , this is the number
/// of 32-bit entries in this bundle. The flags and offset value are repeated
/// this number of times.
/// For , this field is reserved for future use.
///
public byte Entries;
///
/// This defines the bundle type which determines the contents of the BUNDLE INFO.
///
public BundleType BundleType;
///
/// Table entries in the bundle
///
public EntryTableEntry[] TableEntries;
}
}