Touches most files in bfd/, so likely will be blamed for everything..
[deliverable/binutils-gdb.git] / bfd / tekhex.c
index 943992bf766673ce5ea129ec51bb2dc12f665b38..f5d5160b5cefece3e4c0a638faaa8975ff9b823c 100644 (file)
@@ -1,5 +1,5 @@
 /* BFD backend for Extended Tektronix Hex Format  objects.
-   Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000
+   Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001
    Free Software Foundation, Inc.
    Written by Steve Chamberlain of Cygnus Support <sac@cygnus.com>.
 
@@ -107,7 +107,7 @@ static asymbol *tekhex_make_empty_symbol PARAMS ((bfd *));
 static int tekhex_sizeof_headers PARAMS ((bfd *, boolean));
 static boolean tekhex_write_object_contents PARAMS ((bfd *));
 static void out PARAMS ((bfd *, int, char *, char *));
-static void writesym PARAMS ((char **, CONST char *));
+static void writesym PARAMS ((char **, const char *));
 static void writevalue PARAMS ((char **, bfd_vma));
 static boolean tekhex_set_section_contents
  PARAMS ((bfd*, sec_ptr, PTR, file_ptr, bfd_size_type));
@@ -354,11 +354,11 @@ find_chunk (abfd, vma)
     }
   if (!d)
     {
-      char *sname = bfd_alloc (abfd, 12);
+      char *sname = bfd_alloc (abfd, (bfd_size_type) 12);
 
       /* No chunk for this address, so make one up */
-      d = (struct data_struct *)
-       bfd_alloc (abfd, sizeof (struct data_struct));
+      d = ((struct data_struct *)
+          bfd_alloc (abfd, (bfd_size_type) sizeof (struct data_struct)));
 
       if (!sname || !d)
        return NULL;
