xref: /netbsd-src/external/gpl3/gdb/lib/libgdb/arch/arm/observer.h (revision 8b7331e524ed361bf23f656b4caa416ca7a5670f)
1cfa2879dSchristos /* This file is automatically generated.  DO NOT EDIT! */
2*8b7331e5Schristos /* Generated from: NetBSD: mknative-gdb,v 1.7 2016/10/16 04:37:42 mrg Exp  */
3*8b7331e5Schristos /* Generated from: NetBSD: mknative.common,v 1.15 2017/11/29 03:32:28 christos Exp  */
4cfa2879dSchristos 
5cfa2879dSchristos /* GDB Notifications to Observers.
6cfa2879dSchristos 
7*8b7331e5Schristos    Copyright (C) 2004-2017 Free Software Foundation, Inc.
8cfa2879dSchristos 
9cfa2879dSchristos    This file is part of GDB.
10cfa2879dSchristos 
11cfa2879dSchristos    This program is free software; you can redistribute it and/or modify
12cfa2879dSchristos    it under the terms of the GNU General Public License as published by
13cfa2879dSchristos    the Free Software Foundation; either version 3 of the License, or
14cfa2879dSchristos    (at your option) any later version.
15cfa2879dSchristos 
16cfa2879dSchristos    This program is distributed in the hope that it will be useful,
17cfa2879dSchristos    but WITHOUT ANY WARRANTY; without even the implied warranty of
18cfa2879dSchristos    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
19cfa2879dSchristos    GNU General Public License for more details.
20cfa2879dSchristos 
21cfa2879dSchristos    You should have received a copy of the GNU General Public License
22cfa2879dSchristos    along with this program.  If not, see <http://www.gnu.org/licenses/>.
23cfa2879dSchristos 
24cfa2879dSchristos    --
25cfa2879dSchristos 
26cfa2879dSchristos    This file was generated using observer.sh and observer.texi.  */
27cfa2879dSchristos 
28cfa2879dSchristos #ifndef OBSERVER_H
29cfa2879dSchristos #define OBSERVER_H
30cfa2879dSchristos 
31cfa2879dSchristos struct observer;
32cfa2879dSchristos struct bpstats;
33cfa2879dSchristos struct so_list;
34cfa2879dSchristos struct objfile;
35cfa2879dSchristos struct thread_info;
3634f40950Schristos struct inferior;
3734f40950Schristos struct trace_state_variable;
38cfa2879dSchristos 
39cfa2879dSchristos /* normal_stop notifications.  */
40cfa2879dSchristos 
41cfa2879dSchristos typedef void (observer_normal_stop_ftype) (struct bpstats *bs, int print_frame);
42cfa2879dSchristos 
43cfa2879dSchristos extern struct observer *observer_attach_normal_stop (observer_normal_stop_ftype *f);
44cfa2879dSchristos extern void observer_detach_normal_stop (struct observer *observer);
45cfa2879dSchristos extern void observer_notify_normal_stop (struct bpstats *bs, int print_frame);
46cfa2879dSchristos 
479ca90fdcSchristos /* signal_received notifications.  */
489ca90fdcSchristos 
499ca90fdcSchristos typedef void (observer_signal_received_ftype) (enum gdb_signal siggnal);
509ca90fdcSchristos 
519ca90fdcSchristos extern struct observer *observer_attach_signal_received (observer_signal_received_ftype *f);
529ca90fdcSchristos extern void observer_detach_signal_received (struct observer *observer);
539ca90fdcSchristos extern void observer_notify_signal_received (enum gdb_signal siggnal);
549ca90fdcSchristos 
559ca90fdcSchristos /* end_stepping_range notifications.  */
569ca90fdcSchristos 
579ca90fdcSchristos typedef void (observer_end_stepping_range_ftype) (void);
589ca90fdcSchristos 
599ca90fdcSchristos extern struct observer *observer_attach_end_stepping_range (observer_end_stepping_range_ftype *f);
609ca90fdcSchristos extern void observer_detach_end_stepping_range (struct observer *observer);
619ca90fdcSchristos extern void observer_notify_end_stepping_range (void);
629ca90fdcSchristos 
639ca90fdcSchristos /* signal_exited notifications.  */
649ca90fdcSchristos 
659ca90fdcSchristos typedef void (observer_signal_exited_ftype) (enum gdb_signal siggnal);
669ca90fdcSchristos 
679ca90fdcSchristos extern struct observer *observer_attach_signal_exited (observer_signal_exited_ftype *f);
689ca90fdcSchristos extern void observer_detach_signal_exited (struct observer *observer);
699ca90fdcSchristos extern void observer_notify_signal_exited (enum gdb_signal siggnal);
709ca90fdcSchristos 
719ca90fdcSchristos /* exited notifications.  */
729ca90fdcSchristos 
739ca90fdcSchristos typedef void (observer_exited_ftype) (int exitstatus);
749ca90fdcSchristos 
759ca90fdcSchristos extern struct observer *observer_attach_exited (observer_exited_ftype *f);
769ca90fdcSchristos extern void observer_detach_exited (struct observer *observer);
779ca90fdcSchristos extern void observer_notify_exited (int exitstatus);
789ca90fdcSchristos 
799ca90fdcSchristos /* no_history notifications.  */
809ca90fdcSchristos 
819ca90fdcSchristos typedef void (observer_no_history_ftype) (void);
829ca90fdcSchristos 
839ca90fdcSchristos extern struct observer *observer_attach_no_history (observer_no_history_ftype *f);
849ca90fdcSchristos extern void observer_detach_no_history (struct observer *observer);
859ca90fdcSchristos extern void observer_notify_no_history (void);
869ca90fdcSchristos 
879ca90fdcSchristos /* sync_execution_done notifications.  */
889ca90fdcSchristos 
899ca90fdcSchristos typedef void (observer_sync_execution_done_ftype) (void);
909ca90fdcSchristos 
919ca90fdcSchristos extern struct observer *observer_attach_sync_execution_done (observer_sync_execution_done_ftype *f);
929ca90fdcSchristos extern void observer_detach_sync_execution_done (struct observer *observer);
939ca90fdcSchristos extern void observer_notify_sync_execution_done (void);
949ca90fdcSchristos 
959ca90fdcSchristos /* command_error notifications.  */
969ca90fdcSchristos 
979ca90fdcSchristos typedef void (observer_command_error_ftype) (void);
989ca90fdcSchristos 
999ca90fdcSchristos extern struct observer *observer_attach_command_error (observer_command_error_ftype *f);
1009ca90fdcSchristos extern void observer_detach_command_error (struct observer *observer);
1019ca90fdcSchristos extern void observer_notify_command_error (void);
1029ca90fdcSchristos 
103cfa2879dSchristos /* target_changed notifications.  */
104cfa2879dSchristos 
105cfa2879dSchristos typedef void (observer_target_changed_ftype) (struct target_ops *target);
106cfa2879dSchristos 
107cfa2879dSchristos extern struct observer *observer_attach_target_changed (observer_target_changed_ftype *f);
108cfa2879dSchristos extern void observer_detach_target_changed (struct observer *observer);
109cfa2879dSchristos extern void observer_notify_target_changed (struct target_ops *target);
110cfa2879dSchristos 
111cfa2879dSchristos /* executable_changed notifications.  */
112cfa2879dSchristos 
113cfa2879dSchristos typedef void (observer_executable_changed_ftype) (void);
114cfa2879dSchristos 
115cfa2879dSchristos extern struct observer *observer_attach_executable_changed (observer_executable_changed_ftype *f);
116cfa2879dSchristos extern void observer_detach_executable_changed (struct observer *observer);
117cfa2879dSchristos extern void observer_notify_executable_changed (void);
118cfa2879dSchristos 
119cfa2879dSchristos /* inferior_created notifications.  */
120cfa2879dSchristos 
121cfa2879dSchristos typedef void (observer_inferior_created_ftype) (struct target_ops *objfile, int from_tty);
122cfa2879dSchristos 
123cfa2879dSchristos extern struct observer *observer_attach_inferior_created (observer_inferior_created_ftype *f);
124cfa2879dSchristos extern void observer_detach_inferior_created (struct observer *observer);
125cfa2879dSchristos extern void observer_notify_inferior_created (struct target_ops *objfile, int from_tty);
126cfa2879dSchristos 
12734f40950Schristos /* record_changed notifications.  */
12834f40950Schristos 
12947f5dba6Smrg typedef void (observer_record_changed_ftype) (struct inferior *inferior, int started, const char *method, const char *format);
13034f40950Schristos 
13134f40950Schristos extern struct observer *observer_attach_record_changed (observer_record_changed_ftype *f);
13234f40950Schristos extern void observer_detach_record_changed (struct observer *observer);
13347f5dba6Smrg extern void observer_notify_record_changed (struct inferior *inferior, int started, const char *method, const char *format);
13434f40950Schristos 
135cfa2879dSchristos /* solib_loaded notifications.  */
136cfa2879dSchristos 
137cfa2879dSchristos typedef void (observer_solib_loaded_ftype) (struct so_list *solib);
138cfa2879dSchristos 
139cfa2879dSchristos extern struct observer *observer_attach_solib_loaded (observer_solib_loaded_ftype *f);
140cfa2879dSchristos extern void observer_detach_solib_loaded (struct observer *observer);
141cfa2879dSchristos extern void observer_notify_solib_loaded (struct so_list *solib);
142cfa2879dSchristos 
143cfa2879dSchristos /* solib_unloaded notifications.  */
144cfa2879dSchristos 
145cfa2879dSchristos typedef void (observer_solib_unloaded_ftype) (struct so_list *solib);
146cfa2879dSchristos 
147cfa2879dSchristos extern struct observer *observer_attach_solib_unloaded (observer_solib_unloaded_ftype *f);
148cfa2879dSchristos extern void observer_detach_solib_unloaded (struct observer *observer);
149cfa2879dSchristos extern void observer_notify_solib_unloaded (struct so_list *solib);
150cfa2879dSchristos 
151cfa2879dSchristos /* new_objfile notifications.  */
152cfa2879dSchristos 
153cfa2879dSchristos typedef void (observer_new_objfile_ftype) (struct objfile *objfile);
154cfa2879dSchristos 
155cfa2879dSchristos extern struct observer *observer_attach_new_objfile (observer_new_objfile_ftype *f);
156cfa2879dSchristos extern void observer_detach_new_objfile (struct observer *observer);
157cfa2879dSchristos extern void observer_notify_new_objfile (struct objfile *objfile);
158cfa2879dSchristos 
159541eeb6cSmrg /* free_objfile notifications.  */
160541eeb6cSmrg 
161541eeb6cSmrg typedef void (observer_free_objfile_ftype) (struct objfile *objfile);
162541eeb6cSmrg 
163541eeb6cSmrg extern struct observer *observer_attach_free_objfile (observer_free_objfile_ftype *f);
164541eeb6cSmrg extern void observer_detach_free_objfile (struct observer *observer);
165541eeb6cSmrg extern void observer_notify_free_objfile (struct objfile *objfile);
166541eeb6cSmrg 
167cfa2879dSchristos /* new_thread notifications.  */
168cfa2879dSchristos 
169cfa2879dSchristos typedef void (observer_new_thread_ftype) (struct thread_info *t);
170cfa2879dSchristos 
171cfa2879dSchristos extern struct observer *observer_attach_new_thread (observer_new_thread_ftype *f);
172cfa2879dSchristos extern void observer_detach_new_thread (struct observer *observer);
173cfa2879dSchristos extern void observer_notify_new_thread (struct thread_info *t);
174cfa2879dSchristos 
175cfa2879dSchristos /* thread_exit notifications.  */
176cfa2879dSchristos 
177cfa2879dSchristos typedef void (observer_thread_exit_ftype) (struct thread_info *t, int silent);
178cfa2879dSchristos 
179cfa2879dSchristos extern struct observer *observer_attach_thread_exit (observer_thread_exit_ftype *f);
180cfa2879dSchristos extern void observer_detach_thread_exit (struct observer *observer);
181cfa2879dSchristos extern void observer_notify_thread_exit (struct thread_info *t, int silent);
182cfa2879dSchristos 
183cfa2879dSchristos /* thread_stop_requested notifications.  */
184cfa2879dSchristos 
185cfa2879dSchristos typedef void (observer_thread_stop_requested_ftype) (ptid_t ptid);
186cfa2879dSchristos 
187cfa2879dSchristos extern struct observer *observer_attach_thread_stop_requested (observer_thread_stop_requested_ftype *f);
188cfa2879dSchristos extern void observer_detach_thread_stop_requested (struct observer *observer);
189cfa2879dSchristos extern void observer_notify_thread_stop_requested (ptid_t ptid);
190cfa2879dSchristos 
191cfa2879dSchristos /* target_resumed notifications.  */
192cfa2879dSchristos 
193cfa2879dSchristos typedef void (observer_target_resumed_ftype) (ptid_t ptid);
194cfa2879dSchristos 
195cfa2879dSchristos extern struct observer *observer_attach_target_resumed (observer_target_resumed_ftype *f);
196cfa2879dSchristos extern void observer_detach_target_resumed (struct observer *observer);
197cfa2879dSchristos extern void observer_notify_target_resumed (ptid_t ptid);
198cfa2879dSchristos 
199cfa2879dSchristos /* about_to_proceed notifications.  */
200cfa2879dSchristos 
201cfa2879dSchristos typedef void (observer_about_to_proceed_ftype) (void);
202cfa2879dSchristos 
203cfa2879dSchristos extern struct observer *observer_attach_about_to_proceed (observer_about_to_proceed_ftype *f);
204cfa2879dSchristos extern void observer_detach_about_to_proceed (struct observer *observer);
205cfa2879dSchristos extern void observer_notify_about_to_proceed (void);
206cfa2879dSchristos 
207cfa2879dSchristos /* breakpoint_created notifications.  */
208cfa2879dSchristos 
20934f40950Schristos typedef void (observer_breakpoint_created_ftype) (struct breakpoint *b);
210cfa2879dSchristos 
211cfa2879dSchristos extern struct observer *observer_attach_breakpoint_created (observer_breakpoint_created_ftype *f);
212cfa2879dSchristos extern void observer_detach_breakpoint_created (struct observer *observer);
21334f40950Schristos extern void observer_notify_breakpoint_created (struct breakpoint *b);
214cfa2879dSchristos 
215cfa2879dSchristos /* breakpoint_deleted notifications.  */
216cfa2879dSchristos 
21734f40950Schristos typedef void (observer_breakpoint_deleted_ftype) (struct breakpoint *b);
218cfa2879dSchristos 
219cfa2879dSchristos extern struct observer *observer_attach_breakpoint_deleted (observer_breakpoint_deleted_ftype *f);
220cfa2879dSchristos extern void observer_detach_breakpoint_deleted (struct observer *observer);
22134f40950Schristos extern void observer_notify_breakpoint_deleted (struct breakpoint *b);
222cfa2879dSchristos 
223cfa2879dSchristos /* breakpoint_modified notifications.  */
224cfa2879dSchristos 
22534f40950Schristos typedef void (observer_breakpoint_modified_ftype) (struct breakpoint *b);
226cfa2879dSchristos 
227cfa2879dSchristos extern struct observer *observer_attach_breakpoint_modified (observer_breakpoint_modified_ftype *f);
228cfa2879dSchristos extern void observer_detach_breakpoint_modified (struct observer *observer);
22934f40950Schristos extern void observer_notify_breakpoint_modified (struct breakpoint *b);
230cfa2879dSchristos 
23134f40950Schristos /* traceframe_changed notifications.  */
232cfa2879dSchristos 
23334f40950Schristos typedef void (observer_traceframe_changed_ftype) (int tfnum, int tpnum);
234cfa2879dSchristos 
23534f40950Schristos extern struct observer *observer_attach_traceframe_changed (observer_traceframe_changed_ftype *f);
23634f40950Schristos extern void observer_detach_traceframe_changed (struct observer *observer);
23734f40950Schristos extern void observer_notify_traceframe_changed (int tfnum, int tpnum);
238cfa2879dSchristos 
239cfa2879dSchristos /* architecture_changed notifications.  */
240cfa2879dSchristos 
241cfa2879dSchristos typedef void (observer_architecture_changed_ftype) (struct gdbarch *newarch);
242cfa2879dSchristos 
243cfa2879dSchristos extern struct observer *observer_attach_architecture_changed (observer_architecture_changed_ftype *f);
244cfa2879dSchristos extern void observer_detach_architecture_changed (struct observer *observer);
245cfa2879dSchristos extern void observer_notify_architecture_changed (struct gdbarch *newarch);
246cfa2879dSchristos 
247cfa2879dSchristos /* thread_ptid_changed notifications.  */
248cfa2879dSchristos 
249cfa2879dSchristos typedef void (observer_thread_ptid_changed_ftype) (ptid_t old_ptid, ptid_t new_ptid);
250cfa2879dSchristos 
251cfa2879dSchristos extern struct observer *observer_attach_thread_ptid_changed (observer_thread_ptid_changed_ftype *f);
252cfa2879dSchristos extern void observer_detach_thread_ptid_changed (struct observer *observer);
253cfa2879dSchristos extern void observer_notify_thread_ptid_changed (ptid_t old_ptid, ptid_t new_ptid);
254cfa2879dSchristos 
255cfa2879dSchristos /* inferior_added notifications.  */
256cfa2879dSchristos 
257cfa2879dSchristos typedef void (observer_inferior_added_ftype) (struct inferior *inf);
258cfa2879dSchristos 
259cfa2879dSchristos extern struct observer *observer_attach_inferior_added (observer_inferior_added_ftype *f);
260cfa2879dSchristos extern void observer_detach_inferior_added (struct observer *observer);
261cfa2879dSchristos extern void observer_notify_inferior_added (struct inferior *inf);
262cfa2879dSchristos 
263cfa2879dSchristos /* inferior_appeared notifications.  */
264cfa2879dSchristos 
265cfa2879dSchristos typedef void (observer_inferior_appeared_ftype) (struct inferior *inf);
266cfa2879dSchristos 
267cfa2879dSchristos extern struct observer *observer_attach_inferior_appeared (observer_inferior_appeared_ftype *f);
268cfa2879dSchristos extern void observer_detach_inferior_appeared (struct observer *observer);
269cfa2879dSchristos extern void observer_notify_inferior_appeared (struct inferior *inf);
270cfa2879dSchristos 
271cfa2879dSchristos /* inferior_exit notifications.  */
272cfa2879dSchristos 
273cfa2879dSchristos typedef void (observer_inferior_exit_ftype) (struct inferior *inf);
274cfa2879dSchristos 
275cfa2879dSchristos extern struct observer *observer_attach_inferior_exit (observer_inferior_exit_ftype *f);
276cfa2879dSchristos extern void observer_detach_inferior_exit (struct observer *observer);
277cfa2879dSchristos extern void observer_notify_inferior_exit (struct inferior *inf);
278cfa2879dSchristos 
279cfa2879dSchristos /* inferior_removed notifications.  */
280cfa2879dSchristos 
281cfa2879dSchristos typedef void (observer_inferior_removed_ftype) (struct inferior *inf);
282cfa2879dSchristos 
283cfa2879dSchristos extern struct observer *observer_attach_inferior_removed (observer_inferior_removed_ftype *f);
284cfa2879dSchristos extern void observer_detach_inferior_removed (struct observer *observer);
285cfa2879dSchristos extern void observer_notify_inferior_removed (struct inferior *inf);
286cfa2879dSchristos 
287cfa2879dSchristos /* memory_changed notifications.  */
288cfa2879dSchristos 
28934f40950Schristos typedef void (observer_memory_changed_ftype) (struct inferior *inferior, CORE_ADDR addr, ssize_t len, const bfd_byte *data);
290cfa2879dSchristos 
291cfa2879dSchristos extern struct observer *observer_attach_memory_changed (observer_memory_changed_ftype *f);
292cfa2879dSchristos extern void observer_detach_memory_changed (struct observer *observer);
29334f40950Schristos extern void observer_notify_memory_changed (struct inferior *inferior, CORE_ADDR addr, ssize_t len, const bfd_byte *data);
29434f40950Schristos 
29534f40950Schristos /* before_prompt notifications.  */
29634f40950Schristos 
29734f40950Schristos typedef void (observer_before_prompt_ftype) (const char *current_prompt);
29834f40950Schristos 
29934f40950Schristos extern struct observer *observer_attach_before_prompt (observer_before_prompt_ftype *f);
30034f40950Schristos extern void observer_detach_before_prompt (struct observer *observer);
30134f40950Schristos extern void observer_notify_before_prompt (const char *current_prompt);
30234f40950Schristos 
30334f40950Schristos /* gdb_datadir_changed notifications.  */
30434f40950Schristos 
30534f40950Schristos typedef void (observer_gdb_datadir_changed_ftype) (void);
30634f40950Schristos 
30734f40950Schristos extern struct observer *observer_attach_gdb_datadir_changed (observer_gdb_datadir_changed_ftype *f);
30834f40950Schristos extern void observer_detach_gdb_datadir_changed (struct observer *observer);
30934f40950Schristos extern void observer_notify_gdb_datadir_changed (void);
31034f40950Schristos 
31134f40950Schristos /* command_param_changed notifications.  */
31234f40950Schristos 
31334f40950Schristos typedef void (observer_command_param_changed_ftype) (const char *param, const char *value);
31434f40950Schristos 
31534f40950Schristos extern struct observer *observer_attach_command_param_changed (observer_command_param_changed_ftype *f);
31634f40950Schristos extern void observer_detach_command_param_changed (struct observer *observer);
31734f40950Schristos extern void observer_notify_command_param_changed (const char *param, const char *value);
31834f40950Schristos 
31934f40950Schristos /* tsv_created notifications.  */
32034f40950Schristos 
32134f40950Schristos typedef void (observer_tsv_created_ftype) (const struct trace_state_variable *tsv);
32234f40950Schristos 
32334f40950Schristos extern struct observer *observer_attach_tsv_created (observer_tsv_created_ftype *f);
32434f40950Schristos extern void observer_detach_tsv_created (struct observer *observer);
32534f40950Schristos extern void observer_notify_tsv_created (const struct trace_state_variable *tsv);
32634f40950Schristos 
32734f40950Schristos /* tsv_deleted notifications.  */
32834f40950Schristos 
32934f40950Schristos typedef void (observer_tsv_deleted_ftype) (const struct trace_state_variable *tsv);
33034f40950Schristos 
33134f40950Schristos extern struct observer *observer_attach_tsv_deleted (observer_tsv_deleted_ftype *f);
33234f40950Schristos extern void observer_detach_tsv_deleted (struct observer *observer);
33334f40950Schristos extern void observer_notify_tsv_deleted (const struct trace_state_variable *tsv);
33434f40950Schristos 
33534f40950Schristos /* tsv_modified notifications.  */
33634f40950Schristos 
33734f40950Schristos typedef void (observer_tsv_modified_ftype) (const struct trace_state_variable *tsv);
33834f40950Schristos 
33934f40950Schristos extern struct observer *observer_attach_tsv_modified (observer_tsv_modified_ftype *f);
34034f40950Schristos extern void observer_detach_tsv_modified (struct observer *observer);
34134f40950Schristos extern void observer_notify_tsv_modified (const struct trace_state_variable *tsv);
342cfa2879dSchristos 
3439ca90fdcSchristos /* inferior_call_pre notifications.  */
3449ca90fdcSchristos 
3459ca90fdcSchristos typedef void (observer_inferior_call_pre_ftype) (ptid_t thread, CORE_ADDR address);
3469ca90fdcSchristos 
3479ca90fdcSchristos extern struct observer *observer_attach_inferior_call_pre (observer_inferior_call_pre_ftype *f);
3489ca90fdcSchristos extern void observer_detach_inferior_call_pre (struct observer *observer);
3499ca90fdcSchristos extern void observer_notify_inferior_call_pre (ptid_t thread, CORE_ADDR address);
3509ca90fdcSchristos 
3519ca90fdcSchristos /* inferior_call_post notifications.  */
3529ca90fdcSchristos 
3539ca90fdcSchristos typedef void (observer_inferior_call_post_ftype) (ptid_t thread, CORE_ADDR address);
3549ca90fdcSchristos 
3559ca90fdcSchristos extern struct observer *observer_attach_inferior_call_post (observer_inferior_call_post_ftype *f);
3569ca90fdcSchristos extern void observer_detach_inferior_call_post (struct observer *observer);
3579ca90fdcSchristos extern void observer_notify_inferior_call_post (ptid_t thread, CORE_ADDR address);
3589ca90fdcSchristos 
3599ca90fdcSchristos /* register_changed notifications.  */
3609ca90fdcSchristos 
3619ca90fdcSchristos typedef void (observer_register_changed_ftype) (struct frame_info *frame, int regnum);
3629ca90fdcSchristos 
3639ca90fdcSchristos extern struct observer *observer_attach_register_changed (observer_register_changed_ftype *f);
3649ca90fdcSchristos extern void observer_detach_register_changed (struct observer *observer);
3659ca90fdcSchristos extern void observer_notify_register_changed (struct frame_info *frame, int regnum);
3669ca90fdcSchristos 
367cfa2879dSchristos /* test_notification notifications.  */
368cfa2879dSchristos 
369cfa2879dSchristos typedef void (observer_test_notification_ftype) (int somearg);
370cfa2879dSchristos 
371cfa2879dSchristos extern struct observer *observer_attach_test_notification (observer_test_notification_ftype *f);
372cfa2879dSchristos extern void observer_detach_test_notification (struct observer *observer);
373cfa2879dSchristos extern void observer_notify_test_notification (int somearg);
374cfa2879dSchristos 
37547f5dba6Smrg /* user_selected_context_changed notifications.  */
37647f5dba6Smrg 
37747f5dba6Smrg typedef void (observer_user_selected_context_changed_ftype) (user_selected_what selection);
37847f5dba6Smrg 
37947f5dba6Smrg extern struct observer *observer_attach_user_selected_context_changed (observer_user_selected_context_changed_ftype *f);
38047f5dba6Smrg extern void observer_detach_user_selected_context_changed (struct observer *observer);
38147f5dba6Smrg extern void observer_notify_user_selected_context_changed (user_selected_what selection);
38247f5dba6Smrg 
383cfa2879dSchristos #endif /* OBSERVER_H */
384