1999-01-19 Fernando Nasser <fnasser@totem.to.cygnus.com>
[deliverable/binutils-gdb.git] / gdb / defs.h
index 94faff93b227139d8f25b7674677cbd6f4b74645..ce2df7f963dfff4db5b0d8bfe4e4a9f15bab3e80 100644 (file)
@@ -1,5 +1,5 @@
 /* Basic, host-specific, and target-specific definitions for GDB.
-   Copyright (C) 1986, 89, 91, 92, 93, 94, 95, 1996, 1998
+   Copyright (C) 1986, 89, 91, 92, 93, 94, 95, 96, 1998
    Free Software Foundation, Inc.
 
 This file is part of GDB.
@@ -94,6 +94,22 @@ typedef bfd_vma CORE_ADDR;
 /* Check if a character is one of the commonly used C++ marker characters.  */
 extern int is_cplus_marker PARAMS ((int));
 
+/* use tui interface if non-zero */
+extern int tui_version;
+
+#if defined(TUI)
+/* all invocations of TUIDO should have two sets of parens */
+#define TUIDO(x)       tuiDo x
+#else
+#define TUIDO(x)
+#endif
+
+/* enable xdb commands if set */
+extern int xdb_commands;
+
+/* enable dbx commands if set */
+extern int dbx_commands;
+
 extern int quit_flag;
 extern int immediate_quit;
 extern int sevenbit_strings;
@@ -126,7 +142,7 @@ enum command_class
   no_class = -1, class_run = 0, class_vars, class_stack,
   class_files, class_support, class_info, class_breakpoint, class_trace,
   class_alias, class_obscure, class_user, class_maintenance,
-  class_pseudo
+  class_pseudo, class_tui, class_xdb
 };
 
 /* Languages represented in the symbol table and elsewhere.
@@ -150,6 +166,13 @@ enum language
    language_scm                        /* Scheme / Guile */
 };
 
+enum precision_type
+{
+  single_precision,
+  double_precision,
+  unspecified_precision
+};
+   
 /* the cleanup list records things that have to be undone
    if an error happens (descriptors to be closed, memory to be freed, etc.)
    Each link in the chain records a function to call and an
@@ -220,8 +243,6 @@ 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 *));
@@ -243,24 +264,22 @@ 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 do_run_cleanups PARAMS ((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 *);
+typedef void (*make_cleanup_func) PARAMS ((void *));
 
-extern struct cleanup *
-make_cleanup PARAMS ((make_cleanup_func, void *));
+extern struct cleanup *make_cleanup PARAMS ((make_cleanup_func, void *));
 
-extern struct cleanup *
-make_final_cleanup PARAMS ((void (*function) (void *), void *));
+extern struct cleanup *make_final_cleanup PARAMS ((make_cleanup_func, void *));
 
-extern struct cleanup *
-make_my_cleanup PARAMS ((struct cleanup **, void (*function) (void *), void *));
+extern struct cleanup *make_my_cleanup PARAMS ((struct cleanup **, 
+                                                make_cleanup_func, void *));
 
-extern struct cleanup *
-make_run_cleanup PARAMS ((void (*function) (void *), void *));
+extern struct cleanup *make_run_cleanup PARAMS ((make_cleanup_func, void *));
 
 extern struct cleanup *save_cleanups PARAMS ((void));
 extern struct cleanup *save_final_cleanups PARAMS ((void));
@@ -289,6 +308,15 @@ extern void mfree PARAMS ((PTR, PTR));
 
 extern void set_demangling_style PARAMS ((char *));
 
+/* From tm.h */
+
+struct type;
+typedef int (use_struct_convention_fn) PARAMS ((int gcc_p, struct type *value_type));
+extern use_struct_convention_fn generic_use_struct_convention;
+
+typedef unsigned char *(breakpoint_from_pc_fn) PARAMS ((CORE_ADDR *pcptr, int *lenptr));
+
+
 \f
 /* Annotation stuff.  */
 
@@ -300,9 +328,41 @@ extern void wrap_here PARAMS ((char *));
 
 extern void reinitialize_more_filter PARAMS ((void));
 
+/* new */
+enum streamtype
+{
+  afile,
+  astring
+};
+
+/* new */
+typedef struct tui_stream
+{
+  enum streamtype ts_streamtype;
+  FILE *ts_filestream;
+  char *ts_strbuf;
+  int ts_buflen;
+} GDB_FILE;
+
+extern GDB_FILE *gdb_stdout;
+extern GDB_FILE *gdb_stderr;
+
+#if 0
 typedef FILE GDB_FILE;
 #define gdb_stdout stdout
 #define gdb_stderr stderr
+#endif
+
+#if defined(TUI)
+#include "tui.h"
+#include "tuiCommand.h"
+#include "tuiData.h"
+#include "tuiIO.h"
+#include "tuiLayout.h"
+#include "tuiWin.h"
+#endif
+
+extern void gdb_fclose PARAMS ((GDB_FILE **));
 
 extern void gdb_flush PARAMS ((GDB_FILE *));
 
