diff options
author | Rob Clark <[email protected]> | 2018-11-09 13:28:36 -0500 |
---|---|---|
committer | Rob Clark <[email protected]> | 2018-11-27 15:44:02 -0500 |
commit | a321f939f648e25d7730507d7e60bb17c34d6e6e (patch) | |
tree | ff6f668108327b8d254cac714b480e9972565235 /src | |
parent | bfd8d2637266cf4678eb866a82f49b4905ba8cdc (diff) |
util: env_var_as_unsigned() helper
So I can drop env2u() helper from freedreno_util.h and get rid of one
small ir3 dependency on gallium/freedreno
Signed-off-by: Rob Clark <[email protected]>
Diffstat (limited to 'src')
-rw-r--r-- | src/util/debug.c | 20 | ||||
-rw-r--r-- | src/util/debug.h | 2 |
2 files changed, 22 insertions, 0 deletions
diff --git a/src/util/debug.c b/src/util/debug.c index 98b1853325d..2773b55cc4d 100644 --- a/src/util/debug.c +++ b/src/util/debug.c @@ -21,6 +21,7 @@ * IN THE SOFTWARE. */ +#include <errno.h> #include <string.h> #include "main/macros.h" #include "debug.h" @@ -76,3 +77,22 @@ env_var_as_boolean(const char *var_name, bool default_value) return default_value; } } + +/** + * Reads an environment variable and interprets its value as a unsigned. + */ +unsigned +env_var_as_unsigned(const char *var_name, unsigned default_value) +{ + char *str = getenv(var_name); + if (str) { + char *end; + unsigned long result; + + errno = 0; + result = strtoul(str, &end, 0); + if (errno == 0 && end != str && *end == '\0') + return result; + } + return default_value; +} diff --git a/src/util/debug.h b/src/util/debug.h index 75ebc2ebffb..2e34ebe3421 100644 --- a/src/util/debug.h +++ b/src/util/debug.h @@ -41,6 +41,8 @@ parse_debug_string(const char *debug, const struct debug_control *control); bool env_var_as_boolean(const char *var_name, bool default_value); +unsigned +env_var_as_unsigned(const char *var_name, unsigned default_value); #ifdef __cplusplus } /* extern C */ |