[Pdbg] [PATCH 01/13] libpdbg: Cache device tree pointer and offset for each node
Amitay Isaacs
amitay at ozlabs.org
Thu Jan 16 13:33:21 AEDT 2020
On Thu, 2020-01-16 at 12:23 +1100, Alistair Popple wrote:
> Global variables for the win? ;-)
Well, we don't have a context to hang things off. So global variables
will have to do!
>
> Reviewed-by: Alistair Popple <alistair at popple.id.au>
>
> On Wednesday, 15 January 2020 4:18:49 PM AEDT Amitay Isaacs wrote:
> > Signed-off-by: Amitay Isaacs <amitay at ozlabs.org>
> > ---
> > libpdbg/device.c | 9 ++++++---
> > libpdbg/target.h | 2 ++
> > 2 files changed, 8 insertions(+), 3 deletions(-)
> >
> > diff --git a/libpdbg/device.c b/libpdbg/device.c
> > index ad498dc..ac2351d 100644
> > --- a/libpdbg/device.c
> > +++ b/libpdbg/device.c
> > @@ -115,7 +115,7 @@ static struct pdbg_target
> > *dt_pdbg_target_new(const void
> > *fdt, int node_offset) return target;
> > }
> >
> > -static struct pdbg_target *dt_new_node(const char *name, const
> > void *fdt,
> > int node_offset) +static struct pdbg_target *dt_new_node(const char
> > *name,
> > void *fdt, int node_offset) {
> > struct pdbg_target *node = NULL;
> > size_t size = sizeof(*node);
> > @@ -131,6 +131,9 @@ static struct pdbg_target *dt_new_node(const
> > char *name,
> > const void *fdt, int no abort();
> > }
> >
> > + node->fdt = fdt;
> > + node->fdt_offset = fdt ? node_offset : -1;
> > +
> > node->dn_name = take_name(name);
> > node->parent = NULL;
> > list_head_init(&node->properties);
> > @@ -547,7 +550,7 @@ static enum pdbg_target_status
> > str_to_status(const char
> > *status) assert(0);
> > }
> >
> > -static int dt_expand_node(struct pdbg_target *node, const void
> > *fdt, int
> > fdt_node) +static int dt_expand_node(struct pdbg_target *node, void
> > *fdt,
> > int fdt_node) {
> > const struct fdt_property *prop;
> > int offset, nextoffset, err;
> > @@ -604,7 +607,7 @@ static int dt_expand_node(struct pdbg_target
> > *node,
> > const void *fdt, int fdt_nod return nextoffset;
> > }
> >
> > -static void dt_expand(struct pdbg_target *root, const void *fdt)
> > +static void dt_expand(struct pdbg_target *root, void *fdt)
> > {
> > PR_DEBUG("FDT: Parsing fdt @%p\n", fdt);
> >
> > diff --git a/libpdbg/target.h b/libpdbg/target.h
> > index a8f777d..9e25a43 100644
> > --- a/libpdbg/target.h
> > +++ b/libpdbg/target.h
> > @@ -39,6 +39,8 @@ struct pdbg_target {
> > int (*probe)(struct pdbg_target *target);
> > void (*release)(struct pdbg_target *target);
> > uint64_t (*translate)(struct pdbg_target *target, uint64_t
> > addr);
> > + void *fdt;
> > + int fdt_offset;
> > int index;
> > enum pdbg_target_status status;
> > const char *dn_name;
>
>
>
Amitay.
--
You are the same today that you'll be five years from now except for two
things: the people you meet and the books you read. - Mac McMillan
More information about the Pdbg
mailing list