blob: e2433cf0ce8163eef524b1f5e790ca06946246ab [file] [log] [blame]
/*
* Copyright (c) 2000, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*
*/
package sun.jvm.hotspot.debugger.win32.coff;
/** Models the information stored in the Windows-specific fields
portion of the optional header of a Portable Executable file.
(Some of the descriptions are taken directly from Microsoft's
documentation and are copyrighted by Microsoft.) */
public interface OptionalHeaderWindowsSpecificFields {
/** Preferred address of first byte of image when loaded into
memory; must be a multiple of 64K. The default for DLLs is
0x10000000. The default for Windows CE EXEs is 0x00010000. The
default for Windows NT, Windows 95, and Windows 98 is
0x00400000. */
public long getImageBase();
/** Alignment (in bytes) of sections when loaded into memory. Must
be greater or equal to File Alignment. Default is the page size
for the architecture. */
public int getSectionAlignment();
/** Alignment factor (in bytes) used to align the raw data of
sections in the image file. The value should be a power of 2
between 512 and 64K inclusive. The default is 512. If the
SectionAlignment is less than the architecture's page size than
this must match the SectionAlignment. */
public int getFileAlignment();
/** Major version number of required OS. */
public short getMajorOperatingSystemVersion();
/** Minor version number of required OS. */
public short getMinorOperatingSystemVersion();
/** Major version number of image. */
public short getMajorImageVersion();
/** Minor version number of image. */
public short getMinorImageVersion();
/** Major version number of subsystem. */
public short getMajorSubsystemVersion();
/** Minor version number of subsystem. */
public short getMinorSubsystemVersion();
/** Size, in bytes, of image, including all headers; must be a
multiple of Section Alignment. */
public int getSizeOfImage();
/** Combined size of MS-DOS stub, PE Header, and section headers
rounded up to a multiple of FileAlignment. */
public int getSizeOfHeaders();
/** Image file checksum. The algorithm for computing is incorporated
into IMAGHELP.DLL. The following are checked for validation at
load time: all drivers, any DLL loaded at boot time, and any DLL
that ends up in the server. */
public int getCheckSum();
/** Subsystem required to run this image; returns one of the
constants defined in {@link
sun.jvm.hotspot.debugger.win32.coff.WindowsNTSubsystem}. */
public short getSubsystem();
/** Indicates characteristics of a DLL; see {@link
sun.jvm.hotspot.debugger.win32.coff.DLLCharacteristics}. */
public short getDLLCharacteristics();
/** Size of stack to reserve. Only the Stack Commit Size is
committed; the rest is made available one page at a time, until
reserve size is reached. */
public long getSizeOfStackReserve();
/** Size of stack to commit. */
public long getSizeOfStackCommit();
/** Size of local heap space to reserve. Only the Heap Commit Size
is committed; the rest is made available one page at a time,
until reserve size is reached. */
public long getSizeOfHeapReserve();
/** Size of local heap space to commit. */
public long getSizeOfHeapCommit();
/** Obsolete. */
public int getLoaderFlags();
/** Number of data-dictionary entries in the remainder of the
Optional Header. Each describes a location and size. */
public int getNumberOfRvaAndSizes();
}