]>
Commit | Line | Data |
---|---|---|
f7a9f785 | 1 | /* Copyright (C) 2011-2016 Free Software Foundation, Inc. |
63d143a2 CM |
2 | This file is part of the GNU C Library. |
3 | Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011. | |
4 | ||
5 | The GNU C Library is free software; you can redistribute it and/or | |
6 | modify it under the terms of the GNU Lesser General Public | |
7 | License as published by the Free Software Foundation; either | |
8 | version 2.1 of the License, or (at your option) any later version. | |
9 | ||
10 | The GNU C Library is distributed in the hope that it will be useful, | |
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | |
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
13 | Lesser General Public License for more details. | |
14 | ||
15 | You should have received a copy of the GNU Lesser General Public | |
ab84e3ff PE |
16 | License along with the GNU C Library. If not, see |
17 | <http://www.gnu.org/licenses/>. */ | |
63d143a2 CM |
18 | |
19 | #ifndef _SYS_UCONTEXT_H | |
20 | #define _SYS_UCONTEXT_H 1 | |
21 | ||
22 | #include <features.h> | |
23 | #include <signal.h> | |
24 | ||
25 | /* We need the signal context definitions even if they are not used | |
26 | included in <signal.h>. */ | |
27 | #include <bits/sigcontext.h> | |
28 | ||
29 | /* Get register type and register names. */ | |
30 | #include <arch/abi.h> | |
31 | ||
32 | /* Type for general register. */ | |
33 | typedef uint_reg_t greg_t; | |
34 | ||
35 | /* Number of general registers. Must agree with <asm/ptrace.h>. */ | |
36 | #define NGREG 64 | |
37 | ||
38 | /* Container for all general registers. */ | |
39 | typedef greg_t gregset_t[NGREG]; | |
40 | ||
41 | #ifdef __USE_GNU | |
42 | /* Names for interesting registers in the `gregset_t' array. */ | |
43 | enum | |
44 | { | |
45 | /* ... r0 through r51 are just 0 through 51 ... */ | |
46 | REG_FP = TREG_FP, | |
47 | # define REG_FP REG_FP | |
48 | REG_TP = TREG_TP, | |
49 | # define REG_TP REG_TP | |
50 | REG_SP = TREG_SP, | |
51 | # define REG_SP REG_SP | |
52 | REG_LR = TREG_LR, | |
53 | # define REG_LR REG_LR | |
54 | }; | |
55 | #endif | |
56 | ||
57 | /* A machine context is exactly a sigcontext. */ | |
58 | typedef struct sigcontext mcontext_t; | |
59 | ||
60 | /* Userlevel context. */ | |
61 | typedef struct ucontext | |
62 | { | |
63 | unsigned long int uc_flags; | |
64 | struct ucontext *uc_link; | |
65 | stack_t uc_stack; | |
66 | mcontext_t uc_mcontext; | |
67 | __sigset_t uc_sigmask; | |
68 | } ucontext_t; | |
69 | ||
70 | #endif /* sys/ucontext.h */ |