summaryrefslogtreecommitdiff
path: root/gdb/ravenscar-thread.h
diff options
context:
space:
mode:
authorJoel Brobecker <brobecker@gnat.com>2010-09-28 21:39:31 +0000
committerJoel Brobecker <brobecker@gnat.com>2010-09-28 21:39:31 +0000
commit036b1ba8ec8e194f8772ed00ec6b1126e7dce710 (patch)
tree09d09fcb30ca563c99f62f139a2ed7c09f484192 /gdb/ravenscar-thread.h
parent474011fbad9ea70b37691b05202488ee9904d65e (diff)
Add support for GNAT Ravenscar run-time library.
gdb/ChangeLog (Jerome Guitton, Joel Brobecker): * ravenscar-thread.c, ravenscar-thread.h, ravenscar-sparc-thread.c: New files. * configure.tgt (sparc-*-*): Add ravenscar-thread.o and ravenscar-sparc-thread.o to gdb_target_obs.
Diffstat (limited to 'gdb/ravenscar-thread.h')
-rw-r--r--gdb/ravenscar-thread.h41
1 files changed, 41 insertions, 0 deletions
diff --git a/gdb/ravenscar-thread.h b/gdb/ravenscar-thread.h
new file mode 100644
index 0000000000..c8844e3916
--- /dev/null
+++ b/gdb/ravenscar-thread.h
@@ -0,0 +1,41 @@
+/* Ada Ravenscar thread support.
+
+ Copyright 2004, 2010 Free Software Foundation, Inc.
+
+ This file is part of GDB.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#ifndef RAVENSCAR_THREAD_H
+#define RAVENSCAR_THREAD_H
+
+/* Architecture-specific hooks. */
+
+struct ravenscar_arch_ops
+{
+ void (*to_fetch_registers) (struct regcache *, int);
+ void (*to_store_registers) (struct regcache *, int);
+ void (*to_prepare_to_store) (struct regcache *);
+};
+
+/* Register implementations for target ops to_store_registers,
+ to_prepare_to_store and to_fetch_registers when the inferior_ptid
+ is different from the running thread. In that case, the registers
+ are saved in a architecture-specific location. */
+/* FIXME: only one architecture can be registered for now. See
+ implementation. */
+
+extern void ravenscar_register_arch_ops (struct ravenscar_arch_ops *ops);
+
+#endif /* !defined (RAVENSCAR_THREAD_H) */