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