2005-02-02 Andrew Cagney <cagney@gnu.org>
[deliverable/binutils-gdb.git] / gdb / defs.h
index 99d64bb9c1e528ed29ffbd0dbdb5f5b377667130..44eb9c1d604111fa555f0ced4cf7374b11884efa 100644 (file)
 /* For BFD64 and bfd_vma.  */
 #include "bfd.h"
 
-
-/* The target is partially multi-arched.  Both "tm.h" and the
-   multi-arch vector provide definitions.  "tm.h" normally overrides
-   the multi-arch vector (but there are a few exceptions).  */
-
-#define GDB_MULTI_ARCH_PARTIAL 1
-
-/* The target is partially multi-arched. Both the multi-arch vector
-   and "tm.h" provide definitions. "tm.h" cannot override a definition
-   provided by the multi-arch vector.  It is detected as a compilation
-   error.
-
-   This setting is only useful during a multi-arch conversion. */
-
-#define GDB_MULTI_ARCH_TM 2
-
-/* The target is pure multi-arch.  The MULTI-ARCH vector provides all
-   definitions.  "tm.h" is linked to an empty file. */
-
-#define GDB_MULTI_ARCH_PURE 3
-
-
-
 /* An address in the program being debugged.  Host byte order.  Rather
    than duplicate all the logic in BFD which figures out what type
    this is (long, long long, etc.) and whether it needs to be 64
@@ -220,7 +197,9 @@ enum language
     language_asm,              /* Assembly language */
     language_scm,              /* Scheme / Guile */
     language_pascal,           /* Pascal */
-    language_minimal           /* All other languages, minimal support only */
+    language_ada,              /* Ada */
+    language_minimal,          /* All other languages, minimal support only */
+    nr_languages
   };
 
 enum precision_type
@@ -335,12 +314,6 @@ struct symtab;
 struct breakpoint;
 struct frame_info;
 
-/* From blockframe.c */
-
-extern int inside_entry_func (struct frame_info *this_frame);
-
-extern int inside_main_func (CORE_ADDR pc);
-
 /* From utils.c */
 
 extern void initialize_utils (void);
@@ -357,10 +330,10 @@ extern int subset_compare (char *, char *);
 
 extern char *safe_strerror (int);
 
-extern void init_malloc (void *);
-
 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 *);
@@ -386,6 +359,10 @@ extern struct cleanup *make_cleanup_freeargv (char **);
 struct ui_file;
 extern struct cleanup *make_cleanup_ui_file_delete (struct ui_file *);
 
+struct section_addr_info;
+extern struct cleanup *(make_cleanup_free_section_addr_info 
+                        (struct section_addr_info *));
+
 extern struct cleanup *make_cleanup_close (int fd);
 
 extern struct cleanup *make_cleanup_bfd_close (bfd *abfd);
@@ -537,6 +514,7 @@ extern char *paddr_d (LONGEST addr);
 
 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
@@ -545,6 +523,11 @@ extern const char *core_addr_to_string (const CORE_ADDR addr);
 extern const char *core_addr_to_string_nz (const CORE_ADDR addr);
 extern CORE_ADDR string_to_core_addr (const char *my_string);
 
+/* Return a string that contains a number formatted as a hex
+   string.  */
+extern char *hex_string (LONGEST);
+extern char *hex_string_custom (LONGEST, int);
+
 extern void fprintf_symbol_filtered (struct ui_file *, char *,
                                     enum language, int);
 
@@ -610,6 +593,9 @@ extern void print_address (CORE_ADDR, struct ui_file *);
 
 /* 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 source_full_path_of (char *, char **);
@@ -646,18 +632,14 @@ enum lval_type
   {
     /* Not an lval. */
     not_lval,
-    /* In memory.  Could be a saved register.  */
+    /* In memory.  */
     lval_memory,
-    /* In a register.  */
+    /* In a register.  Registers are relative to a frame.  */
     lval_register,
     /* In a gdb internal variable.  */
     lval_internalvar,
     /* Part of a gdb internal variable (structure field).  */
-    lval_internalvar_component,
-    /* In a register series in a frame not the current one, which may have been
-       partially saved or saved in different places (otherwise would be
-       lval_register or lval_memory).  */
-    lval_reg_frame_relative
+    lval_internalvar_component
   };
 
 /* Control types for commands */
@@ -816,11 +798,16 @@ typedef struct ptid ptid_t;
 #include "tm.h"
 #endif
 
-/* If the xm.h file did not define the mode string used to open the
-   files, assume that binary files are opened the same way as text
-   files */
+/* 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
+   true POSIX systems it will be ignored and have no effect.  There
+   may still be systems without a standard-conforming C library where
+   an ISO C9X compiler (GCC) is available.  Known examples are SunOS
+   4.x and 4.3BSD.  This assumption means these systems are no longer
+   supported.  */
 #ifndef FOPEN_RB
