aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2000-02-20 02:50:41 +0000
committerUlrich Drepper <drepper@redhat.com>2000-02-20 02:50:41 +0000
commite6676ca35f6f6aeab0e1791f2dc9280979765bef (patch)
tree5af89f53a9659febb8d1777b737c7c9cc4814312
parent99bd22d637df063f913d3a232c494985b0f87bcb (diff)
downloadglibc-e6676ca35f6f6aeab0e1791f2dc9280979765bef.tar
glibc-e6676ca35f6f6aeab0e1791f2dc9280979765bef.tar.gz
glibc-e6676ca35f6f6aeab0e1791f2dc9280979765bef.tar.bz2
glibc-e6676ca35f6f6aeab0e1791f2dc9280979765bef.zip
Update.
* sysdeps/unix/sysv/linux/i386/sys/ucontext.h: Add definition of _fpreg and _fpstate and use it to define fpregset_t. * sysdeps/unix/sysv/linux/i386/sys/procfs.h (prgregset_t): Define using elf_gregset_t. (prfpregset_t): Define using elf_fpregset_t.
-rw-r--r--ChangeLog6
-rw-r--r--sysdeps/unix/sysv/linux/i386/sys/ucontext.h28
2 files changed, 32 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index df81426589..f2d2b3115c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
2000-02-19 Ulrich Drepper <drepper@redhat.com>
+ * sysdeps/unix/sysv/linux/i386/sys/ucontext.h: Add definition of
+ _fpreg and _fpstate and use it to define fpregset_t.
+ * sysdeps/unix/sysv/linux/i386/sys/procfs.h (prgregset_t): Define
+ using elf_gregset_t.
+ (prfpregset_t): Define using elf_fpregset_t.
+
* sysdeps/unix/sysv/linux/i386/sys/ucontext.h: Make fpregset_t
definition compatible with definition in 2.1.2 and before.
(struct ucontext): Use fpregset_t.
diff --git a/sysdeps/unix/sysv/linux/i386/sys/ucontext.h b/sysdeps/unix/sysv/linux/i386/sys/ucontext.h
index c10e99f36d..c2a657b8cc 100644
--- a/sysdeps/unix/sysv/linux/i386/sys/ucontext.h
+++ b/sysdeps/unix/sysv/linux/i386/sys/ucontext.h
@@ -26,6 +26,10 @@
included in <signal.h>. */
#include <bits/sigcontext.h>
+/* We also need the definition of the userlevel data representation
+ for the register contexts. */
+#include <sys/user.h>
+
/* Type for general register. */
typedef int greg_t;
@@ -81,8 +85,28 @@ enum
};
#endif
+/* Definitions taken from the kernel headers. */
+struct _fpreg
+{
+ unsigned short int significand[4];
+ unsigned short int exponent;
+};
+
+struct _fpstate
+{
+ unsigned long int cw;
+ unsigned long int sw;
+ unsigned long int tag;
+ unsigned long int ipoff;
+ unsigned long int cssel;
+ unsigned long int dataoff;
+ unsigned long int datasel;
+ struct _fpreg _st[8];
+ unsigned long int status;
+};
+
/* Structure to describe FPU registers. */
-typedef struct user_fpregs_struct fpregset_t;
+typedef struct _fpstate *fpregset_t;
/* Context to describe whole processor state. */
typedef struct
@@ -103,7 +127,7 @@ typedef struct ucontext
stack_t uc_stack;
mcontext_t uc_mcontext;
__sigset_t uc_sigmask;
- fpregset_t __fpregs_mem;
+ struct _fpstate __fpregs_mem;
} ucontext_t;
#endif /* sys/ucontext.h */