*** empty log message ***
[deliverable/binutils-gdb.git] / bfd / aoutf1.h
index 36d8a7992b4bb06bb84377b19dc0eb0c71db78d4..8e41b61d93eccf2d825c29bc257e6580e7cce67e 100644 (file)
@@ -1,6 +1,6 @@
 /* A.out "format 1" file handling code for BFD.
    Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 2000,
-   2001, 2002, 2003, 2004, 2005
+   2001, 2002, 2003, 2004, 2005, 2006
    Free Software Foundation, Inc.
    Written by Cygnus Support.
 
@@ -143,11 +143,6 @@ sunos_set_arch_mach (bfd *abfd, enum machine_type machtype)
       machine = 0;
       break;
 
-    case M_29K:
-      arch = bfd_arch_a29k;
-      machine = 0;
-      break;
-
     case M_HPUX:
       arch = bfd_arch_m68k;
       machine = 0;
@@ -173,7 +168,6 @@ choose_reloc_size (bfd *abfd)
   switch (bfd_get_arch (abfd))
     {
     case bfd_arch_sparc:
-    case bfd_arch_a29k:
       obj_reloc_entry_size (abfd) = RELOC_EXT_SIZE;
       break;
     default:
@@ -229,9 +223,6 @@ sunos_write_object_contents (bfd *abfd)
     case bfd_arch_i386:
       N_SET_MACHTYPE (*execp, M_386);
       break;
-    case bfd_arch_a29k:
-      N_SET_MACHTYPE (*execp, M_29K);
-      break;
     default:
       N_SET_MACHTYPE (*execp, M_UNKNOWN);
     }
@@ -295,7 +286,7 @@ struct external_sparc_core
   int c_magic;                         /* Corefile magic number.  */
   int c_len;                           /* Sizeof (struct core).  */
 #define        SPARC_CORE_LEN  432
-  int c_regs[19];                      /* General purpose registers -- MACHDEP SIZE.  */
+  struct regs c_regs;                  /* General purpose registers -- MACHDEP SIZE.  */
   struct external_exec c_aouthdr;      /* A.out header.  */
   int c_signo;                         /* Killing signal, if any.  */
   int c_tsize;                         /* Text size (bytes).  */
@@ -318,7 +309,7 @@ struct external_solaris_bcp_core
   int c_magic;                         /* Corefile magic number.  */
   int c_len;                           /* Sizeof (struct core).  */
 #define        SOLARIS_BCP_CORE_LEN    456
-  int c_regs[19];                      /* General purpose registers -- MACHDEP SIZE.  */
+  struct regs c_regs;                  /* General purpose registers -- MACHDEP SIZE.  */
   int c_exdata_vp;                     /* Exdata structure.  */
   int c_exdata_tsize;
   int c_exdata_dsize;
@@ -396,7 +387,7 @@ swapcore_sun3 (bfd *abfd, char *ext, struct internal_sunos_core *intcore)
 
   intcore->c_magic = H_GET_32 (abfd, &extcore->c_magic);
   intcore->c_len = H_GET_32 (abfd, &extcore->c_len);
-  intcore->c_regs_pos = (long) (((struct external_sun3_core *) 0)->c_regs);
+  intcore->c_regs_pos = offsetof (struct external_sun3_core, c_regs);
   intcore->c_regs_size = sizeof (extcore->c_regs);
 #if ARCH_SIZE == 64
   aout_64_swap_exec_header_in
@@ -410,10 +401,10 @@ swapcore_sun3 (bfd *abfd, char *ext, struct internal_sunos_core *intcore)
   intcore->c_data_addr = N_DATADDR (intcore->c_aouthdr);
   intcore->c_ssize = H_GET_32 (abfd, &extcore->c_ssize);
   memcpy (intcore->c_cmdname, extcore->c_cmdname, sizeof (intcore->c_cmdname));
-  intcore->fp_stuff_pos = (long) (((struct external_sun3_core *) 0)->fp_stuff);
+  intcore->fp_stuff_pos = offsetof (struct external_sun3_core, fp_stuff);
   /* FP stuff takes up whole rest of struct, except c_ucode.  */
   intcore->fp_stuff_size = intcore->c_len - (sizeof extcore->c_ucode) -
