1ba6b4c93Schristos /* This file is automatically generated. DO NOT EDIT! */ 23caff986Smrg /* 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 */ 4ba6b4c93Schristos 5ba6b4c93Schristos /* GDB Notifications to Observers. 6ba6b4c93Schristos 7*8b7331e5Schristos Copyright (C) 2004-2017 Free Software Foundation, Inc. 8ba6b4c93Schristos 9ba6b4c93Schristos This file is part of GDB. 10ba6b4c93Schristos 11ba6b4c93Schristos This program is free software; you can redistribute it and/or modify 12ba6b4c93Schristos it under the terms of the GNU General Public License as published by 13ba6b4c93Schristos the Free Software Foundation; either version 3 of the License, or 14ba6b4c93Schristos (at your option) any later version. 15ba6b4c93Schristos 16ba6b4c93Schristos This program is distributed in the hope that it will be useful, 17ba6b4c93Schristos but WITHOUT ANY WARRANTY; without even the implied warranty of 18ba6b4c93Schristos MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19ba6b4c93Schristos GNU General Public License for more details. 20ba6b4c93Schristos 21ba6b4c93Schristos You should have received a copy of the GNU General Public License 22ba6b4c93Schristos along with this program. If not, see <http://www.gnu.org/licenses/>. 23ba6b4c93Schristos 24ba6b4c93Schristos -- 25ba6b4c93Schristos 26ba6b4c93Schristos This file was generated using observer.sh and observer.texi. */ 27ba6b4c93Schristos 28ba6b4c93Schristos #ifndef OBSERVER_H 29ba6b4c93Schristos #define OBSERVER_H 30ba6b4c93Schristos 31ba6b4c93Schristos struct observer; 32ba6b4c93Schristos struct bpstats; 33ba6b4c93Schristos struct so_list; 34ba6b4c93Schristos struct objfile; 35ba6b4c93Schristos struct thread_info; 3684e9dd17Smrg struct inferior; 3784e9dd17Smrg struct trace_state_variable; 38ba6b4c93Schristos 39ba6b4c93Schristos /* normal_stop notifications. */ 40ba6b4c93Schristos 41ba6b4c93Schristos typedef void (observer_normal_stop_ftype) (struct bpstats *bs, int print_frame); 42ba6b4c93Schristos 43ba6b4c93Schristos extern struct observer *observer_attach_normal_stop (observer_normal_stop_ftype *f); 44ba6b4c93Schristos extern void observer_detach_normal_stop (struct observer *observer); 45ba6b4c93Schristos extern void observer_notify_normal_stop (struct bpstats *bs, int print_frame); 46ba6b4c93Schristos 479ca90fdcSchristos /* signal_received notifications. */ 489ca90fdcSchristos 499ca90fdcSchristos typedef void (observer_signal_received_ftype) (enum gdb_signal siggnal); 509ca90fdcSchristos 519ca90fdcSchristos extern struct observer *observer_attach_signal_received (observer_signal_received_ftype *f); 529ca90fdcSchristos extern void observer_detach_signal_received (struct observer *observer); 539ca90fdcSchristos extern void observer_notify_signal_received (enum gdb_signal siggnal); 549ca90fdcSchristos 559ca90fdcSchristos /* end_stepping_range notifications. */ 569ca90fdcSchristos 579ca90fdcSchristos typedef void (observer_end_stepping_range_ftype) (void); 589ca90fdcSchristos 599ca90fdcSchristos extern struct observer *observer_attach_end_stepping_range (observer_end_stepping_range_ftype *f); 609ca90fdcSchristos extern void observer_detach_end_stepping_range (struct observer *observer); 619ca90fdcSchristos extern void observer_notify_end_stepping_range (void); 629ca90fdcSchristos 639ca90fdcSchristos /* signal_exited notifications. */ 649ca90fdcSchristos 659ca90fdcSchristos typedef void (observer_signal_exited_ftype) (enum gdb_signal siggnal); 669ca90fdcSchristos 679ca90fdcSchristos extern struct observer *observer_attach_signal_exited (observer_signal_exited_ftype *f); 689ca90fdcSchristos extern void observer_detach_signal_exited (struct observer *observer); 699ca90fdcSchristos extern void observer_notify_signal_exited (enum gdb_signal siggnal); 709ca90fdcSchristos 719ca90fdcSchristos /* exited notifications. */ 729ca90fdcSchristos 739ca90fdcSchristos typedef void (observer_exited_ftype) (int exitstatus); 749ca90fdcSchristos 759ca90fdcSchristos extern struct observer *observer_attach_exited (observer_exited_ftype *f); 769ca90fdcSchristos extern void observer_detach_exited (struct observer *observer); 779ca90fdcSchristos extern void observer_notify_exited (int exitstatus); 789ca90fdcSchristos 799ca90fdcSchristos /* no_history notifications. */ 809ca90fdcSchristos 819ca90fdcSchristos typedef void (observer_no_history_ftype) (void); 829ca90fdcSchristos 839ca90fdcSchristos extern struct observer *observer_attach_no_history (observer_no_history_ftype *f); 849ca90fdcSchristos extern void observer_detach_no_history (struct observer *observer); 859ca90fdcSchristos extern void observer_notify_no_history (void); 869ca90fdcSchristos 879ca90fdcSchristos /* sync_execution_done notifications. */ 889ca90fdcSchristos 899ca90fdcSchristos typedef void (observer_sync_execution_done_ftype) (void); 909ca90fdcSchristos 919ca90fdcSchristos extern struct observer *observer_attach_sync_execution_done (observer_sync_execution_done_ftype *f); 929ca90fdcSchristos extern void observer_detach_sync_execution_done (struct observer *observer); 939ca90fdcSchristos extern void observer_notify_sync_execution_done (void); 949ca90fdcSchristos 959ca90fdcSchristos /* command_error notifications. */ 969ca90fdcSchristos 979ca90fdcSchristos typedef void (observer_command_error_ftype) (void); 989ca90fdcSchristos 999ca90fdcSchristos extern struct observer *observer_attach_command_error (observer_command_error_ftype *f); 1009ca90fdcSchristos extern void observer_detach_command_error (struct observer *observer); 1019ca90fdcSchristos extern void observer_notify_command_error (void); 1029ca90fdcSchristos 103ba6b4c93Schristos /* target_changed notifications. */ 104ba6b4c93Schristos 105ba6b4c93Schristos typedef void (observer_target_changed_ftype) (struct target_ops *target); 106ba6b4c93Schristos 107ba6b4c93Schristos extern struct observer *observer_attach_target_changed (observer_target_changed_ftype *f); 108ba6b4c93Schristos extern void observer_detach_target_changed (struct observer *observer); 109ba6b4c93Schristos extern void observer_notify_target_changed (struct target_ops *target); 110ba6b4c93Schristos 111ba6b4c93Schristos /* executable_changed notifications. */ 112ba6b4c93Schristos 113ba6b4c93Schristos typedef void (observer_executable_changed_ftype) (void); 114ba6b4c93Schristos 115ba6b4c93Schristos extern struct observer *observer_attach_executable_changed (observer_executable_changed_ftype *f); 116ba6b4c93Schristos extern void observer_detach_executable_changed (struct observer *observer); 117ba6b4c93Schristos extern void observer_notify_executable_changed (void); 118ba6b4c93Schristos 119ba6b4c93Schristos /* inferior_created notifications. */ 120ba6b4c93Schristos 121ba6b4c93Schristos typedef void (observer_inferior_created_ftype) (struct target_ops *objfile, int from_tty); 122ba6b4c93Schristos 123ba6b4c93Schristos extern struct observer *observer_attach_inferior_created (observer_inferior_created_ftype *f); 124ba6b4c93Schristos extern void observer_detach_inferior_created (struct observer *observer); 125ba6b4c93Schristos extern void observer_notify_inferior_created (struct target_ops *objfile, int from_tty); 126ba6b4c93Schristos 12784e9dd17Smrg /* record_changed notifications. */ 12884e9dd17Smrg 1293caff986Smrg 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); 1333caff986Smrg extern void observer_notify_record_changed (struct inferior *inferior, int started, const char *method, const char *format); 13484e9dd17Smrg 135ba6b4c93Schristos /* solib_loaded notifications. */ 136ba6b4c93Schristos 137ba6b4c93Schristos typedef void (observer_solib_loaded_ftype) (struct so_list *solib); 138ba6b4c93Schristos 139ba6b4c93Schristos extern struct observer *observer_attach_solib_loaded (observer_solib_loaded_ftype *f); 140ba6b4c93Schristos extern void observer_detach_solib_loaded (struct observer *observer); 141ba6b4c93Schristos extern void observer_notify_solib_loaded (struct so_list *solib); 142ba6b4c93Schristos 143ba6b4c93Schristos /* solib_unloaded notifications. */ 144ba6b4c93Schristos 145ba6b4c93Schristos typedef void (observer_solib_unloaded_ftype) (struct so_list *solib); 146ba6b4c93Schristos 147ba6b4c93Schristos extern struct observer *observer_attach_solib_unloaded (observer_solib_unloaded_ftype *f); 148ba6b4c93Schristos extern void observer_detach_solib_unloaded (struct observer *observer); 149ba6b4c93Schristos extern void observer_notify_solib_unloaded (struct so_list *solib); 150ba6b4c93Schristos 151ba6b4c93Schristos /* new_objfile notifications. */ 152ba6b4c93Schristos 153ba6b4c93Schristos typedef void (observer_new_objfile_ftype) (struct objfile *objfile); 154ba6b4c93Schristos 155ba6b4c93Schristos extern struct observer *observer_attach_new_objfile (observer_new_objfile_ftype *f); 156ba6b4c93Schristos extern void observer_detach_new_objfile (struct observer *observer); 157ba6b4c93Schristos extern void observer_notify_new_objfile (struct objfile *objfile); 158ba6b4c93Schristos 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 167ba6b4c93Schristos /* new_thread notifications. */ 168ba6b4c93Schristos 169ba6b4c93Schristos typedef void (observer_new_thread_ftype) (struct thread_info *t); 170ba6b4c93Schristos 171ba6b4c93Schristos extern struct observer *observer_attach_new_thread (observer_new_thread_ftype *f); 172ba6b4c93Schristos extern void observer_detach_new_thread (struct observer *observer); 173ba6b4c93Schristos extern void observer_notify_new_thread (struct thread_info *t); 174ba6b4c93Schristos 175ba6b4c93Schristos /* thread_exit notifications. */ 176ba6b4c93Schristos 177ba6b4c93Schristos typedef void (observer_thread_exit_ftype) (struct thread_info *t, int silent); 178ba6b4c93Schristos 179ba6b4c93Schristos extern struct observer *observer_attach_thread_exit (observer_thread_exit_ftype *f); 180ba6b4c93Schristos extern void observer_detach_thread_exit (struct observer *observer); 181ba6b4c93Schristos extern void observer_notify_thread_exit (struct thread_info *t, int silent); 182ba6b4c93Schristos 183ba6b4c93Schristos /* thread_stop_requested notifications. */ 184ba6b4c93Schristos 185ba6b4c93Schristos typedef void (observer_thread_stop_requested_ftype) (ptid_t ptid); 186ba6b4c93Schristos 187ba6b4c93Schristos extern struct observer *observer_attach_thread_stop_requested (observer_thread_stop_requested_ftype *f); 188ba6b4c93Schristos extern void observer_detach_thread_stop_requested (struct observer *observer); 189ba6b4c93Schristos extern void observer_notify_thread_stop_requested (ptid_t ptid); 190ba6b4c93Schristos 191ba6b4c93Schristos /* target_resumed notifications. */ 192ba6b4c93Schristos 193ba6b4c93Schristos typedef void (observer_target_resumed_ftype) (ptid_t ptid); 194ba6b4c93Schristos 195ba6b4c93Schristos extern struct observer *observer_attach_target_resumed (observer_target_resumed_ftype *f); 196ba6b4c93Schristos extern void observer_detach_target_resumed (struct observer *observer); 197ba6b4c93Schristos extern void observer_notify_target_resumed (ptid_t ptid); 198ba6b4c93Schristos 199ba6b4c93Schristos /* about_to_proceed notifications. */ 200ba6b4c93Schristos 201ba6b4c93Schristos typedef void (observer_about_to_proceed_ftype) (void); 202ba6b4c93Schristos 203ba6b4c93Schristos extern struct observer *observer_attach_about_to_proceed (observer_about_to_proceed_ftype *f); 204ba6b4c93Schristos extern void observer_detach_about_to_proceed (struct observer *observer); 205ba6b4c93Schristos extern void observer_notify_about_to_proceed (void); 206ba6b4c93Schristos 207ba6b4c93Schristos /* breakpoint_created notifications. */ 208ba6b4c93Schristos 20984e9dd17Smrg typedef void (observer_breakpoint_created_ftype) (struct breakpoint *b); 210ba6b4c93Schristos 211ba6b4c93Schristos extern struct observer *observer_attach_breakpoint_created (observer_breakpoint_created_ftype *f); 212ba6b4c93Schristos extern void observer_detach_breakpoint_created (struct observer *observer); 21384e9dd17Smrg extern void observer_notify_breakpoint_created (struct breakpoint *b); 214ba6b4c93Schristos 215ba6b4c93Schristos /* breakpoint_deleted notifications. */ 216ba6b4c93Schristos 21784e9dd17Smrg typedef void (observer_breakpoint_deleted_ftype) (struct breakpoint *b); 218ba6b4c93Schristos 219ba6b4c93Schristos extern struct observer *observer_attach_breakpoint_deleted (observer_breakpoint_deleted_ftype *f); 220ba6b4c93Schristos extern void observer_detach_breakpoint_deleted (struct observer *observer); 22184e9dd17Smrg extern void observer_notify_breakpoint_deleted (struct breakpoint *b); 222ba6b4c93Schristos 223ba6b4c93Schristos /* breakpoint_modified notifications. */ 224ba6b4c93Schristos 22584e9dd17Smrg typedef void (observer_breakpoint_modified_ftype) (struct breakpoint *b); 226ba6b4c93Schristos 227ba6b4c93Schristos extern struct observer *observer_attach_breakpoint_modified (observer_breakpoint_modified_ftype *f); 228ba6b4c93Schristos extern void observer_detach_breakpoint_modified (struct observer *observer); 22984e9dd17Smrg extern void observer_notify_breakpoint_modified (struct breakpoint *b); 230ba6b4c93Schristos 23184e9dd17Smrg /* traceframe_changed notifications. */ 232ba6b4c93Schristos 23384e9dd17Smrg typedef void (observer_traceframe_changed_ftype) (int tfnum, int tpnum); 234ba6b4c93Schristos 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); 238ba6b4c93Schristos 239ba6b4c93Schristos /* architecture_changed notifications. */ 240ba6b4c93Schristos 241ba6b4c93Schristos typedef void (observer_architecture_changed_ftype) (struct gdbarch *newarch); 242ba6b4c93Schristos 243ba6b4c93Schristos extern struct observer *observer_attach_architecture_changed (observer_architecture_changed_ftype *f); 244ba6b4c93Schristos extern void observer_detach_architecture_changed (struct observer *observer); 245ba6b4c93Schristos extern void observer_notify_architecture_changed (struct gdbarch *newarch); 246ba6b4c93Schristos 247ba6b4c93Schristos /* thread_ptid_changed notifications. */ 248ba6b4c93Schristos 249ba6b4c93Schristos typedef void (observer_thread_ptid_changed_ftype) (ptid_t old_ptid, ptid_t new_ptid); 250ba6b4c93Schristos 251ba6b4c93Schristos extern struct observer *observer_attach_thread_ptid_changed (observer_thread_ptid_changed_ftype *f); 252ba6b4c93Schristos extern void observer_detach_thread_ptid_changed (struct observer *observer); 253ba6b4c93Schristos extern void observer_notify_thread_ptid_changed (ptid_t old_ptid, ptid_t new_ptid); 254ba6b4c93Schristos 255ba6b4c93Schristos /* inferior_added notifications. */ 256ba6b4c93Schristos 257ba6b4c93Schristos typedef void (observer_inferior_added_ftype) (struct inferior *inf); 258ba6b4c93Schristos 259ba6b4c93Schristos extern struct observer *observer_attach_inferior_added (observer_inferior_added_ftype *f); 260ba6b4c93Schristos extern void observer_detach_inferior_added (struct observer *observer); 261ba6b4c93Schristos extern void observer_notify_inferior_added (struct inferior *inf); 262ba6b4c93Schristos 263ba6b4c93Schristos /* inferior_appeared notifications. */ 264ba6b4c93Schristos 265ba6b4c93Schristos typedef void (observer_inferior_appeared_ftype) (struct inferior *inf); 266ba6b4c93Schristos 267ba6b4c93Schristos extern struct observer *observer_attach_inferior_appeared (observer_inferior_appeared_ftype *f); 268ba6b4c93Schristos extern void observer_detach_inferior_appeared (struct observer *observer); 269ba6b4c93Schristos extern void observer_notify_inferior_appeared (struct inferior *inf); 270ba6b4c93Schristos 271ba6b4c93Schristos /* inferior_exit notifications. */ 272ba6b4c93Schristos 273ba6b4c93Schristos typedef void (observer_inferior_exit_ftype) (struct inferior *inf); 274ba6b4c93Schristos 275ba6b4c93Schristos extern struct observer *observer_attach_inferior_exit (observer_inferior_exit_ftype *f); 276ba6b4c93Schristos extern void observer_detach_inferior_exit (struct observer *observer); 277ba6b4c93Schristos extern void observer_notify_inferior_exit (struct inferior *inf); 278ba6b4c93Schristos 279ba6b4c93Schristos /* inferior_removed notifications. */ 280ba6b4c93Schristos 281ba6b4c93Schristos typedef void (observer_inferior_removed_ftype) (struct inferior *inf); 282ba6b4c93Schristos 283ba6b4c93Schristos extern struct observer *observer_attach_inferior_removed (observer_inferior_removed_ftype *f); 284ba6b4c93Schristos extern void observer_detach_inferior_removed (struct observer *observer); 285ba6b4c93Schristos extern void observer_notify_inferior_removed (struct inferior *inf); 286ba6b4c93Schristos 287ba6b4c93Schristos /* memory_changed notifications. */ 288ba6b4c93Schristos 28984e9dd17Smrg typedef void (observer_memory_changed_ftype) (struct inferior *inferior, CORE_ADDR addr, ssize_t len, const bfd_byte *data); 290ba6b4c93Schristos 291ba6b4c93Schristos extern struct observer *observer_attach_memory_changed (observer_memory_changed_ftype *f); 292ba6b4c93Schristos 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); 342ba6b4c93Schristos 3439ca90fdcSchristos /* inferior_call_pre notifications. */ 3449ca90fdcSchristos 3459ca90fdcSchristos typedef void (observer_inferior_call_pre_ftype) (ptid_t thread, CORE_ADDR address); 3469ca90fdcSchristos 3479ca90fdcSchristos extern struct observer *observer_attach_inferior_call_pre (observer_inferior_call_pre_ftype *f); 3489ca90fdcSchristos extern void observer_detach_inferior_call_pre (struct observer *observer); 3499ca90fdcSchristos extern void observer_notify_inferior_call_pre (ptid_t thread, CORE_ADDR address); 3509ca90fdcSchristos 3519ca90fdcSchristos /* inferior_call_post notifications. */ 3529ca90fdcSchristos 3539ca90fdcSchristos typedef void (observer_inferior_call_post_ftype) (ptid_t thread, CORE_ADDR address); 3549ca90fdcSchristos 3559ca90fdcSchristos extern struct observer *observer_attach_inferior_call_post (observer_inferior_call_post_ftype *f); 3569ca90fdcSchristos extern void observer_detach_inferior_call_post (struct observer *observer); 3579ca90fdcSchristos extern void observer_notify_inferior_call_post (ptid_t thread, CORE_ADDR address); 3589ca90fdcSchristos 3599ca90fdcSchristos /* register_changed notifications. */ 3609ca90fdcSchristos 3619ca90fdcSchristos typedef void (observer_register_changed_ftype) (struct frame_info *frame, int regnum); 3629ca90fdcSchristos 3639ca90fdcSchristos extern struct observer *observer_attach_register_changed (observer_register_changed_ftype *f); 3649ca90fdcSchristos extern void observer_detach_register_changed (struct observer *observer); 3659ca90fdcSchristos extern void observer_notify_register_changed (struct frame_info *frame, int regnum); 3669ca90fdcSchristos 367ba6b4c93Schristos /* test_notification notifications. */ 368ba6b4c93Schristos 369ba6b4c93Schristos typedef void (observer_test_notification_ftype) (int somearg); 370ba6b4c93Schristos 371ba6b4c93Schristos extern struct observer *observer_attach_test_notification (observer_test_notification_ftype *f); 372ba6b4c93Schristos extern void observer_detach_test_notification (struct observer *observer); 373ba6b4c93Schristos extern void observer_notify_test_notification (int somearg); 374ba6b4c93Schristos 3753caff986Smrg /* user_selected_context_changed notifications. */ 3763caff986Smrg 3773caff986Smrg typedef void (observer_user_selected_context_changed_ftype) (user_selected_what selection); 3783caff986Smrg 3793caff986Smrg extern struct observer *observer_attach_user_selected_context_changed (observer_user_selected_context_changed_ftype *f); 3803caff986Smrg extern void observer_detach_user_selected_context_changed (struct observer *observer); 3813caff986Smrg extern void observer_notify_user_selected_context_changed (user_selected_what selection); 3823caff986Smrg 383ba6b4c93Schristos #endif /* OBSERVER_H */ 384