10c04591cSchristos /* This file is automatically generated. DO NOT EDIT! */ 2e5cb852cSchristos /* Generated from: NetBSD: mknative-gdb,v 1.7 2016/10/16 04:37:42 mrg Exp */ 3*99e23f81Schristos /* Generated from: NetBSD: mknative.common,v 1.15 2017/11/29 03:32:28 christos Exp */ 40c04591cSchristos 50c04591cSchristos /* GDB Notifications to Observers. 60c04591cSchristos 7*99e23f81Schristos Copyright (C) 2004-2017 Free Software Foundation, Inc. 80c04591cSchristos 90c04591cSchristos This file is part of GDB. 100c04591cSchristos 110c04591cSchristos This program is free software; you can redistribute it and/or modify 120c04591cSchristos it under the terms of the GNU General Public License as published by 130c04591cSchristos the Free Software Foundation; either version 3 of the License, or 140c04591cSchristos (at your option) any later version. 150c04591cSchristos 160c04591cSchristos This program is distributed in the hope that it will be useful, 170c04591cSchristos but WITHOUT ANY WARRANTY; without even the implied warranty of 180c04591cSchristos MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 190c04591cSchristos GNU General Public License for more details. 200c04591cSchristos 210c04591cSchristos You should have received a copy of the GNU General Public License 220c04591cSchristos along with this program. If not, see <http://www.gnu.org/licenses/>. 230c04591cSchristos 240c04591cSchristos -- 250c04591cSchristos 260c04591cSchristos This file was generated using observer.sh and observer.texi. */ 270c04591cSchristos 280c04591cSchristos #ifndef OBSERVER_H 290c04591cSchristos #define OBSERVER_H 300c04591cSchristos 310c04591cSchristos struct observer; 320c04591cSchristos struct bpstats; 330c04591cSchristos struct so_list; 340c04591cSchristos struct objfile; 350c04591cSchristos struct thread_info; 360c04591cSchristos struct inferior; 370c04591cSchristos struct trace_state_variable; 380c04591cSchristos 390c04591cSchristos /* normal_stop notifications. */ 400c04591cSchristos 410c04591cSchristos typedef void (observer_normal_stop_ftype) (struct bpstats *bs, int print_frame); 420c04591cSchristos 430c04591cSchristos extern struct observer *observer_attach_normal_stop (observer_normal_stop_ftype *f); 440c04591cSchristos extern void observer_detach_normal_stop (struct observer *observer); 450c04591cSchristos extern void observer_notify_normal_stop (struct bpstats *bs, int print_frame); 460c04591cSchristos 470c04591cSchristos /* signal_received notifications. */ 480c04591cSchristos 490c04591cSchristos typedef void (observer_signal_received_ftype) (enum gdb_signal siggnal); 500c04591cSchristos 510c04591cSchristos extern struct observer *observer_attach_signal_received (observer_signal_received_ftype *f); 520c04591cSchristos extern void observer_detach_signal_received (struct observer *observer); 530c04591cSchristos extern void observer_notify_signal_received (enum gdb_signal siggnal); 540c04591cSchristos 550c04591cSchristos /* end_stepping_range notifications. */ 560c04591cSchristos 570c04591cSchristos typedef void (observer_end_stepping_range_ftype) (void); 580c04591cSchristos 590c04591cSchristos extern struct observer *observer_attach_end_stepping_range (observer_end_stepping_range_ftype *f); 600c04591cSchristos extern void observer_detach_end_stepping_range (struct observer *observer); 610c04591cSchristos extern void observer_notify_end_stepping_range (void); 620c04591cSchristos 630c04591cSchristos /* signal_exited notifications. */ 640c04591cSchristos 650c04591cSchristos typedef void (observer_signal_exited_ftype) (enum gdb_signal siggnal); 660c04591cSchristos 670c04591cSchristos extern struct observer *observer_attach_signal_exited (observer_signal_exited_ftype *f); 680c04591cSchristos extern void observer_detach_signal_exited (struct observer *observer); 690c04591cSchristos extern void observer_notify_signal_exited (enum gdb_signal siggnal); 700c04591cSchristos 710c04591cSchristos /* exited notifications. */ 720c04591cSchristos 730c04591cSchristos typedef void (observer_exited_ftype) (int exitstatus); 740c04591cSchristos 750c04591cSchristos extern struct observer *observer_attach_exited (observer_exited_ftype *f); 760c04591cSchristos extern void observer_detach_exited (struct observer *observer); 770c04591cSchristos extern void observer_notify_exited (int exitstatus); 780c04591cSchristos 790c04591cSchristos /* no_history notifications. */ 800c04591cSchristos 810c04591cSchristos typedef void (observer_no_history_ftype) (void); 820c04591cSchristos 830c04591cSchristos extern struct observer *observer_attach_no_history (observer_no_history_ftype *f); 840c04591cSchristos extern void observer_detach_no_history (struct observer *observer); 850c04591cSchristos extern void observer_notify_no_history (void); 860c04591cSchristos 870c04591cSchristos /* sync_execution_done notifications. */ 880c04591cSchristos 890c04591cSchristos typedef void (observer_sync_execution_done_ftype) (void); 900c04591cSchristos 910c04591cSchristos extern struct observer *observer_attach_sync_execution_done (observer_sync_execution_done_ftype *f); 920c04591cSchristos extern void observer_detach_sync_execution_done (struct observer *observer); 930c04591cSchristos extern void observer_notify_sync_execution_done (void); 940c04591cSchristos 950c04591cSchristos /* command_error notifications. */ 960c04591cSchristos 970c04591cSchristos typedef void (observer_command_error_ftype) (void); 980c04591cSchristos 990c04591cSchristos extern struct observer *observer_attach_command_error (observer_command_error_ftype *f); 1000c04591cSchristos extern void observer_detach_command_error (struct observer *observer); 1010c04591cSchristos extern void observer_notify_command_error (void); 1020c04591cSchristos 1030c04591cSchristos /* target_changed notifications. */ 1040c04591cSchristos 1050c04591cSchristos typedef void (observer_target_changed_ftype) (struct target_ops *target); 1060c04591cSchristos 1070c04591cSchristos extern struct observer *observer_attach_target_changed (observer_target_changed_ftype *f); 1080c04591cSchristos extern void observer_detach_target_changed (struct observer *observer); 1090c04591cSchristos extern void observer_notify_target_changed (struct target_ops *target); 1100c04591cSchristos 1110c04591cSchristos /* executable_changed notifications. */ 1120c04591cSchristos 1130c04591cSchristos typedef void (observer_executable_changed_ftype) (void); 1140c04591cSchristos 1150c04591cSchristos extern struct observer *observer_attach_executable_changed (observer_executable_changed_ftype *f); 1160c04591cSchristos extern void observer_detach_executable_changed (struct observer *observer); 1170c04591cSchristos extern void observer_notify_executable_changed (void); 1180c04591cSchristos 1190c04591cSchristos /* inferior_created notifications. */ 1200c04591cSchristos 1210c04591cSchristos typedef void (observer_inferior_created_ftype) (struct target_ops *objfile, int from_tty); 1220c04591cSchristos 1230c04591cSchristos extern struct observer *observer_attach_inferior_created (observer_inferior_created_ftype *f); 1240c04591cSchristos extern void observer_detach_inferior_created (struct observer *observer); 1250c04591cSchristos extern void observer_notify_inferior_created (struct target_ops *objfile, int from_tty); 1260c04591cSchristos 1270c04591cSchristos /* record_changed notifications. */ 1280c04591cSchristos 129e5cb852cSchristos typedef void (observer_record_changed_ftype) (struct inferior *inferior, int started, const char *method, const char *format); 1300c04591cSchristos 1310c04591cSchristos extern struct observer *observer_attach_record_changed (observer_record_changed_ftype *f); 1320c04591cSchristos extern void observer_detach_record_changed (struct observer *observer); 133e5cb852cSchristos extern void observer_notify_record_changed (struct inferior *inferior, int started, const char *method, const char *format); 1340c04591cSchristos 1350c04591cSchristos /* solib_loaded notifications. */ 1360c04591cSchristos 1370c04591cSchristos typedef void (observer_solib_loaded_ftype) (struct so_list *solib); 1380c04591cSchristos 1390c04591cSchristos extern struct observer *observer_attach_solib_loaded (observer_solib_loaded_ftype *f); 1400c04591cSchristos extern void observer_detach_solib_loaded (struct observer *observer); 1410c04591cSchristos extern void observer_notify_solib_loaded (struct so_list *solib); 1420c04591cSchristos 1430c04591cSchristos /* solib_unloaded notifications. */ 1440c04591cSchristos 1450c04591cSchristos typedef void (observer_solib_unloaded_ftype) (struct so_list *solib); 1460c04591cSchristos 1470c04591cSchristos extern struct observer *observer_attach_solib_unloaded (observer_solib_unloaded_ftype *f); 1480c04591cSchristos extern void observer_detach_solib_unloaded (struct observer *observer); 1490c04591cSchristos extern void observer_notify_solib_unloaded (struct so_list *solib); 1500c04591cSchristos 1510c04591cSchristos /* new_objfile notifications. */ 1520c04591cSchristos 1530c04591cSchristos typedef void (observer_new_objfile_ftype) (struct objfile *objfile); 1540c04591cSchristos 1550c04591cSchristos extern struct observer *observer_attach_new_objfile (observer_new_objfile_ftype *f); 1560c04591cSchristos extern void observer_detach_new_objfile (struct observer *observer); 1570c04591cSchristos extern void observer_notify_new_objfile (struct objfile *objfile); 1580c04591cSchristos 1590c04591cSchristos /* free_objfile notifications. */ 1600c04591cSchristos 1610c04591cSchristos typedef void (observer_free_objfile_ftype) (struct objfile *objfile); 1620c04591cSchristos 1630c04591cSchristos extern struct observer *observer_attach_free_objfile (observer_free_objfile_ftype *f); 1640c04591cSchristos extern void observer_detach_free_objfile (struct observer *observer); 1650c04591cSchristos extern void observer_notify_free_objfile (struct objfile *objfile); 1660c04591cSchristos 1670c04591cSchristos /* new_thread notifications. */ 1680c04591cSchristos 1690c04591cSchristos typedef void (observer_new_thread_ftype) (struct thread_info *t); 1700c04591cSchristos 1710c04591cSchristos extern struct observer *observer_attach_new_thread (observer_new_thread_ftype *f); 1720c04591cSchristos extern void observer_detach_new_thread (struct observer *observer); 1730c04591cSchristos extern void observer_notify_new_thread (struct thread_info *t); 1740c04591cSchristos 1750c04591cSchristos /* thread_exit notifications. */ 1760c04591cSchristos 1770c04591cSchristos typedef void (observer_thread_exit_ftype) (struct thread_info *t, int silent); 1780c04591cSchristos 1790c04591cSchristos extern struct observer *observer_attach_thread_exit (observer_thread_exit_ftype *f); 1800c04591cSchristos extern void observer_detach_thread_exit (struct observer *observer); 1810c04591cSchristos extern void observer_notify_thread_exit (struct thread_info *t, int silent); 1820c04591cSchristos 1830c04591cSchristos /* thread_stop_requested notifications. */ 1840c04591cSchristos 1850c04591cSchristos typedef void (observer_thread_stop_requested_ftype) (ptid_t ptid); 1860c04591cSchristos 1870c04591cSchristos extern struct observer *observer_attach_thread_stop_requested (observer_thread_stop_requested_ftype *f); 1880c04591cSchristos extern void observer_detach_thread_stop_requested (struct observer *observer); 1890c04591cSchristos extern void observer_notify_thread_stop_requested (ptid_t ptid); 1900c04591cSchristos 1910c04591cSchristos /* target_resumed notifications. */ 1920c04591cSchristos 1930c04591cSchristos typedef void (observer_target_resumed_ftype) (ptid_t ptid); 1940c04591cSchristos 1950c04591cSchristos extern struct observer *observer_attach_target_resumed (observer_target_resumed_ftype *f); 1960c04591cSchristos extern void observer_detach_target_resumed (struct observer *observer); 1970c04591cSchristos extern void observer_notify_target_resumed (ptid_t ptid); 1980c04591cSchristos 1990c04591cSchristos /* about_to_proceed notifications. */ 2000c04591cSchristos 2010c04591cSchristos typedef void (observer_about_to_proceed_ftype) (void); 2020c04591cSchristos 2030c04591cSchristos extern struct observer *observer_attach_about_to_proceed (observer_about_to_proceed_ftype *f); 2040c04591cSchristos extern void observer_detach_about_to_proceed (struct observer *observer); 2050c04591cSchristos extern void observer_notify_about_to_proceed (void); 2060c04591cSchristos 2070c04591cSchristos /* breakpoint_created notifications. */ 2080c04591cSchristos 2090c04591cSchristos typedef void (observer_breakpoint_created_ftype) (struct breakpoint *b); 2100c04591cSchristos 2110c04591cSchristos extern struct observer *observer_attach_breakpoint_created (observer_breakpoint_created_ftype *f); 2120c04591cSchristos extern void observer_detach_breakpoint_created (struct observer *observer); 2130c04591cSchristos extern void observer_notify_breakpoint_created (struct breakpoint *b); 2140c04591cSchristos 2150c04591cSchristos /* breakpoint_deleted notifications. */ 2160c04591cSchristos 2170c04591cSchristos typedef void (observer_breakpoint_deleted_ftype) (struct breakpoint *b); 2180c04591cSchristos 2190c04591cSchristos extern struct observer *observer_attach_breakpoint_deleted (observer_breakpoint_deleted_ftype *f); 2200c04591cSchristos extern void observer_detach_breakpoint_deleted (struct observer *observer); 2210c04591cSchristos extern void observer_notify_breakpoint_deleted (struct breakpoint *b); 2220c04591cSchristos 2230c04591cSchristos /* breakpoint_modified notifications. */ 2240c04591cSchristos 2250c04591cSchristos typedef void (observer_breakpoint_modified_ftype) (struct breakpoint *b); 2260c04591cSchristos 2270c04591cSchristos extern struct observer *observer_attach_breakpoint_modified (observer_breakpoint_modified_ftype *f); 2280c04591cSchristos extern void observer_detach_breakpoint_modified (struct observer *observer); 2290c04591cSchristos extern void observer_notify_breakpoint_modified (struct breakpoint *b); 2300c04591cSchristos 2310c04591cSchristos /* traceframe_changed notifications. */ 2320c04591cSchristos 2330c04591cSchristos typedef void (observer_traceframe_changed_ftype) (int tfnum, int tpnum); 2340c04591cSchristos 2350c04591cSchristos extern struct observer *observer_attach_traceframe_changed (observer_traceframe_changed_ftype *f); 2360c04591cSchristos extern void observer_detach_traceframe_changed (struct observer *observer); 2370c04591cSchristos extern void observer_notify_traceframe_changed (int tfnum, int tpnum); 2380c04591cSchristos 2390c04591cSchristos /* architecture_changed notifications. */ 2400c04591cSchristos 2410c04591cSchristos typedef void (observer_architecture_changed_ftype) (struct gdbarch *newarch); 2420c04591cSchristos 2430c04591cSchristos extern struct observer *observer_attach_architecture_changed (observer_architecture_changed_ftype *f); 2440c04591cSchristos extern void observer_detach_architecture_changed (struct observer *observer); 2450c04591cSchristos extern void observer_notify_architecture_changed (struct gdbarch *newarch); 2460c04591cSchristos 2470c04591cSchristos /* thread_ptid_changed notifications. */ 2480c04591cSchristos 2490c04591cSchristos typedef void (observer_thread_ptid_changed_ftype) (ptid_t old_ptid, ptid_t new_ptid); 2500c04591cSchristos 2510c04591cSchristos extern struct observer *observer_attach_thread_ptid_changed (observer_thread_ptid_changed_ftype *f); 2520c04591cSchristos extern void observer_detach_thread_ptid_changed (struct observer *observer); 2530c04591cSchristos extern void observer_notify_thread_ptid_changed (ptid_t old_ptid, ptid_t new_ptid); 2540c04591cSchristos 2550c04591cSchristos /* inferior_added notifications. */ 2560c04591cSchristos 2570c04591cSchristos typedef void (observer_inferior_added_ftype) (struct inferior *inf); 2580c04591cSchristos 2590c04591cSchristos extern struct observer *observer_attach_inferior_added (observer_inferior_added_ftype *f); 2600c04591cSchristos extern void observer_detach_inferior_added (struct observer *observer); 2610c04591cSchristos extern void observer_notify_inferior_added (struct inferior *inf); 2620c04591cSchristos 2630c04591cSchristos /* inferior_appeared notifications. */ 2640c04591cSchristos 2650c04591cSchristos typedef void (observer_inferior_appeared_ftype) (struct inferior *inf); 2660c04591cSchristos 2670c04591cSchristos extern struct observer *observer_attach_inferior_appeared (observer_inferior_appeared_ftype *f); 2680c04591cSchristos extern void observer_detach_inferior_appeared (struct observer *observer); 2690c04591cSchristos extern void observer_notify_inferior_appeared (struct inferior *inf); 2700c04591cSchristos 2710c04591cSchristos /* inferior_exit notifications. */ 2720c04591cSchristos 2730c04591cSchristos typedef void (observer_inferior_exit_ftype) (struct inferior *inf); 2740c04591cSchristos 2750c04591cSchristos extern struct observer *observer_attach_inferior_exit (observer_inferior_exit_ftype *f); 2760c04591cSchristos extern void observer_detach_inferior_exit (struct observer *observer); 2770c04591cSchristos extern void observer_notify_inferior_exit (struct inferior *inf); 2780c04591cSchristos 2790c04591cSchristos /* inferior_removed notifications. */ 2800c04591cSchristos 2810c04591cSchristos typedef void (observer_inferior_removed_ftype) (struct inferior *inf); 2820c04591cSchristos 2830c04591cSchristos extern struct observer *observer_attach_inferior_removed (observer_inferior_removed_ftype *f); 2840c04591cSchristos extern void observer_detach_inferior_removed (struct observer *observer); 2850c04591cSchristos extern void observer_notify_inferior_removed (struct inferior *inf); 2860c04591cSchristos 2870c04591cSchristos /* memory_changed notifications. */ 2880c04591cSchristos 2890c04591cSchristos typedef void (observer_memory_changed_ftype) (struct inferior *inferior, CORE_ADDR addr, ssize_t len, const bfd_byte *data); 2900c04591cSchristos 2910c04591cSchristos extern struct observer *observer_attach_memory_changed (observer_memory_changed_ftype *f); 2920c04591cSchristos extern void observer_detach_memory_changed (struct observer *observer); 2930c04591cSchristos extern void observer_notify_memory_changed (struct inferior *inferior, CORE_ADDR addr, ssize_t len, const bfd_byte *data); 2940c04591cSchristos 2950c04591cSchristos /* before_prompt notifications. */ 2960c04591cSchristos 2970c04591cSchristos typedef void (observer_before_prompt_ftype) (const char *current_prompt); 2980c04591cSchristos 2990c04591cSchristos extern struct observer *observer_attach_before_prompt (observer_before_prompt_ftype *f); 3000c04591cSchristos extern void observer_detach_before_prompt (struct observer *observer); 3010c04591cSchristos extern void observer_notify_before_prompt (const char *current_prompt); 3020c04591cSchristos 3030c04591cSchristos /* gdb_datadir_changed notifications. */ 3040c04591cSchristos 3050c04591cSchristos typedef void (observer_gdb_datadir_changed_ftype) (void); 3060c04591cSchristos 3070c04591cSchristos extern struct observer *observer_attach_gdb_datadir_changed (observer_gdb_datadir_changed_ftype *f); 3080c04591cSchristos extern void observer_detach_gdb_datadir_changed (struct observer *observer); 3090c04591cSchristos extern void observer_notify_gdb_datadir_changed (void); 3100c04591cSchristos 3110c04591cSchristos /* command_param_changed notifications. */ 3120c04591cSchristos 3130c04591cSchristos typedef void (observer_command_param_changed_ftype) (const char *param, const char *value); 3140c04591cSchristos 3150c04591cSchristos extern struct observer *observer_attach_command_param_changed (observer_command_param_changed_ftype *f); 3160c04591cSchristos extern void observer_detach_command_param_changed (struct observer *observer); 3170c04591cSchristos extern void observer_notify_command_param_changed (const char *param, const char *value); 3180c04591cSchristos 3190c04591cSchristos /* tsv_created notifications. */ 3200c04591cSchristos 3210c04591cSchristos typedef void (observer_tsv_created_ftype) (const struct trace_state_variable *tsv); 3220c04591cSchristos 3230c04591cSchristos extern struct observer *observer_attach_tsv_created (observer_tsv_created_ftype *f); 3240c04591cSchristos extern void observer_detach_tsv_created (struct observer *observer); 3250c04591cSchristos extern void observer_notify_tsv_created (const struct trace_state_variable *tsv); 3260c04591cSchristos 3270c04591cSchristos /* tsv_deleted notifications. */ 3280c04591cSchristos 3290c04591cSchristos typedef void (observer_tsv_deleted_ftype) (const struct trace_state_variable *tsv); 3300c04591cSchristos 3310c04591cSchristos extern struct observer *observer_attach_tsv_deleted (observer_tsv_deleted_ftype *f); 3320c04591cSchristos extern void observer_detach_tsv_deleted (struct observer *observer); 3330c04591cSchristos extern void observer_notify_tsv_deleted (const struct trace_state_variable *tsv); 3340c04591cSchristos 3350c04591cSchristos /* tsv_modified notifications. */ 3360c04591cSchristos 3370c04591cSchristos typedef void (observer_tsv_modified_ftype) (const struct trace_state_variable *tsv); 3380c04591cSchristos 3390c04591cSchristos extern struct observer *observer_attach_tsv_modified (observer_tsv_modified_ftype *f); 3400c04591cSchristos extern void observer_detach_tsv_modified (struct observer *observer); 3410c04591cSchristos extern void observer_notify_tsv_modified (const struct trace_state_variable *tsv); 3420c04591cSchristos 3430c04591cSchristos /* inferior_call_pre notifications. */ 3440c04591cSchristos 3450c04591cSchristos typedef void (observer_inferior_call_pre_ftype) (ptid_t thread, CORE_ADDR address); 3460c04591cSchristos 3470c04591cSchristos extern struct observer *observer_attach_inferior_call_pre (observer_inferior_call_pre_ftype *f); 3480c04591cSchristos extern void observer_detach_inferior_call_pre (struct observer *observer); 3490c04591cSchristos extern void observer_notify_inferior_call_pre (ptid_t thread, CORE_ADDR address); 3500c04591cSchristos 3510c04591cSchristos /* inferior_call_post notifications. */ 3520c04591cSchristos 3530c04591cSchristos typedef void (observer_inferior_call_post_ftype) (ptid_t thread, CORE_ADDR address); 3540c04591cSchristos 3550c04591cSchristos extern struct observer *observer_attach_inferior_call_post (observer_inferior_call_post_ftype *f); 3560c04591cSchristos extern void observer_detach_inferior_call_post (struct observer *observer); 3570c04591cSchristos extern void observer_notify_inferior_call_post (ptid_t thread, CORE_ADDR address); 3580c04591cSchristos 3590c04591cSchristos /* register_changed notifications. */ 3600c04591cSchristos 3610c04591cSchristos typedef void (observer_register_changed_ftype) (struct frame_info *frame, int regnum); 3620c04591cSchristos 3630c04591cSchristos extern struct observer *observer_attach_register_changed (observer_register_changed_ftype *f); 3640c04591cSchristos extern void observer_detach_register_changed (struct observer *observer); 3650c04591cSchristos extern void observer_notify_register_changed (struct frame_info *frame, int regnum); 3660c04591cSchristos 3670c04591cSchristos /* test_notification notifications. */ 3680c04591cSchristos 3690c04591cSchristos typedef void (observer_test_notification_ftype) (int somearg); 3700c04591cSchristos 3710c04591cSchristos extern struct observer *observer_attach_test_notification (observer_test_notification_ftype *f); 3720c04591cSchristos extern void observer_detach_test_notification (struct observer *observer); 3730c04591cSchristos extern void observer_notify_test_notification (int somearg); 3740c04591cSchristos 375e5cb852cSchristos /* user_selected_context_changed notifications. */ 376e5cb852cSchristos 377e5cb852cSchristos typedef void (observer_user_selected_context_changed_ftype) (user_selected_what selection); 378e5cb852cSchristos 379e5cb852cSchristos extern struct observer *observer_attach_user_selected_context_changed (observer_user_selected_context_changed_ftype *f); 380e5cb852cSchristos extern void observer_detach_user_selected_context_changed (struct observer *observer); 381e5cb852cSchristos extern void observer_notify_user_selected_context_changed (user_selected_what selection); 382e5cb852cSchristos 3830c04591cSchristos #endif /* OBSERVER_H */ 384