All of lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot] [PATCH 0/4] tools/env: minor refactorings
@ 2016-06-27 22:06 Andreas Fenkart
  2016-06-27 22:06 ` [U-Boot] [PATCH 1/4] tools/env: return with error if redundant environments have unequal size Andreas Fenkart
                   ` (3 more replies)
  0 siblings, 4 replies; 11+ messages in thread
From: Andreas Fenkart @ 2016-06-27 22:06 UTC (permalink / raw)
  To: u-boot

various patches, see individual patch descriptions

Andreas Fenkart (4):
  tools/env: return with error if redundant environments have unequal
    size
  tools/env: javadoc for fw_printenv, fw_getenv and fw_parse_script
  tools/env: move envmatch further up in file to avoid forward
    declarations
  tools/env: reuse fw_getenv in fw_printenv function

 tools/env/fw_env.c | 105 ++++++++++++++++++++++++-----------------------------
 tools/env/fw_env.h |  75 +++++++++++++++++++++++++++++++++++++-
 2 files changed, 121 insertions(+), 59 deletions(-)

-- 
2.8.1

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

* [U-Boot] [PATCH 1/4] tools/env: return with error if redundant environments have unequal size
  2016-06-27 22:06 [U-Boot] [PATCH 0/4] tools/env: minor refactorings Andreas Fenkart
@ 2016-06-27 22:06 ` Andreas Fenkart
  2016-07-09 14:39   ` Simon Glass
  2016-06-27 22:06 ` [U-Boot] [PATCH 2/4] tools/env: javadoc for fw_printenv, fw_getenv and fw_parse_script Andreas Fenkart
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 11+ messages in thread
From: Andreas Fenkart @ 2016-06-27 22:06 UTC (permalink / raw)
  To: u-boot

From: Andreas Fenkart <afenkart@gmail.com>

For double buffering to work, the target buffer must always be big
enough to hold all data. This can only be ensured if buffers are of
equal size, otherwise one must be smaller and we risk data loss
when copying from the bigger to the smaller buffer.

Signed-off-by: Andreas Fenkart <andreas.fenkart@digitalstrom.com>
---
 tools/env/fw_env.c | 23 ++++++++++++-----------
 1 file changed, 12 insertions(+), 11 deletions(-)

diff --git a/tools/env/fw_env.c b/tools/env/fw_env.c
index 692abda..b1c8217 100644
--- a/tools/env/fw_env.c
+++ b/tools/env/fw_env.c
@@ -1382,18 +1382,19 @@ static int parse_config(struct env_opts *opts)
 		return -1;
 	}
 
-	if (HaveRedundEnv && stat (DEVNAME (1), &st)) {
-		fprintf (stderr,
-			"Cannot access MTD device %s: %s\n",
-			DEVNAME (1), strerror (errno));
-		return -1;
-	}
+	if (HaveRedundEnv) {
+		if (stat(DEVNAME(1), &st)) {
+			fprintf(stderr,
+				"Cannot access MTD device %s: %s\n",
+				DEVNAME(1), strerror(errno));
+			return -1;
+		}
 
-	if (HaveRedundEnv && ENVSIZE(0) != ENVSIZE(1)) {
-		ENVSIZE(0) = ENVSIZE(1) = min(ENVSIZE(0), ENVSIZE(1));
-		fprintf(stderr,
-			"Redundant environments have inequal size, set to 0x%08lx\n",
-			ENVSIZE(1));
+		if (ENVSIZE(0) != ENVSIZE(1)) {
+			fprintf(stderr,
+				"Redundant environments have unequal size");
+			return -1;
+		}
 	}
 
 	usable_envsize = CUR_ENVSIZE - sizeof(uint32_t);
-- 
2.8.1

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

* [U-Boot] [PATCH 2/4] tools/env: javadoc for fw_printenv, fw_getenv and fw_parse_script
  2016-06-27 22:06 [U-Boot] [PATCH 0/4] tools/env: minor refactorings Andreas Fenkart
  2016-06-27 22:06 ` [U-Boot] [PATCH 1/4] tools/env: return with error if redundant environments have unequal size Andreas Fenkart
