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