/* *INDENT-OFF* */ /* ATTR_FORMAT confuses indent, avoid running it for now */
/* Basic, host-specific, and target-specific definitions for GDB.
Copyright (C) 1986, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996,
- 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
+ 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2008
Free Software Foundation, Inc.
This file is part of GDB.
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
+ the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
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., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA. */
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
#ifndef DEFS_H
#define DEFS_H
#include <unistd.h>
#endif
+#include <fcntl.h>
+
/* First include ansidecl.h so we can use the various macro definitions
here and in all subsequent file inclusions. */
#define SEEK_CUR 1
#endif
+/* The O_BINARY flag is defined in fcntl.h on some non-Posix platforms.
+ It is used as an access modifier in calls to open(), where it acts
+ similarly to the "b" character in fopen()'s MODE argument. On Posix
+ platforms it should be a no-op, so it is defined as 0 here. This
+ ensures that the symbol may be used freely elsewhere in gdb. */
+
+#ifndef O_BINARY
+#define O_BINARY 0
+#endif
+
#include <stdarg.h> /* For va_list. */
#include "libiberty.h"
/* An address in the program being debugged. Host byte order. */
typedef bfd_vma CORE_ADDR;
+/* The largest CORE_ADDR value. */
+#define CORE_ADDR_MAX (~ (CORE_ADDR) 0)
+
/* This is to make sure that LONGEST is at least as big as CORE_ADDR. */
#ifndef LONGEST
/* System root path, used to find libraries etc. */
extern char *gdb_sysroot;
+/* Search path for separate debug files. */
+extern char *debug_file_directory;
+
extern int quit_flag;
extern int immediate_quit;
extern int sevenbit_strings;
language_fortran, /* Fortran */
language_m2, /* Modula-2 */
language_asm, /* Assembly language */
- language_scm, /* Scheme / Guile */
language_pascal, /* Pascal */
language_ada, /* Ada */
+ language_scm, /* Guile Scheme */
language_minimal, /* All other languages, minimal support only */
nr_languages
};
extern char *safe_strerror (int);
-extern void request_quit (int);
-
#define ALL_CLEANUPS ((struct cleanup *)0)
extern void do_cleanups (struct cleanup *);
extern void do_final_cleanups (struct cleanup *);
-extern void do_run_cleanups (struct cleanup *);
extern void do_exec_cleanups (struct cleanup *);
extern void do_exec_error_cleanups (struct cleanup *);
extern struct cleanup *make_my_cleanup (struct cleanup **,
make_cleanup_ftype *, void *);
-extern struct cleanup *make_run_cleanup (make_cleanup_ftype *, void *);
-
extern struct cleanup *make_exec_cleanup (make_cleanup_ftype *, void *);
extern struct cleanup *make_exec_error_cleanup (make_cleanup_ftype *, void *);
extern unsigned long gnu_debuglink_crc32 (unsigned long crc,
unsigned char *buf, size_t len);
-/* From demangle.c */
+ULONGEST strtoulst (const char *num, const char **trailer, int base);
-extern void set_demangling_style (char *);
+char *ldirname (const char *filename);
-/* From tm.h */
+/* From demangle.c */
-struct type;
-typedef int (use_struct_convention_fn) (int gcc_p, struct type * value_type);
-extern use_struct_convention_fn generic_use_struct_convention;
+extern void set_demangling_style (char *);
\f
/* Annotation stuff. */
extern void fputstr_unfiltered (const char *str, int quotr, struct ui_file * stream);
+extern void fputstrn_filtered (const char *str, int n, int quotr, struct ui_file * stream);
+
extern void fputstrn_unfiltered (const char *str, int n, int quotr, struct ui_file * stream);
/* Display the host ADDR on STREAM formatted as ``0x%x''. */
/* Remote targets may wish to use this as their load function. */
extern void generic_load (char *name, int from_tty);
-/* Summarise a download */
+/* Report on STREAM the performance of memory transfer operation,
+ such as 'load'.
+ DATA_COUNT is the number of bytes transferred.
+ WRITE_COUNT is the number of separate write operations, or 0,
+ if that information is not available.
+ START_TIME is the time at which an operation was started.
+ END_TIME is the time at which an operation ended. */
struct timeval;
extern void print_transfer_performance (struct ui_file *stream,
unsigned long data_count,
extern void directory_command (char *, int);
+extern void directory_switch (char *, int);
+
extern char *source_path;
extern void init_source_path (void);
continue_control,
while_control,
if_control,
+ commands_control,
invalid_control
};
\f
-/* Optional host machine definition. Pure autoconf targets will not
- need a "xm.h" file. This will be a symlink to one of the xm-*.h
- files, built by the `configure' script. */
-
-#ifdef GDB_XM_FILE
-#include "xm.h"
-#endif
-
/* Optional native machine support. Non-native (and possibly pure
multi-arch) targets do not need a "nm.h" file. This will be a
symlink to one of the nm-*.h files, built by the `configure'
#include "nm.h"
#endif
-/* Optional target machine definition. Pure multi-arch configurations
- do not need a "tm.h" file. This will be a symlink to one of the
- tm-*.h files, built by the `configure' script. */
-
-#ifdef GDB_TM_FILE
-#include "tm.h"
-#endif
-
/* Assume that fopen accepts the letter "b" in the mode string.
It is demanded by ISO C9X, and should be supported on all
platforms that claim to have a standard-conforming C library. On
GDB_OSABI_OPENBSD_ELF,
GDB_OSABI_WINCE,
GDB_OSABI_GO32,
- GDB_OSABI_NETWARE,
GDB_OSABI_IRIX,
- GDB_OSABI_LYNXOS,
GDB_OSABI_INTERIX,
GDB_OSABI_HPUX_ELF,
GDB_OSABI_HPUX_SOM,
from byte/word byte order. */
#if !defined (BITS_BIG_ENDIAN)
-#define BITS_BIG_ENDIAN (TARGET_BYTE_ORDER == BFD_ENDIAN_BIG)
+#define BITS_BIG_ENDIAN (gdbarch_byte_order (current_gdbarch) == BFD_ENDIAN_BIG)
#endif
/* In findvar.c. */
extern void (*deprecated_delete_breakpoint_hook) (struct breakpoint * bpt);
extern void (*deprecated_modify_breakpoint_hook) (struct breakpoint * bpt);
extern void (*deprecated_interactive_hook) (void);
-extern void (*deprecated_registers_changed_hook) (void);
extern void (*deprecated_readline_begin_hook) (char *, ...)
ATTRIBUTE_FPTR_PRINTF_1;
extern char *(*deprecated_readline_hook) (char *);
# define DIRNAME_SEPARATOR ';'
#endif
+#if !defined (__CYGWIN__) && defined (_WIN32)
+# define DIRNAME_SEPARATOR ';'
+#endif
+
#ifndef DIRNAME_SEPARATOR
#define DIRNAME_SEPARATOR ':'
#endif