using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace UniversalEditor.ObjectModels.Executable { [Flags()] public enum ExecutableSectionCharacteristics : uint { None = 0x00000000, /// /// Reserved. /// TypeNoPad = 0x00000008, /// /// Section contains code. /// ContainsCode = 0x00000020, /// /// Section contains initialized data. /// ContainsInitializedData = 0x00000040, /// /// Section contains uninitialized data. /// ContainsUninitializedData = 0x00000080, /// /// Reserved. /// LinkOther = 0x00000100, /// /// Section contains comments or some other type of information. /// LinkInformation = 0x00000200, /// /// Section contents will not become part of image. /// LinkRemove = 0x00000800, /// /// Section contents comdat. /// LinkComdat = 0x00001000, /// /// Reset speculative exceptions handling bits in the TLB entries for this section. /// ResetSpeculativeExceptions = 0x00004000, /// /// Section content can be accessed relative to GP /// GPRelative = 0x00008000, MemoryFarData = 0x00008000, MemoryPurgeable = 0x00020000, Memory16Bit = 0x00020000, MemoryLocked = 0x00040000, MemoryPreload = 0x00080000, Align1Byte = 0x00100000, Align2Bytes = 0x00200000, Align4Bytes = 0x00300000, Align8Bytes = 0x00400000, /// /// Default alignment if no others are specified. /// Align16Bytes = 0x00500000, Align32Bytes = 0x00600000, Align64Bytes = 0x00700000, Align128Bytes = 0x00800000, Align256Bytes = 0x00900000, Align512Bytes = 0x00A00000, Align1024Bytes = 0x00B00000, Align2048Bytes = 0x00C00000, Align4096Bytes = 0x00D00000, Align8192Bytes = 0x00E00000, AlignMask = 0x00F00000, /// /// Section contains extended relocations. /// LinkExtendedRelocations = 0x01000000, /// /// Section can be discarded. /// MemoryDiscardable = 0x02000000, /// /// Section is not cachable. /// MemoryNotCached = 0x04000000, /// /// Section is not pageable. /// MemoryNotPaged = 0x08000000, /// /// Section is shareable. /// MemoryShared = 0x10000000, /// /// Section is executable. /// MemoryExecutable = 0x20000000, /// /// Section is readable. /// MemoryReadable = 0x40000000, /// /// Section is writeable. /// MemoryWritable = 0x80000000 } }