Handle EM_L1OM.
[deliverable/binutils-gdb.git] / gdb / defs.h
index bb14aa0a599d0dbf53c9368a32e65b47e247d267..b18e03fdf532fbf387935f320f29042757bea94a 100644 (file)
@@ -1,8 +1,9 @@
-/* *INDENT-OFF* */ /* ATTR_FORMAT confuses indent, avoid running it for now */
+/* *INDENT-OFF* */ /* ATTRIBUTE_PRINTF 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,
 /* 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, 2007
-   Free Software Foundation, Inc.
+   1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2008, 2009,
+   2010 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
 
    This file is part of GDB.
 
 #include <stdio.h>
 #include <errno.h>             /* System call error return status.  */
 #include <limits.h>
 #include <stdio.h>
 #include <errno.h>             /* System call error return status.  */
 #include <limits.h>
+#include <stdint.h>
+
+/* The libdecnumber library, on which GDB depends, includes a header file
+   called gstdint.h instead of relying directly on stdint.h.  GDB, on the
+   other hand, includes stdint.h directly, relying on the fact that gnulib
+   generates a copy if the system doesn't provide one or if it is missing
+   some features.  Unfortunately, gstdint.h and stdint.h cannot be included
+   at the same time, which may happen when we include a file from
+   libdecnumber.
+
+   The following macro definition effectively prevents the inclusion of
+   gstdint.h, as all the definitions it provides are guarded against
+   the GCC_GENERATED_STDINT_H macro.  We already have gnulib/stdint.h
+   included, so it's ok to blank out gstdint.h.  */
+#define GCC_GENERATED_STDINT_H 1
 
 #ifdef HAVE_STDDEF_H
 #include <stddef.h>
 
 #ifdef HAVE_STDDEF_H
 #include <stddef.h>
@@ -46,6 +62,8 @@
 
 #include "gdb_locale.h"
 
 
 #include "gdb_locale.h"
 
+#include "gdb_wchar.h"
+
 /* For ``enum target_signal''.  */
 #include "gdb/signals.h"
 
 /* For ``enum target_signal''.  */
 #include "gdb/signals.h"
 
@@ -84,6 +102,9 @@ typedef bfd_byte gdb_byte;
 /* An address in the program being debugged.  Host byte order.  */
 typedef bfd_vma CORE_ADDR;
 
 /* 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
 /* This is to make sure that LONGEST is at least as big as CORE_ADDR.  */
 
 #ifndef LONGEST
@@ -121,38 +142,6 @@ typedef bfd_vma CORE_ADDR;
 #define max(a, b) ((a) > (b) ? (a) : (b))
 #endif
 
 #define max(a, b) ((a) > (b) ? (a) : (b))
 #endif
 
-/* Macros to do string compares.
-
-   NOTE: cagney/2000-03-14:
-
-   While old code can continue to refer to these macros, new code is
-   probably better off using strcmp() directly vis: ``strcmp() == 0''
-   and ``strcmp() != 0''.
-
-   This is because modern compilers can directly inline strcmp()
-   making the original justification for these macros - avoid function
-   call overhead by pre-testing the first characters
-   (``*X==*Y?...:0'') - redundant.
-
-   ``Even if [...] testing the first character does have a modest
-   performance improvement, I'd rather that whenever a performance
-   issue is found that we spend the effort on algorithmic
-   optimizations than micro-optimizing.'' J.T. */
-
-/* NOTE: cagney/2003-11-23: All instances of STREQ[N] covered by
-   testing GDB on a stabs system have been replaced by equivalent
-   str[n]cmp calls.  To avoid the possability of introducing bugs when
-   making untested changes, the remaining references were deprecated
-   rather than replaced.  */
-
-/* DISCLAIMER: cagney/2003-11-23: Simplified definition of these
-   macros so that they just map directly onto strcmp equivalent.  I'm
-   not responsible for any breakage due to code that relied on the old
-   underlying implementation.  */
-
-#define DEPRECATED_STREQ(a,b) (strcmp ((a), (b)) == 0)
-#define DEPRECATED_STREQN(a,b,c) (strncmp ((a), (b), (c)) == 0)
-
 /* Check if a character is one of the commonly used C++ marker characters.  */
 extern int is_cplus_marker (int);
 
 /* Check if a character is one of the commonly used C++ marker characters.  */
 extern int is_cplus_marker (int);
 
@@ -165,6 +154,9 @@ extern int dbx_commands;
 /* System root path, used to find libraries etc.  */
 extern char *gdb_sysroot;
 
 /* System root path, used to find libraries etc.  */
 extern char *gdb_sysroot;
 
+/* GDB datadir, used to store data files.  */
+extern char *gdb_datadir;
+
 /* Search path for separate debug files.  */
 extern char *debug_file_directory;
 
 /* Search path for separate debug files.  */
 extern char *debug_file_directory;
 
@@ -181,16 +173,10 @@ extern void quit (void);
    [kingdon].  A profile analyzing the current situtation is
    needed. */
 
    [kingdon].  A profile analyzing the current situtation is
    needed. */
 
