Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
* [PATCH 1/3] Add fbsd_nat_add_target.
@ 2015-04-26  1:25 John Baldwin
  2015-04-27 19:24 ` Pedro Alves
  0 siblings, 1 reply; 7+ messages in thread
From: John Baldwin @ 2015-04-26  1:25 UTC (permalink / raw)
  To: gdb-patches

Add a wrapper for add_target in fbsd-nat.c to override target operations
common to all native FreeBSD targets.

gdb/ChangeLog:

	* fbsd-nat.c (fbsd_pid_to_exec_file): Mark static.
	(fbsd_find_memory_regions): Mark static.
	(fbsd_nat_add_target): New function.
	* fbsd-nat.h: Export fbsd_nat_add_target and remove prototypes for
	fbsd_pid_to_exec_file and fbsd_find_memory_regions.
	* amd64fbsd-nat.c (_initialize_amd64fbsd_nat): Use fbsd_nat_add_target.
	* i386fbsd-nat.c (_initialize_i386fbsd_nat): Likewise.
	* ppcfbsd-nat.c (_initialize_ppcfbsd_nat): Likewise.
	* sparc64fbsd-nat.c (_initialize_sparc64fbsd_nat): Likewise.
---
diff --git a/gdb/amd64fbsd-nat.c b/gdb/amd64fbsd-nat.c
index a721f48..4745b44 100644
--- a/gdb/amd64fbsd-nat.c
+++ b/gdb/amd64fbsd-nat.c
@@ -227,9 +227,7 @@ _initialize_amd64fbsd_nat (void)
   t->to_mourn_inferior = amd64fbsd_mourn_inferior;
   t->to_read_description = amd64fbsd_read_description;
 
-  t->to_pid_to_exec_file = fbsd_pid_to_exec_file;
-  t->to_find_memory_regions = fbsd_find_memory_regions;
-  add_target (t);
+  fbsd_nat_add_target (t);
 
   /* Support debugging kernel virtual memory images.  */
   bsd_kvm_add_target (amd64fbsd_supply_pcb);
diff --git a/gdb/fbsd-nat.c b/gdb/fbsd-nat.c
index 1ce197d..68b8e65 100644
--- a/gdb/fbsd-nat.c
+++ b/gdb/fbsd-nat.c
@@ -37,7 +37,7 @@
 /* Return the name of a file that can be opened to get the symbols for
    the child process identified by PID.  */
 
-char *
+static char *
 fbsd_pid_to_exec_file (struct target_ops *self, int pid)
 {
   ssize_t len = PATH_MAX;
@@ -71,7 +71,7 @@ fbsd_pid_to_exec_file (struct target_ops *self, int pid)
    calling FUNC for each memory region.  OBFD is passed as the last
    argument to FUNC.  */
 
-int
+static int
 fbsd_find_memory_regions (struct target_ops *self,
 			  find_memory_region_ftype func, void *obfd)
 {
@@ -149,7 +149,7 @@ fbsd_read_mapping (FILE *mapfile, unsigned long *start, unsigned long *end,
    calling FUNC for each memory region.  OBFD is passed as the last
    argument to FUNC.  */
 
-int
+static int
 fbsd_find_memory_regions (struct target_ops *self,
 			  find_memory_region_ftype func, void *obfd)
 {
@@ -200,3 +200,11 @@ fbsd_find_memory_regions (struct target_ops *self,
   return 0;
 }
 #endif
+
+void
+fbsd_nat_add_target (struct target_ops *t)
+{
+  t->to_pid_to_exec_file = fbsd_pid_to_exec_file;
+  t->to_find_memory_regions = fbsd_find_memory_regions;
+  add_target (t);
+}
diff --git a/gdb/fbsd-nat.h b/gdb/fbsd-nat.h
index e6e88ff..03f6bb1 100644
--- a/gdb/fbsd-nat.h
+++ b/gdb/fbsd-nat.h
@@ -20,16 +20,8 @@
 #ifndef FBSD_NAT_H
 #define FBSD_NAT_H
 
-/* Return the name of a file that can be opened to get the symbols for
-   the child process identified by PID.  */
-
-extern char *fbsd_pid_to_exec_file (struct target_ops *self, int pid);
-
-/* Iterate over all the memory regions in the current inferior,
-   calling FUNC for each memory region.  OBFD is passed as the last
-   argument to FUNC.  */
-
-extern int fbsd_find_memory_regions (struct target_ops *self,
-				     find_memory_region_ftype func, void *obfd);
+/* Register the customized FreeBSD target.  This should be used
+   instead of calling add_target directly.  */
+extern void fbsd_nat_add_target (struct target_ops *);
 
 #endif /* fbsd-nat.h */
diff --git a/gdb/i386fbsd-nat.c b/gdb/i386fbsd-nat.c
index 6c43f2c..f5d2ee3 100644
--- a/gdb/i386fbsd-nat.c
+++ b/gdb/i386fbsd-nat.c
@@ -176,9 +176,7 @@ _initialize_i386fbsd_nat (void)
 #endif
 
   t->to_resume = i386fbsd_resume;
-  t->to_pid_to_exec_file = fbsd_pid_to_exec_file;
-  t->to_find_memory_regions = fbsd_find_memory_regions;
-  add_target (t);
+  fbsd_nat_add_target (t);
 
   /* Support debugging kernel virtual memory images.  */
   bsd_kvm_add_target (i386fbsd_supply_pcb);
diff --git a/gdb/ppcfbsd-nat.c b/gdb/ppcfbsd-nat.c
index 778b4bb..778e19a 100644
--- a/gdb/ppcfbsd-nat.c
+++ b/gdb/ppcfbsd-nat.c
@@ -212,9 +212,7 @@ _initialize_ppcfbsd_nat (void)
   t = inf_ptrace_target ();
   t->to_fetch_registers = ppcfbsd_fetch_inferior_registers;
   t->to_store_registers = ppcfbsd_store_inferior_registers;
-  t->to_pid_to_exec_file = fbsd_pid_to_exec_file;
-  t->to_find_memory_regions = fbsd_find_memory_regions;
-  add_target (t);
+  fbsd_nat_add_target (t);
 
   /* Support debugging kernel virtual memory images.  */
   bsd_kvm_add_target (ppcfbsd_supply_pcb);
diff --git a/gdb/sparc64fbsd-nat.c b/gdb/sparc64fbsd-nat.c
index 1a2397f..f197f74 100644
--- a/gdb/sparc64fbsd-nat.c
+++ b/gdb/sparc64fbsd-nat.c
@@ -70,9 +70,7 @@ _initialize_sparc64fbsd_nat (void)
 
   /* Add some extra features to the generic SPARC target.  */
   t = sparc_target ();
-  t->to_pid_to_exec_file = fbsd_pid_to_exec_file;
-  t->to_find_memory_regions = fbsd_find_memory_regions;
-  add_target (t);
+  fbsd_nat_add_target (t);
 
   sparc_gregmap = &sparc64fbsd_gregmap;
 
-- 
2.2.1


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 1/3] Add fbsd_nat_add_target.
  2015-04-26  1:25 [PATCH 1/3] Add fbsd_nat_add_target John Baldwin
@ 2015-04-27 19:24 ` Pedro Alves
  2015-04-27 19:27   ` John Baldwin
  0 siblings, 1 reply; 7+ messages in thread
From: Pedro Alves @ 2015-04-27 19:24 UTC (permalink / raw)
  To: John Baldwin, gdb-patches

On 04/26/2015 02:24 AM, John Baldwin wrote:
> Add a wrapper for add_target in fbsd-nat.c to override target operations
> common to all native FreeBSD targets.
> 
> gdb/ChangeLog:
> 
> 	* fbsd-nat.c (fbsd_pid_to_exec_file): Mark static.
> 	(fbsd_find_memory_regions): Mark static.
> 	(fbsd_nat_add_target): New function.
> 	* fbsd-nat.h: Export fbsd_nat_add_target and remove prototypes for
> 	fbsd_pid_to_exec_file and fbsd_find_memory_regions.
> 	* amd64fbsd-nat.c (_initialize_amd64fbsd_nat): Use fbsd_nat_add_target.
> 	* i386fbsd-nat.c (_initialize_i386fbsd_nat): Likewise.
> 	* ppcfbsd-nat.c (_initialize_ppcfbsd_nat): Likewise.
> 	* sparc64fbsd-nat.c (_initialize_sparc64fbsd_nat): Likewise.

OOC, any reason you didn't instead do it like:

struct target_ops *
fbsd_nat_target (void)
{
  struct target_ops *t = inf_ptrace_target ();

  t->to_pid_to_exec_file = fbsd_pid_to_exec_file;
  t->to_find_memory_regions = fbsd_find_memory_regions;
  return t;
}

and then use fbsd_nat_target instead of inf_ptrace_target
directly?

This maps a little better to a C++ world.

linux-nat.c does it the way you did as it keeps a separate
linux_ops target instance around.

Thanks,
Pedro Alves


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 1/3] Add fbsd_nat_add_target.
  2015-04-27 19:24 ` Pedro Alves