-#include "fopen-same.h"
+# include "fopen-bin.h"
 #endif
 
 /* Defaults for system-wide constants (if not defined by xm.h, we fake it).
@@ -865,17 +852,6 @@ extern int longest_to_int (LONGEST);
 
 extern char *savestring (const char *, size_t);
 
-extern char *msavestring (void *, const char *, size_t);
-
-extern char *mstrsave (void *, const char *);
-
-/* Robust versions of same.  Throw an internal error when no memory,
-   guard against stray NULL arguments. */
-extern void *xmmalloc (void *md, size_t size);
-extern void *xmrealloc (void *md, void *ptr, size_t size);
-extern void *xmcalloc (void *md, size_t number, size_t size);
-extern void xmfree (void *md, void *ptr);
-
 /* xmalloc(), xrealloc() and xcalloc() have already been declared in
    "libiberty.h". */
 extern void xfree (void *);
@@ -892,8 +868,10 @@ extern void xfree (void *);
 extern void xasprintf (char **ret, const char *format, ...) ATTR_FORMAT (printf, 2, 3);
 extern void xvasprintf (char **ret, const char *format, va_list ap);
 
-/* Like asprintf, 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 *xstrvprintf (const char *format, va_list ap);
 
 extern int parse_escape (char **);
 
@@ -913,19 +891,11 @@ extern NORETURN void verror (const char *fmt, va_list ap) ATTR_NORETURN;
 
 extern NORETURN void error (const char *fmt, ...) ATTR_NORETURN ATTR_FORMAT (printf, 1, 2);
 
-extern NORETURN void error_silent (const char *fmt, ...) ATTR_NORETURN ATTR_FORMAT (printf, 1, 2);
-
 extern NORETURN void error_stream (struct ui_file *) ATTR_NORETURN;
 
-/* Initialize the error buffer.  */
-extern void error_init (void);
+extern NORETURN void vfatal (const char *fmt, va_list ap) ATTR_NORETURN;
 
-/* Returns a freshly allocate buffer containing the last error
-   message.  */
-extern char *error_last_message (void);
-
-/* Output arbitrary error message.  */
-extern void error_output_message (char *pre_print, char *msg);
+extern NORETURN void fatal (const char *fmt, ...) ATTR_NORETURN ATTR_FORMAT (printf, 1, 2);
 
 extern NORETURN void internal_verror (const char *file, int line,
                                      const char *, va_list ap) ATTR_NORETURN;
