Wed Nov 4 18:46:47 1998 Dave Brolley <brolley@cygnus.com>
[deliverable/binutils-gdb.git] / gdb / defs.h
index 039bb6ae4791cb5e13c31f111c17867de25b6ed8..94faff93b227139d8f25b7674677cbd6f4b74645 100644 (file)
@@ -1,5 +1,5 @@
 /* Basic, host-specific, and target-specific definitions for GDB.
-   Copyright (C) 1986, 1989, 1991, 1992, 1993, 1994, 1995, 1996
+   Copyright (C) 1986, 89, 91, 92, 93, 94, 95, 1996, 1998
    Free Software Foundation, Inc.
 
 This file is part of GDB.
@@ -25,6 +25,12 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 #include <stdio.h>
 #include <errno.h>             /* System call error return status */
 
+#ifdef HAVE_STDDEF_H
+#  include <stddef.h>
+#else
+#  include <sys/types.h>   /* for size_t */
+#endif
+
 /* Just in case they're not defined in stdio.h. */
 
 #ifndef SEEK_SET
@@ -52,7 +58,7 @@ extern char *strsignal PARAMS ((int));
 
 #include "progress.h"
 
-#ifndef NO_MMALLOC
+#ifdef USE_MMALLOC
 #include "mmalloc.h"
 #endif
 
@@ -96,8 +102,8 @@ extern void quit PARAMS ((void));
 
 #ifdef QUIT
 /* do twice to force compiler warning */
-#define FIXME "FIXME"
-#define FIXME "ignoring redefinition of QUIT"
+#define QUIT_FIXME "FIXME"
+#define QUIT_FIXME "ignoring redefinition of QUIT"
 #else
 #define QUIT { \
   if (quit_flag) quit (); \
@@ -118,7 +124,7 @@ enum command_class
   all_classes = -2, all_commands = -1,
   /* Classes of commands */
   no_class = -1, class_run = 0, class_vars, class_stack,
-  class_files, class_support, class_info, class_breakpoint,
+  class_files, class_support, class_info, class_breakpoint, class_trace,
   class_alias, class_obscure, class_user, class_maintenance,
   class_pseudo
 };
@@ -134,6 +140,9 @@ enum language
    language_auto,              /* Placeholder for automatic setting */
    language_c,                         /* C */
    language_cplus,             /* C++ */
+   /* start-sanitize-java */
+   language_java,              /* Java */
+   /* end-sanitize-java */
    language_chill,             /* Chill */
    language_fortran,           /* Fortran */
    language_m2,                        /* Modula-2 */
@@ -211,6 +220,8 @@ extern int inside_entry_file PARAMS ((CORE_ADDR addr));
 
 extern int inside_main_func PARAMS ((CORE_ADDR pc));
 
+extern void _initialize_blockframe PARAMS ((void));
+
 /* From ch-lang.c, for the moment. (FIXME) */
 
 extern char *chill_demangle PARAMS ((const char *));
@@ -230,27 +241,34 @@ extern void init_malloc PARAMS ((void *));
 extern void request_quit PARAMS ((int));
 
 extern void do_cleanups PARAMS ((struct cleanup *));
+extern void do_final_cleanups PARAMS ((struct cleanup *));
+extern void do_my_cleanups PARAMS ((struct cleanup **, struct cleanup *));
 
 extern void discard_cleanups PARAMS ((struct cleanup *));
+extern void discard_final_cleanups PARAMS ((struct cleanup *));
+extern void discard_my_cleanups PARAMS ((struct cleanup **, struct cleanup *));
+
+typedef void (*make_cleanup_func) (void *);
 
