/* $Id$ */
/*proto*
-@section typedef bfd
+@section @code{typedef bfd}
-Pointers to bfd structs are the cornerstone of any application using
-@code{libbfd}. References though the BFD and to data in the BFD give the
-entire BFD functionality.
+A BFD is has type @code{bfd}; objects of this type are the cornerstone
+of any application using @code{libbfd}. References though the BFD and
+to data in the BFD give the entire BFD functionality.
-Here is the BFD struct itself. This contains the major data about
-the file, and contains pointers to the rest of the data.
+Here is the struct used to define the type @code{bfd}. This contains
+the major data about the file, and contains pointers to the rest of
+the data.
*+++
$ long mtime;
-For output files, channel we locked (is this used?).
+Reserved for an unimplemented file locking extension.
$int ifd;
bfd_nonrepresentable_section
};
-#if 1 || !defined(ANSI_LIBRARIES) && !defined(__STDC__)
+#if !defined(ANSI_LIBRARIES) && !defined(__STDC__) || HOST_SYS==SUN4_SYS
char *
strerror (code)
int code;
* F_AR32WR file has byte ordering of an AR32WR machine (e.g. vax)
*/
-#define F_RELFLG (0x0001)
-#define F_EXEC (0x0002)
-#define F_LNNO (0x0004)
-#define F_LSYMS (0x0008)
-
-
-
-#define I386MAGIC 0x14c
+#define F_RELFLG 0000001
+#define F_EXEC 0000002
+#define F_LNNO 0000004
+#define F_LSYMS 0000010
+#define F_MINMAL 0000020
+#define F_UPDATE 0000040
+#define F_SWABD 0000100
+#define F_AR16WR 0000200
+#define F_AR32WR 0000400
+#define F_AR32W 0001000
+#define F_PATCH 0002000
+#define F_NODF 0002000
+
+#define I386MAGIC 0514
#define I386BADMAG(x) (((x).f_magic!=I386MAGIC))
+#define I386AOUTMAGIC 0413
+#define I386AOUTVSTAMP 0000
+#define COFF_TIMESTAMP
#define FILHDR struct external_filehdr
#define _TEXT ".text"
#define _DATA ".data"
#define _BSS ".bss"
-
+#define _COMMENT ".comment"
/*
* s_flags "type"
*/
#define DEFAULT_DATA_SECTION_ALIGNMENT 4
#define DEFAULT_BSS_SECTION_ALIGNMENT 4
#define DEFAULT_TEXT_SECTION_ALIGNMENT 4
+#define DEFAULT_COMMENT_SECTION_ALIGNMENT 4
/* For new sections we havn't heard of before */
#define DEFAULT_SECTION_ALIGNMENT 4
};
-/* Motorola 68000/68008/68010/68020 */
+/* Motorola 68000/68008/68010/68020 file magic numbers*/
#define MC68MAGIC 0520
#define MC68KWRMAGIC 0520 /* writeable text segments */
#define MC68TVMAGIC 0521
#define M68MAGIC 0210
#define M68TVMAGIC 0211
-#define M68KBADMAG(x) (((x).f_magic!=MC68MAGIC) && ((x).f_magic!=MC68KWRMAGIC) && ((x).f_magic!=MC68TVMAGIC) && \
- ((x).f_magic!=MC68KROMAGIC) && ((x).f_magic!=MC68KPGMAGIC) && ((x).f_magic!=M68MAGIC) && ((x).f_magic!=M68TVMAGIC) )
+# define COFF_TIMESTAMP
+# define XPG3_FLAG
+# define MC68KBCSMAGIC 0526
+#define M68KBADMAG(x) \
+ (((x).f_magic!=MC68MAGIC) && ((x).f_magic!=MC68KWRMAGIC) \
+ && ((x).f_magic!=MC68TVMAGIC) && ((x).f_magic!=MC68KROMAGIC) \
+ && ((x).f_magic!=MC68KPGMAGIC) && ((x).f_magic!=M68MAGIC) \
+ && ((x).f_magic!=M68TVMAGIC) && ((x).f_magic!=MC68KBCSMAGIC) )
+
#define AOUTSZ (sizeof(AOUTHDR))
+
+/* a.out header magic numbers */
+
+#define MC68PGMAGIC 0413 /* Page aligned shared a.out */
+#define MC68WRMAGIC 0407 /* Private text */
+#define MC68ROMAGIC 0410 /* Shared text */
+#define MC68PGLIBMAGIC 0443 /* Page aligned shared lib */
+#define MC68AOUTVSTAMP 0000 /* Version stamp */
/********************** SECTION HEADER **********************/
#define _TEXT ".text"
#define _DATA ".data"
#define _BSS ".bss"
+#define _TV ".tv"
+#define _NL ".nl"
+#define _INIT ".init"
+#define _FINI ".fini"
#define SCNHDR struct external_scnhdr
* F_AR32WR file has byte ordering of an AR32WR machine (e.g. vax)
*/
-#define F_RELFLG (0x0001)
-#define F_EXEC (0x0002)
-#define F_LNNO (0x0004)
-#define F_LSYMS (0x0008)
-#define F_AR32WR (0x0010)
-#define F_AR32W 0x200
+#define F_RELFLG 0000001
+#define F_EXEC 0000002
+#define F_LNNO 0000004
+#define F_LSYMS 0000010
+#define F_MINMAL 0000020
+#define F_UPDATE 0000040
+#define F_SWABD 0000100
+#define F_AR16WR 0000200
+#define F_AR32WR 0000400
+#define F_AR32W 0001000
+#define F_PATCH 0002000
+#define F_NODF 0002000
+#define F_XPG3 0004000
+#define F_MC68NULLPTR 0020000
+
/********************** AOUT "OPTIONAL HEADER" **********************/
struct internal_aouthdr {
short magic; /* type of file */
#endif
};
+/*
+ * names of "special" sections
+ */
+#define _TEXT ".text"
+#define _DATA ".data"
+#define _BSS ".bss"
+#define _COMMENT ".comment"
/*
* s_flags "type"