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

1/* struct ucontext definition, C-SKY version.
2 Copyright (C) 2018-2024 Free Software Foundation, Inc.
3 This file is part of the GNU C Library.
4
5 The GNU C Library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Lesser General Public
7 License as published by the Free Software Foundation; either
8 version 2.1 of the License, or (at your option) any later version.
9
10 The GNU C Library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Lesser General Public License for more details.
14
15 You should have received a copy of the GNU Lesser General Public
16 License along with the GNU C Library. If not, see
17 <https://www.gnu.org/licenses/>. */
18
19#ifndef _SYS_UCONTEXT_H
20#define _SYS_UCONTEXT_H 1
21
22#include <features.h>
23
24#include <bits/types/sigset_t.h>
25#include <bits/types/stack_t.h>
26
27typedef struct
28 {
29 unsigned long __tls;
30 unsigned long __lr;
31 unsigned long __pc;
32 unsigned long __sr;
33 unsigned long __usp;
34
35 /*
36 * a0, a1, a2, a3:
37 * abiv1: r2, r3, r4, r5
38 * abiv2: r0, r1, r2, r3
39 */
40
41 unsigned long __orig_a0;
42 unsigned long __a0;
43 unsigned long __a1;
44 unsigned long __a2;
45 unsigned long __a3;
46
47 /*
48 * ABIV2: r4 ~ r13
49 */
50 unsigned long __regs[10];
51
52 /* r16 ~ r30 */
53 unsigned long __exregs[15];
54
55 unsigned long __rhi;
56 unsigned long __rlo;
57 unsigned long __glibc_reserved;
58 } gregset_t;
59
60typedef struct
61 {
62 unsigned long __vr[64];
63 unsigned long __fcr;
64 unsigned long __fesr;
65 unsigned long __fid;
66 unsigned long __glibc_reserved;
67 } fpregset_t;
68
69/* Context to describe whole processor state. */
70typedef struct
71 {
72 gregset_t __gregs;
73 fpregset_t __fpregs;
74 } mcontext_t;
75
76/* Userlevel context. */
77typedef struct ucontext_t
78 {
79 unsigned long int __uc_flags;
80 struct ucontext_t *uc_link;
81 stack_t uc_stack;
82 mcontext_t uc_mcontext;
83 sigset_t uc_sigmask;
84 } ucontext_t;
85
86#undef __ctx
87
88
89#endif /* sys/ucontext.h */
90

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

source code of glibc/sysdeps/unix/sysv/linux/csky/sys/ucontext.h