@ 2015-04-27 19:27   ` John Baldwin
  2015-04-27 20:26     ` Mark Kettenis
  0 siblings, 1 reply; 7+ messages in thread
From: John Baldwin @ 2015-04-27 19:27 UTC (permalink / raw)
  To: gdb-patches; +Cc: Pedro Alves

On Monday, April 27, 2015 08:10:18 PM Pedro Alves wrote:
> On 04/26/2015 02:24 AM, John Baldwin wrote:
> > Add a wrapper for add_target in fbsd-nat.c to override target operations
> > common to all native FreeBSD targets.
> > 
> > gdb/ChangeLog:
> > 
> > 	* fbsd-nat.c (fbsd_pid_to_exec_file): Mark static.
> > 	(fbsd_find_memory_regions): Mark static.
> > 	(fbsd_nat_add_target): New function.
> > 	* fbsd-nat.h: Export fbsd_nat_add_target and remove prototypes for
> > 	fbsd_pid_to_exec_file and fbsd_find_memory_regions.
> > 	* amd64fbsd-nat.c (_initialize_amd64fbsd_nat): Use fbsd_nat_add_target.
> > 	* i386fbsd-nat.c (_initialize_i386fbsd_nat): Likewise.
> > 	* ppcfbsd-nat.c (_initialize_ppcfbsd_nat): Likewise.
> > 	* sparc64fbsd-nat.c (_initialize_sparc64fbsd_nat): Likewise.
> 
> OOC, any reason you didn't instead do it like:
> 
> struct target_ops *
> fbsd_nat_target (void)
> {
>   struct target_ops *t = inf_ptrace_target ();
> 
>   t->to_pid_to_exec_file = fbsd_pid_to_exec_file;
>   t->to_find_memory_regions = fbsd_find_memory_regions;
>   return t;
> }
> 
> and then use fbsd_nat_target instead of inf_ptrace_target
> directly?
> 
> This maps a little better to a C++ world.
> 
> linux-nat.c does it the way you did as it keeps a separate
> linux_ops target instance around.

