diff options
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/i386/sys/ucontext.h | 28 |
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 */ |