xref: /netbsd-src/external/gpl3/gdb/lib/libgdb/arch/mips64eb/observer.h (revision 8b7331e524ed361bf23f656b4caa416ca7a5670f)
1ba6b4c93Schristos /* This file is automatically generated.  DO NOT EDIT! */
23caff986Smrg /* 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  */
4ba6b4c93Schristos 
5ba6b4c93Schristos /* GDB Notifications to Observers.
6ba6b4c93Schristos 
7*8b7331e5Schristos    Copyright (C) 2004-2017 Free Software Foundation, Inc.
8ba6b4c93Schristos 
9ba6b4c93Schristos    This file is part of GDB.
10ba6b4c93Schristos 
11ba6b4c93Schristos    This program is free software; you can redistribute it and/or modify
12ba6b4c93Schristos    it under the terms of the GNU General Public License as published by
13ba6b4c93Schristos    the Free Software Foundation; either version 3 of the License, or
14ba6b4c93Schristos    (at your option) any later version.
15ba6b4c93Schristos 
16ba6b4c93Schristos    This program is distributed in the hope that it will be useful,
17ba6b4c93Schristos    but WITHOUT ANY WARRANTY; without even the implied warranty of
18ba6b4c93Schristos    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
19ba6b4c93Schristos    GNU General Public License for more details.
20ba6b4c93Schristos 
21ba6b4c93Schristos    You should have received a copy of the GNU General Public License
22ba6b4c93Schristos    along with this program.  If not, see <http://www.gnu.org/licenses/>.
23ba6b4c93Schristos 
24ba6b4c93Schristos    --
25ba6b4c93Schristos 
26ba6b4c93Schristos    This file was generated using observer.sh and observer.texi.  */
27ba6b4c93Schristos 
28ba6b4c93Schristos #ifndef OBSERVER_H
29ba6b4c93Schristos #define OBSERVER_H
30ba6b4c93Schristos 
31ba6b4c93Schristos struct observer;
32ba6b4c93Schristos struct bpstats;
33ba6b4c93Schristos struct so_list;
34ba6b4c93Schristos struct objfile;
35ba6b4c93Schristos struct thread_info;
3684e9dd17Smrg struct inferior;
3784e9dd17Smrg struct trace_state_variable;
38ba6b4c93Schristos 
39ba6b4c93Schristos /* normal_stop notifications.  */
40ba6b4c93Schristos 
41ba6b4c93Schristos typedef void (observer_normal_stop_ftype) (struct bpstats *bs, int print_frame);
42ba6b4c93Schristos 
43ba6b4c93Schristos extern struct observer *observer_attach_normal_stop (observer_normal_stop_ftype *f);
44ba6b4c93Schristos extern void observer_detach_normal_stop (struct observer *observer);
45ba6b4c93Schristos extern void observer_notify_normal_stop (struct bpstats *bs, int print_frame);
46ba6b4c93Schristos 
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 
103ba6b4c93Schristos /* target_changed notifications.  */
104ba6b4c93Schristos 
105ba6b4c93Schristos typedef void (observer_target_changed_ftype) (struct target_ops *target);
106ba6b4c93Schristos 
107ba6b4c93Schristos extern struct observer *observer_attach_target_changed (observer_target_changed_ftype *f);
108ba6b4c93Schristos extern void observer_detach_target_changed (struct observer *observer);
109ba6b4c93Schristos extern void observer_notify_target_changed (struct target_ops *target);
110ba6b4c93Schristos 
111ba6b4c93Schristos /* executable_changed notifications.  */
112ba6b4c93Schristos 
113ba6b4c93Schristos typedef void (observer_executable_changed_ftype) (void);
114ba6b4c93Schristos 
115ba6b4c93Schristos extern struct observer *observer_attach_executable_changed (observer_executable_changed_ftype *f);
116ba6b4c93Schristos extern void observer_detach_executable_changed (struct observer *observer);
117ba6b4c93Schristos extern void observer_notify_executable_changed (void);
118ba6b4c93Schristos 
119ba6b4c93Schristos /* inferior_created notifications.  */
120ba6b4c93Schristos 
121ba6b4c93Schristos typedef void (observer_inferior_created_ftype) (struct target_ops *objfile, int from_tty);
122ba6b4c93Schristos 
123ba6b4c93Schristos extern struct observer *observer_attach_inferior_created (observer_inferior_created_ftype *f);
124ba6b4c93Schristos extern void observer_detach_inferior_created (struct observer *observer);
125ba6b4c93Schristos extern void observer_notify_inferior_created (struct target_ops *objfile, int from_tty);
126ba6b4c93Schristos 
12784e9dd17Smrg /* record_changed notifications.  */
12884e9dd17Smrg 
1293caff986Smrg typedef void (observer_record_changed_ftype) (struct inferior *inferior, int started, const char *method, const char *format);
13084e9dd17Smrg 
13184e9dd17Smrg extern struct observer *observer_attach_record_changed (observer_record_changed_ftype *f);
13284e9dd17Smrg extern void observer_detach_record_changed (struct observer *observer);
1333caff986Smrg extern void observer_notify_record_changed (struct inferior *inferior, int started, const char *method, const char *format);
13484e9dd17Smrg 
135ba6b4c93Schristos /* solib_loaded notifications.  */
136ba6b4c93Schristos 
137ba6b4c93Schristos typedef void (observer_solib_loaded_ftype) (struct so_list *solib);
138ba6b4c93Schristos 
139ba6b4c93Schristos extern struct observer *observer_attach_solib_loaded (observer_solib_loaded_ftype *f);
140ba6b4c93Schristos extern void observer_detach_solib_loaded (struct observer *observer);
141ba6b4c93Schristos extern void observer_notify_solib_loaded (struct so_list *solib);
142ba6b4c93Schristos 
143ba6b4c93Schristos /* solib_unloaded notifications.  */
144ba6b4c93Schristos 
145ba6b4c93Schristos typedef void (observer_solib_unloaded_ftype) (struct so_list *solib);
146ba6b4c93Schristos 
147ba6b4c93Schristos extern struct observer *observer_attach_solib_unloaded (observer_solib_unloaded_ftype *f);
148ba6b4c93Schristos extern void observer_detach_solib_unloaded (struct observer *observer);
149ba6b4c93Schristos extern void observer_notify_solib_unloaded (struct so_list *solib);
150ba6b4c93Schristos 
151ba6b4c93Schristos /* new_objfile notifications.  */
152ba6b4c93Schristos 
153ba6b4c93Schristos typedef void (observer_new_objfile_ftype) (struct objfile *objfile);
154ba6b4c93Schristos 
155ba6b4c93Schristos extern struct observer *observer_attach_new_objfile (observer_new_objfile_ftype *f);
156ba6b4c93Schristos extern void observer_detach_new_objfile (struct observer *observer);
157ba6b4c93Schristos extern void observer_notify_new_objfile (struct objfile *objfile);
158ba6b4c93Schristos 
159d1fefe4bSchristos /* free_objfile notifications.  */
160d1fefe4bSchristos 
161d1fefe4bSchristos typedef void (observer_free_objfile_ftype) (struct objfile *objfile);
162d1fefe4bSchristos 
163d1fefe4bSchristos extern struct observer *observer_attach_free_objfile (observer_free_objfile_ftype *f);
164d1fefe4bSchristos extern void observer_detach_free_objfile (struct observer *observer);
165d1fefe4bSchristos extern void observer_notify_free_objfile (struct objfile *objfile);
166d1fefe4bSchristos 
167ba6b4c93Schristos /* new_thread notifications.  */
168ba6b4c93Schristos 
169ba6b4c93Schristos typedef void (observer_new_thread_ftype) (struct thread_info *t);
170ba6b4c93Schristos 
171ba6b4c93Schristos extern struct observer *observer_attach_new_thread (observer_new_thread_ftype *f);
172ba6b4c93Schristos extern void observer_detach_new_thread (struct observer *observer);
173ba6b4c93Schristos extern void observer_notify_new_thread (struct thread_info *t);
174ba6b4c93Schristos 
175ba6b4c93Schristos /* thread_exit notifications.  */
176ba6b4c93Schristos 
177ba6b4c93Schristos typedef void (observer_thread_exit_ftype) (struct thread_info *t, int silent);
178ba6b4c93Schristos 
179ba6b4c93Schristos extern struct observer *observer_attach_thread_exit (observer_thread_exit_ftype *f);
180ba6b4c93Schristos extern void observer_detach_thread_exit (struct observer *observer);
181ba6b4c93Schristos extern void observer_notify_thread_exit (struct thread_info *t, int silent);
182ba6b4c93Schristos 
183ba6b4c93Schristos /* thread_stop_requested notifications.  */
184ba6b4c93Schristos 
185ba6b4c93Schristos typedef void (observer_thread_stop_requested_ftype) (ptid_t ptid);
186ba6b4c93Schristos 
187ba6b4c93Schristos extern struct observer *observer_attach_thread_stop_requested (observer_thread_stop_requested_ftype *f);
188ba6b4c93Schristos extern void observer_detach_thread_stop_requested (struct observer *observer);
189ba6b4c93Schristos extern void observer_notify_thread_stop_requested (ptid_t ptid);
190ba6b4c93Schristos 
191ba6b4c93Schristos /* target_resumed notifications.  */
192ba6b4c93Schristos 
193ba6b4c93Schristos typedef void (observer_target_resumed_ftype) (ptid_t ptid);
194ba6b4c93Schristos 
195ba6b4c93Schristos extern struct observer *observer_attach_target_resumed (observer_target_resumed_ftype *f);
196ba6b4c93Schristos extern void observer_detach_target_resumed (struct observer *observer);
197ba6b4c93Schristos extern void observer_notify_target_resumed (ptid_t ptid);
198ba6b4c93Schristos 
199ba6b4c93Schristos /* about_to_proceed notifications.  */
200ba6b4c93Schristos 
201ba6b4c93Schristos typedef void (observer_about_to_proceed_ftype) (void);
202ba6b4c93Schristos 
203ba6b4c93Schristos extern struct observer *observer_attach_about_to_proceed (observer_about_to_proceed_ftype *f);
204ba6b4c93Schristos extern void observer_detach_about_to_proceed (struct observer *observer);
205ba6b4c93Schristos extern void observer_notify_about_to_proceed (void);
206ba6b4c93Schristos 
207ba6b4c93Schristos /* breakpoint_created notifications.  */
208ba6b4c93Schristos 
20984e9dd17Smrg typedef void (observer_breakpoint_created_ftype) (struct breakpoint *b);
210ba6b4c93Schristos 
211ba6b4c93Schristos extern struct observer *observer_attach_breakpoint_created (observer_breakpoint_created_ftype *f);
212ba6b4c93Schristos extern void observer_detach_breakpoint_created (struct observer *observer);
21384e9dd17Smrg extern void observer_notify_breakpoint_created (struct breakpoint *b);
214ba6b4c93Schristos 
215ba6b4c93Schristos /* breakpoint_deleted notifications.  */
216ba6b4c93Schristos 
21784e9dd17Smrg typedef void (observer_breakpoint_deleted_ftype) (struct breakpoint *b);
218ba6b4c93Schristos 
219ba6b4c93Schristos extern struct observer *observer_attach_breakpoint_deleted (observer_breakpoint_deleted_ftype *f);
220ba6b4c93Schristos extern void observer_detach_breakpoint_deleted (struct observer *observer);
22184e9dd17Smrg extern void observer_notify_breakpoint_deleted (struct breakpoint *b);
222ba6b4c93Schristos 
223ba6b4c93Schristos /* breakpoint_modified notifications.  */
224ba6b4c93Schristos 
22584e9dd17Smrg typedef void (observer_breakpoint_modified_ftype) (struct breakpoint *b);
226ba6b4c93Schristos 
227ba6b4c93Schristos extern struct observer *observer_attach_breakpoint_modified (observer_breakpoint_modified_ftype *f);
228ba6b4c93Schristos extern void observer_detach_breakpoint_modified (struct observer *observer);
22984e9dd17Smrg extern void observer_notify_breakpoint_modified (struct breakpoint *b);
230ba6b4c93Schristos 
23184e9dd17Smrg /* traceframe_changed notifications.  */
232ba6b4c93Schristos 
23384e9dd17Smrg typedef void (observer_traceframe_changed_ftype) (int tfnum, int tpnum);
234ba6b4c93Schristos 
23584e9dd17Smrg extern struct observer *observer_attach_traceframe_changed (observer_traceframe_changed_ftype *f);
23684e9dd17Smrg extern void observer_detach_traceframe_changed (struct observer *observer);
23784e9dd17Smrg extern void observer_notify_traceframe_changed (int tfnum, int tpnum);
238ba6b4c93Schristos 
239ba6b4c93Schristos /* architecture_changed notifications.  */
240ba6b4c93Schristos 
241ba6b4c93Schristos typedef void (observer_architecture_changed_ftype) (struct gdbarch *newarch);
242ba6b4c93Schristos 
243ba6b4c93Schristos extern struct observer *observer_attach_architecture_changed (observer_architecture_changed_ftype *f);
244ba6b4c93Schristos extern void observer_detach_architecture_changed (struct observer *observer);
245ba6b4c93Schristos extern void observer_notify_architecture_changed (struct gdbarch *newarch);
246ba6b4c93Schristos 
247ba6b4c93Schristos /* thread_ptid_changed notifications.  */
248ba6b4c93Schristos 
249ba6b4c93Schristos typedef void (observer_thread_ptid_changed_ftype) (ptid_t old_ptid, ptid_t new_ptid);
250ba6b4c93Schristos 
251ba6b4c93Schristos extern struct observer *observer_attach_thread_ptid_changed (observer_thread_ptid_changed_ftype *f);
252ba6b4c93Schristos extern void observer_detach_thread_ptid_changed (struct observer *observer);
253ba6b4c93Schristos extern void observer_notify_thread_ptid_changed (ptid_t old_ptid, ptid_t new_ptid);
254ba6b4c93Schristos 
255ba6b4c93Schristos /* inferior_added notifications.  */
256ba6b4c93Schristos 
257ba6b4c93Schristos typedef void (observer_inferior_added_ftype) (struct inferior *inf);
258ba6b4c93Schristos 
259ba6b4c93Schristos extern struct observer *observer_attach_inferior_added (observer_inferior_added_ftype *f);
260ba6b4c93Schristos extern void observer_detach_inferior_added (struct observer *observer);
261ba6b4c93Schristos extern void observer_notify_inferior_added (struct inferior *inf);
262ba6b4c93Schristos 
263ba6b4c93Schristos /* inferior_appeared notifications.  */
264ba6b4c93Schristos 
265ba6b4c93Schristos typedef void (observer_inferior_appeared_ftype) (struct inferior *inf);
266ba6b4c93Schristos 
267ba6b4c93Schristos extern struct observer *observer_attach_inferior_appeared (observer_inferior_appeared_ftype *f);
268ba6b4c93Schristos extern void observer_detach_inferior_appeared (struct observer *observer);
269ba6b4c93Schristos extern void observer_notify_inferior_appeared (struct inferior *inf);
270ba6b4c93Schristos 
271ba6b4c93Schristos /* inferior_exit notifications.  */
272ba6b4c93Schristos 
273ba6b4c93Schristos typedef void (observer_inferior_exit_ftype) (struct inferior *inf);
274ba6b4c93Schristos 
275ba6b4c93Schristos extern struct observer *observer_attach_inferior_exit (observer_inferior_exit_ftype *f);
276ba6b4c93Schristos extern void observer_detach_inferior_exit (struct observer *observer);
277ba6b4c93Schristos extern void observer_notify_inferior_exit (struct inferior *inf);
278ba6b4c93Schristos 
279ba6b4c93Schristos /* inferior_removed notifications.  */
280ba6b4c93Schristos 
281ba6b4c93Schristos typedef void (observer_inferior_removed_ftype) (struct inferior *inf);
282ba6b4c93Schristos 
283ba6b4c93Schristos extern struct observer *observer_attach_inferior_removed (observer_inferior_removed_ftype *f);
284ba6b4c93Schristos extern void observer_detach_inferior_removed (struct observer *observer);
285ba6b4c93Schristos extern void observer_notify_inferior_removed (struct inferior *inf);
286ba6b4c93Schristos 
287ba6b4c93Schristos /* memory_changed notifications.  */
288ba6b4c93Schristos 
28984e9dd17Smrg typedef void (observer_memory_changed_ftype) (struct inferior *inferior, CORE_ADDR addr, ssize_t len, const bfd_byte *data);
290ba6b4c93Schristos 
291ba6b4c93Schristos extern struct observer *observer_attach_memory_changed (observer_memory_changed_ftype *f);
292ba6b4c93Schristos extern void observer_detach_memory_changed (struct observer *observer);
29384e9dd17Smrg extern void observer_notify_memory_changed (struct inferior *inferior, CORE_ADDR addr, ssize_t len, const bfd_byte *data);
29484e9dd17Smrg 
29584e9dd17Smrg /* before_prompt notifications.  */
29684e9dd17Smrg 
29784e9dd17Smrg typedef void (observer_before_prompt_ftype) (const char *current_prompt);
29884e9dd17Smrg 
29984e9dd17Smrg extern struct observer *observer_attach_before_prompt (observer_before_prompt_ftype *f);
30084e9dd17Smrg extern void observer_detach_before_prompt (struct observer *observer);
30184e9dd17Smrg extern void observer_notify_before_prompt (const char *current_prompt);
30284e9dd17Smrg 
30384e9dd17Smrg /* gdb_datadir_changed notifications.  */
30484e9dd17Smrg 
30584e9dd17Smrg typedef void (observer_gdb_datadir_changed_ftype) (void);
30684e9dd17Smrg 
30784e9dd17Smrg extern struct observer *observer_attach_gdb_datadir_changed (observer_gdb_datadir_changed_ftype *f);
30884e9dd17Smrg extern void observer_detach_gdb_datadir_changed (struct observer *observer);
30984e9dd17Smrg extern void observer_notify_gdb_datadir_changed (void);
31084e9dd17Smrg 
31184e9dd17Smrg /* command_param_changed notifications.  */
31284e9dd17Smrg 
31384e9dd17Smrg typedef void (observer_command_param_changed_ftype) (const char *param, const char *value);
31484e9dd17Smrg 
31584e9dd17Smrg extern struct observer *observer_attach_command_param_changed (observer_command_param_changed_ftype *f);
31684e9dd17Smrg extern void observer_detach_command_param_changed (struct observer *observer);
31784e9dd17Smrg extern void observer_notify_command_param_changed (const char *param, const char *value);
31884e9dd17Smrg 
31984e9dd17Smrg /* tsv_created notifications.  */
32084e9dd17Smrg 
32184e9dd17Smrg typedef void (observer_tsv_created_ftype) (const struct trace_state_variable *tsv);
32284e9dd17Smrg 
32384e9dd17Smrg extern struct observer *observer_attach_tsv_created (observer_tsv_created_ftype *f);
32484e9dd17Smrg extern void observer_detach_tsv_created (struct observer *observer);
32584e9dd17Smrg extern void observer_notify_tsv_created (const struct trace_state_variable *tsv);
32684e9dd17Smrg 
32784e9dd17Smrg /* tsv_deleted notifications.  */
32884e9dd17Smrg 
32984e9dd17Smrg typedef void (observer_tsv_deleted_ftype) (const struct trace_state_variable *tsv);
33084e9dd17Smrg 
33184e9dd17Smrg extern struct observer *observer_attach_tsv_deleted (observer_tsv_deleted_ftype *f);
33284e9dd17Smrg extern void observer_detach_tsv_deleted (struct observer *observer);
33384e9dd17Smrg extern void observer_notify_tsv_deleted (const struct trace_state_variable *tsv);
33484e9dd17Smrg 
33584e9dd17Smrg /* tsv_modified notifications.  */
33684e9dd17Smrg 
33784e9dd17Smrg typedef void (observer_tsv_modified_ftype) (const struct trace_state_variable *tsv);
33884e9dd17Smrg 
33984e9dd17Smrg extern struct observer *observer_attach_tsv_modified (observer_tsv_modified_ftype *f);
34084e9dd17Smrg extern void observer_detach_tsv_modified (struct observer *observer);
34184e9dd17Smrg extern void observer_notify_tsv_modified (const struct trace_state_variable *tsv);
342ba6b4c93Schristos 
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 
367ba6b4c93Schristos /* test_notification notifications.  */
368ba6b4c93Schristos 
369ba6b4c93Schristos typedef void (observer_test_notification_ftype) (int somearg);
370ba6b4c93Schristos 
371ba6b4c93Schristos extern struct observer *observer_attach_test_notification (observer_test_notification_ftype *f);
372ba6b4c93Schristos extern void observer_detach_test_notification (struct observer *observer);
373ba6b4c93Schristos extern void observer_notify_test_notification (int somearg);
374ba6b4c93Schristos 
3753caff986Smrg /* user_selected_context_changed notifications.  */
3763caff986Smrg 
3773caff986Smrg typedef void (observer_user_selected_context_changed_ftype) (user_selected_what selection);
3783caff986Smrg 
3793caff986Smrg extern struct observer *observer_attach_user_selected_context_changed (observer_user_selected_context_changed_ftype *f);
3803caff986Smrg extern void observer_detach_user_selected_context_changed (struct observer *observer);
3813caff986Smrg extern void observer_notify_user_selected_context_changed (user_selected_what selection);
3823caff986Smrg 
383ba6b4c93Schristos #endif /* OBSERVER_H */
384