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 <robdclark@gmail.com>
This commit is contained in:
Rob Clark
2018-11-09 13:28:36 -05:00
parent bfd8d26372
commit a321f939f6
2 changed files with 22 additions and 0 deletions

View File

@@ -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;
}

View File

@@ -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 */