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