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