summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog10
-rw-r--r--elf/elf.h1
-rw-r--r--sysdeps/unix/sysv/linux/i386/sys/elf.h3
-rw-r--r--sysdeps/unix/sysv/linux/i386/sys/user.h73
4 files changed, 58 insertions, 29 deletions
diff --git a/ChangeLog b/ChangeLog
index 8bd984a368..3ea6906b56 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2000-06-24  Ulrich Drepper  <drepper@redhat.com>
+
+	* sysdeps/unix/sysv/linux/i386/sys/elf.h (elf_fpxregset_t):
+	Define.
+
+	* sysdeps/unix/sysv/linux/i386/sys/user.h (struct
+	user_fpxregs_struct): Define.
+
+	* elf/elf.h (NT_PRFPXREG): Define.
+
 2000-06-23  Ulrich Drepper  <drepper@redhat.com>
 
 	* sysdeps/unix/sysv/linux/sys/ptrace.h (__ptrace_request): Define
diff --git a/elf/elf.h b/elf/elf.h
index d94f03b652..2005bdcf63 100644
--- a/elf/elf.h
+++ b/elf/elf.h
@@ -543,6 +543,7 @@ typedef struct
 #define NT_UTSNAME	15		/* Contains copy of utsname struct */
 #define NT_LWPSTATUS	16		/* Contains copy of lwpstatus struct */
 #define NT_LWPSINFO	17		/* Contains copy of lwpinfo struct */
+#define NT_PRFPXREG	20		/* Contains copy of fprxregset struct*/
 
 /* Legal values for the note segment descriptor types for object files.  */
 
diff --git a/sysdeps/unix/sysv/linux/i386/sys/elf.h b/sysdeps/unix/sysv/linux/i386/sys/elf.h
index 68ed3eeed0..1590ec5186 100644
--- a/sysdeps/unix/sysv/linux/i386/sys/elf.h
+++ b/sysdeps/unix/sysv/linux/i386/sys/elf.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998 Free Software Foundation, Inc.
+/* Copyright (C) 1998, 2000 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -31,6 +31,7 @@ typedef unsigned long elf_greg_t;
 typedef elf_greg_t elf_gregset_t[ELF_NGREG];
 
 typedef struct user_fpregs_struct elf_fpregset_t;
+typedef struct user_fpxregs_struct elf_fpxregset_t;
 
 #define USE_ELF_CORE_DUMP
 #define ELF_EXEC_PAGESIZE	4096
diff --git a/sysdeps/unix/sysv/linux/i386/sys/user.h b/sysdeps/unix/sysv/linux/i386/sys/user.h
index 4ab02a7406..884402a6de 100644
--- a/sysdeps/unix/sysv/linux/i386/sys/user.h
+++ b/sysdeps/unix/sysv/linux/i386/sys/user.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998 Free Software Foundation, Inc.
+/* Copyright (C) 1998, 2000 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -25,35 +25,52 @@
 
 struct user_fpregs_struct
 {
-  long cwd;
-  long swd;
-  long twd;
-  long fip;
-  long fcs;
-  long foo;
-  long fos;
-  long st_space [20];
+  long int cwd;
+  long int swd;
+  long int twd;
+  long int fip;
+  long int fcs;
+  long int foo;
+  long int fos;
+  long int st_space [20];
+};
+
+struct user_fpxregs_struct
+{
+  unsigned short int cwd;
+  unsigned short int swd;
+  unsigned short int twd;
+  unsigned short int fop;
+  long int fip;
+  long int fcs;
+  long int foo;
+  long int fos;
+  long int mxcsr;
+  long int reserved;
+  long int st_space[32];   /* 8*16 bytes for each FP-reg = 128 bytes */
+  long int xmm_space[32];  /* 8*16 bytes for each XMM-reg = 128 bytes */
+  long int padding[56];
 };
 
 struct user_regs_struct
 {
-  long ebx;
-  long ecx;
-  long edx;
-  long esi;
-  long edi;
-  long ebp;
-  long eax;
-  long xds;
-  long xes;
-  long xfs;
-  long xgs;
-  long orig_eax;
-  long eip;
-  long xcs;
-  long eflags;
-  long esp;
-  long xss;
+  long int ebx;
+  long int ecx;
+  long int edx;
+  long int esi;
+  long int edi;
+  long int ebp;
+  long int eax;
+  long int xds;
+  long int xes;
+  long int xfs;
+  long int xgs;
+  long int orig_eax;
+  long int eip;
+  long int xcs;
+  long int eflags;
+  long int esp;
+  long int xss;
 };
 
 struct user
@@ -61,7 +78,7 @@ struct user
   struct user_regs_struct	regs;
   int				u_fpvalid;
   struct user_fpregs_struct	i387;
-  unsigned long			int u_tsize;
+  unsigned long int		u_tsize;
   unsigned long int		u_dsize;
   unsigned long int		u_ssize;
   unsigned long			start_code;
@@ -70,7 +87,7 @@ struct user
   int				reserved;
   struct user_regs_struct*	u_ar0;
   struct user_fpregs_struct*	u_fpstate;
-  unsigned long			magic;
+  unsigned long int		magic;
   char				u_comm [32];
   int				u_debugreg [8];
 };