25 |
25 |
struct external_filehdr {
|
26 |
26 |
short f_magic; /* magic number */
|
27 |
27 |
short f_nscns; /* number of sections */
|
28 |
|
unsigned long f_timdat; /* time & date stamp */
|
29 |
|
unsigned long f_symptr; /* file pointer to symtab */
|
30 |
|
unsigned long f_nsyms; /* number of symtab entries */
|
|
28 |
host_ulong f_timdat; /* time & date stamp */
|
|
29 |
host_ulong f_symptr; /* file pointer to symtab */
|
|
30 |
host_ulong f_nsyms; /* number of symtab entries */
|
31 |
31 |
short f_opthdr; /* sizeof(optional hdr) */
|
32 |
32 |
short f_flags; /* flags */
|
33 |
33 |
};
|
... | ... | |
72 |
72 |
{
|
73 |
73 |
unsigned short magic; /* type of file */
|
74 |
74 |
unsigned short vstamp; /* version stamp */
|
75 |
|
unsigned long tsize; /* text size in bytes, padded to FW bdry*/
|
76 |
|
unsigned long dsize; /* initialized data " " */
|
77 |
|
unsigned long bsize; /* uninitialized data " " */
|
78 |
|
unsigned long entry; /* entry pt. */
|
79 |
|
unsigned long text_start; /* base of text used for this file */
|
80 |
|
unsigned long data_start; /* base of data used for this file=
|
|
75 |
host_ulong tsize; /* text size in bytes, padded to FW bdry*/
|
|
76 |
host_ulong dsize; /* initialized data " " */
|
|
77 |
host_ulong bsize; /* uninitialized data " " */
|
|
78 |
host_ulong entry; /* entry pt. */
|
|
79 |
host_ulong text_start; /* base of text used for this file */
|
|
80 |
host_ulong data_start; /* base of data used for this file=
|
81 |
81 |
*/
|
82 |
82 |
}
|
83 |
83 |
AOUTHDR;
|
... | ... | |
103 |
103 |
|
104 |
104 |
struct external_scnhdr {
|
105 |
105 |
char s_name[8]; /* section name */
|
106 |
|
unsigned long s_paddr; /* physical address, offset
|
|
106 |
host_ulong s_paddr; /* physical address, offset
|
107 |
107 |
of last addr in scn */
|
108 |
|
unsigned long s_vaddr; /* virtual address */
|
109 |
|
unsigned long s_size; /* section size */
|
110 |
|
unsigned long s_scnptr; /* file ptr to raw data for section */
|
111 |
|
unsigned long s_relptr; /* file ptr to relocation */
|
112 |
|
unsigned long s_lnnoptr; /* file ptr to line numbers */
|
|
108 |
host_ulong s_vaddr; /* virtual address */
|
|
109 |
host_ulong s_size; /* section size */
|
|
110 |
host_ulong s_scnptr; /* file ptr to raw data for section */
|
|
111 |
host_ulong s_relptr; /* file ptr to relocation */
|
|
112 |
host_ulong s_lnnoptr; /* file ptr to line numbers */
|
113 |
113 |
unsigned short s_nreloc; /* number of relocation entries */
|
114 |
114 |
unsigned short s_nlnno; /* number of line number entries*/
|
115 |
|
unsigned long s_flags; /* flags */
|
|
115 |
host_ulong s_flags; /* flags */
|
116 |
116 |
};
|
117 |
117 |
|
118 |
118 |
#define SCNHDR struct external_scnhdr
|
... | ... | |
136 |
136 |
*/
|
137 |
137 |
struct external_lineno {
|
138 |
138 |
union {
|
139 |
|
unsigned long l_symndx; /* function name symbol index, iff l_lnno 0 */
|
140 |
|
unsigned long l_paddr; /* (physical) address of line number */
|
|
139 |
host_ulong l_symndx; /* function name symbol index, iff l_lnno 0 */
|
|
140 |
host_ulong l_paddr; /* (physical) address of line number */
|
141 |
141 |
} l_addr;
|
142 |
142 |
unsigned short l_lnno; /* line number */
|
143 |
143 |
};
|
... | ... | |
156 |
156 |
union {
|
157 |
157 |
char e_name[E_SYMNMLEN];
|
158 |
158 |
struct {
|
159 |
|
unsigned long e_zeroes;
|
160 |
|
unsigned long e_offset;
|
|
159 |
host_ulong e_zeroes;
|
|
160 |
host_ulong e_offset;
|
161 |
161 |
} e;
|
162 |
162 |
} e;
|
163 |
|
unsigned long e_value;
|
|
163 |
host_ulong e_value;
|
164 |
164 |
unsigned short e_scnum;
|
165 |
165 |
unsigned short e_type;
|
166 |
166 |
char e_sclass[1];
|
... | ... | |
174 |
174 |
|
175 |
175 |
union external_auxent {
|
176 |
176 |
struct {
|
177 |
|
unsigned long x_tagndx; /* str, un, or enum tag indx */
|
|
177 |
host_ulong x_tagndx; /* str, un, or enum tag indx */
|
178 |
178 |
union {
|
179 |
179 |
struct {
|
180 |
180 |
unsigned short x_lnno; /* declaration line number */
|
181 |
181 |
unsigned short x_size; /* str/union/array size */
|
182 |
182 |
} x_lnsz;
|
183 |
|
unsigned long x_fsize; /* size of function */
|
|
183 |
host_ulong x_fsize; /* size of function */
|
184 |
184 |
} x_misc;
|
185 |
185 |
union {
|
186 |
186 |
struct { /* if ISFCN, tag, or .bb */
|
187 |
|
unsigned long x_lnnoptr;/* ptr to fcn line # */
|
188 |
|
unsigned long x_endndx; /* entry ndx past block end */
|
|
187 |
host_ulong x_lnnoptr;/* ptr to fcn line # */
|
|
188 |
host_ulong x_endndx; /* entry ndx past block end */
|
189 |
189 |
} x_fcn;
|
190 |
190 |
struct { /* if ISARY, up to 4 dimen. */
|
191 |
191 |
char x_dimen[E_DIMNUM][2];
|
... | ... | |
197 |
197 |
union {
|
198 |
198 |
char x_fname[E_FILNMLEN];
|
199 |
199 |
struct {
|
200 |
|
unsigned long x_zeroes;
|
201 |
|
unsigned long x_offset;
|
|
200 |
host_ulong x_zeroes;
|
|
201 |
host_ulong x_offset;
|
202 |
202 |
} x_n;
|
203 |
203 |
} x_file;
|
204 |
204 |
|
205 |
205 |
struct {
|
206 |
|
unsigned long x_scnlen; /* section length */
|
|
206 |
host_ulong x_scnlen; /* section length */
|
207 |
207 |
unsigned short x_nreloc; /* # relocation entries */
|
208 |
208 |
unsigned short x_nlinno; /* # line numbers */
|
209 |
|
unsigned long x_checksum; /* section COMDAT checksum */
|
|
209 |
host_ulong x_checksum; /* section COMDAT checksum */
|
210 |
210 |
unsigned short x_associated;/* COMDAT associated section index */
|
211 |
211 |
char x_comdat[1]; /* COMDAT selection number */
|
212 |
212 |
} x_scn;
|
213 |
213 |
|
214 |
214 |
struct {
|
215 |
|
unsigned long x_tvfill; /* tv fill value */
|
|
215 |
host_ulong x_tvfill; /* tv fill value */
|
216 |
216 |
unsigned short x_tvlen; /* length of .tv */
|
217 |
217 |
char x_tvran[2][2]; /* tv range */
|
218 |
218 |
} x_tv; /* info about .tv section (in auxent of symbol .tv)) */
|
... | ... | |
344 |
344 |
unsigned short e_oemid; /* OEM identifier (for e_oeminfo), 0x0 */
|
345 |
345 |
unsigned short e_oeminfo; /* OEM information; e_oemid specific, 0x0 */
|
346 |
346 |
char e_res2[10][2]; /* Reserved words, all 0x0 */
|
347 |
|
unsigned long e_lfanew; /* File address of new exe header, 0x80 */
|
|
347 |
host_ulong e_lfanew; /* File address of new exe header, 0x80 */
|
348 |
348 |
char dos_message[16][4]; /* other stuff, always follow DOS header */
|
349 |
349 |
unsigned int nt_signature; /* required NT signature, 0x4550 */
|
350 |
350 |
|
... | ... | |
352 |
352 |
|
353 |
353 |
unsigned short f_magic; /* magic number */
|
354 |
354 |
unsigned short f_nscns; /* number of sections */
|
355 |
|
unsigned long f_timdat; /* time & date stamp */
|
356 |
|
unsigned long f_symptr; /* file pointer to symtab */
|
357 |
|
unsigned long f_nsyms; /* number of symtab entries */
|
|
355 |
host_ulong f_timdat; /* time & date stamp */
|
|
356 |
host_ulong f_symptr; /* file pointer to symtab */
|
|
357 |
host_ulong f_nsyms; /* number of symtab entries */
|
358 |
358 |
unsigned short f_opthdr; /* sizeof(optional hdr) */
|
359 |
359 |
unsigned short f_flags; /* flags */
|
360 |
360 |
};
|
... | ... | |
370 |
370 |
{
|
371 |
371 |
unsigned short magic; /* type of file */
|
372 |
372 |
unsigned short vstamp; /* version stamp */
|
373 |
|
unsigned long tsize; /* text size in bytes, padded to FW bdry*/
|
374 |
|
unsigned long dsize; /* initialized data " " */
|
375 |
|
unsigned long bsize; /* uninitialized data " " */
|
376 |
|
unsigned long entry; /* entry pt. */
|
377 |
|
unsigned long text_start; /* base of text used for this file */
|
378 |
|
unsigned long data_start; /* base of all data used for this file */
|
|
373 |
host_ulong tsize; /* text size in bytes, padded to FW bdry*/
|
|
374 |
host_ulong dsize; /* initialized data " " */
|
|
375 |
host_ulong bsize; /* uninitialized data " " */
|
|
376 |
host_ulong entry; /* entry pt. */
|
|
377 |
host_ulong text_start; /* base of text used for this file */
|
|
378 |
host_ulong data_start; /* base of all data used for this file */
|
379 |
379 |
|
380 |
380 |
/* NT extra fields; see internal.h for descriptions */
|
381 |
|
unsigned long ImageBase;
|
382 |
|
unsigned long SectionAlignment;
|
383 |
|
unsigned long FileAlignment;
|
|
381 |
host_ulong ImageBase;
|
|
382 |
host_ulong SectionAlignment;
|
|
383 |
host_ulong FileAlignment;
|
384 |
384 |
unsigned short MajorOperatingSystemVersion;
|
385 |
385 |
unsigned short MinorOperatingSystemVersion;
|
386 |
386 |
unsigned short MajorImageVersion;
|
... | ... | |
388 |
388 |
unsigned short MajorSubsystemVersion;
|
389 |
389 |
unsigned short MinorSubsystemVersion;
|
390 |
390 |
char Reserved1[4];
|
391 |
|
unsigned long SizeOfImage;
|
392 |
|
unsigned long SizeOfHeaders;
|
393 |
|
unsigned long CheckSum;
|
|
391 |
host_ulong SizeOfImage;
|
|
392 |
host_ulong SizeOfHeaders;
|
|
393 |
host_ulong CheckSum;
|
394 |
394 |
unsigned short Subsystem;
|
395 |
395 |
unsigned short DllCharacteristics;
|
396 |
|
unsigned long SizeOfStackReserve;
|
397 |
|
unsigned long SizeOfStackCommit;
|
398 |
|
unsigned long SizeOfHeapReserve;
|
399 |
|
unsigned long SizeOfHeapCommit;
|
400 |
|
unsigned long LoaderFlags;
|
401 |
|
unsigned long NumberOfRvaAndSizes;
|
|
396 |
host_ulong SizeOfStackReserve;
|
|
397 |
host_ulong SizeOfStackCommit;
|
|
398 |
host_ulong SizeOfHeapReserve;
|
|
399 |
host_ulong SizeOfHeapCommit;
|
|
400 |
host_ulong LoaderFlags;
|
|
401 |
host_ulong NumberOfRvaAndSizes;
|
402 |
402 |
/* IMAGE_DATA_DIRECTORY DataDirectory[IMAGE_NUMBEROF_DIRECTORY_ENTRIES]; */
|
403 |
403 |
char DataDirectory[16][2][4]; /* 16 entries, 2 elements/entry, 4 chars */
|
404 |
404 |
|