Update copyright dates with scripts/update-copyrights.
[glibc.git] / sysdeps / unix / sysv / linux / sparc / bits / sigcontext.h
blob590d63e1aead8b7a4886bfa74cb96c05919ee994
1 /* Copyright (C) 2000-2015 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 #if !defined _SIGNAL_H && !defined _SYS_UCONTEXT_H
19 # error "Never use <bits/sigcontext.h> directly; include <signal.h> instead."
20 #endif
22 #include <bits/wordsize.h>
24 #if __WORDSIZE == 32
26 /* It is quite hard to choose what to put here, because
27 Linux/sparc32 had at least 3 totally incompatible
28 signal stack layouts.
29 This one is for the "new" style signals, which are
30 now delivered unless SA_SIGINFO is requested. */
32 struct sigcontext
34 struct
36 unsigned int psr;
37 unsigned int pc;
38 unsigned int npc;
39 unsigned int y;
40 unsigned int u_regs[16]; /* globals and ins */
41 } si_regs;
42 int si_mask;
45 #else /* sparc64 */
47 typedef struct
49 unsigned int si_float_regs [64];
50 unsigned long si_fsr;
51 unsigned long si_gsr;
52 unsigned long si_fprs;
53 } __siginfo_fpu_t;
55 struct sigcontext
57 char sigc_info[128];
58 struct
60 unsigned long u_regs[16]; /* globals and ins */
61 unsigned long tstate;
62 unsigned long tpc;
63 unsigned long tnpc;
64 unsigned int y;
65 unsigned int fprs;
66 } sigc_regs;
67 __siginfo_fpu_t * sigc_fpu_save;
68 struct
70 void * ss_sp;
71 int ss_flags;
72 unsigned long ss_size;
73 } sigc_stack;
74 unsigned long sigc_mask;
77 #endif /* sparc64 */