-/* The bare make_cleanup function is one of those rare beasts that
-   takes almost any type of function as the first arg and anything that
-   will fit in a "void *" as the second arg.
+extern struct cleanup *
+make_cleanup PARAMS ((make_cleanup_func, void *));
 
-   Should be, once all calls and called-functions are cleaned up:
 extern struct cleanup *
-make_cleanup PARAMS ((void (*function) (void *), void *));
+make_final_cleanup PARAMS ((void (*function) (void *), void *));
 
-   Until then, lint and/or various type-checking compiler options will
-   complain about make_cleanup calls.  It'd be wrong to just cast things,
-   since the type actually passed when the function is called would be
-   wrong.  */
+extern struct cleanup *
+make_my_cleanup PARAMS ((struct cleanup **, void (*function) (void *), void *));
 
-extern struct cleanup *make_cleanup ();
+extern struct cleanup *
+make_run_cleanup PARAMS ((void (*function) (void *), void *));
 
 extern struct cleanup *save_cleanups PARAMS ((void));
+extern struct cleanup *save_final_cleanups PARAMS ((void));
+extern struct cleanup *save_my_cleanups PARAMS ((struct cleanup **));
 
 extern void restore_cleanups PARAMS ((struct cleanup *));
+extern void restore_final_cleanups PARAMS ((struct cleanup *));
+extern void restore_my_cleanups PARAMS ((struct cleanup **, struct cleanup *));
 
 extern void free_current_contents PARAMS ((char **));
 
@@ -261,6 +279,12 @@ extern int myread PARAMS ((int, char *, int));
 extern int query PARAMS((char *, ...))
      ATTR_FORMAT(printf, 1, 2);
 
+#if !defined (USE_MMALLOC)
+extern PTR mmalloc PARAMS ((PTR, size_t));
+extern PTR mrealloc PARAMS ((PTR, PTR, size_t));
+extern void mfree PARAMS ((PTR, PTR));
+#endif
+
 /* From demangle.c */
 
 extern void set_demangling_style PARAMS ((char *));
@@ -288,6 +312,8 @@ extern void fputs_filtered PARAMS ((const char *, GDB_FILE *));
 
 extern void fputs_unfiltered PARAMS ((const char *, GDB_FILE *));
 
+extern int fputc_filtered PARAMS ((int c, GDB_FILE *));
+
 extern int fputc_unfiltered PARAMS ((int c, GDB_FILE *));
 
 extern int putchar_unfiltered PARAMS ((int c));
@@ -296,6 +322,8 @@ extern void puts_filtered PARAMS ((const char *));
 
 extern void puts_unfiltered PARAMS ((const char *));
 
+extern void puts_debug PARAMS ((char *prefix, char *string, char *suffix));
+
 extern void vprintf_filtered PARAMS ((const char *, va_list))
      ATTR_FORMAT(printf, 1, 0);
 
@@ -342,13 +370,19 @@ extern char* paddr PARAMS ((t_addr addr));
 
 extern char* preg PARAMS ((t_reg reg));
 
+extern char* paddr_nz PARAMS ((t_addr addr));
+
+extern char* preg_nz PARAMS ((t_reg reg));
+
 extern void fprintf_symbol_filtered PARAMS ((GDB_FILE *, char *,
                                             enum language, int));
 
-extern void perror_with_name PARAMS ((char *));
+extern NORETURN void perror_with_name PARAMS ((char *)) ATTR_NORETURN;
 
 extern void print_sys_errmsg PARAMS ((char *, int));
 
+extern void _initialize_stack PARAMS ((void));
+
 /* From regex.c or libc.  BSD 4.4 declares this with the argument type as
    "const char *" in unistd.h, so we can't declare the argument
    as "char *".  */
@@ -384,6 +418,8 @@ extern void print_address_numeric PARAMS ((CORE_ADDR, int, GDB_FILE *));
 
 extern void print_address PARAMS ((CORE_ADDR, GDB_FILE *));
 
+extern void _initialize_printcmd PARAMS ((void));
+
 /* From source.c */
 
 extern int openp PARAMS ((char *, int, char *, int, int, char **));
@@ -533,27 +569,36 @@ enum val_prettyprint
 #define        LONG_MAX ((long)(ULONG_MAX >> 1))       /* 0x7FFFFFFF for 32-bits */
 #endif
 
