* Licensed under the BSD-3-Clause License (the "License").
* You may not use this file except in compliance with the License.
*/
+#include <uk/libparam.h>
#include <uk/essentials.h>
#include "environ.h"
-static char *__ct_env[] = {
+/*
+ * Size the array
+ */
+static char *__init_env[1 /* null termination */
+#if CONFIG_LIBPOSIX_ENVIRON_ENVP0_NOTEMPTY
+ + 1
+#endif /* CONFIG_LIBPOSIX_ENVIRON_ENVP0_NOTEMPTY */
+#if CONFIG_LIBPOSIX_ENVIRON_ENVP1_NOTEMPTY
+ + 1
+#endif /* CONFIG_LIBPOSIX_ENVIRON_ENVP1_NOTEMPTY */
+#if CONFIG_LIBPOSIX_ENVIRON_ENVP2_NOTEMPTY
+ + 1
+#endif /* CONFIG_LIBPOSIX_ENVIRON_ENVP2_NOTEMPTY */
+#if CONFIG_LIBPOSIX_ENVIRON_ENVP3_NOTEMPTY
+ + 1
+#endif /* CONFIG_LIBPOSIX_ENVIRON_ENVP3_NOTEMPTY */
+#if CONFIG_LIBPOSIX_ENVIRON_ENVP4_NOTEMPTY
+ + 1
+#endif /* CONFIG_LIBPOSIX_ENVIRON_ENVP4_NOTEMPTY */
+#if CONFIG_LIBPOSIX_ENVIRON_ENVP5_NOTEMPTY
+ + 1
+#endif /* CONFIG_LIBPOSIX_ENVIRON_ENVP5_NOTEMPTY */
+#if CONFIG_LIBPOSIX_ENVIRON_ENVP6_NOTEMPTY
+ + 1
+#endif /* CONFIG_LIBPOSIX_ENVIRON_ENVP6_NOTEMPTY */
+#if CONFIG_LIBPOSIX_ENVIRON_ENVP7_NOTEMPTY
+ + 1
+#endif /* CONFIG_LIBPOSIX_ENVIRON_ENVP7_NOTEMPTY */
+#if CONFIG_LIBPOSIX_ENVIRON_ENVP8_NOTEMPTY
+ + 1
+#endif /* CONFIG_LIBPOSIX_ENVIRON_ENVP8_NOTEMPTY */
+#if CONFIG_LIBPOSIX_ENVIRON_ENVP9_NOTEMPTY
+ + 1
+#endif /* CONFIG_LIBPOSIX_ENVIRON_ENVP9_NOTEMPTY */
+#if CONFIG_LIBPOSIX_ENVIRON_ENVP10_NOTEMPTY
+ + 1
+#endif /* CONFIG_LIBPOSIX_ENVIRON_ENVP10_NOTEMPTY */
+#if CONFIG_LIBPOSIX_ENVIRON_ENVP11_NOTEMPTY
+ + 1
+#endif /* CONFIG_LIBPOSIX_ENVIRON_ENVP11_NOTEMPTY */
+#if CONFIG_LIBPOSIX_ENVIRON_ENVP12_NOTEMPTY
+ + 1
+#endif /* CONFIG_LIBPOSIX_ENVIRON_ENVP12_NOTEMPTY */
+#if CONFIG_LIBPOSIX_ENVIRON_ENVP13_NOTEMPTY
+ + 1
+#endif /* CONFIG_LIBPOSIX_ENVIRON_ENVP13_NOTEMPTY */
+#if CONFIG_LIBPOSIX_ENVIRON_ENVP14_NOTEMPTY
+ + 1
+#endif /* CONFIG_LIBPOSIX_ENVIRON_ENVP14_NOTEMPTY */
+#if CONFIG_LIBPOSIX_ENVIRON_ENVP15_NOTEMPTY
+ + 1
+#endif /* CONFIG_LIBPOSIX_ENVIRON_ENVP15_NOTEMPTY */
+#if CONFIG_LIBPOSIX_ENVIRON_LIBPARAM
+ + CONFIG_LIBPOSIX_ENVIRON_LIBPARAM_MAXCOUNT
+#endif /* CONFIG_LIBPOSIX_ENVIRON_LIBPARAM */
+ ] = {
#if CONFIG_LIBPOSIX_ENVIRON_ENVP0_NOTEMPTY
CONFIG_LIBPOSIX_ENVIRON_ENVP0,
#endif /* CONFIG_LIBPOSIX_ENVIRON_ENVP0_NOTEMPTY */
NULL /* termination */
};
-char **__environ = __ct_env;
+#if CONFIG_LIBPOSIX_ENVIRON_LIBPARAM
+UK_LIBPARAM_PARAM_ARR_ALIAS(vars,
+ &(__init_env[ARRAY_SIZE(__init_env) -
+ CONFIG_LIBPOSIX_ENVIRON_LIBPARAM_MAXCOUNT - 1]),
+ charp,
+ CONFIG_LIBPOSIX_ENVIRON_LIBPARAM_MAXCOUNT,
+ "Environment variables");
+#endif
+
+char **__environ = __init_env;