1c236fd95Schristos /* This file is automatically generated. DO NOT EDIT! */ 2c1e10f77Smrg /* 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 */ 4c236fd95Schristos 5c236fd95Schristos /* GDB Notifications to Observers. 6c236fd95Schristos 7*8b7331e5Schristos Copyright (C) 2004-2017 Free Software Foundation, Inc. 8c236fd95Schristos 9c236fd95Schristos This file is part of GDB. 10c236fd95Schristos 11c236fd95Schristos This program is free software; you can redistribute it and/or modify 12c236fd95Schristos it under the terms of the GNU General Public License as published by 13c236fd95Schristos the Free Software Foundation; either version 3 of the License, or 14c236fd95Schristos (at your option) any later version. 15c236fd95Schristos 16c236fd95Schristos This program is distributed in the hope that it will be useful, 17c236fd95Schristos but WITHOUT ANY WARRANTY; without even the implied warranty of 18c236fd95Schristos MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19c236fd95Schristos GNU General Public License for more details. 20c236fd95Schristos 21c236fd95Schristos You should have received a copy of the GNU General Public License 22c236fd95Schristos along with this program. If not, see <http://www.gnu.org/licenses/>. 23c236fd95Schristos 24c236fd95Schristos -- 25c236fd95Schristos 26c236fd95Schristos This file was generated using observer.sh and observer.texi. */ 27c236fd95Schristos 28c236fd95Schristos #ifndef OBSERVER_H 29c236fd95Schristos #define OBSERVER_H 30c236fd95Schristos 31c236fd95Schristos struct observer; 32c236fd95Schristos struct bpstats; 33c236fd95Schristos struct so_list; 34c236fd95Schristos struct objfile; 35c236fd95Schristos struct thread_info; 3634f40950Schristos struct inferior; 3734f40950Schristos struct trace_state_variable; 38c236fd95Schristos 39c236fd95Schristos /* normal_stop notifications. */ 40c236fd95Schristos 41c236fd95Schristos typedef void (observer_normal_stop_ftype) (struct bpstats *bs, int print_frame); 42c236fd95Schristos 43c236fd95Schristos extern struct observer *observer_attach_normal_stop (observer_normal_stop_ftype *f); 44c236fd95Schristos extern void observer_detach_normal_stop (struct observer *observer); 45c236fd95Schristos extern void observer_notify_normal_stop (struct bpstats *bs, int print_frame); 46c236fd95Schristos 47d708e326Schristos /* signal_received notifications. */ 48d708e326Schristos 49d708e326Schristos typedef void (observer_signal_received_ftype) (enum gdb_signal siggnal); 50d708e326Schristos 51d708e326Schristos extern struct observer *observer_attach_signal_received (observer_signal_received_ftype *f); 52d708e326Schristos extern void observer_detach_signal_received (struct observer *observer); 53d708e326Schristos extern void observer_notify_signal_received (enum gdb_signal siggnal); 54d708e326Schristos 55d708e326Schristos /* end_stepping_range notifications. */ 56d708e326Schristos 57d708e326Schristos typedef void (observer_end_stepping_range_ftype) (void); 58d708e326Schristos 59d708e326Schristos extern struct observer *observer_attach_end_stepping_range (observer_end_stepping_range_ftype *f); 60d708e326Schristos extern void observer_detach_end_stepping_range (struct observer *observer); 61d708e326Schristos extern void observer_notify_end_stepping_range (void); 62d708e326Schristos 63d708e326Schristos /* signal_exited notifications. */ 64d708e326Schristos 65d708e326Schristos typedef void (observer_signal_exited_ftype) (enum gdb_signal siggnal); 66d708e326Schristos 67d708e326Schristos extern struct observer *observer_attach_signal_exited (observer_signal_exited_ftype *f); 68d708e326Schristos extern void observer_detach_signal_exited (struct observer *observer); 69d708e326Schristos extern void observer_notify_signal_exited (enum gdb_signal siggnal); 70d708e326Schristos 71d708e326Schristos /* exited notifications. */ 72d708e326Schristos 73d708e326Schristos typedef void (observer_exited_ftype) (int exitstatus); 74d708e326Schristos 75d708e326Schristos extern struct observer *observer_attach_exited (observer_exited_ftype *f); 76d708e326Schristos extern void observer_detach_exited (struct observer *observer); 77d708e326Schristos extern void observer_notify_exited (int exitstatus); 78d708e326Schristos 79d708e326Schristos /* no_history notifications. */ 80d708e326Schristos 81d708e326Schristos typedef void (observer_no_history_ftype) (void); 82d708e326Schristos 83d708e326Schristos extern struct observer *observer_attach_no_history (observer_no_history_ftype *f); 84d708e326Schristos extern void observer_detach_no_history (struct observer *observer); 85d708e326Schristos extern void observer_notify_no_history (void); 86d708e326Schristos 87d708e326Schristos /* sync_execution_done notifications. */ 88d708e326Schristos 89d708e326Schristos typedef void (observer_sync_execution_done_ftype) (void); 90d708e326Schristos 91d708e326Schristos extern struct observer *observer_attach_sync_execution_done (observer_sync_execution_done_ftype *f); 92d708e326Schristos extern void observer_detach_sync_execution_done (struct observer *observer); 93d708e326Schristos extern void observer_notify_sync_execution_done (void); 94d708e326Schristos 95d708e326Schristos /* command_error notifications. */ 96d708e326Schristos 97d708e326Schristos typedef void (observer_command_error_ftype) (void); 98d708e326Schristos 99d708e326Schristos extern struct observer *observer_attach_command_error (observer_command_error_ftype *f); 100d708e326Schristos extern void observer_detach_command_error (struct observer *observer); 101d708e326Schristos extern void observer_notify_command_error (void); 102d708e326Schristos 103c236fd95Schristos /* target_changed notifications. */ 104c236fd95Schristos 105c236fd95Schristos typedef void (observer_target_changed_ftype) (struct target_ops *target); 106c236fd95Schristos 107c236fd95Schristos extern struct observer *observer_attach_target_changed (observer_target_changed_ftype *f); 108c236fd95Schristos extern void observer_detach_target_changed (struct observer *observer); 109c236fd95Schristos extern void observer_notify_target_changed (struct target_ops *target); 110c236fd95Schristos 111c236fd95Schristos /* executable_changed notifications. */ 112c236fd95Schristos 113c236fd95Schristos typedef void (observer_executable_changed_ftype) (void); 114c236fd95Schristos 115c236fd95Schristos extern struct observer *observer_attach_executable_changed (observer_executable_changed_ftype *f); 116c236fd95Schristos extern void observer_detach_executable_changed (struct observer *observer); 117c236fd95Schristos extern void observer_notify_executable_changed (void); 118c236fd95Schristos 119c236fd95Schristos /* inferior_created notifications. */ 120c236fd95Schristos 121c236fd95Schristos typedef void (observer_inferior_created_ftype) (struct target_ops *objfile, int from_tty); 122c236fd95Schristos 123c236fd95Schristos extern struct observer *observer_attach_inferior_created (observer_inferior_created_ftype *f); 124c236fd95Schristos extern void observer_detach_inferior_created (struct observer *observer); 125c236fd95Schristos extern void observer_notify_inferior_created (struct target_ops *objfile, int from_tty); 126c236fd95Schristos 12734f40950Schristos /* record_changed notifications. */ 12834f40950Schristos 129c1e10f77Smrg typedef void (observer_record_changed_ftype) (struct inferior *inferior, int started, const char *method, const char *format); 13034f40950Schristos 13134f40950Schristos extern struct observer *observer_attach_record_changed (observer_record_changed_ftype *f); 13234f40950Schristos extern void observer_detach_record_changed (struct observer *observer); 133c1e10f77Smrg extern void observer_notify_record_changed (struct inferior *inferior, int started, const char *method, const char *format); 13434f40950Schristos 135c236fd95Schristos /* solib_loaded notifications. */ 136c236fd95Schristos 137c236fd95Schristos typedef void (observer_solib_loaded_ftype) (struct so_list *solib); 138c236fd95Schristos 139c236fd95Schristos extern struct observer *observer_attach_solib_loaded (observer_solib_loaded_ftype *f); 140c236fd95Schristos extern void observer_detach_solib_loaded (struct observer *observer); 141c236fd95Schristos extern void observer_notify_solib_loaded (struct so_list *solib); 142c236fd95Schristos 143c236fd95Schristos /* solib_unloaded notifications. */ 144c236fd95Schristos 145c236fd95Schristos typedef void (observer_solib_unloaded_ftype) (struct so_list *solib); 146c236fd95Schristos 147c236fd95Schristos extern struct observer *observer_attach_solib_unloaded (observer_solib_unloaded_ftype *f); 148c236fd95Schristos extern void observer_detach_solib_unloaded (struct observer *observer); 149c236fd95Schristos extern void observer_notify_solib_unloaded (struct so_list *solib); 150c236fd95Schristos 151c236fd95Schristos /* new_objfile notifications. */ 152c236fd95Schristos 153c236fd95Schristos typedef void (observer_new_objfile_ftype) (struct objfile *objfile); 154c236fd95Schristos 155c236fd95Schristos extern struct observer *observer_attach_new_objfile (observer_new_objfile_ftype *f); 156c236fd95Schristos extern void observer_detach_new_objfile (struct observer *observer); 157c236fd95Schristos extern void observer_notify_new_objfile (struct objfile *objfile); 158c236fd95Schristos 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 167c236fd95Schristos /* new_thread notifications. */ 168c236fd95Schristos 169c236fd95Schristos typedef void (observer_new_thread_ftype) (struct thread_info *t); 170c236fd95Schristos 171c236fd95Schristos extern struct observer *observer_attach_new_thread (observer_new_thread_ftype *f); 172c236fd95Schristos extern void observer_detach_new_thread (struct observer *observer); 173c236fd95Schristos extern void observer_notify_new_thread (struct thread_info *t); 174c236fd95Schristos 175c236fd95Schristos /* thread_exit notifications. */ 176c236fd95Schristos 177c236fd95Schristos typedef void (observer_thread_exit_ftype) (struct thread_info *t, int silent); 178c236fd95Schristos 179c236fd95Schristos extern struct observer *observer_attach_thread_exit (observer_thread_exit_ftype *f); 180c236fd95Schristos extern void observer_detach_thread_exit (struct observer *observer); 181c236fd95Schristos extern void observer_notify_thread_exit (struct thread_info *t, int silent); 182c236fd95Schristos 183c236fd95Schristos /* thread_stop_requested notifications. */ 184c236fd95Schristos 185c236fd95Schristos typedef void (observer_thread_stop_requested_ftype) (ptid_t ptid); 186c236fd95Schristos 187c236fd95Schristos extern struct observer *observer_attach_thread_stop_requested (observer_thread_stop_requested_ftype *f); 188c236fd95Schristos extern void observer_detach_thread_stop_requested (struct observer *observer); 189c236fd95Schristos extern void observer_notify_thread_stop_requested (ptid_t ptid); 190c236fd95Schristos 191c236fd95Schristos /* target_resumed notifications. */ 192c236fd95Schristos 193c236fd95Schristos typedef void (observer_target_resumed_ftype) (ptid_t ptid); 194c236fd95Schristos 195c236fd95Schristos extern struct observer *observer_attach_target_resumed (observer_target_resumed_ftype *f); 196c236fd95Schristos extern void observer_detach_target_resumed (struct observer *observer); 197c236fd95Schristos extern void observer_notify_target_resumed (ptid_t ptid); 198c236fd95Schristos 199c236fd95Schristos /* about_to_proceed notifications. */ 200c236fd95Schristos 201c236fd95Schristos typedef void (observer_about_to_proceed_ftype) (void); 202c236fd95Schristos 203c236fd95Schristos extern struct observer *observer_attach_about_to_proceed (observer_about_to_proceed_ftype *f); 204c236fd95Schristos extern void observer_detach_about_to_proceed (struct observer *observer); 205c236fd95Schristos extern void observer_notify_about_to_proceed (void); 206c236fd95Schristos 207c236fd95Schristos /* breakpoint_created notifications. */ 208c236fd95Schristos 20934f40950Schristos typedef void (observer_breakpoint_created_ftype) (struct breakpoint *b); 210c236fd95Schristos 211c236fd95Schristos extern struct observer *observer_attach_breakpoint_created (observer_breakpoint_created_ftype *f); 212c236fd95Schristos extern void observer_detach_breakpoint_created (struct observer *observer); 21334f40950Schristos extern void observer_notify_breakpoint_created (struct breakpoint *b); 214c236fd95Schristos 215c236fd95Schristos /* breakpoint_deleted notifications. */ 216c236fd95Schristos 21734f40950Schristos typedef void (observer_breakpoint_deleted_ftype) (struct breakpoint *b); 218c236fd95Schristos 219c236fd95Schristos extern struct observer *observer_attach_breakpoint_deleted (observer_breakpoint_deleted_ftype *f); 220c236fd95Schristos extern void observer_detach_breakpoint_deleted (struct observer *observer); 22134f40950Schristos extern void observer_notify_breakpoint_deleted (struct breakpoint *b); 222c236fd95Schristos 223c236fd95Schristos /* breakpoint_modified notifications. */ 224c236fd95Schristos 22534f40950Schristos typedef void (observer_breakpoint_modified_ftype) (struct breakpoint *b); 226c236fd95Schristos 227c236fd95Schristos extern struct observer *observer_attach_breakpoint_modified (observer_breakpoint_modified_ftype *f); 228c236fd95Schristos extern void observer_detach_breakpoint_modified (struct observer *observer); 22934f40950Schristos extern void observer_notify_breakpoint_modified (struct breakpoint *b); 230c236fd95Schristos 23134f40950Schristos /* traceframe_changed notifications. */ 232c236fd95Schristos 23334f40950Schristos typedef void (observer_traceframe_changed_ftype) (int tfnum, int tpnum); 234c236fd95Schristos 23534f40950Schristos extern struct observer *observer_attach_traceframe_changed (observer_traceframe_changed_ftype *f); 23634f40950Schristos extern void observer_detach_traceframe_changed (struct observer *observer); 23734f40950Schristos extern void observer_notify_traceframe_changed (int tfnum, int tpnum); 238c236fd95Schristos 239c236fd95Schristos /* architecture_changed notifications. */ 240c236fd95Schristos 241c236fd95Schristos typedef void (observer_architecture_changed_ftype) (struct gdbarch *newarch); 242c236fd95Schristos 243c236fd95Schristos extern struct observer *observer_attach_architecture_changed (observer_architecture_changed_ftype *f); 244c236fd95Schristos extern void observer_detach_architecture_changed (struct observer *observer); 245c236fd95Schristos extern void observer_notify_architecture_changed (struct gdbarch *newarch); 246c236fd95Schristos 247c236fd95Schristos /* thread_ptid_changed notifications. */ 248c236fd95Schristos 249c236fd95Schristos typedef void (observer_thread_ptid_changed_ftype) (ptid_t old_ptid, ptid_t new_ptid); 250c236fd95Schristos 251c236fd95Schristos extern struct observer *observer_attach_thread_ptid_changed (observer_thread_ptid_changed_ftype *f); 252c236fd95Schristos extern void observer_detach_thread_ptid_changed (struct observer *observer); 253c236fd95Schristos extern void observer_notify_thread_ptid_changed (ptid_t old_ptid, ptid_t new_ptid); 254c236fd95Schristos 255c236fd95Schristos /* inferior_added notifications. */ 256c236fd95Schristos 257c236fd95Schristos typedef void (observer_inferior_added_ftype) (struct inferior *inf); 258c236fd95Schristos 259c236fd95Schristos extern struct observer *observer_attach_inferior_added (observer_inferior_added_ftype *f); 260c236fd95Schristos extern void observer_detach_inferior_added (struct observer *observer); 261c236fd95Schristos extern void observer_notify_inferior_added (struct inferior *inf); 262c236fd95Schristos 263c236fd95Schristos /* inferior_appeared notifications. */ 264c236fd95Schristos 265c236fd95Schristos typedef void (observer_inferior_appeared_ftype) (struct inferior *inf); 266c236fd95Schristos 267c236fd95Schristos extern struct observer *observer_attach_inferior_appeared (observer_inferior_appeared_ftype *f); 268c236fd95Schristos extern void observer_detach_inferior_appeared (struct observer *observer); 269c236fd95Schristos extern void observer_notify_inferior_appeared (struct inferior *inf); 270c236fd95Schristos 271c236fd95Schristos /* inferior_exit notifications. */ 272c236fd95Schristos 273c236fd95Schristos typedef void (observer_inferior_exit_ftype) (struct inferior *inf); 274c236fd95Schristos 275c236fd95Schristos extern struct observer *observer_attach_inferior_exit (observer_inferior_exit_ftype *f); 276c236fd95Schristos extern void observer_detach_inferior_exit (struct observer *observer); 277c236fd95Schristos extern void observer_notify_inferior_exit (struct inferior *inf); 278c236fd95Schristos 279c236fd95Schristos /* inferior_removed notifications. */ 280c236fd95Schristos 281c236fd95Schristos typedef void (observer_inferior_removed_ftype) (struct inferior *inf); 282c236fd95Schristos 283c236fd95Schristos extern struct observer *observer_attach_inferior_removed (observer_inferior_removed_ftype *f); 284c236fd95Schristos extern void observer_detach_inferior_removed (struct observer *observer); 285c236fd95Schristos extern void observer_notify_inferior_removed (struct inferior *inf); 286c236fd95Schristos 287c236fd95Schristos /* memory_changed notifications. */ 288c236fd95Schristos 28934f40950Schristos typedef void (observer_memory_changed_ftype) (struct inferior *inferior, CORE_ADDR addr, ssize_t len, const bfd_byte *data); 290c236fd95Schristos 291c236fd95Schristos extern struct observer *observer_attach_memory_changed (observer_memory_changed_ftype *f); 292c236fd95Schristos extern void observer_detach_memory_changed (struct observer *observer); 29334f40950Schristos extern void observer_notify_memory_changed (struct inferior *inferior, CORE_ADDR addr, ssize_t len, const bfd_byte *data); 29434f40950Schristos 29534f40950Schristos /* before_prompt notifications. */ 29634f40950Schristos 29734f40950Schristos typedef void (observer_before_prompt_ftype) (const char *current_prompt); 29834f40950Schristos 29934f40950Schristos extern struct observer *observer_attach_before_prompt (observer_before_prompt_ftype *f); 30034f40950Schristos extern void observer_detach_before_prompt (struct observer *observer); 30134f40950Schristos extern void observer_notify_before_prompt (const char *current_prompt); 30234f40950Schristos 30334f40950Schristos /* gdb_datadir_changed notifications. */ 30434f40950Schristos 30534f40950Schristos typedef void (observer_gdb_datadir_changed_ftype) (void); 30634f40950Schristos 30734f40950Schristos extern struct observer *observer_attach_gdb_datadir_changed (observer_gdb_datadir_changed_ftype *f); 30834f40950Schristos extern void observer_detach_gdb_datadir_changed (struct observer *observer); 30934f40950Schristos extern void observer_notify_gdb_datadir_changed (void); 31034f40950Schristos 31134f40950Schristos /* command_param_changed notifications. */ 31234f40950Schristos 31334f40950Schristos typedef void (observer_command_param_changed_ftype) (const char *param, const char *value); 31434f40950Schristos 31534f40950Schristos extern struct observer *observer_attach_command_param_changed (observer_command_param_changed_ftype *f); 31634f40950Schristos extern void observer_detach_command_param_changed (struct observer *observer); 31734f40950Schristos extern void observer_notify_command_param_changed (const char *param, const char *value); 31834f40950Schristos 31934f40950Schristos /* tsv_created notifications. */ 32034f40950Schristos 32134f40950Schristos typedef void (observer_tsv_created_ftype) (const struct trace_state_variable *tsv); 32234f40950Schristos 32334f40950Schristos extern struct observer *observer_attach_tsv_created (observer_tsv_created_ftype *f); 32434f40950Schristos extern void observer_detach_tsv_created (struct observer *observer); 32534f40950Schristos extern void observer_notify_tsv_created (const struct trace_state_variable *tsv); 32634f40950Schristos 32734f40950Schristos /* tsv_deleted notifications. */ 32834f40950Schristos 32934f40950Schristos typedef void (observer_tsv_deleted_ftype) (const struct trace_state_variable *tsv); 33034f40950Schristos 33134f40950Schristos extern struct observer *observer_attach_tsv_deleted (observer_tsv_deleted_ftype *f); 33234f40950Schristos extern void observer_detach_tsv_deleted (struct observer *observer); 33334f40950Schristos extern void observer_notify_tsv_deleted (const struct trace_state_variable *tsv); 33434f40950Schristos 33534f40950Schristos /* tsv_modified notifications. */ 33634f40950Schristos 33734f40950Schristos typedef void (observer_tsv_modified_ftype) (const struct trace_state_variable *tsv); 33834f40950Schristos 33934f40950Schristos extern struct observer *observer_attach_tsv_modified (observer_tsv_modified_ftype *f); 34034f40950Schristos extern void observer_detach_tsv_modified (struct observer *observer); 34134f40950Schristos extern void observer_notify_tsv_modified (const struct trace_state_variable *tsv); 342c236fd95Schristos 343d708e326Schristos /* inferior_call_pre notifications. */ 344d708e326Schristos 345d708e326Schristos typedef void (observer_inferior_call_pre_ftype) (ptid_t thread, CORE_ADDR address); 346d708e326Schristos 347d708e326Schristos extern struct observer *observer_attach_inferior_call_pre (observer_inferior_call_pre_ftype *f); 348d708e326Schristos extern void observer_detach_inferior_call_pre (struct observer *observer); 349d708e326Schristos extern void observer_notify_inferior_call_pre (ptid_t thread, CORE_ADDR address); 350d708e326Schristos 351d708e326Schristos /* inferior_call_post notifications. */ 352d708e326Schristos 353d708e326Schristos typedef void (observer_inferior_call_post_ftype) (ptid_t thread, CORE_ADDR address); 354d708e326Schristos 355d708e326Schristos extern struct observer *observer_attach_inferior_call_post (observer_inferior_call_post_ftype *f); 356d708e326Schristos extern void observer_detach_inferior_call_post (struct observer *observer); 357d708e326Schristos extern void observer_notify_inferior_call_post (ptid_t thread, CORE_ADDR address); 358d708e326Schristos 359d708e326Schristos /* register_changed notifications. */ 360d708e326Schristos 361d708e326Schristos typedef void (observer_register_changed_ftype) (struct frame_info *frame, int regnum); 362d708e326Schristos 363d708e326Schristos extern struct observer *observer_attach_register_changed (observer_register_changed_ftype *f); 364d708e326Schristos extern void observer_detach_register_changed (struct observer *observer); 365d708e326Schristos extern void observer_notify_register_changed (struct frame_info *frame, int regnum); 366d708e326Schristos 367c236fd95Schristos /* test_notification notifications. */ 368c236fd95Schristos 369c236fd95Schristos typedef void (observer_test_notification_ftype) (int somearg); 370c236fd95Schristos 371c236fd95Schristos extern struct observer *observer_attach_test_notification (observer_test_notification_ftype *f); 372c236fd95Schristos extern void observer_detach_test_notification (struct observer *observer); 373c236fd95Schristos extern void observer_notify_test_notification (int somearg); 374c236fd95Schristos 375c1e10f77Smrg /* user_selected_context_changed notifications. */ 376c1e10f77Smrg 377c1e10f77Smrg typedef void (observer_user_selected_context_changed_ftype) (user_selected_what selection); 378c1e10f77Smrg 379c1e10f77Smrg extern struct observer *observer_attach_user_selected_context_changed (observer_user_selected_context_changed_ftype *f); 380c1e10f77Smrg extern void observer_detach_user_selected_context_changed (struct observer *observer); 381c1e10f77Smrg extern void observer_notify_user_selected_context_changed (user_selected_what selection); 382c1e10f77Smrg 383c236fd95Schristos #endif /* OBSERVER_H */ 384