/* *INDENT-OFF* */ /* ATTR_FORMAT confuses indent, avoid running it for now */
/* Basic, host-specific, and target-specific definitions for GDB.
- Copyright (C) 1986, 89, 91, 92, 93, 94, 95, 96, 98, 1999
+ Copyright (C) 1986, 1989, 1991-1996, 1998-2000
Free Software Foundation, Inc.
This file is part of GDB.
extern struct cleanup *make_cleanup_freeargv (char **);
-struct gdb_file;
-extern struct cleanup *make_cleanup_gdb_file_delete (struct gdb_file *);
+struct ui_file;
+extern struct cleanup *make_cleanup_ui_file_delete (struct ui_file *);
extern struct cleanup *make_final_cleanup (make_cleanup_func, void *);
extern void reinitialize_more_filter (void);
-struct gdb_file;
-typedef struct gdb_file GDB_FILE; /* deprecated */
-
/* Normal results */
-extern GDB_FILE *gdb_stdout;
+extern struct ui_file *gdb_stdout;
/* Serious error notifications */
-extern GDB_FILE *gdb_stderr;
+extern struct ui_file *gdb_stderr;
/* Log/debug/trace messages that should bypass normal stdout/stderr
filtering. For momement, always call this stream using
*_unfiltered. In the very near future that restriction shall be
removed - either call shall be unfiltered. (cagney 1999-06-13). */
-extern GDB_FILE *gdb_stdlog;
+extern struct ui_file *gdb_stdlog;
/* Target output that should bypass normal stdout/stderr filtering.
For momement, always call this stream using *_unfiltered. In the
very near future that restriction shall be removed - either call
shall be unfiltered. (cagney 1999-07-02). */
-extern GDB_FILE *gdb_stdtarg;
+extern struct ui_file *gdb_stdtarg;
#if defined(TUI)
#include "tui.h"
#include "tuiWin.h"
#endif
-/* Create a generic gdb_file object with null methods. */
-
-extern struct gdb_file *gdb_file_new (void);
-
-/* Override methods used by specific implementations of a GDB_FILE
- object. */
-
-typedef void (gdb_file_flush_ftype) (struct gdb_file * stream);
-extern void set_gdb_file_flush (struct gdb_file *stream, gdb_file_flush_ftype * flush);
-
-/* NOTE: Both fputs and write methods are available. Default
- implementations that mapping one onto the other are included. */
-typedef void (gdb_file_write_ftype) (struct gdb_file * stream, const char *buf, long length_buf);
-extern void set_gdb_file_write (struct gdb_file *stream, gdb_file_write_ftype *fputs);
-
-typedef void (gdb_file_fputs_ftype) (const char *, struct gdb_file * stream);
-extern void set_gdb_file_fputs (struct gdb_file *stream, gdb_file_fputs_ftype * fputs);
-
-typedef int (gdb_file_isatty_ftype) (struct gdb_file * stream);
-extern void set_gdb_file_isatty (struct gdb_file *stream, gdb_file_isatty_ftype * isatty);
-
-typedef void (gdb_file_rewind_ftype) (struct gdb_file * stream);
-extern void set_gdb_file_rewind (struct gdb_file *stream, gdb_file_rewind_ftype * rewind);
-
-typedef void (gdb_file_put_method_ftype) (void *object, const char *buffer, long length_buffer);
-typedef void (gdb_file_put_ftype) (struct gdb_file *stream, gdb_file_put_method_ftype * method, void *context);
-extern void set_gdb_file_put (struct gdb_file *stream, gdb_file_put_ftype * put);
-
-typedef void (gdb_file_delete_ftype) (struct gdb_file * stream);
-extern void set_gdb_file_data (struct gdb_file *stream, void *data, gdb_file_delete_ftype * delete);
-
-extern void *gdb_file_data (struct gdb_file *file);
-
-
-/* Open the specified FILE as a gdb_file. */
-extern struct gdb_file *stdio_fileopen (FILE *file);
-
-/* Open NAME returning a GDB_FILE. */
-extern GDB_FILE *gdb_fopen (char *name, char *mode);
-
-/* Create/open a memory based file. Can be used as a scratch
- buffer for collecting output. */
-extern struct gdb_file *mem_fileopen (void);
-
-extern void gdb_flush (GDB_FILE *);
-
-extern void gdb_file_delete (struct gdb_file *stream);
-
-extern void gdb_file_rewind (struct gdb_file *stream);
-
-extern int gdb_file_isatty (GDB_FILE *);
-
-extern void gdb_file_write (struct gdb_file *file, const char *buf, long length_buf);
-
-/* NOTE: copies left to right */
-extern void gdb_file_put (struct gdb_file *src, gdb_file_put_method_ftype *write, void *dest);
-
-/* Returns a freshly allocated buffer containing the entire contents
- of FILE (as determined by gdb_file_put()) with a NUL character
- appended. LENGTH is set to the size of the buffer minus that
- appended NUL. */
-extern char *gdb_file_xstrdup (struct gdb_file *file, long *length);
+#include "ui-file.h"
/* More generic printf like operations */
-extern void fputs_filtered (const char *, GDB_FILE *);
+extern void fputs_filtered (const char *, struct ui_file *);
-extern void fputs_unfiltered (const char *, GDB_FILE *);
+extern void fputs_unfiltered (const char *, struct ui_file *);
-extern int fputc_filtered (int c, GDB_FILE *);
+extern int fputc_filtered (int c, struct ui_file *);
-extern int fputc_unfiltered (int c, GDB_FILE *);
+extern int fputc_unfiltered (int c, struct ui_file *);
extern int putchar_unfiltered (int c);
extern void vprintf_filtered (const char *, va_list) ATTR_FORMAT (printf, 1, 0);
-extern void vfprintf_filtered (GDB_FILE *, const char *, va_list) ATTR_FORMAT (printf, 2, 0);
+extern void vfprintf_filtered (struct ui_file *, const char *, va_list) ATTR_FORMAT (printf, 2, 0);
-extern void fprintf_filtered (GDB_FILE *, const char *, ...) ATTR_FORMAT (printf, 2, 3);
+extern void fprintf_filtered (struct ui_file *, const char *, ...) ATTR_FORMAT (printf, 2, 3);
-extern void fprintfi_filtered (int, GDB_FILE *, const char *, ...) ATTR_FORMAT (printf, 3, 4);
+extern void fprintfi_filtered (int, struct ui_file *, const char *, ...) ATTR_FORMAT (printf, 3, 4);
extern void printf_filtered (const char *, ...) ATTR_FORMAT (printf, 1, 2);
extern void vprintf_unfiltered (const char *, va_list) ATTR_FORMAT (printf, 1, 0);
-extern void vfprintf_unfiltered (GDB_FILE *, const char *, va_list) ATTR_FORMAT (printf, 2, 0);
+extern void vfprintf_unfiltered (struct ui_file *, const char *, va_list) ATTR_FORMAT (printf, 2, 0);
-extern void fprintf_unfiltered (GDB_FILE *, const char *, ...) ATTR_FORMAT (printf, 2, 3);
+extern void fprintf_unfiltered (struct ui_file *, const char *, ...) ATTR_FORMAT (printf, 2, 3);
extern void printf_unfiltered (const char *, ...) ATTR_FORMAT (printf, 1, 2);
-/* #if defined (TUI) */
-/* DEPRECATED: Only the TUI should use these methods. */
-extern struct gdb_file *tui_fileopen (FILE *);
-extern struct gdb_file *tui_sfileopen (int);
-extern char *tui_file_get_strbuf (struct gdb_file *);
-extern void tui_file_adjust_strbuf (int, struct gdb_file *);
-/* #endif */
-
-extern void print_spaces (int, GDB_FILE *);
+extern void print_spaces (int, struct ui_file *);
-extern void print_spaces_filtered (int, GDB_FILE *);
+extern void print_spaces_filtered (int, struct ui_file *);
extern char *n_spaces (int);
-extern void fputstr_filtered (const char *str, int quotr, GDB_FILE * stream);
+extern void fputstr_filtered (const char *str, int quotr, struct ui_file * stream);
-extern void fputstr_unfiltered (const char *str, int quotr, GDB_FILE * stream);
+extern void fputstr_unfiltered (const char *str, int quotr, struct ui_file * stream);
-extern void fputstrn_unfiltered (const char *str, int n, int quotr, GDB_FILE * stream);
+extern void fputstrn_unfiltered (const char *str, int n, int quotr, struct ui_file * stream);
/* Display the host ADDR on STREAM formatted as ``0x%x''. */
-extern void gdb_print_host_address (void *addr, struct gdb_file *stream);
+extern void gdb_print_host_address (void *addr, struct ui_file *stream);
/* Convert a CORE_ADDR into a HEX string. paddr() is like %08lx.
paddr_nz() is like %lx. paddr_u() is like %lu. paddr_width() is
extern char *preg (t_reg reg);
extern char *preg_nz (t_reg reg);
-extern void fprintf_symbol_filtered (GDB_FILE *, char *,
+extern void fprintf_symbol_filtered (struct ui_file *, char *,
enum language, int);
extern NORETURN void perror_with_name (char *) ATTR_NORETURN;
extern void generic_load (char *name, int from_tty);
/* Summarise a download */
-extern void print_transfer_performance (struct gdb_file *stream,
+extern void print_transfer_performance (struct ui_file *stream,
unsigned long data_count,
unsigned long write_count,
unsigned long time_count);
extern void set_next_address (CORE_ADDR);
-extern void print_address_symbolic (CORE_ADDR, GDB_FILE *, int,
+extern void print_address_symbolic (CORE_ADDR, struct ui_file *, int,
char *);
-extern void print_address_numeric (CORE_ADDR, int, GDB_FILE *);
+extern int build_address_symbolic (CORE_ADDR addr,
+ int do_demangle,
+ char **name,
+ int *offset,
+ char **filename,
+ int *line,
+ int *unmapped);
+
+extern void print_address_numeric (CORE_ADDR, int, struct ui_file *);
-extern void print_address (CORE_ADDR, GDB_FILE *);
+extern void print_address (CORE_ADDR, struct ui_file *);
/* From source.c */
/* DEPRECATED: Use error(), verror() or error_stream(). */
extern NORETURN void error_begin (void);
-extern NORETURN void error_stream (GDB_FILE *) ATTR_NORETURN;
+extern NORETURN void error_stream (struct ui_file *) ATTR_NORETURN;
/* Returns a freshly allocate buffer containing the last error
message. */
extern int watchdog;
/* Hooks for alternate command interfaces. */
+
struct target_waitstatus;
struct cmd_list_element;
unsigned long section_size,
unsigned long total_sent,
unsigned long total_size);
-/* NOTE: cagney/1999-10-14: fputs_unfiltered_hook is deprecated.
- Instead code wanting to control GDB's output should be overriding
- the gdb_std* files. */
-extern void (*fputs_unfiltered_hook) (const char *linebuffer,
- GDB_FILE * stream);
extern void (*print_frame_info_listing_hook) (struct symtab * s,
int line, int stopline,
int noerror);
extern struct frame_info *parse_frame_specification (char *frame_exp);
extern int (*query_hook) (const char *, va_list);
extern void (*warning_hook) (const char *, va_list);
-extern void (*flush_hook) (GDB_FILE * stream);
+extern void (*flush_hook) (struct ui_file * stream);
extern void (*create_breakpoint_hook) (struct breakpoint * b);
extern void (*delete_breakpoint_hook) (struct breakpoint * bpt);
extern void (*modify_breakpoint_hook) (struct breakpoint * bpt);
enum gdb_rc gdb_breakpoint (char *address, char *condition,
int hardwareflag, int tempflag,
int thread, int ignore_count);
+enum gdb_rc gdb_thread_select (/* output object */ char *tidstr);
+
+#ifdef UI_OUT
+/* Print a list of known thread ids. */
+enum gdb_rc gdb_list_thread_ids (/* output object */);
+/* Switch thread and print notification. */
+#endif
#endif /* #ifndef DEFS_H */