From: David Gibson <david-xT8FGy+AXnRB3Ne2BGzF6laj5H9X9Tb+@public.gmane.org>
To: Frank Rowand <frowand.list-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Cc: Jon Loeliger <jdl-CYoMK+44s/E@public.gmane.org>,
devicetree-compiler-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: Re: [RFC PATCH 1/3] dtc: dts source location annotation
Date: Mon, 21 Sep 2015 16:31:19 +1000 [thread overview]
Message-ID: <20150921063119.GL20331@voom.fritz.box> (raw)
In-Reply-To: <55F8EE7A.7080301-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
[-- Attachment #1: Type: text/plain, Size: 3396 bytes --]
On Tue, Sep 15, 2015 at 09:22:18PM -0700, Frank Rowand wrote:
>
> From: Frank Rowand <frank.rowand-/MT0OVThwyLZJqsBc5GL+g@public.gmane.org>
>
> Proof of concept patch.
>
> Annotates input source file and line number of nodes and properties
> as comments in output .dts file when --annotate flag is supplied.
>
> Not-signed-off-by: Frank Rowand <frank.rowand-/MT0OVThwyLZJqsBc5GL+g@public.gmane.org>
A like the concept, but I have some queries about the implementation.
> ---
> dtc-lexer.l | 2 +
> dtc.c | 9 ++++++++
> dtc.h | 14 +++++++++++++
> livetree.c | 62 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> srcpos.h | 6 +++++
> treesource.c | 27 ++++++++++++++++++++-----
> 6 files changed, 115 insertions(+), 5 deletions(-)
>
> Index: b/dtc.h
> ===================================================================
> --- a/dtc.h
> +++ b/dtc.h
> @@ -54,6 +54,7 @@ extern int reservenum; /* Number of mem
> extern int minsize; /* Minimum blob size */
> extern int padsize; /* Additional padding to blob */
> extern int phandle_format; /* Use linux,phandle or phandle properties */
> +extern bool annotate; /* annotate .dts with input source location */
>
> #define PHANDLE_LEGACY 0x1
> #define PHANDLE_EPAPR 0x2
> @@ -126,6 +127,16 @@ bool data_is_one_string(struct data d);
> #define MAX_NODENAME_LEN 31
>
> /* Live trees */
> +struct src {
> + char *name;
> + int lineno;
> +};
I'd prefer to see the existing struct srcpos used, rather than
creating a new structure.
> +struct prop_src {
> + struct prop_src *prev;
> + struct src src;
> +};
> +
> struct label {
> bool deleted;
> char *label;
> @@ -140,6 +151,7 @@ struct property {
> struct property *next;
>
> struct label *labels;
> + struct src src;
> };
>
> struct node {
> @@ -158,6 +170,8 @@ struct node {
> int addr_cells, size_cells;
>
> struct label *labels;
> + struct src begin_src;
> + struct src end_src;
> };
>
> #define for_each_label_withdel(l0, l) \
> Index: b/livetree.c
> ===================================================================
> --- a/livetree.c
> +++ b/livetree.c
> @@ -19,6 +19,9 @@
> */
>
> #include "dtc.h"
> +#include "srcpos.h"
> +
> +struct prop_src *prev_prop_src = NULL;
So you've built a new global stack here, and I don't really understand
what it's for. The parser already tracks source positions for each
construct, so you should be able to just use that. You'd need to pass
the srcpos from dtc-parser.y into the tree building calls in more
places, but that should be it.
Or have I missed something?
> /*
> * Tree building functions
> @@ -58,6 +61,13 @@ struct property *build_property(char *na
>
> new->name = name;
> new->val = val;
> + if (current_srcfile) {
> + new->src.name = current_srcfile->name;
> + new->src.lineno = current_srcfile->lineno;
> + } else {
> + new->src.name = "__builtin__";
> + new->src.lineno = 0;
A comment explaining when this will happen in practice would be nice.
Incidentally.. what happens if you use dtb input and try to annotate?
--
David Gibson | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_
| _way_ _around_!
http://www.ozlabs.org/~dgibson
[-- Attachment #2: Type: application/pgp-signature, Size: 819 bytes --]
next prev parent reply other threads:[~2015-09-21 6:31 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-09-16 4:08 [RFC PATCH 0/3] dtc: dts source location annotation Frank Rowand
[not found] ` <55F8EB35.5010601-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2015-09-16 4:19 ` Frank Rowand
2015-09-16 4:22 ` [RFC PATCH 1/3] " Frank Rowand
[not found] ` <55F8EE7A.7080301-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2015-09-21 6:31 ` David Gibson [this message]
[not found] ` <20150921063119.GL20331-RXTfZT5YzpxwFLYp8hBm2A@public.gmane.org>
2015-09-21 17:55 ` Frank Rowand
2015-09-16 4:24 ` [RFC PATCH 2/3] dtc: make check test for dtc --annotate Frank Rowand
[not found] ` <55F8EF1B.1040003-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2015-09-21 6:33 ` David Gibson
[not found] ` <20150921063336.GM20331-RXTfZT5YzpxwFLYp8hBm2A@public.gmane.org>
2015-09-21 17:55 ` Frank Rowand
2015-09-16 4:29 ` [RFC PATCH 3/3] dtc: linux kernel build process to create annotated .dts Frank Rowand
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20150921063119.GL20331@voom.fritz.box \
--to=david-xt8fgy+axnrb3ne2bgzf6laj5h9x9tb+@public.gmane.org \
--cc=devicetree-compiler-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=frowand.list-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
--cc=jdl-CYoMK+44s/E@public.gmane.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).