xref: /dflybsd-src/contrib/gdb-7/gdb/ravenscar-thread.h (revision c50c785cb49e9377ca78104c5540c7b33f768771)
1*c50c785cSJohn Marino /* Ada Ravenscar thread support.
2*c50c785cSJohn Marino 
3*c50c785cSJohn Marino    Copyright 2004, 2010, 2011 Free Software Foundation, Inc.
4*c50c785cSJohn Marino 
5*c50c785cSJohn Marino    This file is part of GDB.
6*c50c785cSJohn Marino 
7*c50c785cSJohn Marino    This program is free software; you can redistribute it and/or modify
8*c50c785cSJohn Marino    it under the terms of the GNU General Public License as published by
9*c50c785cSJohn Marino    the Free Software Foundation; either version 3 of the License, or
10*c50c785cSJohn Marino    (at your option) any later version.
11*c50c785cSJohn Marino 
12*c50c785cSJohn Marino    This program is distributed in the hope that it will be useful,
13*c50c785cSJohn Marino    but WITHOUT ANY WARRANTY; without even the implied warranty of
14*c50c785cSJohn Marino    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15*c50c785cSJohn Marino    GNU General Public License for more details.
16*c50c785cSJohn Marino 
17*c50c785cSJohn Marino    You should have received a copy of the GNU General Public License
18*c50c785cSJohn Marino    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
19*c50c785cSJohn Marino 
20*c50c785cSJohn Marino #ifndef RAVENSCAR_THREAD_H
21*c50c785cSJohn Marino #define RAVENSCAR_THREAD_H
22*c50c785cSJohn Marino 
23*c50c785cSJohn Marino /* Architecture-specific hooks.  */
24*c50c785cSJohn Marino 
25*c50c785cSJohn Marino struct ravenscar_arch_ops
26*c50c785cSJohn Marino {
27*c50c785cSJohn Marino   void (*to_fetch_registers) (struct regcache *, int);
28*c50c785cSJohn Marino   void (*to_store_registers) (struct regcache *, int);
29*c50c785cSJohn Marino   void (*to_prepare_to_store) (struct regcache *);
30*c50c785cSJohn Marino };
31*c50c785cSJohn Marino 
32*c50c785cSJohn Marino /* Register implementations for target ops to_store_registers,
33*c50c785cSJohn Marino    to_prepare_to_store and to_fetch_registers when the inferior_ptid
34*c50c785cSJohn Marino    is different from the running thread.  In that case, the registers
35*c50c785cSJohn Marino    are saved in a architecture-specific location.  */
36*c50c785cSJohn Marino /* FIXME: only one architecture can be registered for now.  See
37*c50c785cSJohn Marino    implementation.  */
38*c50c785cSJohn Marino 
39*c50c785cSJohn Marino extern void ravenscar_register_arch_ops (struct ravenscar_arch_ops *ops);
40*c50c785cSJohn Marino 
41*c50c785cSJohn Marino #endif /* !defined (RAVENSCAR_THREAD_H) */
42