1*b5bf3908Schristos /* This file is automatically generated. DO NOT EDIT! */ 2*b5bf3908Schristos /* Generated from: NetBSD: mknative-gdb,v 1.7 2016/10/16 04:37:42 mrg Exp */ 3*b5bf3908Schristos /* Generated from: NetBSD: mknative.common,v 1.15 2017/11/29 03:32:28 christos Exp */ 4*b5bf3908Schristos 5*b5bf3908Schristos /* GDB Notifications to Observers. 6*b5bf3908Schristos 7*b5bf3908Schristos Copyright (C) 2004-2017 Free Software Foundation, Inc. 8*b5bf3908Schristos 9*b5bf3908Schristos This file is part of GDB. 10*b5bf3908Schristos 11*b5bf3908Schristos This program is free software; you can redistribute it and/or modify 12*b5bf3908Schristos it under the terms of the GNU General Public License as published by 13*b5bf3908Schristos the Free Software Foundation; either version 3 of the License, or 14*b5bf3908Schristos (at your option) any later version. 15*b5bf3908Schristos 16*b5bf3908Schristos This program is distributed in the hope that it will be useful, 17*b5bf3908Schristos but WITHOUT ANY WARRANTY; without even the implied warranty of 18*b5bf3908Schristos MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19*b5bf3908Schristos GNU General Public License for more details. 20*b5bf3908Schristos 21*b5bf3908Schristos You should have received a copy of the GNU General Public License 22*b5bf3908Schristos along with this program. If not, see <http://www.gnu.org/licenses/>. 23*b5bf3908Schristos 24*b5bf3908Schristos -- 25*b5bf3908Schristos 26*b5bf3908Schristos This file was generated using observer.sh and observer.texi. */ 27*b5bf3908Schristos 28*b5bf3908Schristos #ifndef OBSERVER_H 29*b5bf3908Schristos #define OBSERVER_H 30*b5bf3908Schristos 31*b5bf3908Schristos struct observer; 32*b5bf3908Schristos struct bpstats; 33*b5bf3908Schristos struct so_list; 34*b5bf3908Schristos struct objfile; 35*b5bf3908Schristos struct thread_info; 36*b5bf3908Schristos struct inferior; 37*b5bf3908Schristos struct trace_state_variable; 38*b5bf3908Schristos 39*b5bf3908Schristos /* normal_stop notifications. */ 40*b5bf3908Schristos 41*b5bf3908Schristos typedef void (observer_normal_stop_ftype) (struct bpstats *bs, int print_frame); 42*b5bf3908Schristos 43*b5bf3908Schristos extern struct observer *observer_attach_normal_stop (observer_normal_stop_ftype *f); 44*b5bf3908Schristos extern void observer_detach_normal_stop (struct observer *observer); 45*b5bf3908Schristos extern void observer_notify_normal_stop (struct bpstats *bs, int print_frame); 46*b5bf3908Schristos 47*b5bf3908Schristos /* signal_received notifications. */ 48*b5bf3908Schristos 49*b5bf3908Schristos typedef void (observer_signal_received_ftype) (enum gdb_signal siggnal); 50*b5bf3908Schristos 51*b5bf3908Schristos extern struct observer *observer_attach_signal_received (observer_signal_received_ftype *f); 52*b5bf3908Schristos extern void observer_detach_signal_received (struct observer *observer); 53*b5bf3908Schristos extern void observer_notify_signal_received (enum gdb_signal siggnal); 54*b5bf3908Schristos 55*b5bf3908Schristos /* end_stepping_range notifications. */ 56*b5bf3908Schristos 57*b5bf3908Schristos typedef void (observer_end_stepping_range_ftype) (void); 58*b5bf3908Schristos 59*b5bf3908Schristos extern struct observer *observer_attach_end_stepping_range (observer_end_stepping_range_ftype *f); 60*b5bf3908Schristos extern void observer_detach_end_stepping_range (struct observer *observer); 61*b5bf3908Schristos extern void observer_notify_end_stepping_range (void); 62*b5bf3908Schristos 63*b5bf3908Schristos /* signal_exited notifications. */ 64*b5bf3908Schristos 65*b5bf3908Schristos typedef void (observer_signal_exited_ftype) (enum gdb_signal siggnal); 66*b5bf3908Schristos 67*b5bf3908Schristos extern struct observer *observer_attach_signal_exited (observer_signal_exited_ftype *f); 68*b5bf3908Schristos extern void observer_detach_signal_exited (struct observer *observer); 69*b5bf3908Schristos extern void observer_notify_signal_exited (enum gdb_signal siggnal); 70*b5bf3908Schristos 71*b5bf3908Schristos /* exited notifications. */ 72*b5bf3908Schristos 73*b5bf3908Schristos typedef void (observer_exited_ftype) (int exitstatus); 74*b5bf3908Schristos 75*b5bf3908Schristos extern struct observer *observer_attach_exited (observer_exited_ftype *f); 76*b5bf3908Schristos extern void observer_detach_exited (struct observer *observer); 77*b5bf3908Schristos extern void observer_notify_exited (int exitstatus); 78*b5bf3908Schristos 79*b5bf3908Schristos /* no_history notifications. */ 80*b5bf3908Schristos 81*b5bf3908Schristos typedef void (observer_no_history_ftype) (void); 82*b5bf3908Schristos 83*b5bf3908Schristos extern struct observer *observer_attach_no_history (observer_no_history_ftype *f); 84*b5bf3908Schristos extern void observer_detach_no_history (struct observer *observer); 85*b5bf3908Schristos extern void observer_notify_no_history (void); 86*b5bf3908Schristos 87*b5bf3908Schristos /* sync_execution_done notifications. */ 88*b5bf3908Schristos 89*b5bf3908Schristos typedef void (observer_sync_execution_done_ftype) (void); 90*b5bf3908Schristos 91*b5bf3908Schristos extern struct observer *observer_attach_sync_execution_done (observer_sync_execution_done_ftype *f); 92*b5bf3908Schristos extern void observer_detach_sync_execution_done (struct observer *observer); 93*b5bf3908Schristos extern void observer_notify_sync_execution_done (void); 94*b5bf3908Schristos 95*b5bf3908Schristos /* command_error notifications. */ 96*b5bf3908Schristos 97*b5bf3908Schristos typedef void (observer_command_error_ftype) (void); 98*b5bf3908Schristos 99*b5bf3908Schristos extern struct observer *observer_attach_command_error (observer_command_error_ftype *f); 100*b5bf3908Schristos extern void observer_detach_command_error (struct observer *observer); 101*b5bf3908Schristos extern void observer_notify_command_error (void); 102*b5bf3908Schristos 103*b5bf3908Schristos /* target_changed notifications. */ 104*b5bf3908Schristos 105*b5bf3908Schristos typedef void (observer_target_changed_ftype) (struct target_ops *target); 106*b5bf3908Schristos 107*b5bf3908Schristos extern struct observer *observer_attach_target_changed (observer_target_changed_ftype *f); 108*b5bf3908Schristos extern void observer_detach_target_changed (struct observer *observer); 109*b5bf3908Schristos extern void observer_notify_target_changed (struct target_ops *target); 110*b5bf3908Schristos 111*b5bf3908Schristos /* executable_changed notifications. */ 112*b5bf3908Schristos 113*b5bf3908Schristos typedef void (observer_executable_changed_ftype) (void); 114*b5bf3908Schristos 115*b5bf3908Schristos extern struct observer *observer_attach_executable_changed (observer_executable_changed_ftype *f); 116*b5bf3908Schristos extern void observer_detach_executable_changed (struct observer *observer); 117*b5bf3908Schristos extern void observer_notify_executable_changed (void); 118*b5bf3908Schristos 119*b5bf3908Schristos /* inferior_created notifications. */ 120*b5bf3908Schristos 121*b5bf3908Schristos typedef void (observer_inferior_created_ftype) (struct target_ops *objfile, int from_tty); 122*b5bf3908Schristos 123*b5bf3908Schristos extern struct observer *observer_attach_inferior_created (observer_inferior_created_ftype *f); 124*b5bf3908Schristos extern void observer_detach_inferior_created (struct observer *observer); 125*b5bf3908Schristos extern void observer_notify_inferior_created (struct target_ops *objfile, int from_tty); 126*b5bf3908Schristos 127*b5bf3908Schristos /* record_changed notifications. */ 128*b5bf3908Schristos 129*b5bf3908Schristos typedef void (observer_record_changed_ftype) (struct inferior *inferior, int started, const char *method, const char *format); 130*b5bf3908Schristos 131*b5bf3908Schristos extern struct observer *observer_attach_record_changed (observer_record_changed_ftype *f); 132*b5bf3908Schristos extern void observer_detach_record_changed (struct observer *observer); 133*b5bf3908Schristos extern void observer_notify_record_changed (struct inferior *inferior, int started, const char *method, const char *format); 134*b5bf3908Schristos 135*b5bf3908Schristos /* solib_loaded notifications. */ 136*b5bf3908Schristos 137*b5bf3908Schristos typedef void (observer_solib_loaded_ftype) (struct so_list *solib); 138*b5bf3908Schristos 139*b5bf3908Schristos extern struct observer *observer_attach_solib_loaded (observer_solib_loaded_ftype *f); 140*b5bf3908Schristos extern void observer_detach_solib_loaded (struct observer *observer); 141*b5bf3908Schristos extern void observer_notify_solib_loaded (struct so_list *solib); 142*b5bf3908Schristos 143*b5bf3908Schristos /* solib_unloaded notifications. */ 144*b5bf3908Schristos 145*b5bf3908Schristos typedef void (observer_solib_unloaded_ftype) (struct so_list *solib); 146*b5bf3908Schristos 147*b5bf3908Schristos extern struct observer *observer_attach_solib_unloaded (observer_solib_unloaded_ftype *f); 148*b5bf3908Schristos extern void observer_detach_solib_unloaded (struct observer *observer); 149*b5bf3908Schristos extern void observer_notify_solib_unloaded (struct so_list *solib); 150*b5bf3908Schristos 151*b5bf3908Schristos /* new_objfile notifications. */ 152*b5bf3908Schristos 153*b5bf3908Schristos typedef void (observer_new_objfile_ftype) (struct objfile *objfile); 154*b5bf3908Schristos 155*b5bf3908Schristos extern struct observer *observer_attach_new_objfile (observer_new_objfile_ftype *f); 156*b5bf3908Schristos extern void observer_detach_new_objfile (struct observer *observer); 157*b5bf3908Schristos extern void observer_notify_new_objfile (struct objfile *objfile); 158*b5bf3908Schristos 159*b5bf3908Schristos /* free_objfile notifications. */ 160*b5bf3908Schristos 161*b5bf3908Schristos typedef void (observer_free_objfile_ftype) (struct objfile *objfile); 162*b5bf3908Schristos 163*b5bf3908Schristos extern struct observer *observer_attach_free_objfile (observer_free_objfile_ftype *f); 164*b5bf3908Schristos extern void observer_detach_free_objfile (struct observer *observer); 165*b5bf3908Schristos extern void observer_notify_free_objfile (struct objfile *objfile); 166*b5bf3908Schristos 167*b5bf3908Schristos /* new_thread notifications. */ 168*b5bf3908Schristos 169*b5bf3908Schristos typedef void (observer_new_thread_ftype) (struct thread_info *t); 170*b5bf3908Schristos 171*b5bf3908Schristos extern struct observer *observer_attach_new_thread (observer_new_thread_ftype *f); 172*b5bf3908Schristos extern void observer_detach_new_thread (struct observer *observer); 173*b5bf3908Schristos extern void observer_notify_new_thread (struct thread_info *t); 174*b5bf3908Schristos 175*b5bf3908Schristos /* thread_exit notifications. */ 176*b5bf3908Schristos 177*b5bf3908Schristos typedef void (observer_thread_exit_ftype) (struct thread_info *t, int silent); 178*b5bf3908Schristos 179*b5bf3908Schristos extern struct observer *observer_attach_thread_exit (observer_thread_exit_ftype *f); 180*b5bf3908Schristos extern void observer_detach_thread_exit (struct observer *observer); 181*b5bf3908Schristos extern void observer_notify_thread_exit (struct thread_info *t, int silent); 182*b5bf3908Schristos 183*b5bf3908Schristos /* thread_stop_requested notifications. */ 184*b5bf3908Schristos 185*b5bf3908Schristos typedef void (observer_thread_stop_requested_ftype) (ptid_t ptid); 186*b5bf3908Schristos 187*b5bf3908Schristos extern struct observer *observer_attach_thread_stop_requested (observer_thread_stop_requested_ftype *f); 188*b5bf3908Schristos extern void observer_detach_thread_stop_requested (struct observer *observer); 189*b5bf3908Schristos extern void observer_notify_thread_stop_requested (ptid_t ptid); 190*b5bf3908Schristos 191*b5bf3908Schristos /* target_resumed notifications. */ 192*b5bf3908Schristos 193*b5bf3908Schristos typedef void (observer_target_resumed_ftype) (ptid_t ptid); 194*b5bf3908Schristos 195*b5bf3908Schristos extern struct observer *observer_attach_target_resumed (observer_target_resumed_ftype *f); 196*b5bf3908Schristos extern void observer_detach_target_resumed (struct observer *observer); 197*b5bf3908Schristos extern void observer_notify_target_resumed (ptid_t ptid); 198*b5bf3908Schristos 199*b5bf3908Schristos /* about_to_proceed notifications. */ 200*b5bf3908Schristos 201*b5bf3908Schristos typedef void (observer_about_to_proceed_ftype) (void); 202*b5bf3908Schristos 203*b5bf3908Schristos extern struct observer *observer_attach_about_to_proceed (observer_about_to_proceed_ftype *f); 204*b5bf3908Schristos extern void observer_detach_about_to_proceed (struct observer *observer); 205*b5bf3908Schristos extern void observer_notify_about_to_proceed (void); 206*b5bf3908Schristos 207*b5bf3908Schristos /* breakpoint_created notifications. */ 208*b5bf3908Schristos 209*b5bf3908Schristos typedef void (observer_breakpoint_created_ftype) (struct breakpoint *b); 210*b5bf3908Schristos 211*b5bf3908Schristos extern struct observer *observer_attach_breakpoint_created (observer_breakpoint_created_ftype *f); 212*b5bf3908Schristos extern void observer_detach_breakpoint_created (struct observer *observer); 213*b5bf3908Schristos extern void observer_notify_breakpoint_created (struct breakpoint *b); 214*b5bf3908Schristos 215*b5bf3908Schristos /* breakpoint_deleted notifications. */ 216*b5bf3908Schristos 217*b5bf3908Schristos typedef void (observer_breakpoint_deleted_ftype) (struct breakpoint *b); 218*b5bf3908Schristos 219*b5bf3908Schristos extern struct observer *observer_attach_breakpoint_deleted (observer_breakpoint_deleted_ftype *f); 220*b5bf3908Schristos extern void observer_detach_breakpoint_deleted (struct observer *observer); 221*b5bf3908Schristos extern void observer_notify_breakpoint_deleted (struct breakpoint *b); 222*b5bf3908Schristos 223*b5bf3908Schristos /* breakpoint_modified notifications. */ 224*b5bf3908Schristos 225*b5bf3908Schristos typedef void (observer_breakpoint_modified_ftype) (struct breakpoint *b); 226*b5bf3908Schristos 227*b5bf3908Schristos extern struct observer *observer_attach_breakpoint_modified (observer_breakpoint_modified_ftype *f); 228*b5bf3908Schristos extern void observer_detach_breakpoint_modified (struct observer *observer); 229*b5bf3908Schristos extern void observer_notify_breakpoint_modified (struct breakpoint *b); 230*b5bf3908Schristos 231*b5bf3908Schristos /* traceframe_changed notifications. */ 232*b5bf3908Schristos 233*b5bf3908Schristos typedef void (observer_traceframe_changed_ftype) (int tfnum, int tpnum); 234*b5bf3908Schristos 235*b5bf3908Schristos extern struct observer *observer_attach_traceframe_changed (observer_traceframe_changed_ftype *f); 236*b5bf3908Schristos extern void observer_detach_traceframe_changed (struct observer *observer); 237*b5bf3908Schristos extern void observer_notify_traceframe_changed (int tfnum, int tpnum); 238*b5bf3908Schristos 239*b5bf3908Schristos /* architecture_changed notifications. */ 240*b5bf3908Schristos 241*b5bf3908Schristos typedef void (observer_architecture_changed_ftype) (struct gdbarch *newarch); 242*b5bf3908Schristos 243*b5bf3908Schristos extern struct observer *observer_attach_architecture_changed (observer_architecture_changed_ftype *f); 244*b5bf3908Schristos extern void observer_detach_architecture_changed (struct observer *observer); 245*b5bf3908Schristos extern void observer_notify_architecture_changed (struct gdbarch *newarch); 246*b5bf3908Schristos 247*b5bf3908Schristos /* thread_ptid_changed notifications. */ 248*b5bf3908Schristos 249*b5bf3908Schristos typedef void (observer_thread_ptid_changed_ftype) (ptid_t old_ptid, ptid_t new_ptid); 250*b5bf3908Schristos 251*b5bf3908Schristos extern struct observer *observer_attach_thread_ptid_changed (observer_thread_ptid_changed_ftype *f); 252*b5bf3908Schristos extern void observer_detach_thread_ptid_changed (struct observer *observer); 253*b5bf3908Schristos extern void observer_notify_thread_ptid_changed (ptid_t old_ptid, ptid_t new_ptid); 254*b5bf3908Schristos 255*b5bf3908Schristos /* inferior_added notifications. */ 256*b5bf3908Schristos 257*b5bf3908Schristos typedef void (observer_inferior_added_ftype) (struct inferior *inf); 258*b5bf3908Schristos 259*b5bf3908Schristos extern struct observer *observer_attach_inferior_added (observer_inferior_added_ftype *f); 260*b5bf3908Schristos extern void observer_detach_inferior_added (struct observer *observer); 261*b5bf3908Schristos extern void observer_notify_inferior_added (struct inferior *inf); 262*b5bf3908Schristos 263*b5bf3908Schristos /* inferior_appeared notifications. */ 264*b5bf3908Schristos 265*b5bf3908Schristos typedef void (observer_inferior_appeared_ftype) (struct inferior *inf); 266*b5bf3908Schristos 267*b5bf3908Schristos extern struct observer *observer_attach_inferior_appeared (observer_inferior_appeared_ftype *f); 268*b5bf3908Schristos extern void observer_detach_inferior_appeared (struct observer *observer); 269*b5bf3908Schristos extern void observer_notify_inferior_appeared (struct inferior *inf); 270*b5bf3908Schristos 271*b5bf3908Schristos /* inferior_exit notifications. */ 272*b5bf3908Schristos 273*b5bf3908Schristos typedef void (observer_inferior_exit_ftype) (struct inferior *inf); 274*b5bf3908Schristos 275*b5bf3908Schristos extern struct observer *observer_attach_inferior_exit (observer_inferior_exit_ftype *f); 276*b5bf3908Schristos extern void observer_detach_inferior_exit (struct observer *observer); 277*b5bf3908Schristos extern void observer_notify_inferior_exit (struct inferior *inf); 278*b5bf3908Schristos 279*b5bf3908Schristos /* inferior_removed notifications. */ 280*b5bf3908Schristos 281*b5bf3908Schristos typedef void (observer_inferior_removed_ftype) (struct inferior *inf); 282*b5bf3908Schristos 283*b5bf3908Schristos extern struct observer *observer_attach_inferior_removed (observer_inferior_removed_ftype *f); 284*b5bf3908Schristos extern void observer_detach_inferior_removed (struct observer *observer); 285*b5bf3908Schristos extern void observer_notify_inferior_removed (struct inferior *inf); 286*b5bf3908Schristos 287*b5bf3908Schristos /* memory_changed notifications. */ 288*b5bf3908Schristos 289*b5bf3908Schristos typedef void (observer_memory_changed_ftype) (struct inferior *inferior, CORE_ADDR addr, ssize_t len, const bfd_byte *data); 290*b5bf3908Schristos 291*b5bf3908Schristos extern struct observer *observer_attach_memory_changed (observer_memory_changed_ftype *f); 292*b5bf3908Schristos extern void observer_detach_memory_changed (struct observer *observer); 293*b5bf3908Schristos extern void observer_notify_memory_changed (struct inferior *inferior, CORE_ADDR addr, ssize_t len, const bfd_byte *data); 294*b5bf3908Schristos 295*b5bf3908Schristos /* before_prompt notifications. */ 296*b5bf3908Schristos 297*b5bf3908Schristos typedef void (observer_before_prompt_ftype) (const char *current_prompt); 298*b5bf3908Schristos 299*b5bf3908Schristos extern struct observer *observer_attach_before_prompt (observer_before_prompt_ftype *f); 300*b5bf3908Schristos extern void observer_detach_before_prompt (struct observer *observer); 301*b5bf3908Schristos extern void observer_notify_before_prompt (const char *current_prompt); 302*b5bf3908Schristos 303*b5bf3908Schristos /* gdb_datadir_changed notifications. */ 304*b5bf3908Schristos 305*b5bf3908Schristos typedef void (observer_gdb_datadir_changed_ftype) (void); 306*b5bf3908Schristos 307*b5bf3908Schristos extern struct observer *observer_attach_gdb_datadir_changed (observer_gdb_datadir_changed_ftype *f); 308*b5bf3908Schristos extern void observer_detach_gdb_datadir_changed (struct observer *observer); 309*b5bf3908Schristos extern void observer_notify_gdb_datadir_changed (void); 310*b5bf3908Schristos 311*b5bf3908Schristos /* command_param_changed notifications. */ 312*b5bf3908Schristos 313*b5bf3908Schristos typedef void (observer_command_param_changed_ftype) (const char *param, const char *value); 314*b5bf3908Schristos 315*b5bf3908Schristos extern struct observer *observer_attach_command_param_changed (observer_command_param_changed_ftype *f); 316*b5bf3908Schristos extern void observer_detach_command_param_changed (struct observer *observer); 317*b5bf3908Schristos extern void observer_notify_command_param_changed (const char *param, const char *value); 318*b5bf3908Schristos 319*b5bf3908Schristos /* tsv_created notifications. */ 320*b5bf3908Schristos 321*b5bf3908Schristos typedef void (observer_tsv_created_ftype) (const struct trace_state_variable *tsv); 322*b5bf3908Schristos 323*b5bf3908Schristos extern struct observer *observer_attach_tsv_created (observer_tsv_created_ftype *f); 324*b5bf3908Schristos extern void observer_detach_tsv_created (struct observer *observer); 325*b5bf3908Schristos extern void observer_notify_tsv_created (const struct trace_state_variable *tsv); 326*b5bf3908Schristos 327*b5bf3908Schristos /* tsv_deleted notifications. */ 328*b5bf3908Schristos 329*b5bf3908Schristos typedef void (observer_tsv_deleted_ftype) (const struct trace_state_variable *tsv); 330*b5bf3908Schristos 331*b5bf3908Schristos extern struct observer *observer_attach_tsv_deleted (observer_tsv_deleted_ftype *f); 332*b5bf3908Schristos extern void observer_detach_tsv_deleted (struct observer *observer); 333*b5bf3908Schristos extern void observer_notify_tsv_deleted (const struct trace_state_variable *tsv); 334*b5bf3908Schristos 335*b5bf3908Schristos /* tsv_modified notifications. */ 336*b5bf3908Schristos 337*b5bf3908Schristos typedef void (observer_tsv_modified_ftype) (const struct trace_state_variable *tsv); 338*b5bf3908Schristos 339*b5bf3908Schristos extern struct observer *observer_attach_tsv_modified (observer_tsv_modified_ftype *f); 340*b5bf3908Schristos extern void observer_detach_tsv_modified (struct observer *observer); 341*b5bf3908Schristos extern void observer_notify_tsv_modified (const struct trace_state_variable *tsv); 342*b5bf3908Schristos 343*b5bf3908Schristos /* inferior_call_pre notifications. */ 344*b5bf3908Schristos 345*b5bf3908Schristos typedef void (observer_inferior_call_pre_ftype) (ptid_t thread, CORE_ADDR address); 346*b5bf3908Schristos 347*b5bf3908Schristos extern struct observer *observer_attach_inferior_call_pre (observer_inferior_call_pre_ftype *f); 348*b5bf3908Schristos extern void observer_detach_inferior_call_pre (struct observer *observer); 349*b5bf3908Schristos extern void observer_notify_inferior_call_pre (ptid_t thread, CORE_ADDR address); 350*b5bf3908Schristos 351*b5bf3908Schristos /* inferior_call_post notifications. */ 352*b5bf3908Schristos 353*b5bf3908Schristos typedef void (observer_inferior_call_post_ftype) (ptid_t thread, CORE_ADDR address); 354*b5bf3908Schristos 355*b5bf3908Schristos extern struct observer *observer_attach_inferior_call_post (observer_inferior_call_post_ftype *f); 356*b5bf3908Schristos extern void observer_detach_inferior_call_post (struct observer *observer); 357*b5bf3908Schristos extern void observer_notify_inferior_call_post (ptid_t thread, CORE_ADDR address); 358*b5bf3908Schristos 359*b5bf3908Schristos /* register_changed notifications. */ 360*b5bf3908Schristos 361*b5bf3908Schristos typedef void (observer_register_changed_ftype) (struct frame_info *frame, int regnum); 362*b5bf3908Schristos 363*b5bf3908Schristos extern struct observer *observer_attach_register_changed (observer_register_changed_ftype *f); 364*b5bf3908Schristos extern void observer_detach_register_changed (struct observer *observer); 365*b5bf3908Schristos extern void observer_notify_register_changed (struct frame_info *frame, int regnum); 366*b5bf3908Schristos 367*b5bf3908Schristos /* test_notification notifications. */ 368*b5bf3908Schristos 369*b5bf3908Schristos typedef void (observer_test_notification_ftype) (int somearg); 370*b5bf3908Schristos 371*b5bf3908Schristos extern struct observer *observer_attach_test_notification (observer_test_notification_ftype *f); 372*b5bf3908Schristos extern void observer_detach_test_notification (struct observer *observer); 373*b5bf3908Schristos extern void observer_notify_test_notification (int somearg); 374*b5bf3908Schristos 375*b5bf3908Schristos /* user_selected_context_changed notifications. */ 376*b5bf3908Schristos 377*b5bf3908Schristos typedef void (observer_user_selected_context_changed_ftype) (user_selected_what selection); 378*b5bf3908Schristos 379*b5bf3908Schristos extern struct observer *observer_attach_user_selected_context_changed (observer_user_selected_context_changed_ftype *f); 380*b5bf3908Schristos extern void observer_detach_user_selected_context_changed (struct observer *observer); 381*b5bf3908Schristos extern void observer_notify_user_selected_context_changed (user_selected_what selection); 382*b5bf3908Schristos 383*b5bf3908Schristos #endif /* OBSERVER_H */ 384