This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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);


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]