I was probably just using linux-nat.c as a reference.  One thing that
confuses me about the linux-nat target is that it keeps linux_ops
around so that it can call the original methods that it overrides,
and yet for a few methods it also uses a local 'super_foo' variable
to call an original method.  I think that those are both doing the
same thing, but perhaps there is some subtlety I'm missing?

I do use a 'super_wait' to call ptrace's wait method in the second
patch in this series, so I could certainly change this to return a
target rather than modifying an existing one if that is preferred.

-- 
John Baldwin


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 1/3] Add fbsd_nat_add_target.
  2015-04-27 19:27   ` John Baldwin
@ 2015-04-27 20:26     ` Mark Kettenis
  2015-04-27 20:36       ` John Baldwin
  0 siblings, 1 reply; 7+ messages in thread
From: Mark Kettenis @ 2015-04-27 20:26 UTC (permalink / raw)
  To: jhb; +Cc: gdb-patches, palves

> From: John Baldwin <jhb@freebsd.org>
> Date: Mon, 27 Apr 2015 15:16:50 -0400
> 
> On Monday, April 27, 2015 08:10:18 PM Pedro Alves wrote:
> > On 04/26/2015 02:24 AM, John Baldwin wrote:
> > > Add a wrapper for add_target in fbsd-nat.c to override target operations
> > > common to all native FreeBSD targets.
> > > 
> > > gdb/ChangeLog:
> > > 
> > > 	* fbsd-nat.c (fbsd_pid_to_exec_file): Mark static.
> > > 	(fbsd_find_memory_regions): Mark static.
> > > 	(fbsd_nat_add_target): New function.
> > > 	* fbsd-nat.h: Export fbsd_nat_add_target and remove prototypes for
> > > 	fbsd_pid_to_exec_file and fbsd_find_memory_regions.
> > > 	* amd64fbsd-nat.c (_initialize_amd64fbsd_nat): Use fbsd_nat_add_target.
> > > 	* i386fbsd-nat.c (_initialize_i386fbsd_nat): Likewise.
> > > 	* ppcfbsd-nat.c (_initialize_ppcfbsd_nat): Likewise.
> > > 	* sparc64fbsd-nat.c (_initialize_sparc64fbsd_nat): Likewise.
> > 
> > OOC, any reason you didn't instead do it like:
> > 
> > struct target_ops *
> > fbsd_nat_target (void)
> > {
> >   struct target_ops *t = inf_ptrace_target ();
> > 
> >   t->to_pid_to_exec_file = fbsd_pid_to_exec_file;
> >   t->to_find_memory_regions = fbsd_find_memory_regions;
> >   return t;
> > }
> > 
> > and then use fbsd_nat_target instead of inf_ptrace_target
> > directly?
> > 
> > This maps a little better to a C++ world.
> > 
> > linux-nat.c does it the way you did as it keeps a separate
> > linux_ops target instance around.
> 
> I was probably just using linux-nat.c as a reference.  One thing that
> confuses me about the linux-nat target is that it keeps linux_ops
> around so that it can call the original methods that it overrides,
> and yet for a few methods it also uses a local 'super_foo' variable
> to call an original method.  I think that those are both doing the
> same thing, but perhaps there is some subtlety I'm missing?
> 
> I do use a 'super_wait' to call ptrace's wait method in the second
> patch in this series, so I could certainly change this to return a
> target rather than modifying an existing one if that is preferred.

I'd say the linux-nat.c code is a bad example and recommend looking at
the obsd-nat.c code instead.  The linux-nat.c code is so complicated
because of all the workarounds needed to support threads.  The
linux_ops stuff is pretty much an artifact of those workarounds.  

I found that to add threads-support I did need to make modifications
to the _wait function that made it hard to re-use the
inf_ptrace_wait() code.  Sometimes code duplications just is the right
answer.


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 1/3] Add fbsd_nat_add_target.
  2015-04-27 20:26     ` Mark Kettenis