@@ -941,95 +911,6 @@ extern void internal_warning (const char *file, int line,
 
 extern NORETURN void nomem (long) ATTR_NORETURN;
 
-/* Reasons for calling throw_exception().  NOTE: all reason values
-   must be less than zero.  enum value 0 is reserved for internal use
-   as the return value from an initial setjmp().  The function
-   catch_exceptions() reserves values >= 0 as legal results from its
-   wrapped function.  */
-
-enum return_reason
-  {
-    /* User interrupt.  */
-    RETURN_QUIT = -2,
-    /* Any other error.  */
-    RETURN_ERROR
-  };
-
-#define        ALL_CLEANUPS    ((struct cleanup *)0)
-
-#define RETURN_MASK(reason)    (1 << (int)(-reason))
-#define RETURN_MASK_QUIT       RETURN_MASK (RETURN_QUIT)
-#define RETURN_MASK_ERROR      RETURN_MASK (RETURN_ERROR)
-#define RETURN_MASK_ALL                (RETURN_MASK_QUIT | RETURN_MASK_ERROR)
-typedef int return_mask;
-
-/* Throw an exception of type RETURN_REASON.  Will execute a LONG JUMP
-   to the inner most containing exception handler established using
-   catch_exceptions() (or the legacy catch_errors()).
-
-   Code normally throws an exception using error() et.al.  For various
-   reaons, GDB also contains code that throws an exception directly.
-   For instance, the remote*.c targets contain CNTRL-C signal handlers
-   that propogate the QUIT event up the exception chain.  ``This could
-   be a good thing or a dangerous thing.'' -- the Existential Wombat.  */
-
-extern NORETURN void throw_exception (enum return_reason) ATTR_NORETURN;
-
-/* Call FUNC(UIOUT, FUNC_ARGS) but wrapped within an exception
-   handler.  If an exception (enum return_reason) is thrown using
-   throw_exception() than all cleanups installed since
-   catch_exceptions() was entered are invoked, the (-ve) exception
-   value is then returned by catch_exceptions.  If FUNC() returns
-   normally (with a postive or zero return value) then that value is
-   returned by catch_exceptions().  It is an internal_error() for
-   FUNC() to return a negative value.
-
-   For the period of the FUNC() call: UIOUT is installed as the output
-   builder; ERRSTRING is installed as the error/quit message; and a
-   new cleanup_chain is established.  The old values are restored
-   before catch_exceptions() returns.
-
-   The variant catch_exceptions_with_msg() is the same as
-   catch_exceptions() but adds the ability to return an allocated
-   copy of the gdb error message.  This is used when a silent error is 
-   issued and the caller wants to manually issue the error message.
-
-   FIXME; cagney/2001-08-13: The need to override the global UIOUT
-   builder variable should just go away.
-
-   This function superseeds catch_errors().
-
-   This function uses SETJMP() and LONGJUMP().  */
-
-struct ui_out;
-typedef int (catch_exceptions_ftype) (struct ui_out *ui_out, void *args);
-extern int catch_exceptions (struct ui_out *uiout,
-                            catch_exceptions_ftype *func, void *func_args,
-                            char *errstring, return_mask mask);
-extern int catch_exceptions_with_msg (struct ui_out *uiout,
-                                     catch_exceptions_ftype *func, 
-                                     void *func_args,
-                                     char *errstring, char **gdberrmsg,
-                                     return_mask mask);
-
-/* If CATCH_ERRORS_FTYPE throws an error, catch_errors() returns zero
-   otherwize the result from CATCH_ERRORS_FTYPE is returned. It is
-   probably useful for CATCH_ERRORS_FTYPE to always return a non-zero
-   value. It's unfortunate that, catch_errors() does not return an
-   indication of the exact exception that it caught - quit_flag might
-   help.
-
-   This function is superseeded by catch_exceptions().  */
-
-typedef int (catch_errors_ftype) (void *);
-extern int catch_errors (catch_errors_ftype *, void *, char *, return_mask);
-
-/* Template to catch_errors() that wraps calls to command
-   functions. */
-
-typedef void (catch_command_errors_ftype) (char *, int);
-extern int catch_command_errors (catch_command_errors_ftype *func, char *command, int from_tty, return_mask);
-
 extern void warning (const char *, ...) ATTR_FORMAT (printf, 1, 2);
 
 extern void vwarning (const char *, va_list args);
@@ -1075,10 +956,6 @@ enum gdb_osabi
    Libiberty thingies are no longer declared here.  We include libiberty.h
    above, instead.  */
 
-#ifndef GETENV_PROVIDED
-extern char *getenv (const char *);
-#endif
-
 /* From other system libraries */
 
 #ifdef HAVE_STDDEF_H
@@ -1096,15 +973,6 @@ extern char *getenv (const char *);
 #endif
 
 
-/* We take the address of fclose later, but some stdio's forget
-   to declare this.  We can't always declare it since there's
-   no way to declare the parameters without upsetting some compiler
-   somewhere. */
-
-#ifndef FCLOSE_PROVIDED
-extern int fclose (FILE *);
-#endif
-
 #ifndef atof
 extern double atof (const char *);     /* X3.159-1989  4.10.1.1 */
 #endif
@@ -1130,15 +998,6 @@ extern void *alloca ();
 #endif /* Not GNU C */
 #endif /* alloca not defined */
 
-/* Is GDB multi-arch?  If there's a "tm.h" file, it is not.  */
-#ifndef GDB_MULTI_ARCH
-#ifdef GDB_TM_FILE
-#define GDB_MULTI_ARCH GDB_MULTI_ARCH_PARTIAL
-#else
-#define GDB_MULTI_ARCH GDB_MULTI_ARCH_PURE
-#endif
-#endif
-
 /* Dynamic target-system-dependent parameters for GDB. */
 #include "gdbarch.h"
 
@@ -1213,10 +1072,6 @@ extern char *interpreter_p;
 struct target_waitstatus;
 struct cmd_list_element;
 
-/* Should the asynchronous variant of the interpreter (using the
-   event-loop) be enabled? */
-extern int event_loop_p;
-
 extern void (*deprecated_pre_add_symbol_hook) (const char *);
 extern void (*deprecated_post_add_symbol_hook) (void);
 extern void (*selected_frame_level_changed_hook) (int);
@@ -1256,7 +1111,7 @@ extern void (*deprecated_call_command_hook) (struct cmd_list_element * c,
 
 extern void (*deprecated_set_hook) (struct cmd_list_element * c);
 
-extern NORETURN void (*deprecated_error_hook) (void) ATTR_NORETURN;
+extern void (*deprecated_error_hook) (void);
 
 extern void (*deprecated_error_begin_hook) (void);
 
@@ -1272,6 +1127,12 @@ extern int use_windows;
 /* FIXME, this doesn't work very well if host and executable
    filesystems conventions are different.  */
 
+#ifdef __MSDOS__
+# define CANT_FORK
+# define GLOBAL_CURDIR
+# define DIRNAME_SEPARATOR ';'
+#endif
+
 #ifndef DIRNAME_SEPARATOR
 #define DIRNAME_SEPARATOR ':'
 #endif
@@ -1280,11 +1141,6 @@ extern int use_windows;
 #define SLASH_STRING "/"
 #endif
 
-#ifdef __MSDOS__
-# define CANT_FORK
-# define GLOBAL_CURDIR
-#endif
-
 /* Provide default definitions of PIDGET, TIDGET, and MERGEPID.
    The name ``TIDGET'' is a historical accident.  Many uses of TIDGET
    in the code actually refer to a lightweight process id, i.e,
This page took 0.028037 seconds and 4 git commands to generate.