summaryrefslogtreecommitdiff
path: root/gdb/continuations.h
diff options
context:
space:
mode:
authorPedro Alves <pedro@codesourcery.com>2011-05-27 18:26:15 +0000
committerPedro Alves <pedro@codesourcery.com>2011-05-27 18:26:15 +0000
commit811ca069a7ef381ce2f59756f48bcc7dcdcaa258 (patch)
treed6a9c2402aefb4854432dd073f5889d169a0d4be /gdb/continuations.h
parent578efa3a315d4844ad34833fd72c5a42b3203643 (diff)
downloadgdb-811ca069a7ef381ce2f59756f48bcc7dcdcaa258.tar.gz
2011-05-27 Pedro Alves <pedro@codesourcery.com>
* defs.h (struct continuation, continuation_ftype) (continuation_free_arg_ftype, add_continuation) (do_all_continuations, do_all_continuations_thread) (discard_all_continuations, discard_all_continuations_thread) (add_intermediate_continuation, do_all_intermediate_continuations) (do_all_intermediate_continuations_thread) (discard_all_intermediate_continuations) (discard_all_intermediate_continuations_thread) (add_inferior_continuation, do_all_inferior_continuations) (discard_all_inferior_continuations): Move to ... * continuations.h: ... this new file. * breakpoint.c, continuations.c, event-top.c, inf-loop.c, infcmd.c, inferior.c, infrun.c, interps.c: Include continuations.h.
Diffstat (limited to 'gdb/continuations.h')
-rw-r--r--gdb/continuations.h67
1 files changed, 67 insertions, 0 deletions
diff --git a/gdb/continuations.h b/gdb/continuations.h
new file mode 100644
index 00000000000..aaba362f0b9
--- /dev/null
+++ b/gdb/continuations.h
@@ -0,0 +1,67 @@
+/* Continuations for GDB, the GNU debugger.
+
+ Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2008,
+ 2009, 2010, 2011 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 CONTINUATIONS_H
+#define CONTINUATIONS_H
+
+struct thread_info;
+struct inferior;
+
+/* To continue the execution commands when running gdb asynchronously.
+ A continuation structure contains a pointer to a function to be called
+ to finish the command, once the target has stopped. Such mechanism is
+ used by the finish and until commands, and in the remote protocol
+ when opening an extended-remote connection. */
+
+/* Prototype of the continuation callback functions. */
+typedef void (continuation_ftype) (void *);
+
+/* Prototype of the function responsible for releasing the argument
+ passed to the continuation callback functions, either when the
+ continuation is called, or discarded. */
+typedef void (continuation_free_arg_ftype) (void *);
+
+/* Thread specific continuations. */
+
+extern void add_continuation (struct thread_info *,
+ continuation_ftype *, void *,
+ continuation_free_arg_ftype *);
+extern void do_all_continuations (void);
+extern void do_all_continuations_thread (struct thread_info *);
+extern void discard_all_continuations (void);
+extern void discard_all_continuations_thread (struct thread_info *);
+
+extern void add_intermediate_continuation (struct thread_info *,
+ continuation_ftype *, void *,
+ continuation_free_arg_ftype *);
+extern void do_all_intermediate_continuations (void);
+extern void do_all_intermediate_continuations_thread (struct thread_info *);
+extern void discard_all_intermediate_continuations (void);
+extern void discard_all_intermediate_continuations_thread (struct thread_info *);
+
+/* Inferior specific (any thread) continuations. */
+
+extern void add_inferior_continuation (continuation_ftype *,
+ void *,
+ continuation_free_arg_ftype *);
+extern void do_all_inferior_continuations (void);
+extern void discard_all_inferior_continuations (struct inferior *inf);
+
+#endif