1 /* Copyright (C) 1998, 1999, 2001, 2006 Free Software Foundation, Inc.
2    This file is part of the GNU C Library.
3 
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.
8 
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.
13 
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/>.  */
17 
18 
19 #ifndef _SYS_UCONTEXT_H
20 #define _SYS_UCONTEXT_H	1
21 
22 #include <features.h>
23 #include <signal.h>
24 #include <sys/procfs.h>
25 
26 /* We need the signal context definitions even if they are not used
27  *    included in <signal.h>.  */
28 #include <bits/sigcontext.h>
29 
30 
31 /* Context to describe whole processor state.  This only describes
32    the core registers; coprocessor registers get saved elsewhere
33    (e.g. in uc_regspace, or somewhere unspecified on the stack
34    during non-RT signal handlers).  */
35 typedef struct sigcontext mcontext_t;
36 
37 
38 /* Userlevel context.  */
39 typedef struct ucontext
40   {
41     unsigned long int uc_flags;
42     struct ucontext *uc_link;
43     stack_t uc_stack;
44     mcontext_t uc_mcontext;
45     __sigset_t uc_sigmask;
46   } ucontext_t;
47 #endif /* sys/ucontext.h */
48