Mercurial > hg > truffle
annotate agent/src/share/classes/sun/jvm/hotspot/debugger/win32/coff/SectionHeader.java @ 3944:35c656d0b685
7090654: nightly failures after 7086585
Reviewed-by: kvn
author | never |
---|---|
date | Wed, 14 Sep 2011 13:57:32 -0700 |
parents | c18cbe5936b8 |
children |
rev | line source |
---|---|
0 | 1 /* |
1552
c18cbe5936b8
6941466: Oracle rebranding changes for Hotspot repositories
trims
parents:
0
diff
changeset
|
2 * Copyright (c) 2000, Oracle and/or its affiliates. All rights reserved. |
0 | 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 * | |
1552
c18cbe5936b8
6941466: Oracle rebranding changes for Hotspot repositories
trims
parents:
0
diff
changeset
|
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA |
c18cbe5936b8
6941466: Oracle rebranding changes for Hotspot repositories
trims
parents:
0
diff
changeset
|
20 * or visit www.oracle.com if you need additional information or have any |
c18cbe5936b8
6941466: Oracle rebranding changes for Hotspot repositories
trims
parents:
0
diff
changeset
|
21 * questions. |
0 | 22 * |
23 */ | |
24 | |
25 package sun.jvm.hotspot.debugger.win32.coff; | |
26 | |
27 /** Describes the header of a section in a COFF file. The section | |
28 headers are grouped together into the Section Table. (Some of the | |
29 descriptions are taken directly from Microsoft's documentation and | |
30 are copyrighted by Microsoft.) */ | |
31 | |
32 public interface SectionHeader { | |
33 public String getName(); | |
34 | |
35 /** Total size of the section when loaded into memory. If this value | |
36 is greater than Size of Raw Data, the section is zero-padded. | |
37 This field is valid only for executable images and should be set | |
38 to 0 for object files. */ | |
39 public int getSize(); | |
40 | |
41 /** For executable images this is the address of the first byte of | |
42 the section, when loaded into memory, relative to the image | |
43 base. For object files, this field is the address of the first | |
44 byte before relocation is applied; for simplicity, compilers | |
45 should set this to zero. Otherwise, it is an arbitrary value | |
46 that is subtracted from offsets during relocation. */ | |
47 public int getVirtualAddress(); | |
48 | |
49 /** Size of the section (object file) or size of the initialized | |
50 data on disk (image files). For executable image, this must be a | |
51 multiple of FileAlignment from the optional header. If this is | |
52 less than VirtualSize the remainder of the section is zero | |
53 filled. Because this field is rounded while the VirtualSize | |
54 field is not it is possible for this to be greater than | |
55 VirtualSize as well. When a section contains only uninitialized | |
56 data, this field should be 0. */ | |
57 public int getSizeOfRawData(); | |
58 | |
59 /** File pointer to section's first page within the COFF file. For | |
60 executable images, this must be a multiple of FileAlignment from | |
61 the optional header. For object files, the value should be | |
62 aligned on a four-byte boundary for best performance. When a | |
63 section contains only uninitialized data, this field should be | |
64 0. */ | |
65 public int getPointerToRawData(); | |
66 | |
67 /** File pointer to beginning of relocation entries for the section. | |
68 Set to 0 for executable images or if there are no | |
69 relocations. */ | |
70 public int getPointerToRelocations(); | |
71 | |
72 /** File pointer to beginning of line-number entries for the | |
73 section. Set to 0 if there are no COFF line numbers. */ | |
74 public int getPointerToLineNumbers(); | |
75 | |
76 /** Number of relocation entries for the section. Set to 0 for | |
77 executable images. */ | |
78 public short getNumberOfRelocations(); | |
79 | |
80 /** Number of line-number entries for the section. */ | |
81 public short getNumberOfLineNumbers(); | |
82 | |
83 /** Flags describing section's characteristics; see {@link | |
84 sun.jvm.hotspot.debugger.win32.coff.SectionFlags}. */ | |
85 public int getSectionFlags(); | |
86 | |
87 /** Returns true if the appropriate flag (from {@link | |
88 sun.jvm.hotspot.debugger.win32.coff.SectionFlags}) is set. */ | |
89 public boolean hasSectionFlag(int flag); | |
90 | |
91 /** This is only present for object files. Retrieves the COFF | |
92 relocation at the given index; valid indices are numbered | |
93 0...getNumberOfRelocations() - 1. */ | |
94 public COFFRelocation getCOFFRelocation(int index); | |
95 | |
96 /** Retrieves the COFF line number at the given index; valid indices | |
97 are numbered 0...getNumberOfLineNumbers() - 1. */ | |
98 public COFFLineNumber getCOFFLineNumber(int index); | |
99 } |