This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
Re: [PATCH] Export fill_fpxregset
Elena Zannoni wrote:
>
> Sorry, but does this conflict with the extern in gregset.h?
>
> extern void fill_fpxregset (gdb_fpxregset_t *fpxregs, int regno);
>
> We have gdb_fpxregset_t vs. elf_fpxregset_t.
>
> Should we just use one or the other?
> I just remembered running into a similar problem some time back.
Hmm, well since this is (currently) only used on Linux, we COULD
just use elf_gregset_t, but I was following a precident that was
set for gregset_t and fpregset_t, to avoid potential portability
problems.
The types "gdb_gregset_t" and "gdb_fpregset_t" were introduced
because there was no consistent definition across platforms for
gregset and fpregset. Linux uses elf_fpregset, solaris uses
prfpregset, sunos uses fpregset...
The gregset.h header file defines a portable interface to the
rest of gdb, which therefore does not need to know what the
native types of fpregset etc. are.
In this case, i386-linux-nat.c uses the native type elf_fpxregset_t,
while the rest of gdb will use the portable type gdb_fpxregset_t.
Since they are identical, there shouldn't be a problem.
>
> Thanks
>
> Elena
>
> Michael Snyder writes:
> > 2002-01-09 Michael Snyder <msnyder@redhat.com>
> >
> > * i386-linux-nat.c (fill_fpxregset): Make global.
> > (store_fpxregset): Ditto.
> >
> > Index: i386-linux-nat.c
> > ===================================================================
> > RCS file: /cvs/src/src/gdb/i386-linux-nat.c,v
> > retrieving revision 1.33
> > diff -c -3 -p -r1.33 i386-linux-nat.c
> > *** i386-linux-nat.c 2001/12/27 19:52:31 1.33
> > --- i386-linux-nat.c 2002/01/09 22:25:44
> > ***************
> > *** 1,5 ****
> > /* Native-dependent code for Linux/x86.
> > ! Copyright 1999, 2000, 2001 Free Software Foundation, Inc.
> >
> > This file is part of GDB.
> >
> > --- 1,5 ----
> > /* Native-dependent code for Linux/x86.
> > ! Copyright 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
> >
> > This file is part of GDB.
> >
> > *************** static void store_fpregs (int tid, int r
> > *** 452,458 ****
> > /* Fill GDB's register array with the floating-point and SSE register
> > values in *FPXREGSETP. */
> >
> > ! static void
> > supply_fpxregset (elf_fpxregset_t *fpxregsetp)
> > {
> > i387_supply_fxsave ((char *) fpxregsetp);
> > --- 452,458 ----
> > /* Fill GDB's register array with the floating-point and SSE register
> > values in *FPXREGSETP. */
> >
> > ! void
> > supply_fpxregset (elf_fpxregset_t *fpxregsetp)
> > {
> > i387_supply_fxsave ((char *) fpxregsetp);
> > *************** supply_fpxregset (elf_fpxregset_t *fpxre
> > *** 462,468 ****
> > *FPXREGSETP with the value in GDB's register array. If REGNO is
> > -1, do this for all registers. */
> >
> > ! static void
> > fill_fpxregset (elf_fpxregset_t *fpxregsetp, int regno)
> > {
> > i387_fill_fxsave ((char *) fpxregsetp, regno);
> > --- 462,468 ----
> > *FPXREGSETP with the value in GDB's register array. If REGNO is
> > -1, do this for all registers. */
> >
> > ! void
> > fill_fpxregset (elf_fpxregset_t *fpxregsetp, int regno)
> > {
> > i387_fill_fxsave ((char *) fpxregsetp, regno);