/******************************************************************************* * Copyright (c) 2000, 2009 QNX Software Systems and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * QNX Software Systems - Initial API and implementation *******************************************************************************/ package org.eclipse.cdt.utils.coff; /** * @noextend This class is not intended to be subclassed by clients. * @noinstantiate This class is not intended to be instantiated by clients. */ public class PEConstants { /* PE characteristics, FileHeader.f_flags. */ public final static int IMAGE_FILE_RELOCS_STRIPPED = 0x0001; public final static int IMAGE_FILE_EXECUTABLE_IMAGE = 0x0002; public final static int IMAGE_FILE_LINE_NUMS_STRIPPED = 0x0004; public final static int IMAGE_FILE_LOCAL_SYMS_STRIPPED = 0x0008; public final static int IMAGE_FILE_AGGRESSIVE_WS_TRIM = 0x0010; public final static int IMAGE_FILE_LARGE_ADDRESS_AWARE = 0x0020; public final static int IMAGE_FILE_16BIT_MACHINE = 0x0040; public final static int IMAGE_FILE_BYTES_REVERSED_LO = 0x0080; public final static int IMAGE_FILE_32BIT_MACHINE = 0x0100; public final static int IMAGE_FILE_DEBUG_STRIPPED = 0x0200; public final static int IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP = 0x0400; public final static int IMAGE_FILE_SYSTEM = 0x1000; public final static int IMAGE_FILE_DLL = 0x2000; public final static int IMAGE_FILE_UP_SYSTEM_ONLY = 0x4000; public final static int IMAGE_FILE_BYTES_REVERSED_HI = 0x8000; /* FileHader.f_magic. Indicate the machine numbers. */ public final static int IMAGE_FILE_MACHINE_UNKNOWN = 0x0; public final static int IMAGE_FILE_MACHINE_ALPHA = 0x184; public final static int IMAGE_FILE_MACHINE_ARM = 0x1c0; public final static int IMAGE_FILE_MACHINE_ALPHA64 = 0x284; /** @since 5.2 */ public final static int IMAGE_FILE_MACHINE_AMD64 = 0x8664; public final static int IMAGE_FILE_MACHINE_I386 = 0x14c; public final static int IMAGE_FILE_MACHINE_IA64 = 0x200; public final static int IMAGE_FILE_MACHINE_M68K = 0x268; public final static int IMAGE_FILE_MACHINE_MIPS16 = 0x266; public final static int IMAGE_FILE_MACHINE_MIPSFPU = 0x366; public final static int IMAGE_FILE_MACHINE_MIPSFPU16 = 0x466; public final static int IMAGE_FILE_MACHINE_POWERPC = 0x1f0; public final static int IMAGE_FILE_MACHINE_R3000 = 0x162; public final static int IMAGE_FILE_MACHINE_R4000 = 0x166; public final static int IMAGE_FILE_MACHINE_R10000 = 0x168; public final static int IMAGE_FILE_MACHINE_SH3 = 0x1a2; public final static int IMAGE_FILE_MACHINE_SH4 = 0x1a6; public final static int IMAGE_FILE_MACHINE_THUMB = 0x1c2; // This is not listed in the PE docs but is generated by some GCC tools. public final static int IMAGE_FILE_MACHINE_ARM2 = 0xa00; /* OptionalHeader.magic */ public final static int PE32 = 0x10b; public final static int PE32PLUS = 0x20b; /* Windows NT Subsystem. NTOptionalHeader.Subsystem */ public final static int IMAGE_SUBSYSTEM_UNKNOWN = 0; public final static int IMAGE_SUBSYSTEM_NATIVE = 1; public final static int IMAGE_SUBSYSTEM_WINDOWS_GUI = 2; public final static int IMAGE_SUBSYSTEM_WINDOWS_CUI = 3; public final static int IMAGE_SUBSYSTEM_POSIX_CUI = 7; public final static int IMAGE_SUBSYSTEM_WINDOWS_CE_GUI = 9; public final static int IMAGE_SUBSYSTEM_EFI_APPLICATION = 10; public final static int IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER = 11; public final static int IMAGE_SUBSYSTEM_EFI_RUNTIME_DRIVER = 12; /* DLL CHarcteristics, NTOptionalHeader.DLLCharcteristics */ public final static int IMAGE_DLLCHARACTERISTICS_NO_BIND = 0x0800; // Do not bind image. // Driver is a WDM Driver. public final static int IMAGE_DLLCHARACTERISTICS_WDM_DRIVER = 0x2000; // Image is Terminal Sever aware. public final static int IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER = 0x2000; /* Array of Directories */ public final static int IMAGE_NUMBEROF_DIRECTORY_ENTRIES = 16; /* The directory of exported symbols; mostly used for DLLs. Described below. */ public final static int IMAGE_DIRECTORY_ENTRY_EXPORT = 0; /* The directory of imported symbols; see below. */ public final static int IMAGE_DIRECTORY_ENTRY_IMPORT = 1; /* Directory of resources. Described below. */ public final static int IMAGE_DIRECTORY_ENTRY_RESOURCE = 2; /* Exception directory - structure and purpose unknown. */ public final static int IMAGE_DIRECTORY_ENTRY_EXCEPTION = 3; /* Security directory - structure and purpose unknown. */ public final static int IMAGE_DIRECTORY_ENTRY_SECURITY = 4; /* Base relocation table - see below. */ public final static int IMAGE_DIRECTORY_ENTRY_BASERELOC = 5; /* Debug directory - contents is compiler dependent. Moreover, many compilers stuff the debug information into the code section and don't create a separate section for it. */ public final static int IMAGE_DIRECTORY_ENTRY_DEBUG = 6; /* Description string - some arbitrary copyright note or the like. */ public final static int IMAGE_DIRECTORY_ENTRY_COPYRIGHT = 7; /* Machine Value (MIPS GP) - structure and purpose unknown. */ public final static int IMAGE_DIRECTORY_ENTRY_GLOBALPTR = 8; /* Thread local storage directory - structure unknown; contains variables that are declared "__declspec(thread)", i.e. per-thread global variables. */ public final static int IMAGE_DIRECTORY_ENTRY_TLS = 9; /* Load configuration directory - structure and purpose unknown. */ public final static int IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG = 10; /* Bound import directory - see description of import directory. */ public final static int IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT = 11; /* Import Address Table - see description of import directory. */ public final static int IMAGE_DIRECTORY_ENTRY_IAT = 12; }