@ 2015-04-27 20:36       ` John Baldwin
  2015-04-28  1:06         ` Mark Kettenis
  0 siblings, 1 reply; 7+ messages in thread
From: John Baldwin @ 2015-04-27 20:36 UTC (permalink / raw)
  To: gdb-patches; +Cc: Mark Kettenis, palves

On Monday, April 27, 2015 09:54:24 PM Mark Kettenis wrote:
> > From: John Baldwin <jhb@freebsd.org>
> > Date: Mon, 27 Apr 2015 15:16:50 -0400
> > 
> > On Monday, April 27, 2015 08:10:18 PM Pedro Alves wrote:
> > > On 04/26/2015 02:24 AM, John Baldwin wrote:
> > > > Add a wrapper for add_target in fbsd-nat.c to override target operations
> > > > common to all native FreeBSD targets.
> > > > 
> > > > gdb/ChangeLog:
> > > > 
> > > > 	* fbsd-nat.c (fbsd_pid_to_exec_file): Mark static.
> > > > 	(fbsd_find_memory_regions): Mark static.
> > > > 	(fbsd_nat_add_target): New function.
> > > > 	* fbsd-nat.h: Export fbsd_nat_add_target and remove prototypes for
> > > > 	fbsd_pid_to_exec_file and fbsd_find_memory_regions.
> > > > 	* amd64fbsd-nat.c (_initialize_amd64fbsd_nat): Use fbsd_nat_add_target.
> > > > 	* i386fbsd-nat.c (_initialize_i386fbsd_nat): Likewise.
> > > > 	* ppcfbsd-nat.c (_initialize_ppcfbsd_nat): Likewise.
> > > > 	* sparc64fbsd-nat.c (_initialize_sparc64fbsd_nat): Likewise.
> > > 
> > > OOC, any reason you didn't instead do it like:
> > > 
> > > struct target_ops *
> > > fbsd_nat_target (void)
> > > {
> > >   struct target_ops *t = inf_ptrace_target ();
> > > 
> > >   t->to_pid_to_exec_file = fbsd_pid_to_exec_file;
> > >   t->to_find_memory_regions = fbsd_find_memory_regions;
> > >   return t;
> > > }
> > > 
> > > and then use fbsd_nat_target instead of inf_ptrace_target
> > > directly?
> > > 
> > > This maps a little better to a C++ world.
> > > 
> > > linux-nat.c does it the way you did as it keeps a separate
> > > linux_ops target instance around.
> > 
> > I was probably just using linux-nat.c as a reference.  One thing that
> > confuses me about the linux-nat target is that it keeps linux_ops
> > around so that it can call the original methods that it overrides,
> > and yet for a few methods it also uses a local 'super_foo' variable
> > to call an original method.  I think that those are both doing the
> > same thing, but perhaps there is some subtlety I'm missing?
> > 
> > I do use a 'super_wait' to call ptrace's wait method in the second
> > patch in this series, so I could certainly change this to return a
> > target rather than modifying an existing one if that is preferred.
> 
> I'd say the linux-nat.c code is a bad example and recommend looking at
> the obsd-nat.c code instead.  The linux-nat.c code is so complicated
> because of all the workarounds needed to support threads.  The
> linux_ops stuff is pretty much an artifact of those workarounds.  
> 
> I found that to add threads-support I did need to make modifications
> to the _wait function that made it hard to re-use the
> inf_ptrace_wait() code.  Sometimes code duplications just is the right
> answer.

