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