* 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.
This commit is contained in:
Ulrich Drepper 2000-02-20 02:50:41 +00:00
parent 99bd22d637
commit e6676ca35f
2 changed files with 32 additions and 2 deletions

View File

@ -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.

View File

@ -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 */