@@ -327,13 +387,13 @@ 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);
 
-extern void vfprintf_filtered PARAMS ((FILE *, const char *, va_list))
+extern void vfprintf_filtered PARAMS ((GDB_FILE *, const char *, va_list))
      ATTR_FORMAT(printf, 2, 0);
 
-extern void fprintf_filtered PARAMS ((FILE *, const char *, ...))
+extern void fprintf_filtered PARAMS ((GDB_FILE *, const char *, ...))
      ATTR_FORMAT(printf, 2, 3);
 
-extern void fprintfi_filtered PARAMS ((int, FILE *, const char *, ...))
+extern void fprintfi_filtered PARAMS ((int, GDB_FILE *, const char *, ...))
      ATTR_FORMAT(printf, 3, 4);
 
 extern void printf_filtered PARAMS ((const char *, ...))
@@ -345,15 +405,25 @@ extern void printfi_filtered PARAMS ((int, const char *, ...))
 extern void vprintf_unfiltered PARAMS ((const char *, va_list))
      ATTR_FORMAT(printf, 1, 0);
 
-extern void vfprintf_unfiltered PARAMS ((FILE *, const char *, va_list))
+extern void vfprintf_unfiltered PARAMS ((GDB_FILE *, const char *, va_list))
      ATTR_FORMAT(printf, 2, 0);
 
-extern void fprintf_unfiltered PARAMS ((FILE *, const char *, ...))
+extern void fprintf_unfiltered PARAMS ((GDB_FILE *, const char *, ...))
      ATTR_FORMAT(printf, 2, 3);
 
 extern void printf_unfiltered PARAMS ((const char *, ...))
      ATTR_FORMAT(printf, 1, 2);
 
+extern int gdb_file_isatty PARAMS ((GDB_FILE *));
+
+extern GDB_FILE *gdb_file_init_astring PARAMS ((int));
+
+extern void gdb_file_deallocate PARAMS ((GDB_FILE **));
+
+extern char *gdb_file_get_strbuf PARAMS ((GDB_FILE *));
+
+extern void gdb_file_adjust_strbuf PARAMS ((int, GDB_FILE *));
+
 extern void print_spaces PARAMS ((int, GDB_FILE *));
 
 extern void print_spaces_filtered PARAMS ((int, GDB_FILE *));
@@ -381,8 +451,6 @@ 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 *".  */
@@ -418,12 +486,12 @@ 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 **));
 
+extern int source_full_path_of PARAMS ((char *, char **));
+
 extern void mod_path PARAMS ((char *, char **));
 
 extern void directory_command PARAMS ((char *, int));
@@ -628,7 +696,11 @@ extern PTR xmrealloc PARAMS ((PTR, PTR, long));
 
 extern int parse_escape PARAMS ((char **));
 
-extern char *reg_names[];
+/* compat - handle old targets that just define REGISTER_NAMES */
+#ifndef REGISTER_NAME
+extern char *gdb_register_names[];
+#define REGISTER_NAME(i) gdb_register_names[i]
+#endif
 
 /* Message to be printed before the error message, when an error occurs.  */
 
@@ -773,29 +845,10 @@ extern void free ();
 #define LITTLE_ENDIAN 1234
 #endif
 
-/* Target-system-dependent parameters for GDB. */
+/* Dynamic target-system-dependent parameters for GDB. */
+#include "gdbarch.h"
 
-#ifdef TARGET_BYTE_ORDER_SELECTABLE
-/* The target endianness is selectable at runtime.  Define
-   TARGET_BYTE_ORDER to be a variable.  The user can use the `set
-   endian' command to change it.  */
-#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));
+/* Static target-system-dependent parameters for GDB. */
 
 /* 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.  */
