[U-Boot] [RFC PATCH v2 4/7] env: Introduce "transient" and "system" access flags

Bernhard Nortmann bernhard.nortmann at web.de
Tue Nov 22 19:54:32 CET 2016


Hi Simon!

Am 19.11.2016 um 14:47 schrieb Simon Glass:
> Hi Bernhard,
>
> On 16 November 2016 at 03:29, Bernhard Nortmann
> <bernhard.nortmann at web.de> wrote:
>> "transient" (='t') is like "any", but requests that a variable
>> should not be exported (ENV_FLAGS_VARACCESS_PREVENT_EXPORT).
>>
>> "system" (='S') is meant for 'internal' variables that
>> aren't supposed to be changed by the user. It corresponds
>> to "transient" plus "read-only".
>>
>> Signed-off-by: Bernhard Nortmann <bernhard.nortmann at web.de>
>>
>> ---
>>
>> Changes in v2:
>> - Fixed outdated "env_flags_varaccess_lock" to the correct
>>    "env_flags_varaccess_system"
>>
>>   common/env_flags.c  | 11 +++++++++--
>>   include/env_flags.h |  2 ++
>>   2 files changed, 11 insertions(+), 2 deletions(-)
> Reviewed-by: Simon Glass <sjg at chromium.org>
>
> Please see below.
>
> [...]
> Can these flags be shortened? This is not Java :-) Also it might be
> helpful to use the
>
>    [index] = value
>
> syntax so you can see which value it corresponds to?
>
> [...]
> Regards,
> Simon


I like the [index] suggestion, which already gives a version that I find 
a lot easier to read:


diff --git a/common/env_flags.c b/common/env_flags.c
index f39d952..6dea70c 100644
--- a/common/env_flags.c
+++ b/common/env_flags.c
@@ -28,16 +28,22 @@
  #endif

  static const char env_flags_vartype_rep[] = "sdxb" 
ENV_FLAGS_NET_VARTYPE_REPS;
-static const char env_flags_varaccess_rep[] = "aroc";
+static const char env_flags_varaccess_rep[] = "aroctS";
  static const int env_flags_varaccess_mask[] = {
-       0,
-       ENV_FLAGS_VARACCESS_PREVENT_DELETE |
-               ENV_FLAGS_VARACCESS_PREVENT_CREATE |
-               ENV_FLAGS_VARACCESS_PREVENT_OVERWR,
-       ENV_FLAGS_VARACCESS_PREVENT_DELETE |
-               ENV_FLAGS_VARACCESS_PREVENT_OVERWR,
-       ENV_FLAGS_VARACCESS_PREVENT_DELETE |
-               ENV_FLAGS_VARACCESS_PREVENT_NONDEF_OVERWR};
+       [0] =   0, /* no restrictions */
+       [1] =   ENV_FLAGS_VARACCESS_PREVENT_DELETE
+               | ENV_FLAGS_VARACCESS_PREVENT_CREATE
+               | ENV_FLAGS_VARACCESS_PREVENT_OVERWR,
+       [2] =   ENV_FLAGS_VARACCESS_PREVENT_DELETE
+               | ENV_FLAGS_VARACCESS_PREVENT_OVERWR,
+       [3] =   ENV_FLAGS_VARACCESS_PREVENT_DELETE
+               | ENV_FLAGS_VARACCESS_PREVENT_NONDEF_OVERWR,
+       [4] =   ENV_FLAGS_VARACCESS_PREVENT_EXPORT,
+       [5] =   ENV_FLAGS_VARACCESS_PREVENT_DELETE
+               | ENV_FLAGS_VARACCESS_PREVENT_CREATE
+               | ENV_FLAGS_VARACCESS_PREVENT_OVERWR
+               | ENV_FLAGS_VARACCESS_PREVENT_EXPORT
+       };

  #ifdef CONFIG_CMD_ENV_FLAGS
  static const char * const env_flags_vartype_names[] = {

As for the shortening of the various flags: The only one I'm introducing
is ENV_FLAGS_VARACCESS_PREVENT_EXPORT (in patch 3/7), following along the
spirit of existing ones - so I might not be the right person to bust them
all?

Regards, B. Nortmann



More information about the U-Boot mailing list