Makefile.in (HFILES_NO_SRCDIR): Remove "common/gdb_dirent.h".
[deliverable/binutils-gdb.git] / gdb / continuations.h
index aaba362f0b9bee4865a2faf483941c2bb3c3faf3..d72735bea2776d79829983b49c9b2e8ebe8fd553 100644 (file)
@@ -1,7 +1,6 @@
 /* Continuations for GDB, the GNU debugger.
 
-   Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2008,
-   2009, 2010, 2011 Free Software Foundation, Inc.
+   Copyright (C) 1999-2013 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -30,8 +29,16 @@ struct inferior;
    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 continuation callback functions.  ARG is the
+   continuation argument registered in the corresponding
+   add_*_continuation call.  ERR is true when the command should be
+   cancelled instead of finished normally.  In that case, the
+   continuation should clean up whatever state had been set up for the
+   command in question (e.g., remove momentary breakpoints).  This
+   happens e.g., when an error was thrown while handling a target
+   event, or when the inferior thread the command was being executed
+   on exits.  */
+typedef void (continuation_ftype) (void *arg, int err);
 
 /* Prototype of the function responsible for releasing the argument
    passed to the continuation callback functions, either when the
@@ -43,16 +50,16 @@ typedef void (continuation_free_arg_ftype) (void *);
 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 do_all_continuations (int err);
+extern void do_all_continuations_thread (struct thread_info *, int err);
 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 do_all_intermediate_continuations (int err);
+extern void do_all_intermediate_continuations_thread (struct thread_info *, int err);
 extern void discard_all_intermediate_continuations (void);
 extern void discard_all_intermediate_continuations_thread (struct thread_info *);
 
@@ -61,7 +68,7 @@ extern void discard_all_intermediate_continuations_thread (struct thread_info *)
 extern void add_inferior_continuation (continuation_ftype *,
                                       void *,
                                       continuation_free_arg_ftype *);
-extern void do_all_inferior_continuations (void);
+extern void do_all_inferior_continuations (int err);
 extern void discard_all_inferior_continuations (struct inferior *inf);
 
 #endif
This page took 0.024803 seconds and 4 git commands to generate.