/* Machine independent variables that describe the core file under GDB.
- Copyright (C) 1986, 1987, 1989 Free Software Foundation, Inc.
+ Copyright (C) 1986, 1987, 1989, 1990 Free Software Foundation, Inc.
-GDB is distributed in the hope that it will be useful, but WITHOUT ANY
-WARRANTY. No author or distributor accepts responsibility to anyone
-for the consequences of using it or for whether it serves any
-particular purpose or works at all, unless he says so in writing.
-Refer to the GDB General Public License for full details.
+This file is part of GDB.
-Everyone is granted permission to copy, modify and redistribute GDB,
-but only under the conditions described in the GDB General Public
-License. A copy of this license is supposed to have been given to you
-along with GDB so you can know your rights and responsibilities. It
-should be in a file named COPYING. Among other things, the copyright
-notice and this notice must be preserved on all copies.
+GDB 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 1, or (at your option)
+any later version.
-In other words, go ahead and share GDB, but don't try to stop
-anyone else from sharing it farther. Help stamp out software hoarding!
-*/
+GDB 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.
-/* File names of core file and executable file. */
+You should have received a copy of the GNU General Public License
+along with GDB; see the file COPYING. If not, write to
+the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
-extern char *corefile;
-extern char *execfile;
+/* Interface routines for core, executable, etc. */
-/* Descriptors on which core file and executable file are open.
- Note that the execchan is closed when an inferior is created
- and reopened if the inferior dies or is killed. */
+#include "bfd.h" /* Binary File Description */
-extern int corechan;
-extern int execchan;
+/* Return the name of the executable file as a string.
+ ERR nonzero means get error if there is none specified;
+ otherwise return 0 in that case. */
+char *get_exec_file ();
-/* Last modification time of executable file.
- Also used in source.c to compare against mtime of a source file. */
+/* Nonzero if there is a core file. */
+int have_core_file_p ();
-extern int exec_mtime;
+/* Read "memory data" from whatever target or inferior we have.
+ Returns zero if successful, errno value if not. EIO is used
+ for address out of bounds. If breakpoints are inserted, returns
+ shadow contents, not the breakpoints themselves. From breakpoint.c. */
+int read_memory_nobpt ();
-/* Virtual addresses of bounds of the two areas of memory in the core file. */
+/* Report a memory error with error(). */
-extern CORE_ADDR data_start;
-extern CORE_ADDR data_end;
-extern CORE_ADDR stack_start;
-extern CORE_ADDR stack_end;
+void memory_error ();
-/* Virtual addresses of bounds of two areas of memory in the exec file.
- Note that the data area in the exec file is used only when there is no core file. */
+/* Like target_read_memory, but report an error if can't read. */
+void read_memory ();
-extern CORE_ADDR text_start;
-extern CORE_ADDR text_end;
+/* Read an integer from debugged memory, given address and number of bytes. */
+long read_memory_integer ();
-extern CORE_ADDR exec_data_start;
-extern CORE_ADDR exec_data_end;
+void write_memory (
+#ifdef __STDC__
+ CORE_ADDR, char *, int
+#endif
+ );
-/* Address in executable file of start of text area data. */
+/* Hook for `exec_file_command' command to call. */
-extern int text_offset;
+extern void (*exec_file_display_hook) ();
+
+/* Binary File Diddlers for the exec and core files */
+extern bfd *core_bfd;
+extern bfd *exec_bfd;
-/* Address in executable file of start of data area data. */
+void core_file_command ();
+void exec_file_command ();
+void validate_files ();
+unsigned int register_addr ();
+int xfer_core_file ();
+void fetch_core_registers ();
+void registers_fetched ();
-extern int exec_data_offset;
+#if !defined (KERNEL_U_ADDR)
+extern CORE_ADDR kernel_u_addr;
+#define KERNEL_U_ADDR kernel_u_addr
+#endif
-/* Address in core file of start of data area data. */
+/* Struct section_table maps address ranges to file sections. It is
+ mostly used with BFD files, but can be used without (e.g. for handling
+ raw disks, or files not in formats handled by BFD). */
-extern int data_offset;
+struct section_table {
+ CORE_ADDR addr; /* Lowest address in section */
+ CORE_ADDR endaddr; /* 1+highest address in section */
+ sec_ptr sec_ptr; /* BFD section pointer */
+};
-/* Address in core file of start of stack area data. */
+/* Builds a section table, given args BFD, SECTABLE_PTR, SECEND_PTR.
+ Returns 0 if OK, 1 on error. */
-extern int stack_offset;
+int build_section_table ();