This is the mail archive of the libc-alpha@sources.redhat.com mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [patch] userspace mcontext_t doesn't match what kernel returns


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 */


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]