-#ifdef QUIT
-/* do twice to force compiler warning */
-#define QUIT_FIXME "FIXME"
-#define QUIT_FIXME "ignoring redefinition of QUIT"
-#else
 #define QUIT { \
   if (quit_flag) quit (); \
   if (deprecated_interactive_hook) deprecated_interactive_hook (); \
 }
 #define QUIT { \
   if (quit_flag) quit (); \
   if (deprecated_interactive_hook) deprecated_interactive_hook (); \
 }
-#endif
 
 /* Languages represented in the symbol table and elsewhere.
    This should probably be in language.h, but since enum's can't
 
 /* Languages represented in the symbol table and elsewhere.
    This should probably be in language.h, but since enum's can't
@@ -203,6 +189,7 @@ enum language
     language_auto,             /* Placeholder for automatic setting */
     language_c,                        /* C */
     language_cplus,            /* C++ */
     language_auto,             /* Placeholder for automatic setting */
     language_c,                        /* C */
     language_cplus,            /* C++ */
+    language_d,                        /* D */
     language_objc,             /* Objective-C */
     language_java,             /* Java */
     language_fortran,          /* Fortran */
     language_objc,             /* Objective-C */
     language_java,             /* Java */
     language_fortran,          /* Fortran */
@@ -265,53 +252,21 @@ enum return_value_convention
    Use make_cleanup to add an element to the cleanup chain.
    Use do_cleanups to do all cleanup actions back to a given
    point in the chain.  Use discard_cleanups to remove cleanups
    Use make_cleanup to add an element to the cleanup chain.
    Use do_cleanups to do all cleanup actions back to a given
    point in the chain.  Use discard_cleanups to remove cleanups
-   from the chain back to a given point, not doing them.  */
+   from the chain back to a given point, not doing them.  
+
+   If the argument is pointer to allocated memory, then you need to
+   to additionally set the 'free_arg' member to a function that will
+   free that memory.  This function will be called both when the cleanup
+   is executed and when it's discarded.  */
 
 struct cleanup
   {
     struct cleanup *next;
     void (*function) (void *);
 
 struct cleanup
   {
     struct cleanup *next;
     void (*function) (void *);
+    void (*free_arg) (void *);
     void *arg;
   };
 
     void *arg;
   };
 
-
-/* The ability to declare that a function never returns is useful, but
-   not really required to compile GDB successfully, so the NORETURN and
-   ATTR_NORETURN macros normally expand into nothing.  */
-
-/* If compiling with older versions of GCC, a function may be declared
-   "volatile" to indicate that it does not return.  */
-
-#ifndef NORETURN
-#if defined(__GNUC__) \
-     && (__GNUC__ == 1 || (__GNUC__ == 2 && __GNUC_MINOR__ < 7))
-#define NORETURN volatile
-#else
-#define NORETURN               /* nothing */
-#endif
-#endif
-
-/* GCC 2.5 and later versions define a function attribute "noreturn",
-   which is the preferred way to declare that a function never returns.
-   However GCC 2.7 appears to be the first version in which this fully
-   works everywhere we use it. */
-
-#ifndef ATTR_NORETURN
-#if defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7))
-#define ATTR_NORETURN __attribute__ ((noreturn))
-#else
-#define ATTR_NORETURN          /* nothing */
-#endif
-#endif
-
-#ifndef ATTR_FORMAT
-#if defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 4))
-#define ATTR_FORMAT(type, x, y) __attribute__ ((format(type, x, y)))
-#else
-#define ATTR_FORMAT(type, x, y)        /* nothing */
-#endif
-#endif
-
 /* Be conservative and use enum bitfields only with GCC.
    This is copied from gcc 3.3.1, system.h.  */
 
 /* Be conservative and use enum bitfields only with GCC.
    This is copied from gcc 3.3.1, system.h.  */
 
@@ -321,11 +276,16 @@ struct cleanup
 #define ENUM_BITFIELD(TYPE) unsigned int
 #endif
 
 #define ENUM_BITFIELD(TYPE) unsigned int
 #endif
 
+/* vec.h-style vectors of strings want a typedef for char * .  */
+
+typedef char * char_ptr;
+
 /* Needed for various prototypes */
 
 struct symtab;
 struct breakpoint;
 struct frame_info;
 /* Needed for various prototypes */
 
 struct symtab;
 struct breakpoint;
 struct frame_info;
+struct gdbarch;
 
 /* From utils.c */
 
 
 /* From utils.c */
 
@@ -347,13 +307,9 @@ extern char *safe_strerror (int);
 
 extern void do_cleanups (struct cleanup *);
 extern void do_final_cleanups (struct cleanup *);
 
 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 void discard_cleanups (struct cleanup *);
 extern void discard_final_cleanups (struct cleanup *);
 
 extern void discard_cleanups (struct cleanup *);
 extern void discard_final_cleanups (struct cleanup *);
