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