From 0814bdad52c764ec4f3c010e78d7cdb6418e64e0 Mon Sep 17 00:00:00 2001 From: Mike Frysinger Date: Wed, 23 Aug 2006 19:27:42 +0000 Subject: sync with upstream via psm --- libc/sysdeps/linux/arm/sys/ucontext.h | 33 ++++++++++++++++++--------------- 1 file changed, 18 insertions(+), 15 deletions(-) (limited to 'libc/sysdeps/linux/arm/sys') diff --git a/libc/sysdeps/linux/arm/sys/ucontext.h b/libc/sysdeps/linux/arm/sys/ucontext.h index 1260ee594..9ecff7b59 100644 --- a/libc/sysdeps/linux/arm/sys/ucontext.h +++ b/libc/sysdeps/linux/arm/sys/ucontext.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1998, 1999, 2001 Free Software Foundation, Inc. +/* Copyright (C) 1998, 1999, 2001, 2006 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 @@ -24,12 +24,15 @@ #include #include #include + +/* We need the signal context definitions even if they are not used + included in . */ #include typedef int greg_t; /* Number of general registers. */ -#define NGREG 16 +#define NGREG 18 /* Container for all general registers. */ typedef elf_gregset_t gregset_t; @@ -74,21 +77,21 @@ enum /* Structure to describe FPU registers. */ typedef elf_fpregset_t fpregset_t; -/* Context to describe whole processor state. */ -typedef struct - { - gregset_t gregs; - fpregset_t fpregs; - } mcontext_t; +/* Context to describe whole processor state. This only describes + the core registers; coprocessor registers get saved elsewhere + (e.g. in uc_regspace, or somewhere unspecified on the stack + during non-RT signal handlers). */ +typedef struct sigcontext mcontext_t; /* Userlevel context. */ typedef struct ucontext -{ - unsigned long uc_flags; - struct ucontext *uc_link; - stack_t uc_stack; - struct sigcontext uc_mcontext; - sigset_t uc_sigmask; /* mask last for extensibility */ -} ucontext_t; + { + unsigned long uc_flags; + struct ucontext *uc_link; + stack_t uc_stack; + mcontext_t uc_mcontext; + __sigset_t uc_sigmask; + unsigned long uc_regspace[128] __attribute__((__aligned__(8))); + } ucontext_t; #endif /* sys/ucontext.h */ -- cgit v1.2.3