1 /*
   2  * Copyright 2000 Sun Microsystems, Inc.  All Rights Reserved.
   3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   4  *
   5  * This code is free software; you can redistribute it and/or modify it
   6  * under the terms of the GNU General Public License version 2 only, as
   7  * published by the Free Software Foundation.
   8  *
   9  * This code is distributed in the hope that it will be useful, but WITHOUT
  10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  11  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  12  * version 2 for more details (a copy is included in the LICENSE file that
  13  * accompanied this code).
  14  *
  15  * You should have received a copy of the GNU General Public License version
  16  * 2 along with this work; if not, write to the Free Software Foundation,
  17  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  18  *
  19  * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
  20  * CA 95054 USA or visit www.sun.com if you need additional information or
  21  * have any questions.
  22  *
  23  */
  24 
  25 package sun.jvm.hotspot.debugger.win32.coff;
  26 
  27 /** Constants indicating attributes of the object or image file. (Some
  28     of the descriptions are taken directly from Microsoft's
  29     documentation and are copyrighted by Microsoft.) */
  30 
  31 public interface Characteristics {
  32   /** Image only, Windows CE, Windows NT and above. Indicates that the
  33       file does not contain base relocations and must therefore be
  34       loaded at its preferred base address. If the base address is not
  35       available, the loader reports an error. Operating systems
  36       running on top of MS-DOS (Win32s) are generally not able to use
  37       the preferred base address and so cannot run these
  38       images. However, beginning with version 4.0, Windows will use an
  39       application's preferred base address. The default behavior of
  40       the linker is to strip base relocations from EXEs. */
  41   public static final short IMAGE_FILE_RELOCS_STRIPPED = (short) 0x0001;
  42 
  43   /** Image only. Indicates that the image file is valid and can be
  44       run. If this flag is not set, it generally indicates a linker
  45       error. */
  46   public static final short IMAGE_FILE_EXECUTABLE_IMAGE = (short) 0x0002;
  47 
  48   /** COFF line numbers have been removed. */
  49   public static final short IMAGE_FILE_LINE_NUMS_STRIPPED = (short) 0x0004;
  50 
  51   /** COFF symbol table entries for local symbols have been removed. */
  52   public static final short IMAGE_FILE_LOCAL_SYMS_STRIPPED = (short) 0x0008;
  53 
  54   /** Aggressively trim working set. */
  55   public static final short IMAGE_FILE_AGGRESSIVE_WS_TRIM = (short) 0x0010;
  56 
  57   /** App can handle > 2gb addresses. */
  58   public static final short IMAGE_FILE_LARGE_ADDRESS_AWARE = (short) 0x0020;
  59 
  60   /** Use of this flag is reserved for future use. */
  61   public static final short IMAGE_FILE_16BIT_MACHINE = (short) 0x0040;
  62 
  63   /** Little endian: LSB precedes MSB in memory. */
  64   public static final short IMAGE_FILE_BYTES_REVERSED_LO = (short) 0x0080;
  65 
  66   /** Machine based on 32-bit-word architecture. */
  67   public static final short IMAGE_FILE_32BIT_MACHINE = (short) 0x0100;
  68 
  69   /** Debugging information removed from image file. */
  70   public static final short IMAGE_FILE_DEBUG_STRIPPED = (short) 0x0200;
  71 
  72   /** If image is on removable media, copy and run from swap file. */
  73   public static final short IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP = (short) 0x0400;
  74 
  75   /** The image file is a system file, not a user program. */
  76   public static final short IMAGE_FILE_SYSTEM = (short) 0x1000;
  77 
  78   /** The image file is a dynamic-link library (DLL). Such files are
  79       considered executable files for almost all purposes, although
  80       they cannot be directly run. */
  81   public static final short IMAGE_FILE_DLL = (short) 0x2000;
  82 
  83   /** File should be run only on a UP machine. */
  84   public static final short IMAGE_FILE_UP_SYSTEM_ONLY = (short) 0x4000;
  85 
  86   /** Big endian: MSB precedes LSB in memory. */
  87   public static final short IMAGE_FILE_BYTES_REVERSED_HI = (short) 0x8000;
  88 }