FWIW, obsd-nat.c (which I have looked at a bit), also uses a wrapper
around add_target rather than creating a generic OpenBSD native target.
To change the FreeBSD native targets I think would be an invasive change
since they use platform-specific native targets that are pan-BSD as their
initial target (e.g. amd64bsd_target) and customize from there.  To make
fbsd_nat_target work I would need to rework things like amd64bsd_target
to modify an existing target instead of returning a new one I think (which
would also mean changing all the other BSD native targets).

-- 
John Baldwin


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 1/3] Add fbsd_nat_add_target.
  2015-04-27 20:36       ` John Baldwin
@ 2015-04-28  1:06         ` Mark Kettenis
  2015-04-28  1:08           ` Pedro Alves
  0 siblings, 1 reply; 7+ messages in thread
From: Mark Kettenis @ 2015-04-28  1:06 UTC (permalink / raw)
  To: jhb; +Cc: gdb-patches, palves

> From: John Baldwin <jhb@freebsd.org>
> Date: Mon, 27 Apr 2015 16:17:52 -0400
> 
> On Monday, April 27, 2015 09:54:24 PM Mark Kettenis wrote:
> > > From: John Baldwin <jhb@freebsd.org>
> > > Date: Mon, 27 Apr 2015 15:16:50 -0400
> > > 
> > > On Monday, April 27, 2015 08:10:18 PM Pedro Alves wrote:
> > > > On 04/26/2015 02:24 AM, John Baldwin wrote:
> > > > > Add a wrapper for add_target in fbsd-nat.c to override target operations
> > > > > common to all native FreeBSD targets.
> > > > > 
> > > > > gdb/ChangeLog:
> > > > > 
> > > > > 	* fbsd-nat.c (fbsd_pid_to_exec_file): Mark static.
> > > > > 	(fbsd_find_memory_regions): Mark static.
> > > > > 	(fbsd_nat_add_target): New function.
> > > > > 	* fbsd-nat.h: Export fbsd_nat_add_target and remove prototypes for
> > > > > 	fbsd_pid_to_exec_file and fbsd_find_memory_regions.
> > > > > 	* amd64fbsd-nat.c (_initialize_amd64fbsd_nat): Use fbsd_nat_add_target.
> > > > > 	* i386fbsd-nat.c (_initialize_i386fbsd_nat): Likewise.
> > > > > 	* ppcfbsd-nat.c (_initialize_ppcfbsd_nat): Likewise.
> > > > > 	* sparc64fbsd-nat.c (_initialize_sparc64fbsd_nat): Likewise.
> > > > 
> > > > OOC, any reason you didn't instead do it like:
> > > > 
> > > > struct target_ops *
> > > > fbsd_nat_target (void)
> > > > {
> > > >   struct target_ops *t = inf_ptrace_target ();
> > > > 
> > > >   t->to_pid_to_exec_file = fbsd_pid_to_exec_file;
> > > >   t->to_find_memory_regions = fbsd_find_memory_regions;
> > > >   return t;
> > > > }
> > > > 
> > > > and then use fbsd_nat_target instead of inf_ptrace_target
> > > > directly?
> > > > 
> > > > This maps a little better to a C++ world.
> > > > 
> > > > linux-nat.c does it the way you did as it keeps a separate
> > > > linux_ops target instance around.
> > > 
> > > I was probably just using linux-nat.c as a reference.  One thing that
> > > confuses me about the linux-nat target is that it keeps linux_ops
> > > around so that it can call the original methods that it overrides,
> > > and yet for a few methods it also uses a local 'super_foo' variable
> > > to call an original method.  I think that those are both doing the
> > > same thing, but perhaps there is some subtlety I'm missing?
> > > 
> > > I do use a 'super_wait' to call ptrace's wait method in the second
> > > patch in this series, so I could certainly change this to return a
> > > target rather than modifying an existing one if that is preferred.
> > 
> > I'd say the linux-nat.c code is a bad example and recommend looking at
> > the obsd-nat.c code instead.  The linux-nat.c code is so complicated
> > because of all the workarounds needed to support threads.  The
> > linux_ops stuff is pretty much an artifact of those workarounds.  
> > 
> > I found that to add threads-support I did need to make modifications
> > to the _wait function that made it hard to re-use the
> > inf_ptrace_wait() code.  Sometimes code duplications just is the right
> > answer.
> 
> FWIW, obsd-nat.c (which I have looked at a bit), also uses a wrapper
> around add_target rather than creating a generic OpenBSD native target.
> To change the FreeBSD native targets I think would be an invasive change
> since they use platform-specific native targets that are pan-BSD as their
> initial target (e.g. amd64bsd_target) and customize from there.  To make
> fbsd_nat_target work I would need to rework things like amd64bsd_target
> to modify an existing target instead of returning a new one I think (which
> would also mean changing all the other BSD native targets).

Which is why I'm perfectly happy with your current 1/3 diff ;).

And I don't think your super_wait approach is a problem either.  Just
that I think that ultimately you'll end up with duplucating the core
of inf_ptrace_wait() in fbsd_wait().

I'm not really familliar enough with the implementation of the fork
following stuff in the FreeBSD kernel.  Looks significantly more
complicated to how this was done in HP-UX (which is the approach I
used for OpenBSD).  But then it seems more complete.

As far as I'm concerned you're the expert here and to me the series
looks reasonable as posted.

Cheers,

Mark


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 1/3] Add fbsd_nat_add_target.
  2015-04-28  1:06         ` Mark Kettenis
