1/* User Interface Events. 2 3 Copyright (C) 1999, 2001, 2002, 2004, 2007 Free Software Foundation, Inc. 4 5 Contributed by Cygnus Solutions. 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 11 the Free Software Foundation; either version 3 of the License, or 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 20 along with this program. If not, see <http://www.gnu.org/licenses/>. */ 21 22/* Work in progress */ 23 24/* This file was created with the aid of ``gdb-events.sh''. 25 26 The bourn shell script ``gdb-events.sh'' creates the files 27 ``new-gdb-events.c'' and ``new-gdb-events.h and then compares 28 them against the existing ``gdb-events.[hc]''. Any differences 29 found being reported. 30 31 If editing this file, please also run gdb-events.sh and merge any 32 changes into that script. Conversely, when making sweeping changes 33 to this file, modifying gdb-events.sh and using its output may 34 prove easier. */ 35 36 37#ifndef GDB_EVENTS_H 38#define GDB_EVENTS_H 39 40 41/* COMPAT: pointer variables for old, unconverted events. 42 A call to set_gdb_events() will automatically update these. */ 43 44 45 46/* Type definition of all hook functions. Recommended pratice is to 47 first declare each hook function using the below ftype and then 48 define it. */ 49 50typedef void (gdb_events_breakpoint_create_ftype) (int b); 51typedef void (gdb_events_breakpoint_delete_ftype) (int b); 52typedef void (gdb_events_breakpoint_modify_ftype) (int b); 53typedef void (gdb_events_tracepoint_create_ftype) (int number); 54typedef void (gdb_events_tracepoint_delete_ftype) (int number); 55typedef void (gdb_events_tracepoint_modify_ftype) (int number); 56typedef void (gdb_events_architecture_changed_ftype) (void); 57 58 59/* gdb-events: object. */ 60 61struct gdb_events 62 { 63 gdb_events_breakpoint_create_ftype *breakpoint_create; 64 gdb_events_breakpoint_delete_ftype *breakpoint_delete; 65 gdb_events_breakpoint_modify_ftype *breakpoint_modify; 66 gdb_events_tracepoint_create_ftype *tracepoint_create; 67 gdb_events_tracepoint_delete_ftype *tracepoint_delete; 68 gdb_events_tracepoint_modify_ftype *tracepoint_modify; 69 gdb_events_architecture_changed_ftype *architecture_changed; 70 }; 71 72 73/* Interface into events functions. 74 Where a *_p() predicate is present, it must be called before 75 calling the hook proper. */ 76extern void breakpoint_create_event (int b); 77extern void breakpoint_delete_event (int b); 78extern void breakpoint_modify_event (int b); 79extern void tracepoint_create_event (int number); 80extern void tracepoint_delete_event (int number); 81extern void tracepoint_modify_event (int number); 82extern void architecture_changed_event (void); 83 84/* Install custom gdb-events hooks. */ 85extern struct gdb_events *deprecated_set_gdb_event_hooks (struct gdb_events *vector); 86 87/* Deliver any pending events. */ 88extern void gdb_events_deliver (struct gdb_events *vector); 89 90/* Clear event handlers. */ 91extern void clear_gdb_event_hooks (void); 92 93#endif 94