diff mbox series

[v5,08/30] libpdbg: Add a function to map virtual target to real

Message ID 20191014051748.20190-9-amitay@ozlabs.org
State Accepted
Headers show
Series Add system device tree to libpdbg | expand

Commit Message

Amitay Isaacs Oct. 14, 2019, 5:17 a.m. UTC
Signed-off-by: Amitay Isaacs <amitay@ozlabs.org>
---
 libpdbg/target.c | 12 ++++++++++++
 libpdbg/target.h |  1 +
 2 files changed, 13 insertions(+)

Comments

Alistair Popple Oct. 15, 2019, 3:56 a.m. UTC | #1
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 mbox series

Patch

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