]> rtime.felk.cvut.cz Git - l4.git/blob - l4/pkg/uclibc/lib/contrib/uclibc/libc/sysdeps/linux/cris/sys/ucontext.h
update
[l4.git] / l4 / pkg / uclibc / lib / contrib / uclibc / libc / sysdeps / linux / cris / sys / ucontext.h
1 /* Copyright (C) 1997, 1999, 2001 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 /* System V/cris ABI compliant context switching support.  */
19
20 #ifndef _SYS_UCONTEXT_H
21 #define _SYS_UCONTEXT_H 1
22
23 #include <features.h>
24 #include <signal.h>
25
26 #include <bits/sigcontext.h>
27
28 /* Type for general register.  */
29 typedef long int greg_t;
30
31 /* Number of general registers.  */
32 #define NGREG   20
33
34 /* Container for all general registers.  */
35 typedef greg_t gregset_t[NGREG];
36
37 /* Number of each register is the `gregset_t' array.  */
38 enum
39 {
40   R0 = 0,
41 #define R0    R0
42   R1 = 1,
43 #define R1    R1
44   R2 = 2,
45 #define R2    R2
46   R3 = 3,
47 #define R3    R3
48   R4 = 4,
49 #define R4    R4
50   R5 = 5,
51 #define R5    R5
52   R6 = 6,
53 #define R6    R6
54   R7 = 7,
55 #define R7    R7
56   R8 = 8,
57 #define R8    R8
58   R9 = 9,
59 #define R9    R9
60   R10 = 10,
61 #define R10    R10
62   R11 = 11,
63 #define R11    R11
64   R12 = 12,
65 #define R12    R12
66   R13 = 13,
67 #define R13    R13
68   R14 = 14,
69 #define R14    R14
70   R15 = 15,
71 #define R15    R15
72   R_SP = R14,
73 #define R_SP    R_SP
74   R_PC = R15,
75 #define R_PC    R_PC
76 };
77
78 /* A placeholder; CRIS does not have any fp regs.  */
79 typedef unsigned long fpregset_t;
80
81 /* A machine context is exactly a sigcontext.  */
82 typedef struct sigcontext mcontext_t;
83
84 /* Userlevel context.  */
85 typedef struct ucontext
86   {
87     unsigned long int uc_flags;
88     struct ucontext *uc_link;
89     stack_t uc_stack;
90     mcontext_t uc_mcontext;
91     __sigset_t uc_sigmask;
92   } ucontext_t;
93
94 #endif /* sys/ucontext.h */