*** empty log message ***
[deliverable/binutils-gdb.git] / gdb / defs.h
index 9531c5adadde845462f8a1b857ecd89ab32e644c..7f8a3303e424cbe89931e0ae788f1e828bc181ef 100644 (file)
 #ifndef DEFS_H
 #define DEFS_H
 
+#ifdef GDBSERVER
+#  error gdbserver should not include gdb/defs.h
+#endif
+
 #include "config.h"            /* Generated by configure.  */
 
 #include <sys/types.h>
@@ -89,6 +93,7 @@
 #include <stdarg.h>            /* For va_list.  */
 
 #include "libiberty.h"
+#include "hashtab.h"
 
 /* Rather than duplicate all the logic in BFD for figuring out what
    types to use (which can be pretty complicated), symply define them
@@ -142,8 +147,7 @@ typedef bfd_vma CORE_ADDR;
 #define max(a, b) ((a) > (b) ? (a) : (b))
 #endif
 
-/* Check if a character is one of the commonly used C++ marker characters.  */
-extern int is_cplus_marker (int);
+#include "ptid.h"
 
 /* Enable xdb commands if set.  */
 extern int xdb_commands;
@@ -258,7 +262,7 @@ enum return_value_convention
    point in the chain.  Use discard_cleanups to remove cleanups
    from the chain back to a given point, not doing them.
 
-   If the argument is pointer to allocated memory, then you need to
+   If the argument is pointer to allocated memory, then you need
    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.  */
@@ -271,18 +275,10 @@ struct cleanup
     void *arg;
   };
 
-/* Be conservative and use enum bitfields only with GCC.
-   This is copied from gcc 3.3.1, system.h.  */
-
-#if defined(__GNUC__) && (__GNUC__ >= 2)
-#define ENUM_BITFIELD(TYPE) enum TYPE
-#else
-#define ENUM_BITFIELD(TYPE) unsigned int
-#endif
-
-/* vec.h-style vectors of strings want a typedef for char * .  */
+/* vec.h-style vectors of strings want a typedef for char * or const char *.  */
 
 typedef char * char_ptr;
+typedef const char * const_char_ptr;
 
 /* Needed for various prototypes */
 
@@ -290,6 +286,13 @@ struct symtab;
 struct breakpoint;
 struct frame_info;
 struct gdbarch;
+struct value;
+
+/* From main.c.  */
+
+/* This really belong in utils.c (path-utils.c?), but it references some
+   globals that are currently only available to main.c.  */
+extern char *relocate_gdb_directory (const char *initial, int flag);
 
 /* From utils.c */
 
