1da671615Schristos /* 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 */ 4da671615Schristos 5da671615Schristos /* GDB Notifications to Observers. 6da671615Schristos 7*8b7331e5Schristos Copyright (C) 2004-2017 Free Software Foundation, Inc. 8da671615Schristos 9da671615Schristos This file is part of GDB. 10da671615Schristos 11da671615Schristos This program is free software; you can redistribute it and/or modify 12da671615Schristos it under the terms of the GNU General Public License as published by 13da671615Schristos the Free Software Foundation; either version 3 of the License, or 14da671615Schristos (at your option) any later version. 15da671615Schristos 16da671615Schristos This program is distributed in the hope that it will be useful, 17da671615Schristos but WITHOUT ANY WARRANTY; without even the implied warranty of 18da671615Schristos MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19da671615Schristos GNU General Public License for more details. 20da671615Schristos 21da671615Schristos You should have received a copy of the GNU General Public License 22da671615Schristos along with this program. If not, see <http://www.gnu.org/licenses/>. 23da671615Schristos 24da671615Schristos -- 25da671615Schristos 26da671615Schristos This file was generated using observer.sh and observer.texi. */ 27da671615Schristos 28da671615Schristos #ifndef OBSERVER_H 29da671615Schristos #define OBSERVER_H 30da671615Schristos 31da671615Schristos struct observer; 32da671615Schristos struct bpstats; 33da671615Schristos struct so_list; 34da671615Schristos struct objfile; 35da671615Schristos struct thread_info; 368bd2f7aeSchristos struct inferior; 378bd2f7aeSchristos struct trace_state_variable; 38da671615Schristos 39da671615Schristos /* normal_stop notifications. */ 40da671615Schristos 41da671615Schristos typedef void (observer_normal_stop_ftype) (struct bpstats *bs, int print_frame); 42da671615Schristos 43da671615Schristos extern struct observer *observer_attach_normal_stop (observer_normal_stop_ftype *f); 44da671615Schristos extern void observer_detach_normal_stop (struct observer *observer); 45da671615Schristos extern void observer_notify_normal_stop (struct bpstats *bs, int print_frame); 46da671615Schristos 4797d73739Schristos /* signal_received notifications. */ 4897d73739Schristos 4997d73739Schristos typedef void (observer_signal_received_ftype) (enum gdb_signal siggnal); 5097d73739Schristos 5197d73739Schristos extern struct observer *observer_attach_signal_received (observer_signal_received_ftype *f); 5297d73739Schristos extern void observer_detach_signal_received (struct observer *observer); 5397d73739Schristos extern void observer_notify_signal_received (enum gdb_signal siggnal); 5497d73739Schristos 5597d73739Schristos /* end_stepping_range notifications. */ 5697d73739Schristos 5797d73739Schristos typedef void (observer_end_stepping_range_ftype) (void); 5897d73739Schristos 5997d73739Schristos extern struct observer *observer_attach_end_stepping_range (observer_end_stepping_range_ftype *f); 6097d73739Schristos extern void observer_detach_end_stepping_range (struct observer *observer); 6197d73739Schristos extern void observer_notify_end_stepping_range (void); 6297d73739Schristos 6397d73739Schristos /* signal_exited notifications. */ 6497d73739Schristos 6597d73739Schristos typedef void (observer_signal_exited_ftype) (enum gdb_signal siggnal); 6697d73739Schristos 6797d73739Schristos extern struct observer *observer_attach_signal_exited (observer_signal_exited_ftype *f); 6897d73739Schristos extern void observer_detach_signal_exited (struct observer *observer); 6997d73739Schristos extern void observer_notify_signal_exited (enum gdb_signal siggnal); 7097d73739Schristos 7197d73739Schristos /* exited notifications. */ 7297d73739Schristos 7397d73739Schristos typedef void (observer_exited_ftype) (int exitstatus); 7497d73739Schristos 7597d73739Schristos extern struct observer *observer_attach_exited (observer_exited_ftype *f); 7697d73739Schristos extern void observer_detach_exited (struct observer *observer); 7797d73739Schristos extern void observer_notify_exited (int exitstatus); 7897d73739Schristos 7997d73739Schristos /* no_history notifications. */ 8097d73739Schristos 8197d73739Schristos typedef void (observer_no_history_ftype) (void); 8297d73739Schristos 8397d73739Schristos extern struct observer *observer_attach_no_history (observer_no_history_ftype *f); 8497d73739Schristos extern void observer_detach_no_history (struct observer *observer); 8597d73739Schristos extern void observer_notify_no_history (void); 8697d73739Schristos 8797d73739Schristos /* sync_execution_done notifications. */ 8897d73739Schristos 8997d73739Schristos typedef void (observer_sync_execution_done_ftype) (void); 9097d73739Schristos 9197d73739Schristos extern struct observer *observer_attach_sync_execution_done (observer_sync_execution_done_ftype *f); 9297d73739Schristos extern void observer_detach_sync_execution_done (struct observer *observer); 9397d73739Schristos extern void observer_notify_sync_execution_done (void); 9497d73739Schristos 9597d73739Schristos /* command_error notifications. */ 9697d73739Schristos 9797d73739Schristos typedef void (observer_command_error_ftype) (void); 9897d73739Schristos 9997d73739Schristos extern struct observer *observer_attach_command_error (observer_command_error_ftype *f); 10097d73739Schristos extern void observer_detach_command_error (struct observer *observer); 10197d73739Schristos extern void observer_notify_command_error (void); 10297d73739Schristos 103da671615Schristos /* target_changed notifications. */ 104da671615Schristos 105da671615Schristos typedef void (observer_target_changed_ftype) (struct target_ops *target); 106da671615Schristos 107da671615Schristos extern struct observer *observer_attach_target_changed (observer_target_changed_ftype *f); 108da671615Schristos extern void observer_detach_target_changed (struct observer *observer); 109da671615Schristos extern void observer_notify_target_changed (struct target_ops *target); 110da671615Schristos 111da671615Schristos /* executable_changed notifications. */ 112da671615Schristos 113da671615Schristos typedef void (observer_executable_changed_ftype) (void); 114da671615Schristos 115da671615Schristos extern struct observer *observer_attach_executable_changed (observer_executable_changed_ftype *f); 116da671615Schristos extern void observer_detach_executable_changed (struct observer *observer); 117da671615Schristos extern void observer_notify_executable_changed (void); 118da671615Schristos 119da671615Schristos /* inferior_created notifications. */ 120da671615Schristos 121da671615Schristos typedef void (observer_inferior_created_ftype) (struct target_ops *objfile, int from_tty); 122da671615Schristos 123da671615Schristos extern struct observer *observer_attach_inferior_created (observer_inferior_created_ftype *f); 124da671615Schristos extern void observer_detach_inferior_created (struct observer *observer); 125da671615Schristos extern void observer_notify_inferior_created (struct target_ops *objfile, int from_tty); 126da671615Schristos 1278bd2f7aeSchristos /* record_changed notifications. */ 1288bd2f7aeSchristos 129a417a46eSchristos typedef void (observer_record_changed_ftype) (struct inferior *inferior, int started, const char *method, const char *format); 1308bd2f7aeSchristos 1318bd2f7aeSchristos extern struct observer *observer_attach_record_changed (observer_record_changed_ftype *f); 1328bd2f7aeSchristos extern void observer_detach_record_changed (struct observer *observer); 133a417a46eSchristos extern void observer_notify_record_changed (struct inferior *inferior, int started, const char *method, const char *format); 1348bd2f7aeSchristos 135da671615Schristos /* solib_loaded notifications. */ 136da671615Schristos 137da671615Schristos typedef void (observer_solib_loaded_ftype) (struct so_list *solib); 138da671615Schristos 139da671615Schristos extern struct observer *observer_attach_solib_loaded (observer_solib_loaded_ftype *f); 140da671615Schristos extern void observer_detach_solib_loaded (struct observer *observer); 141da671615Schristos extern void observer_notify_solib_loaded (struct so_list *solib); 142da671615Schristos 143da671615Schristos /* solib_unloaded notifications. */ 144da671615Schristos 145da671615Schristos typedef void (observer_solib_unloaded_ftype) (struct so_list *solib); 146da671615Schristos 147da671615Schristos extern struct observer *observer_attach_solib_unloaded (observer_solib_unloaded_ftype *f); 148da671615Schristos extern void observer_detach_solib_unloaded (struct observer *observer); 149da671615Schristos extern void observer_notify_solib_unloaded (struct so_list *solib); 150da671615Schristos 151da671615Schristos /* new_objfile notifications. */ 152da671615Schristos 153da671615Schristos typedef void (observer_new_objfile_ftype) (struct objfile *objfile); 154da671615Schristos 155da671615Schristos extern struct observer *observer_attach_new_objfile (observer_new_objfile_ftype *f); 156da671615Schristos extern void observer_detach_new_objfile (struct observer *observer); 157da671615Schristos extern void observer_notify_new_objfile (struct objfile *objfile); 158da671615Schristos 15969888ff8Schristos /* free_objfile notifications. */ 16069888ff8Schristos 16169888ff8Schristos typedef void (observer_free_objfile_ftype) (struct objfile *objfile); 16269888ff8Schristos 16369888ff8Schristos extern struct observer *observer_attach_free_objfile (observer_free_objfile_ftype *f); 16469888ff8Schristos extern void observer_detach_free_objfile (struct observer *observer); 16569888ff8Schristos extern void observer_notify_free_objfile (struct objfile *objfile); 16669888ff8Schristos 167da671615Schristos /* new_thread notifications. */ 168da671615Schristos 169da671615Schristos typedef void (observer_new_thread_ftype) (struct thread_info *t); 170da671615Schristos 171da671615Schristos extern struct observer *observer_attach_new_thread (observer_new_thread_ftype *f); 172da671615Schristos extern void observer_detach_new_thread (struct observer *observer); 173da671615Schristos extern void observer_notify_new_thread (struct thread_info *t); 174da671615Schristos 175da671615Schristos /* thread_exit notifications. */ 176da671615Schristos 177da671615Schristos typedef void (observer_thread_exit_ftype) (struct thread_info *t, int silent); 178da671615Schristos 179da671615Schristos extern struct observer *observer_attach_thread_exit (observer_thread_exit_ftype *f); 180da671615Schristos extern void observer_detach_thread_exit (struct observer *observer); 181da671615Schristos extern void observer_notify_thread_exit (struct thread_info *t, int silent); 182da671615Schristos 183da671615Schristos /* thread_stop_requested notifications. */ 184da671615Schristos 185da671615Schristos typedef void (observer_thread_stop_requested_ftype) (ptid_t ptid); 186da671615Schristos 187da671615Schristos extern struct observer *observer_attach_thread_stop_requested (observer_thread_stop_requested_ftype *f); 188da671615Schristos extern void observer_detach_thread_stop_requested (struct observer *observer); 189da671615Schristos extern void observer_notify_thread_stop_requested (ptid_t ptid); 190da671615Schristos 191da671615Schristos /* target_resumed notifications. */ 192da671615Schristos 193da671615Schristos typedef void (observer_target_resumed_ftype) (ptid_t ptid); 194da671615Schristos 195da671615Schristos extern struct observer *observer_attach_target_resumed (observer_target_resumed_ftype *f); 196da671615Schristos extern void observer_detach_target_resumed (struct observer *observer); 197da671615Schristos extern void observer_notify_target_resumed (ptid_t ptid); 198da671615Schristos 199da671615Schristos /* about_to_proceed notifications. */ 200da671615Schristos 201da671615Schristos typedef void (observer_about_to_proceed_ftype) (void); 202da671615Schristos 203da671615Schristos extern struct observer *observer_attach_about_to_proceed (observer_about_to_proceed_ftype *f); 204da671615Schristos extern void observer_detach_about_to_proceed (struct observer *observer); 205da671615Schristos extern void observer_notify_about_to_proceed (void); 206da671615Schristos 207da671615Schristos /* breakpoint_created notifications. */ 208da671615Schristos 2098bd2f7aeSchristos typedef void (observer_breakpoint_created_ftype) (struct breakpoint *b); 210da671615Schristos 211da671615Schristos extern struct observer *observer_attach_breakpoint_created (observer_breakpoint_created_ftype *f); 212da671615Schristos extern void observer_detach_breakpoint_created (struct observer *observer); 2138bd2f7aeSchristos extern void observer_notify_breakpoint_created (struct breakpoint *b); 214da671615Schristos 215da671615Schristos /* breakpoint_deleted notifications. */ 216da671615Schristos 2178bd2f7aeSchristos typedef void (observer_breakpoint_deleted_ftype) (struct breakpoint *b); 218da671615Schristos 219da671615Schristos extern struct observer *observer_attach_breakpoint_deleted (observer_breakpoint_deleted_ftype *f); 220da671615Schristos extern void observer_detach_breakpoint_deleted (struct observer *observer); 2218bd2f7aeSchristos extern void observer_notify_breakpoint_deleted (struct breakpoint *b); 222da671615Schristos 223da671615Schristos /* breakpoint_modified notifications. */ 224da671615Schristos 2258bd2f7aeSchristos typedef void (observer_breakpoint_modified_ftype) (struct breakpoint *b); 226da671615Schristos 227da671615Schristos extern struct observer *observer_attach_breakpoint_modified (observer_breakpoint_modified_ftype *f); 228da671615Schristos extern void observer_detach_breakpoint_modified (struct observer *observer); 2298bd2f7aeSchristos extern void observer_notify_breakpoint_modified (struct breakpoint *b); 230da671615Schristos 2318bd2f7aeSchristos /* traceframe_changed notifications. */ 232da671615Schristos 2338bd2f7aeSchristos typedef void (observer_traceframe_changed_ftype) (int tfnum, int tpnum); 234da671615Schristos 2358bd2f7aeSchristos extern struct observer *observer_attach_traceframe_changed (observer_traceframe_changed_ftype *f); 2368bd2f7aeSchristos extern void observer_detach_traceframe_changed (struct observer *observer); 2378bd2f7aeSchristos extern void observer_notify_traceframe_changed (int tfnum, int tpnum); 238da671615Schristos 239da671615Schristos /* architecture_changed notifications. */ 240da671615Schristos 241da671615Schristos typedef void (observer_architecture_changed_ftype) (struct gdbarch *newarch); 242da671615Schristos 243da671615Schristos extern struct observer *observer_attach_architecture_changed (observer_architecture_changed_ftype *f); 244da671615Schristos extern void observer_detach_architecture_changed (struct observer *observer); 245da671615Schristos extern void observer_notify_architecture_changed (struct gdbarch *newarch); 246da671615Schristos 247da671615Schristos /* thread_ptid_changed notifications. */ 248da671615Schristos 249da671615Schristos typedef void (observer_thread_ptid_changed_ftype) (ptid_t old_ptid, ptid_t new_ptid); 250da671615Schristos 251da671615Schristos extern struct observer *observer_attach_thread_ptid_changed (observer_thread_ptid_changed_ftype *f); 252da671615Schristos extern void observer_detach_thread_ptid_changed (struct observer *observer); 253da671615Schristos extern void observer_notify_thread_ptid_changed (ptid_t old_ptid, ptid_t new_ptid); 254da671615Schristos 255da671615Schristos /* inferior_added notifications. */ 256da671615Schristos 257da671615Schristos typedef void (observer_inferior_added_ftype) (struct inferior *inf); 258da671615Schristos 259da671615Schristos extern struct observer *observer_attach_inferior_added (observer_inferior_added_ftype *f); 260da671615Schristos extern void observer_detach_inferior_added (struct observer *observer); 261da671615Schristos extern void observer_notify_inferior_added (struct inferior *inf); 262da671615Schristos 263da671615Schristos /* inferior_appeared notifications. */ 264da671615Schristos 265da671615Schristos typedef void (observer_inferior_appeared_ftype) (struct inferior *inf); 266da671615Schristos 267da671615Schristos extern struct observer *observer_attach_inferior_appeared (observer_inferior_appeared_ftype *f); 268da671615Schristos extern void observer_detach_inferior_appeared (struct observer *observer); 269da671615Schristos extern void observer_notify_inferior_appeared (struct inferior *inf); 270da671615Schristos 271da671615Schristos /* inferior_exit notifications. */ 272da671615Schristos 273da671615Schristos typedef void (observer_inferior_exit_ftype) (struct inferior *inf); 274da671615Schristos 275da671615Schristos extern struct observer *observer_attach_inferior_exit (observer_inferior_exit_ftype *f); 276da671615Schristos extern void observer_detach_inferior_exit (struct observer *observer); 277da671615Schristos extern void observer_notify_inferior_exit (struct inferior *inf); 278da671615Schristos 279da671615Schristos /* inferior_removed notifications. */ 280da671615Schristos 281da671615Schristos typedef void (observer_inferior_removed_ftype) (struct inferior *inf); 282da671615Schristos 283da671615Schristos extern struct observer *observer_attach_inferior_removed (observer_inferior_removed_ftype *f); 284da671615Schristos extern void observer_detach_inferior_removed (struct observer *observer); 285da671615Schristos extern void observer_notify_inferior_removed (struct inferior *inf); 286da671615Schristos 287da671615Schristos /* memory_changed notifications. */ 288da671615Schristos 2898bd2f7aeSchristos typedef void (observer_memory_changed_ftype) (struct inferior *inferior, CORE_ADDR addr, ssize_t len, const bfd_byte *data); 290da671615Schristos 291da671615Schristos extern struct observer *observer_attach_memory_changed (observer_memory_changed_ftype *f); 292da671615Schristos extern void observer_detach_memory_changed (struct observer *observer); 2938bd2f7aeSchristos extern void observer_notify_memory_changed (struct inferior *inferior, CORE_ADDR addr, ssize_t len, const bfd_byte *data); 2948bd2f7aeSchristos 2958bd2f7aeSchristos /* before_prompt notifications. */ 2968bd2f7aeSchristos 2978bd2f7aeSchristos typedef void (observer_before_prompt_ftype) (const char *current_prompt); 2988bd2f7aeSchristos 2998bd2f7aeSchristos extern struct observer *observer_attach_before_prompt (observer_before_prompt_ftype *f); 3008bd2f7aeSchristos extern void observer_detach_before_prompt (struct observer *observer); 3018bd2f7aeSchristos extern void observer_notify_before_prompt (const char *current_prompt); 3028bd2f7aeSchristos 3038bd2f7aeSchristos /* gdb_datadir_changed notifications. */ 3048bd2f7aeSchristos 3058bd2f7aeSchristos typedef void (observer_gdb_datadir_changed_ftype) (void); 3068bd2f7aeSchristos 3078bd2f7aeSchristos extern struct observer *observer_attach_gdb_datadir_changed (observer_gdb_datadir_changed_ftype *f); 3088bd2f7aeSchristos extern void observer_detach_gdb_datadir_changed (struct observer *observer); 3098bd2f7aeSchristos extern void observer_notify_gdb_datadir_changed (void); 3108bd2f7aeSchristos 3118bd2f7aeSchristos /* command_param_changed notifications. */ 3128bd2f7aeSchristos 3138bd2f7aeSchristos typedef void (observer_command_param_changed_ftype) (const char *param, const char *value); 3148bd2f7aeSchristos 3158bd2f7aeSchristos extern struct observer *observer_attach_command_param_changed (observer_command_param_changed_ftype *f); 3168bd2f7aeSchristos extern void observer_detach_command_param_changed (struct observer *observer); 3178bd2f7aeSchristos extern void observer_notify_command_param_changed (const char *param, const char *value); 3188bd2f7aeSchristos 3198bd2f7aeSchristos /* tsv_created notifications. */ 3208bd2f7aeSchristos 3218bd2f7aeSchristos typedef void (observer_tsv_created_ftype) (const struct trace_state_variable *tsv); 3228bd2f7aeSchristos 3238bd2f7aeSchristos extern struct observer *observer_attach_tsv_created (observer_tsv_created_ftype *f); 3248bd2f7aeSchristos extern void observer_detach_tsv_created (struct observer *observer); 3258bd2f7aeSchristos extern void observer_notify_tsv_created (const struct trace_state_variable *tsv); 3268bd2f7aeSchristos 3278bd2f7aeSchristos /* tsv_deleted notifications. */ 3288bd2f7aeSchristos 3298bd2f7aeSchristos typedef void (observer_tsv_deleted_ftype) (const struct trace_state_variable *tsv); 3308bd2f7aeSchristos 3318bd2f7aeSchristos extern struct observer *observer_attach_tsv_deleted (observer_tsv_deleted_ftype *f); 3328bd2f7aeSchristos extern void observer_detach_tsv_deleted (struct observer *observer); 3338bd2f7aeSchristos extern void observer_notify_tsv_deleted (const struct trace_state_variable *tsv); 3348bd2f7aeSchristos 3358bd2f7aeSchristos /* tsv_modified notifications. */ 3368bd2f7aeSchristos 3378bd2f7aeSchristos typedef void (observer_tsv_modified_ftype) (const struct trace_state_variable *tsv); 3388bd2f7aeSchristos 3398bd2f7aeSchristos extern struct observer *observer_attach_tsv_modified (observer_tsv_modified_ftype *f); 3408bd2f7aeSchristos extern void observer_detach_tsv_modified (struct observer *observer); 3418bd2f7aeSchristos extern void observer_notify_tsv_modified (const struct trace_state_variable *tsv); 342da671615Schristos 34397d73739Schristos /* inferior_call_pre notifications. */ 34497d73739Schristos 34597d73739Schristos typedef void (observer_inferior_call_pre_ftype) (ptid_t thread, CORE_ADDR address); 34697d73739Schristos 34797d73739Schristos extern struct observer *observer_attach_inferior_call_pre (observer_inferior_call_pre_ftype *f); 34897d73739Schristos extern void observer_detach_inferior_call_pre (struct observer *observer); 34997d73739Schristos extern void observer_notify_inferior_call_pre (ptid_t thread, CORE_ADDR address); 35097d73739Schristos 35197d73739Schristos /* inferior_call_post notifications. */ 35297d73739Schristos 35397d73739Schristos typedef void (observer_inferior_call_post_ftype) (ptid_t thread, CORE_ADDR address); 35497d73739Schristos 35597d73739Schristos extern struct observer *observer_attach_inferior_call_post (observer_inferior_call_post_ftype *f); 35697d73739Schristos extern void observer_detach_inferior_call_post (struct observer *observer); 35797d73739Schristos extern void observer_notify_inferior_call_post (ptid_t thread, CORE_ADDR address); 35897d73739Schristos 35997d73739Schristos /* register_changed notifications. */ 36097d73739Schristos 36197d73739Schristos typedef void (observer_register_changed_ftype) (struct frame_info *frame, int regnum); 36297d73739Schristos 36397d73739Schristos extern struct observer *observer_attach_register_changed (observer_register_changed_ftype *f); 36497d73739Schristos extern void observer_detach_register_changed (struct observer *observer); 36597d73739Schristos extern void observer_notify_register_changed (struct frame_info *frame, int regnum); 36697d73739Schristos 367da671615Schristos /* test_notification notifications. */ 368da671615Schristos 369da671615Schristos typedef void (observer_test_notification_ftype) (int somearg); 370da671615Schristos 371da671615Schristos extern struct observer *observer_attach_test_notification (observer_test_notification_ftype *f); 372da671615Schristos extern void observer_detach_test_notification (struct observer *observer); 373da671615Schristos extern void observer_notify_test_notification (int somearg); 374da671615Schristos 375a417a46eSchristos /* user_selected_context_changed notifications. */ 376a417a46eSchristos 377a417a46eSchristos typedef void (observer_user_selected_context_changed_ftype) (user_selected_what selection); 378a417a46eSchristos 379a417a46eSchristos extern struct observer *observer_attach_user_selected_context_changed (observer_user_selected_context_changed_ftype *f); 380a417a46eSchristos extern void observer_detach_user_selected_context_changed (struct observer *observer); 381a417a46eSchristos extern void observer_notify_user_selected_context_changed (user_selected_what selection); 382a417a46eSchristos 383da671615Schristos #endif /* OBSERVER_H */ 384