xref: /netbsd-src/external/gpl3/gdb/lib/libgdb/arch/i386/observer.h (revision 8b7331e524ed361bf23f656b4caa416ca7a5670f)
1c236fd95Schristos /* This file is automatically generated.  DO NOT EDIT! */
2c1e10f77Smrg /* 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  */
4c236fd95Schristos 
5c236fd95Schristos /* GDB Notifications to Observers.
6c236fd95Schristos 
7*8b7331e5Schristos    Copyright (C) 2004-2017 Free Software Foundation, Inc.
8c236fd95Schristos 
9c236fd95Schristos    This file is part of GDB.
10c236fd95Schristos 
11c236fd95Schristos    This program is free software; you can redistribute it and/or modify
12c236fd95Schristos    it under the terms of the GNU General Public License as published by
13c236fd95Schristos    the Free Software Foundation; either version 3 of the License, or
14c236fd95Schristos    (at your option) any later version.
15c236fd95Schristos 
16c236fd95Schristos    This program is distributed in the hope that it will be useful,
17c236fd95Schristos    but WITHOUT ANY WARRANTY; without even the implied warranty of
18c236fd95Schristos    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
19c236fd95Schristos    GNU General Public License for more details.
20c236fd95Schristos 
21c236fd95Schristos    You should have received a copy of the GNU General Public License
22c236fd95Schristos    along with this program.  If not, see <http://www.gnu.org/licenses/>.
23c236fd95Schristos 
24c236fd95Schristos    --
25c236fd95Schristos 
26c236fd95Schristos    This file was generated using observer.sh and observer.texi.  */
27c236fd95Schristos 
28c236fd95Schristos #ifndef OBSERVER_H
29c236fd95Schristos #define OBSERVER_H
30c236fd95Schristos 
31c236fd95Schristos struct observer;
32c236fd95Schristos struct bpstats;
33c236fd95Schristos struct so_list;
34c236fd95Schristos struct objfile;
35c236fd95Schristos struct thread_info;
3634f40950Schristos struct inferior;
3734f40950Schristos struct trace_state_variable;
38c236fd95Schristos 
39c236fd95Schristos /* normal_stop notifications.  */
40c236fd95Schristos 
41c236fd95Schristos typedef void (observer_normal_stop_ftype) (struct bpstats *bs, int print_frame);
42c236fd95Schristos 
43c236fd95Schristos extern struct observer *observer_attach_normal_stop (observer_normal_stop_ftype *f);
44c236fd95Schristos extern void observer_detach_normal_stop (struct observer *observer);
45c236fd95Schristos extern void observer_notify_normal_stop (struct bpstats *bs, int print_frame);
46c236fd95Schristos 
47d708e326Schristos /* signal_received notifications.  */
48d708e326Schristos 
49d708e326Schristos typedef void (observer_signal_received_ftype) (enum gdb_signal siggnal);
50d708e326Schristos 
51d708e326Schristos extern struct observer *observer_attach_signal_received (observer_signal_received_ftype *f);
52d708e326Schristos extern void observer_detach_signal_received (struct observer *observer);
53d708e326Schristos extern void observer_notify_signal_received (enum gdb_signal siggnal);
54d708e326Schristos 
55d708e326Schristos /* end_stepping_range notifications.  */
56d708e326Schristos 
57d708e326Schristos typedef void (observer_end_stepping_range_ftype) (void);
58d708e326Schristos 
59d708e326Schristos extern struct observer *observer_attach_end_stepping_range (observer_end_stepping_range_ftype *f);
60d708e326Schristos extern void observer_detach_end_stepping_range (struct observer *observer);
61d708e326Schristos extern void observer_notify_end_stepping_range (void);
62d708e326Schristos 
63d708e326Schristos /* signal_exited notifications.  */
64d708e326Schristos 
65d708e326Schristos typedef void (observer_signal_exited_ftype) (enum gdb_signal siggnal);
66d708e326Schristos 
67d708e326Schristos extern struct observer *observer_attach_signal_exited (observer_signal_exited_ftype *f);
68d708e326Schristos extern void observer_detach_signal_exited (struct observer *observer);
69d708e326Schristos extern void observer_notify_signal_exited (enum gdb_signal siggnal);
70d708e326Schristos 
71d708e326Schristos /* exited notifications.  */
72d708e326Schristos 
73d708e326Schristos typedef void (observer_exited_ftype) (int exitstatus);
74d708e326Schristos 
75d708e326Schristos extern struct observer *observer_attach_exited (observer_exited_ftype *f);
76d708e326Schristos extern void observer_detach_exited (struct observer *observer);
77d708e326Schristos extern void observer_notify_exited (int exitstatus);
78d708e326Schristos 
79d708e326Schristos /* no_history notifications.  */
80d708e326Schristos 
81d708e326Schristos typedef void (observer_no_history_ftype) (void);
82d708e326Schristos 
83d708e326Schristos extern struct observer *observer_attach_no_history (observer_no_history_ftype *f);
84d708e326Schristos extern void observer_detach_no_history (struct observer *observer);
85d708e326Schristos extern void observer_notify_no_history (void);
86d708e326Schristos 
87d708e326Schristos /* sync_execution_done notifications.  */
88d708e326Schristos 
89d708e326Schristos typedef void (observer_sync_execution_done_ftype) (void);
90d708e326Schristos 
91d708e326Schristos extern struct observer *observer_attach_sync_execution_done (observer_sync_execution_done_ftype *f);
92d708e326Schristos extern void observer_detach_sync_execution_done (struct observer *observer);
93d708e326Schristos extern void observer_notify_sync_execution_done (void);
94d708e326Schristos 
95d708e326Schristos /* command_error notifications.  */
96d708e326Schristos 
97d708e326Schristos typedef void (observer_command_error_ftype) (void);
98d708e326Schristos 
99d708e326Schristos extern struct observer *observer_attach_command_error (observer_command_error_ftype *f);
100d708e326Schristos extern void observer_detach_command_error (struct observer *observer);
101d708e326Schristos extern void observer_notify_command_error (void);
102d708e326Schristos 
103c236fd95Schristos /* target_changed notifications.  */
104c236fd95Schristos 
105c236fd95Schristos typedef void (observer_target_changed_ftype) (struct target_ops *target);
106c236fd95Schristos 
107c236fd95Schristos extern struct observer *observer_attach_target_changed (observer_target_changed_ftype *f);
108c236fd95Schristos extern void observer_detach_target_changed (struct observer *observer);
109c236fd95Schristos extern void observer_notify_target_changed (struct target_ops *target);
110c236fd95Schristos 
111c236fd95Schristos /* executable_changed notifications.  */
112c236fd95Schristos 
113c236fd95Schristos typedef void (observer_executable_changed_ftype) (void);
114c236fd95Schristos 
115c236fd95Schristos extern struct observer *observer_attach_executable_changed (observer_executable_changed_ftype *f);
116c236fd95Schristos extern void observer_detach_executable_changed (struct observer *observer);
117c236fd95Schristos extern void observer_notify_executable_changed (void);
118c236fd95Schristos 
119c236fd95Schristos /* inferior_created notifications.  */
120c236fd95Schristos 
121c236fd95Schristos typedef void (observer_inferior_created_ftype) (struct target_ops *objfile, int from_tty);
122c236fd95Schristos 
123c236fd95Schristos extern struct observer *observer_attach_inferior_created (observer_inferior_created_ftype *f);
124c236fd95Schristos extern void observer_detach_inferior_created (struct observer *observer);
125c236fd95Schristos extern void observer_notify_inferior_created (struct target_ops *objfile, int from_tty);
126c236fd95Schristos 
12734f40950Schristos /* record_changed notifications.  */
12834f40950Schristos 
129c1e10f77Smrg 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);
133c1e10f77Smrg extern void observer_notify_record_changed (struct inferior *inferior, int started, const char *method, const char *format);
13434f40950Schristos 
135c236fd95Schristos /* solib_loaded notifications.  */
136c236fd95Schristos 
137c236fd95Schristos typedef void (observer_solib_loaded_ftype) (struct so_list *solib);
138c236fd95Schristos 
139c236fd95Schristos extern struct observer *observer_attach_solib_loaded (observer_solib_loaded_ftype *f);
140c236fd95Schristos extern void observer_detach_solib_loaded (struct observer *observer);
141c236fd95Schristos extern void observer_notify_solib_loaded (struct so_list *solib);
142c236fd95Schristos 
143c236fd95Schristos /* solib_unloaded notifications.  */
144c236fd95Schristos 
145c236fd95Schristos typedef void (observer_solib_unloaded_ftype) (struct so_list *solib);
146c236fd95Schristos 
147c236fd95Schristos extern struct observer *observer_attach_solib_unloaded (observer_solib_unloaded_ftype *f);
148c236fd95Schristos extern void observer_detach_solib_unloaded (struct observer *observer);
149c236fd95Schristos extern void observer_notify_solib_unloaded (struct so_list *solib);
150c236fd95Schristos 
151c236fd95Schristos /* new_objfile notifications.  */
152c236fd95Schristos 
153c236fd95Schristos typedef void (observer_new_objfile_ftype) (struct objfile *objfile);
154c236fd95Schristos 
155c236fd95Schristos extern struct observer *observer_attach_new_objfile (observer_new_objfile_ftype *f);
156c236fd95Schristos extern void observer_detach_new_objfile (struct observer *observer);
157c236fd95Schristos extern void observer_notify_new_objfile (struct objfile *objfile);
158c236fd95Schristos 
15978ce218aSchristos /* free_objfile notifications.  */
16078ce218aSchristos 
16178ce218aSchristos typedef void (observer_free_objfile_ftype) (struct objfile *objfile);
16278ce218aSchristos 
16378ce218aSchristos extern struct observer *observer_attach_free_objfile (observer_free_objfile_ftype *f);
16478ce218aSchristos extern void observer_detach_free_objfile (struct observer *observer);
16578ce218aSchristos extern void observer_notify_free_objfile (struct objfile *objfile);
16678ce218aSchristos 
167c236fd95Schristos /* new_thread notifications.  */
168c236fd95Schristos 
169c236fd95Schristos typedef void (observer_new_thread_ftype) (struct thread_info *t);
170c236fd95Schristos 
171c236fd95Schristos extern struct observer *observer_attach_new_thread (observer_new_thread_ftype *f);
172c236fd95Schristos extern void observer_detach_new_thread (struct observer *observer);
173c236fd95Schristos extern void observer_notify_new_thread (struct thread_info *t);
174c236fd95Schristos 
175c236fd95Schristos /* thread_exit notifications.  */
176c236fd95Schristos 
177c236fd95Schristos typedef void (observer_thread_exit_ftype) (struct thread_info *t, int silent);
178c236fd95Schristos 
179c236fd95Schristos extern struct observer *observer_attach_thread_exit (observer_thread_exit_ftype *f);
180c236fd95Schristos extern void observer_detach_thread_exit (struct observer *observer);
181c236fd95Schristos extern void observer_notify_thread_exit (struct thread_info *t, int silent);
182c236fd95Schristos 
183c236fd95Schristos /* thread_stop_requested notifications.  */
184c236fd95Schristos 
185c236fd95Schristos typedef void (observer_thread_stop_requested_ftype) (ptid_t ptid);
186c236fd95Schristos 
187c236fd95Schristos extern struct observer *observer_attach_thread_stop_requested (observer_thread_stop_requested_ftype *f);
188c236fd95Schristos extern void observer_detach_thread_stop_requested (struct observer *observer);
189c236fd95Schristos extern void observer_notify_thread_stop_requested (ptid_t ptid);
190c236fd95Schristos 
191c236fd95Schristos /* target_resumed notifications.  */
192c236fd95Schristos 
193c236fd95Schristos typedef void (observer_target_resumed_ftype) (ptid_t ptid);
194c236fd95Schristos 
195c236fd95Schristos extern struct observer *observer_attach_target_resumed (observer_target_resumed_ftype *f);
196c236fd95Schristos extern void observer_detach_target_resumed (struct observer *observer);
197c236fd95Schristos extern void observer_notify_target_resumed (ptid_t ptid);
198c236fd95Schristos 
199c236fd95Schristos /* about_to_proceed notifications.  */
200c236fd95Schristos 
201c236fd95Schristos typedef void (observer_about_to_proceed_ftype) (void);
202c236fd95Schristos 
203c236fd95Schristos extern struct observer *observer_attach_about_to_proceed (observer_about_to_proceed_ftype *f);
204c236fd95Schristos extern void observer_detach_about_to_proceed (struct observer *observer);
205c236fd95Schristos extern void observer_notify_about_to_proceed (void);
206c236fd95Schristos 
207c236fd95Schristos /* breakpoint_created notifications.  */
208c236fd95Schristos 
20934f40950Schristos typedef void (observer_breakpoint_created_ftype) (struct breakpoint *b);
210c236fd95Schristos 
211c236fd95Schristos extern struct observer *observer_attach_breakpoint_created (observer_breakpoint_created_ftype *f);
212c236fd95Schristos extern void observer_detach_breakpoint_created (struct observer *observer);
21334f40950Schristos extern void observer_notify_breakpoint_created (struct breakpoint *b);
214c236fd95Schristos 
215c236fd95Schristos /* breakpoint_deleted notifications.  */
216c236fd95Schristos 
21734f40950Schristos typedef void (observer_breakpoint_deleted_ftype) (struct breakpoint *b);
218c236fd95Schristos 
219c236fd95Schristos extern struct observer *observer_attach_breakpoint_deleted (observer_breakpoint_deleted_ftype *f);
220c236fd95Schristos extern void observer_detach_breakpoint_deleted (struct observer *observer);
22134f40950Schristos extern void observer_notify_breakpoint_deleted (struct breakpoint *b);
222c236fd95Schristos 
223c236fd95Schristos /* breakpoint_modified notifications.  */
224c236fd95Schristos 
22534f40950Schristos typedef void (observer_breakpoint_modified_ftype) (struct breakpoint *b);
226c236fd95Schristos 
227c236fd95Schristos extern struct observer *observer_attach_breakpoint_modified (observer_breakpoint_modified_ftype *f);
228c236fd95Schristos extern void observer_detach_breakpoint_modified (struct observer *observer);
22934f40950Schristos extern void observer_notify_breakpoint_modified (struct breakpoint *b);
230c236fd95Schristos 
23134f40950Schristos /* traceframe_changed notifications.  */
232c236fd95Schristos 
23334f40950Schristos typedef void (observer_traceframe_changed_ftype) (int tfnum, int tpnum);
234c236fd95Schristos 
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);
238c236fd95Schristos 
239c236fd95Schristos /* architecture_changed notifications.  */
240c236fd95Schristos 
241c236fd95Schristos typedef void (observer_architecture_changed_ftype) (struct gdbarch *newarch);
242c236fd95Schristos 
243c236fd95Schristos extern struct observer *observer_attach_architecture_changed (observer_architecture_changed_ftype *f);
244c236fd95Schristos extern void observer_detach_architecture_changed (struct observer *observer);
245c236fd95Schristos extern void observer_notify_architecture_changed (struct gdbarch *newarch);
246c236fd95Schristos 
247c236fd95Schristos /* thread_ptid_changed notifications.  */
248c236fd95Schristos 
249c236fd95Schristos typedef void (observer_thread_ptid_changed_ftype) (ptid_t old_ptid, ptid_t new_ptid);
250c236fd95Schristos 
251c236fd95Schristos extern struct observer *observer_attach_thread_ptid_changed (observer_thread_ptid_changed_ftype *f);
252c236fd95Schristos extern void observer_detach_thread_ptid_changed (struct observer *observer);
253c236fd95Schristos extern void observer_notify_thread_ptid_changed (ptid_t old_ptid, ptid_t new_ptid);
254c236fd95Schristos 
255c236fd95Schristos /* inferior_added notifications.  */
256c236fd95Schristos 
257c236fd95Schristos typedef void (observer_inferior_added_ftype) (struct inferior *inf);
258c236fd95Schristos 
259c236fd95Schristos extern struct observer *observer_attach_inferior_added (observer_inferior_added_ftype *f);
260c236fd95Schristos extern void observer_detach_inferior_added (struct observer *observer);
261c236fd95Schristos extern void observer_notify_inferior_added (struct inferior *inf);
262c236fd95Schristos 
263c236fd95Schristos /* inferior_appeared notifications.  */
264c236fd95Schristos 
265c236fd95Schristos typedef void (observer_inferior_appeared_ftype) (struct inferior *inf);
266c236fd95Schristos 
267c236fd95Schristos extern struct observer *observer_attach_inferior_appeared (observer_inferior_appeared_ftype *f);
268c236fd95Schristos extern void observer_detach_inferior_appeared (struct observer *observer);
269c236fd95Schristos extern void observer_notify_inferior_appeared (struct inferior *inf);
270c236fd95Schristos 
271c236fd95Schristos /* inferior_exit notifications.  */
272c236fd95Schristos 
273c236fd95Schristos typedef void (observer_inferior_exit_ftype) (struct inferior *inf);
274c236fd95Schristos 
275c236fd95Schristos extern struct observer *observer_attach_inferior_exit (observer_inferior_exit_ftype *f);
276c236fd95Schristos extern void observer_detach_inferior_exit (struct observer *observer);
277c236fd95Schristos extern void observer_notify_inferior_exit (struct inferior *inf);
278c236fd95Schristos 
279c236fd95Schristos /* inferior_removed notifications.  */
280c236fd95Schristos 
281c236fd95Schristos typedef void (observer_inferior_removed_ftype) (struct inferior *inf);
282c236fd95Schristos 
283c236fd95Schristos extern struct observer *observer_attach_inferior_removed (observer_inferior_removed_ftype *f);
284c236fd95Schristos extern void observer_detach_inferior_removed (struct observer *observer);
285c236fd95Schristos extern void observer_notify_inferior_removed (struct inferior *inf);
286c236fd95Schristos 
287c236fd95Schristos /* memory_changed notifications.  */
288c236fd95Schristos 
28934f40950Schristos typedef void (observer_memory_changed_ftype) (struct inferior *inferior, CORE_ADDR addr, ssize_t len, const bfd_byte *data);
290c236fd95Schristos 
291c236fd95Schristos extern struct observer *observer_attach_memory_changed (observer_memory_changed_ftype *f);
292c236fd95Schristos 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);
342c236fd95Schristos 
343d708e326Schristos /* inferior_call_pre notifications.  */
344d708e326Schristos 
345d708e326Schristos typedef void (observer_inferior_call_pre_ftype) (ptid_t thread, CORE_ADDR address);
346d708e326Schristos 
347d708e326Schristos extern struct observer *observer_attach_inferior_call_pre (observer_inferior_call_pre_ftype *f);
348d708e326Schristos extern void observer_detach_inferior_call_pre (struct observer *observer);
349d708e326Schristos extern void observer_notify_inferior_call_pre (ptid_t thread, CORE_ADDR address);
350d708e326Schristos 
351d708e326Schristos /* inferior_call_post notifications.  */
352d708e326Schristos 
353d708e326Schristos typedef void (observer_inferior_call_post_ftype) (ptid_t thread, CORE_ADDR address);
354d708e326Schristos 
355d708e326Schristos extern struct observer *observer_attach_inferior_call_post (observer_inferior_call_post_ftype *f);
356d708e326Schristos extern void observer_detach_inferior_call_post (struct observer *observer);
357d708e326Schristos extern void observer_notify_inferior_call_post (ptid_t thread, CORE_ADDR address);
358d708e326Schristos 
359d708e326Schristos /* register_changed notifications.  */
360d708e326Schristos 
361d708e326Schristos typedef void (observer_register_changed_ftype) (struct frame_info *frame, int regnum);
362d708e326Schristos 
363d708e326Schristos extern struct observer *observer_attach_register_changed (observer_register_changed_ftype *f);
364d708e326Schristos extern void observer_detach_register_changed (struct observer *observer);
365d708e326Schristos extern void observer_notify_register_changed (struct frame_info *frame, int regnum);
366d708e326Schristos 
367c236fd95Schristos /* test_notification notifications.  */
368c236fd95Schristos 
369c236fd95Schristos typedef void (observer_test_notification_ftype) (int somearg);
370c236fd95Schristos 
371c236fd95Schristos extern struct observer *observer_attach_test_notification (observer_test_notification_ftype *f);
372c236fd95Schristos extern void observer_detach_test_notification (struct observer *observer);
373c236fd95Schristos extern void observer_notify_test_notification (int somearg);
374c236fd95Schristos 
375c1e10f77Smrg /* user_selected_context_changed notifications.  */
376c1e10f77Smrg 
377c1e10f77Smrg typedef void (observer_user_selected_context_changed_ftype) (user_selected_what selection);
378c1e10f77Smrg 
379c1e10f77Smrg extern struct observer *observer_attach_user_selected_context_changed (observer_user_selected_context_changed_ftype *f);
380c1e10f77Smrg extern void observer_detach_user_selected_context_changed (struct observer *observer);
381c1e10f77Smrg extern void observer_notify_user_selected_context_changed (user_selected_what selection);
382c1e10f77Smrg 
383c236fd95Schristos #endif /* OBSERVER_H */
384