This is the mail archive of the gdb-patches@sourceware.org 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: Modernize solaris threads support.


On Tuesday 17 February 2009 03:56:57, Eli Zaretskii wrote:
> > From: Pedro Alves <pedro@codesourcery.com>
> > Date: Mon, 16 Feb 2009 20:50:48 +0000
> > 
> > What are thinking you would have to do yourself?
> 
> Adjust the prototypes.
> 

You don't have to adjust anything yourself.  I've done that
already.  Otherwise, I wouldn't have gone through the trouble of
touching go32-nat.c at all, would I? --- that's the whole point
of that hunk.

I'm thinking there's some miscomunication going on.  Let's step back
a bit.

On Monday 16 February 2009 19:09:57, Eli Zaretskii wrote:
> > -static void go32_resume (ptid_t ptid, int step,
> > -                         enum target_signal siggnal);
> > -static void go32_fetch_registers (struct regcache *, int regno);
> >  static void store_register (const struct regcache *, int regno);
> > -static void go32_store_registers (struct regcache *, int regno);
> 
> Why did you need to remove these prototypes while at that?
> 

Let's call things by their proper names.  The prototypes of
these target_ops callbacks have changed --- I've added a new argument.  While
adjusting the go32 target, I found that I had to adjust these declarations, in
addition to their corresponding function definitions.  But then, I noticed
that these declarations aren't really needed, since the go32_resume,
go32_fetch_registers and go32_store_registers functions have static linkage,
and, are declared before their first usage, that is, way down in
the go32-nat.c file, like so:

 static void
 init_go32_ops (void)
 {
 (...)
   go32_ops.to_resume = go32_resume;
 (...)
   go32_ops.to_fetch_registers = go32_fetch_registers;
   go32_ops.to_store_registers = go32_store_registers;
 (...)
 }


This is what was in the patch touching go32-nat.c:

 >quilt diff go32-nat.c
 Index: src/gdb/go32-nat.c
 ===================================================================
 --- src.orig/gdb/go32-nat.c     2009-02-16 00:20:30.000000000 +0000
 +++ src/gdb/go32-nat.c  2009-02-16 03:26:06.000000000 +0000
 @@ -169,11 +169,7 @@ static void go32_open (char *name, int f
  static void go32_close (int quitting);
  static void go32_attach (char *args, int from_tty);
  static void go32_detach (char *args, int from_tty);
 -static void go32_resume (ptid_t ptid, int step,
 -                         enum target_signal siggnal);
 -static void go32_fetch_registers (struct regcache *, int regno);
  static void store_register (const struct regcache *, int regno);
 -static void go32_store_registers (struct regcache *, int regno);

All these three declarations I was removing, ...

  static void go32_prepare_to_store (struct regcache *);
  static int go32_xfer_memory (CORE_ADDR memaddr, gdb_byte *myaddr, int len,
                              int write,
 @@ -321,7 +317,8 @@ static int resume_is_step;
  static int resume_signal = -1;

 static void
-go32_resume (ptid_t ptid, int step, enum target_signal siggnal)
+go32_resume (struct target_ops *ops,
+            ptid_t ptid, int step, enum target_signal siggnal)
 {
   int i;

... I'm already adjusting here, ...

 @@ -478,7 +475,8 @@ fetch_register (struct regcache *regcach
  }
 
  static void
 -go32_fetch_registers (struct regcache *regcache, int regno)
 +go32_fetch_registers (struct target_ops *ops,
 +                     struct regcache *regcache, int regno)
  {

... and here, ...


    if (regno >= 0)
      fetch_register (regcache, regno);
 @@ -507,7 +505,8 @@ store_register (const struct regcache *r
  }
 
  static void
 -go32_store_registers (struct regcache *regcache, int regno)
 +go32_store_registers (struct target_ops *ops,
 +                     struct regcache *regcache, int regno)
  {

... and here, ...

   unsigned r;

@@ -859,7 +858,7 @@ go32_terminal_ours (void)
 }

 static int
-go32_thread_alive (ptid_t ptid)
+go32_thread_alive (struct target_ops *ops, ptid_t ptid)
 {

... plus, this one didn't have a forward declaration, but,
I've adjusted it nonetheless.

   return 1;
 }

As you can see, you wouldn't have to do anything --- I've
done all your work already.  Did I miss something else?

If you still want those declarations for some reason, I'll
put them back.

-- 
Pedro Alves


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