1 /* This file is automatically generated. DO NOT EDIT! */ 2 /* Generated from: NetBSD: mknative-gdb,v 1.7 2016/10/16 04:37:42 mrg Exp */ 3 /* Generated from: NetBSD: mknative.common,v 1.15 2017/11/29 03:32:28 christos Exp */ 4 5 /* GDB Notifications to Observers. 6 7 Copyright (C) 2004-2017 Free Software Foundation, Inc. 8 9 This file is part of GDB. 10 11 This program is free software; you can redistribute it and/or modify 12 it under the terms of the GNU General Public License as published by 13 the Free Software Foundation; either version 3 of the License, or 14 (at your option) any later version. 15 16 This program is distributed in the hope that it will be useful, 17 but WITHOUT ANY WARRANTY; without even the implied warranty of 18 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19 GNU General Public License for more details. 20 21 You should have received a copy of the GNU General Public License 22 along with this program. If not, see <http://www.gnu.org/licenses/>. 23 24 -- 25 26 This file was generated using observer.sh and observer.texi. */ 27 28 #ifndef OBSERVER_H 29 #define OBSERVER_H 30 31 struct observer; 32 struct bpstats; 33 struct so_list; 34 struct objfile; 35 struct thread_info; 36 struct inferior; 37 struct trace_state_variable; 38 39 /* normal_stop notifications. */ 40 41 typedef void (observer_normal_stop_ftype) (struct bpstats *bs, int print_frame); 42 43 extern struct observer *observer_attach_normal_stop (observer_normal_stop_ftype *f); 44 extern void observer_detach_normal_stop (struct observer *observer); 45 extern void observer_notify_normal_stop (struct bpstats *bs, int print_frame); 46 47 /* signal_received notifications. */ 48 49 typedef void (observer_signal_received_ftype) (enum gdb_signal siggnal); 50 51 extern struct observer *observer_attach_signal_received (observer_signal_received_ftype *f); 52 extern void observer_detach_signal_received (struct observer *observer); 53 extern void observer_notify_signal_received (enum gdb_signal siggnal); 54 55 /* end_stepping_range notifications. */ 56 57 typedef void (observer_end_stepping_range_ftype) (void); 58 59 extern struct observer *observer_attach_end_stepping_range (observer_end_stepping_range_ftype *f); 60 extern void observer_detach_end_stepping_range (struct observer *observer); 61 extern void observer_notify_end_stepping_range (void); 62 63 /* signal_exited notifications. */ 64 65 typedef void (observer_signal_exited_ftype) (enum gdb_signal siggnal); 66 67 extern struct observer *observer_attach_signal_exited (observer_signal_exited_ftype *f); 68 extern void observer_detach_signal_exited (struct observer *observer); 69 extern void observer_notify_signal_exited (enum gdb_signal siggnal); 70 71 /* exited notifications. */ 72 73 typedef void (observer_exited_ftype) (int exitstatus); 74 75 extern struct observer *observer_attach_exited (observer_exited_ftype *f); 76 extern void observer_detach_exited (struct observer *observer); 77 extern void observer_notify_exited (int exitstatus); 78 79 /* no_history notifications. */ 80 81 typedef void (observer_no_history_ftype) (void); 82 83 extern struct observer *observer_attach_no_history (observer_no_history_ftype *f); 84 extern void observer_detach_no_history (struct observer *observer); 85 extern void observer_notify_no_history (void); 86 87 /* sync_execution_done notifications. */ 88 89 typedef void (observer_sync_execution_done_ftype) (void); 90 91 extern struct observer *observer_attach_sync_execution_done (observer_sync_execution_done_ftype *f); 92 extern void observer_detach_sync_execution_done (struct observer *observer); 93 extern void observer_notify_sync_execution_done (void); 94 95 /* command_error notifications. */ 96 97 typedef void (observer_command_error_ftype) (void); 98 99 extern struct observer *observer_attach_command_error (observer_command_error_ftype *f); 100 extern void observer_detach_command_error (struct observer *observer); 101 extern void observer_notify_command_error (void); 102 103 /* target_changed notifications. */ 104 105 typedef void (observer_target_changed_ftype) (struct target_ops *target); 106 107 extern struct observer *observer_attach_target_changed (observer_target_changed_ftype *f); 108 extern void observer_detach_target_changed (struct observer *observer); 109 extern void observer_notify_target_changed (struct target_ops *target); 110 111 /* executable_changed notifications. */ 112 113 typedef void (observer_executable_changed_ftype) (void); 114 115 extern struct observer *observer_attach_executable_changed (observer_executable_changed_ftype *f); 116 extern void observer_detach_executable_changed (struct observer *observer); 117 extern void observer_notify_executable_changed (void); 118 119 /* inferior_created notifications. */ 120 121 typedef void (observer_inferior_created_ftype) (struct target_ops *objfile, int from_tty); 122 123 extern struct observer *observer_attach_inferior_created (observer_inferior_created_ftype *f); 124 extern void observer_detach_inferior_created (struct observer *observer); 125 extern void observer_notify_inferior_created (struct target_ops *objfile, int from_tty); 126 127 /* record_changed notifications. */ 128 129 typedef void (observer_record_changed_ftype) (struct inferior *inferior, int started, const char *method, const char *format); 130 131 extern struct observer *observer_attach_record_changed (observer_record_changed_ftype *f); 132 extern void observer_detach_record_changed (struct observer *observer); 133 extern void observer_notify_record_changed (struct inferior *inferior, int started, const char *method, const char *format); 134 135 /* solib_loaded notifications. */ 136 137 typedef void (observer_solib_loaded_ftype) (struct so_list *solib); 138 139 extern struct observer *observer_attach_solib_loaded (observer_solib_loaded_ftype *f); 140 extern void observer_detach_solib_loaded (struct observer *observer); 141 extern void observer_notify_solib_loaded (struct so_list *solib); 142 143 /* solib_unloaded notifications. */ 144 145 typedef void (observer_solib_unloaded_ftype) (struct so_list *solib); 146 147 extern struct observer *observer_attach_solib_unloaded (observer_solib_unloaded_ftype *f); 148 extern void observer_detach_solib_unloaded (struct observer *observer); 149 extern void observer_notify_solib_unloaded (struct so_list *solib); 150 151 /* new_objfile notifications. */ 152 153 typedef void (observer_new_objfile_ftype) (struct objfile *objfile); 154 155 extern struct observer *observer_attach_new_objfile (observer_new_objfile_ftype *f); 156 extern void observer_detach_new_objfile (struct observer *observer); 157 extern void observer_notify_new_objfile (struct objfile *objfile); 158 159 /* free_objfile notifications. */ 160 161 typedef void (observer_free_objfile_ftype) (struct objfile *objfile); 162 163 extern struct observer *observer_attach_free_objfile (observer_free_objfile_ftype *f); 164 extern void observer_detach_free_objfile (struct observer *observer); 165 extern void observer_notify_free_objfile (struct objfile *objfile); 166 167 /* new_thread notifications. */ 168 169 typedef void (observer_new_thread_ftype) (struct thread_info *t); 170 171 extern struct observer *observer_attach_new_thread (observer_new_thread_ftype *f); 172 extern void observer_detach_new_thread (struct observer *observer); 173 extern void observer_notify_new_thread (struct thread_info *t); 174 175 /* thread_exit notifications. */ 176 177 typedef void (observer_thread_exit_ftype) (struct thread_info *t, int silent); 178 179 extern struct observer *observer_attach_thread_exit (observer_thread_exit_ftype *f); 180 extern void observer_detach_thread_exit (struct observer *observer); 181 extern void observer_notify_thread_exit (struct thread_info *t, int silent); 182 183 /* thread_stop_requested notifications. */ 184 185 typedef void (observer_thread_stop_requested_ftype) (ptid_t ptid); 186 187 extern struct observer *observer_attach_thread_stop_requested (observer_thread_stop_requested_ftype *f); 188 extern void observer_detach_thread_stop_requested (struct observer *observer); 189 extern void observer_notify_thread_stop_requested (ptid_t ptid); 190 191 /* target_resumed notifications. */ 192 193 typedef void (observer_target_resumed_ftype) (ptid_t ptid); 194 195 extern struct observer *observer_attach_target_resumed (observer_target_resumed_ftype *f); 196 extern void observer_detach_target_resumed (struct observer *observer); 197 extern void observer_notify_target_resumed (ptid_t ptid); 198 199 /* about_to_proceed notifications. */ 200 201 typedef void (observer_about_to_proceed_ftype) (void); 202 203 extern struct observer *observer_attach_about_to_proceed (observer_about_to_proceed_ftype *f); 204 extern void observer_detach_about_to_proceed (struct observer *observer); 205 extern void observer_notify_about_to_proceed (void); 206 207 /* breakpoint_created notifications. */ 208 209 typedef void (observer_breakpoint_created_ftype) (struct breakpoint *b); 210 211 extern struct observer *observer_attach_breakpoint_created (observer_breakpoint_created_ftype *f); 212 extern void observer_detach_breakpoint_created (struct observer *observer); 213 extern void observer_notify_breakpoint_created (struct breakpoint *b); 214 215 /* breakpoint_deleted notifications. */ 216 217 typedef void (observer_breakpoint_deleted_ftype) (struct breakpoint *b); 218 219 extern struct observer *observer_attach_breakpoint_deleted (observer_breakpoint_deleted_ftype *f); 220 extern void observer_detach_breakpoint_deleted (struct observer *observer); 221 extern void observer_notify_breakpoint_deleted (struct breakpoint *b); 222 223 /* breakpoint_modified notifications. */ 224 225 typedef void (observer_breakpoint_modified_ftype) (struct breakpoint *b); 226 227 extern struct observer *observer_attach_breakpoint_modified (observer_breakpoint_modified_ftype *f); 228 extern void observer_detach_breakpoint_modified (struct observer *observer); 229 extern void observer_notify_breakpoint_modified (struct breakpoint *b); 230 231 /* traceframe_changed notifications. */ 232 233 typedef void (observer_traceframe_changed_ftype) (int tfnum, int tpnum); 234 235 extern struct observer *observer_attach_traceframe_changed (observer_traceframe_changed_ftype *f); 236 extern void observer_detach_traceframe_changed (struct observer *observer); 237 extern void observer_notify_traceframe_changed (int tfnum, int tpnum); 238 239 /* architecture_changed notifications. */ 240 241 typedef void (observer_architecture_changed_ftype) (struct gdbarch *newarch); 242 243 extern struct observer *observer_attach_architecture_changed (observer_architecture_changed_ftype *f); 244 extern void observer_detach_architecture_changed (struct observer *observer); 245 extern void observer_notify_architecture_changed (struct gdbarch *newarch); 246 247 /* thread_ptid_changed notifications. */ 248 249 typedef void (observer_thread_ptid_changed_ftype) (ptid_t old_ptid, ptid_t new_ptid); 250 251 extern struct observer *observer_attach_thread_ptid_changed (observer_thread_ptid_changed_ftype *f); 252 extern void observer_detach_thread_ptid_changed (struct observer *observer); 253 extern void observer_notify_thread_ptid_changed (ptid_t old_ptid, ptid_t new_ptid); 254 255 /* inferior_added notifications. */ 256 257 typedef void (observer_inferior_added_ftype) (struct inferior *inf); 258 259 extern struct observer *observer_attach_inferior_added (observer_inferior_added_ftype *f); 260 extern void observer_detach_inferior_added (struct observer *observer); 261 extern void observer_notify_inferior_added (struct inferior *inf); 262 263 /* inferior_appeared notifications. */ 264 265 typedef void (observer_inferior_appeared_ftype) (struct inferior *inf); 266 267 extern struct observer *observer_attach_inferior_appeared (observer_inferior_appeared_ftype *f); 268 extern void observer_detach_inferior_appeared (struct observer *observer); 269 extern void observer_notify_inferior_appeared (struct inferior *inf); 270 271 /* inferior_exit notifications. */ 272 273 typedef void (observer_inferior_exit_ftype) (struct inferior *inf); 274 275 extern struct observer *observer_attach_inferior_exit (observer_inferior_exit_ftype *f); 276 extern void observer_detach_inferior_exit (struct observer *observer); 277 extern void observer_notify_inferior_exit (struct inferior *inf); 278 279 /* inferior_removed notifications. */ 280 281 typedef void (observer_inferior_removed_ftype) (struct inferior *inf); 282 283 extern struct observer *observer_attach_inferior_removed (observer_inferior_removed_ftype *f); 284 extern void observer_detach_inferior_removed (struct observer *observer); 285 extern void observer_notify_inferior_removed (struct inferior *inf); 286 287 /* memory_changed notifications. */ 288 289 typedef void (observer_memory_changed_ftype) (struct inferior *inferior, CORE_ADDR addr, ssize_t len, const bfd_byte *data); 290 291 extern struct observer *observer_attach_memory_changed (observer_memory_changed_ftype *f); 292 extern void observer_detach_memory_changed (struct observer *observer); 293 extern void observer_notify_memory_changed (struct inferior *inferior, CORE_ADDR addr, ssize_t len, const bfd_byte *data); 294 295 /* before_prompt notifications. */ 296 297 typedef void (observer_before_prompt_ftype) (const char *current_prompt); 298 299 extern struct observer *observer_attach_before_prompt (observer_before_prompt_ftype *f); 300 extern void observer_detach_before_prompt (struct observer *observer); 301 extern void observer_notify_before_prompt (const char *current_prompt); 302 303 /* gdb_datadir_changed notifications. */ 304 305 typedef void (observer_gdb_datadir_changed_ftype) (void); 306 307 extern struct observer *observer_attach_gdb_datadir_changed (observer_gdb_datadir_changed_ftype *f); 308 extern void observer_detach_gdb_datadir_changed (struct observer *observer); 309 extern void observer_notify_gdb_datadir_changed (void); 310 311 /* command_param_changed notifications. */ 312 313 typedef void (observer_command_param_changed_ftype) (const char *param, const char *value); 314 315 extern struct observer *observer_attach_command_param_changed (observer_command_param_changed_ftype *f); 316 extern void observer_detach_command_param_changed (struct observer *observer); 317 extern void observer_notify_command_param_changed (const char *param, const char *value); 318 319 /* tsv_created notifications. */ 320 321 typedef void (observer_tsv_created_ftype) (const struct trace_state_variable *tsv); 322 323 extern struct observer *observer_attach_tsv_created (observer_tsv_created_ftype *f); 324 extern void observer_detach_tsv_created (struct observer *observer); 325 extern void observer_notify_tsv_created (const struct trace_state_variable *tsv); 326 327 /* tsv_deleted notifications. */ 328 329 typedef void (observer_tsv_deleted_ftype) (const struct trace_state_variable *tsv); 330 331 extern struct observer *observer_attach_tsv_deleted (observer_tsv_deleted_ftype *f); 332 extern void observer_detach_tsv_deleted (struct observer *observer); 333 extern void observer_notify_tsv_deleted (const struct trace_state_variable *tsv); 334 335 /* tsv_modified notifications. */ 336 337 typedef void (observer_tsv_modified_ftype) (const struct trace_state_variable *tsv); 338 339 extern struct observer *observer_attach_tsv_modified (observer_tsv_modified_ftype *f); 340 extern void observer_detach_tsv_modified (struct observer *observer); 341 extern void observer_notify_tsv_modified (const struct trace_state_variable *tsv); 342 343 /* inferior_call_pre notifications. */ 344 345 typedef void (observer_inferior_call_pre_ftype) (ptid_t thread, CORE_ADDR address); 346 347 extern struct observer *observer_attach_inferior_call_pre (observer_inferior_call_pre_ftype *f); 348 extern void observer_detach_inferior_call_pre (struct observer *observer); 349 extern void observer_notify_inferior_call_pre (ptid_t thread, CORE_ADDR address); 350 351 /* inferior_call_post notifications. */ 352 353 typedef void (observer_inferior_call_post_ftype) (ptid_t thread, CORE_ADDR address); 354 355 extern struct observer *observer_attach_inferior_call_post (observer_inferior_call_post_ftype *f); 356 extern void observer_detach_inferior_call_post (struct observer *observer); 357 extern void observer_notify_inferior_call_post (ptid_t thread, CORE_ADDR address); 358 359 /* register_changed notifications. */ 360 361 typedef void (observer_register_changed_ftype) (struct frame_info *frame, int regnum); 362 363 extern struct observer *observer_attach_register_changed (observer_register_changed_ftype *f); 364 extern void observer_detach_register_changed (struct observer *observer); 365 extern void observer_notify_register_changed (struct frame_info *frame, int regnum); 366 367 /* test_notification notifications. */ 368 369 typedef void (observer_test_notification_ftype) (int somearg); 370 371 extern struct observer *observer_attach_test_notification (observer_test_notification_ftype *f); 372 extern void observer_detach_test_notification (struct observer *observer); 373 extern void observer_notify_test_notification (int somearg); 374 375 /* user_selected_context_changed notifications. */ 376 377 typedef void (observer_user_selected_context_changed_ftype) (user_selected_what selection); 378 379 extern struct observer *observer_attach_user_selected_context_changed (observer_user_selected_context_changed_ftype *f); 380 extern void observer_detach_user_selected_context_changed (struct observer *observer); 381 extern void observer_notify_user_selected_context_changed (user_selected_what selection); 382 383 #endif /* OBSERVER_H */ 384