+#ifndef LONGEST
+
 #ifdef BFD64
 
 /* This is to make sure that LONGEST is at least as big as CORE_ADDR.  */
 
 #define LONGEST BFD_HOST_64_BIT
+#define ULONGEST BFD_HOST_U_64_BIT
 
 #else /* No BFD64 */
 
-/* LONGEST should not be a typedef, because "unsigned LONGEST" needs to work.
-   CC_HAS_LONG_LONG is defined if the host compiler supports "long long" */
-
-#ifndef LONGEST
 #  ifdef CC_HAS_LONG_LONG
 #    define LONGEST long long
+#    define ULONGEST unsigned long long
 #  else
-#    define LONGEST long
+/* BFD_HOST_64_BIT is defined for some hosts that don't have long long
+   (e.g. i386-windows) so try it.  */
+#    ifdef BFD_HOST_64_BIT
+#      define LONGEST BFD_HOST_64_BIT
+#      define ULONGEST BFD_HOST_U_64_BIT
+#    else
+#      define LONGEST long
+#      define ULONGEST unsigned long
+#    endif
 #  endif
-#endif
 
 #endif /* No BFD64 */
 
+#endif /* ! LONGEST */
+
 /* Convert a LONGEST to an int.  This is used in contexts (e.g. number of
    arguments to a function, number in a value history, register number, etc.)
    where the value must not be larger than can fit in an int.  */
@@ -597,7 +642,7 @@ extern char *quit_pre_print;
 
 extern char *warning_pre_print;
 
-extern NORETURN void error PARAMS((char *, ...)) ATTR_NORETURN;
+extern NORETURN void error PARAMS((const char *, ...)) ATTR_NORETURN;
 
 extern void error_begin PARAMS ((void));
 
@@ -627,7 +672,7 @@ catch_errors PARAMS ((int (*) (char *), void *, char *, return_mask));
 
 extern void warning_begin PARAMS ((void));
 
-extern void warning PARAMS ((char *, ...))
+extern void warning PARAMS ((const char *, ...))
      ATTR_FORMAT(printf, 1, 2);
 
 /* Global functions from other, non-gdb GNU thingies.
@@ -694,18 +739,23 @@ extern void free ();
 # ifdef __GNUC__
 #  define alloca __builtin_alloca
 # else /* Not GNU C */
-#  ifdef sparc
-#   include <alloca.h>         /* NOTE:  Doesn't declare alloca() */
-#  endif
+#  ifdef HAVE_ALLOCA_H
+#   include <alloca.h>
+#  else
+#   ifdef _AIX
+ #pragma alloca
+#   else
 
 /* We need to be careful not to declare this in a way which conflicts with
    bison.  Bison never declares it as char *, but under various circumstances
    (like __hpux) we need to use void *.  */
-#  if defined (__STDC__) || defined (__hpux)
+#    if defined (__STDC__) || defined (__hpux)
    extern void *alloca ();
-#  else /* Don't use void *.  */
+#    else /* Don't use void *.  */
    extern char *alloca ();
-#  endif /* Don't use void *.  */
+#    endif /* Don't use void *.  */
+#   endif /* Not _AIX */
+#  endif /* Not HAVE_ALLOCA_H */
 # endif /* Not GNU C */
 #endif /* alloca not defined */
 
@@ -732,10 +782,21 @@ extern void free ();
 #undef TARGET_BYTE_ORDER
 #define TARGET_BYTE_ORDER target_byte_order
 extern int target_byte_order;
+/* Nonzero when target_byte_order auto-detected */
+extern int target_byte_order_auto;
 #endif
 
 extern void set_endian_from_file PARAMS ((bfd *));
 