@@ -859,22 +912,8 @@ extern void set_architecture_from_arch_mach PARAMS ((enum bfd_architecture arch,
    from byte/word byte order.  */
 
 #if !defined (BITS_BIG_ENDIAN)
-#ifndef TARGET_BYTE_ORDER_SELECTABLE
-
-#if TARGET_BYTE_ORDER == BIG_ENDIAN
-#define BITS_BIG_ENDIAN 1
-#endif /* Big endian.  */
-
-#if TARGET_BYTE_ORDER == LITTLE_ENDIAN
-#define BITS_BIG_ENDIAN 0
-#endif /* Little endian.  */
-
-#else /* defined (TARGET_BYTE_ORDER_SELECTABLE) */
-
 #define BITS_BIG_ENDIAN (TARGET_BYTE_ORDER == BIG_ENDIAN)
-
-#endif /* defined (TARGET_BYTE_ORDER_SELECTABLE) */
-#endif /* BITS_BIG_ENDIAN not defined.  */
+#endif
 
 /* In findvar.c.  */
 
@@ -886,11 +925,11 @@ extern int extract_long_unsigned_integer PARAMS ((void *, int, LONGEST *));
 
 extern CORE_ADDR extract_address PARAMS ((void *, int));
 
-extern void store_signed_integer PARAMS ((void *, int, LONGEST));
+extern void store_signed_integer PARAMS ((PTR, int, LONGEST));
 
-extern void store_unsigned_integer PARAMS ((void *, int, ULONGEST));
+extern void store_unsigned_integer PARAMS ((PTR, int, ULONGEST));
 
-extern void store_address PARAMS ((void *, int, CORE_ADDR));
+extern void store_address PARAMS ((PTR, int, LONGEST));
 
 /* Setup definitions for host and target floating point formats.  We need to
    consider the format for `float', `double', and `long double' for both target
@@ -924,33 +963,15 @@ extern const struct floatformat floatformat_unknown;
 #define HOST_LONG_DOUBLE_FORMAT &floatformat_unknown
 #endif
 
-#ifndef TARGET_BYTE_ORDER_SELECTABLE
-#  if TARGET_BYTE_ORDER == BIG_ENDIAN
-#    ifndef TARGET_FLOAT_FORMAT
-#      define TARGET_FLOAT_FORMAT &floatformat_ieee_single_big
-#    endif
-#    ifndef TARGET_DOUBLE_FORMAT
-#      define TARGET_DOUBLE_FORMAT &floatformat_ieee_double_big
-#    endif
-#  else /* LITTLE_ENDIAN */
-#    ifndef TARGET_FLOAT_FORMAT
-#      define TARGET_FLOAT_FORMAT &floatformat_ieee_single_little
-#    endif
-#    ifndef TARGET_DOUBLE_FORMAT
-#      define TARGET_DOUBLE_FORMAT &floatformat_ieee_double_little
-#    endif
-#  endif
-#else                          /* TARGET_BYTE_ORDER_SELECTABLE */
-#  ifndef TARGET_FLOAT_FORMAT
-#    define TARGET_FLOAT_FORMAT (target_byte_order == BIG_ENDIAN \
-                                ? &floatformat_ieee_single_big \
-                                : &floatformat_ieee_single_little)
-#  endif
-#  ifndef TARGET_DOUBLE_FORMAT
-#    define TARGET_DOUBLE_FORMAT (target_byte_order == BIG_ENDIAN \
-                                 ? &floatformat_ieee_double_big \
-                                 : &floatformat_ieee_double_little)
-#  endif
+#ifndef TARGET_FLOAT_FORMAT
+#define TARGET_FLOAT_FORMAT (TARGET_BYTE_ORDER == BIG_ENDIAN \
+                            ? &floatformat_ieee_single_big \
+                            : &floatformat_ieee_single_little)
+#endif
+#ifndef TARGET_DOUBLE_FORMAT
+#define TARGET_DOUBLE_FORMAT (TARGET_BYTE_ORDER == BIG_ENDIAN \
+                             ? &floatformat_ieee_double_big \
+                             : &floatformat_ieee_double_little)
 #endif
 
 #ifndef TARGET_LONG_DOUBLE_FORMAT
@@ -1018,20 +1039,6 @@ extern CORE_ADDR push_word PARAMS ((CORE_ADDR, ULONGEST));
 extern int watchdog;
 #endif
 
-#include "dis-asm.h"           /* Get defs for disassemble_info */
-
-extern int dis_asm_read_memory PARAMS ((bfd_vma memaddr, bfd_byte *myaddr,
-                                       int len, disassemble_info *info));
-
-extern void dis_asm_memory_error PARAMS ((int status, bfd_vma memaddr,
-                                         disassemble_info *info));
-
-extern void dis_asm_print_address PARAMS ((bfd_vma addr,
-                                          disassemble_info *info));
-
-extern int (*tm_print_insn) PARAMS ((bfd_vma, disassemble_info*));
-extern disassemble_info tm_print_insn_info;
-
 /* Hooks for alternate command interfaces.  */
 
 #ifdef __STDC__
@@ -1042,13 +1049,14 @@ struct cmd_list_element;
 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));
+                                             GDB_FILE *stream));
 extern void (*print_frame_info_listing_hook) PARAMS ((struct symtab *s,
                                                      int line, int stopline,
                                                      int noerror));
+extern struct frame_info *parse_frame_specification PARAMS ((char *frame_exp));
 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 (*flush_hook) PARAMS ((GDB_FILE *stream));
 extern void (*create_breakpoint_hook) PARAMS ((struct breakpoint *b));
 extern void (*delete_breakpoint_hook) PARAMS ((struct breakpoint *bpt));
 extern void (*modify_breakpoint_hook) PARAMS ((struct breakpoint *bpt));
@@ -1119,4 +1127,12 @@ extern int use_windows;
 #define PIDGET(pid) (pid)
 #endif
 
+/* If under Cygwin, provide backwards compatibility with older
+   Cygwin compilers that don't define the current cpp define. */
+#ifdef __CYGWIN32__
+#ifndef __CYGWIN__
+#define __CYGWIN__
+#endif
+#endif
+
 #endif /* #ifndef DEFS_H */
This page took 0.029245 seconds and 4 git commands to generate.