[BACK]Return to elf32-am33lin.c CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / src / external / gpl3 / binutils.old / dist / bfd

Annotation of src/external/gpl3/binutils.old/dist/bfd/elf32-am33lin.c, Revision 1.1.1.1

1.1       christos    1: /* Matsushita AM33/2.0 support for 32-bit GNU/Linux ELF
                      2:    Copyright 2003, 2005, 2007
                      3:    Free Software Foundation, Inc.
                      4:
                      5:    This file is part of BFD, the Binary File Descriptor library.
                      6:
                      7:    This program is free software; you can redistribute it and/or modify
                      8:    it under the terms of the GNU General Public License as published by
                      9:    the Free Software Foundation; either version 3 of the License, or
                     10:    (at your option) any later version.
                     11:
                     12:    This program is distributed in the hope that it will be useful,
                     13:    but WITHOUT ANY WARRANTY; without even the implied warranty of
                     14:    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
                     15:    GNU General Public License for more details.
                     16:
                     17:    You should have received a copy of the GNU General Public License
                     18:    along with this program; if not, write to the Free Software
                     19:    Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
                     20:    MA 02110-1301, USA.  */
                     21:
                     22: #include "sysdep.h"
                     23: #include "bfd.h"
                     24: #include "elf-bfd.h"
                     25: #include "elf/mn10300.h"
                     26:
                     27: #define elf_symbol_leading_char 0
                     28:
                     29: #define TARGET_LITTLE_SYM      bfd_elf32_am33lin_vec
                     30: #define TARGET_LITTLE_NAME     "elf32-am33lin"
                     31: #define ELF_ARCH               bfd_arch_mn10300
                     32: #define ELF_MACHINE_CODE       EM_MN10300
                     33: #define ELF_MACHINE_ALT1       EM_CYGNUS_MN10300
                     34: #define ELF_MAXPAGESIZE                0x1000
                     35:
                     36: /* Rename global functions.  */
                     37: #define _bfd_mn10300_elf_merge_private_bfd_data  _bfd_am33_elf_merge_private_bfd_data
                     38: #define _bfd_mn10300_elf_object_p                _bfd_am33_elf_object_p
                     39: #define _bfd_mn10300_elf_final_write_processing  _bfd_am33_elf_final_write_processing
                     40:
                     41: /* Support for core dump NOTE sections.  */
                     42: static bfd_boolean
                     43: elf32_am33lin_grok_prstatus (bfd *abfd, Elf_Internal_Note *note)
                     44: {
                     45:   int offset;
                     46:   unsigned int size;
                     47:
                     48:   switch (note->descsz)
                     49:     {
                     50:       default:
                     51:        return FALSE;
                     52:
                     53:       case 184:
                     54:       case 188:                /* Linux/am33 */
                     55:        /* pr_cursig */
                     56:        elf_tdata (abfd)->core_signal = bfd_get_16 (abfd, note->descdata + 12);
                     57:
                     58:        /* pr_pid */
                     59:        elf_tdata (abfd)->core_lwpid = bfd_get_32 (abfd, note->descdata + 24);
                     60:
                     61:        /* pr_reg */
                     62:        offset = 72;
                     63:        size = 112;
                     64:
                     65:        break;
                     66:     }
                     67:
                     68:   /* Make a ".reg/999" section.  */
                     69:   return _bfd_elfcore_make_pseudosection (abfd, ".reg", size,
                     70:                                          note->descpos + offset);
                     71: }
                     72:
                     73: static bfd_boolean
                     74: elf32_am33lin_grok_psinfo (bfd *abfd, Elf_Internal_Note *note)
                     75: {
                     76:   switch (note->descsz)
                     77:     {
                     78:       default:
                     79:        return FALSE;
                     80:
                     81:       case 124:                /* Linux/am33 elf_prpsinfo */
                     82:        elf_tdata (abfd)->core_program
                     83:         = _bfd_elfcore_strndup (abfd, note->descdata + 28, 16);
                     84:        elf_tdata (abfd)->core_command
                     85:         = _bfd_elfcore_strndup (abfd, note->descdata + 44, 80);
                     86:     }
                     87:
                     88:   /* Note that for some reason, a spurious space is tacked
                     89:      onto the end of the args in some (at least one anyway)
                     90:      implementations, so strip it off if it exists.  */
                     91:
                     92:   {
                     93:     char *command = elf_tdata (abfd)->core_command;
                     94:     int n = strlen (command);
                     95:
                     96:     if (0 < n && command[n - 1] == ' ')
                     97:       command[n - 1] = '\0';
                     98:   }
                     99:
                    100:   return TRUE;
                    101: }
                    102:
                    103: #define elf_backend_grok_prstatus      elf32_am33lin_grok_prstatus
                    104: #define elf_backend_grok_psinfo                elf32_am33lin_grok_psinfo
                    105:
                    106: #include "elf-m10300.c"

CVSweb <webmaster@jp.NetBSD.org>