Remote non-stop mode support.
[deliverable/binutils-gdb.git] / gdb / interps.h
CommitLineData
4a8f6654
AC
1/* Manages interpreters for GDB, the GNU debugger.
2
9b254dd1 3 Copyright (C) 2000, 2002, 2003, 2007, 2008 Free Software Foundation, Inc.
4a8f6654
AC
4
5 Written by Jim Ingham <jingham@apple.com> of Apple Computer, Inc.
6
7 This file is part of GDB.
8
9 This program is free software; you can redistribute it and/or modify
10 it under the terms of the GNU General Public License as published by
a9762ec7 11 the Free Software Foundation; either version 3 of the License, or
4a8f6654
AC
12 (at your option) any later version.
13
14 This program is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 GNU General Public License for more details.
18
19 You should have received a copy of the GNU General Public License
a9762ec7 20 along with this program. If not, see <http://www.gnu.org/licenses/>. */
4a8f6654
AC
21
22#ifndef INTERPS_H
23#define INTERPS_H
24
c1043fc2
AC
25#include "exceptions.h"
26
4a8f6654
AC
27struct ui_out;
28struct interp;
29
30extern int interp_resume (struct interp *interp);
31extern int interp_suspend (struct interp *interp);
32extern int interp_prompt_p (struct interp *interp);
33extern int interp_exec_p (struct interp *interp);
71fff37b
AC
34extern struct gdb_exception interp_exec (struct interp *interp,
35 const char *command);
4a8f6654
AC
36extern int interp_quiet_p (struct interp *interp);
37
683f2885 38typedef void *(interp_init_ftype) (int top_level);
4a8f6654
AC
39typedef int (interp_resume_ftype) (void *data);
40typedef int (interp_suspend_ftype) (void *data);
41typedef int (interp_prompt_p_ftype) (void *data);
71fff37b
AC
42typedef struct gdb_exception (interp_exec_ftype) (void *data,
43 const char *command);
1cdac4ef 44typedef void (interp_command_loop_ftype) (void *data);
4a8f6654
AC
45
46struct interp_procs
47{
48 interp_init_ftype *init_proc;
49 interp_resume_ftype *resume_proc;
50 interp_suspend_ftype *suspend_proc;
51 interp_exec_ftype *exec_proc;
52 interp_prompt_p_ftype *prompt_proc_p;
53 interp_command_loop_ftype *command_loop_proc;
54};
55
56extern struct interp *interp_new (const char *name, void *data,
57 struct ui_out *uiout,
58 const struct interp_procs *procs);
59extern void interp_add (struct interp *interp);
683f2885 60extern int interp_set (struct interp *interp, int top_level);
4a8f6654
AC
61extern struct interp *interp_lookup (const char *name);
62extern struct ui_out *interp_ui_out (struct interp *interp);
63
64extern int current_interp_named_p (const char *name);
65extern int current_interp_display_prompt_p (void);
66extern void current_interp_command_loop (void);
683f2885
VP
67/* Returns opaque data associated with the top-level interpreter. */
68extern void *top_level_interpreter_data (void);
79a68887 69extern struct interp *top_level_interpreter (void);
4a8f6654 70
b9362cc7 71extern void clear_interpreter_hooks (void);
4a8f6654
AC
72
73/* well-known interpreters */
74#define INTERP_CONSOLE "console"
75#define INTERP_MI1 "mi1"
2fcf52f0
AC
76#define INTERP_MI2 "mi2"
77#define INTERP_MI3 "mi3"
4a8f6654 78#define INTERP_MI "mi"
226361c4 79#define INTERP_TUI "tui"
cc4349ed 80#define INTERP_INSIGHT "insight"
4a8f6654
AC
81
82#endif
This page took 0.424172 seconds and 4 git commands to generate.