/* MI Internal Functions for GDB, the GNU debugger.
- Copyright (C) 2003, 2007-2012 Free Software Foundation, Inc.
+ Copyright (C) 2003-2023 Free Software Foundation, Inc.
This file is part of GDB.
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 MI_MAIN_H
-#define MI_MAIN_H
+#ifndef MI_MI_MAIN_H
+#define MI_MI_MAIN_H
+
+struct ui_file;
extern void mi_load_progress (const char *section_name,
unsigned long sent_so_far,
unsigned long total_sent,
unsigned long grand_total);
-extern void mi_print_timing_maybe (void);
+extern void mi_print_timing_maybe (struct ui_file *file);
+
+/* Whether MI is in async mode. */
+
+extern int mi_async_p (void);
extern char *current_token;
int breakpoint;
/* Command param changed notification suppressed? */
int cmd_param_changed;
+ /* Traceframe changed notification suppressed? */
+ int traceframe;
+ /* Memory changed notification suppressed? */
+ int memory;
+ /* User selected context changed notification suppressed? */
+ int user_selected_context;
};
extern struct mi_suppress_notification mi_suppress_notification;
-#endif
+/* This is a hack so we can get some extra commands going, but has existed
+ within GDB for many years now. Ideally we don't want to channel things
+ through the CLI, but implement all commands as pure MI commands with
+ their own implementation.
+
+ Execute the CLI command CMD, if ARGS_P is true then ARGS should be a
+ non-nullptr string containing arguments to add after CMD. If ARGS_P is
+ false then ARGS must be nullptr. */
+
+extern void mi_execute_cli_command (const char *cmd, bool args_p,
+ const char *args);
+
+/* Implementation of -fix-multi-location-breakpoint-output. */
+
+extern void mi_cmd_fix_multi_location_breakpoint_output (const char *command,
+ char **argv, int argc);
+
+/* Implementation of -fix-breakpoint-script-output. */
+
+extern void mi_cmd_fix_breakpoint_script_output (const char *command,
+ char **argv, int argc);
+#endif /* MI_MI_MAIN_H */