This is the mail archive of the
libc-alpha@sources.redhat.com
mailing list for the glibc project.
Re: [patch] userspace mcontext_t doesn't match what kernel returns
- From: Ralf Baechle <ralf at linux-mips dot org>
- To: Ryan Murray <rmurray at debian dot org>
- Cc: linux-mips at linux-mips dot org, libc-alpha at sources dot redhat dot com
- Date: Sun, 15 Sep 2002 21:06:01 +0200
- Subject: Re: [patch] userspace mcontext_t doesn't match what kernel returns
- References: <20020911032832.GA1500@cyberhqz.com>
On Tue, Sep 10, 2002 at 08:28:32PM -0700, Ryan Murray wrote:
> The definition of mcontext_t in sysdeps/unix/sysv/linux/mips/sys/ucontext.h
> does not match what the kernel copies to userspace (struct sigcontext).
> alpha, ia64, and hppa have fixed this by typedefing one to the other in
> sys/ucontext.h The following patch accomplishes the same thing for mips.
I choose to fix the kernel instead which will keep as closer to the MIPS
ABI and also prevent having to recompile zillions of user apps. Below my
working version of <asm/ucontext.h>.
Ralf
/*
* This file is subject to the terms and conditions of the GNU General Public
* License. See the file "COPYING" in the main directory of this archive
* for more details.
*
* Low level exception handling
*
* Copyright (C) 1998, 1999 by Ralf Baechle
*/
#ifndef _ASM_UCONTEXT_H
#define _ASM_UCONTEXT_H
typedef struct {
gregset_t gregs;
fpregset_t fpregs;
} mcontext_t;
struct ucontext {
unsigned long uc_flags;
struct ucontext *uc_link;
stack_t uc_stack;
mcontext_t uc_mcontext;
sigset_t uc_sigmask; /* mask last for extensibility */
};
#endif /* _ASM_UCONTEXT_H */