@@ -334,6 +337,9 @@ extern struct cleanup *make_cleanup_dtor (make_cleanup_ftype *, void *,
 
 extern struct cleanup *make_cleanup_freeargv (char **);
 
+struct dyn_string;
+extern struct cleanup *make_cleanup_dyn_string_delete (struct dyn_string *);
+
 struct ui_file;
 extern struct cleanup *make_cleanup_ui_file_delete (struct ui_file *);
 
@@ -363,11 +369,19 @@ extern struct cleanup *make_cleanup_unpush_target (struct target_ops *ops);
 extern struct cleanup *
   make_cleanup_restore_ui_file (struct ui_file **variable);
 
+extern struct cleanup *make_cleanup_value_free_to_mark (struct value *);
+extern struct cleanup *make_cleanup_value_free (struct value *);
+
+struct so_list;
+extern struct cleanup *make_cleanup_free_so (struct so_list *so);
+
 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_cleanup_htab_delete (htab_t htab);
+
 extern struct cleanup *make_my_cleanup2 (struct cleanup **,
                                         make_cleanup_ftype *, void *,
                                         void (*free_arg) (void *));
@@ -411,6 +425,7 @@ char *ldirname (const char *filename);
 char **gdb_buildargv (const char *);
 
 int compare_positive_ints (const void *ap, const void *bp);
+int compare_strings (const void *ap, const void *bp);
 
 /* A wrapper for bfd_errmsg to produce a more helpful error message
    in the case of bfd_error_file_ambiguously recognized.
@@ -421,9 +436,13 @@ 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 struct cleanup *make_bpstat_clear_actions_cleanup (void);
+
+extern int producer_is_gcc_ge_4 (const char *producer);
 
-extern void set_demangling_style (char *);
+#ifdef HAVE_WAITPID
+extern pid_t wait_to_die_with_timeout (pid_t pid, int *status, int timeout);
+#endif
 
 \f
 /* Annotation stuff.  */
@@ -538,6 +557,11 @@ extern const char *paddress (struct gdbarch *gdbarch, CORE_ADDR addr);
 extern const char *print_core_address (struct gdbarch *gdbarch,
                                       CORE_ADDR address);
 
+/* Callback hash_f and eq_f for htab_create_alloc or htab_create_alloc_ex.  */
+
+extern hashval_t core_addr_hash (const void *ap);
+extern int core_addr_eq (const void *ap, const void *bp);
+
 /* %d for LONGEST */
 extern char *plongest (LONGEST l);
 /* %u for ULONGEST */
@@ -729,44 +753,6 @@ extern struct command_line *read_command_lines_1 (char * (*) (void), int,
 
 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 by the finish and until commands, and in the remote protocol
-   when opening an extended-remote connection.  */
-
-struct continuation;
-struct thread_info;
-struct inferior;
-
-/* From utils.c */
-
-/* Thread specific continuations.  */
-
-extern void add_continuation (struct thread_info *,
-                             void (*)(void *), void *,
-                             void (*)(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_thread (struct thread_info *);
-
-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_thread (struct thread_info *);
-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).  */
 
 extern char *current_directory;
@@ -789,41 +775,6 @@ enum val_prettyprint
     Val_pretty_default
   };
 
-/* The ptid struct is a collection of the various "ids" necessary
-   for identifying the inferior.  This consists of the process id
-   (pid), thread id (tid), and other fields necessary for uniquely
-   identifying the inferior process/thread being debugged.  When
-   manipulating ptids, the constructors, accessors, and predicate
-   declared in inferior.h should be used.  These are as follows:
-
-      ptid_build       - Make a new ptid from a pid, lwp, and tid.
-      pid_to_ptid      - Make a new ptid from just a pid.
-      ptid_get_pid     - Fetch the pid component of a ptid.
-      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
-   functions).  */
-
-struct ptid
-  {
-    /* Process id */
-    int pid;
-
-    /* Lightweight process id */
-    long lwp;
-
-    /* Thread id */
-    long tid;
-  };
-
-typedef struct ptid ptid_t;
-
-\f
-
 /* 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'
@@ -887,13 +838,6 @@ extern int longest_to_int (LONGEST);
 
 extern char *savestring (const char *, size_t);
 
-/* xmalloc(), xrealloc() and xcalloc() have already been declared in
-   "libiberty.h".  */
-extern void xfree (void *);
-
-/* Like xmalloc, but zero the memory.  */
-extern void *xzalloc (size_t);
-
 /* Utility macros to allocate typed memory.  Avoids errors like:
    struct foo *foo = xmalloc (sizeof struct bar); and memset (foo,
    sizeof (struct foo), 0).  */
@@ -901,22 +845,7 @@ extern void *xzalloc (size_t);
 #define XMALLOC(TYPE) ((TYPE*) xmalloc (sizeof (TYPE)))
 #define XCALLOC(NMEMB, TYPE) ((TYPE*) xcalloc ((NMEMB), sizeof (TYPE)))
 
-/* Like asprintf/vasprintf but get an internal_error if the call
-   fails.  */
-extern void xasprintf (char **ret, const char *format, ...)
-     ATTRIBUTE_PRINTF (2, 3);
-extern void xvasprintf (char **ret, const char *format, va_list ap)
-     ATTRIBUTE_PRINTF (2, 0);
-
-/* Like asprintf and vasprintf, but return the string, throw an error
-   if no memory.  */
-extern char *xstrprintf (const char *format, ...) ATTRIBUTE_PRINTF (1, 2);
-extern char *xstrvprintf (const char *format, va_list ap)
-     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, ...)
-     ATTRIBUTE_PRINTF (3, 4);
+#include "common-utils.h"
 
 extern int parse_escape (struct gdbarch *, char **);
 
@@ -950,9 +879,6 @@ extern void internal_verror (const char *file, int line, const char *,
                             va_list ap)
      ATTRIBUTE_NORETURN ATTRIBUTE_PRINTF (3, 0);
 
-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)
      ATTRIBUTE_PRINTF (3, 0);
@@ -960,8 +886,6 @@ extern void internal_vwarning (const char *file, int line,
 extern void internal_warning (const char *file, int line,
                              const char *, ...) ATTRIBUTE_PRINTF (3, 4);
 
-extern void nomem (long) ATTRIBUTE_NORETURN;
-
 extern void warning (const char *, ...) ATTRIBUTE_PRINTF (1, 2);
 
 extern void vwarning (const char *, va_list args) ATTRIBUTE_PRINTF (1, 0);
@@ -1256,4 +1180,13 @@ void dummy_obstack_deallocate (void *object, void *data);
 extern void initialize_progspace (void);
 extern void initialize_inferiors (void);
 
+/* Special block numbers */
+
+enum block_enum
+{
+  GLOBAL_BLOCK = 0,
+  STATIC_BLOCK = 1,
+  FIRST_LOCAL_BLOCK = 2
+};
+
 #endif /* #ifndef DEFS_H */
This page took 0.026868 seconds and 4 git commands to generate.