This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: simplify continuations a bit more.


On Friday 27 May 2011 18:59:28, Tom Tromey wrote:
> I wouldn't mind a continuations.h.

There you go.  :-)

Applied.

(can't remove the struct thread_info and struct inferior
forward declarations from defs.h without more changes)

-- 
Pedro Alves

2011-05-27  Pedro Alves  <pedro@codesourcery.com>

	gdb/
	* 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.

---
 gdb/breakpoint.c    |    1 
 gdb/continuations.c |    1 
 gdb/continuations.h |   67 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 gdb/defs.h          |   43 ---------------------------------
 gdb/event-top.c     |    2 -
 gdb/inf-loop.c      |    1 
 gdb/infcmd.c        |    1 
 gdb/inferior.c      |    1 
 gdb/infrun.c        |    1 
 gdb/interps.c       |    1 
 10 files changed, 75 insertions(+), 44 deletions(-)

Index: src/gdb/defs.h
===================================================================
--- src.orig/gdb/defs.h	2011-05-27 19:24:06.370790172 +0100
+++ src/gdb/defs.h	2011-05-27 19:24:07.680790172 +0100
@@ -730,52 +730,9 @@ extern struct command_line *read_command
 
 extern void free_command_lines (struct command_line **);
 
-/* 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.  */
-
-struct continuation;
 struct thread_info;
 struct inferior;
 
-/* From continuations.c */
-
-/* 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);
-
 /* String containing the current directory (what getwd would return).  */
 
 extern char *current_directory;
Index: src/gdb/continuations.h
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ src/gdb/continuations.h	2011-05-27 19:24:07.680790172 +0100
@@ -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
Index: src/gdb/breakpoint.c
===================================================================
--- src.orig/gdb/breakpoint.c	2011-05-27 19:24:06.370790172 +0100
+++ src/gdb/breakpoint.c	2011-05-27 19:24:07.690790172 +0100
@@ -64,6 +64,7 @@
 #include "xml-syscall.h"
 #include "parser-defs.h"
 #include "cli/cli-utils.h"
+#include "continuations.h"
 
 /* readline include files */
 #include "readline/readline.h"
Index: src/gdb/continuations.c
===================================================================
--- src.orig/gdb/continuations.c	2011-05-27 19:24:06.380790172 +0100
+++ src/gdb/continuations.c	2011-05-27 19:24:07.690790172 +0100
@@ -22,6 +22,7 @@
 #include "defs.h"
 #include "gdbthread.h"
 #include "inferior.h"
+#include "continuations.h"
 
 struct continuation
 {
Index: src/gdb/event-top.c
===================================================================
--- src.orig/gdb/event-top.c	2011-05-27 19:24:06.370790172 +0100
+++ src/gdb/event-top.c	2011-05-27 19:24:07.690790172 +0100
@@ -33,7 +33,7 @@
 #include "cli/cli-script.h"     /* for reset_command_nest_depth */
 #include "main.h"
 #include "gdbthread.h"
-
+#include "continuations.h"
 #include "gdbcmd.h"		/* for dont_repeat() */
 
 /* readline include files.  */
Index: src/gdb/inf-loop.c
===================================================================
--- src.orig/gdb/inf-loop.c	2011-05-27 19:24:06.370790172 +0100
+++ src/gdb/inf-loop.c	2011-05-27 19:24:07.690790172 +0100
@@ -28,6 +28,7 @@
 #include "exceptions.h"
 #include "language.h"
 #include "gdbthread.h"
+#include "continuations.h"
 
 static int fetch_inferior_event_wrapper (gdb_client_data client_data);
 
Index: src/gdb/infcmd.c
===================================================================
--- src.orig/gdb/infcmd.c	2011-05-27 19:24:06.380790172 +0100
+++ src/gdb/infcmd.c	2011-05-27 19:24:07.690790172 +0100
@@ -56,6 +56,7 @@
 #include "inline-frame.h"
 #include "tracepoint.h"
 #include "inf-loop.h"
+#include "continuations.h"
 
 /* Functions exported for general use, in inferior.h: */
 
Index: src/gdb/inferior.c
===================================================================
--- src.orig/gdb/inferior.c	2011-05-27 19:24:06.380790172 +0100
+++ src/gdb/inferior.c	2011-05-27 19:24:07.690790172 +0100
@@ -31,6 +31,7 @@
 #include "symfile.h"
 #include "environ.h"
 #include "cli/cli-utils.h"
+#include "continuations.h"
 
 void _initialize_inferiors (void);
 
Index: src/gdb/infrun.c
===================================================================
--- src.orig/gdb/infrun.c	2011-05-27 19:24:06.370790172 +0100
+++ src/gdb/infrun.c	2011-05-27 19:24:07.700790172 +0100
@@ -54,6 +54,7 @@
 #include "inline-frame.h"
 #include "jit.h"
 #include "tracepoint.h"
+#include "continuations.h"
 
 /* Prototypes for local functions */
 
Index: src/gdb/interps.c
===================================================================
--- src.orig/gdb/interps.c	2011-05-27 19:24:06.380790172 +0100
+++ src/gdb/interps.c	2011-05-27 19:24:07.700790172 +0100
@@ -41,6 +41,7 @@
 #include "gdb_assert.h"
 #include "top.h"		/* For command_loop.  */
 #include "exceptions.h"
+#include "continuations.h"
 
 struct interp
 {


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]