]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
* sysdeps/unix/sysv/linux/arm/sys/ucontext.h: Include
authorDaniel Jacobowitz <dan@codesourcery.com>
Wed, 5 Jul 2006 16:58:01 +0000 (16:58 +0000)
committerDaniel Jacobowitz <dan@codesourcery.com>
Wed, 5 Jul 2006 16:58:01 +0000 (16:58 +0000)
<bits/sigcontext.h>.
(NGREG, mcontext_t, struct ucontext): Update to match the kernel.

ChangeLog.arm
sysdeps/unix/sysv/linux/arm/sys/ucontext.h

index d8ba24758de495e68a6140aa9ec5231dca617c01..7e0d19c89d895d7cd9a79e687ecddfe68d0b9b7c 100644 (file)
@@ -1,3 +1,9 @@
+2006-07-05  Daniel Jacobowitz  <dan@codesourcery.com>
+
+       * sysdeps/unix/sysv/linux/arm/sys/ucontext.h: Include
+       <bits/sigcontext.h>.
+       (NGREG, mcontext_t, struct ucontext): Update to match the kernel.
+
 2006-07-05  Daniel Jacobowitz  <dan@codesourcery.com>
 
        * sysdeps/arm/dl-machine.h (elf_machine_dynamic): Correct GOT access to
index 6d6c8e39904afeade1c2c05c0be3333e9a6bb3b7..9ecff7b595950f7df9378000584a9082f727f66a 100644 (file)
@@ -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
 #include <signal.h>
 #include <sys/procfs.h>
 
+/* We need the signal context definitions even if they are not used
+   included in <signal.h>.  */
+#include <bits/sigcontext.h>
+
 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;
@@ -73,22 +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 int uc_flags;
+    unsigned long uc_flags;
     struct ucontext *uc_link;
-    __sigset_t uc_sigmask;
     stack_t uc_stack;
     mcontext_t uc_mcontext;
-    long int uc_filler[5];
+    __sigset_t uc_sigmask;
+    unsigned long uc_regspace[128] __attribute__((__aligned__(8)));
   } ucontext_t;
 
 #endif /* sys/ucontext.h */