import gdb-1999-05-10
[deliverable/binutils-gdb.git] / gdb / top.h
index f60d926cae4a43ed0c70f612e55eebead40c2fc3..188d184f91f006f3cc67087e0fd7920a6df51589 100644 (file)
--- a/gdb/top.h
+++ b/gdb/top.h
@@ -18,6 +18,8 @@ You should have received a copy of the GNU General Public License
 along with this program; if not, write to the Free Software
 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
+#include <setjmp.h>
+
 /* From top.c.  */
 extern char *line;
 extern int linesize;
@@ -29,8 +31,31 @@ extern char gdbinit[];
 
 /* Generally one should use catch_errors rather than manipulating these
    directly.  The exception is main().  */
-extern jmp_buf error_return;
-extern jmp_buf quit_return;
+#if defined(HAVE_SIGSETJMP)
+#define SIGJMP_BUF             sigjmp_buf
+#define SIGSETJMP(buf)         sigsetjmp(buf, 1)
+#define SIGLONGJMP(buf,val)    siglongjmp(buf,val)
+#else
+#define SIGJMP_BUF             jmp_buf
+#define SIGSETJMP(buf)         setjmp(buf)
+#define SIGLONGJMP(buf,val)    longjmp(buf,val)
+#endif
+
+/* Temporary variable for SET_TOP_LEVEL.  */
+
+int top_level_val;
+
+/* Do a setjmp on error_return and quit_return.  catch_errors is
+   generally a cleaner way to do this, but main() would look pretty
+   ugly if it had to use catch_errors each time.  */
+
+#define SET_TOP_LEVEL() \
+  (((top_level_val = SIGSETJMP (error_return)) \
+    ? (PTR) 0 : (PTR) memcpy (quit_return, error_return, sizeof (SIGJMP_BUF))) \
+   , top_level_val)
+
+extern SIGJMP_BUF error_return;
+extern SIGJMP_BUF quit_return;
 
 extern void print_gdb_version PARAMS ((GDB_FILE *));
 
@@ -42,7 +67,17 @@ extern void command_loop PARAMS ((void));
 extern int quit_confirm PARAMS ((void));
 extern void quit_force PARAMS ((char *, int));
 extern void quit_command PARAMS ((char *, int));
+
+extern void setup_event_loop PARAMS ((void));
+extern void async_init_signals PARAMS ((void));
+
+/* This function returns a pointer to the string that is used
+   by gdb for its command prompt. */
 extern char *get_prompt PARAMS((void));
+/* This function copies the specified string into the string that
+   is used by gdb for its command prompt. */
+extern void set_prompt PARAMS ((char *));
 
 /* From random places.  */
 extern int mapped_symbol_files;
This page took 0.023636 seconds and 4 git commands to generate.