Apply Tim walls octest vs bytes patch
[deliverable/binutils-gdb.git] / bfd / bfd-in2.h
index ec82e0c3256d3aec85b3ca9706d793e3fae44e00..a9b981c398057bd760670cce877d3c98b32cdd1a 100644 (file)
@@ -1066,22 +1066,25 @@ typedef struct sec
 
    bfd_vma lma;
 
-         /* The size of the section in bytes, as it will be output.
-           contains a value even if the section has no contents (e.g., the
-           size of <<.bss>>). This will be filled in after relocation */
+         /* The size of the section in octets, as it will be output.
+           Contains a value even if the section has no contents (e.g., the
+           size of <<.bss>>).  This will be filled in after relocation.  */
 
    bfd_size_type _cooked_size;
 
-         /* The original size on disk of the section, in bytes.  Normally this
+         /* The original size on disk of the section, in octets.  Normally this
            value is the same as the size, but if some relaxing has
            been done, then this value will be bigger.  */
 
    bfd_size_type _raw_size;
 
          /* If this section is going to be output, then this value is the
-           offset into the output section of the first byte in the input
-           section. E.g., if this was going to start at the 100th byte in
-           the output section, this value would be 100. */
+           offset in *bytes* into the output section of the first byte in the
+           input section (byte ==> smallest addressable unit on the
+           target).  In most cases, if this was going to start at the
+           100th octet (8-bit quantity) in the output section, this value
+           would be 100.  However, if the target byte size is 16 bits
+           (bfd_octets_per_byte is "2"), this value would be 50. */ 
 
    bfd_vma output_offset;
 
@@ -1335,6 +1338,9 @@ enum bfd_architecture
   bfd_arch_rs6000,     /* IBM RS/6000 */
   bfd_arch_hppa,       /* HP PA RISC */
   bfd_arch_d10v,       /* Mitsubishi D10V */
+#define bfd_mach_d10v          0
+#define bfd_mach_d10v_ts2      2
+#define bfd_mach_d10v_ts3      3
   bfd_arch_d30v,       /* Mitsubishi D30V */
   bfd_arch_z8k,        /* Zilog Z8000 */
 #define bfd_mach_z8001         1
@@ -1369,9 +1375,11 @@ enum bfd_architecture
 #define bfd_mach_arc_base 0
   bfd_arch_m32r,       /* Mitsubishi M32R/D */
 #define bfd_mach_m32r          0  /* backwards compatibility */
+#define bfd_mach_m32rx         'x'
   bfd_arch_mn10200,    /* Matsushita MN10200 */
   bfd_arch_mn10300,    /* Matsushita MN10300 */
 #define bfd_mach_mn10300               300
+#define bfd_mach_am33               330
   bfd_arch_fr30,
 #define bfd_mach_fr30          0x46523330
   bfd_arch_mcore,
@@ -1441,6 +1449,13 @@ const char *
 bfd_printable_arch_mach
  PARAMS ((enum bfd_architecture arch, unsigned long machine));
 
+int 
+bfd_octets_per_byte PARAMS ((bfd *abfd));
+
+int 
+bfd_arch_mach_octets_per_byte PARAMS ((enum bfd_architecture arch,
+                                       unsigned long machine));
+
 typedef enum bfd_reloc_status
 {
         /* No errors detected */
@@ -1826,6 +1841,17 @@ The GNU linker currently doesn't do any of this optimizing. */
   BFD_RELOC_ALPHA_ELF_LITERAL,
   BFD_RELOC_ALPHA_LITUSE,
 
+/* The BFD_RELOC_ALPHA_USER_* relocations are used by the assembler to
+process the explicit !<reloc>!sequence relocations, and are mapped
+into the normal relocations at the end of processing. */
+  BFD_RELOC_ALPHA_USER_LITERAL,
+  BFD_RELOC_ALPHA_USER_LITUSE_BASE,
+  BFD_RELOC_ALPHA_USER_LITUSE_BYTOFF,
+  BFD_RELOC_ALPHA_USER_LITUSE_JSR,
+  BFD_RELOC_ALPHA_USER_GPDISP,
+  BFD_RELOC_ALPHA_USER_GPRELHIGH,
+  BFD_RELOC_ALPHA_USER_GPRELLOW,
+
 /* The HINT relocation indicates a value that should be filled into the
 "hint" field of a jmp/jsr/ret instruction, for possible branch-
 prediction logic which may be provided on some processors. */
@@ -2303,7 +2329,7 @@ typedef struct symbol_cache_entry
           <<BSF_GLOBAL>> */
 
         /* The symbol is a debugging record. The value has an arbitary
-          meaning. */
+          meaning, unless BSF_DEBUGGING_RELOC is also set.  */
 #define BSF_DEBUGGING  0x08
 
         /* The symbol denotes a function entry point.  Used in ELF,
@@ -2361,6 +2387,11 @@ typedef struct symbol_cache_entry
           others someday.  */
 #define BSF_OBJECT        0x10000
 
+        /* This symbol is a debugging symbol.  The value is the offset
+          into the section of the data.  BSF_DEBUGGING should be set
+          as well.  */
+#define BSF_DEBUGGING_RELOC 0x20000
+
   flagword flags;
 
         /* A pointer to the section to which this symbol is
@@ -3071,6 +3102,22 @@ bfd_set_format PARAMS ((bfd *abfd, bfd_format format));
 CONST char *
 bfd_format_string PARAMS ((bfd_format format));
 
+
+/* Return an upper bound on the number of bytes required to store a
+   copy of ABFD's program header table entries.  Return -1 if an error
+   occurs; bfd_get_error will return an appropriate code.  */
+extern long bfd_get_elf_phdr_upper_bound PARAMS ((bfd *abfd));
+
+/* Copy ABFD's program header table entries to *PHDRS.  The entries
+   will be stored as an array of Elf_Internal_Phdr structures, as
+   defined in include/elf/internal.h.  To find out how large the
+   buffer needs to be, call bfd_get_elf_phdr_upper_bound.
+
+   Return the number of program header table entries read, or -1 if an
+   error occurs; bfd_get_error will return an appropriate code.  */
+extern int bfd_get_elf_phdrs PARAMS ((bfd *abfd, void *phdrs));
+
+
 #ifdef __cplusplus
 }
 #endif
This page took 0.025098 seconds and 4 git commands to generate.