]>
git.ipfire.org Git - thirdparty/glibc.git/blob - sysdeps/mips/sys/ucontext.h
1 /* Copyright (C) 1998-2017 Free Software Foundation, Inc.
2 This file is part of the GNU C Library.
4 The GNU C Library is free software; you can redistribute it and/or
5 modify it under the terms of the GNU Lesser General Public
6 License as published by the Free Software Foundation; either
7 version 2.1 of the License, or (at your option) any later version.
9 The GNU C Library is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 Lesser General Public License for more details.
14 You should have received a copy of the GNU Lesser General Public
15 License along with the GNU C Library. If not, see
16 <http://www.gnu.org/licenses/>. */
18 /* System V/mips ABI compliant context switching support. */
20 #ifndef _SYS_UCONTEXT_H
21 #define _SYS_UCONTEXT_H 1
26 /* We need the signal context definitions even if they are not exposed
28 #include <bits/sigcontext.h>
29 #include <bits/sigstack.h>
34 /* Type for general register. */
35 #if _MIPS_SIM == _ABIO32
36 typedef __uint32_t greg_t
;
38 typedef __uint64_t greg_t
;
41 /* Number of general registers. */
44 /* Container for all general registers. */
45 typedef greg_t gregset_t
[NGREG
];
47 /* Number of each register is the `gregset_t' array. */
101 #define CTX_T9 CTX_T9
103 #define CTX_K0 CTX_K0
105 #define CTX_K1 CTX_K1
107 #define CTX_GP CTX_GP
109 #define CTX_SP CTX_SP
111 #define CTX_S8 CTX_S8
113 #define CTX_RA CTX_RA
115 #define CTX_MDLO CTX_MDLO
117 #define CTX_MDHI CTX_MDHI
119 #define CTX_CAUSE CTX_CAUSE
121 #define CTX_EPC CTX_EPC
124 /* Structure to describe FPU registers. */
125 typedef struct fpregset
129 #if _MIPS_SIM == _ABIO32
132 unsigned int fp_regs
[32];
135 /* float fp_fregs[32]; */
136 __uint64_t fp_regs
[32];
143 /* Context to describe whole processor state. */
150 /* Userlevel context. */
151 typedef struct ucontext
153 #if _MIPS_SIM == _ABIO32
154 unsigned long int uc_flags
;
158 struct ucontext
*uc_link
;
159 __sigset_t uc_sigmask
;
161 mcontext_t uc_mcontext
;
165 #endif /* sys/ucontext.h */