]>
git.ipfire.org Git - thirdparty/glibc.git/blob - sysdeps/unix/sysv/linux/s390/sys/ucontext.h
1 /* Copyright (C) 2000-2014 Free Software Foundation, Inc.
2 Contributed by Denis Joseph Barrow (djbarrow@de.ibm.com).
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 <http://www.gnu.org/licenses/>. */
19 #ifndef _SYS_UCONTEXT_H
20 #define _SYS_UCONTEXT_H 1
21 /* Forward definition to avoid parse errors */
23 typedef struct ucontext ucontext_t
;
27 /* We need the signal context definitions even if they are not used
28 included in <signal.h>. */
29 #include <bits/sigcontext.h>
31 /* Type for a program status word. */
36 } __attribute__ ((__aligned__(8))) __psw_t
;
38 /* Type for a general-purpose register. */
39 typedef unsigned long greg_t
;
41 /* And the whole bunch of them. We should have used `struct s390_regs',
42 but to avoid name space pollution and since the tradition says that
43 the register set is an array, we make gregset_t a simple array
44 that has the same size as s390_regs. This is needed for the
45 elf_prstatus structure. */
51 /* Must match kernels psw_t alignment. */
52 typedef greg_t gregset_t
[NGREG
] __attribute__ ((__aligned__(8)));
60 /* Register set for the floating-point registers. */
67 /* Bit is set if the uc_high_gprs field contains the upper halfs of
68 the 64 bit general purpose registers. Since the uc_high_gprs field
69 is only available in the 32 bit version of ucontext_t it will never
71 #define UCONTEXT_UC_FLAGS_HIGH_GPRS (1UL << 0)
73 /* A new uc_flags constant will be defined when actually making use of
74 the reserved space: UCONTEXT_UCFLAGS_RESERVED (1UL << 1). */
76 /* Context to describe whole processor state. */
80 unsigned long gregs
[16];
81 unsigned int aregs
[16];
85 /* Userlevel context. */
88 unsigned long int uc_flags
;
89 struct ucontext
*uc_link
;
91 mcontext_t uc_mcontext
;
92 __sigset_t uc_sigmask
;
94 unsigned long uc_high_gprs
[16];
100 #endif /* sys/ucontext.h */