@ 2016-06-27 22:06 ` Andreas Fenkart
  2016-07-09 14:39   ` Simon Glass
  2016-06-27 22:06 ` [U-Boot] [PATCH 3/4] tools/env: move envmatch further up in file to avoid forward declarations Andreas Fenkart
  2016-06-27 22:06 ` [U-Boot] [PATCH 4/4] tools/env: reuse fw_getenv in fw_printenv function Andreas Fenkart
  3 siblings, 1 reply; 11+ messages in thread
From: Andreas Fenkart @ 2016-06-27 22:06 UTC (permalink / raw)
  To: u-boot

there are two groups of functions:
- application ready tools: fw_setenv/fw_getenv/fw_parse_script
these are used, when creating a single binary containing multiple
tools (busybox like)
- file access like: open/read/write/close
above functions are implemented on top of these. applications
can use those to modify several variables without creating a
temporary batch script file

Signed-off-by: Andreas Fenkart <andreas.fenkart@digitalstrom.com>
---
 tools/env/fw_env.h | 75 +++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 74 insertions(+), 1 deletion(-)

diff --git a/tools/env/fw_env.h b/tools/env/fw_env.h
index dac964d..8bf74f3 100644
--- a/tools/env/fw_env.h
+++ b/tools/env/fw_env.h
@@ -67,12 +67,85 @@ struct env_opts {
 
 int parse_aes_key(char *key, uint8_t *bin_key);
 
+/**
+ * fw_printenv - print one or several environment variables
+ *
+ * @argc  number of variables names to be printed, print all if 0
+ * @argv  array of variable names to be printed
+ * @value_only  do not repeat the variable name, only print the value,
+ *          only one variable allowed with this option, argc must be 1
+ * @opts  encryption key, configuration file, defaults are used if NULL
+ */
 int fw_printenv(int argc, char *argv[], int value_only, struct env_opts *opts);
-char *fw_getenv(char *name);
+
+/**
+ * fw_setenv - adds or removes one variable from the environment
+ *
+ * @argc  number of strings in argv, argv[0] is variable name,
+ *          argc==1 means erase variable, argc > 1 means add a variable
+ * @argv  argv[0] is variable name, argv[1..argc-1] are concatenated separated
+ *           by single blank and set as the new value of the variable
+ * @opts  how to retrieve environment from flash, defaults are used if NULL
+ * @ret   EROFS if variable must not be changed (ethaddr, serial#)
+ */
 int fw_setenv(int argc, char *argv[], struct env_opts *opts);
+
+/**
+ * fw_parse_script - add/remove multiple variables with a batch script
+ *
+ * @fname  batch script file name
+ * @opts  encryption key, configuration file, defaults are used if NULL
+ *
+ * Script Syntax:
+ *   key [[space]+ value]
+ *   lines starting with '#' treated as comment
+ *
+ *   A variable without value will be deleted. Any number of spaces are allowed
+ *   between key and value. The value starts with the first non-space character
+ *   and ends with newline. No comments allowed on these lines.  Spaces inside
+ *   the value are preserved verbatim.
+ *
+ * Script Example:"
+ *   netdev         eth0
+ *   kernel_addr    400000
+ *   foo            spaces           are copied verbatim
+ *   # delete variable bar
+ *   bar\n"
+ */
 int fw_parse_script(char *fname, struct env_opts *opts);
+
+
+/**
+ * fw_env_open - read enviroment from flash and cache it in RAM
+ *
+ * @opts  encryption key, configuration file, defaults are used if NULL
+ */
 int fw_env_open(struct env_opts *opts);
+
+/**
+ * fw_getenv - lookup variable in RAM cache
+ *
+ * @name  variable to be searched
+ * @ret   NULL if not found
+ */
+char *fw_getenv(char *name);
+
+/**
+ * fw_env_write - set/clear a single variable in the RAM cache
+ *
+ * This is called in sequence to update the environment in RAM without updating
+ * the copy in flash after each set
+ *
+ * @name  variable
+ * @value delete variable if NULL, otherwise create or overwrite the variable
+ */
 int fw_env_write(char *name, char *value);
+
+/**
+ * fw_env_close - writes environment from RAM back to flash
+ *
+ * @opts  encryption key, configuration file, defaults are used if NULL
+ */
 int fw_env_close(struct env_opts *opts);
 
 unsigned long crc32(unsigned long, const unsigned char *, unsigned);
-- 
2.8.1

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

* [U-Boot] [PATCH 3/4] tools/env: move envmatch further up in file to avoid forward declarations
  2016-06-27 22:06 [U-Boot] [PATCH 0/4] tools/env: minor refactorings Andreas Fenkart
  2016-06-27 22:06 ` [U-Boot] [PATCH 1/4] tools/env: return with error if redundant environments have unequal size Andreas Fenkart
  2016-06-27 22:06 ` [U-Boot] [PATCH 2/4] tools/env: javadoc for fw_printenv, fw_getenv and fw_parse_script Andreas Fenkart
@ 2016-06-27 22:06 ` Andreas Fenkart
  2016-07-09 14:39   ` Simon Glass
  2016-06-27 22:06 ` [U-Boot] [PATCH 4/4] tools/env: reuse fw_getenv in fw_printenv function Andreas Fenkart
  3 siblings, 1 reply; 11+ messages in thread
From: Andreas Fenkart @ 2016-06-27 22:06 UTC (permalink / raw)
  To: u-boot

From: Andreas Fenkart <afenkart@gmail.com>

forward declaration not needed when re-ordered

Signed-off-by: Andreas Fenkart <andreas.fenkart@digitalstrom.com>
---
 tools/env/fw_env.c | 38 ++++++++++++++++++--------------------
 1 file changed, 18 insertions(+), 20 deletions(-)

diff --git a/tools/env/fw_env.c b/tools/env/fw_env.c
index b1c8217..ca839d1 100644
--- a/tools/env/fw_env.c
+++ b/tools/env/fw_env.c
@@ -121,7 +121,6 @@ static unsigned char obsolete_flag = 0;
 #include <env_default.h>
 
 static int flash_io (int mode);
-static char *envmatch (char * s1, char * s2);
 static int parse_config(struct env_opts *opts);
 
 #if defined(CONFIG_FILE)
@@ -147,6 +146,24 @@ static char *skip_blanks(char *s)
 }
 
 /*
+ * s1 is either a simple 'name', or a 'name=value' pair.
+ * s2 is a 'name=value' pair.
+ * If the names match, return the value of s2, else NULL.
+ */
+static char *envmatch(char *s1, char *s2)
+{
+	if (s1 == NULL || s2 == NULL)
+		return NULL;
+
+	while (*s1 == *s2++)
+		if (*s1++ == '=')
+			return s2;
+	if (*s1 == '\0' && *(s2 - 1) == '=')
+		return s2;
+	return NULL;
+}
+
+/**
  * Search the environment for a variable.
  * Return the value, if found, or NULL, if not found.
  */
@@ -1121,25 +1138,6 @@ exit:
 }
 
 /*
- * s1 is either a simple 'name', or a 'name=value' pair.
- * s2 is a 'name=value' pair.
- * If the names match, return the value of s2, else NULL.
- */
-
-static char *envmatch (char * s1, char * s2)
-{
-	if (s1 == NULL || s2 == NULL)
-		return NULL;
-
-	while (*s1 == *s2++)
-		if (*s1++ == '=')
-			return s2;
-	if (*s1 == '\0' && *(s2 - 1) == '=')
-		return s2;
-	return NULL;
-}
-
-/*
  * Prevent confusion if running from erased flash memory
  */
 int fw_env_open(struct env_opts *opts)
-- 
2.8.1

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

* [U-Boot] [PATCH 4/4] tools/env: reuse fw_getenv in fw_printenv function
  2016-06-27 22:06 [U-Boot] [PATCH 0/4] tools/env: minor refactorings Andreas Fenkart
                   ` (2 preceding siblings ...)
  2016-06-27 22:06 ` [U-Boot] [PATCH 3/4] tools/env: move envmatch further up in file to avoid forward declarations Andreas Fenkart
@ 2016-06-27 22:06 ` Andreas Fenkart
  3 siblings, 0 replies; 11+ messages in thread
From: Andreas Fenkart @ 2016-06-27 22:06 UTC (permalink / raw)
  To: u-boot

Try to avoid adhoc iteration of the environment. Reuse fw_getenv
to find the variables that should be printed. Only use open-coded
iteration when printing all variables.
For backwards compatibility, keep emitting a newline when
printing with noheader.

Signed-off-by: Andreas Fenkart <andreas.fenkart@digitalstrom.com>
---
 tools/env/fw_env.c | 44 +++++++++++++++++---------------------------
 1 file changed, 17 insertions(+), 27 deletions(-)

diff --git a/tools/env/fw_env.c b/tools/env/fw_env.c
index ca839d1..9733950 100644
--- a/tools/env/fw_env.c
+++ b/tools/env/fw_env.c
@@ -249,9 +249,14 @@ int parse_aes_key(char *key, uint8_t *bin_key)
  */
 int fw_printenv(int argc, char *argv[], int value_only, struct env_opts *opts)
 {
-	char *env, *nxt;
 	int i, rc = 0;
 
+	if (value_only && argc != 1) {
+		fprintf(stderr,
+			"## Error: `-n' option requires exactly one argument\n");
+		return -1;
+	}
+
 	if (!opts)
 		opts = &default_opts;
 
@@ -259,6 +264,7 @@ int fw_printenv(int argc, char *argv[], int value_only, struct env_opts *opts)
 		return -1;
 
 	if (argc == 0) {		/* Print all env variables  */
+		char *env, *nxt;
 		for (env = environment.data; *env; env = nxt + 1) {
 			for (nxt = env; *nxt; ++nxt) {
 				if (nxt >= &environment.data[ENV_SIZE]) {
@@ -273,39 +279,23 @@ int fw_printenv(int argc, char *argv[], int value_only, struct env_opts *opts)
 		return 0;
 	}
 
-	if (value_only && argc != 1) {
-		fprintf(stderr,
-			"## Error: `-n' option requires exactly one argument\n");
-		return -1;
-	}
-
-	for (i = 0; i < argc; ++i) {	/* print single env variables   */
+	for (i = 0; i < argc; ++i) {	/* print a subset of env variables */
 		char *name = argv[i];
 		char *val = NULL;
 
-		for (env = environment.data; *env; env = nxt + 1) {
-
-			for (nxt = env; *nxt; ++nxt) {
-				if (nxt >= &environment.data[ENV_SIZE]) {
-					fprintf (stderr, "## Error: "
-						"environment not terminated\n");
-					return -1;
-				}
-			}
-			val = envmatch (name, env);
-			if (val) {
-				if (!value_only) {
-					fputs (name, stdout);
-					putc ('=', stdout);
-				}
-				puts (val);
-				break;
-			}
-		}
+		val = fw_getenv(name);
 		if (!val) {
 			fprintf (stderr, "## Error: \"%s\" not defined\n", name);
 			rc = -1;
+			continue;
 		}
+
+		if (value_only) {
+			puts(val);
+			break;
+		}
+
+		printf("%s=%s\n", name, val);
 	}
 
 	return rc;
-- 
2.8.1

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

* [U-Boot] [PATCH 1/4] tools/env: return with error if redundant environments have unequal size
  2016-06-27 22:06 ` [U-Boot] [PATCH 1/4] tools/env: return with error if redundant environments have unequal size Andreas Fenkart
@ 2016-07-09 14:39   ` Simon Glass
  0 siblings, 0 replies; 11+ messages in thread
From: Simon Glass @ 2016-07-09 14:39 UTC (permalink / raw)
  To: u-boot

On 27 June 2016 at 16:06, Andreas Fenkart
<andreas.fenkart@digitalstrom.com> wrote:
>
> From: Andreas Fenkart <afenkart@gmail.com>
>
> For double buffering to work, the target buffer must always be big
> enough to hold all data. This can only be ensured if buffers are of
> equal size, otherwise one must be smaller and we risk data loss
> when copying from the bigger to the smaller buffer.
>
> Signed-off-by: Andreas Fenkart <andreas.fenkart@digitalstrom.com>
> ---
>  tools/env/fw_env.c | 23 ++++++++++++-----------
>  1 file changed, 12 insertions(+), 11 deletions(-)

Reviewed-by: Simon Glass <sjg@chromium.org>

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

* [U-Boot] [PATCH 2/4] tools/env: javadoc for fw_printenv, fw_getenv and fw_parse_script
  2016-06-27 22:06 ` [U-Boot] [PATCH 2/4] tools/env: javadoc for fw_printenv, fw_getenv and fw_parse_script Andreas Fenkart
@ 2016-07-09 14:39   ` Simon Glass
  2016-07-16 15:35     ` Andreas Fenkart
  0 siblings, 1 reply; 11+ messages in thread
From: Simon Glass @ 2016-07-09 14:39 UTC (permalink / raw)
  To: u-boot

On 27 June 2016 at 16:06, Andreas Fenkart
<andreas.fenkart@digitalstrom.com> wrote:
> there are two groups of functions:
> - application ready tools: fw_setenv/fw_getenv/fw_parse_script
> these are used, when creating a single binary containing multiple
> tools (busybox like)
> - file access like: open/read/write/close
> above functions are implemented on top of these. applications
> can use those to modify several variables without creating a
> temporary batch script file
>
> Signed-off-by: Andreas Fenkart <andreas.fenkart@digitalstrom.com>
> ---
>  tools/env/fw_env.h | 75 +++++++++++++++++++++++++++++++++++++++++++++++++++++-
>  1 file changed, 74 insertions(+), 1 deletion(-)

Great to see this, thank you.

Reviewed-by: Simon Glass <sjg@chromium.org>

Nit below

>
> diff --git a/tools/env/fw_env.h b/tools/env/fw_env.h
> index dac964d..8bf74f3 100644
> --- a/tools/env/fw_env.h
> +++ b/tools/env/fw_env.h
> @@ -67,12 +67,85 @@ struct env_opts {
>
>  int parse_aes_key(char *key, uint8_t *bin_key);
>
> +/**
> + * fw_printenv - print one or several environment variables

We normally add function brackets:

   fw_printenv() - print ...

> + *
> + * @argc  number of variables names to be printed, print all if 0
> + * @argv  array of variable names to be printed
> + * @value_only  do not repeat the variable name, only print the value,
> + *          only one variable allowed with this option, argc must be 1
> + * @opts  encryption key, configuration file, defaults are used if NULL

@returns

> + */
>  int fw_printenv(int argc, char *argv[], int value_only, struct env_opts *opts);
> -char *fw_getenv(char *name);
> +
> +/**
> + * fw_setenv - adds or removes one variable from the environment
> + *
> + * @argc  number of strings in argv, argv[0] is variable name,
> + *          argc==1 means erase variable, argc > 1 means add a variable
> + * @argv  argv[0] is variable name, argv[1..argc-1] are concatenated separated
> + *           by single blank and set as the new value of the variable
> + * @opts  how to retrieve environment from flash, defaults are used if NULL
> + * @ret   EROFS if variable must not be changed (ethaddr, serial#)

@returns

> + */
>  int fw_setenv(int argc, char *argv[], struct env_opts *opts);
> +
> +/**
> + * fw_parse_script - add/remove multiple variables with a batch script
> + *
> + * @fname  batch script file name
> + * @opts  encryption key, configuration file, defaults are used if NULL

@returns

(please do for all)

> + *
> + * Script Syntax:
> + *   key [[space]+ value]
> + *   lines starting with '#' treated as comment
> + *
> + *   A variable without value will be deleted. Any number of spaces are allowed
> + *   between key and value. The value starts with the first non-space character
> + *   and ends with newline. No comments allowed on these lines.  Spaces inside
> + *   the value are preserved verbatim.
> + *
> + * Script Example:"
> + *   netdev         eth0
> + *   kernel_addr    400000
> + *   foo            spaces           are copied verbatim
> + *   # delete variable bar
> + *   bar\n"
> + */
>  int fw_parse_script(char *fname, struct env_opts *opts);
> +
> +
> +/**
> + * fw_env_open - read enviroment from flash and cache it in RAM
> + *
> + * @opts  encryption key, configuration file, defaults are used if NULL
> + */
>  int fw_env_open(struct env_opts *opts);
> +
> +/**
> + * fw_getenv - lookup variable in RAM cache
> + *
> + * @name  variable to be searched
> + * @ret   NULL if not found
> + */
> +char *fw_getenv(char *name);
> +
> +/**
> + * fw_env_write - set/clear a single variable in the RAM cache
> + *
> + * This is called in sequence to update the environment in RAM without updating
> + * the copy in flash after each set
> + *
> + * @name  variable
> + * @value delete variable if NULL, otherwise create or overwrite the variable
> + */
>  int fw_env_write(char *name, char *value);
> +
> +/**
> + * fw_env_close - writes environment from RAM back to flash
> + *
> + * @opts  encryption key, configuration file, defaults are used if NULL
> + */
>  int fw_env_close(struct env_opts *opts);
>
>  unsigned long crc32(unsigned long, const unsigned char *, unsigned);
> --
> 2.8.1
>
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> http://lists.denx.de/mailman/listinfo/u-boot

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

* [U-Boot] [PATCH 3/4] tools/env: move envmatch further up in file to avoid forward declarations
  2016-06-27 22:06 ` [U-Boot] [PATCH 3/4] tools/env: move envmatch further up in file to avoid forward declarations Andreas Fenkart
@ 2016-07-09 14:39   ` Simon Glass
  0 siblings, 0 replies; 11+ messages in thread
From: Simon Glass @ 2016-07-09 14:39 UTC (permalink / raw)
  To: u-boot

On 27 June 2016 at 16:06, Andreas Fenkart
<andreas.fenkart@digitalstrom.com> wrote:
> From: Andreas Fenkart <afenkart@gmail.com>
>
> forward declaration not needed when re-ordered
>
> Signed-off-by: Andreas Fenkart <andreas.fenkart@digitalstrom.com>
> ---
>  tools/env/fw_env.c | 38 ++++++++++++++++++--------------------
>  1 file changed, 18 insertions(+), 20 deletions(-)

Reviewed-by: Simon Glass <sjg@chromium.org>

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

* [U-Boot] [PATCH 2/4] tools/env: javadoc for fw_printenv, fw_getenv and fw_parse_script
  2016-07-09 14:39   ` Simon Glass
@ 2016-07-16 15:35     ` Andreas Fenkart
  2016-07-17 14:12       ` Simon Glass
  0 siblings, 1 reply; 11+ messages in thread
From: Andreas Fenkart @ 2016-07-16 15:35 UTC (permalink / raw)
  To: u-boot

Hi Simon,

I sent out a v2 of this series, you should have received by now. Some
comments in the context:

2016-07-09 16:39 GMT+02:00 Simon Glass <sjg@chromium.org>:
> On 27 June 2016 at 16:06, Andreas Fenkart
> <andreas.fenkart@digitalstrom.com> wrote:

[snip]

>> +/**
>> + * fw_printenv - print one or several environment variables
>
> We normally add function brackets:

Hmm, I wonder what actually is used, since it's neither javadoc nor kernel-doc

http://www.oracle.com/technetwork/java/javase/documentation/index-137868.html
http://www.mjmwired.net/kernel/Documentation/kernel-doc-nano-HOWTO.txt

For javadoc we would have to use @param <arg> keyword instead of the
shorter @arg used in the patch. But kernel-doc does not support
@return/@returns, it requires a 'Return:' section.

I verified the markup using:
./scripts/kernel-doc -html -v tools/env/fw_env.h

This was just for convenience, since the script comes with the source.
I can switch to whatever format is preferred.

>    fw_printenv() - print ...
>
>> + *
>> + * @argc  number of variables names to be printed, print all if 0
>> + * @argv  array of variable names to be printed
>> + * @value_only  do not repeat the variable name, only print the value,
>> + *          only one variable allowed with this option, argc must be 1
>> + * @opts  encryption key, configuration file, defaults are used if NULL
>
> @returns

$ grep -re  '\W at return\W' * | wc -l
1280

$ grep -re  '\W at returns\W' * | wc -l
12

javadoc uses @return

Is there a tool that processes the existing documentation markup,
probably it's not kernel-doc since it doesn't know the @return keyword

[snip]

/Andi

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

* [U-Boot] [PATCH 2/4] tools/env: javadoc for fw_printenv, fw_getenv and fw_parse_script
  2016-07-16 15:35     ` Andreas Fenkart
@ 2016-07-17 14:12       ` Simon Glass
  2016-07-18  9:23         ` Marek Vasut
  0 siblings, 1 reply; 11+ messages in thread
From: Simon Glass @ 2016-07-17 14:12 UTC (permalink / raw)
  To: u-boot

+Marek

Hi Andreas,

On 16 July 2016 at 09:35, Andreas Fenkart <afenkart@gmail.com> wrote:
> Hi Simon,
>
> I sent out a v2 of this series, you should have received by now. Some
> comments in the context:
>
> 2016-07-09 16:39 GMT+02:00 Simon Glass <sjg@chromium.org>:
>> On 27 June 2016 at 16:06, Andreas Fenkart
>> <andreas.fenkart@digitalstrom.com> wrote:
>
> [snip]
>
>>> +/**
>>> + * fw_printenv - print one or several environment variables
>>
>> We normally add function brackets:
>
> Hmm, I wonder what actually is used, since it's neither javadoc nor kernel-doc
>
> http://www.oracle.com/technetwork/java/javase/documentation/index-137868.html
> http://www.mjmwired.net/kernel/Documentation/kernel-doc-nano-HOWTO.txt
>
> For javadoc we would have to use @param <arg> keyword instead of the
> shorter @arg used in the patch. But kernel-doc does not support
> @return/@returns, it requires a 'Return:' section.
>
> I verified the markup using:
> ./scripts/kernel-doc -html -v tools/env/fw_env.h
>
> This was just for convenience, since the script comes with the source.
> I can switch to whatever format is preferred.
>
>>    fw_printenv() - print ...
>>
>>> + *
>>> + * @argc  number of variables names to be printed, print all if 0
>>> + * @argv  array of variable names to be printed
>>> + * @value_only  do not repeat the variable name, only print the value,
>>> + *          only one variable allowed with this option, argc must be 1
>>> + * @opts  encryption key, configuration file, defaults are used if NULL
>>
>> @returns
>
> $ grep -re  '\W at return\W' * | wc -l
> 1280
>
> $ grep -re  '\W at returns\W' * | wc -l
> 12
>
> javadoc uses @return
>
> Is there a tool that processes the existing documentation markup,
> probably it's not kernel-doc since it doesn't know the @return keyword

I'm (hopefully) following instructions from Marek who may have more
info on this. I believe it is docbook (make pdfdocs), but only a few
files are included at present.

Regards,
Simon

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

* [U-Boot] [PATCH 2/4] tools/env: javadoc for fw_printenv, fw_getenv and fw_parse_script
  2016-07-17 14:12       ` Simon Glass
@ 2016-07-18  9:23         ` Marek Vasut
  0 siblings, 0 replies; 11+ messages in thread
From: Marek Vasut @ 2016-07-18  9:23 UTC (permalink / raw)
  To: u-boot

On 07/17/2016 04:12 PM, Simon Glass wrote:
> +Marek
>
> Hi Andreas,
>
> On 16 July 2016 at 09:35, Andreas Fenkart <afenkart@gmail.com> wrote:
>> Hi Simon,
>>
>> I sent out a v2 of this series, you should have received by now. Some
>> comments in the context:
>>
>> 2016-07-09 16:39 GMT+02:00 Simon Glass <sjg@chromium.org>:
>>> On 27 June 2016 at 16:06, Andreas Fenkart
>>> <andreas.fenkart@digitalstrom.com> wrote:
>>
>> [snip]
>>
>>>> +/**
>>>> + * fw_printenv - print one or several environment variables
>>>
>>> We normally add function brackets:
>>
>> Hmm, I wonder what actually is used, since it's neither javadoc nor kernel-doc
>>
>> http://www.oracle.com/technetwork/java/javase/documentation/index-137868.html
>> http://www.mjmwired.net/kernel/Documentation/kernel-doc-nano-HOWTO.txt
>>
>> For javadoc we would have to use @param <arg> keyword instead of the
>> shorter @arg used in the patch. But kernel-doc does not support
>> @return/@returns, it requires a 'Return:' section.
>>
>> I verified the markup using:
>> ./scripts/kernel-doc -html -v tools/env/fw_env.h
>>
>> This was just for convenience, since the script comes with the source.
>> I can switch to whatever format is preferred.
>>
>>>    fw_printenv() - print ...
>>>
>>>> + *
>>>> + * @argc  number of variables names to be printed, print all if 0
>>>> + * @argv  array of variable names to be printed
>>>> + * @value_only  do not repeat the variable name, only print the value,
>>>> + *          only one variable allowed with this option, argc must be 1
>>>> + * @opts  encryption key, configuration file, defaults are used if NULL
>>>
>>> @returns
>>
>> $ grep -re  '\W at return\W' * | wc -l
>> 1280
>>
>> $ grep -re  '\W at returns\W' * | wc -l
>> 12
>>
>> javadoc uses @return
>>
>> Is there a tool that processes the existing documentation markup,
>> probably it's not kernel-doc since it doesn't know the @return keyword
>
> I'm (hopefully) following instructions from Marek who may have more
> info on this. I believe it is docbook (make pdfdocs), but only a few
> files are included at present.

I'm not sure what the question is, I didn't manage to extrapolate it 
from the previous discussion -- but kerneldoc is the preferred doc 
format for u-boot.


-- 
Best regards,
Marek Vasut

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

end of thread, other threads:[~2016-07-18  9:23 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-06-27 22:06 [U-Boot] [PATCH 0/4] tools/env: minor refactorings Andreas Fenkart
2016-06-27 22:06 ` [U-Boot] [PATCH 1/4] tools/env: return with error if redundant environments have unequal size Andreas Fenkart
2016-07-09 14:39   ` Simon Glass
2016-06-27 22:06 ` [U-Boot] [PATCH 2/4] tools/env: javadoc for fw_printenv, fw_getenv and fw_parse_script Andreas Fenkart
2016-07-09 14:39   ` Simon Glass
2016-07-16 15:35     ` Andreas Fenkart
2016-07-17 14:12       ` Simon Glass
2016-07-18  9:23         ` Marek Vasut
2016-06-27 22:06 ` [U-Boot] [PATCH 3/4] tools/env: move envmatch further up in file to avoid forward declarations Andreas Fenkart
2016-07-09 14:39   ` Simon Glass
2016-06-27 22:06 ` [U-Boot] [PATCH 4/4] tools/env: reuse fw_getenv in fw_printenv function Andreas Fenkart

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.