3 // Permission is hereby granted, free of charge, to any person obtaining
\r
4 // a copy of this software and associated documentation files (the
\r
5 // "Software"), to deal in the Software without restriction, including
\r
6 // without limitation the rights to use, copy, modify, merge, publish,
\r
7 // distribute, sublicense, and/or sell copies of the Software, and to
\r
8 // permit persons to whom the Software is furnished to do so, subject to
\r
9 // the following conditions:
\r
11 // The above copyright notice and this permission notice shall be
\r
12 // included in all copies or substantial portions of the Software.
\r
14 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
\r
15 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
\r
16 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
\r
17 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
\r
18 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
\r
19 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
\r
20 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
\r
23 * Copyright (c) 2002 Sergey Chaban <serge@wildwestsoftware.com>
\r
28 namespace Mono.PEToolkit {
\r
31 public enum Characteristics : ushort {
\r
35 /// Relocation info stripped from file.
\r
38 /// IMAGE_FILE_RELOCS_STRIPPED
\r
40 RELOCS_STRIPPED = 0x0001,
\r
45 /// File is executable
\r
46 /// (i.e. file is neither object file nor library file,
\r
47 /// so there are no unresolved externel references).
\r
50 /// IMAGE_FILE_EXECUTABLE_IMAGE
\r
52 EXECUTABLE_IMAGE = 0x0002,
\r
56 /// Line nunbers stripped from file.
\r
59 /// IMAGE_FILE_LINE_NUMS_STRIPPED
\r
61 LINE_NUMS_STRIPPED = 0x0004,
\r
65 /// Local symbols stripped from file.
\r
68 /// IMAGE_FILE_LOCAL_SYMS_STRIPPED
\r
70 LOCAL_SYMS_STRIPPED = 0x0008,
\r
74 /// Agressively trim working set
\r
77 /// IMAGE_FILE_AGGRESIVE_WS_TRIM
\r
79 AGGRESIVE_WS_TRIM = 0x0010,
\r
83 /// App can handle >2gb addresses
\r
86 /// IMAGE_FILE_LARGE_ADDRESS_AWARE
\r
88 LARGE_ADDRESS_AWARE = 0x0020,
\r
92 /// Bytes of machine word are reversed.
\r
95 /// IMAGE_FILE_BYTES_REVERSED_LO
\r
97 BYTES_REVERSED_LO = 0x0080,
\r
101 /// 32 bit word machine.
\r
104 /// IMAGE_FILE_32BIT_MACHINE
\r
106 MACHINE_32BIT = 0x0100,
\r
110 /// Debugging info stripped from file in .DBG file
\r
113 /// IMAGE_FILE_DEBUG_STRIPPED
\r
115 DEBUG_STRIPPED = 0x0200,
\r
119 /// If Image is on removable media, copy and run from the swap file.
\r
122 /// IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP
\r
124 REMOVABLE_RUN_FROM_SWAP = 0x0400,
\r
128 /// If Image is on Net, copy and run from the swap file.
\r
131 /// IMAGE_FILE_NET_RUN_FROM_SWAP
\r
133 NET_RUN_FROM_SWAP = 0x0800,
\r
137 /// This flag is used to indicate that the file
\r
138 /// is a system sile, such as device driver.
\r
141 /// IMAGE_FILE_SYSTEM
\r
147 /// This flag indicates that the file
\r
148 /// is a dynamic library (DLL).
\r
157 /// File should only be run on a uni-processor (UP) machine.
\r
160 /// IMAGE_FILE_UP_SYSTEM_ONLY
\r
162 UP_SYSTEM_ONLY = 0x4000,
\r
166 /// Bytes of machine word are reversed.
\r
169 /// IMAGE_FILE_BYTES_REVERSED_HI
\r
171 BYTES_REVERSED_HI = 0x8000,
\r
176 /// Default flags that must be set in CIL-only image.
\r
179 /// See Partition II, 24.2.2.1
\r
181 CIL_DEFAULT = LINE_NUMS_STRIPPED |
\r
182 LOCAL_SYMS_STRIPPED |
\r