+/* The target architecture can be set at run-time. */
+extern int target_architecture_auto;
+extern const bfd_arch_info_type *target_architecture;
+extern void set_architecture_from_file PARAMS ((bfd *));
+/* Notify target of a change to the selected architecture. Zero return
+   status indicates that the target did not like the change. */
+extern int (*target_architecture_hook) PARAMS ((const bfd_arch_info_type *ap)); 
+extern void set_architecture_from_arch_mach PARAMS ((enum bfd_architecture arch, unsigned long mach));
+
 /* Number of bits in a char or unsigned char for the target machine.
    Just like CHAR_BIT in <limits.h> but describes the target machine.  */
 #if !defined (TARGET_CHAR_BIT)
@@ -819,7 +880,7 @@ extern void set_endian_from_file PARAMS ((bfd *));
 
 extern LONGEST extract_signed_integer PARAMS ((void *, int));
 
-extern unsigned LONGEST extract_unsigned_integer PARAMS ((void *, int));
+extern ULONGEST extract_unsigned_integer PARAMS ((void *, int));
 
 extern int extract_long_unsigned_integer PARAMS ((void *, int, LONGEST *));
 
@@ -827,7 +888,7 @@ extern CORE_ADDR extract_address PARAMS ((void *, int));
 
 extern void store_signed_integer PARAMS ((void *, int, LONGEST));
 
-extern void store_unsigned_integer PARAMS ((void *, int, unsigned LONGEST));
+extern void store_unsigned_integer PARAMS ((void *, int, ULONGEST));
 
 extern void store_address PARAMS ((void *, int, CORE_ADDR));
 
@@ -936,7 +997,7 @@ extern void store_floating PARAMS ((void *, int, DOUBLEST));
 
 extern CORE_ADDR push_bytes PARAMS ((CORE_ADDR, char *, int));
 
-extern CORE_ADDR push_word PARAMS ((CORE_ADDR, unsigned LONGEST));
+extern CORE_ADDR push_word PARAMS ((CORE_ADDR, ULONGEST));
 
 /* Some parts of gdb might be considered optional, in the sense that they
    are not essential for being able to build a working, usable debugger
@@ -978,14 +1039,15 @@ struct target_waitstatus;
 struct cmd_list_element;
 #endif
 
-extern void (*init_ui_hook) PARAMS ((void));
+extern void (*init_ui_hook) PARAMS ((char *argv0));
 extern void (*command_loop_hook) PARAMS ((void));
 extern void (*fputs_unfiltered_hook) PARAMS ((const char *linebuffer,
                                              FILE *stream));
 extern void (*print_frame_info_listing_hook) PARAMS ((struct symtab *s,
                                                      int line, int stopline,
                                                      int noerror));
-extern int (*query_hook) PARAMS ((const char *, va_list));
+extern int  (*query_hook) PARAMS ((const char *, va_list));
+extern void (*warning_hook) PARAMS ((const char *, va_list));
 extern void (*flush_hook) PARAMS ((FILE *stream));
 extern void (*create_breakpoint_hook) PARAMS ((struct breakpoint *b));
 extern void (*delete_breakpoint_hook) PARAMS ((struct breakpoint *bpt));
@@ -996,7 +1058,8 @@ extern void (*registers_changed_hook) PARAMS ((void));
 extern void (*readline_begin_hook) PARAMS ((char *, ...));
 extern char * (*readline_hook) PARAMS ((char *));
 extern void (*readline_end_hook) PARAMS ((void));
-
+extern void (*pc_changed_hook) PARAMS ((void));
+extern void (*context_hook) PARAMS ((int));
 extern int (*target_wait_hook) PARAMS ((int pid,
                                        struct target_waitstatus *status));
 
@@ -1047,4 +1110,13 @@ extern int use_windows;
 #define ROOTED_P(X) (SLASH_P((X)[0]))
 #endif
 
+/* On some systems, PIDGET is defined to extract the inferior pid from
+   an internal pid that has the thread id and pid in seperate bit
+   fields.  If not defined, then just use the entire internal pid as
+   the actual pid. */
+
+#ifndef PIDGET
+#define PIDGET(pid) (pid)
+#endif
+
 #endif /* #ifndef DEFS_H */
This page took 0.146129 seconds and 4 git commands to generate.