Message ID | 20191014051748.20190-9-amitay@ozlabs.org |
---|---|
State | Accepted |
Headers | show |
Series | Add system device tree to libpdbg | expand |
Reviewed-by: Alistair Popple <alistair@popple.id.au> On Monday, 14 October 2019 4:17:26 PM AEDT Amitay Isaacs wrote: > Signed-off-by: Amitay Isaacs <amitay@ozlabs.org> > --- > libpdbg/target.c | 12 ++++++++++++ > libpdbg/target.h | 1 + > 2 files changed, 13 insertions(+) > > diff --git a/libpdbg/target.c b/libpdbg/target.c > index 9110b81..61deb57 100644 > --- a/libpdbg/target.c > +++ b/libpdbg/target.c > @@ -473,3 +473,15 @@ bool target_is_virtual(struct pdbg_target *target) > { > return (!target->compatible); > } > + > +/* Map virtual target to real target */ > +struct pdbg_target *target_to_real(struct pdbg_target *target, bool strict) > +{ > + if (!target->compatible && target->vnode) > + return target->vnode; > + > + if (strict) > + return NULL; > + > + return target; > +} > diff --git a/libpdbg/target.h b/libpdbg/target.h > index f5769ea..44d319e 100644 > --- a/libpdbg/target.h > +++ b/libpdbg/target.h > @@ -65,5 +65,6 @@ const char *pdbg_get_backend_option(void); > > struct sbefifo *pib_to_sbefifo(struct pdbg_target *target); > bool target_is_virtual(struct pdbg_target *target); > +struct pdbg_target *target_to_real(struct pdbg_target *target, bool strict); > > #endif >
diff --git a/libpdbg/target.c b/libpdbg/target.c index 9110b81..61deb57 100644 --- a/libpdbg/target.c +++ b/libpdbg/target.c @@ -473,3 +473,15 @@ bool target_is_virtual(struct pdbg_target *target) { return (!target->compatible); } + +/* Map virtual target to real target */ +struct pdbg_target *target_to_real(struct pdbg_target *target, bool strict) +{ + if (!target->compatible && target->vnode) + return target->vnode; + + if (strict) + return NULL; + + return target; +} diff --git a/libpdbg/target.h b/libpdbg/target.h index f5769ea..44d319e 100644 --- a/libpdbg/target.h +++ b/libpdbg/target.h @@ -65,5 +65,6 @@ const char *pdbg_get_backend_option(void); struct sbefifo *pib_to_sbefifo(struct pdbg_target *target); bool target_is_virtual(struct pdbg_target *target); +struct pdbg_target *target_to_real(struct pdbg_target *target, bool strict); #endif
Signed-off-by: Amitay Isaacs <amitay@ozlabs.org> --- libpdbg/target.c | 12 ++++++++++++ libpdbg/target.h | 1 + 2 files changed, 13 insertions(+)