xref: /openbsd-src/gnu/usr.bin/binutils/gdb/gdb-events.h (revision 11efff7f3ac2b3cfeff0c0cddc14294d9b3aca4f)
1b725ae77Skettenis /* User Interface Events.
2b725ae77Skettenis 
3b725ae77Skettenis    Copyright 1999, 2001, 2002, 2004 Free Software Foundation, Inc.
4b725ae77Skettenis 
5b725ae77Skettenis    Contributed by Cygnus Solutions.
6b725ae77Skettenis 
7b725ae77Skettenis    This file is part of GDB.
8b725ae77Skettenis 
9b725ae77Skettenis    This program is free software; you can redistribute it and/or modify
10b725ae77Skettenis    it under the terms of the GNU General Public License as published by
11b725ae77Skettenis    the Free Software Foundation; either version 2 of the License, or
12b725ae77Skettenis    (at your option) any later version.
13b725ae77Skettenis 
14b725ae77Skettenis    This program is distributed in the hope that it will be useful,
15b725ae77Skettenis    but WITHOUT ANY WARRANTY; without even the implied warranty of
16b725ae77Skettenis    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17b725ae77Skettenis    GNU General Public License for more details.
18b725ae77Skettenis 
19b725ae77Skettenis    You should have received a copy of the GNU General Public License
20b725ae77Skettenis    along with this program; if not, write to the Free Software
21b725ae77Skettenis    Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
22b725ae77Skettenis 
23b725ae77Skettenis /* Work in progress */
24b725ae77Skettenis 
25b725ae77Skettenis /* This file was created with the aid of ``gdb-events.sh''.
26b725ae77Skettenis 
27b725ae77Skettenis    The bourn shell script ``gdb-events.sh'' creates the files
28b725ae77Skettenis    ``new-gdb-events.c'' and ``new-gdb-events.h and then compares
29b725ae77Skettenis    them against the existing ``gdb-events.[hc]''.  Any differences
30b725ae77Skettenis    found being reported.
31b725ae77Skettenis 
32b725ae77Skettenis    If editing this file, please also run gdb-events.sh and merge any
33b725ae77Skettenis    changes into that script. Conversely, when making sweeping changes
34b725ae77Skettenis    to this file, modifying gdb-events.sh and using its output may
35b725ae77Skettenis    prove easier. */
36b725ae77Skettenis 
37b725ae77Skettenis 
38b725ae77Skettenis #ifndef GDB_EVENTS_H
39b725ae77Skettenis #define GDB_EVENTS_H
40b725ae77Skettenis 
41b725ae77Skettenis 
42b725ae77Skettenis /* COMPAT: pointer variables for old, unconverted events.
43b725ae77Skettenis    A call to set_gdb_events() will automatically update these. */
44b725ae77Skettenis 
45b725ae77Skettenis 
46b725ae77Skettenis 
47b725ae77Skettenis /* Type definition of all hook functions.
48b725ae77Skettenis    Recommended pratice is to first declare each hook function using
49b725ae77Skettenis    the below ftype and then define it. */
50b725ae77Skettenis 
51b725ae77Skettenis typedef void (gdb_events_breakpoint_create_ftype) (int b);
52b725ae77Skettenis typedef void (gdb_events_breakpoint_delete_ftype) (int b);
53b725ae77Skettenis typedef void (gdb_events_breakpoint_modify_ftype) (int b);
54b725ae77Skettenis typedef void (gdb_events_tracepoint_create_ftype) (int number);
55b725ae77Skettenis typedef void (gdb_events_tracepoint_delete_ftype) (int number);
56b725ae77Skettenis typedef void (gdb_events_tracepoint_modify_ftype) (int number);
57b725ae77Skettenis typedef void (gdb_events_architecture_changed_ftype) (void);
58b725ae77Skettenis 
59b725ae77Skettenis 
60b725ae77Skettenis /* gdb-events: object. */
61b725ae77Skettenis 
62b725ae77Skettenis struct gdb_events
63b725ae77Skettenis   {
64b725ae77Skettenis     gdb_events_breakpoint_create_ftype *breakpoint_create;
65b725ae77Skettenis     gdb_events_breakpoint_delete_ftype *breakpoint_delete;
66b725ae77Skettenis     gdb_events_breakpoint_modify_ftype *breakpoint_modify;
67b725ae77Skettenis     gdb_events_tracepoint_create_ftype *tracepoint_create;
68b725ae77Skettenis     gdb_events_tracepoint_delete_ftype *tracepoint_delete;
69b725ae77Skettenis     gdb_events_tracepoint_modify_ftype *tracepoint_modify;
70b725ae77Skettenis     gdb_events_architecture_changed_ftype *architecture_changed;
71b725ae77Skettenis   };
72b725ae77Skettenis 
73b725ae77Skettenis 
74b725ae77Skettenis /* Interface into events functions.
75b725ae77Skettenis    Where a *_p() predicate is present, it must be called before
76b725ae77Skettenis    calling the hook proper. */
77b725ae77Skettenis extern void breakpoint_create_event (int b);
78b725ae77Skettenis extern void breakpoint_delete_event (int b);
79b725ae77Skettenis extern void breakpoint_modify_event (int b);
80b725ae77Skettenis extern void tracepoint_create_event (int number);
81b725ae77Skettenis extern void tracepoint_delete_event (int number);
82b725ae77Skettenis extern void tracepoint_modify_event (int number);
83b725ae77Skettenis extern void architecture_changed_event (void);
84b725ae77Skettenis 
85b725ae77Skettenis /* Install custom gdb-events hooks. */
86*11efff7fSkettenis extern struct gdb_events *deprecated_set_gdb_event_hooks (struct gdb_events *vector);
87b725ae77Skettenis 
88b725ae77Skettenis /* Deliver any pending events. */
89b725ae77Skettenis extern void gdb_events_deliver (struct gdb_events *vector);
90b725ae77Skettenis 
91b725ae77Skettenis /* Clear event handlers */
92b725ae77Skettenis extern void clear_gdb_event_hooks (void);
93b725ae77Skettenis 
94b725ae77Skettenis #endif
95