-extern void discard_exec_error_cleanups (struct cleanup *);
 extern void discard_my_cleanups (struct cleanup **, struct cleanup *);
 
 /* NOTE: cagney/2000-03-04: This typedef is strictly for the
 extern void discard_my_cleanups (struct cleanup **, struct cleanup *);
 
 /* NOTE: cagney/2000-03-04: This typedef is strictly for the
@@ -365,6 +321,9 @@ typedef void (make_cleanup_ftype) (void *);
 
 extern struct cleanup *make_cleanup (make_cleanup_ftype *, void *);
 
 
 extern struct cleanup *make_cleanup (make_cleanup_ftype *, void *);
 
+extern struct cleanup *make_cleanup_dtor (make_cleanup_ftype *, void *,
+                                         void (*dtor) (void *));
+
 extern struct cleanup *make_cleanup_freeargv (char **);
 
 struct ui_file;
 extern struct cleanup *make_cleanup_freeargv (char **);
 
 struct ui_file;
@@ -376,17 +335,23 @@ extern struct cleanup *(make_cleanup_free_section_addr_info
 
 extern struct cleanup *make_cleanup_close (int fd);
 
 
 extern struct cleanup *make_cleanup_close (int fd);
 
+extern struct cleanup *make_cleanup_fclose (FILE *file);
+
 extern struct cleanup *make_cleanup_bfd_close (bfd *abfd);
 
 extern struct cleanup *make_cleanup_bfd_close (bfd *abfd);
 
+struct obstack;
+extern struct cleanup *make_cleanup_obstack_free (struct obstack *obstack);
+
+extern struct cleanup *make_cleanup_restore_integer (int *variable);
+
 extern struct cleanup *make_final_cleanup (make_cleanup_ftype *, void *);
 
 extern struct cleanup *make_my_cleanup (struct cleanup **,
                                        make_cleanup_ftype *, void *);
 
 extern struct cleanup *make_final_cleanup (make_cleanup_ftype *, void *);
 
 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 struct cleanup *make_my_cleanup2 (struct cleanup **,
+                                        make_cleanup_ftype *, void *,
+                                        void (*free_arg) (void *));
 
 extern struct cleanup *save_cleanups (void);
 extern struct cleanup *save_final_cleanups (void);
 
 extern struct cleanup *save_cleanups (void);
 extern struct cleanup *save_final_cleanups (void);
@@ -402,9 +367,9 @@ extern void null_cleanup (void *);
 
 extern int myread (int, char *, int);
 
 
 extern int myread (int, char *, int);
 
-extern int query (const char *, ...) ATTR_FORMAT (printf, 1, 2);
-extern int nquery (const char *, ...) ATTR_FORMAT (printf, 1, 2);
-extern int yquery (const char *, ...) ATTR_FORMAT (printf, 1, 2);
+extern int query (const char *, ...) ATTRIBUTE_PRINTF (1, 2);
+extern int nquery (const char *, ...) ATTRIBUTE_PRINTF (1, 2);
+extern int yquery (const char *, ...) ATTRIBUTE_PRINTF (1, 2);
 
 extern void init_page_info (void);
 
 
 extern void init_page_info (void);
 
@@ -418,15 +383,22 @@ ULONGEST strtoulst (const char *num, const char **trailer, int base);
 
 char *ldirname (const char *filename);
 
 
 char *ldirname (const char *filename);
 
-/* From demangle.c */
+char **gdb_buildargv (const char *);
 
 
-extern void set_demangling_style (char *);
+int compare_positive_ints (const void *ap, const void *bp);
 
 
-/* From tm.h */
+/* A wrapper for bfd_errmsg to produce a more helpful error message
+   in the case of bfd_error_file_ambiguously recognized.
+   MATCHING, if non-NULL, is the corresponding argument to
+   bfd_check_format_matches, and will be freed.  */
 
 
-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 const char *gdb_bfd_errmsg (bfd_error_type error_tag, char **matching);
+
+extern int parse_pid_to_attach (char *args);
+
+/* From demangle.c */
+
+extern void set_demangling_style (char *);
 
 \f
 /* Annotation stuff.  */
 
 \f
 /* Annotation stuff.  */
@@ -483,25 +455,25 @@ extern void puts_filtered_tabular (char *string, int width, int right);
 
 extern void puts_debug (char *prefix, char *string, char *suffix);
 
 
 extern void puts_debug (char *prefix, char *string, char *suffix);
 
