Index: opcodes/ChangeLog 2003-09-03 Andrew Cagney * dis-init.c (init_disassemble_info): New file and function. * Makefile.am (CFILES): Add "dis-init.c". (libopcodes_la_SOURCES): Add "dis-init.c". (dis-init.lo): Specify dependencies. * Makefile.in: Regenerate. Index: include/ChangeLog 2003-08-27 Andrew Cagney * dis-asm.h (init_disassemble_info): Declare. (INIT_DISASSEMBLE_INFO): Redefine as a call to init_disassemble_info. (INIT_DISASSEMBLE_INFO_NO_ARCH): Ditto. Index: binutils/ChangeLog 2003-09-03 Andrew Cagney * objdump.c: Refer to init_disassemble_info in comments. (disassemble_data): Replace INIT_DISASSEMBLE_INFO with init_disassemble_info. Index: binutils/objdump.c =================================================================== RCS file: /cvs/src/src/binutils/objdump.c,v retrieving revision 1.76 diff -u -r1.76 objdump.c --- binutils/objdump.c 3 Sep 2003 08:26:47 -0000 1.76 +++ binutils/objdump.c 3 Sep 2003 23:03:47 -0000 @@ -66,7 +66,7 @@ #include "aout/aout64.h" #ifdef NEED_DECLARATION_FPRINTF -/* This is needed by INIT_DISASSEMBLE_INFO. */ +/* This is needed by init_disassemble_info(). */ extern int fprintf (FILE *, const char *, ...); #endif @@ -1789,7 +1789,7 @@ /* Sort the symbols into section and symbol order. */ qsort (sorted_syms, sorted_symcount, sizeof (asymbol *), compare_symbols); - INIT_DISASSEMBLE_INFO (disasm_info, stdout, fprintf); + init_disassemble_info (&disasm_info, stdout, fprintf); disasm_info.application_data = (void *) &aux; aux.abfd = abfd; Index: include/dis-asm.h =================================================================== RCS file: /cvs/src/src/include/dis-asm.h,v retrieving revision 1.44 diff -u -r1.44 dis-asm.h --- include/dis-asm.h 7 Aug 2003 02:25:49 -0000 1.44 +++ include/dis-asm.h 3 Sep 2003 23:04:07 -0000 @@ -284,42 +284,17 @@ extern int generic_symbol_at_address (bfd_vma, struct disassemble_info *); -/* Macro to initialize a disassemble_info struct. This should be called - by all applications creating such a struct. */ -#define INIT_DISASSEMBLE_INFO(INFO, STREAM, FPRINTF_FUNC) \ - (INFO).flavour = bfd_target_unknown_flavour, \ - (INFO).arch = bfd_arch_unknown, \ - (INFO).mach = 0, \ - (INFO).insn_sets = 0, \ - (INFO).endian = BFD_ENDIAN_UNKNOWN, \ - (INFO).octets_per_byte = 1, \ - INIT_DISASSEMBLE_INFO_NO_ARCH(INFO, STREAM, FPRINTF_FUNC) - -/* Call this macro to initialize only the internal variables for the - disassembler. Architecture dependent things such as byte order, or machine - variant are not touched by this macro. This makes things much easier for - GDB which must initialize these things separately. */ +/* Method to initialize a disassemble_info struct. This should be + called by all applications creating such a struct. */ +extern void init_disassemble_info (struct disassemble_info *info, void *stream, + fprintf_ftype fprintf_func); +/* For compatibility with existing code. */ +#define INIT_DISASSEMBLE_INFO(INFO, STREAM, FPRINTF_FUNC) \ + init_disassemble_info (&(INFO), (STREAM), (fprintf_ftype) (FPRINTF_FUNC)) #define INIT_DISASSEMBLE_INFO_NO_ARCH(INFO, STREAM, FPRINTF_FUNC) \ - (INFO).fprintf_func = (fprintf_ftype)(FPRINTF_FUNC), \ - (INFO).stream = (STREAM), \ - (INFO).section = NULL, \ - (INFO).symbols = NULL, \ - (INFO).num_symbols = 0, \ - (INFO).private_data = NULL, \ - (INFO).buffer = NULL, \ - (INFO).buffer_vma = 0, \ - (INFO).buffer_length = 0, \ - (INFO).read_memory_func = buffer_read_memory, \ - (INFO).memory_error_func = perror_memory, \ - (INFO).print_address_func = generic_print_address, \ - (INFO).symbol_at_address_func = generic_symbol_at_address, \ - (INFO).flags = 0, \ - (INFO).bytes_per_line = 0, \ - (INFO).bytes_per_chunk = 0, \ - (INFO).display_endian = BFD_ENDIAN_UNKNOWN, \ - (INFO).disassembler_options = NULL, \ - (INFO).insn_info_valid = 0 + init_disassemble_info (&(INFO), (STREAM), (fprintf_ftype) (FPRINTF_FUNC)) + #ifdef __cplusplus } Index: opcodes/Makefile.am =================================================================== RCS file: /cvs/src/src/opcodes/Makefile.am,v retrieving revision 1.69 diff -u -r1.69 Makefile.am --- opcodes/Makefile.am 29 Aug 2003 19:14:54 -0000 1.69 +++ opcodes/Makefile.am 3 Sep 2003 23:04:11 -0000 @@ -63,6 +63,7 @@ d30v-opc.c \ dlx-dis.c \ dis-buf.c \ + dis-init.c \ disassemble.c \ fr30-asm.c \ fr30-desc.c \ @@ -281,7 +282,7 @@ disassemble.lo: disassemble.c $(INCDIR)/dis-asm.h $(LIBTOOL) --mode=compile $(COMPILE) -c @archdefs@ $(srcdir)/disassemble.c -libopcodes_la_SOURCES = dis-buf.c disassemble.c +libopcodes_la_SOURCES = dis-buf.c disassemble.c dis-init.c libopcodes_la_DEPENDENCIES = $(OFILES) ../bfd/libbfd.la libopcodes_la_LIBADD = $(OFILES) @WIN32LIBADD@ ../bfd/libbfd.la libopcodes_la_LDFLAGS = -release $(VERSION) @WIN32LDFLAGS@ @@ -552,6 +553,8 @@ dlx-dis.lo: dlx-dis.c sysdep.h config.h $(INCDIR)/ansidecl.h \ $(INCDIR)/dis-asm.h $(BFD_H) $(INCDIR)/symcat.h $(INCDIR)/opcode/dlx.h dis-buf.lo: dis-buf.c sysdep.h config.h $(INCDIR)/ansidecl.h \ + $(INCDIR)/dis-asm.h $(BFD_H) $(INCDIR)/symcat.h opintl.h +dis-init.lo: dis-init.c sysdep.h config.h $(INCDIR)/ansidecl.h \ $(INCDIR)/dis-asm.h $(BFD_H) $(INCDIR)/symcat.h opintl.h disassemble.lo: disassemble.c sysdep.h config.h $(INCDIR)/ansidecl.h \ $(INCDIR)/dis-asm.h $(BFD_H) $(INCDIR)/symcat.h Index: opcodes/Makefile.in =================================================================== RCS file: /cvs/src/src/opcodes/Makefile.in,v retrieving revision 1.78 diff -u -r1.78 Makefile.in --- opcodes/Makefile.in 29 Aug 2003 19:14:54 -0000 1.78 +++ opcodes/Makefile.in 3 Sep 2003 23:04:12 -0000 @@ -174,6 +174,7 @@ d30v-opc.c \ dlx-dis.c \ dis-buf.c \ + dis-init.c \ disassemble.c \ fr30-asm.c \ fr30-desc.c \ @@ -391,7 +392,7 @@ INCLUDES = -D_GNU_SOURCE -I. -I$(srcdir) -I../bfd -I$(INCDIR) -I$(BFDDIR) @HDEFINES@ -I$(srcdir)/../intl -I../intl -libopcodes_la_SOURCES = dis-buf.c disassemble.c +libopcodes_la_SOURCES = dis-buf.c disassemble.c dis-init.c libopcodes_la_DEPENDENCIES = $(OFILES) ../bfd/libbfd.la libopcodes_la_LIBADD = $(OFILES) @WIN32LIBADD@ ../bfd/libbfd.la libopcodes_la_LDFLAGS = -release $(VERSION) @WIN32LDFLAGS@ @@ -455,7 +456,7 @@ libopcodes_a_OBJECTS = libopcodes.a.$(OBJEXT) LTLIBRARIES = $(bfdlib_LTLIBRARIES) -libopcodes_la_OBJECTS = dis-buf.lo disassemble.lo +libopcodes_la_OBJECTS = dis-buf.lo disassemble.lo dis-init.lo CFLAGS = @CFLAGS@ COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) @@ -1048,6 +1049,8 @@ dlx-dis.lo: dlx-dis.c sysdep.h config.h $(INCDIR)/ansidecl.h \ $(INCDIR)/dis-asm.h $(BFD_H) $(INCDIR)/symcat.h $(INCDIR)/opcode/dlx.h dis-buf.lo: dis-buf.c sysdep.h config.h $(INCDIR)/ansidecl.h \ + $(INCDIR)/dis-asm.h $(BFD_H) $(INCDIR)/symcat.h opintl.h +dis-init.lo: dis-init.c sysdep.h config.h $(INCDIR)/ansidecl.h \ $(INCDIR)/dis-asm.h $(BFD_H) $(INCDIR)/symcat.h opintl.h disassemble.lo: disassemble.c sysdep.h config.h $(INCDIR)/ansidecl.h \ $(INCDIR)/dis-asm.h $(BFD_H) $(INCDIR)/symcat.h Index: opcodes/dis-init.c =================================================================== RCS file: opcodes/dis-init.c diff -N opcodes/dis-init.c --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ opcodes/dis-init.c 3 Sep 2003 23:04:12 -0000 @@ -0,0 +1,41 @@ +/* Initialize "struct disassemble_info". + + Copyright 2003 Free Software Foundation, Inc. + + 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. + + 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. */ + +#include "sysdep.h" +#include "dis-asm.h" +#include "bfd.h" + +void +init_disassemble_info (struct disassemble_info *info, void *stream, + fprintf_ftype fprintf_func) +{ + memset (info, 0, sizeof (*info)); + info->flavour = bfd_target_unknown_flavour; + info->arch = bfd_arch_unknown; + info->endian = BFD_ENDIAN_UNKNOWN; + info->octets_per_byte = 1; + info->fprintf_func = fprintf_func; + info->stream = stream; + info->read_memory_func = buffer_read_memory; + info->memory_error_func = perror_memory; + info->print_address_func = generic_print_address; + info->symbol_at_address_func = generic_symbol_at_address; + info->display_endian = BFD_ENDIAN_UNKNOWN; +} +