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; } }