aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMasahiro Yamada <masahiroy@kernel.org>2021-03-14 04:48:24 +0900
committerMasahiro Yamada <masahiroy@kernel.org>2021-03-25 13:34:26 +0900
commit89145649b0d0d51e90a85de23ca881c97d3a71a4 (patch)
tree61d472f4300f3977a7ec7c4972bd752f0dbfd7a6
parent1e28eed17697bcf343c6743f0028cc3b5dd88bf0 (diff)
downloadtip-89145649b0d0d51e90a85de23ca881c97d3a71a4.tar.gz
tip-89145649b0d0d51e90a85de23ca881c97d3a71a4.tar.xz
tip-89145649b0d0d51e90a85de23ca881c97d3a71a4.zip
kconfig: split randconfig setup code into set_randconfig_seed()
This code is too big to be placed in the switch statement. Move the code into a new helper function. I slightly refactor the code without changing the behavior. Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
-rw-r--r--scripts/kconfig/conf.c54
1 files changed, 31 insertions, 23 deletions
diff --git a/scripts/kconfig/conf.c b/scripts/kconfig/conf.c
index 957d2a0832f7..063c9e7a34c1 100644
--- a/scripts/kconfig/conf.c
+++ b/scripts/kconfig/conf.c
@@ -82,6 +82,36 @@ static void xfgets(char *str, int size, FILE *in)
printf("%s", str);
}
+static void set_randconfig_seed(void)
+{
+ unsigned int seed;
+ char *env;
+ bool seed_set = false;
+
+ env = getenv("KCONFIG_SEED");
+ if (env && *env) {
+ char *endp;
+
+ seed = strtol(env, &endp, 0);
+ if (*endp == '\0')
+ seed_set = true;
+ }
+
+ if (!seed_set) {
+ struct timeval now;
+
+ /*
+ * Use microseconds derived seed, compensate for systems where it may
+ * be zero.
+ */
+ gettimeofday(&now, NULL);
+ seed = (now.tv_sec + 1) * (now.tv_usec + 1);
+ }
+
+ printf("KCONFIG_SEED=0x%X\n", seed);
+ srand(seed);
+}
+
static int conf_askvalue(struct symbol *sym, const char *def)
{
if (!sym_has_value(sym))
@@ -515,30 +545,8 @@ int main(int ac, char **av)
defconfig_file = optarg;
break;
case randconfig:
- {
- struct timeval now;
- unsigned int seed;
- char *seed_env;
-
- /*
- * Use microseconds derived seed,
- * compensate for systems where it may be zero
- */
- gettimeofday(&now, NULL);
- seed = (unsigned int)((now.tv_sec + 1) * (now.tv_usec + 1));
-
- seed_env = getenv("KCONFIG_SEED");
- if( seed_env && *seed_env ) {
- char *endp;
- int tmp = (int)strtol(seed_env, &endp, 0);
- if (*endp == '\0') {
- seed = tmp;
- }
- }
- fprintf( stderr, "KCONFIG_SEED=0x%X\n", seed );
- srand(seed);
+ set_randconfig_seed();
break;
- }
case oldaskconfig:
case oldconfig:
case allnoconfig: