/* Interface for functions using gregset and fpregset types.
- Copyright (C) 2000 Free Software Foundation, Inc.
+ Copyright 2000, 2002 Free Software Foundation, Inc.
This file is part of GDB.
Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
+#ifndef GREGSET_H
+#define GREGSET_H
+
#ifndef GDB_GREGSET_T
#define GDB_GREGSET_T gregset_t
#endif
#define GDB_FPREGSET_T fpregset_t
#endif
-typedef GDB_GREGSET_T gdb_gregset_t;
+typedef GDB_GREGSET_T gdb_gregset_t;
typedef GDB_FPREGSET_T gdb_fpregset_t;
/* A gregset is a data structure supplied by the native OS containing
includes integer registers and control registers. An fpregset is a
data structure containing the floating point registers. These data
structures were originally a part of the /proc interface, but have
- been borrowed or copied by other GDB targets, eg. Linux. */
+ been borrowed or copied by other GDB targets, eg. GNU/Linux. */
-/* Copy register values from the native target gregset / fpregset
+/* Copy register values from the native target gregset/fpregset
into GDB's internal register cache. */
-extern void supply_gregset (gdb_gregset_t *gregs);
+extern void supply_gregset (gdb_gregset_t *gregs);
extern void supply_fpregset (gdb_fpregset_t *fpregs);
/* Copy register values from GDB's register cache into
- the native target gregset / fpregset. If regno is -1,
+ the native target gregset/fpregset. If regno is -1,
copy all the registers. */
-extern void fill_gregset (gdb_gregset_t *gregs, int regno);
-extern void fill_fpregset (gdb_fpregset_t *fpregs, int regno);
+extern void fill_gregset (gdb_gregset_t *gregs, int regno);
+extern void fill_fpregset (gdb_fpregset_t *fpregs, int regno);
+
+#ifdef FILL_FPXREGSET
+/* GNU/Linux i386: Copy register values between GDB's internal register cache
+ and the i386 extended floating point registers. */
+
+#ifndef GDB_FPXREGSET_T
+#define GDB_FPXREGSET_T elf_fpxregset_t
+#endif
+
+typedef GDB_FPXREGSET_T gdb_fpxregset_t;
+
+extern void supply_fpxregset (gdb_fpxregset_t *fpxregs);
+extern void fill_fpxregset (gdb_fpxregset_t *fpxregs, int regno);
+#endif
+
+#endif