1ac8695a9Schristos /* This file is automatically generated. DO NOT EDIT! */ 2e110ade7Smrg /* Generated from: NetBSD: mknative-gdb,v 1.7 2016/10/16 04:37:42 mrg Exp */ 3*8b7331e5Schristos /* Generated from: NetBSD: mknative.common,v 1.15 2017/11/29 03:32:28 christos Exp */ 4ac8695a9Schristos 5ac8695a9Schristos /* GDB Notifications to Observers. 6ac8695a9Schristos 7*8b7331e5Schristos Copyright (C) 2004-2017 Free Software Foundation, Inc. 8ac8695a9Schristos 9ac8695a9Schristos This file is part of GDB. 10ac8695a9Schristos 11ac8695a9Schristos This program is free software; you can redistribute it and/or modify 12ac8695a9Schristos it under the terms of the GNU General Public License as published by 13ac8695a9Schristos the Free Software Foundation; either version 3 of the License, or 14ac8695a9Schristos (at your option) any later version. 15ac8695a9Schristos 16ac8695a9Schristos This program is distributed in the hope that it will be useful, 17ac8695a9Schristos but WITHOUT ANY WARRANTY; without even the implied warranty of 18ac8695a9Schristos MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19ac8695a9Schristos GNU General Public License for more details. 20ac8695a9Schristos 21ac8695a9Schristos You should have received a copy of the GNU General Public License 22ac8695a9Schristos along with this program. If not, see <http://www.gnu.org/licenses/>. 23ac8695a9Schristos 24ac8695a9Schristos -- 25ac8695a9Schristos 26ac8695a9Schristos This file was generated using observer.sh and observer.texi. */ 27ac8695a9Schristos 28ac8695a9Schristos #ifndef OBSERVER_H 29ac8695a9Schristos #define OBSERVER_H 30ac8695a9Schristos 31ac8695a9Schristos struct observer; 32ac8695a9Schristos struct bpstats; 33ac8695a9Schristos struct so_list; 34ac8695a9Schristos struct objfile; 35ac8695a9Schristos struct thread_info; 3684e9dd17Smrg struct inferior; 3784e9dd17Smrg struct trace_state_variable; 38ac8695a9Schristos 39ac8695a9Schristos /* normal_stop notifications. */ 40ac8695a9Schristos 41ac8695a9Schristos typedef void (observer_normal_stop_ftype) (struct bpstats *bs, int print_frame); 42ac8695a9Schristos 43ac8695a9Schristos extern struct observer *observer_attach_normal_stop (observer_normal_stop_ftype *f); 44ac8695a9Schristos extern void observer_detach_normal_stop (struct observer *observer); 45ac8695a9Schristos extern void observer_notify_normal_stop (struct bpstats *bs, int print_frame); 46ac8695a9Schristos 473221174aSchristos /* signal_received notifications. */ 483221174aSchristos 493221174aSchristos typedef void (observer_signal_received_ftype) (enum gdb_signal siggnal); 503221174aSchristos 513221174aSchristos extern struct observer *observer_attach_signal_received (observer_signal_received_ftype *f); 523221174aSchristos extern void observer_detach_signal_received (struct observer *observer); 533221174aSchristos extern void observer_notify_signal_received (enum gdb_signal siggnal); 543221174aSchristos 553221174aSchristos /* end_stepping_range notifications. */ 563221174aSchristos 573221174aSchristos typedef void (observer_end_stepping_range_ftype) (void); 583221174aSchristos 593221174aSchristos extern struct observer *observer_attach_end_stepping_range (observer_end_stepping_range_ftype *f); 603221174aSchristos extern void observer_detach_end_stepping_range (struct observer *observer); 613221174aSchristos extern void observer_notify_end_stepping_range (void); 623221174aSchristos 633221174aSchristos /* signal_exited notifications. */ 643221174aSchristos 653221174aSchristos typedef void (observer_signal_exited_ftype) (enum gdb_signal siggnal); 663221174aSchristos 673221174aSchristos extern struct observer *observer_attach_signal_exited (observer_signal_exited_ftype *f); 683221174aSchristos extern void observer_detach_signal_exited (struct observer *observer); 693221174aSchristos extern void observer_notify_signal_exited (enum gdb_signal siggnal); 703221174aSchristos 713221174aSchristos /* exited notifications. */ 723221174aSchristos 733221174aSchristos typedef void (observer_exited_ftype) (int exitstatus); 743221174aSchristos 753221174aSchristos extern struct observer *observer_attach_exited (observer_exited_ftype *f); 763221174aSchristos extern void observer_detach_exited (struct observer *observer); 773221174aSchristos extern void observer_notify_exited (int exitstatus); 783221174aSchristos 793221174aSchristos /* no_history notifications. */ 803221174aSchristos 813221174aSchristos typedef void (observer_no_history_ftype) (void); 823221174aSchristos 833221174aSchristos extern struct observer *observer_attach_no_history (observer_no_history_ftype *f); 843221174aSchristos extern void observer_detach_no_history (struct observer *observer); 853221174aSchristos extern void observer_notify_no_history (void); 863221174aSchristos 873221174aSchristos /* sync_execution_done notifications. */ 883221174aSchristos 893221174aSchristos typedef void (observer_sync_execution_done_ftype) (void); 903221174aSchristos 913221174aSchristos extern struct observer *observer_attach_sync_execution_done (observer_sync_execution_done_ftype *f); 923221174aSchristos extern void observer_detach_sync_execution_done (struct observer *observer); 933221174aSchristos extern void observer_notify_sync_execution_done (void); 943221174aSchristos 953221174aSchristos /* command_error notifications. */ 963221174aSchristos 973221174aSchristos typedef void (observer_command_error_ftype) (void); 983221174aSchristos 993221174aSchristos extern struct observer *observer_attach_command_error (observer_command_error_ftype *f); 1003221174aSchristos extern void observer_detach_command_error (struct observer *observer); 1013221174aSchristos extern void observer_notify_command_error (void); 1023221174aSchristos 103ac8695a9Schristos /* target_changed notifications. */ 104ac8695a9Schristos 105ac8695a9Schristos typedef void (observer_target_changed_ftype) (struct target_ops *target); 106ac8695a9Schristos 107ac8695a9Schristos extern struct observer *observer_attach_target_changed (observer_target_changed_ftype *f); 108ac8695a9Schristos extern void observer_detach_target_changed (struct observer *observer); 109ac8695a9Schristos extern void observer_notify_target_changed (struct target_ops *target); 110ac8695a9Schristos 111ac8695a9Schristos /* executable_changed notifications. */ 112ac8695a9Schristos 113ac8695a9Schristos typedef void (observer_executable_changed_ftype) (void); 114ac8695a9Schristos 115ac8695a9Schristos extern struct observer *observer_attach_executable_changed (observer_executable_changed_ftype *f); 116ac8695a9Schristos extern void observer_detach_executable_changed (struct observer *observer); 117ac8695a9Schristos extern void observer_notify_executable_changed (void); 118ac8695a9Schristos 119ac8695a9Schristos /* inferior_created notifications. */ 120ac8695a9Schristos 121ac8695a9Schristos typedef void (observer_inferior_created_ftype) (struct target_ops *objfile, int from_tty); 122ac8695a9Schristos 123ac8695a9Schristos extern struct observer *observer_attach_inferior_created (observer_inferior_created_ftype *f); 124ac8695a9Schristos extern void observer_detach_inferior_created (struct observer *observer); 125ac8695a9Schristos extern void observer_notify_inferior_created (struct target_ops *objfile, int from_tty); 126ac8695a9Schristos 12784e9dd17Smrg /* record_changed notifications. */ 12884e9dd17Smrg 129e110ade7Smrg typedef void (observer_record_changed_ftype) (struct inferior *inferior, int started, const char *method, const char *format); 13084e9dd17Smrg 13184e9dd17Smrg extern struct observer *observer_attach_record_changed (observer_record_changed_ftype *f); 13284e9dd17Smrg extern void observer_detach_record_changed (struct observer *observer); 133e110ade7Smrg extern void observer_notify_record_changed (struct inferior *inferior, int started, const char *method, const char *format); 13484e9dd17Smrg 135ac8695a9Schristos /* solib_loaded notifications. */ 136ac8695a9Schristos 137ac8695a9Schristos typedef void (observer_solib_loaded_ftype) (struct so_list *solib); 138ac8695a9Schristos 139ac8695a9Schristos extern struct observer *observer_attach_solib_loaded (observer_solib_loaded_ftype *f); 140ac8695a9Schristos extern void observer_detach_solib_loaded (struct observer *observer); 141ac8695a9Schristos extern void observer_notify_solib_loaded (struct so_list *solib); 142ac8695a9Schristos 143ac8695a9Schristos /* solib_unloaded notifications. */ 144ac8695a9Schristos 145ac8695a9Schristos typedef void (observer_solib_unloaded_ftype) (struct so_list *solib); 146ac8695a9Schristos 147ac8695a9Schristos extern struct observer *observer_attach_solib_unloaded (observer_solib_unloaded_ftype *f); 148ac8695a9Schristos extern void observer_detach_solib_unloaded (struct observer *observer); 149ac8695a9Schristos extern void observer_notify_solib_unloaded (struct so_list *solib); 150ac8695a9Schristos 151ac8695a9Schristos /* new_objfile notifications. */ 152ac8695a9Schristos 153ac8695a9Schristos typedef void (observer_new_objfile_ftype) (struct objfile *objfile); 154ac8695a9Schristos 155ac8695a9Schristos extern struct observer *observer_attach_new_objfile (observer_new_objfile_ftype *f); 156ac8695a9Schristos extern void observer_detach_new_objfile (struct observer *observer); 157ac8695a9Schristos extern void observer_notify_new_objfile (struct objfile *objfile); 158ac8695a9Schristos 15978ce218aSchristos /* free_objfile notifications. */ 16078ce218aSchristos 16178ce218aSchristos typedef void (observer_free_objfile_ftype) (struct objfile *objfile); 16278ce218aSchristos 16378ce218aSchristos extern struct observer *observer_attach_free_objfile (observer_free_objfile_ftype *f); 16478ce218aSchristos extern void observer_detach_free_objfile (struct observer *observer); 16578ce218aSchristos extern void observer_notify_free_objfile (struct objfile *objfile); 16678ce218aSchristos 167ac8695a9Schristos /* new_thread notifications. */ 168ac8695a9Schristos 169ac8695a9Schristos typedef void (observer_new_thread_ftype) (struct thread_info *t); 170ac8695a9Schristos 171ac8695a9Schristos extern struct observer *observer_attach_new_thread (observer_new_thread_ftype *f); 172ac8695a9Schristos extern void observer_detach_new_thread (struct observer *observer); 173ac8695a9Schristos extern void observer_notify_new_thread (struct thread_info *t); 174ac8695a9Schristos 175ac8695a9Schristos /* thread_exit notifications. */ 176ac8695a9Schristos 177ac8695a9Schristos typedef void (observer_thread_exit_ftype) (struct thread_info *t, int silent); 178ac8695a9Schristos 179ac8695a9Schristos extern struct observer *observer_attach_thread_exit (observer_thread_exit_ftype *f); 180ac8695a9Schristos extern void observer_detach_thread_exit (struct observer *observer); 181ac8695a9Schristos extern void observer_notify_thread_exit (struct thread_info *t, int silent); 182ac8695a9Schristos 183ac8695a9Schristos /* thread_stop_requested notifications. */ 184ac8695a9Schristos 185ac8695a9Schristos typedef void (observer_thread_stop_requested_ftype) (ptid_t ptid); 186ac8695a9Schristos 187ac8695a9Schristos extern struct observer *observer_attach_thread_stop_requested (observer_thread_stop_requested_ftype *f); 188ac8695a9Schristos extern void observer_detach_thread_stop_requested (struct observer *observer); 189ac8695a9Schristos extern void observer_notify_thread_stop_requested (ptid_t ptid); 190ac8695a9Schristos 191ac8695a9Schristos /* target_resumed notifications. */ 192ac8695a9Schristos 193ac8695a9Schristos typedef void (observer_target_resumed_ftype) (ptid_t ptid); 194ac8695a9Schristos 195ac8695a9Schristos extern struct observer *observer_attach_target_resumed (observer_target_resumed_ftype *f); 196ac8695a9Schristos extern void observer_detach_target_resumed (struct observer *observer); 197ac8695a9Schristos extern void observer_notify_target_resumed (ptid_t ptid); 198ac8695a9Schristos 199ac8695a9Schristos /* about_to_proceed notifications. */ 200ac8695a9Schristos 201ac8695a9Schristos typedef void (observer_about_to_proceed_ftype) (void); 202ac8695a9Schristos 203ac8695a9Schristos extern struct observer *observer_attach_about_to_proceed (observer_about_to_proceed_ftype *f); 204ac8695a9Schristos extern void observer_detach_about_to_proceed (struct observer *observer); 205ac8695a9Schristos extern void observer_notify_about_to_proceed (void); 206ac8695a9Schristos 207ac8695a9Schristos /* breakpoint_created notifications. */ 208ac8695a9Schristos 20984e9dd17Smrg typedef void (observer_breakpoint_created_ftype) (struct breakpoint *b); 210ac8695a9Schristos 211ac8695a9Schristos extern struct observer *observer_attach_breakpoint_created (observer_breakpoint_created_ftype *f); 212ac8695a9Schristos extern void observer_detach_breakpoint_created (struct observer *observer); 21384e9dd17Smrg extern void observer_notify_breakpoint_created (struct breakpoint *b); 214ac8695a9Schristos 215ac8695a9Schristos /* breakpoint_deleted notifications. */ 216ac8695a9Schristos 21784e9dd17Smrg typedef void (observer_breakpoint_deleted_ftype) (struct breakpoint *b); 218ac8695a9Schristos 219ac8695a9Schristos extern struct observer *observer_attach_breakpoint_deleted (observer_breakpoint_deleted_ftype *f); 220ac8695a9Schristos extern void observer_detach_breakpoint_deleted (struct observer *observer); 22184e9dd17Smrg extern void observer_notify_breakpoint_deleted (struct breakpoint *b); 222ac8695a9Schristos 223ac8695a9Schristos /* breakpoint_modified notifications. */ 224ac8695a9Schristos 22584e9dd17Smrg typedef void (observer_breakpoint_modified_ftype) (struct breakpoint *b); 226ac8695a9Schristos 227ac8695a9Schristos extern struct observer *observer_attach_breakpoint_modified (observer_breakpoint_modified_ftype *f); 228ac8695a9Schristos extern void observer_detach_breakpoint_modified (struct observer *observer); 22984e9dd17Smrg extern void observer_notify_breakpoint_modified (struct breakpoint *b); 230ac8695a9Schristos 23184e9dd17Smrg /* traceframe_changed notifications. */ 232ac8695a9Schristos 23384e9dd17Smrg typedef void (observer_traceframe_changed_ftype) (int tfnum, int tpnum); 234ac8695a9Schristos 23584e9dd17Smrg extern struct observer *observer_attach_traceframe_changed (observer_traceframe_changed_ftype *f); 23684e9dd17Smrg extern void observer_detach_traceframe_changed (struct observer *observer); 23784e9dd17Smrg extern void observer_notify_traceframe_changed (int tfnum, int tpnum); 238ac8695a9Schristos 239ac8695a9Schristos /* architecture_changed notifications. */ 240ac8695a9Schristos 241ac8695a9Schristos typedef void (observer_architecture_changed_ftype) (struct gdbarch *newarch); 242ac8695a9Schristos 243ac8695a9Schristos extern struct observer *observer_attach_architecture_changed (observer_architecture_changed_ftype *f); 244ac8695a9Schristos extern void observer_detach_architecture_changed (struct observer *observer); 245ac8695a9Schristos extern void observer_notify_architecture_changed (struct gdbarch *newarch); 246ac8695a9Schristos 247ac8695a9Schristos /* thread_ptid_changed notifications. */ 248ac8695a9Schristos 249ac8695a9Schristos typedef void (observer_thread_ptid_changed_ftype) (ptid_t old_ptid, ptid_t new_ptid); 250ac8695a9Schristos 251ac8695a9Schristos extern struct observer *observer_attach_thread_ptid_changed (observer_thread_ptid_changed_ftype *f); 252ac8695a9Schristos extern void observer_detach_thread_ptid_changed (struct observer *observer); 253ac8695a9Schristos extern void observer_notify_thread_ptid_changed (ptid_t old_ptid, ptid_t new_ptid); 254ac8695a9Schristos 255ac8695a9Schristos /* inferior_added notifications. */ 256ac8695a9Schristos 257ac8695a9Schristos typedef void (observer_inferior_added_ftype) (struct inferior *inf); 258ac8695a9Schristos 259ac8695a9Schristos extern struct observer *observer_attach_inferior_added (observer_inferior_added_ftype *f); 260ac8695a9Schristos extern void observer_detach_inferior_added (struct observer *observer); 261ac8695a9Schristos extern void observer_notify_inferior_added (struct inferior *inf); 262ac8695a9Schristos 263ac8695a9Schristos /* inferior_appeared notifications. */ 264ac8695a9Schristos 265ac8695a9Schristos typedef void (observer_inferior_appeared_ftype) (struct inferior *inf); 266ac8695a9Schristos 267ac8695a9Schristos extern struct observer *observer_attach_inferior_appeared (observer_inferior_appeared_ftype *f); 268ac8695a9Schristos extern void observer_detach_inferior_appeared (struct observer *observer); 269ac8695a9Schristos extern void observer_notify_inferior_appeared (struct inferior *inf); 270ac8695a9Schristos 271ac8695a9Schristos /* inferior_exit notifications. */ 272ac8695a9Schristos 273ac8695a9Schristos typedef void (observer_inferior_exit_ftype) (struct inferior *inf); 274ac8695a9Schristos 275ac8695a9Schristos extern struct observer *observer_attach_inferior_exit (observer_inferior_exit_ftype *f); 276ac8695a9Schristos extern void observer_detach_inferior_exit (struct observer *observer); 277ac8695a9Schristos extern void observer_notify_inferior_exit (struct inferior *inf); 278ac8695a9Schristos 279ac8695a9Schristos /* inferior_removed notifications. */ 280ac8695a9Schristos 281ac8695a9Schristos typedef void (observer_inferior_removed_ftype) (struct inferior *inf); 282ac8695a9Schristos 283ac8695a9Schristos extern struct observer *observer_attach_inferior_removed (observer_inferior_removed_ftype *f); 284ac8695a9Schristos extern void observer_detach_inferior_removed (struct observer *observer); 285ac8695a9Schristos extern void observer_notify_inferior_removed (struct inferior *inf); 286ac8695a9Schristos 287ac8695a9Schristos /* memory_changed notifications. */ 288ac8695a9Schristos 28984e9dd17Smrg typedef void (observer_memory_changed_ftype) (struct inferior *inferior, CORE_ADDR addr, ssize_t len, const bfd_byte *data); 290ac8695a9Schristos 291ac8695a9Schristos extern struct observer *observer_attach_memory_changed (observer_memory_changed_ftype *f); 292ac8695a9Schristos extern void observer_detach_memory_changed (struct observer *observer); 29384e9dd17Smrg extern void observer_notify_memory_changed (struct inferior *inferior, CORE_ADDR addr, ssize_t len, const bfd_byte *data); 29484e9dd17Smrg 29584e9dd17Smrg /* before_prompt notifications. */ 29684e9dd17Smrg 29784e9dd17Smrg typedef void (observer_before_prompt_ftype) (const char *current_prompt); 29884e9dd17Smrg 29984e9dd17Smrg extern struct observer *observer_attach_before_prompt (observer_before_prompt_ftype *f); 30084e9dd17Smrg extern void observer_detach_before_prompt (struct observer *observer); 30184e9dd17Smrg extern void observer_notify_before_prompt (const char *current_prompt); 30284e9dd17Smrg 30384e9dd17Smrg /* gdb_datadir_changed notifications. */ 30484e9dd17Smrg 30584e9dd17Smrg typedef void (observer_gdb_datadir_changed_ftype) (void); 30684e9dd17Smrg 30784e9dd17Smrg extern struct observer *observer_attach_gdb_datadir_changed (observer_gdb_datadir_changed_ftype *f); 30884e9dd17Smrg extern void observer_detach_gdb_datadir_changed (struct observer *observer); 30984e9dd17Smrg extern void observer_notify_gdb_datadir_changed (void); 31084e9dd17Smrg 31184e9dd17Smrg /* command_param_changed notifications. */ 31284e9dd17Smrg 31384e9dd17Smrg typedef void (observer_command_param_changed_ftype) (const char *param, const char *value); 31484e9dd17Smrg 31584e9dd17Smrg extern struct observer *observer_attach_command_param_changed (observer_command_param_changed_ftype *f); 31684e9dd17Smrg extern void observer_detach_command_param_changed (struct observer *observer); 31784e9dd17Smrg extern void observer_notify_command_param_changed (const char *param, const char *value); 31884e9dd17Smrg 31984e9dd17Smrg /* tsv_created notifications. */ 32084e9dd17Smrg 32184e9dd17Smrg typedef void (observer_tsv_created_ftype) (const struct trace_state_variable *tsv); 32284e9dd17Smrg 32384e9dd17Smrg extern struct observer *observer_attach_tsv_created (observer_tsv_created_ftype *f); 32484e9dd17Smrg extern void observer_detach_tsv_created (struct observer *observer); 32584e9dd17Smrg extern void observer_notify_tsv_created (const struct trace_state_variable *tsv); 32684e9dd17Smrg 32784e9dd17Smrg /* tsv_deleted notifications. */ 32884e9dd17Smrg 32984e9dd17Smrg typedef void (observer_tsv_deleted_ftype) (const struct trace_state_variable *tsv); 33084e9dd17Smrg 33184e9dd17Smrg extern struct observer *observer_attach_tsv_deleted (observer_tsv_deleted_ftype *f); 33284e9dd17Smrg extern void observer_detach_tsv_deleted (struct observer *observer); 33384e9dd17Smrg extern void observer_notify_tsv_deleted (const struct trace_state_variable *tsv); 33484e9dd17Smrg 33584e9dd17Smrg /* tsv_modified notifications. */ 33684e9dd17Smrg 33784e9dd17Smrg typedef void (observer_tsv_modified_ftype) (const struct trace_state_variable *tsv); 33884e9dd17Smrg 33984e9dd17Smrg extern struct observer *observer_attach_tsv_modified (observer_tsv_modified_ftype *f); 34084e9dd17Smrg extern void observer_detach_tsv_modified (struct observer *observer); 34184e9dd17Smrg extern void observer_notify_tsv_modified (const struct trace_state_variable *tsv); 342ac8695a9Schristos 3433221174aSchristos /* inferior_call_pre notifications. */ 3443221174aSchristos 3453221174aSchristos typedef void (observer_inferior_call_pre_ftype) (ptid_t thread, CORE_ADDR address); 3463221174aSchristos 3473221174aSchristos extern struct observer *observer_attach_inferior_call_pre (observer_inferior_call_pre_ftype *f); 3483221174aSchristos extern void observer_detach_inferior_call_pre (struct observer *observer); 3493221174aSchristos extern void observer_notify_inferior_call_pre (ptid_t thread, CORE_ADDR address); 3503221174aSchristos 3513221174aSchristos /* inferior_call_post notifications. */ 3523221174aSchristos 3533221174aSchristos typedef void (observer_inferior_call_post_ftype) (ptid_t thread, CORE_ADDR address); 3543221174aSchristos 3553221174aSchristos extern struct observer *observer_attach_inferior_call_post (observer_inferior_call_post_ftype *f); 3563221174aSchristos extern void observer_detach_inferior_call_post (struct observer *observer); 3573221174aSchristos extern void observer_notify_inferior_call_post (ptid_t thread, CORE_ADDR address); 3583221174aSchristos 3593221174aSchristos /* register_changed notifications. */ 3603221174aSchristos 3613221174aSchristos typedef void (observer_register_changed_ftype) (struct frame_info *frame, int regnum); 3623221174aSchristos 3633221174aSchristos extern struct observer *observer_attach_register_changed (observer_register_changed_ftype *f); 3643221174aSchristos extern void observer_detach_register_changed (struct observer *observer); 3653221174aSchristos extern void observer_notify_register_changed (struct frame_info *frame, int regnum); 3663221174aSchristos 367ac8695a9Schristos /* test_notification notifications. */ 368ac8695a9Schristos 369ac8695a9Schristos typedef void (observer_test_notification_ftype) (int somearg); 370ac8695a9Schristos 371ac8695a9Schristos extern struct observer *observer_attach_test_notification (observer_test_notification_ftype *f); 372ac8695a9Schristos extern void observer_detach_test_notification (struct observer *observer); 373ac8695a9Schristos extern void observer_notify_test_notification (int somearg); 374ac8695a9Schristos 375e110ade7Smrg /* user_selected_context_changed notifications. */ 376e110ade7Smrg 377e110ade7Smrg typedef void (observer_user_selected_context_changed_ftype) (user_selected_what selection); 378e110ade7Smrg 379e110ade7Smrg extern struct observer *observer_attach_user_selected_context_changed (observer_user_selected_context_changed_ftype *f); 380e110ade7Smrg extern void observer_detach_user_selected_context_changed (struct observer *observer); 381e110ade7Smrg extern void observer_notify_user_selected_context_changed (user_selected_what selection); 382e110ade7Smrg 383ac8695a9Schristos #endif /* OBSERVER_H */ 384