[V2,2/7] env: Add H_DEFAULT flag

Message ID 20200707185139.2225-2-marex@denx.de
State Superseded
Headers show
Series
  • [V2,1/7] env: Warn on force access if ENV_ACCESS_IGNORE_FORCE set
Related show

Commit Message

Marek Vasut July 7, 2020, 6:51 p.m.
Add another internal environment flag which indicates that the operation
is resetting the environment to the default one. This allows the env code
to discern between import of external environment and reset to default.

Signed-off-by: Marek Vasut <marex at denx.de>
---
V2: No change
---
 env/common.c     | 3 ++-
 include/search.h | 1 +
 2 files changed, 3 insertions(+), 1 deletion(-)

Comments

Tom Rini July 24, 2020, 2:56 p.m. | #1
On Tue, Jul 07, 2020 at 08:51:34PM +0200, Marek Vasut wrote:

> Add another internal environment flag which indicates that the operation

> is resetting the environment to the default one. This allows the env code

> to discern between import of external environment and reset to default.

> 

> Signed-off-by: Marek Vasut <marex@denx.de>


Reviewed-by: Tom Rini <trini@konsulko.com>


-- 
Tom
Tom Rini July 31, 2020, 9:40 p.m. | #2
On Tue, Jul 07, 2020 at 08:51:34PM +0200, Marek Vasut wrote:

> Add another internal environment flag which indicates that the operation

> is resetting the environment to the default one. This allows the env code

> to discern between import of external environment and reset to default.

> 

> Signed-off-by: Marek Vasut <marex@denx.de>

> Reviewed-by: Tom Rini <trini@konsulko.com>


Applied to u-boot/master, thanks!

-- 
Tom

Patch

diff --git a/env/common.c b/env/common.c
index 088b2aebb4..0db56e610a 100644
--- a/env/common.c
+++ b/env/common.c
@@ -81,6 +81,7 @@  void env_set_default(const char *s, int flags)
 		debug("Using default environment\n");
 	}
 
+	flags |= H_DEFAULT;
 	if (himport_r(&env_htab, (char *)default_environment,
 			sizeof(default_environment), '\0', flags, 0,
 			0, NULL) == 0)
@@ -99,7 +100,7 @@  int env_set_default_vars(int nvars, char * const vars[], int flags)
 	 * Special use-case: import from default environment
 	 * (and use \0 as a separator)
 	 */
-	flags |= H_NOCLEAR;
+	flags |= H_NOCLEAR | H_DEFAULT;
 	return himport_r(&env_htab, (const char *)default_environment,
 				sizeof(default_environment), '\0',
 				flags, 0, nvars, vars);
diff --git a/include/search.h b/include/search.h
index bca36d3abc..c4b50c9630 100644
--- a/include/search.h
+++ b/include/search.h
@@ -112,5 +112,6 @@  int hwalk_r(struct hsearch_data *htab,
 #define H_MATCH_METHOD	(H_MATCH_IDENT | H_MATCH_SUBSTR | H_MATCH_REGEX)
 #define H_PROGRAMMATIC	(1 << 9) /* indicate that an import is from env_set() */
 #define H_ORIGIN_FLAGS	(H_INTERACTIVE | H_PROGRAMMATIC)
+#define H_DEFAULT	(1 << 10) /* indicate that an import is default env */
 
 #endif /* _SEARCH_H_ */