diff mbox

[1/4] kconfig: add short explanation to SYMBOL_WRITE

Message ID 4542076.yVG8YKgu5r@tacticalops (mailing list archive)
State New, archived
Headers show

Commit Message

Martin Walch Oct. 2, 2013, 5:24 a.m. UTC
From: Martin Walch <walch.martin@web.de>
Date: Wed, 2 Oct 2013 06:54:27 +0200
Subject: [PATCH 1/4] kconfig: add short explanation to SYMBOL_WRITE

replace the question mark in the comment after SYMBOL_WRITE with an explanation
Signed-off-by: Martin Walch <walch.martin@web.de>
---
 scripts/kconfig/expr.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

David Rientjes Oct. 2, 2013, 5:37 a.m. UTC | #1
On Wed, 2 Oct 2013, Martin Walch wrote:

> diff --git a/scripts/kconfig/expr.h b/scripts/kconfig/expr.h
> index df198a5..ba663e1 100644
> --- a/scripts/kconfig/expr.h
> +++ b/scripts/kconfig/expr.h
> @@ -93,7 +93,7 @@ struct symbol {
>  #define SYMBOL_CHOICEVAL  0x0020  /* used as a value in a choice block */
>  #define SYMBOL_VALID      0x0080  /* set when symbol.curr is calculated */
>  #define SYMBOL_OPTIONAL   0x0100  /* choice is optional - values can be 'n' */
> -#define SYMBOL_WRITE      0x0200  /* ? */
> +#define SYMBOL_WRITE      0x0200  /* write symbol to file (KCONFIG_CONFIG) */
>  #define SYMBOL_CHANGED    0x0400  /* ? */
>  #define SYMBOL_AUTO       0x1000  /* value from environment variable */
>  #define SYMBOL_CHECKED    0x2000  /* used during dependency checking */

Perhaps stating that the choice is writable by the user?
--
To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Martin Walch Oct. 2, 2013, 11:39 p.m. UTC | #2
> > diff --git a/scripts/kconfig/expr.h b/scripts/kconfig/expr.h
> > index df198a5..ba663e1 100644
> > --- a/scripts/kconfig/expr.h
> > +++ b/scripts/kconfig/expr.h
> > @@ -93,7 +93,7 @@ struct symbol {
> >  #define SYMBOL_CHOICEVAL  0x0020  /* used as a value in a choice block */
> >  #define SYMBOL_VALID      0x0080  /* set when symbol.curr is calculated */
> >  #define SYMBOL_OPTIONAL   0x0100  /* choice is optional - values can be 'n' */
> > -#define SYMBOL_WRITE      0x0200  /* ? */
> > +#define SYMBOL_WRITE      0x0200  /* write symbol to file (KCONFIG_CONFIG) */
> >  #define SYMBOL_CHANGED    0x0400  /* ? */
> >  #define SYMBOL_AUTO       0x1000  /* value from environment variable */
> >  #define SYMBOL_CHECKED    0x2000  /* used during dependency checking */
> 
> Perhaps stating that the choice is writable by the user?

As far as I understand SYMBOL_WRITE, its main purpose is in the function
conf_write in confdata.c:

>if (!(sym->flags & SYMBOL_WRITE))
>	goto next;
>sym->flags &= ~SYMBOL_WRITE;
>
>conf_write_symbol(out, sym, &kconfig_printer_cb, NULL);

So, if I have not missed anything, SYMBOL_WRITE decides whether to write a symbol
to .config or not. This does not necessarily mean that the user can change the value.
SYMBOL_WRITE may be set and the symbol may be written to .config while the user
does not even see the corresponding prompt.
--
To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
David Rientjes Oct. 2, 2013, 11:42 p.m. UTC | #3
On Thu, 3 Oct 2013, Martin Walch wrote:

> So, if I have not missed anything, SYMBOL_WRITE decides whether to write a symbol
> to .config or not. This does not necessarily mean that the user can change the value.
> SYMBOL_WRITE may be set and the symbol may be written to .config while the user
> does not even see the corresponding prompt.
> 

The purpose of SYMBOL_WRITE is in sym_calc_value() where it is set if the 
config symbol is visible and settable by the user, which is why I 
suggested it be specified as being writable by the user.
--
To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Martin Walch Oct. 3, 2013, 12:26 a.m. UTC | #4
On Wednesday 02 October 2013 16:42:27 David Rientjes wrote:
> The purpose of SYMBOL_WRITE is in sym_calc_value() where it is set if the 
> config symbol is visible and settable by the user, which is why I 
> suggested it be specified as being writable by the user.

Then this looks strange to me: a config symbol of type boolean or tristate
that is not visible, but has a default value != n will have SYMBOL_WRITE set
in sym_calc_value:

> case S_BOOLEAN:
> case S_TRISTATE:
>	if (sym_is_choice_value(sym) && sym->visible == yes) {
> 		...
>	} else {
>		...
> 		if (!sym_is_choice(sym)) {
> 			prop = sym_get_default_prop(sym);
> 			if (prop) {
> 				sym->flags |= SYMBOL_WRITE;
> 				newval.tri = EXPR_AND(expr_calc_value(prop->expr),
> 					prop->visible.tri);
> 			}
> 		}
>		...
>	}
diff mbox

Patch

diff --git a/scripts/kconfig/expr.h b/scripts/kconfig/expr.h
index df198a5..ba663e1 100644
--- a/scripts/kconfig/expr.h
+++ b/scripts/kconfig/expr.h
@@ -93,7 +93,7 @@  struct symbol {
 #define SYMBOL_CHOICEVAL  0x0020  /* used as a value in a choice block */
 #define SYMBOL_VALID      0x0080  /* set when symbol.curr is calculated */
 #define SYMBOL_OPTIONAL   0x0100  /* choice is optional - values can be 'n' */
-#define SYMBOL_WRITE      0x0200  /* ? */
+#define SYMBOL_WRITE      0x0200  /* write symbol to file (KCONFIG_CONFIG) */
 #define SYMBOL_CHANGED    0x0400  /* ? */
 #define SYMBOL_AUTO       0x1000  /* value from environment variable */
 #define SYMBOL_CHECKED    0x2000  /* used during dependency checking */