-extern void vprintf_filtered (const char *, va_list) ATTR_FORMAT (printf, 1, 0);
+extern void vprintf_filtered (const char *, va_list) ATTRIBUTE_PRINTF (1, 0);
 
 
-extern void vfprintf_filtered (struct ui_file *, const char *, va_list) ATTR_FORMAT (printf, 2, 0);
+extern void vfprintf_filtered (struct ui_file *, const char *, va_list) ATTRIBUTE_PRINTF (2, 0);
 
 
-extern void fprintf_filtered (struct ui_file *, const char *, ...) ATTR_FORMAT (printf, 2, 3);
+extern void fprintf_filtered (struct ui_file *, const char *, ...) ATTRIBUTE_PRINTF (2, 3);
 
 
-extern void fprintfi_filtered (int, struct ui_file *, const char *, ...) ATTR_FORMAT (printf, 3, 4);
+extern void fprintfi_filtered (int, struct ui_file *, const char *, ...) ATTRIBUTE_PRINTF (3, 4);
 
 
-extern void printf_filtered (const char *, ...) ATTR_FORMAT (printf, 1, 2);
+extern void printf_filtered (const char *, ...) ATTRIBUTE_PRINTF (1, 2);
 
 
-extern void printfi_filtered (int, const char *, ...) ATTR_FORMAT (printf, 2, 3);
+extern void printfi_filtered (int, const char *, ...) ATTRIBUTE_PRINTF (2, 3);
 
 
-extern void vprintf_unfiltered (const char *, va_list) ATTR_FORMAT (printf, 1, 0);
+extern void vprintf_unfiltered (const char *, va_list) ATTRIBUTE_PRINTF (1, 0);
 
 
-extern void vfprintf_unfiltered (struct ui_file *, const char *, va_list) ATTR_FORMAT (printf, 2, 0);
+extern void vfprintf_unfiltered (struct ui_file *, const char *, va_list) ATTRIBUTE_PRINTF (2, 0);
 
 
-extern void fprintf_unfiltered (struct ui_file *, const char *, ...) ATTR_FORMAT (printf, 2, 3);
+extern void fprintf_unfiltered (struct ui_file *, const char *, ...) ATTRIBUTE_PRINTF (2, 3);
 
 
-extern void printf_unfiltered (const char *, ...) ATTR_FORMAT (printf, 1, 2);
+extern void printf_unfiltered (const char *, ...) ATTRIBUTE_PRINTF (1, 2);
 
 extern void print_spaces (int, struct ui_file *);
 
 
 extern void print_spaces (int, struct ui_file *);
 
