X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=binutils%2Fsysdump.c;h=c821e8cf457ba54c7ef0093587560b0079a0c46f;hb=4cc782b5919b187ce44ea9d4a66793105aeb07da;hp=891ce1396cc8eb7fc3db56461904b3ca72d8a383;hpb=5a25ad782b1016c0b6d9beac78ec05203f3f9474;p=deliverable%2Fbinutils-gdb.git diff --git a/binutils/sysdump.c b/binutils/sysdump.c index 891ce1396c..c821e8cf45 100644 --- a/binutils/sysdump.c +++ b/binutils/sysdump.c @@ -1,21 +1,22 @@ /* Sysroff object format dumper. - Copyright (C) 1994 Free Software Foundation, Inc. + Copyright (C) 1994, 95, 98, 1999 Free Software Foundation, Inc. -This file is part of GNU Binutils. + This file is part of GNU Binutils. -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2 of the License, or -(at your option) any later version. + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA + 02111-1307, USA. */ /* Written by Steve Chamberlain . @@ -23,31 +24,23 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ This program reads a SYSROFF object file and prints it in an almost human readable form to stdout. */ +#include "bfd.h" +#include "bucomm.h" + #include #include #include #include #include "sysroff.h" -#include -#include "sysdep.h" + #define PROGRAM_VERSION "1.0" -static int h8300; -static int sh; + static int dump = 1; static int segmented_p; static int code; +static int addrsize = 4; static FILE *file; -static char * -xcalloc (a, b) - int a; - int b; -{ - char *r = xmalloc (a, b); - memset (r, 0, a * b); - return r; -} - char * getCHARS (ptr, idx, size, max) unsigned char *ptr; @@ -130,7 +123,8 @@ fillup (ptr) } if (dump) dh (ptr, size); - return size; + + return size - 1; } barray @@ -168,7 +162,7 @@ getINT (ptr, idx, size, max) return 0; } if (size == -2) - size = 4; + size = addrsize; if (size == -1) size = 0; switch (size) @@ -192,14 +186,17 @@ getINT (ptr, idx, size, max) } int -getBITS (ptr, idx, size) +getBITS (ptr, idx, size, max) char *ptr; int *idx; - int size; + int size, max; { int byte = *idx / 8; int bit = *idx % 8; + if (byte >= max) + return 0; + *idx += size; return (ptr[byte] >> (8 - bit - size)) & ((1 << size) - 1); @@ -305,6 +302,7 @@ getone (type) { struct IT_hd dummy; sysroff_swap_hd_in (&dummy); + addrsize = dummy.afl; sysroff_print_hd_out (&dummy); } break; @@ -484,6 +482,10 @@ opt (x) return getone (x); } +#if 0 + +/* This is no longer used. */ + static void unit_info_list () { @@ -502,6 +504,12 @@ unit_info_list () } } +#endif + +#if 0 + +/* This is no longer used. */ + static void object_body_list () { @@ -514,6 +522,8 @@ object_body_list () } } +#endif + static void must (x) int x; @@ -541,7 +551,7 @@ tab (i, s) static void derived_type (); static void -symbol_info () +dump_symbol_info () { tab (1, "SYMBOL INFO"); while (opt (IT_dsy_CODE)) @@ -564,27 +574,27 @@ derived_type () { if (opt (IT_dpp_CODE)) { - symbol_info (); + dump_symbol_info (); must (IT_dpp_CODE); } else if (opt (IT_dfp_CODE)) { - symbol_info (); + dump_symbol_info (); must (IT_dfp_CODE); } else if (opt (IT_den_CODE)) { - symbol_info (); + dump_symbol_info (); must (IT_den_CODE); } else if (opt (IT_den_CODE)) { - symbol_info (); + dump_symbol_info (); must (IT_den_CODE); } else if (opt (IT_dds_CODE)) { - symbol_info (); + dump_symbol_info (); must (IT_dds_CODE); } else if (opt (IT_dar_CODE)) @@ -609,6 +619,10 @@ derived_type () tab (-1, ""); } +#if 0 + +/* This is no longer used. */ + static void program_structure () { @@ -617,12 +631,18 @@ program_structure () { must (IT_dso_CODE); opt (IT_dss_CODE); - symbol_info (); + dump_symbol_info (); must (IT_dps_CODE); } tab (-1, ""); } +#endif + +#if 0 + +/* This is no longer used. */ + static void debug_list () { @@ -636,6 +656,8 @@ debug_list () tab (-1, ""); } +#endif + static void module () { @@ -687,14 +709,14 @@ show_usage (file, status) FILE *file; int status; { - fprintf (file, "Usage: %s [-hV] in-file\n", program_name); + fprintf (file, _("Usage: %s [-hV] in-file\n"), program_name); exit (status); } static void show_help () { - printf ("%s: Print a human readable interpretation of a SYSROFF object file\n", + printf (_("%s: Print a human readable interpretation of a SYSROFF object file\n"), program_name); show_usage (stdout, 0); } @@ -713,6 +735,12 @@ main (ac, av) {NULL, no_argument, 0, 0} }; +#if defined (HAVE_SETLOCALE) && defined (HAVE_LC_MESSAGES) + setlocale (LC_MESSAGES, ""); +#endif + bindtextdomain (PACKAGE, LOCALEDIR); + textdomain (PACKAGE); + program_name = av[0]; xmalloc_set_program_name (program_name); @@ -724,7 +752,7 @@ main (ac, av) show_help (); /*NOTREACHED*/ case 'V': - printf ("GNU %s version %s\n", program_name, PROGRAM_VERSION); + printf (_("GNU %s version %s\n"), program_name, PROGRAM_VERSION); exit (0); /*NOTREACHED*/ case 0: @@ -744,7 +772,7 @@ main (ac, av) if (!input_file) { - fprintf (stderr, "%s: no input file specified\n", + fprintf (stderr, _("%s: no input file specified\n"), program_name); exit (1); } @@ -752,7 +780,7 @@ main (ac, av) file = fopen (input_file, FOPEN_RB); if (!file) { - fprintf (stderr, "%s: cannot open input file %s\n", + fprintf (stderr, _("%s: cannot open input file %s\n"), program_name, input_file); exit (1); }