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