observer.inc revision 1.2 1 1.1 christos /* This file is automatically generated. DO NOT EDIT! */
2 1.2 christos /* Generated from: NetBSD: mknative-gdb,v 1.5 2011/11/06 19:46:12 christos Exp */
3 1.1 christos /* Generated from: NetBSD: mknative.common,v 1.9 2007/02/05 18:26:01 apb Exp */
4 1.1 christos
5 1.1 christos /* GDB Notifications to Observers.
6 1.1 christos
7 1.2 christos Copyright (C) 2004-2013 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
29 1.1 christos /* normal_stop notifications. */
30 1.1 christos
31 1.1 christos static struct observer_list *normal_stop_subject = NULL;
32 1.1 christos
33 1.1 christos struct normal_stop_args { struct bpstats *bs; int print_frame; };
34 1.1 christos
35 1.1 christos static void
36 1.1 christos observer_normal_stop_notification_stub (const void *data, const void *args_data)
37 1.1 christos {
38 1.1 christos observer_normal_stop_ftype *notify = (observer_normal_stop_ftype *) data;
39 1.1 christos const struct normal_stop_args *args = args_data;
40 1.1 christos notify (args->bs, args->print_frame);
41 1.1 christos }
42 1.1 christos
43 1.1 christos struct observer *
44 1.1 christos observer_attach_normal_stop (observer_normal_stop_ftype *f)
45 1.1 christos {
46 1.1 christos return generic_observer_attach (&normal_stop_subject,
47 1.1 christos &observer_normal_stop_notification_stub,
48 1.1 christos (void *) f);
49 1.1 christos }
50 1.1 christos
51 1.1 christos void
52 1.1 christos observer_detach_normal_stop (struct observer *observer)
53 1.1 christos {
54 1.1 christos generic_observer_detach (&normal_stop_subject, observer);
55 1.1 christos }
56 1.1 christos
57 1.1 christos void
58 1.1 christos observer_notify_normal_stop (struct bpstats *bs, int print_frame)
59 1.1 christos {
60 1.1 christos struct normal_stop_args args;
61 1.1 christos args.bs = bs, args.print_frame = print_frame;
62 1.1 christos
63 1.1 christos if (observer_debug)
64 1.1 christos fprintf_unfiltered (gdb_stdlog, "observer_notify_normal_stop() called\n");
65 1.1 christos generic_observer_notify (normal_stop_subject, &args);
66 1.1 christos }
67 1.1 christos
68 1.1 christos /* target_changed notifications. */
69 1.1 christos
70 1.1 christos static struct observer_list *target_changed_subject = NULL;
71 1.1 christos
72 1.1 christos struct target_changed_args { struct target_ops *target; };
73 1.1 christos
74 1.1 christos static void
75 1.1 christos observer_target_changed_notification_stub (const void *data, const void *args_data)
76 1.1 christos {
77 1.1 christos observer_target_changed_ftype *notify = (observer_target_changed_ftype *) data;
78 1.1 christos const struct target_changed_args *args = args_data;
79 1.1 christos notify (args->target);
80 1.1 christos }
81 1.1 christos
82 1.1 christos struct observer *
83 1.1 christos observer_attach_target_changed (observer_target_changed_ftype *f)
84 1.1 christos {
85 1.1 christos return generic_observer_attach (&target_changed_subject,
86 1.1 christos &observer_target_changed_notification_stub,
87 1.1 christos (void *) f);
88 1.1 christos }
89 1.1 christos
90 1.1 christos void
91 1.1 christos observer_detach_target_changed (struct observer *observer)
92 1.1 christos {
93 1.1 christos generic_observer_detach (&target_changed_subject, observer);
94 1.1 christos }
95 1.1 christos
96 1.1 christos void
97 1.1 christos observer_notify_target_changed (struct target_ops *target)
98 1.1 christos {
99 1.1 christos struct target_changed_args args;
100 1.1 christos args.target = target;
101 1.1 christos
102 1.1 christos if (observer_debug)
103 1.1 christos fprintf_unfiltered (gdb_stdlog, "observer_notify_target_changed() called\n");
104 1.1 christos generic_observer_notify (target_changed_subject, &args);
105 1.1 christos }
106 1.1 christos
107 1.1 christos /* executable_changed notifications. */
108 1.1 christos
109 1.1 christos static struct observer_list *executable_changed_subject = NULL;
110 1.1 christos
111 1.1 christos static void
112 1.1 christos observer_executable_changed_notification_stub (const void *data, const void *args_data)
113 1.1 christos {
114 1.1 christos observer_executable_changed_ftype *notify = (observer_executable_changed_ftype *) data;
115 1.1 christos notify ();
116 1.1 christos }
117 1.1 christos
118 1.1 christos struct observer *
119 1.1 christos observer_attach_executable_changed (observer_executable_changed_ftype *f)
120 1.1 christos {
121 1.1 christos return generic_observer_attach (&executable_changed_subject,
122 1.1 christos &observer_executable_changed_notification_stub,
123 1.1 christos (void *) f);
124 1.1 christos }
125 1.1 christos
126 1.1 christos void
127 1.1 christos observer_detach_executable_changed (struct observer *observer)
128 1.1 christos {
129 1.1 christos generic_observer_detach (&executable_changed_subject, observer);
130 1.1 christos }
131 1.1 christos
132 1.1 christos void
133 1.1 christos observer_notify_executable_changed (void)
134 1.1 christos {
135 1.1 christos char *args = NULL;
136 1.1 christos if (observer_debug)
137 1.1 christos fprintf_unfiltered (gdb_stdlog, "observer_notify_executable_changed() called\n");
138 1.1 christos generic_observer_notify (executable_changed_subject, &args);
139 1.1 christos }
140 1.1 christos
141 1.1 christos /* inferior_created notifications. */
142 1.1 christos
143 1.1 christos static struct observer_list *inferior_created_subject = NULL;
144 1.1 christos
145 1.1 christos struct inferior_created_args { struct target_ops *objfile; int from_tty; };
146 1.1 christos
147 1.1 christos static void
148 1.1 christos observer_inferior_created_notification_stub (const void *data, const void *args_data)
149 1.1 christos {
150 1.1 christos observer_inferior_created_ftype *notify = (observer_inferior_created_ftype *) data;
151 1.1 christos const struct inferior_created_args *args = args_data;
152 1.1 christos notify (args->objfile, args->from_tty);
153 1.1 christos }
154 1.1 christos
155 1.1 christos struct observer *
156 1.1 christos observer_attach_inferior_created (observer_inferior_created_ftype *f)
157 1.1 christos {
158 1.1 christos return generic_observer_attach (&inferior_created_subject,
159 1.1 christos &observer_inferior_created_notification_stub,
160 1.1 christos (void *) f);
161 1.1 christos }
162 1.1 christos
163 1.1 christos void
164 1.1 christos observer_detach_inferior_created (struct observer *observer)
165 1.1 christos {
166 1.1 christos generic_observer_detach (&inferior_created_subject, observer);
167 1.1 christos }
168 1.1 christos
169 1.1 christos void
170 1.1 christos observer_notify_inferior_created (struct target_ops *objfile, int from_tty)
171 1.1 christos {
172 1.1 christos struct inferior_created_args args;
173 1.1 christos args.objfile = objfile, args.from_tty = from_tty;
174 1.1 christos
175 1.1 christos if (observer_debug)
176 1.1 christos fprintf_unfiltered (gdb_stdlog, "observer_notify_inferior_created() called\n");
177 1.1 christos generic_observer_notify (inferior_created_subject, &args);
178 1.1 christos }
179 1.1 christos
180 1.2 christos /* record_changed notifications. */
181 1.2 christos
182 1.2 christos static struct observer_list *record_changed_subject = NULL;
183 1.2 christos
184 1.2 christos struct record_changed_args { struct inferior *inferior; int started; };
185 1.2 christos
186 1.2 christos static void
187 1.2 christos observer_record_changed_notification_stub (const void *data, const void *args_data)
188 1.2 christos {
189 1.2 christos observer_record_changed_ftype *notify = (observer_record_changed_ftype *) data;
190 1.2 christos const struct record_changed_args *args = args_data;
191 1.2 christos notify (args->inferior, args->started);
192 1.2 christos }
193 1.2 christos
194 1.2 christos struct observer *
195 1.2 christos observer_attach_record_changed (observer_record_changed_ftype *f)
196 1.2 christos {
197 1.2 christos return generic_observer_attach (&record_changed_subject,
198 1.2 christos &observer_record_changed_notification_stub,
199 1.2 christos (void *) f);
200 1.2 christos }
201 1.2 christos
202 1.2 christos void
203 1.2 christos observer_detach_record_changed (struct observer *observer)
204 1.2 christos {
205 1.2 christos generic_observer_detach (&record_changed_subject, observer);
206 1.2 christos }
207 1.2 christos
208 1.2 christos void
209 1.2 christos observer_notify_record_changed (struct inferior *inferior, int started)
210 1.2 christos {
211 1.2 christos struct record_changed_args args;
212 1.2 christos args.inferior = inferior, args.started = started;
213 1.2 christos
214 1.2 christos if (observer_debug)
215 1.2 christos fprintf_unfiltered (gdb_stdlog, "observer_notify_record_changed() called\n");
216 1.2 christos generic_observer_notify (record_changed_subject, &args);
217 1.2 christos }
218 1.2 christos
219 1.1 christos /* solib_loaded notifications. */
220 1.1 christos
221 1.1 christos static struct observer_list *solib_loaded_subject = NULL;
222 1.1 christos
223 1.1 christos struct solib_loaded_args { struct so_list *solib; };
224 1.1 christos
225 1.1 christos static void
226 1.1 christos observer_solib_loaded_notification_stub (const void *data, const void *args_data)
227 1.1 christos {
228 1.1 christos observer_solib_loaded_ftype *notify = (observer_solib_loaded_ftype *) data;
229 1.1 christos const struct solib_loaded_args *args = args_data;
230 1.1 christos notify (args->solib);
231 1.1 christos }
232 1.1 christos
233 1.1 christos struct observer *
234 1.1 christos observer_attach_solib_loaded (observer_solib_loaded_ftype *f)
235 1.1 christos {
236 1.1 christos return generic_observer_attach (&solib_loaded_subject,
237 1.1 christos &observer_solib_loaded_notification_stub,
238 1.1 christos (void *) f);
239 1.1 christos }
240 1.1 christos
241 1.1 christos void
242 1.1 christos observer_detach_solib_loaded (struct observer *observer)
243 1.1 christos {
244 1.1 christos generic_observer_detach (&solib_loaded_subject, observer);
245 1.1 christos }
246 1.1 christos
247 1.1 christos void
248 1.1 christos observer_notify_solib_loaded (struct so_list *solib)
249 1.1 christos {
250 1.1 christos struct solib_loaded_args args;
251 1.1 christos args.solib = solib;
252 1.1 christos
253 1.1 christos if (observer_debug)
254 1.1 christos fprintf_unfiltered (gdb_stdlog, "observer_notify_solib_loaded() called\n");
255 1.1 christos generic_observer_notify (solib_loaded_subject, &args);
256 1.1 christos }
257 1.1 christos
258 1.1 christos /* solib_unloaded notifications. */
259 1.1 christos
260 1.1 christos static struct observer_list *solib_unloaded_subject = NULL;
261 1.1 christos
262 1.1 christos struct solib_unloaded_args { struct so_list *solib; };
263 1.1 christos
264 1.1 christos static void
265 1.1 christos observer_solib_unloaded_notification_stub (const void *data, const void *args_data)
266 1.1 christos {
267 1.1 christos observer_solib_unloaded_ftype *notify = (observer_solib_unloaded_ftype *) data;
268 1.1 christos const struct solib_unloaded_args *args = args_data;
269 1.1 christos notify (args->solib);
270 1.1 christos }
271 1.1 christos
272 1.1 christos struct observer *
273 1.1 christos observer_attach_solib_unloaded (observer_solib_unloaded_ftype *f)
274 1.1 christos {
275 1.1 christos return generic_observer_attach (&solib_unloaded_subject,
276 1.1 christos &observer_solib_unloaded_notification_stub,
277 1.1 christos (void *) f);
278 1.1 christos }
279 1.1 christos
280 1.1 christos void
281 1.1 christos observer_detach_solib_unloaded (struct observer *observer)
282 1.1 christos {
283 1.1 christos generic_observer_detach (&solib_unloaded_subject, observer);
284 1.1 christos }
285 1.1 christos
286 1.1 christos void
287 1.1 christos observer_notify_solib_unloaded (struct so_list *solib)
288 1.1 christos {
289 1.1 christos struct solib_unloaded_args args;
290 1.1 christos args.solib = solib;
291 1.1 christos
292 1.1 christos if (observer_debug)
293 1.1 christos fprintf_unfiltered (gdb_stdlog, "observer_notify_solib_unloaded() called\n");
294 1.1 christos generic_observer_notify (solib_unloaded_subject, &args);
295 1.1 christos }
296 1.1 christos
297 1.1 christos /* new_objfile notifications. */
298 1.1 christos
299 1.1 christos static struct observer_list *new_objfile_subject = NULL;
300 1.1 christos
301 1.1 christos struct new_objfile_args { struct objfile *objfile; };
302 1.1 christos
303 1.1 christos static void
304 1.1 christos observer_new_objfile_notification_stub (const void *data, const void *args_data)
305 1.1 christos {
306 1.1 christos observer_new_objfile_ftype *notify = (observer_new_objfile_ftype *) data;
307 1.1 christos const struct new_objfile_args *args = args_data;
308 1.1 christos notify (args->objfile);
309 1.1 christos }
310 1.1 christos
311 1.1 christos struct observer *
312 1.1 christos observer_attach_new_objfile (observer_new_objfile_ftype *f)
313 1.1 christos {
314 1.1 christos return generic_observer_attach (&new_objfile_subject,
315 1.1 christos &observer_new_objfile_notification_stub,
316 1.1 christos (void *) f);
317 1.1 christos }
318 1.1 christos
319 1.1 christos void
320 1.1 christos observer_detach_new_objfile (struct observer *observer)
321 1.1 christos {
322 1.1 christos generic_observer_detach (&new_objfile_subject, observer);
323 1.1 christos }
324 1.1 christos
325 1.1 christos void
326 1.1 christos observer_notify_new_objfile (struct objfile *objfile)
327 1.1 christos {
328 1.1 christos struct new_objfile_args args;
329 1.1 christos args.objfile = objfile;
330 1.1 christos
331 1.1 christos if (observer_debug)
332 1.1 christos fprintf_unfiltered (gdb_stdlog, "observer_notify_new_objfile() called\n");
333 1.1 christos generic_observer_notify (new_objfile_subject, &args);
334 1.1 christos }
335 1.1 christos
336 1.1 christos /* new_thread notifications. */
337 1.1 christos
338 1.1 christos static struct observer_list *new_thread_subject = NULL;
339 1.1 christos
340 1.1 christos struct new_thread_args { struct thread_info *t; };
341 1.1 christos
342 1.1 christos static void
343 1.1 christos observer_new_thread_notification_stub (const void *data, const void *args_data)
344 1.1 christos {
345 1.1 christos observer_new_thread_ftype *notify = (observer_new_thread_ftype *) data;
346 1.1 christos const struct new_thread_args *args = args_data;
347 1.1 christos notify (args->t);
348 1.1 christos }
349 1.1 christos
350 1.1 christos struct observer *
351 1.1 christos observer_attach_new_thread (observer_new_thread_ftype *f)
352 1.1 christos {
353 1.1 christos return generic_observer_attach (&new_thread_subject,
354 1.1 christos &observer_new_thread_notification_stub,
355 1.1 christos (void *) f);
356 1.1 christos }
357 1.1 christos
358 1.1 christos void
359 1.1 christos observer_detach_new_thread (struct observer *observer)
360 1.1 christos {
361 1.1 christos generic_observer_detach (&new_thread_subject, observer);
362 1.1 christos }
363 1.1 christos
364 1.1 christos void
365 1.1 christos observer_notify_new_thread (struct thread_info *t)
366 1.1 christos {
367 1.1 christos struct new_thread_args args;
368 1.1 christos args.t = t;
369 1.1 christos
370 1.1 christos if (observer_debug)
371 1.1 christos fprintf_unfiltered (gdb_stdlog, "observer_notify_new_thread() called\n");
372 1.1 christos generic_observer_notify (new_thread_subject, &args);
373 1.1 christos }
374 1.1 christos
375 1.1 christos /* thread_exit notifications. */
376 1.1 christos
377 1.1 christos static struct observer_list *thread_exit_subject = NULL;
378 1.1 christos
379 1.1 christos struct thread_exit_args { struct thread_info *t; int silent; };
380 1.1 christos
381 1.1 christos static void
382 1.1 christos observer_thread_exit_notification_stub (const void *data, const void *args_data)
383 1.1 christos {
384 1.1 christos observer_thread_exit_ftype *notify = (observer_thread_exit_ftype *) data;
385 1.1 christos const struct thread_exit_args *args = args_data;
386 1.1 christos notify (args->t, args->silent);
387 1.1 christos }
388 1.1 christos
389 1.1 christos struct observer *
390 1.1 christos observer_attach_thread_exit (observer_thread_exit_ftype *f)
391 1.1 christos {
392 1.1 christos return generic_observer_attach (&thread_exit_subject,
393 1.1 christos &observer_thread_exit_notification_stub,
394 1.1 christos (void *) f);
395 1.1 christos }
396 1.1 christos
397 1.1 christos void
398 1.1 christos observer_detach_thread_exit (struct observer *observer)
399 1.1 christos {
400 1.1 christos generic_observer_detach (&thread_exit_subject, observer);
401 1.1 christos }
402 1.1 christos
403 1.1 christos void
404 1.1 christos observer_notify_thread_exit (struct thread_info *t, int silent)
405 1.1 christos {
406 1.1 christos struct thread_exit_args args;
407 1.1 christos args.t = t, args.silent = silent;
408 1.1 christos
409 1.1 christos if (observer_debug)
410 1.1 christos fprintf_unfiltered (gdb_stdlog, "observer_notify_thread_exit() called\n");
411 1.1 christos generic_observer_notify (thread_exit_subject, &args);
412 1.1 christos }
413 1.1 christos
414 1.1 christos /* thread_stop_requested notifications. */
415 1.1 christos
416 1.1 christos static struct observer_list *thread_stop_requested_subject = NULL;
417 1.1 christos
418 1.1 christos struct thread_stop_requested_args { ptid_t ptid; };
419 1.1 christos
420 1.1 christos static void
421 1.1 christos observer_thread_stop_requested_notification_stub (const void *data, const void *args_data)
422 1.1 christos {
423 1.1 christos observer_thread_stop_requested_ftype *notify = (observer_thread_stop_requested_ftype *) data;
424 1.1 christos const struct thread_stop_requested_args *args = args_data;
425 1.1 christos notify (args->ptid);
426 1.1 christos }
427 1.1 christos
428 1.1 christos struct observer *
429 1.1 christos observer_attach_thread_stop_requested (observer_thread_stop_requested_ftype *f)
430 1.1 christos {
431 1.1 christos return generic_observer_attach (&thread_stop_requested_subject,
432 1.1 christos &observer_thread_stop_requested_notification_stub,
433 1.1 christos (void *) f);
434 1.1 christos }
435 1.1 christos
436 1.1 christos void
437 1.1 christos observer_detach_thread_stop_requested (struct observer *observer)
438 1.1 christos {
439 1.1 christos generic_observer_detach (&thread_stop_requested_subject, observer);
440 1.1 christos }
441 1.1 christos
442 1.1 christos void
443 1.1 christos observer_notify_thread_stop_requested (ptid_t ptid)
444 1.1 christos {
445 1.1 christos struct thread_stop_requested_args args;
446 1.1 christos args.ptid = ptid;
447 1.1 christos
448 1.1 christos if (observer_debug)
449 1.1 christos fprintf_unfiltered (gdb_stdlog, "observer_notify_thread_stop_requested() called\n");
450 1.1 christos generic_observer_notify (thread_stop_requested_subject, &args);
451 1.1 christos }
452 1.1 christos
453 1.1 christos /* target_resumed notifications. */
454 1.1 christos
455 1.1 christos static struct observer_list *target_resumed_subject = NULL;
456 1.1 christos
457 1.1 christos struct target_resumed_args { ptid_t ptid; };
458 1.1 christos
459 1.1 christos static void
460 1.1 christos observer_target_resumed_notification_stub (const void *data, const void *args_data)
461 1.1 christos {
462 1.1 christos observer_target_resumed_ftype *notify = (observer_target_resumed_ftype *) data;
463 1.1 christos const struct target_resumed_args *args = args_data;
464 1.1 christos notify (args->ptid);
465 1.1 christos }
466 1.1 christos
467 1.1 christos struct observer *
468 1.1 christos observer_attach_target_resumed (observer_target_resumed_ftype *f)
469 1.1 christos {
470 1.1 christos return generic_observer_attach (&target_resumed_subject,
471 1.1 christos &observer_target_resumed_notification_stub,
472 1.1 christos (void *) f);
473 1.1 christos }
474 1.1 christos
475 1.1 christos void
476 1.1 christos observer_detach_target_resumed (struct observer *observer)
477 1.1 christos {
478 1.1 christos generic_observer_detach (&target_resumed_subject, observer);
479 1.1 christos }
480 1.1 christos
481 1.1 christos void
482 1.1 christos observer_notify_target_resumed (ptid_t ptid)
483 1.1 christos {
484 1.1 christos struct target_resumed_args args;
485 1.1 christos args.ptid = ptid;
486 1.1 christos
487 1.1 christos if (observer_debug)
488 1.1 christos fprintf_unfiltered (gdb_stdlog, "observer_notify_target_resumed() called\n");
489 1.1 christos generic_observer_notify (target_resumed_subject, &args);
490 1.1 christos }
491 1.1 christos
492 1.1 christos /* about_to_proceed notifications. */
493 1.1 christos
494 1.1 christos static struct observer_list *about_to_proceed_subject = NULL;
495 1.1 christos
496 1.1 christos static void
497 1.1 christos observer_about_to_proceed_notification_stub (const void *data, const void *args_data)
498 1.1 christos {
499 1.1 christos observer_about_to_proceed_ftype *notify = (observer_about_to_proceed_ftype *) data;
500 1.1 christos notify ();
501 1.1 christos }
502 1.1 christos
503 1.1 christos struct observer *
504 1.1 christos observer_attach_about_to_proceed (observer_about_to_proceed_ftype *f)
505 1.1 christos {
506 1.1 christos return generic_observer_attach (&about_to_proceed_subject,
507 1.1 christos &observer_about_to_proceed_notification_stub,
508 1.1 christos (void *) f);
509 1.1 christos }
510 1.1 christos
511 1.1 christos void
512 1.1 christos observer_detach_about_to_proceed (struct observer *observer)
513 1.1 christos {
514 1.1 christos generic_observer_detach (&about_to_proceed_subject, observer);
515 1.1 christos }
516 1.1 christos
517 1.1 christos void
518 1.1 christos observer_notify_about_to_proceed (void)
519 1.1 christos {
520 1.1 christos char *args = NULL;
521 1.1 christos if (observer_debug)
522 1.1 christos fprintf_unfiltered (gdb_stdlog, "observer_notify_about_to_proceed() called\n");
523 1.1 christos generic_observer_notify (about_to_proceed_subject, &args);
524 1.1 christos }
525 1.1 christos
526 1.1 christos /* breakpoint_created notifications. */
527 1.1 christos
528 1.1 christos static struct observer_list *breakpoint_created_subject = NULL;
529 1.1 christos
530 1.2 christos struct breakpoint_created_args { struct breakpoint *b; };
531 1.1 christos
532 1.1 christos static void
533 1.1 christos observer_breakpoint_created_notification_stub (const void *data, const void *args_data)
534 1.1 christos {
535 1.1 christos observer_breakpoint_created_ftype *notify = (observer_breakpoint_created_ftype *) data;
536 1.1 christos const struct breakpoint_created_args *args = args_data;
537 1.2 christos notify (args->b);
538 1.1 christos }
539 1.1 christos
540 1.1 christos struct observer *
541 1.1 christos observer_attach_breakpoint_created (observer_breakpoint_created_ftype *f)
542 1.1 christos {
543 1.1 christos return generic_observer_attach (&breakpoint_created_subject,
544 1.1 christos &observer_breakpoint_created_notification_stub,
545 1.1 christos (void *) f);
546 1.1 christos }
547 1.1 christos
548 1.1 christos void
549 1.1 christos observer_detach_breakpoint_created (struct observer *observer)
550 1.1 christos {
551 1.1 christos generic_observer_detach (&breakpoint_created_subject, observer);
552 1.1 christos }
553 1.1 christos
554 1.1 christos void
555 1.2 christos observer_notify_breakpoint_created (struct breakpoint *b)
556 1.1 christos {
557 1.1 christos struct breakpoint_created_args args;
558 1.2 christos args.b = b;
559 1.1 christos
560 1.1 christos if (observer_debug)
561 1.1 christos fprintf_unfiltered (gdb_stdlog, "observer_notify_breakpoint_created() called\n");
562 1.1 christos generic_observer_notify (breakpoint_created_subject, &args);
563 1.1 christos }
564 1.1 christos
565 1.1 christos /* breakpoint_deleted notifications. */
566 1.1 christos
567 1.1 christos static struct observer_list *breakpoint_deleted_subject = NULL;
568 1.1 christos
569 1.2 christos struct breakpoint_deleted_args { struct breakpoint *b; };
570 1.1 christos
571 1.1 christos static void
572 1.1 christos observer_breakpoint_deleted_notification_stub (const void *data, const void *args_data)
573 1.1 christos {
574 1.1 christos observer_breakpoint_deleted_ftype *notify = (observer_breakpoint_deleted_ftype *) data;
575 1.1 christos const struct breakpoint_deleted_args *args = args_data;
576 1.2 christos notify (args->b);
577 1.1 christos }
578 1.1 christos
579 1.1 christos struct observer *
580 1.1 christos observer_attach_breakpoint_deleted (observer_breakpoint_deleted_ftype *f)
581 1.1 christos {
582 1.1 christos return generic_observer_attach (&breakpoint_deleted_subject,
583 1.1 christos &observer_breakpoint_deleted_notification_stub,
584 1.1 christos (void *) f);
585 1.1 christos }
586 1.1 christos
587 1.1 christos void
588 1.1 christos observer_detach_breakpoint_deleted (struct observer *observer)
589 1.1 christos {
590 1.1 christos generic_observer_detach (&breakpoint_deleted_subject, observer);
591 1.1 christos }
592 1.1 christos
593 1.1 christos void
594 1.2 christos observer_notify_breakpoint_deleted (struct breakpoint *b)
595 1.1 christos {
596 1.1 christos struct breakpoint_deleted_args args;
597 1.2 christos args.b = b;
598 1.1 christos
599 1.1 christos if (observer_debug)
600 1.1 christos fprintf_unfiltered (gdb_stdlog, "observer_notify_breakpoint_deleted() called\n");
601 1.1 christos generic_observer_notify (breakpoint_deleted_subject, &args);
602 1.1 christos }
603 1.1 christos
604 1.1 christos /* breakpoint_modified notifications. */
605 1.1 christos
606 1.1 christos static struct observer_list *breakpoint_modified_subject = NULL;
607 1.1 christos
608 1.2 christos struct breakpoint_modified_args { struct breakpoint *b; };
609 1.1 christos
610 1.1 christos static void
611 1.1 christos observer_breakpoint_modified_notification_stub (const void *data, const void *args_data)
612 1.1 christos {
613 1.1 christos observer_breakpoint_modified_ftype *notify = (observer_breakpoint_modified_ftype *) data;
614 1.1 christos const struct breakpoint_modified_args *args = args_data;
615 1.2 christos notify (args->b);
616 1.1 christos }
617 1.1 christos
618 1.1 christos struct observer *
619 1.1 christos observer_attach_breakpoint_modified (observer_breakpoint_modified_ftype *f)
620 1.1 christos {
621 1.1 christos return generic_observer_attach (&breakpoint_modified_subject,
622 1.1 christos &observer_breakpoint_modified_notification_stub,
623 1.1 christos (void *) f);
624 1.1 christos }
625 1.1 christos
626 1.1 christos void
627 1.1 christos observer_detach_breakpoint_modified (struct observer *observer)
628 1.1 christos {
629 1.1 christos generic_observer_detach (&breakpoint_modified_subject, observer);
630 1.1 christos }
631 1.1 christos
632 1.1 christos void
633 1.2 christos observer_notify_breakpoint_modified (struct breakpoint *b)
634 1.1 christos {
635 1.1 christos struct breakpoint_modified_args args;
636 1.2 christos args.b = b;
637 1.1 christos
638 1.1 christos if (observer_debug)
639 1.1 christos fprintf_unfiltered (gdb_stdlog, "observer_notify_breakpoint_modified() called\n");
640 1.1 christos generic_observer_notify (breakpoint_modified_subject, &args);
641 1.1 christos }
642 1.1 christos
643 1.2 christos /* traceframe_changed notifications. */
644 1.1 christos
645 1.2 christos static struct observer_list *traceframe_changed_subject = NULL;
646 1.1 christos
647 1.2 christos struct traceframe_changed_args { int tfnum; int tpnum; };
648 1.1 christos
649 1.1 christos static void
650 1.2 christos observer_traceframe_changed_notification_stub (const void *data, const void *args_data)
651 1.1 christos {
652 1.2 christos observer_traceframe_changed_ftype *notify = (observer_traceframe_changed_ftype *) data;
653 1.2 christos const struct traceframe_changed_args *args = args_data;
654 1.2 christos notify (args->tfnum, args->tpnum);
655 1.1 christos }
656 1.1 christos
657 1.1 christos struct observer *
658 1.2 christos observer_attach_traceframe_changed (observer_traceframe_changed_ftype *f)
659 1.1 christos {
660 1.2 christos return generic_observer_attach (&traceframe_changed_subject,
661 1.2 christos &observer_traceframe_changed_notification_stub,
662 1.1 christos (void *) f);
663 1.1 christos }
664 1.1 christos
665 1.1 christos void
666 1.2 christos observer_detach_traceframe_changed (struct observer *observer)
667 1.1 christos {
668 1.2 christos generic_observer_detach (&traceframe_changed_subject, observer);
669 1.1 christos }
670 1.1 christos
671 1.1 christos void
672 1.2 christos observer_notify_traceframe_changed (int tfnum, int tpnum)
673 1.1 christos {
674 1.2 christos struct traceframe_changed_args args;
675 1.2 christos args.tfnum = tfnum, args.tpnum = tpnum;
676 1.1 christos
677 1.1 christos if (observer_debug)
678 1.2 christos fprintf_unfiltered (gdb_stdlog, "observer_notify_traceframe_changed() called\n");
679 1.2 christos generic_observer_notify (traceframe_changed_subject, &args);
680 1.1 christos }
681 1.1 christos
682 1.1 christos /* architecture_changed notifications. */
683 1.1 christos
684 1.1 christos static struct observer_list *architecture_changed_subject = NULL;
685 1.1 christos
686 1.1 christos struct architecture_changed_args { struct gdbarch *newarch; };
687 1.1 christos
688 1.1 christos static void
689 1.1 christos observer_architecture_changed_notification_stub (const void *data, const void *args_data)
690 1.1 christos {
691 1.1 christos observer_architecture_changed_ftype *notify = (observer_architecture_changed_ftype *) data;
692 1.1 christos const struct architecture_changed_args *args = args_data;
693 1.1 christos notify (args->newarch);
694 1.1 christos }
695 1.1 christos
696 1.1 christos struct observer *
697 1.1 christos observer_attach_architecture_changed (observer_architecture_changed_ftype *f)
698 1.1 christos {
699 1.1 christos return generic_observer_attach (&architecture_changed_subject,
700 1.1 christos &observer_architecture_changed_notification_stub,
701 1.1 christos (void *) f);
702 1.1 christos }
703 1.1 christos
704 1.1 christos void
705 1.1 christos observer_detach_architecture_changed (struct observer *observer)
706 1.1 christos {
707 1.1 christos generic_observer_detach (&architecture_changed_subject, observer);
708 1.1 christos }
709 1.1 christos
710 1.1 christos void
711 1.1 christos observer_notify_architecture_changed (struct gdbarch *newarch)
712 1.1 christos {
713 1.1 christos struct architecture_changed_args args;
714 1.1 christos args.newarch = newarch;
715 1.1 christos
716 1.1 christos if (observer_debug)
717 1.1 christos fprintf_unfiltered (gdb_stdlog, "observer_notify_architecture_changed() called\n");
718 1.1 christos generic_observer_notify (architecture_changed_subject, &args);
719 1.1 christos }
720 1.1 christos
721 1.1 christos /* thread_ptid_changed notifications. */
722 1.1 christos
723 1.1 christos static struct observer_list *thread_ptid_changed_subject = NULL;
724 1.1 christos
725 1.1 christos struct thread_ptid_changed_args { ptid_t old_ptid; ptid_t new_ptid; };
726 1.1 christos
727 1.1 christos static void
728 1.1 christos observer_thread_ptid_changed_notification_stub (const void *data, const void *args_data)
729 1.1 christos {
730 1.1 christos observer_thread_ptid_changed_ftype *notify = (observer_thread_ptid_changed_ftype *) data;
731 1.1 christos const struct thread_ptid_changed_args *args = args_data;
732 1.1 christos notify (args->old_ptid, args->new_ptid);
733 1.1 christos }
734 1.1 christos
735 1.1 christos struct observer *
736 1.1 christos observer_attach_thread_ptid_changed (observer_thread_ptid_changed_ftype *f)
737 1.1 christos {
738 1.1 christos return generic_observer_attach (&thread_ptid_changed_subject,
739 1.1 christos &observer_thread_ptid_changed_notification_stub,
740 1.1 christos (void *) f);
741 1.1 christos }
742 1.1 christos
743 1.1 christos void
744 1.1 christos observer_detach_thread_ptid_changed (struct observer *observer)
745 1.1 christos {
746 1.1 christos generic_observer_detach (&thread_ptid_changed_subject, observer);
747 1.1 christos }
748 1.1 christos
749 1.1 christos void
750 1.1 christos observer_notify_thread_ptid_changed (ptid_t old_ptid, ptid_t new_ptid)
751 1.1 christos {
752 1.1 christos struct thread_ptid_changed_args args;
753 1.1 christos args.old_ptid = old_ptid, args.new_ptid = new_ptid;
754 1.1 christos
755 1.1 christos if (observer_debug)
756 1.1 christos fprintf_unfiltered (gdb_stdlog, "observer_notify_thread_ptid_changed() called\n");
757 1.1 christos generic_observer_notify (thread_ptid_changed_subject, &args);
758 1.1 christos }
759 1.1 christos
760 1.1 christos /* inferior_added notifications. */
761 1.1 christos
762 1.1 christos static struct observer_list *inferior_added_subject = NULL;
763 1.1 christos
764 1.1 christos struct inferior_added_args { struct inferior *inf; };
765 1.1 christos
766 1.1 christos static void
767 1.1 christos observer_inferior_added_notification_stub (const void *data, const void *args_data)
768 1.1 christos {
769 1.1 christos observer_inferior_added_ftype *notify = (observer_inferior_added_ftype *) data;
770 1.1 christos const struct inferior_added_args *args = args_data;
771 1.1 christos notify (args->inf);
772 1.1 christos }
773 1.1 christos
774 1.1 christos struct observer *
775 1.1 christos observer_attach_inferior_added (observer_inferior_added_ftype *f)
776 1.1 christos {
777 1.1 christos return generic_observer_attach (&inferior_added_subject,
778 1.1 christos &observer_inferior_added_notification_stub,
779 1.1 christos (void *) f);
780 1.1 christos }
781 1.1 christos
782 1.1 christos void
783 1.1 christos observer_detach_inferior_added (struct observer *observer)
784 1.1 christos {
785 1.1 christos generic_observer_detach (&inferior_added_subject, observer);
786 1.1 christos }
787 1.1 christos
788 1.1 christos void
789 1.1 christos observer_notify_inferior_added (struct inferior *inf)
790 1.1 christos {
791 1.1 christos struct inferior_added_args args;
792 1.1 christos args.inf = inf;
793 1.1 christos
794 1.1 christos if (observer_debug)
795 1.1 christos fprintf_unfiltered (gdb_stdlog, "observer_notify_inferior_added() called\n");
796 1.1 christos generic_observer_notify (inferior_added_subject, &args);
797 1.1 christos }
798 1.1 christos
799 1.1 christos /* inferior_appeared notifications. */
800 1.1 christos
801 1.1 christos static struct observer_list *inferior_appeared_subject = NULL;
802 1.1 christos
803 1.1 christos struct inferior_appeared_args { struct inferior *inf; };
804 1.1 christos
805 1.1 christos static void
806 1.1 christos observer_inferior_appeared_notification_stub (const void *data, const void *args_data)
807 1.1 christos {
808 1.1 christos observer_inferior_appeared_ftype *notify = (observer_inferior_appeared_ftype *) data;
809 1.1 christos const struct inferior_appeared_args *args = args_data;
810 1.1 christos notify (args->inf);
811 1.1 christos }
812 1.1 christos
813 1.1 christos struct observer *
814 1.1 christos observer_attach_inferior_appeared (observer_inferior_appeared_ftype *f)
815 1.1 christos {
816 1.1 christos return generic_observer_attach (&inferior_appeared_subject,
817 1.1 christos &observer_inferior_appeared_notification_stub,
818 1.1 christos (void *) f);
819 1.1 christos }
820 1.1 christos
821 1.1 christos void
822 1.1 christos observer_detach_inferior_appeared (struct observer *observer)
823 1.1 christos {
824 1.1 christos generic_observer_detach (&inferior_appeared_subject, observer);
825 1.1 christos }
826 1.1 christos
827 1.1 christos void
828 1.1 christos observer_notify_inferior_appeared (struct inferior *inf)
829 1.1 christos {
830 1.1 christos struct inferior_appeared_args args;
831 1.1 christos args.inf = inf;
832 1.1 christos
833 1.1 christos if (observer_debug)
834 1.1 christos fprintf_unfiltered (gdb_stdlog, "observer_notify_inferior_appeared() called\n");
835 1.1 christos generic_observer_notify (inferior_appeared_subject, &args);
836 1.1 christos }
837 1.1 christos
838 1.1 christos /* inferior_exit notifications. */
839 1.1 christos
840 1.1 christos static struct observer_list *inferior_exit_subject = NULL;
841 1.1 christos
842 1.1 christos struct inferior_exit_args { struct inferior *inf; };
843 1.1 christos
844 1.1 christos static void
845 1.1 christos observer_inferior_exit_notification_stub (const void *data, const void *args_data)
846 1.1 christos {
847 1.1 christos observer_inferior_exit_ftype *notify = (observer_inferior_exit_ftype *) data;
848 1.1 christos const struct inferior_exit_args *args = args_data;
849 1.1 christos notify (args->inf);
850 1.1 christos }
851 1.1 christos
852 1.1 christos struct observer *
853 1.1 christos observer_attach_inferior_exit (observer_inferior_exit_ftype *f)
854 1.1 christos {
855 1.1 christos return generic_observer_attach (&inferior_exit_subject,
856 1.1 christos &observer_inferior_exit_notification_stub,
857 1.1 christos (void *) f);
858 1.1 christos }
859 1.1 christos
860 1.1 christos void
861 1.1 christos observer_detach_inferior_exit (struct observer *observer)
862 1.1 christos {
863 1.1 christos generic_observer_detach (&inferior_exit_subject, observer);
864 1.1 christos }
865 1.1 christos
866 1.1 christos void
867 1.1 christos observer_notify_inferior_exit (struct inferior *inf)
868 1.1 christos {
869 1.1 christos struct inferior_exit_args args;
870 1.1 christos args.inf = inf;
871 1.1 christos
872 1.1 christos if (observer_debug)
873 1.1 christos fprintf_unfiltered (gdb_stdlog, "observer_notify_inferior_exit() called\n");
874 1.1 christos generic_observer_notify (inferior_exit_subject, &args);
875 1.1 christos }
876 1.1 christos
877 1.1 christos /* inferior_removed notifications. */
878 1.1 christos
879 1.1 christos static struct observer_list *inferior_removed_subject = NULL;
880 1.1 christos
881 1.1 christos struct inferior_removed_args { struct inferior *inf; };
882 1.1 christos
883 1.1 christos static void
884 1.1 christos observer_inferior_removed_notification_stub (const void *data, const void *args_data)
885 1.1 christos {
886 1.1 christos observer_inferior_removed_ftype *notify = (observer_inferior_removed_ftype *) data;
887 1.1 christos const struct inferior_removed_args *args = args_data;
888 1.1 christos notify (args->inf);
889 1.1 christos }
890 1.1 christos
891 1.1 christos struct observer *
892 1.1 christos observer_attach_inferior_removed (observer_inferior_removed_ftype *f)
893 1.1 christos {
894 1.1 christos return generic_observer_attach (&inferior_removed_subject,
895 1.1 christos &observer_inferior_removed_notification_stub,
896 1.1 christos (void *) f);
897 1.1 christos }
898 1.1 christos
899 1.1 christos void
900 1.1 christos observer_detach_inferior_removed (struct observer *observer)
901 1.1 christos {
902 1.1 christos generic_observer_detach (&inferior_removed_subject, observer);
903 1.1 christos }
904 1.1 christos
905 1.1 christos void
906 1.1 christos observer_notify_inferior_removed (struct inferior *inf)
907 1.1 christos {
908 1.1 christos struct inferior_removed_args args;
909 1.1 christos args.inf = inf;
910 1.1 christos
911 1.1 christos if (observer_debug)
912 1.1 christos fprintf_unfiltered (gdb_stdlog, "observer_notify_inferior_removed() called\n");
913 1.1 christos generic_observer_notify (inferior_removed_subject, &args);
914 1.1 christos }
915 1.1 christos
916 1.1 christos /* memory_changed notifications. */
917 1.1 christos
918 1.1 christos static struct observer_list *memory_changed_subject = NULL;
919 1.1 christos
920 1.2 christos struct memory_changed_args { struct inferior *inferior; CORE_ADDR addr; ssize_t len; const bfd_byte *data; };
921 1.1 christos
922 1.1 christos static void
923 1.1 christos observer_memory_changed_notification_stub (const void *data, const void *args_data)
924 1.1 christos {
925 1.1 christos observer_memory_changed_ftype *notify = (observer_memory_changed_ftype *) data;
926 1.1 christos const struct memory_changed_args *args = args_data;
927 1.2 christos notify (args->inferior, args->addr, args->len, args->data);
928 1.1 christos }
929 1.1 christos
930 1.1 christos struct observer *
931 1.1 christos observer_attach_memory_changed (observer_memory_changed_ftype *f)
932 1.1 christos {
933 1.1 christos return generic_observer_attach (&memory_changed_subject,
934 1.1 christos &observer_memory_changed_notification_stub,
935 1.1 christos (void *) f);
936 1.1 christos }
937 1.1 christos
938 1.1 christos void
939 1.1 christos observer_detach_memory_changed (struct observer *observer)
940 1.1 christos {
941 1.1 christos generic_observer_detach (&memory_changed_subject, observer);
942 1.1 christos }
943 1.1 christos
944 1.1 christos void
945 1.2 christos observer_notify_memory_changed (struct inferior *inferior, CORE_ADDR addr, ssize_t len, const bfd_byte *data)
946 1.1 christos {
947 1.1 christos struct memory_changed_args args;
948 1.2 christos args.inferior = inferior, args.addr = addr, args.len = len, args.data = data;
949 1.1 christos
950 1.1 christos if (observer_debug)
951 1.1 christos fprintf_unfiltered (gdb_stdlog, "observer_notify_memory_changed() called\n");
952 1.1 christos generic_observer_notify (memory_changed_subject, &args);
953 1.1 christos }
954 1.1 christos
955 1.2 christos /* before_prompt notifications. */
956 1.2 christos
957 1.2 christos static struct observer_list *before_prompt_subject = NULL;
958 1.2 christos
959 1.2 christos struct before_prompt_args { const char *current_prompt; };
960 1.2 christos
961 1.2 christos static void
962 1.2 christos observer_before_prompt_notification_stub (const void *data, const void *args_data)
963 1.2 christos {
964 1.2 christos observer_before_prompt_ftype *notify = (observer_before_prompt_ftype *) data;
965 1.2 christos const struct before_prompt_args *args = args_data;
966 1.2 christos notify (args->current_prompt);
967 1.2 christos }
968 1.2 christos
969 1.2 christos struct observer *
970 1.2 christos observer_attach_before_prompt (observer_before_prompt_ftype *f)
971 1.2 christos {
972 1.2 christos return generic_observer_attach (&before_prompt_subject,
973 1.2 christos &observer_before_prompt_notification_stub,
974 1.2 christos (void *) f);
975 1.2 christos }
976 1.2 christos
977 1.2 christos void
978 1.2 christos observer_detach_before_prompt (struct observer *observer)
979 1.2 christos {
980 1.2 christos generic_observer_detach (&before_prompt_subject, observer);
981 1.2 christos }
982 1.2 christos
983 1.2 christos void
984 1.2 christos observer_notify_before_prompt (const char *current_prompt)
985 1.2 christos {
986 1.2 christos struct before_prompt_args args;
987 1.2 christos args.current_prompt = current_prompt;
988 1.2 christos
989 1.2 christos if (observer_debug)
990 1.2 christos fprintf_unfiltered (gdb_stdlog, "observer_notify_before_prompt() called\n");
991 1.2 christos generic_observer_notify (before_prompt_subject, &args);
992 1.2 christos }
993 1.2 christos
994 1.2 christos /* gdb_datadir_changed notifications. */
995 1.2 christos
996 1.2 christos static struct observer_list *gdb_datadir_changed_subject = NULL;
997 1.2 christos
998 1.2 christos static void
999 1.2 christos observer_gdb_datadir_changed_notification_stub (const void *data, const void *args_data)
1000 1.2 christos {
1001 1.2 christos observer_gdb_datadir_changed_ftype *notify = (observer_gdb_datadir_changed_ftype *) data;
1002 1.2 christos notify ();
1003 1.2 christos }
1004 1.2 christos
1005 1.2 christos struct observer *
1006 1.2 christos observer_attach_gdb_datadir_changed (observer_gdb_datadir_changed_ftype *f)
1007 1.2 christos {
1008 1.2 christos return generic_observer_attach (&gdb_datadir_changed_subject,
1009 1.2 christos &observer_gdb_datadir_changed_notification_stub,
1010 1.2 christos (void *) f);
1011 1.2 christos }
1012 1.2 christos
1013 1.2 christos void
1014 1.2 christos observer_detach_gdb_datadir_changed (struct observer *observer)
1015 1.2 christos {
1016 1.2 christos generic_observer_detach (&gdb_datadir_changed_subject, observer);
1017 1.2 christos }
1018 1.2 christos
1019 1.2 christos void
1020 1.2 christos observer_notify_gdb_datadir_changed (void)
1021 1.2 christos {
1022 1.2 christos char *args = NULL;
1023 1.2 christos if (observer_debug)
1024 1.2 christos fprintf_unfiltered (gdb_stdlog, "observer_notify_gdb_datadir_changed() called\n");
1025 1.2 christos generic_observer_notify (gdb_datadir_changed_subject, &args);
1026 1.2 christos }
1027 1.2 christos
1028 1.2 christos /* command_param_changed notifications. */
1029 1.2 christos
1030 1.2 christos static struct observer_list *command_param_changed_subject = NULL;
1031 1.2 christos
1032 1.2 christos struct command_param_changed_args { const char *param; const char *value; };
1033 1.2 christos
1034 1.2 christos static void
1035 1.2 christos observer_command_param_changed_notification_stub (const void *data, const void *args_data)
1036 1.2 christos {
1037 1.2 christos observer_command_param_changed_ftype *notify = (observer_command_param_changed_ftype *) data;
1038 1.2 christos const struct command_param_changed_args *args = args_data;
1039 1.2 christos notify (args->param, args->value);
1040 1.2 christos }
1041 1.2 christos
1042 1.2 christos struct observer *
1043 1.2 christos observer_attach_command_param_changed (observer_command_param_changed_ftype *f)
1044 1.2 christos {
1045 1.2 christos return generic_observer_attach (&command_param_changed_subject,
1046 1.2 christos &observer_command_param_changed_notification_stub,
1047 1.2 christos (void *) f);
1048 1.2 christos }
1049 1.2 christos
1050 1.2 christos void
1051 1.2 christos observer_detach_command_param_changed (struct observer *observer)
1052 1.2 christos {
1053 1.2 christos generic_observer_detach (&command_param_changed_subject, observer);
1054 1.2 christos }
1055 1.2 christos
1056 1.2 christos void
1057 1.2 christos observer_notify_command_param_changed (const char *param, const char *value)
1058 1.2 christos {
1059 1.2 christos struct command_param_changed_args args;
1060 1.2 christos args.param = param, args.value = value;
1061 1.2 christos
1062 1.2 christos if (observer_debug)
1063 1.2 christos fprintf_unfiltered (gdb_stdlog, "observer_notify_command_param_changed() called\n");
1064 1.2 christos generic_observer_notify (command_param_changed_subject, &args);
1065 1.2 christos }
1066 1.2 christos
1067 1.2 christos /* tsv_created notifications. */
1068 1.2 christos
1069 1.2 christos static struct observer_list *tsv_created_subject = NULL;
1070 1.2 christos
1071 1.2 christos struct tsv_created_args { const struct trace_state_variable *tsv; };
1072 1.2 christos
1073 1.2 christos static void
1074 1.2 christos observer_tsv_created_notification_stub (const void *data, const void *args_data)
1075 1.2 christos {
1076 1.2 christos observer_tsv_created_ftype *notify = (observer_tsv_created_ftype *) data;
1077 1.2 christos const struct tsv_created_args *args = args_data;
1078 1.2 christos notify (args->tsv);
1079 1.2 christos }
1080 1.2 christos
1081 1.2 christos struct observer *
1082 1.2 christos observer_attach_tsv_created (observer_tsv_created_ftype *f)
1083 1.2 christos {
1084 1.2 christos return generic_observer_attach (&tsv_created_subject,
1085 1.2 christos &observer_tsv_created_notification_stub,
1086 1.2 christos (void *) f);
1087 1.2 christos }
1088 1.2 christos
1089 1.2 christos void
1090 1.2 christos observer_detach_tsv_created (struct observer *observer)
1091 1.2 christos {
1092 1.2 christos generic_observer_detach (&tsv_created_subject, observer);
1093 1.2 christos }
1094 1.2 christos
1095 1.2 christos void
1096 1.2 christos observer_notify_tsv_created (const struct trace_state_variable *tsv)
1097 1.2 christos {
1098 1.2 christos struct tsv_created_args args;
1099 1.2 christos args.tsv = tsv;
1100 1.2 christos
1101 1.2 christos if (observer_debug)
1102 1.2 christos fprintf_unfiltered (gdb_stdlog, "observer_notify_tsv_created() called\n");
1103 1.2 christos generic_observer_notify (tsv_created_subject, &args);
1104 1.2 christos }
1105 1.2 christos
1106 1.2 christos /* tsv_deleted notifications. */
1107 1.2 christos
1108 1.2 christos static struct observer_list *tsv_deleted_subject = NULL;
1109 1.2 christos
1110 1.2 christos struct tsv_deleted_args { const struct trace_state_variable *tsv; };
1111 1.2 christos
1112 1.2 christos static void
1113 1.2 christos observer_tsv_deleted_notification_stub (const void *data, const void *args_data)
1114 1.2 christos {
1115 1.2 christos observer_tsv_deleted_ftype *notify = (observer_tsv_deleted_ftype *) data;
1116 1.2 christos const struct tsv_deleted_args *args = args_data;
1117 1.2 christos notify (args->tsv);
1118 1.2 christos }
1119 1.2 christos
1120 1.2 christos struct observer *
1121 1.2 christos observer_attach_tsv_deleted (observer_tsv_deleted_ftype *f)
1122 1.2 christos {
1123 1.2 christos return generic_observer_attach (&tsv_deleted_subject,
1124 1.2 christos &observer_tsv_deleted_notification_stub,
1125 1.2 christos (void *) f);
1126 1.2 christos }
1127 1.2 christos
1128 1.2 christos void
1129 1.2 christos observer_detach_tsv_deleted (struct observer *observer)
1130 1.2 christos {
1131 1.2 christos generic_observer_detach (&tsv_deleted_subject, observer);
1132 1.2 christos }
1133 1.2 christos
1134 1.2 christos void
1135 1.2 christos observer_notify_tsv_deleted (const struct trace_state_variable *tsv)
1136 1.2 christos {
1137 1.2 christos struct tsv_deleted_args args;
1138 1.2 christos args.tsv = tsv;
1139 1.2 christos
1140 1.2 christos if (observer_debug)
1141 1.2 christos fprintf_unfiltered (gdb_stdlog, "observer_notify_tsv_deleted() called\n");
1142 1.2 christos generic_observer_notify (tsv_deleted_subject, &args);
1143 1.2 christos }
1144 1.2 christos
1145 1.2 christos /* tsv_modified notifications. */
1146 1.2 christos
1147 1.2 christos static struct observer_list *tsv_modified_subject = NULL;
1148 1.2 christos
1149 1.2 christos struct tsv_modified_args { const struct trace_state_variable *tsv; };
1150 1.2 christos
1151 1.2 christos static void
1152 1.2 christos observer_tsv_modified_notification_stub (const void *data, const void *args_data)
1153 1.2 christos {
1154 1.2 christos observer_tsv_modified_ftype *notify = (observer_tsv_modified_ftype *) data;
1155 1.2 christos const struct tsv_modified_args *args = args_data;
1156 1.2 christos notify (args->tsv);
1157 1.2 christos }
1158 1.2 christos
1159 1.2 christos struct observer *
1160 1.2 christos observer_attach_tsv_modified (observer_tsv_modified_ftype *f)
1161 1.2 christos {
1162 1.2 christos return generic_observer_attach (&tsv_modified_subject,
1163 1.2 christos &observer_tsv_modified_notification_stub,
1164 1.2 christos (void *) f);
1165 1.2 christos }
1166 1.2 christos
1167 1.2 christos void
1168 1.2 christos observer_detach_tsv_modified (struct observer *observer)
1169 1.2 christos {
1170 1.2 christos generic_observer_detach (&tsv_modified_subject, observer);
1171 1.2 christos }
1172 1.2 christos
1173 1.2 christos void
1174 1.2 christos observer_notify_tsv_modified (const struct trace_state_variable *tsv)
1175 1.2 christos {
1176 1.2 christos struct tsv_modified_args args;
1177 1.2 christos args.tsv = tsv;
1178 1.2 christos
1179 1.2 christos if (observer_debug)
1180 1.2 christos fprintf_unfiltered (gdb_stdlog, "observer_notify_tsv_modified() called\n");
1181 1.2 christos generic_observer_notify (tsv_modified_subject, &args);
1182 1.2 christos }
1183 1.2 christos
1184 1.1 christos /* test_notification notifications. */
1185 1.1 christos
1186 1.1 christos static struct observer_list *test_notification_subject = NULL;
1187 1.1 christos
1188 1.1 christos struct test_notification_args { int somearg; };
1189 1.1 christos
1190 1.1 christos static void
1191 1.1 christos observer_test_notification_notification_stub (const void *data, const void *args_data)
1192 1.1 christos {
1193 1.1 christos observer_test_notification_ftype *notify = (observer_test_notification_ftype *) data;
1194 1.1 christos const struct test_notification_args *args = args_data;
1195 1.1 christos notify (args->somearg);
1196 1.1 christos }
1197 1.1 christos
1198 1.1 christos struct observer *
1199 1.1 christos observer_attach_test_notification (observer_test_notification_ftype *f)
1200 1.1 christos {
1201 1.1 christos return generic_observer_attach (&test_notification_subject,
1202 1.1 christos &observer_test_notification_notification_stub,
1203 1.1 christos (void *) f);
1204 1.1 christos }
1205 1.1 christos
1206 1.1 christos void
1207 1.1 christos observer_detach_test_notification (struct observer *observer)
1208 1.1 christos {
1209 1.1 christos generic_observer_detach (&test_notification_subject, observer);
1210 1.1 christos }
1211 1.1 christos
1212 1.1 christos void
1213 1.1 christos observer_notify_test_notification (int somearg)
1214 1.1 christos {
1215 1.1 christos struct test_notification_args args;
1216 1.1 christos args.somearg = somearg;
1217 1.1 christos
1218 1.1 christos if (observer_debug)
1219 1.1 christos fprintf_unfiltered (gdb_stdlog, "observer_notify_test_notification() called\n");
1220 1.1 christos generic_observer_notify (test_notification_subject, &args);
1221 1.1 christos }
1222