| /* Top level stuff for GDB, the GNU debugger. | 
 |  | 
 |    Copyright (C) 1986-2023 Free Software Foundation, Inc. | 
 |  | 
 |    This file is part of GDB. | 
 |  | 
 |    This program is free software; you can redistribute it and/or modify | 
 |    it under the terms of the GNU General Public License as published by | 
 |    the Free Software Foundation; either version 3 of the License, or | 
 |    (at your option) any later version. | 
 |  | 
 |    This program is distributed in the hope that it will be useful, | 
 |    but WITHOUT ANY WARRANTY; without even the implied warranty of | 
 |    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
 |    GNU General Public License for more details. | 
 |  | 
 |    You should have received a copy of the GNU General Public License | 
 |    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */ | 
 |  | 
 | #ifndef TOP_H | 
 | #define TOP_H | 
 |  | 
 | #include "gdbsupport/event-loop.h" | 
 | #include "gdbsupport/next-iterator.h" | 
 | #include "value.h" | 
 |  | 
 | /* From top.c.  */ | 
 | extern bool confirm; | 
 | extern int inhibit_gdbinit; | 
 | extern auto_boolean interactive_mode; | 
 |  | 
 | /* Print the GDB version banner to STREAM.  If INTERACTIVE is false, | 
 |    then information referring to commands (e.g., "show configuration") | 
 |    is omitted; this mode is used for the --version command line | 
 |    option.  If INTERACTIVE is true, then interactive commands are | 
 |    mentioned.  */ | 
 | extern void print_gdb_version (struct ui_file *stream, bool interactive); | 
 |  | 
 | extern void print_gdb_configuration (struct ui_file *); | 
 |  | 
 | extern void read_command_file (FILE *); | 
 | extern void init_history (void); | 
 | extern void command_loop (void); | 
 | extern int quit_confirm (void); | 
 | extern void quit_force (int *, int) ATTRIBUTE_NORETURN; | 
 | extern void quit_command (const char *, int); | 
 | extern void quit_cover (void); | 
 | extern void execute_command (const char *, int); | 
 |  | 
 | /* If the interpreter is in sync mode (we're running a user command's | 
 |    list, running command hooks or similars), and we just ran a | 
 |    synchronous command that started the target, wait for that command | 
 |    to end.  WAS_SYNC indicates whether sync_execution was set before | 
 |    the command was run.  */ | 
 |  | 
 | extern void maybe_wait_sync_command_done (int was_sync); | 
 |  | 
 | /* Wait for a synchronous execution command to end.  */ | 
 | extern void wait_sync_command_done (void); | 
 |  | 
 | extern void check_frame_language_change (void); | 
 |  | 
 | /* Prepare for execution of a command. | 
 |    Call this before every command, CLI or MI. | 
 |    Returns a cleanup to be run after the command is completed.  */ | 
 | extern scoped_value_mark prepare_execute_command (void); | 
 |  | 
 | /* This function returns a pointer to the string that is used | 
 |    by gdb for its command prompt.  */ | 
 | extern const std::string &get_prompt (); | 
 |  | 
 | /* This function returns a pointer to the string that is used | 
 |    by gdb for its command prompt.  */ | 
 | extern void set_prompt (const char *s); | 
 |  | 
 | /* Return 1 if UI's current input handler is a secondary prompt, 0 | 
 |    otherwise.  */ | 
 |  | 
 | extern int gdb_in_secondary_prompt_p (struct ui *ui); | 
 |  | 
 | /* Perform _initialize initialization.  */ | 
 | extern void gdb_init (); | 
 |  | 
 | /* For use by event-top.c.  */ | 
 | /* Variables from top.c.  */ | 
 | extern int source_line_number; | 
 | extern std::string source_file_name; | 
 | extern bool history_expansion_p; | 
 | extern bool server_command; | 
 | extern char *lim_at_start; | 
 |  | 
 | extern void gdb_add_history (const char *); | 
 |  | 
 | extern void show_commands (const char *args, int from_tty); | 
 |  | 
 | extern void set_verbose (const char *, int, struct cmd_list_element *); | 
 |  | 
 | extern const char *handle_line_of_input (std::string &cmd_line_buffer, | 
 | 					 const char *rl, int repeat, | 
 | 					 const char *annotation_suffix); | 
 |  | 
 | /* Call at startup to see if the user has requested that gdb start up | 
 |    quietly.  */ | 
 |  | 
 | extern bool check_quiet_mode (); | 
 |  | 
 | /* Unbuffer STREAM.  This is a wrapper around setbuf(STREAM, nullptr) | 
 |    which applies some special rules for MS-Windows hosts.  */ | 
 |  | 
 | extern void unbuffer_stream (FILE *stream); | 
 |  | 
 | #endif |