18b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* a.out.h 28b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 38b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project Copyright 1997, 1998, 1999, 2001 Red Hat, Inc. 48b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 58b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectThis file is part of Cygwin. 68b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 78b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectThis software is a copyrighted work licensed under the terms of the 88b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectCygwin license. Please consult the file "CYGWIN_LICENSE" for 98b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectdetails. */ 108b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 118b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifndef _A_OUT_H_ 128b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define _A_OUT_H_ 138b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 148b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef __cplusplus 158b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern "C" { 168b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 178b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define COFF_IMAGE_WITH_PE 188b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define COFF_LONG_SECTION_NAMES 198b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 208b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/*** coff information for Intel 386/486. */ 218b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 228b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 238b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/********************** FILE HEADER **********************/ 248b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 258b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectstruct external_filehdr { 268b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project short f_magic; /* magic number */ 278b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project short f_nscns; /* number of sections */ 288b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project host_ulong f_timdat; /* time & date stamp */ 298b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project host_ulong f_symptr; /* file pointer to symtab */ 308b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project host_ulong f_nsyms; /* number of symtab entries */ 318b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project short f_opthdr; /* sizeof(optional hdr) */ 328b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project short f_flags; /* flags */ 338b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project}; 348b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 358b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Bits for f_flags: 368b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * F_RELFLG relocation info stripped from file 378b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * F_EXEC file is executable (no unresolved external references) 388b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * F_LNNO line numbers stripped from file 398b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * F_LSYMS local symbols stripped from file 408b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * F_AR32WR file has byte ordering of an AR32WR machine (e.g. vax) 418b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */ 428b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 438b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define F_RELFLG (0x0001) 448b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define F_EXEC (0x0002) 458b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define F_LNNO (0x0004) 468b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define F_LSYMS (0x0008) 478b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 488b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 498b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 508b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define I386MAGIC 0x14c 518b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define I386PTXMAGIC 0x154 528b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define I386AIXMAGIC 0x175 538b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 548b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* This is Lynx's all-platform magic number for executables. */ 558b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 568b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define LYNXCOFFMAGIC 0415 578b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 588b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define I386BADMAG(x) (((x).f_magic != I386MAGIC) \ 598b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project && (x).f_magic != I386AIXMAGIC \ 608b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project && (x).f_magic != I386PTXMAGIC \ 618b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project && (x).f_magic != LYNXCOFFMAGIC) 628b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 638b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define FILHDR struct external_filehdr 648b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define FILHSZ 20 658b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 668b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 678b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/********************** AOUT "OPTIONAL HEADER"= 688b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project **********************/ 698b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 708b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 718b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projecttypedef struct 728b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 738b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project unsigned short magic; /* type of file */ 748b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project unsigned short vstamp; /* version stamp */ 758b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project host_ulong tsize; /* text size in bytes, padded to FW bdry*/ 768b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project host_ulong dsize; /* initialized data " " */ 778b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project host_ulong bsize; /* uninitialized data " " */ 788b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project host_ulong entry; /* entry pt. */ 798b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project host_ulong text_start; /* base of text used for this file */ 808b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project host_ulong data_start; /* base of data used for this file= 818b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */ 828b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} 838b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectAOUTHDR; 848b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 858b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define AOUTSZ 28 868b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define AOUTHDRSZ 28 878b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 888b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define OMAGIC 0404 /* object files, eg as output */ 898b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define ZMAGIC 0413 /* demand load format, eg normal ld output */ 908b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define STMAGIC 0401 /* target shlib */ 918b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define SHMAGIC 0443 /* host shlib */ 928b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 938b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 948b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* define some NT default values */ 958b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* #define NT_IMAGE_BASE 0x400000 moved to internal.h */ 968b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define NT_SECTION_ALIGNMENT 0x1000 978b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define NT_FILE_ALIGNMENT 0x200 988b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define NT_DEF_RESERVE 0x100000 998b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define NT_DEF_COMMIT 0x1000 1008b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1018b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/********************** SECTION HEADER **********************/ 1028b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1038b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1048b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectstruct external_scnhdr { 1058b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project char s_name[8]; /* section name */ 1068b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project host_ulong s_paddr; /* physical address, offset 1078b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project of last addr in scn */ 1088b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project host_ulong s_vaddr; /* virtual address */ 1098b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project host_ulong s_size; /* section size */ 1108b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project host_ulong s_scnptr; /* file ptr to raw data for section */ 1118b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project host_ulong s_relptr; /* file ptr to relocation */ 1128b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project host_ulong s_lnnoptr; /* file ptr to line numbers */ 1138b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project unsigned short s_nreloc; /* number of relocation entries */ 1148b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project unsigned short s_nlnno; /* number of line number entries*/ 1158b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project host_ulong s_flags; /* flags */ 1168b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project}; 1178b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1188b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define SCNHDR struct external_scnhdr 1198b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define SCNHSZ 40 1208b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1218b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* 1228b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * names of "special" sections 1238b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */ 1248b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define _TEXT ".text" 1258b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define _DATA ".data" 1268b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define _BSS ".bss" 1278b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define _COMMENT ".comment" 1288b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define _LIB ".lib" 1298b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1308b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/********************** LINE NUMBERS **********************/ 1318b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1328b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* 1 line number entry for every "breakpointable" source line in a section. 1338b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * Line numbers are grouped on a per function basis; first entry in a function 1348b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * grouping will have l_lnno = 0 and in place of physical address will be the 1358b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * symbol table index of the function name. 1368b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */ 1378b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectstruct external_lineno { 1388b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project union { 1398b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project host_ulong l_symndx; /* function name symbol index, iff l_lnno 0 */ 1408b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project host_ulong l_paddr; /* (physical) address of line number */ 1418b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project } l_addr; 1428b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project unsigned short l_lnno; /* line number */ 1438b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project}; 1448b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1458b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define LINENO struct external_lineno 1468b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define LINESZ 6 1478b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1488b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/********************** SYMBOLS **********************/ 1498b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1508b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define E_SYMNMLEN 8 /* # characters in a symbol name */ 1518b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define E_FILNMLEN 14 /* # characters in a file name */ 1528b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define E_DIMNUM 4 /* # array dimensions in auxiliary entry */ 1538b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1548b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectstruct __attribute__((packed)) external_syment 1558b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 1568b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project union { 1578b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project char e_name[E_SYMNMLEN]; 1588b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project struct { 1598b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project host_ulong e_zeroes; 1608b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project host_ulong e_offset; 1618b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project } e; 1628b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project } e; 1638b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project host_ulong e_value; 1648b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project unsigned short e_scnum; 1658b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project unsigned short e_type; 1668b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project char e_sclass[1]; 1678b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project char e_numaux[1]; 1688b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project}; 1698b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1708b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define N_BTMASK (0xf) 1718b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define N_TMASK (0x30) 1728b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define N_BTSHFT (4) 1738b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define N_TSHIFT (2) 1748b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1758b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectunion external_auxent { 1768b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project struct { 1778b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project host_ulong x_tagndx; /* str, un, or enum tag indx */ 1788b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project union { 1798b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project struct { 1808b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project unsigned short x_lnno; /* declaration line number */ 1818b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project unsigned short x_size; /* str/union/array size */ 1828b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project } x_lnsz; 1838b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project host_ulong x_fsize; /* size of function */ 1848b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project } x_misc; 1858b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project union { 1868b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project struct { /* if ISFCN, tag, or .bb */ 1878b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project host_ulong x_lnnoptr;/* ptr to fcn line # */ 1888b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project host_ulong x_endndx; /* entry ndx past block end */ 1898b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project } x_fcn; 1908b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project struct { /* if ISARY, up to 4 dimen. */ 1918b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project char x_dimen[E_DIMNUM][2]; 1928b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project } x_ary; 1938b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project } x_fcnary; 1948b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project unsigned short x_tvndx; /* tv index */ 1958b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project } x_sym; 1968b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1978b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project union { 1988b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project char x_fname[E_FILNMLEN]; 1998b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project struct { 2008b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project host_ulong x_zeroes; 2018b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project host_ulong x_offset; 2028b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project } x_n; 2038b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project } x_file; 2048b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2058b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project struct { 2068b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project host_ulong x_scnlen; /* section length */ 2078b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project unsigned short x_nreloc; /* # relocation entries */ 2088b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project unsigned short x_nlinno; /* # line numbers */ 2098b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project host_ulong x_checksum; /* section COMDAT checksum */ 2108b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project unsigned short x_associated;/* COMDAT associated section index */ 2118b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project char x_comdat[1]; /* COMDAT selection number */ 2128b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project } x_scn; 2138b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2148b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project struct { 2158b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project host_ulong x_tvfill; /* tv fill value */ 2168b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project unsigned short x_tvlen; /* length of .tv */ 2178b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project char x_tvran[2][2]; /* tv range */ 2188b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project } x_tv; /* info about .tv section (in auxent of symbol .tv)) */ 2198b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2208b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project}; 2218b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2228b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define SYMENT struct external_syment 2238b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define SYMESZ 18 2248b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define AUXENT union external_auxent 2258b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define AUXESZ 18 2268b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2278b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define _ETEXT "etext" 2288b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2298b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/********************** RELOCATION DIRECTIVES **********************/ 2308b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2318b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectstruct external_reloc { 2328b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project char r_vaddr[4]; 2338b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project char r_symndx[4]; 2348b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project char r_type[2]; 2358b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project}; 2368b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2378b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define RELOC struct external_reloc 2388b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define RELSZ 10 2398b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2408b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* end of coff/i386.h */ 2418b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2428b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* PE COFF header information */ 2438b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2448b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifndef _PE_H 2458b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define _PE_H 2468b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2478b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* NT specific file attributes */ 2488b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define IMAGE_FILE_RELOCS_STRIPPED 0x0001 2498b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define IMAGE_FILE_EXECUTABLE_IMAGE 0x0002 2508b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define IMAGE_FILE_LINE_NUMS_STRIPPED 0x0004 2518b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define IMAGE_FILE_LOCAL_SYMS_STRIPPED 0x0008 2528b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define IMAGE_FILE_BYTES_REVERSED_LO 0x0080 2538b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define IMAGE_FILE_32BIT_MACHINE 0x0100 2548b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define IMAGE_FILE_DEBUG_STRIPPED 0x0200 2558b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define IMAGE_FILE_SYSTEM 0x1000 2568b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define IMAGE_FILE_DLL 0x2000 2578b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define IMAGE_FILE_BYTES_REVERSED_HI 0x8000 2588b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2598b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* additional flags to be set for section headers to allow the NT loader to 2608b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project read and write to the section data (to replace the addresses of data in 2618b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project dlls for one thing); also to execute the section in .text's case= 2628b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */ 2638b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define IMAGE_SCN_MEM_DISCARDABLE 0x02000000 2648b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define IMAGE_SCN_MEM_EXECUTE 0x20000000 2658b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define IMAGE_SCN_MEM_READ 0x40000000 2668b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define IMAGE_SCN_MEM_WRITE 0x80000000 2678b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2688b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* 2698b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * Section characteristics added for ppc-nt 2708b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */ 2718b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2728b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define IMAGE_SCN_TYPE_NO_PAD 0x00000008 /* Reserved. */ 2738b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2748b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define IMAGE_SCN_CNT_CODE 0x00000020 /* Section contains code. */ 2758b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define IMAGE_SCN_CNT_INITIALIZED_DATA 0x00000040 /* Section contains initialized data. */ 2768b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define IMAGE_SCN_CNT_UNINITIALIZED_DATA 0x00000080 /* Section contains uninitialized data. */ 2778b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2788b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define IMAGE_SCN_LNK_OTHER 0x00000100 /* Reserved. */ 2798b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define IMAGE_SCN_LNK_INFO 0x00000200 /* Section contains comments or some other type of information. */ 2808b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define IMAGE_SCN_LNK_REMOVE 0x00000800 /* Section contents will not become part of image. */ 2818b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define IMAGE_SCN_LNK_COMDAT 0x00001000 /* Section contents comdat. */ 2828b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2838b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define IMAGE_SCN_MEM_FARDATA 0x00008000 2848b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2858b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define IMAGE_SCN_MEM_PURGEABLE 0x00020000 2868b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define IMAGE_SCN_MEM_16BIT 0x00020000 2878b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define IMAGE_SCN_MEM_LOCKED 0x00040000 2888b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define IMAGE_SCN_MEM_PRELOAD 0x00080000 2898b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2908b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define IMAGE_SCN_ALIGN_1BYTES 0x00100000 2918b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define IMAGE_SCN_ALIGN_2BYTES 0x00200000 2928b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define IMAGE_SCN_ALIGN_4BYTES 0x00300000 2938b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define IMAGE_SCN_ALIGN_8BYTES 0x00400000 2948b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define IMAGE_SCN_ALIGN_16BYTES 0x00500000 /* Default alignment if no others are specified. */ 2958b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define IMAGE_SCN_ALIGN_32BYTES 0x00600000 2968b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define IMAGE_SCN_ALIGN_64BYTES 0x00700000 2978b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2988b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2998b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define IMAGE_SCN_LNK_NRELOC_OVFL 0x01000000 /* Section contains extended relocations. */ 3008b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define IMAGE_SCN_MEM_NOT_CACHED 0x04000000 /* Section is not cachable. */ 3018b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define IMAGE_SCN_MEM_NOT_PAGED 0x08000000 /* Section is not pageable. */ 3028b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define IMAGE_SCN_MEM_SHARED 0x10000000 /* Section is shareable. */ 3038b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3048b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* COMDAT selection codes. */ 3058b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3068b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define IMAGE_COMDAT_SELECT_NODUPLICATES (1) /* Warn if duplicates. */ 3078b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define IMAGE_COMDAT_SELECT_ANY (2) /* No warning. */ 3088b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define IMAGE_COMDAT_SELECT_SAME_SIZE (3) /* Warn if different size. */ 3098b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define IMAGE_COMDAT_SELECT_EXACT_MATCH (4) /* Warn if different. */ 3108b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define IMAGE_COMDAT_SELECT_ASSOCIATIVE (5) /* Base on other section. */ 3118b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3128b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Magic values that are true for all dos/nt implementations */ 3138b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define DOSMAGIC 0x5a4d 3148b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define NT_SIGNATURE 0x00004550 3158b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3168b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* NT allows long filenames, we want to accommodate this. This may break 3178b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project some of the bfd functions */ 3188b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#undef FILNMLEN 3198b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define FILNMLEN 18 /* # characters in a file name */ 3208b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3218b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3228b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef COFF_IMAGE_WITH_PE 3238b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* The filehdr is only weired in images */ 3248b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3258b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#undef FILHDR 3268b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectstruct external_PE_filehdr 3278b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 3288b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* DOS header fields */ 3298b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project unsigned short e_magic; /* Magic number, 0x5a4d */ 3308b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project unsigned short e_cblp; /* Bytes on last page of file, 0x90 */ 3318b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project unsigned short e_cp; /* Pages in file, 0x3 */ 3328b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project unsigned short e_crlc; /* Relocations, 0x0 */ 3338b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project unsigned short e_cparhdr; /* Size of header in paragraphs, 0x4 */ 3348b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project unsigned short e_minalloc; /* Minimum extra paragraphs needed, 0x0 */ 3358b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project unsigned short e_maxalloc; /* Maximum extra paragraphs needed, 0xFFFF */ 3368b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project unsigned short e_ss; /* Initial (relative) SS value, 0x0 */ 3378b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project unsigned short e_sp; /* Initial SP value, 0xb8 */ 3388b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project unsigned short e_csum; /* Checksum, 0x0 */ 3398b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project unsigned short e_ip; /* Initial IP value, 0x0 */ 3408b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project unsigned short e_cs; /* Initial (relative) CS value, 0x0 */ 3418b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project unsigned short e_lfarlc; /* File address of relocation table, 0x40 */ 3428b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project unsigned short e_ovno; /* Overlay number, 0x0 */ 3438b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project char e_res[4][2]; /* Reserved words, all 0x0 */ 3448b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project unsigned short e_oemid; /* OEM identifier (for e_oeminfo), 0x0 */ 3458b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project unsigned short e_oeminfo; /* OEM information; e_oemid specific, 0x0 */ 3468b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project char e_res2[10][2]; /* Reserved words, all 0x0 */ 3478b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project host_ulong e_lfanew; /* File address of new exe header, 0x80 */ 3488b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project char dos_message[16][4]; /* other stuff, always follow DOS header */ 3498b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project unsigned int nt_signature; /* required NT signature, 0x4550 */ 3508b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3518b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* From standard header */ 3528b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3538b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project unsigned short f_magic; /* magic number */ 3548b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project unsigned short f_nscns; /* number of sections */ 3558b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project host_ulong f_timdat; /* time & date stamp */ 3568b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project host_ulong f_symptr; /* file pointer to symtab */ 3578b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project host_ulong f_nsyms; /* number of symtab entries */ 3588b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project unsigned short f_opthdr; /* sizeof(optional hdr) */ 3598b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project unsigned short f_flags; /* flags */ 3608b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project}; 3618b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3628b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3638b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define FILHDR struct external_PE_filehdr 3648b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#undef FILHSZ 3658b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define FILHSZ 152 3668b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3678b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 3688b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3698b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projecttypedef struct 3708b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 3718b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project unsigned short magic; /* type of file */ 3728b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project unsigned short vstamp; /* version stamp */ 3738b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project host_ulong tsize; /* text size in bytes, padded to FW bdry*/ 3748b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project host_ulong dsize; /* initialized data " " */ 3758b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project host_ulong bsize; /* uninitialized data " " */ 3768b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project host_ulong entry; /* entry pt. */ 3778b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project host_ulong text_start; /* base of text used for this file */ 3788b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project host_ulong data_start; /* base of all data used for this file */ 3798b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3808b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* NT extra fields; see internal.h for descriptions */ 3818b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project host_ulong ImageBase; 3828b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project host_ulong SectionAlignment; 3838b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project host_ulong FileAlignment; 3848b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project unsigned short MajorOperatingSystemVersion; 3858b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project unsigned short MinorOperatingSystemVersion; 3868b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project unsigned short MajorImageVersion; 3878b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project unsigned short MinorImageVersion; 3888b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project unsigned short MajorSubsystemVersion; 3898b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project unsigned short MinorSubsystemVersion; 3908b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project char Reserved1[4]; 3918b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project host_ulong SizeOfImage; 3928b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project host_ulong SizeOfHeaders; 3938b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project host_ulong CheckSum; 3948b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project unsigned short Subsystem; 3958b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project unsigned short DllCharacteristics; 3968b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project host_ulong SizeOfStackReserve; 3978b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project host_ulong SizeOfStackCommit; 3988b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project host_ulong SizeOfHeapReserve; 3998b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project host_ulong SizeOfHeapCommit; 4008b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project host_ulong LoaderFlags; 4018b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project host_ulong NumberOfRvaAndSizes; 4028b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* IMAGE_DATA_DIRECTORY DataDirectory[IMAGE_NUMBEROF_DIRECTORY_ENTRIES]; */ 4038b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project char DataDirectory[16][2][4]; /* 16 entries, 2 elements/entry, 4 chars */ 4048b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 4058b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} PEAOUTHDR; 4068b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 4078b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 4088b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#undef AOUTSZ 4098b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define AOUTSZ (AOUTHDRSZ + 196) 4108b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 4118b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#undef E_FILNMLEN 4128b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define E_FILNMLEN 18 /* # characters in a file name */ 4138b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 4148b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 4158b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* end of coff/pe.h */ 4168b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 4178b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define DT_NON (0) /* no derived type */ 4188b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define DT_PTR (1) /* pointer */ 4198b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define DT_FCN (2) /* function */ 4208b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define DT_ARY (3) /* array */ 4218b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 4228b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define ISPTR(x) (((x) & N_TMASK) == (DT_PTR << N_BTSHFT)) 4238b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define ISFCN(x) (((x) & N_TMASK) == (DT_FCN << N_BTSHFT)) 4248b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define ISARY(x) (((x) & N_TMASK) == (DT_ARY << N_BTSHFT)) 4258b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 4268b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef __cplusplus 4278b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} 4288b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 4298b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 4308b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif /* _A_OUT_H_ */ 431