aboutsummaryrefslogtreecommitdiff
path: root/gdb/continuations.h
diff options
context:
space:
mode:
authorPedro Alves <palves@redhat.com>2011-05-27 18:28:18 +0000
committerPedro Alves <palves@redhat.com>2011-05-27 18:28:18 +0000
commitbe34f8494e0befe68d8071f46edc16d9aa3c9238 (patch)
treeaa68cb7e70b6c065ecea402bfbb3b1b930ba7ee1 /gdb/continuations.h
parent440db5755211bd29af95c374882c109ede000b54 (diff)
downloadgdb-be34f8494e0befe68d8071f46edc16d9aa3c9238.zip
gdb-be34f8494e0befe68d8071f46edc16d9aa3c9238.tar.gz
gdb-be34f8494e0befe68d8071f46edc16d9aa3c9238.tar.bz2
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 0000000..aaba362
--- /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