diff options
author | Simon Marchi <simon.marchi@polymtl.ca> | 2024-04-23 09:22:56 -0400 |
---|---|---|
committer | Simon Marchi <simon.marchi@polymtl.ca> | 2024-04-23 11:26:14 -0400 |
commit | 7d21eff9442d75c2b1d4beec1120115bf252dfdf (patch) | |
tree | 815188f7ddb2d647674e2b278fd0d457b18005ae | |
parent | eb97e68430f51fc120db4cde03abdffb0303f8ae (diff) | |
download | binutils-7d21eff9442d75c2b1d4beec1120115bf252dfdf.zip binutils-7d21eff9442d75c2b1d4beec1120115bf252dfdf.tar.gz binutils-7d21eff9442d75c2b1d4beec1120115bf252dfdf.tar.bz2 |
gdb: move declarations of check_quit_flag and set_quit_flag to extension.h
Move them out of defs.h, to extension.h, since the implementations are
in extension.c.
Change-Id: Ie7321468bd7fecc684d70b09f72c3ee8ac75d8f4
Approved-By: Tom Tromey <tom@tromey.com>
-rw-r--r-- | gdb/defs.h | 19 | ||||
-rw-r--r-- | gdb/extension.c | 17 | ||||
-rw-r--r-- | gdb/extension.h | 30 |
3 files changed, 34 insertions, 32 deletions
@@ -94,25 +94,6 @@ extern std::string python_libdir; /* * Search path for separate debug files. */ extern std::string debug_file_directory; -/* GDB's SIGINT handler basically sets a flag; code that might take a - long time before it gets back to the event loop, and which ought to - be interruptible, checks this flag using the QUIT macro, which, if - GDB has the terminal, throws a quit exception. - - In addition to setting a flag, the SIGINT handler also marks a - select/poll-able file descriptor as read-ready. That is used by - interruptible_select in order to support interrupting blocking I/O - in a race-free manner. - - These functions use the extension_language_ops API to allow extension - language(s) and GDB SIGINT handling to coexist seamlessly. */ - -/* * Evaluate to non-zero if the quit flag is set, zero otherwise. This - will clear the quit flag as a side effect. */ -extern int check_quit_flag (void); -/* * Set the quit flag. */ -extern void set_quit_flag (void); - /* The current quit handler (and its type). This is called from the QUIT macro. See default_quit_handler below for default behavior. Parts of GDB temporarily override this to e.g., completely suppress diff --git a/gdb/extension.c b/gdb/extension.c index f4bdcc1..2d692d0 100644 --- a/gdb/extension.c +++ b/gdb/extension.c @@ -863,16 +863,10 @@ restore_active_ext_lang (struct active_ext_lang_state *previous) xfree (previous); } -/* Set the quit flag. - This only sets the flag in the currently active extension language. - If the currently active extension language does not have cooperative - SIGINT handling, then GDB's global flag is set, and it is up to the - extension language to call check_quit_flag. The extension language - is free to install its own SIGINT handler, but we still need to handle - the transition. */ +/* See extension.h. */ void -set_quit_flag (void) +set_quit_flag () { #if CXX_STD_THREAD std::lock_guard guard (ext_lang_mutex); @@ -894,13 +888,10 @@ set_quit_flag (void) } } -/* Return true if the quit flag has been set, false otherwise. - Note: The flag is cleared as a side-effect. - The flag is checked in all extension languages that support cooperative - SIGINT handling, not just the current one. This simplifies transitions. */ +/* See extension.h. */ int -check_quit_flag (void) +check_quit_flag () { #if CXX_STD_THREAD std::lock_guard guard (ext_lang_mutex); diff --git a/gdb/extension.h b/gdb/extension.h index 9ba1299..94a500d 100644 --- a/gdb/extension.h +++ b/gdb/extension.h @@ -429,4 +429,34 @@ private: bool m_prev_cooperative_sigint_handling_disabled; }; +/* GDB's SIGINT handler basically sets a flag; code that might take a + long time before it gets back to the event loop, and which ought to + be interruptible, checks this flag using the QUIT macro, which, if + GDB has the terminal, throws a quit exception. + + In addition to setting a flag, the SIGINT handler also marks a + select/poll-able file descriptor as read-ready. That is used by + interruptible_select in order to support interrupting blocking I/O + in a race-free manner. + + These functions use the extension_language_ops API to allow extension + language(s) and GDB SIGINT handling to coexist seamlessly. */ + +/* Return true if the quit flag has been set, false otherwise. + Note: The flag is cleared as a side-effect. + The flag is checked in all extension languages that support cooperative + SIGINT handling, not just the current one. This simplifies transitions. */ + +extern int check_quit_flag (); + +/* Set the quit flag. + This only sets the flag in the currently active extension language. + If the currently active extension language does not have cooperative + SIGINT handling, then GDB's global flag is set, and it is up to the + extension language to call check_quit_flag. The extension language + is free to install its own SIGINT handler, but we still need to handle + the transition. */ + +extern void set_quit_flag (); + #endif /* EXTENSION_H */ |