1cfa2879dSchristos /* This file is automatically generated. DO NOT EDIT! */ 2*8b7331e5Schristos /* 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 */ 4cfa2879dSchristos 5cfa2879dSchristos /* GDB Notifications to Observers. 6cfa2879dSchristos 7*8b7331e5Schristos Copyright (C) 2004-2017 Free Software Foundation, Inc. 8cfa2879dSchristos 9cfa2879dSchristos This file is part of GDB. 10cfa2879dSchristos 11cfa2879dSchristos This program is free software; you can redistribute it and/or modify 12cfa2879dSchristos it under the terms of the GNU General Public License as published by 13cfa2879dSchristos the Free Software Foundation; either version 3 of the License, or 14cfa2879dSchristos (at your option) any later version. 15cfa2879dSchristos 16cfa2879dSchristos This program is distributed in the hope that it will be useful, 17cfa2879dSchristos but WITHOUT ANY WARRANTY; without even the implied warranty of 18cfa2879dSchristos MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19cfa2879dSchristos GNU General Public License for more details. 20cfa2879dSchristos 21cfa2879dSchristos You should have received a copy of the GNU General Public License 22cfa2879dSchristos along with this program. If not, see <http://www.gnu.org/licenses/>. 23cfa2879dSchristos 24cfa2879dSchristos -- 25cfa2879dSchristos 26cfa2879dSchristos This file was generated using observer.sh and observer.texi. */ 27cfa2879dSchristos 28cfa2879dSchristos #ifndef OBSERVER_H 29cfa2879dSchristos #define OBSERVER_H 30cfa2879dSchristos 31cfa2879dSchristos struct observer; 32cfa2879dSchristos struct bpstats; 33cfa2879dSchristos struct so_list; 34cfa2879dSchristos struct objfile; 35cfa2879dSchristos struct thread_info; 36043b2112Sskrll struct inferior; 37043b2112Sskrll struct trace_state_variable; 38cfa2879dSchristos 39cfa2879dSchristos /* normal_stop notifications. */ 40cfa2879dSchristos 41cfa2879dSchristos typedef void (observer_normal_stop_ftype) (struct bpstats *bs, int print_frame); 42cfa2879dSchristos 43cfa2879dSchristos extern struct observer *observer_attach_normal_stop (observer_normal_stop_ftype *f); 44cfa2879dSchristos extern void observer_detach_normal_stop (struct observer *observer); 45cfa2879dSchristos extern void observer_notify_normal_stop (struct bpstats *bs, int print_frame); 46cfa2879dSchristos 473954c004Schristos /* signal_received notifications. */ 483954c004Schristos 493954c004Schristos typedef void (observer_signal_received_ftype) (enum gdb_signal siggnal); 503954c004Schristos 513954c004Schristos extern struct observer *observer_attach_signal_received (observer_signal_received_ftype *f); 523954c004Schristos extern void observer_detach_signal_received (struct observer *observer); 533954c004Schristos extern void observer_notify_signal_received (enum gdb_signal siggnal); 543954c004Schristos 553954c004Schristos /* end_stepping_range notifications. */ 563954c004Schristos 573954c004Schristos typedef void (observer_end_stepping_range_ftype) (void); 583954c004Schristos 593954c004Schristos extern struct observer *observer_attach_end_stepping_range (observer_end_stepping_range_ftype *f); 603954c004Schristos extern void observer_detach_end_stepping_range (struct observer *observer); 613954c004Schristos extern void observer_notify_end_stepping_range (void); 623954c004Schristos 633954c004Schristos /* signal_exited notifications. */ 643954c004Schristos 653954c004Schristos typedef void (observer_signal_exited_ftype) (enum gdb_signal siggnal); 663954c004Schristos 673954c004Schristos extern struct observer *observer_attach_signal_exited (observer_signal_exited_ftype *f); 683954c004Schristos extern void observer_detach_signal_exited (struct observer *observer); 693954c004Schristos extern void observer_notify_signal_exited (enum gdb_signal siggnal); 703954c004Schristos 713954c004Schristos /* exited notifications. */ 723954c004Schristos 733954c004Schristos typedef void (observer_exited_ftype) (int exitstatus); 743954c004Schristos 753954c004Schristos extern struct observer *observer_attach_exited (observer_exited_ftype *f); 763954c004Schristos extern void observer_detach_exited (struct observer *observer); 773954c004Schristos extern void observer_notify_exited (int exitstatus); 783954c004Schristos 793954c004Schristos /* no_history notifications. */ 803954c004Schristos 813954c004Schristos typedef void (observer_no_history_ftype) (void); 823954c004Schristos 833954c004Schristos extern struct observer *observer_attach_no_history (observer_no_history_ftype *f); 843954c004Schristos extern void observer_detach_no_history (struct observer *observer); 853954c004Schristos extern void observer_notify_no_history (void); 863954c004Schristos 873954c004Schristos /* sync_execution_done notifications. */ 883954c004Schristos 893954c004Schristos typedef void (observer_sync_execution_done_ftype) (void); 903954c004Schristos 913954c004Schristos extern struct observer *observer_attach_sync_execution_done (observer_sync_execution_done_ftype *f); 923954c004Schristos extern void observer_detach_sync_execution_done (struct observer *observer); 933954c004Schristos extern void observer_notify_sync_execution_done (void); 943954c004Schristos 953954c004Schristos /* command_error notifications. */ 963954c004Schristos 973954c004Schristos typedef void (observer_command_error_ftype) (void); 983954c004Schristos 993954c004Schristos extern struct observer *observer_attach_command_error (observer_command_error_ftype *f); 1003954c004Schristos extern void observer_detach_command_error (struct observer *observer); 1013954c004Schristos extern void observer_notify_command_error (void); 1023954c004Schristos 103cfa2879dSchristos /* target_changed notifications. */ 104cfa2879dSchristos 105cfa2879dSchristos typedef void (observer_target_changed_ftype) (struct target_ops *target); 106cfa2879dSchristos 107cfa2879dSchristos extern struct observer *observer_attach_target_changed (observer_target_changed_ftype *f); 108cfa2879dSchristos extern void observer_detach_target_changed (struct observer *observer); 109cfa2879dSchristos extern void observer_notify_target_changed (struct target_ops *target); 110cfa2879dSchristos 111cfa2879dSchristos /* executable_changed notifications. */ 112cfa2879dSchristos 113cfa2879dSchristos typedef void (observer_executable_changed_ftype) (void); 114cfa2879dSchristos 115cfa2879dSchristos extern struct observer *observer_attach_executable_changed (observer_executable_changed_ftype *f); 116cfa2879dSchristos extern void observer_detach_executable_changed (struct observer *observer); 117cfa2879dSchristos extern void observer_notify_executable_changed (void); 118cfa2879dSchristos 119cfa2879dSchristos /* inferior_created notifications. */ 120cfa2879dSchristos 121cfa2879dSchristos typedef void (observer_inferior_created_ftype) (struct target_ops *objfile, int from_tty); 122cfa2879dSchristos 123cfa2879dSchristos extern struct observer *observer_attach_inferior_created (observer_inferior_created_ftype *f); 124cfa2879dSchristos extern void observer_detach_inferior_created (struct observer *observer); 125cfa2879dSchristos extern void observer_notify_inferior_created (struct target_ops *objfile, int from_tty); 126cfa2879dSchristos 127043b2112Sskrll /* record_changed notifications. */ 128043b2112Sskrll 1292920ca48Sskrll typedef void (observer_record_changed_ftype) (struct inferior *inferior, int started, const char *method, const char *format); 130043b2112Sskrll 131043b2112Sskrll extern struct observer *observer_attach_record_changed (observer_record_changed_ftype *f); 132043b2112Sskrll extern void observer_detach_record_changed (struct observer *observer); 1332920ca48Sskrll extern void observer_notify_record_changed (struct inferior *inferior, int started, const char *method, const char *format); 134043b2112Sskrll 135cfa2879dSchristos /* solib_loaded notifications. */ 136cfa2879dSchristos 137cfa2879dSchristos typedef void (observer_solib_loaded_ftype) (struct so_list *solib); 138cfa2879dSchristos 139cfa2879dSchristos extern struct observer *observer_attach_solib_loaded (observer_solib_loaded_ftype *f); 140cfa2879dSchristos extern void observer_detach_solib_loaded (struct observer *observer); 141cfa2879dSchristos extern void observer_notify_solib_loaded (struct so_list *solib); 142cfa2879dSchristos 143cfa2879dSchristos /* solib_unloaded notifications. */ 144cfa2879dSchristos 145cfa2879dSchristos typedef void (observer_solib_unloaded_ftype) (struct so_list *solib); 146cfa2879dSchristos 147cfa2879dSchristos extern struct observer *observer_attach_solib_unloaded (observer_solib_unloaded_ftype *f); 148cfa2879dSchristos extern void observer_detach_solib_unloaded (struct observer *observer); 149cfa2879dSchristos extern void observer_notify_solib_unloaded (struct so_list *solib); 150cfa2879dSchristos 151cfa2879dSchristos /* new_objfile notifications. */ 152cfa2879dSchristos 153cfa2879dSchristos typedef void (observer_new_objfile_ftype) (struct objfile *objfile); 154cfa2879dSchristos 155cfa2879dSchristos extern struct observer *observer_attach_new_objfile (observer_new_objfile_ftype *f); 156cfa2879dSchristos extern void observer_detach_new_objfile (struct observer *observer); 157cfa2879dSchristos extern void observer_notify_new_objfile (struct objfile *objfile); 158cfa2879dSchristos 159d1fefe4bSchristos /* free_objfile notifications. */ 160d1fefe4bSchristos 161d1fefe4bSchristos typedef void (observer_free_objfile_ftype) (struct objfile *objfile); 162d1fefe4bSchristos 163d1fefe4bSchristos extern struct observer *observer_attach_free_objfile (observer_free_objfile_ftype *f); 164d1fefe4bSchristos extern void observer_detach_free_objfile (struct observer *observer); 165d1fefe4bSchristos extern void observer_notify_free_objfile (struct objfile *objfile); 166d1fefe4bSchristos 167cfa2879dSchristos /* new_thread notifications. */ 168cfa2879dSchristos 169cfa2879dSchristos typedef void (observer_new_thread_ftype) (struct thread_info *t); 170cfa2879dSchristos 171cfa2879dSchristos extern struct observer *observer_attach_new_thread (observer_new_thread_ftype *f); 172cfa2879dSchristos extern void observer_detach_new_thread (struct observer *observer); 173cfa2879dSchristos extern void observer_notify_new_thread (struct thread_info *t); 174cfa2879dSchristos 175cfa2879dSchristos /* thread_exit notifications. */ 176cfa2879dSchristos 177cfa2879dSchristos typedef void (observer_thread_exit_ftype) (struct thread_info *t, int silent); 178cfa2879dSchristos 179cfa2879dSchristos extern struct observer *observer_attach_thread_exit (observer_thread_exit_ftype *f); 180cfa2879dSchristos extern void observer_detach_thread_exit (struct observer *observer); 181cfa2879dSchristos extern void observer_notify_thread_exit (struct thread_info *t, int silent); 182cfa2879dSchristos 183cfa2879dSchristos /* thread_stop_requested notifications. */ 184cfa2879dSchristos 185cfa2879dSchristos typedef void (observer_thread_stop_requested_ftype) (ptid_t ptid); 186cfa2879dSchristos 187cfa2879dSchristos extern struct observer *observer_attach_thread_stop_requested (observer_thread_stop_requested_ftype *f); 188cfa2879dSchristos extern void observer_detach_thread_stop_requested (struct observer *observer); 189cfa2879dSchristos extern void observer_notify_thread_stop_requested (ptid_t ptid); 190cfa2879dSchristos 191cfa2879dSchristos /* target_resumed notifications. */ 192cfa2879dSchristos 193cfa2879dSchristos typedef void (observer_target_resumed_ftype) (ptid_t ptid); 194cfa2879dSchristos 195cfa2879dSchristos extern struct observer *observer_attach_target_resumed (observer_target_resumed_ftype *f); 196cfa2879dSchristos extern void observer_detach_target_resumed (struct observer *observer); 197cfa2879dSchristos extern void observer_notify_target_resumed (ptid_t ptid); 198cfa2879dSchristos 199cfa2879dSchristos /* about_to_proceed notifications. */ 200cfa2879dSchristos 201cfa2879dSchristos typedef void (observer_about_to_proceed_ftype) (void); 202cfa2879dSchristos 203cfa2879dSchristos extern struct observer *observer_attach_about_to_proceed (observer_about_to_proceed_ftype *f); 204cfa2879dSchristos extern void observer_detach_about_to_proceed (struct observer *observer); 205cfa2879dSchristos extern void observer_notify_about_to_proceed (void); 206cfa2879dSchristos 207cfa2879dSchristos /* breakpoint_created notifications. */ 208cfa2879dSchristos 209043b2112Sskrll typedef void (observer_breakpoint_created_ftype) (struct breakpoint *b); 210cfa2879dSchristos 211cfa2879dSchristos extern struct observer *observer_attach_breakpoint_created (observer_breakpoint_created_ftype *f); 212cfa2879dSchristos extern void observer_detach_breakpoint_created (struct observer *observer); 213043b2112Sskrll extern void observer_notify_breakpoint_created (struct breakpoint *b); 214cfa2879dSchristos 215cfa2879dSchristos /* breakpoint_deleted notifications. */ 216cfa2879dSchristos 217043b2112Sskrll typedef void (observer_breakpoint_deleted_ftype) (struct breakpoint *b); 218cfa2879dSchristos 219cfa2879dSchristos extern struct observer *observer_attach_breakpoint_deleted (observer_breakpoint_deleted_ftype *f); 220cfa2879dSchristos extern void observer_detach_breakpoint_deleted (struct observer *observer); 221043b2112Sskrll extern void observer_notify_breakpoint_deleted (struct breakpoint *b); 222cfa2879dSchristos 223cfa2879dSchristos /* breakpoint_modified notifications. */ 224cfa2879dSchristos 225043b2112Sskrll typedef void (observer_breakpoint_modified_ftype) (struct breakpoint *b); 226cfa2879dSchristos 227cfa2879dSchristos extern struct observer *observer_attach_breakpoint_modified (observer_breakpoint_modified_ftype *f); 228cfa2879dSchristos extern void observer_detach_breakpoint_modified (struct observer *observer); 229043b2112Sskrll extern void observer_notify_breakpoint_modified (struct breakpoint *b); 230cfa2879dSchristos 231043b2112Sskrll /* traceframe_changed notifications. */ 232cfa2879dSchristos 233043b2112Sskrll typedef void (observer_traceframe_changed_ftype) (int tfnum, int tpnum); 234cfa2879dSchristos 235043b2112Sskrll extern struct observer *observer_attach_traceframe_changed (observer_traceframe_changed_ftype *f); 236043b2112Sskrll extern void observer_detach_traceframe_changed (struct observer *observer); 237043b2112Sskrll extern void observer_notify_traceframe_changed (int tfnum, int tpnum); 238cfa2879dSchristos 239cfa2879dSchristos /* architecture_changed notifications. */ 240cfa2879dSchristos 241cfa2879dSchristos typedef void (observer_architecture_changed_ftype) (struct gdbarch *newarch); 242cfa2879dSchristos 243cfa2879dSchristos extern struct observer *observer_attach_architecture_changed (observer_architecture_changed_ftype *f); 244cfa2879dSchristos extern void observer_detach_architecture_changed (struct observer *observer); 245cfa2879dSchristos extern void observer_notify_architecture_changed (struct gdbarch *newarch); 246cfa2879dSchristos 247cfa2879dSchristos /* thread_ptid_changed notifications. */ 248cfa2879dSchristos 249cfa2879dSchristos typedef void (observer_thread_ptid_changed_ftype) (ptid_t old_ptid, ptid_t new_ptid); 250cfa2879dSchristos 251cfa2879dSchristos extern struct observer *observer_attach_thread_ptid_changed (observer_thread_ptid_changed_ftype *f); 252cfa2879dSchristos extern void observer_detach_thread_ptid_changed (struct observer *observer); 253cfa2879dSchristos extern void observer_notify_thread_ptid_changed (ptid_t old_ptid, ptid_t new_ptid); 254cfa2879dSchristos 255cfa2879dSchristos /* inferior_added notifications. */ 256cfa2879dSchristos 257cfa2879dSchristos typedef void (observer_inferior_added_ftype) (struct inferior *inf); 258cfa2879dSchristos 259cfa2879dSchristos extern struct observer *observer_attach_inferior_added (observer_inferior_added_ftype *f); 260cfa2879dSchristos extern void observer_detach_inferior_added (struct observer *observer); 261cfa2879dSchristos extern void observer_notify_inferior_added (struct inferior *inf); 262cfa2879dSchristos 263cfa2879dSchristos /* inferior_appeared notifications. */ 264cfa2879dSchristos 265cfa2879dSchristos typedef void (observer_inferior_appeared_ftype) (struct inferior *inf); 266cfa2879dSchristos 267cfa2879dSchristos extern struct observer *observer_attach_inferior_appeared (observer_inferior_appeared_ftype *f); 268cfa2879dSchristos extern void observer_detach_inferior_appeared (struct observer *observer); 269cfa2879dSchristos extern void observer_notify_inferior_appeared (struct inferior *inf); 270cfa2879dSchristos 271cfa2879dSchristos /* inferior_exit notifications. */ 272cfa2879dSchristos 273cfa2879dSchristos typedef void (observer_inferior_exit_ftype) (struct inferior *inf); 274cfa2879dSchristos 275cfa2879dSchristos extern struct observer *observer_attach_inferior_exit (observer_inferior_exit_ftype *f); 276cfa2879dSchristos extern void observer_detach_inferior_exit (struct observer *observer); 277cfa2879dSchristos extern void observer_notify_inferior_exit (struct inferior *inf); 278cfa2879dSchristos 279cfa2879dSchristos /* inferior_removed notifications. */ 280cfa2879dSchristos 281cfa2879dSchristos typedef void (observer_inferior_removed_ftype) (struct inferior *inf); 282cfa2879dSchristos 283cfa2879dSchristos extern struct observer *observer_attach_inferior_removed (observer_inferior_removed_ftype *f); 284cfa2879dSchristos extern void observer_detach_inferior_removed (struct observer *observer); 285cfa2879dSchristos extern void observer_notify_inferior_removed (struct inferior *inf); 286cfa2879dSchristos 287cfa2879dSchristos /* memory_changed notifications. */ 288cfa2879dSchristos 289043b2112Sskrll typedef void (observer_memory_changed_ftype) (struct inferior *inferior, CORE_ADDR addr, ssize_t len, const bfd_byte *data); 290cfa2879dSchristos 291cfa2879dSchristos extern struct observer *observer_attach_memory_changed (observer_memory_changed_ftype *f); 292cfa2879dSchristos extern void observer_detach_memory_changed (struct observer *observer); 293043b2112Sskrll extern void observer_notify_memory_changed (struct inferior *inferior, CORE_ADDR addr, ssize_t len, const bfd_byte *data); 294043b2112Sskrll 295043b2112Sskrll /* before_prompt notifications. */ 296043b2112Sskrll 297043b2112Sskrll typedef void (observer_before_prompt_ftype) (const char *current_prompt); 298043b2112Sskrll 299043b2112Sskrll extern struct observer *observer_attach_before_prompt (observer_before_prompt_ftype *f); 300043b2112Sskrll extern void observer_detach_before_prompt (struct observer *observer); 301043b2112Sskrll extern void observer_notify_before_prompt (const char *current_prompt); 302043b2112Sskrll 303043b2112Sskrll /* gdb_datadir_changed notifications. */ 304043b2112Sskrll 305043b2112Sskrll typedef void (observer_gdb_datadir_changed_ftype) (void); 306043b2112Sskrll 307043b2112Sskrll extern struct observer *observer_attach_gdb_datadir_changed (observer_gdb_datadir_changed_ftype *f); 308043b2112Sskrll extern void observer_detach_gdb_datadir_changed (struct observer *observer); 309043b2112Sskrll extern void observer_notify_gdb_datadir_changed (void); 310043b2112Sskrll 311043b2112Sskrll /* command_param_changed notifications. */ 312043b2112Sskrll 313043b2112Sskrll typedef void (observer_command_param_changed_ftype) (const char *param, const char *value); 314043b2112Sskrll 315043b2112Sskrll extern struct observer *observer_attach_command_param_changed (observer_command_param_changed_ftype *f); 316043b2112Sskrll extern void observer_detach_command_param_changed (struct observer *observer); 317043b2112Sskrll extern void observer_notify_command_param_changed (const char *param, const char *value); 318043b2112Sskrll 319043b2112Sskrll /* tsv_created notifications. */ 320043b2112Sskrll 321043b2112Sskrll typedef void (observer_tsv_created_ftype) (const struct trace_state_variable *tsv); 322043b2112Sskrll 323043b2112Sskrll extern struct observer *observer_attach_tsv_created (observer_tsv_created_ftype *f); 324043b2112Sskrll extern void observer_detach_tsv_created (struct observer *observer); 325043b2112Sskrll extern void observer_notify_tsv_created (const struct trace_state_variable *tsv); 326043b2112Sskrll 327043b2112Sskrll /* tsv_deleted notifications. */ 328043b2112Sskrll 329043b2112Sskrll typedef void (observer_tsv_deleted_ftype) (const struct trace_state_variable *tsv); 330043b2112Sskrll 331043b2112Sskrll extern struct observer *observer_attach_tsv_deleted (observer_tsv_deleted_ftype *f); 332043b2112Sskrll extern void observer_detach_tsv_deleted (struct observer *observer); 333043b2112Sskrll extern void observer_notify_tsv_deleted (const struct trace_state_variable *tsv); 334043b2112Sskrll 335043b2112Sskrll /* tsv_modified notifications. */ 336043b2112Sskrll 337043b2112Sskrll typedef void (observer_tsv_modified_ftype) (const struct trace_state_variable *tsv); 338043b2112Sskrll 339043b2112Sskrll extern struct observer *observer_attach_tsv_modified (observer_tsv_modified_ftype *f); 340043b2112Sskrll extern void observer_detach_tsv_modified (struct observer *observer); 341043b2112Sskrll extern void observer_notify_tsv_modified (const struct trace_state_variable *tsv); 342cfa2879dSchristos 3433954c004Schristos /* inferior_call_pre notifications. */ 3443954c004Schristos 3453954c004Schristos typedef void (observer_inferior_call_pre_ftype) (ptid_t thread, CORE_ADDR address); 3463954c004Schristos 3473954c004Schristos extern struct observer *observer_attach_inferior_call_pre (observer_inferior_call_pre_ftype *f); 3483954c004Schristos extern void observer_detach_inferior_call_pre (struct observer *observer); 3493954c004Schristos extern void observer_notify_inferior_call_pre (ptid_t thread, CORE_ADDR address); 3503954c004Schristos 3513954c004Schristos /* inferior_call_post notifications. */ 3523954c004Schristos 3533954c004Schristos typedef void (observer_inferior_call_post_ftype) (ptid_t thread, CORE_ADDR address); 3543954c004Schristos 3553954c004Schristos extern struct observer *observer_attach_inferior_call_post (observer_inferior_call_post_ftype *f); 3563954c004Schristos extern void observer_detach_inferior_call_post (struct observer *observer); 3573954c004Schristos extern void observer_notify_inferior_call_post (ptid_t thread, CORE_ADDR address); 3583954c004Schristos 3593954c004Schristos /* register_changed notifications. */ 3603954c004Schristos 3613954c004Schristos typedef void (observer_register_changed_ftype) (struct frame_info *frame, int regnum); 3623954c004Schristos 3633954c004Schristos extern struct observer *observer_attach_register_changed (observer_register_changed_ftype *f); 3643954c004Schristos extern void observer_detach_register_changed (struct observer *observer); 3653954c004Schristos extern void observer_notify_register_changed (struct frame_info *frame, int regnum); 3663954c004Schristos 367cfa2879dSchristos /* test_notification notifications. */ 368cfa2879dSchristos 369cfa2879dSchristos typedef void (observer_test_notification_ftype) (int somearg); 370cfa2879dSchristos 371cfa2879dSchristos extern struct observer *observer_attach_test_notification (observer_test_notification_ftype *f); 372cfa2879dSchristos extern void observer_detach_test_notification (struct observer *observer); 373cfa2879dSchristos extern void observer_notify_test_notification (int somearg); 374cfa2879dSchristos 3752920ca48Sskrll /* user_selected_context_changed notifications. */ 3762920ca48Sskrll 3772920ca48Sskrll typedef void (observer_user_selected_context_changed_ftype) (user_selected_what selection); 3782920ca48Sskrll 3792920ca48Sskrll extern struct observer *observer_attach_user_selected_context_changed (observer_user_selected_context_changed_ftype *f); 3802920ca48Sskrll extern void observer_detach_user_selected_context_changed (struct observer *observer); 3812920ca48Sskrll extern void observer_notify_user_selected_context_changed (user_selected_what selection); 3822920ca48Sskrll 383cfa2879dSchristos #endif /* OBSERVER_H */ 384