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