/* 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;
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.
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
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 *));
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 *, ...))
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 *));
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));
#define LITTLE_ENDIAN 1234
#endif
-/* Target-system-dependent parameters for GDB. */
+/* Dynamic target-system-dependent parameters for GDB. */
+#include "gdbarch.h"
-/* TARGET_BYTE_ORDER_SELECTABLE_P determines if the target endianness
- is selectable at runtime. The user can use the `set endian'
- command to change it. TARGET_BYTE_ORDER_AUTO is nonzero when
- target_byte_order should be auto-detected (from the program image
- say). */
-
-#ifndef TARGET_BYTE_ORDER_SELECTABLE_P
-/* compat - Catch old targets that define TARGET_BYTE_ORDER_SLECTABLE
- when they should have defined TARGET_BYTE_ORDER_SELECTABLE_P 1 */
-#ifdef TARGET_BYTE_ORDER_SELECTABLE
-#define TARGET_BYTE_ORDER_SELECTABLE_P 1
-#else
-#define TARGET_BYTE_ORDER_SELECTABLE_P 0
-#endif
-#endif
-
-extern int target_byte_order;
-#ifdef TARGET_BYTE_ORDER_SELECTABLE
-/* compat - Catch old targets that define TARGET_BYTE_ORDER_SELECTABLE
- and expect defs.h to re-define TARGET_BYTE_ORDER. */
-#undef TARGET_BYTE_ORDER
-#endif
-#ifndef TARGET_BYTE_ORDER
-#define TARGET_BYTE_ORDER (target_byte_order + 0)
-#endif
-
-extern int target_byte_order_auto;
-#ifndef TARGET_BYTE_ORDER_AUTO
-#define TARGET_BYTE_ORDER_AUTO (target_byte_order_auto + 0)
-#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;
-#define TARGET_ARCHITECTURE_AUTO (target_architecture_auto + 0)
-#define TARGET_ARCHITECTURE (target_architecture + 0)
-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. */
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
#endif
#ifndef TARGET_FLOAT_FORMAT
-#define TARGET_FLOAT_FORMAT (target_byte_order == BIG_ENDIAN \
+#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 \
+#define TARGET_DOUBLE_FORMAT (TARGET_BYTE_ORDER == BIG_ENDIAN \
? &floatformat_ieee_double_big \
: &floatformat_ieee_double_little)
#endif
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;
-#ifndef TARGET_PRINT_INSN
-#define TARGET_PRINT_INSN(vma, info) (*tm_print_insn) (vma, info)
-#endif
-#ifndef TARGET_PRINT_INSN_INFO
-#define TARGET_PRINT_INSN_INFO (&tm_print_insn_info)
-#endif
-
/* Hooks for alternate command interfaces. */
#ifdef __STDC__
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));