@ 2015-04-28  1:08           ` Pedro Alves
  0 siblings, 0 replies; 7+ messages in thread
From: Pedro Alves @ 2015-04-28  1:08 UTC (permalink / raw)
  To: Mark Kettenis, jhb; +Cc: gdb-patches

On 04/27/2015 09:50 PM, Mark Kettenis wrote:
>> From: John Baldwin <jhb@freebsd.org>
>> Date: Mon, 27 Apr 2015 16:17:52 -0400

>> FWIW, obsd-nat.c (which I have looked at a bit), also uses a wrapper
>> around add_target rather than creating a generic OpenBSD native target.
>> To change the FreeBSD native targets I think would be an invasive change
>> since they use platform-specific native targets that are pan-BSD as their
>> initial target (e.g. amd64bsd_target) and customize from there.  To make
>> fbsd_nat_target work I would need to rework things like amd64bsd_target
>> to modify an existing target instead of returning a new one I think (which
>> would also mean changing all the other BSD native targets).
> 
> Which is why I'm perfectly happy with your current 1/3 diff ;).

I'm happy with it too.  I was just curious.

Sounds like we'll need to revisit this if/when we make target_ops a
proper class hierarchy, but we'll cross that bridge when we come to it.

> As far as I'm concerned you're the expert here and to me the series
> looks reasonable as posted.

Agreed.

Thanks,
Pedro Alves


^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2015-04-27 21:49 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-04-26  1:25 [PATCH 1/3] Add fbsd_nat_add_target John Baldwin
2015-04-27 19:24 ` Pedro Alves
2015-04-27 19:27   ` John Baldwin
2015-04-27 20:26     ` Mark Kettenis
2015-04-27 20:36       ` John Baldwin
2015-04-28  1:06         ` Mark Kettenis
2015-04-28  1:08           ` Pedro Alves

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox