From e6676ca35f6f6aeab0e1791f2dc9280979765bef Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Sun, 20 Feb 2000 02:50:41 +0000 Subject: 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. --- sysdeps/unix/sysv/linux/i386/sys/ucontext.h | 28 ++++++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) (limited to 'sysdeps/unix/sysv/linux/i386') 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 . */ #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 */ -- cgit v1.2.3