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