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