1999-01-19 Fernando Nasser <fnasser@totem.to.cygnus.com>
[deliverable/binutils-gdb.git] / gdb / defs.h
index 5f7c8c775422727058efdb8b4be60ba4a53fb1af..ce2df7f963dfff4db5b0d8bfe4e4a9f15bab3e80 100644 (file)
@@ -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
@@ -247,7 +270,7 @@ 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 *));
 
@@ -286,10 +309,14 @@ 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.  */
 
@@ -301,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 *));
 
@@ -328,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 *, ...))
@@ -346,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 *));
@@ -421,6 +490,8 @@ extern void print_address PARAMS ((CORE_ADDR, GDB_FILE *));
 
 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));
@@ -625,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.  */
 
@@ -770,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.  */
@@ -856,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.  */
 
@@ -883,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
@@ -921,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
@@ -1015,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__
@@ -1039,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));
This page took 0.028114 seconds and 4 git commands to generate.