-    (file_ptr) (((struct external_sun3_core *) 0)->fp_stuff);
+    offsetof (struct external_sun3_core, fp_stuff);
   /* Ucode is the last thing in the struct -- just before the end.  */
   intcore->c_ucode = H_GET_32 (abfd,
                               (intcore->c_len
@@ -431,7 +422,7 @@ swapcore_sparc (bfd *abfd, char *ext, struct internal_sunos_core *intcore)
 
   intcore->c_magic = H_GET_32 (abfd, &extcore->c_magic);
   intcore->c_len = H_GET_32 (abfd, &extcore->c_len);
-  intcore->c_regs_pos = (long) (((struct external_sparc_core *) 0)->c_regs);
+  intcore->c_regs_pos = offsetof (struct external_sparc_core, c_regs);
   intcore->c_regs_size = sizeof (extcore->c_regs);
 #if ARCH_SIZE == 64
   aout_64_swap_exec_header_in
@@ -445,10 +436,10 @@ swapcore_sparc (bfd *abfd, char *ext, struct internal_sunos_core *intcore)
   intcore->c_data_addr = N_DATADDR (intcore->c_aouthdr);
   intcore->c_ssize = H_GET_32 (abfd, &extcore->c_ssize);
   memcpy (intcore->c_cmdname, extcore->c_cmdname, sizeof (intcore->c_cmdname));
-  intcore->fp_stuff_pos = (long) (((struct external_sparc_core *) 0)->fp_stuff);
+  intcore->fp_stuff_pos = offsetof (struct external_sparc_core, fp_stuff);
   /* FP stuff takes up whole rest of struct, except c_ucode.  */
   intcore->fp_stuff_size = intcore->c_len - (sizeof extcore->c_ucode) -
-    (file_ptr) (((struct external_sparc_core *) 0)->fp_stuff);
+    offsetof (struct external_sparc_core, fp_stuff);
   /* Ucode is the last thing in the struct -- just before the end.  */
   intcore->c_ucode = H_GET_32 (abfd,
                               (intcore->c_len
@@ -471,7 +462,7 @@ swapcore_sparc (bfd *abfd, char *ext, struct internal_sunos_core *intcore)
 #define SPARC_USRSTACK_SPARC2 ((bfd_vma)0xf8000000)
 #define SPARC_USRSTACK_SPARC10 ((bfd_vma)0xf0000000)
   {
-    bfd_vma sp = H_GET_32 (abfd, &((struct regs *) &extcore->c_regs[0])->r_o6);
+    bfd_vma sp = H_GET_32 (abfd, &extcore->c_regs.r_o6);
     if (sp < SPARC_USRSTACK_SPARC10)
       intcore->c_stacktop = SPARC_USRSTACK_SPARC10;
     else
@@ -489,7 +480,7 @@ swapcore_solaris_bcp (bfd *abfd, char *ext, struct internal_sunos_core *intcore)
 
   intcore->c_magic = H_GET_32 (abfd, &extcore->c_magic);
   intcore->c_len = H_GET_32 (abfd, &extcore->c_len);
-  intcore->c_regs_pos = (long) (((struct external_solaris_bcp_core *) 0)->c_regs);
+  intcore->c_regs_pos = offsetof (struct external_solaris_bcp_core, c_regs);
   intcore->c_regs_size = sizeof (extcore->c_regs);
 
   /* The Solaris BCP exdata structure does not contain an a_syms field,
@@ -510,10 +501,10 @@ swapcore_solaris_bcp (bfd *abfd, char *ext, struct internal_sunos_core *intcore)
   intcore->c_ssize = H_GET_32 (abfd, &extcore->c_ssize);
   memcpy (intcore->c_cmdname, extcore->c_cmdname, sizeof (intcore->c_cmdname));
   intcore->fp_stuff_pos =
-    (long) (((struct external_solaris_bcp_core *) 0)->fp_stuff);
+    offsetof (struct external_solaris_bcp_core, fp_stuff);
   /* FP stuff takes up whole rest of struct, except c_ucode.  */
   intcore->fp_stuff_size = intcore->c_len - (sizeof extcore->c_ucode) -
-    (file_ptr) (((struct external_solaris_bcp_core *) 0)->fp_stuff);
+    offsetof (struct external_solaris_bcp_core, fp_stuff);
   /* Ucode is the last thing in the struct -- just before the end */
   intcore->c_ucode = H_GET_32 (abfd,
                               (intcore->c_len
@@ -536,7 +527,7 @@ swapcore_solaris_bcp (bfd *abfd, char *ext, struct internal_sunos_core *intcore)
 #define SPARC_USRSTACK_SPARC2 ((bfd_vma)0xf8000000)
 #define SPARC_USRSTACK_SPARC10 ((bfd_vma)0xf0000000)
   {
-    bfd_vma sp = H_GET_32 (abfd, &((struct regs *) &extcore->c_regs[0])->r_o6);
+    bfd_vma sp = H_GET_32 (abfd, &extcore->c_regs.r_o6);
     if (sp < SPARC_USRSTACK_SPARC10)
       intcore->c_stacktop = SPARC_USRSTACK_SPARC10;
     else
@@ -575,6 +566,7 @@ sunos4_core_file_p (bfd *abfd)
       struct internal_sunos_core internal_sunos_core;
       char external_core[1];
     } *mergem;
+  flagword flags;
 
   if (bfd_bread ((void *) longbuf, (bfd_size_type) sizeof (longbuf), abfd)
       != sizeof (longbuf))
@@ -636,28 +628,31 @@ sunos4_core_file_p (bfd *abfd)
   abfd->tdata.sun_core_data->hdr = core;
 
   /* Create the sections.  */
-  core_stacksec (abfd) = bfd_make_section_anyway (abfd, ".stack");
+  flags = SEC_ALLOC + SEC_LOAD + SEC_HAS_CONTENTS;
+  core_stacksec (abfd) = bfd_make_section_anyway_with_flags (abfd, ".stack",
+                                                            flags);
   if (core_stacksec (abfd) == NULL)
     /* bfd_release frees everything allocated after it's arg.  */
     goto loser;
 
-  core_datasec (abfd) = bfd_make_section_anyway (abfd, ".data");
+  flags = SEC_ALLOC + SEC_LOAD + SEC_HAS_CONTENTS;
+  core_datasec (abfd) = bfd_make_section_anyway_with_flags (abfd, ".data",
+                                                           flags);
   if (core_datasec (abfd) == NULL)
     goto loser;
 
-  core_regsec (abfd) = bfd_make_section_anyway (abfd, ".reg");
+  flags = SEC_HAS_CONTENTS;
+  core_regsec (abfd) = bfd_make_section_anyway_with_flags (abfd, ".reg",
+                                                          flags);
   if (core_regsec (abfd) == NULL)
     goto loser;
 
-  core_reg2sec (abfd) = bfd_make_section_anyway (abfd, ".reg2");
+  flags = SEC_HAS_CONTENTS;
+  core_reg2sec (abfd) = bfd_make_section_anyway_with_flags (abfd, ".reg2",
+                                                           flags);
   if (core_reg2sec (abfd) == NULL)
     goto loser;
 
-  core_stacksec (abfd)->flags = SEC_ALLOC + SEC_LOAD + SEC_HAS_CONTENTS;
-  core_datasec (abfd)->flags = SEC_ALLOC + SEC_LOAD + SEC_HAS_CONTENTS;
-  core_regsec (abfd)->flags = SEC_HAS_CONTENTS;
-  core_reg2sec (abfd)->flags = SEC_HAS_CONTENTS;
-
   core_stacksec (abfd)->size = core->c_ssize;
   core_datasec (abfd)->size = core->c_dsize;
   core_regsec (abfd)->size = core->c_regs_size;
This page took 0.027917 seconds and 4 git commands to generate.