Update copyright dates with scripts/update-copyrights
[glibc.git] / sysdeps / unix / sysv / linux / csky / sys / ucontext.h
blob2388584b674a189f08b36abd7c1f2853e8904873
1 /* struct ucontext definition, C-SKY version.
2 Copyright (C) 2018-2023 Free Software Foundation, Inc.
3 This file is part of the GNU C Library.
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.
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.
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/>. */
19 #ifndef _SYS_UCONTEXT_H
20 #define _SYS_UCONTEXT_H 1
22 #include <features.h>
24 #include <bits/types/sigset_t.h>
25 #include <bits/types/stack_t.h>
27 typedef struct
29 unsigned long __tls;
30 unsigned long __lr;
31 unsigned long __pc;
32 unsigned long __sr;
33 unsigned long __usp;
36 * a0, a1, a2, a3:
37 * abiv1: r2, r3, r4, r5
38 * abiv2: r0, r1, r2, r3
41 unsigned long __orig_a0;
42 unsigned long __a0;
43 unsigned long __a1;
44 unsigned long __a2;
45 unsigned long __a3;
48 * ABIV2: r4 ~ r13
50 unsigned long __regs[10];
52 /* r16 ~ r30 */
53 unsigned long __exregs[15];
55 unsigned long __rhi;
56 unsigned long __rlo;
57 unsigned long __glibc_reserved;
58 } gregset_t;
60 typedef struct
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;
69 /* Context to describe whole processor state. */
70 typedef struct
72 gregset_t __gregs;
73 fpregset_t __fpregs;
74 } mcontext_t;
76 /* Userlevel context. */
77 typedef struct ucontext_t
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;
86 #undef __ctx
89 #endif /* sys/ucontext.h */