| /* |
| * 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(); |
| } |