Warning: This file is not a C or C++ file. It does not have highlighting.

1/* Copyright (C) 2000-2022 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 <https://www.gnu.org/licenses/>. */
17
18#ifndef _BITS_SIGCONTEXT_H
19#define _BITS_SIGCONTEXT_H 1
20
21#if !defined _SIGNAL_H && !defined _SYS_UCONTEXT_H
22# error "Never use <bits/sigcontext.h> directly; include <signal.h> instead."
23#endif
24
25#include <bits/wordsize.h>
26
27#if __WORDSIZE == 32
28
29/* It is quite hard to choose what to put here, because
30 Linux/sparc32 had at least 3 totally incompatible
31 signal stack layouts.
32 This one is for the "new" style signals, which are
33 now delivered unless SA_SIGINFO is requested. */
34
35struct sigcontext
36 {
37 struct
38 {
39 unsigned int psr;
40 unsigned int pc;
41 unsigned int npc;
42 unsigned int y;
43 unsigned int u_regs[16]; /* globals and ins */
44 } si_regs;
45 int si_mask;
46 };
47
48#else /* sparc64 */
49
50typedef struct
51 {
52 unsigned int si_float_regs [64];
53 unsigned long si_fsr;
54 unsigned long si_gsr;
55 unsigned long si_fprs;
56 } __siginfo_fpu_t;
57
58struct sigcontext
59 {
60 char sigc_info[128];
61 struct
62 {
63 unsigned long u_regs[16]; /* globals and ins */
64 unsigned long tstate;
65 unsigned long tpc;
66 unsigned long tnpc;
67 unsigned int y;
68 unsigned int fprs;
69 } sigc_regs;
70 __siginfo_fpu_t * sigc_fpu_save;
71 struct
72 {
73 void * ss_sp;
74 int ss_flags;
75 unsigned long ss_size;
76 } sigc_stack;
77 unsigned long sigc_mask;
78};
79
80#endif /* sparc64 */
81
82#endif /* bits/sigcontext.h */
83

Warning: This file is not a C or C++ file. It does not have highlighting.

source code of glibc/sysdeps/unix/sysv/linux/sparc/bits/sigcontext.h