mirror of
https://sourceware.org/git/glibc.git
synced 2025-01-03 08:11:08 +00:00
S/390: Merge 32 and 64 bit ucontext.h.
This commit is contained in:
parent
4959e284ca
commit
0f0c35e46e
@ -1,3 +1,10 @@
|
||||
2014-01-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
|
||||
|
||||
* sysdeps/unix/sysv/linux/s390/s390-32/sys/ucontext.h: Merge into
|
||||
s390/sys/ucontext.h.
|
||||
* sysdeps/unix/sysv/linux/s390/s390-64/sys/ucontext.h: Likewise.
|
||||
* sysdeps/unix/sysv/linux/s390/sys/ucontext.h: New file.
|
||||
|
||||
2014-01-20 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
[BZ #15605]
|
||||
|
@ -1,96 +0,0 @@
|
||||
/* Copyright (C) 2000-2014 Free Software Foundation, Inc.
|
||||
Contributed by Denis Joseph Barrow (djbarrow@de.ibm.com).
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
#ifndef _SYS_UCONTEXT_H
|
||||
#define _SYS_UCONTEXT_H 1
|
||||
/* Forward definition to avoid parse errors */
|
||||
struct ucontext;
|
||||
typedef struct ucontext ucontext_t;
|
||||
#include <features.h>
|
||||
#include <signal.h>
|
||||
|
||||
/* We need the signal context definitions even if they are not used
|
||||
included in <signal.h>. */
|
||||
#include <bits/sigcontext.h>
|
||||
|
||||
/* Type for a program status word. */
|
||||
typedef struct
|
||||
{
|
||||
unsigned long mask;
|
||||
unsigned long addr;
|
||||
} __attribute__ ((__aligned__(8))) __psw_t;
|
||||
|
||||
/* Type for a general-purpose register. */
|
||||
typedef unsigned long greg_t;
|
||||
|
||||
/* And the whole bunch of them. We should have used `struct s390_regs',
|
||||
but to avoid name space pollution and since the tradition says that
|
||||
the register set is an array, we make gregset_t a simple array
|
||||
that has the same size as s390_regs. This is needed for the
|
||||
elf_prstatus structure. */
|
||||
#if __WORDSIZE == 64
|
||||
# define NGREG 27
|
||||
#else
|
||||
# define NGREG 36
|
||||
#endif
|
||||
/* Must match kernels psw_t alignment. */
|
||||
typedef greg_t gregset_t[NGREG] __attribute__ ((__aligned__(8)));
|
||||
|
||||
typedef union
|
||||
{
|
||||
double d;
|
||||
float f;
|
||||
} fpreg_t;
|
||||
|
||||
/* Register set for the floating-point registers. */
|
||||
typedef struct
|
||||
{
|
||||
unsigned int fpc;
|
||||
fpreg_t fprs[16];
|
||||
} fpregset_t;
|
||||
|
||||
/* Bit 0 is reserved for the uc_high_gprs field only available in the
|
||||
32 bit version of ucontext_t. This bit will never be set for 64
|
||||
bit. */
|
||||
#define UCONTEXT_UC_FLAGS_HIGH_GPRS (1UL << 0)
|
||||
|
||||
/* A new uc_flags constant will be defined when actually making use of
|
||||
the reserved space: UCONTEXT_UCFLAGS_RESERVED (1UL << 1). */
|
||||
|
||||
/* Context to describe whole processor state. */
|
||||
typedef struct
|
||||
{
|
||||
__psw_t psw;
|
||||
unsigned long gregs[16];
|
||||
unsigned int aregs[16];
|
||||
fpregset_t fpregs;
|
||||
} mcontext_t;
|
||||
|
||||
/* Userlevel context. */
|
||||
struct ucontext
|
||||
{
|
||||
unsigned long int uc_flags;
|
||||
struct ucontext *uc_link;
|
||||
stack_t uc_stack;
|
||||
mcontext_t uc_mcontext;
|
||||
__sigset_t uc_sigmask;
|
||||
char reserved[512];
|
||||
};
|
||||
|
||||
|
||||
#endif /* sys/ucontext.h */
|
@ -1,4 +1,4 @@
|
||||
/* Copyright (C) 2000-2013 Free Software Foundation, Inc.
|
||||
/* Copyright (C) 2000-2014 Free Software Foundation, Inc.
|
||||
Contributed by Denis Joseph Barrow (djbarrow@de.ibm.com).
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
@ -65,7 +65,9 @@ typedef struct
|
||||
} fpregset_t;
|
||||
|
||||
/* Bit is set if the uc_high_gprs field contains the upper halfs of
|
||||
the 64 bit general purpose registers. */
|
||||
the 64 bit general purpose registers. Since the uc_high_gprs field
|
||||
is only available in the 32 bit version of ucontext_t it will never
|
||||
be set for 64 bit. */
|
||||
#define UCONTEXT_UC_FLAGS_HIGH_GPRS (1UL << 0)
|
||||
|
||||
/* A new uc_flags constant will be defined when actually making use of
|
||||
@ -88,7 +90,9 @@ struct ucontext
|
||||
stack_t uc_stack;
|
||||
mcontext_t uc_mcontext;
|
||||
__sigset_t uc_sigmask;
|
||||
#ifndef __s390x__
|
||||
unsigned long uc_high_gprs[16];
|
||||
#endif
|
||||
char __reserved[512];
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user