@@ -394,7 +394,7 @@ first_phase (abfd, type, src)
      char *src;
 {
   asection *section = bfd_abs_section_ptr;
-  int len;
+  unsigned int len;
   char sym[17];                        /* A symbol can only be 16chars long */
 
   switch (type)
@@ -419,7 +419,7 @@ first_phase (abfd, type, src)
       section = bfd_get_section_by_name (abfd, sym);
       if (section == (asection *) NULL)
        {
-         char *n = bfd_alloc (abfd, len + 1);
+         char *n = bfd_alloc (abfd, (bfd_size_type) len + 1);
 
          if (!n)
            abort ();           /* FIXME */
@@ -445,10 +445,10 @@ first_phase (abfd, type, src)
            case '8':
              /* Symbols, add to section */
              {
+               bfd_size_type amt = sizeof (tekhex_symbol_type);
                tekhex_symbol_type *new =
-               (tekhex_symbol_type *) bfd_alloc (abfd,
-                                              sizeof (tekhex_symbol_type));
-               char type = (*src);
+                 (tekhex_symbol_type *) bfd_alloc (abfd, amt);
+               char stype = (*src);
 
                if (!new)
                  abort ();     /* FIXME */
@@ -459,12 +459,12 @@ first_phase (abfd, type, src)
                new->prev = abfd->tdata.tekhex_data->symbols;
                abfd->tdata.tekhex_data->symbols = new;
                len = getsym (sym, &src);
-               new->symbol.name = bfd_alloc (abfd, len + 1);
+               new->symbol.name = bfd_alloc (abfd, (bfd_size_type) len + 1);
                if (!new->symbol.name)
                  abort ();     /* FIXME */
                memcpy ((char *) (new->symbol.name), sym, len + 1);
                new->symbol.section = section;
-               if (type <= '4')
+               if (stype <= '4')
                  new->symbol.flags = (BSF_GLOBAL | BSF_EXPORT);
                else
                  new->symbol.flags = BSF_LOCAL;
@@ -496,17 +496,17 @@ pass_over (abfd, func)
       char type;
 
       /* Find first '%' */
-      eof = (boolean) (bfd_read (src, 1, 1, abfd) != 1);
+      eof = (boolean) (bfd_bread (src, (bfd_size_type) 1, abfd) != 1);
       while (*src != '%' && !eof)
        {
-         eof = (boolean) (bfd_read (src, 1, 1, abfd) != 1);
+         eof = (boolean) (bfd_bread (src, (bfd_size_type) 1, abfd) != 1);
        }
       if (eof)
        break;
       src++;
 
       /* Fetch the type and the length and the checksum */
-      if (bfd_read (src, 1, 5, abfd) != 5)
+      if (bfd_bread (src, (bfd_size_type) 5, abfd) != 5)
        abort (); /* FIXME */
 
       type = src[2];
@@ -516,7 +516,7 @@ pass_over (abfd, func)
 
       chars_on_line = HEX (src) - 5;   /* Already read five char */
 
-      if (bfd_read (src, 1, chars_on_line, abfd) != chars_on_line)
+      if (bfd_bread (src, (bfd_size_type) chars_on_line, abfd) != chars_on_line)
        abort (); /* FIXME */
       src[chars_on_line] = 0;  /* put a null at the end */
 
@@ -555,8 +555,9 @@ static boolean
 tekhex_mkobject (abfd)
      bfd *abfd;
 {
-  tdata_type *tdata = (tdata_type *) bfd_alloc (abfd, sizeof (tdata_type));
+  tdata_type *tdata;
 
+  tdata = (tdata_type *) bfd_alloc (abfd, (bfd_size_type) sizeof (tdata_type));
   if (!tdata)
     return false;
   abfd->tdata.tekhex_data = tdata;
@@ -580,7 +581,7 @@ tekhex_object_p (abfd)
   tekhex_init ();
 
   if (bfd_seek (abfd, (file_ptr) 0, SEEK_SET) != 0
-      || bfd_read (b, 1, 4, abfd) != 4)
+      || bfd_bread (b, (bfd_size_type) 4, abfd) != 4)
     return NULL;
 
   if (b[0] != '%' || !ISHEX (b[1]) || !ISHEX (b[2]) || !ISHEX (b[3]))
@@ -597,7 +598,7 @@ move_section_contents (abfd, section, locationp, offset, count, get)
      bfd *abfd;
      asection *section;
      PTR locationp;
-     file_ptr offset ATTRIBUTE_UNUSED;
+     file_ptr offset;
      bfd_size_type count;
      boolean get;
 {
@@ -606,10 +607,11 @@ move_section_contents (abfd, section, locationp, offset, count, get)
   bfd_vma prev_number = 1;     /* Nothing can have this as a high bit*/
   struct data_struct *d = (struct data_struct *) NULL;
 
+  BFD_ASSERT (offset == 0);
   for (addr = section->vma; count != 0; count--, addr++)
     {
-
-      bfd_vma chunk_number = addr & ~CHUNK_MASK;       /* Get high bits of address */
+      /* Get high bits of address.  */
+      bfd_vma chunk_number = addr & ~(bfd_vma) CHUNK_MASK;
       bfd_vma low_bits = addr & CHUNK_MASK;
 
       if (chunk_number != prev_number)
@@ -689,7 +691,7 @@ tekhex_set_section_contents (abfd, section, locationp, offset, bytes_to_do)
        {
          if (s->flags & SEC_LOAD)
            {
-             for (vma = s->vma & ~CHUNK_MASK;
+             for (vma = s->vma & ~(bfd_vma) CHUNK_MASK;
                   vma < s->vma + s->_raw_size;
                   vma += CHUNK_MASK)
                find_chunk (abfd, vma);
@@ -699,7 +701,8 @@ tekhex_set_section_contents (abfd, section, locationp, offset, bytes_to_do)
     }
   if (section->flags & (SEC_LOAD | SEC_ALLOC))
     {
-      move_section_contents (abfd, section, locationp, offset, bytes_to_do, false);
+      move_section_contents (abfd, section, locationp, offset, bytes_to_do,
+                            false);
       return true;
     }
   else
@@ -740,7 +743,7 @@ writevalue (dst, value)
 static void
 writesym (dst, sym)
      char **dst;
-     CONST char *sym;
+     const char *sym;
 {
   char *p = *dst;
   int len = (sym ? strlen (sym) : 0);
@@ -797,11 +800,11 @@ out (abfd, type, start, end)
   sum += sum_block[(unsigned char) front[2]];
   sum += sum_block[(unsigned char) front[3]];  /* type */
   TOHEX (front + 4, sum);
-  if (bfd_write (front, 1, 6, abfd) != 6)
+  if (bfd_bwrite (front, (bfd_size_type) 6, abfd) != 6)
     abort ();
   end[0] = '\n';
   wrlen = end - start + 1;
-  if (bfd_write (start, 1, wrlen, abfd) != wrlen)
+  if (bfd_bwrite (start, wrlen, abfd) != wrlen)
     abort ();
 }
 
@@ -826,7 +829,7 @@ tekhex_write_object_contents (abfd)
     {
       int low;
 
-      CONST int span = 32;
+      const int span = 32;
       int addr;
 
       /* Write it in blocks of 32 bytes */
@@ -876,10 +879,10 @@ tekhex_write_object_contents (abfd)
 
          if (section_code != '?')
            {                   /* do not include debug symbols */
-             asymbol *s = *p;
+             asymbol *sym = *p;
              char *dst = buffer;
 
-             writesym (&dst, s->section->name);
+             writesym (&dst, sym->section->name);
 
              switch (section_code)
                {
@@ -911,15 +914,15 @@ tekhex_write_object_contents (abfd)
                  return false;
                }
 
-             writesym (&dst, s->name);
-             writevalue (&dst, s->value + s->section->vma);
+             writesym (&dst, sym->name);
+             writevalue (&dst, sym->value + sym->section->vma);
              out (abfd, '3', buffer, dst);
            }
        }
     }
 
   /* And the terminator */
-  if (bfd_write ("%0781010\n", 1, 9, abfd) != 9)
+  if (bfd_bwrite ("%0781010\n", (bfd_size_type) 9, abfd) != 9)
     abort ();
   return true;
 }
@@ -937,8 +940,8 @@ static asymbol *
 tekhex_make_empty_symbol (abfd)
      bfd *abfd;
 {
-  tekhex_symbol_type *new =
-  (tekhex_symbol_type *) bfd_zalloc (abfd, sizeof (struct tekhex_symbol_struct));
+  bfd_size_type amt = sizeof (struct tekhex_symbol_struct);
+  tekhex_symbol_type *new = (tekhex_symbol_type *) bfd_zalloc (abfd, amt);
 
   if (!new)
     return NULL;
@@ -975,7 +978,7 @@ tekhex_print_symbol (abfd, filep, symbol, how)
 
     case bfd_print_symbol_all:
       {
-       CONST char *section_name = symbol->section->name;
+       const char *section_name = symbol->section->name;
 
        bfd_print_symbol_vandf (abfd, (PTR) file, symbol);
 
This page took 0.029006 seconds and 4 git commands to generate.