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