]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blame - gdb/event-top.h
Update copyright year range in header of all files managed by GDB
[thirdparty/binutils-gdb.git] / gdb / event-top.h
CommitLineData
fe97fe9c
AC
1/* Definitions used by event-top.c, for GDB, the GNU debugger.
2
1d506c26 3 Copyright (C) 1999-2024 Free Software Foundation, Inc.
fe97fe9c 4
c2c6d25f
JM
5 Written by Elena Zannoni <ezannoni@cygnus.com> of Cygnus Solutions.
6
7 This file is part of GDB.
8
9 This program is free software; you can redistribute it and/or modify
10 it under the terms of the GNU General Public License as published by
a9762ec7 11 the Free Software Foundation; either version 3 of the License, or
c2c6d25f
JM
12 (at your option) any later version.
13
14 This program is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 GNU General Public License for more details.
18
19 You should have received a copy of the GNU General Public License
a9762ec7 20 along with this program. If not, see <http://www.gnu.org/licenses/>. */
c2c6d25f 21
fe97fe9c
AC
22#ifndef EVENT_TOP_H
23#define EVENT_TOP_H
24
6aa899ce
PA
25#include <signal.h>
26
da3331ec
AC
27struct cmd_list_element;
28
0963b4bd 29/* Exported functions from event-top.c.
0af5533d 30 FIXME: these should really go into top.h. */
c2c6d25f 31
38bcc89d 32extern void display_gdb_prompt (const char *new_prompt);
3c216924
PA
33extern void gdb_setup_readline (int);
34extern void gdb_disable_readline (void);
27013564 35extern void gdb_init_signals (void);
3c216924 36extern void change_line_handler (int);
c2c6d25f 37
95bc9f0b 38extern void command_line_handler (gdb::unique_xmalloc_ptr<char> &&rl);
95a6b0a1 39extern void command_handler (const char *command);
b69d38af 40
c2c6d25f 41#ifdef SIGTSTP
6aa899ce 42extern void handle_sigtstp (int sig);
c2c6d25f 43#endif
6aa899ce 44
c2c6d25f 45extern void handle_sigint (int sig);
a7266fef 46extern void handle_sigterm (int sig);
2acceee2 47extern void async_request_quit (void *arg);
6426a772 48extern void async_disable_stdin (void);
712af3be 49extern void async_enable_stdin (void);
c2c6d25f
JM
50
51/* Exported variables from event-top.c.
0af5533d 52 FIXME: these should really go into top.h. */
c2c6d25f 53
491144b5
CB
54extern bool set_editing_cmd_var;
55extern bool exec_done_display_p;
c2c6d25f 56extern struct prompts the_prompts;
467d8519 57extern void (*after_char_processing_hook) (void);
d64e57fa 58extern int call_stdin_event_handler_again_p;
c70061cf 59extern void gdb_readline_no_editing_callback (void *client_data);
fe97fe9c 60
d3d4baed
PA
61/* Wrappers for rl_callback_handler_remove and
62 rl_callback_handler_install that keep track of whether the callback
63 handler is installed in readline. Do not call the readline
64 versions directly. */
65extern void gdb_rl_callback_handler_remove (void);
66extern void gdb_rl_callback_handler_install (const char *prompt);
67
68/* Reinstall the readline callback handler (with no prompt), if not
69 currently installed. */
70extern void gdb_rl_callback_handler_reinstall (void);
71
91395d97
AB
72/* Called by readline after a complete line has been gathered from the
73 user, but before the line is dispatched to back to GDB. This function
74 is a wrapper around readline's builtin rl_deprep_terminal function, and
75 handles the case where readline received EOF. */
76extern void gdb_rl_deprep_term_function (void);
77
fece451c
CB
78typedef void (*segv_handler_t) (int);
79
80/* On construction, replaces the current thread's SIGSEGV handler with
81 the provided one. On destruction, restores the handler to the
82 original one. */
83class scoped_segv_handler_restore
84{
85 public:
86 scoped_segv_handler_restore (segv_handler_t new_handler);
87 ~scoped_segv_handler_restore ();
88
89 private:
90 segv_handler_t m_old_handler;
91};
3b3978bc 92
fe97fe9c 93#endif