From e6676ca35f6f6aeab0e1791f2dc9280979765bef Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Sun, 20 Feb 2000 02:50:41 +0000 Subject: [PATCH] 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. --- ChangeLog | 6 ++++++ sysdeps/unix/sysv/linux/i386/sys/ucontext.h | 28 ++++++++++++++++++++++++++-- 2 files changed, 32 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index df81426..f2d2b31 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,11 @@ 2000-02-19 Ulrich Drepper + * 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 c10e99f..c2a657b 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 . */ #include +/* We also need the definition of the userlevel data representation + for the register contexts. */ +#include + /* 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 */ -- 2.7.4