@@ -520,24 +492,23 @@ extern void fputstrn_unfiltered (const char *str, int n, int quotr, struct ui_fi
 /* Display the host ADDR on STREAM formatted as ``0x%x''. */
 extern void gdb_print_host_address (const void *addr, struct ui_file *stream);
 
 /* Display the host ADDR on STREAM formatted as ``0x%x''. */
 extern void gdb_print_host_address (const void *addr, struct ui_file *stream);
 
-/* Convert a CORE_ADDR into a HEX string.  paddr() is like %08lx.
-   paddr_nz() is like %lx.  paddr_u() is like %lu. paddr_width() is
-   for ``%*''. */
-extern int strlen_paddr (void);
-extern char *paddr (CORE_ADDR addr);
-extern char *paddr_nz (CORE_ADDR addr);
-extern char *paddr_u (CORE_ADDR addr);
-extern char *paddr_d (LONGEST addr);
+extern const char *host_address_to_string (const void *addr);
+
+/* Convert CORE_ADDR to string in platform-specific manner.
+   This is usually formatted similar to 0x%lx.  */
+extern const char *paddress (struct gdbarch *gdbarch, CORE_ADDR addr);
 
 
-/* Like 0x%lx, replaces deprecated_print_address_numeric.  */
-extern const char *paddress (CORE_ADDR addr);
+/* %d for LONGEST */
+extern char *plongest (LONGEST l);
+/* %u for ULONGEST */
+extern char *pulongest (ULONGEST l);
 
 extern char *phex (ULONGEST l, int sizeof_l);
 extern char *phex_nz (ULONGEST l, int sizeof_l);
 extern char *int_string (LONGEST, int, int, int, int);
 
 
 extern char *phex (ULONGEST l, int sizeof_l);
 extern char *phex_nz (ULONGEST l, int sizeof_l);
 extern char *int_string (LONGEST, int, int, int, int);
 
-/* Like paddr() only print/scan raw CORE_ADDR.  The output from
-   core_addr_to_string() can be passed direct to
+/* Convert a CORE_ADDR into a HEX string with leading zeros.
+   The output from core_addr_to_string() can be passed direct to
    string_to_core_addr().  */
 extern const char *core_addr_to_string (const CORE_ADDR addr);
 extern const char *core_addr_to_string_nz (const CORE_ADDR addr);
    string_to_core_addr().  */
 extern const char *core_addr_to_string (const CORE_ADDR addr);
 extern const char *core_addr_to_string_nz (const CORE_ADDR addr);
@@ -551,7 +522,7 @@ extern char *hex_string_custom (LONGEST, int);
 extern void fprintf_symbol_filtered (struct ui_file *, char *,
                                     enum language, int);
 
 extern void fprintf_symbol_filtered (struct ui_file *, char *,
                                     enum language, int);
 
-extern NORETURN void perror_with_name (const char *) ATTR_NORETURN;
+extern void perror_with_name (const char *) ATTRIBUTE_NORETURN;
 
 extern void print_sys_errmsg (const char *, int);
 
 
 extern void print_sys_errmsg (const char *, int);
 
@@ -602,12 +573,13 @@ extern int info_verbose;
 
 /* From printcmd.c */
 
 
 /* From printcmd.c */
 
-extern void set_next_address (CORE_ADDR);
+extern void set_next_address (struct gdbarch *, CORE_ADDR);
 
 
-extern void print_address_symbolic (CORE_ADDR, struct ui_file *, int,
-                                   char *);
+extern void print_address_symbolic (struct gdbarch *, CORE_ADDR,
+                                   struct ui_file *, int, char *);
 
 
-extern int build_address_symbolic (CORE_ADDR addr,
+extern int build_address_symbolic (struct gdbarch *,
+                                  CORE_ADDR addr,
                                   int do_demangle, 
                                   char **name, 
                                   int *offset, 
                                   int do_demangle, 
                                   char **name, 
                                   int *offset, 
@@ -615,18 +587,17 @@ extern int build_address_symbolic (CORE_ADDR addr,
                                   int *line,   
                                   int *unmapped);
 
                                   int *line,   
                                   int *unmapped);
 
-extern void deprecated_print_address_numeric (CORE_ADDR, int, struct ui_file *);
-
-extern void print_address (CORE_ADDR, struct ui_file *);
+extern void print_address (struct gdbarch *, CORE_ADDR, struct ui_file *);
+extern const char *pc_prefix (CORE_ADDR);
 
 /* From source.c */
 
 #define OPF_TRY_CWD_FIRST     0x01
 #define OPF_SEARCH_IN_PATH    0x02
 
 
 /* From source.c */
 
 #define OPF_TRY_CWD_FIRST     0x01
 #define OPF_SEARCH_IN_PATH    0x02
 
-extern int openp (const char *, int, const char *, int, int, char **);
+extern int openp (const char *, int, const char *, int, char **);
 
 
-extern int source_full_path_of (char *, char **);
+extern int source_full_path_of (const char *, char **);
 
 extern void mod_path (char *, char **);
 
 
 extern void mod_path (char *, char **);
 
@@ -640,14 +611,8 @@ extern char *source_path;
 
 extern void init_source_path (void);
 
 
 extern void init_source_path (void);
 
-extern void init_last_source_visited (void);
-
 /* From exec.c */
 
 /* From exec.c */
 
-extern void exec_set_section_offsets (bfd_signed_vma text_off,
-                                     bfd_signed_vma data_off,
-                                     bfd_signed_vma bss_off);
-
 /* Take over the 'find_mapped_memory' vector from exec.c. */
 extern void exec_set_find_memory_regions (int (*) (int (*) (CORE_ADDR, 
                                                            unsigned long, 
 /* Take over the 'find_mapped_memory' vector from exec.c. */
 extern void exec_set_find_memory_regions (int (*) (int (*) (CORE_ADDR, 
                                                            unsigned long, 
@@ -669,7 +634,10 @@ enum lval_type
     /* In a gdb internal variable.  */
     lval_internalvar,
     /* Part of a gdb internal variable (structure field).  */
     /* In a gdb internal variable.  */
     lval_internalvar,
     /* Part of a gdb internal variable (structure field).  */
-    lval_internalvar_component
+    lval_internalvar_component,
+    /* Value's bits are fetched and stored using functions provided by
+       its creator.  */
+    lval_computed
   };
 
 /* Control types for commands */
   };
 
 /* Control types for commands */
@@ -690,6 +658,8 @@ enum command_control_type
     while_control,
     if_control,
     commands_control,
     while_control,
     if_control,
     commands_control,
+    python_control,
+    while_stepping_control,
     invalid_control
   };
 
     invalid_control
   };
 
@@ -701,52 +671,61 @@ struct command_line
     struct command_line *next;
     char *line;
     enum command_control_type control_type;
     struct command_line *next;
     char *line;
     enum command_control_type control_type;
+    /* The number of elements in body_list.  */
     int body_count;
     int body_count;
+    /* For composite commands, the nested lists of
+       commands. For example, for "if" command this
+       will contain the then branch and the else
+       branch, if that is available.  */
     struct command_line **body_list;
   };
 
     struct command_line **body_list;
   };
 
-extern struct command_line *read_command_lines (char *, int);
+extern struct command_line *read_command_lines (char *, int, int,
+                                               void (*)(char *, void *),
+                                               void *);
+extern struct command_line *read_command_lines_1 (char * (*) (void), int,
+                                                 void (*)(char *, void *),
+                                                 void *);
 
 extern void free_command_lines (struct command_line **);
 
 /* To continue the execution commands when running gdb asynchronously. 
    A continuation structure contains a pointer to a function to be called 
    to finish the command, once the target has stopped. Such mechanism is
 
 extern void free_command_lines (struct command_line **);
 
 /* To continue the execution commands when running gdb asynchronously. 
    A continuation structure contains a pointer to a function to be called 
    to finish the command, once the target has stopped. Such mechanism is
-   used bt the finish and until commands, and in the remote protocol
+   used by the finish and until commands, and in the remote protocol
    when opening an extended-remote connection. */
 
    when opening an extended-remote connection. */
 
-struct continuation_arg
-  {
-    struct continuation_arg *next;
-    union continuation_data {
-      void *pointer;
-      int   integer;
-      long  longint;
-    } data;
-  };
+struct continuation;
+struct thread_info;
+struct inferior;
 
 
-struct continuation
-  {
-    void (*continuation_hook) (struct continuation_arg *);
-    struct continuation_arg *arg_list;
-    struct continuation *next;
-  };
+/* From utils.c */
 
 
-/* In infrun.c. */
-extern struct continuation *cmd_continuation;
-/* Used only by the step_1 function. */
-extern struct continuation *intermediate_continuation;
+/* Thread specific continuations.  */
 
 
-/* From utils.c */
-extern void add_continuation (void (*)(struct continuation_arg *),
-                             struct continuation_arg *);
+extern void add_continuation (struct thread_info *,
+                             void (*)(void *), void *,
+                             void (*)(void *));
 extern void do_all_continuations (void);
 extern void do_all_continuations (void);
+extern void do_all_continuations_thread (struct thread_info *);
 extern void discard_all_continuations (void);
 extern void discard_all_continuations (void);
+extern void discard_all_continuations_thread (struct thread_info *);
 
 
-extern void add_intermediate_continuation (void (*)(struct continuation_arg *),
-                             struct continuation_arg *);
+extern void add_intermediate_continuation (struct thread_info *,
+                                          void (*)(void *), void *,
+                                          void (*)(void *));
 extern void do_all_intermediate_continuations (void);
 extern void do_all_intermediate_continuations (void);
+extern void do_all_intermediate_continuations_thread (struct thread_info *);
 extern void discard_all_intermediate_continuations (void);
 extern void discard_all_intermediate_continuations (void);
+extern void discard_all_intermediate_continuations_thread (struct thread_info *);
+
+/* Inferior specific (any thread) continuations.  */
+
+extern void add_inferior_continuation (void (*) (void *),
+                                      void *,
+                                      void (*) (void *));
+extern void do_all_inferior_continuations (void);
+extern void discard_all_inferior_continuations (struct inferior *inf);
 
 /* String containing the current directory (what getwd would return).  */
 
 
 /* String containing the current directory (what getwd would return).  */
 
@@ -783,6 +762,7 @@ enum val_prettyprint
       ptid_get_lwp     - Fetch the lwp component of a ptid.
       ptid_get_tid     - Fetch the tid component of a ptid.
       ptid_equal       - Test to see if two ptids are equal.
       ptid_get_lwp     - Fetch the lwp component of a ptid.
       ptid_get_tid     - Fetch the tid component of a ptid.
       ptid_equal       - Test to see if two ptids are equal.
+      ptid_is_pid      - Test to see if this ptid represents a process id.
 
    Please do NOT access the struct ptid members directly (except, of
    course, in the implementation of the above ptid manipulation
 
    Please do NOT access the struct ptid members directly (except, of
    course, in the implementation of the above ptid manipulation
@@ -804,14 +784,6 @@ typedef struct ptid ptid_t;
 
 \f
 
 
 \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'
 /* 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'
@@ -821,14 +793,6 @@ typedef struct ptid ptid_t;
 #include "nm.h"
 #endif
 
 #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
 /* 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
@@ -899,21 +863,21 @@ extern void *xzalloc (size_t);
 
 /* Like asprintf/vasprintf but get an internal_error if the call
    fails. */
 
 /* Like asprintf/vasprintf but get an internal_error if the call
    fails. */
-extern void xasprintf (char **ret, const char *format, ...) ATTR_FORMAT (printf, 2, 3);
+extern void xasprintf (char **ret, const char *format, ...) ATTRIBUTE_PRINTF (2, 3);
 extern void xvasprintf (char **ret, const char *format, va_list ap)
 extern void xvasprintf (char **ret, const char *format, va_list ap)
-     ATTR_FORMAT (printf, 2, 0);
+     ATTRIBUTE_PRINTF (2, 0);
 
 /* Like asprintf and vasprintf, but return the string, throw an error
    if no memory.  */
 
 /* Like asprintf and vasprintf, but return the string, throw an error
    if no memory.  */
-extern char *xstrprintf (const char *format, ...) ATTR_FORMAT (printf, 1, 2);
+extern char *xstrprintf (const char *format, ...) ATTRIBUTE_PRINTF (1, 2);
 extern char *xstrvprintf (const char *format, va_list ap)
 extern char *xstrvprintf (const char *format, va_list ap)
-     ATTR_FORMAT (printf, 1, 0);
+     ATTRIBUTE_PRINTF (1, 0);
 
 /* Like snprintf, but throw an error if the output buffer is too small.  */
 extern int xsnprintf (char *str, size_t size, const char *format, ...)
 
 /* Like snprintf, but throw an error if the output buffer is too small.  */
 extern int xsnprintf (char *str, size_t size, const char *format, ...)
-     ATTR_FORMAT (printf, 3, 4);
+     ATTRIBUTE_PRINTF (3, 4);
 
 
-extern int parse_escape (char **);
+extern int parse_escape (struct gdbarch *, char **);
 
 /* Message to be printed before the error message, when an error occurs.  */
 
 
 /* Message to be printed before the error message, when an error occurs.  */
 
@@ -927,37 +891,39 @@ extern char *quit_pre_print;
 
 extern char *warning_pre_print;
 
 
 extern char *warning_pre_print;
 
-extern NORETURN void verror (const char *fmt, va_list ap)
-     ATTR_NORETURN ATTR_FORMAT (printf, 1, 0);
+extern void verror (const char *fmt, va_list ap)
+     ATTRIBUTE_NORETURN ATTRIBUTE_PRINTF (1, 0);
 
 
-extern NORETURN void error (const char *fmt, ...) ATTR_NORETURN ATTR_FORMAT (printf, 1, 2);
+extern void error (const char *fmt, ...)
+     ATTRIBUTE_NORETURN ATTRIBUTE_PRINTF (1, 2);
 
 
-extern NORETURN void error_stream (struct ui_file *) ATTR_NORETURN;
+extern void error_stream (struct ui_file *) ATTRIBUTE_NORETURN;
 
 
-extern NORETURN void vfatal (const char *fmt, va_list ap)
-     ATTR_NORETURN ATTR_FORMAT (printf, 1, 0);
+extern void vfatal (const char *fmt, va_list ap)
+     ATTRIBUTE_NORETURN ATTRIBUTE_PRINTF (1, 0);
 
 
-extern NORETURN void fatal (const char *fmt, ...) ATTR_NORETURN ATTR_FORMAT (printf, 1, 2);
+extern void fatal (const char *fmt, ...)
+     ATTRIBUTE_NORETURN ATTRIBUTE_PRINTF (1, 2);
 
 
-extern NORETURN void internal_verror (const char *file, int line,
-                                     const char *, va_list ap)
-     ATTR_NORETURN ATTR_FORMAT (printf, 3, 0);
+extern void internal_verror (const char *file, int line, const char *,
+                            va_list ap)
+     ATTRIBUTE_NORETURN ATTRIBUTE_PRINTF (3, 0);
 
 
-extern NORETURN void internal_error (const char *file, int line,
-                                    const char *, ...) ATTR_NORETURN ATTR_FORMAT (printf, 3, 4);
+extern void internal_error (const char *file, int line, const char *, ...)
+     ATTRIBUTE_NORETURN ATTRIBUTE_PRINTF (3, 4);
 
 extern void internal_vwarning (const char *file, int line,
                               const char *, va_list ap)
 
 extern void internal_vwarning (const char *file, int line,
                               const char *, va_list ap)
-     ATTR_FORMAT (printf, 3, 0);
+     ATTRIBUTE_PRINTF (3, 0);
 
 extern void internal_warning (const char *file, int line,
 
 extern void internal_warning (const char *file, int line,
-                             const char *, ...) ATTR_FORMAT (printf, 3, 4);
+                             const char *, ...) ATTRIBUTE_PRINTF (3, 4);
 
 
-extern NORETURN void nomem (long) ATTR_NORETURN;
+extern void nomem (long) ATTRIBUTE_NORETURN;
 
 
-extern void warning (const char *, ...) ATTR_FORMAT (printf, 1, 2);
+extern void warning (const char *, ...) ATTRIBUTE_PRINTF (1, 2);
 
 
-extern void vwarning (const char *, va_list args) ATTR_FORMAT (printf, 1, 0);
+extern void vwarning (const char *, va_list args) ATTRIBUTE_PRINTF (1, 0);
 
 /* List of known OS ABIs.  If you change this, make sure to update the
    table in osabi.c.  */
 
 /* List of known OS ABIs.  If you change this, make sure to update the
    table in osabi.c.  */
@@ -983,11 +949,12 @@ enum gdb_osabi
   GDB_OSABI_INTERIX,
   GDB_OSABI_HPUX_ELF,
   GDB_OSABI_HPUX_SOM,
   GDB_OSABI_INTERIX,
   GDB_OSABI_HPUX_ELF,
   GDB_OSABI_HPUX_SOM,
-
   GDB_OSABI_QNXNTO,
   GDB_OSABI_QNXNTO,
-
   GDB_OSABI_CYGWIN,
   GDB_OSABI_AIX,
   GDB_OSABI_CYGWIN,
   GDB_OSABI_AIX,
+  GDB_OSABI_DICOS,
+  GDB_OSABI_DARWIN,
+  GDB_OSABI_SYMBIAN,
 
   GDB_OSABI_INVALID            /* keep this last */
 };
 
   GDB_OSABI_INVALID            /* keep this last */
 };
@@ -1044,7 +1011,7 @@ extern void *alloca ();
 /* Maximum size of a register.  Something small, but large enough for
    all known ISAs.  If it turns out to be too small, make it bigger.  */
 
 /* Maximum size of a register.  Something small, but large enough for
    all known ISAs.  If it turns out to be too small, make it bigger.  */
 
-enum { MAX_REGISTER_SIZE = 16 };
+enum { MAX_REGISTER_SIZE = 32 };
 
 /* Static target-system-dependent parameters for GDB. */
 
 
 /* Static target-system-dependent parameters for GDB. */
 
@@ -1065,28 +1032,25 @@ enum { MAX_REGISTER_SIZE = 16 };
 #define HOST_CHAR_BIT TARGET_CHAR_BIT
 #endif
 
 #define HOST_CHAR_BIT TARGET_CHAR_BIT
 #endif
 
-/* The bit byte-order has to do just with numbering of bits in
-   debugging symbols and such.  Conceptually, it's quite separate
-   from byte/word byte order.  */
-
-#if !defined (BITS_BIG_ENDIAN)
-#define BITS_BIG_ENDIAN (gdbarch_byte_order (current_gdbarch) == BFD_ENDIAN_BIG)
-#endif
-
 /* In findvar.c.  */
 
 /* In findvar.c.  */
 
-extern LONGEST extract_signed_integer (const gdb_byte *, int);
+extern LONGEST extract_signed_integer (const gdb_byte *, int,
+                                      enum bfd_endian);
 
 
-extern ULONGEST extract_unsigned_integer (const gdb_byte *, int);
+extern ULONGEST extract_unsigned_integer (const gdb_byte *, int,
+                                         enum bfd_endian);
 
 
-extern int extract_long_unsigned_integer (const gdb_byte *, int, LONGEST *);
+extern int extract_long_unsigned_integer (const gdb_byte *, int,
+                                         enum bfd_endian, LONGEST *);
 
 extern CORE_ADDR extract_typed_address (const gdb_byte *buf,
                                        struct type *type);
 
 
 extern CORE_ADDR extract_typed_address (const gdb_byte *buf,
                                        struct type *type);
 
-extern void store_signed_integer (gdb_byte *, int, LONGEST);
+extern void store_signed_integer (gdb_byte *, int,
+                                 enum bfd_endian, LONGEST);
 
 
-extern void store_unsigned_integer (gdb_byte *, int, ULONGEST);
+extern void store_unsigned_integer (gdb_byte *, int,
+                                   enum bfd_endian, ULONGEST);
 
 extern void store_typed_address (gdb_byte *buf, struct type *type,
                                 CORE_ADDR addr);
 
 extern void store_typed_address (gdb_byte *buf, struct type *type,
                                 CORE_ADDR addr);
@@ -1129,19 +1093,16 @@ extern int (*deprecated_query_hook) (const char *, va_list)
 extern void (*deprecated_warning_hook) (const char *, va_list)
      ATTRIBUTE_FPTR_PRINTF(1,0);
 extern void (*deprecated_flush_hook) (struct ui_file * stream);
 extern void (*deprecated_warning_hook) (const char *, va_list)
      ATTRIBUTE_FPTR_PRINTF(1,0);
 extern void (*deprecated_flush_hook) (struct ui_file * stream);
-extern void (*deprecated_create_breakpoint_hook) (struct breakpoint * b);
-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_readline_begin_hook) (char *, ...)
      ATTRIBUTE_FPTR_PRINTF_1;
 extern char *(*deprecated_readline_hook) (char *);
 extern void (*deprecated_readline_end_hook) (void);
 extern void (*deprecated_register_changed_hook) (int regno);
 extern void (*deprecated_interactive_hook) (void);
 extern void (*deprecated_readline_begin_hook) (char *, ...)
      ATTRIBUTE_FPTR_PRINTF_1;
 extern char *(*deprecated_readline_hook) (char *);
 extern void (*deprecated_readline_end_hook) (void);
 extern void (*deprecated_register_changed_hook) (int regno);
-extern void (*deprecated_memory_changed_hook) (CORE_ADDR addr, int len);
 extern void (*deprecated_context_hook) (int);
 extern ptid_t (*deprecated_target_wait_hook) (ptid_t ptid,
 extern void (*deprecated_context_hook) (int);
 extern ptid_t (*deprecated_target_wait_hook) (ptid_t ptid,
-                                         struct target_waitstatus * status);
+                                             struct target_waitstatus *status,
+                                             int options);
 
 extern void (*deprecated_attach_hook) (void);
 extern void (*deprecated_detach_hook) (void);
 
 extern void (*deprecated_attach_hook) (void);
 extern void (*deprecated_detach_hook) (void);
@@ -1150,8 +1111,6 @@ extern void (*deprecated_call_command_hook) (struct cmd_list_element * c,
 
 extern void (*deprecated_set_hook) (struct cmd_list_element * c);
 
 
 extern void (*deprecated_set_hook) (struct cmd_list_element * c);
 
-extern void (*deprecated_error_hook) (void);
-
 extern void (*deprecated_error_begin_hook) (void);
 
 extern int (*deprecated_ui_load_progress_hook) (const char *section,
 extern void (*deprecated_error_begin_hook) (void);
 
 extern int (*deprecated_ui_load_progress_hook) (const char *section,
@@ -1162,9 +1121,9 @@ extern int (*deprecated_ui_load_progress_hook) (const char *section,
 
 extern int use_windows;
 
 
 extern int use_windows;
 
-/* Symbolic definitions of filename-related things.  */
-/* FIXME, this doesn't work very well if host and executable
-   filesystems conventions are different.  */
+/* Definitions of filename-related things.  */
+
+/* Host specific things.  */
 
 #ifdef __MSDOS__
 # define CANT_FORK
 
 #ifdef __MSDOS__
 # define CANT_FORK
@@ -1250,4 +1209,9 @@ extern ULONGEST align_down (ULONGEST v, int n);
 void *hashtab_obstack_allocate (void *data, size_t size, size_t count);
 void dummy_obstack_deallocate (void *object, void *data);
 
 void *hashtab_obstack_allocate (void *data, size_t size, size_t count);
 void dummy_obstack_deallocate (void *object, void *data);
 
+/* From progspace.c */
+
+extern void initialize_progspace (void);
+extern void initialize_inferiors (void);
+
 #endif /* #ifndef DEFS_H */
 #endif /* #ifndef DEFS_H */
This page took 0.034406 seconds and 4 git commands to generate.