diff options
Diffstat (limited to 'sysdeps/unix/sysv/linux/mips/sys/ucontext.h')
-rw-r--r-- | sysdeps/unix/sysv/linux/mips/sys/ucontext.h | 110 |
1 files changed, 61 insertions, 49 deletions
diff --git a/sysdeps/unix/sysv/linux/mips/sys/ucontext.h b/sysdeps/unix/sysv/linux/mips/sys/ucontext.h index b5d2e2ab10..ac2f3866f7 100644 --- a/sysdeps/unix/sysv/linux/mips/sys/ucontext.h +++ b/sysdeps/unix/sysv/linux/mips/sys/ucontext.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1997-2016 Free Software Foundation, Inc. This file is part of the GNU C Library. +/* Copyright (C) 1997-2018 Free Software Foundation, Inc. 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 @@ -20,33 +20,43 @@ #define _SYS_UCONTEXT_H 1 #include <features.h> + +#include <bits/types/sigset_t.h> +#include <bits/types/stack_t.h> + #include <sgidefs.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 general register. Even in o32 we assume 64-bit registers, like the kernel. */ __extension__ typedef unsigned long long int greg_t; /* Number of general registers. */ -#define NGREG 32 -#define NFPREG 32 +#define __NGREG 32 +#define __NFPREG 32 +#ifdef __USE_MISC +# define NGREG __NGREG +# define NFPREG __NFPREG +#endif /* Container for all general registers. */ -typedef greg_t gregset_t[NGREG]; +typedef greg_t gregset_t[__NGREG]; + +#ifdef __USE_MISC +# define __ctx(fld) fld +#else +# define __ctx(fld) __ ## fld +#endif /* Container for all FPU registers. */ -typedef struct fpregset { +typedef struct { union { - double fp_dregs[NFPREG]; + double __ctx(fp_dregs)[__NFPREG]; struct { float _fp_fregs; unsigned int _fp_pad; - } fp_fregs[NFPREG]; - } fp_r; + } __ctx(fp_fregs)[__NFPREG]; + } __ctx(fp_r); } fpregset_t; @@ -59,54 +69,56 @@ typedef struct fpregset { still be rectified. */ typedef struct { - unsigned int regmask; - unsigned int status; - greg_t pc; - gregset_t gregs; - fpregset_t fpregs; - unsigned int fp_owned; - unsigned int fpc_csr; - unsigned int fpc_eir; - unsigned int used_math; - unsigned int dsp; - greg_t mdhi; - greg_t mdlo; - unsigned long hi1; - unsigned long lo1; - unsigned long hi2; - unsigned long lo2; - unsigned long hi3; - unsigned long lo3; + unsigned int __ctx(regmask); + unsigned int __ctx(status); + greg_t __ctx(pc); + gregset_t __ctx(gregs); + fpregset_t __ctx(fpregs); + unsigned int __ctx(fp_owned); + unsigned int __ctx(fpc_csr); + unsigned int __ctx(fpc_eir); + unsigned int __ctx(used_math); + unsigned int __ctx(dsp); + greg_t __ctx(mdhi); + greg_t __ctx(mdlo); + unsigned long __ctx(hi1); + unsigned long __ctx(lo1); + unsigned long __ctx(hi2); + unsigned long __ctx(lo2); + unsigned long __ctx(hi3); + unsigned long __ctx(lo3); } mcontext_t; #else typedef struct { - gregset_t gregs; - fpregset_t fpregs; - greg_t mdhi; - greg_t hi1; - greg_t hi2; - greg_t hi3; - greg_t mdlo; - greg_t lo1; - greg_t lo2; - greg_t lo3; - greg_t pc; - unsigned int fpc_csr; - unsigned int used_math; - unsigned int dsp; - unsigned int reserved; + gregset_t __ctx(gregs); + fpregset_t __ctx(fpregs); + greg_t __ctx(mdhi); + greg_t __ctx(hi1); + greg_t __ctx(hi2); + greg_t __ctx(hi3); + greg_t __ctx(mdlo); + greg_t __ctx(lo1); + greg_t __ctx(lo2); + greg_t __ctx(lo3); + greg_t __ctx(pc); + unsigned int __ctx(fpc_csr); + unsigned int __ctx(used_math); + unsigned int __ctx(dsp); + unsigned int __glibc_reserved1; } mcontext_t; #endif /* Userlevel context. */ -typedef struct ucontext +typedef struct ucontext_t { - unsigned long int uc_flags; - struct ucontext *uc_link; + unsigned long int __ctx(uc_flags); + struct ucontext_t *uc_link; stack_t uc_stack; mcontext_t uc_mcontext; - __sigset_t uc_sigmask; + sigset_t uc_sigmask; } ucontext_t; +#undef __ctx + #endif /* sys/ucontext.h */ |