62#include <crt_externs.h>
63#define environ (*_NSGetEnviron())
71#error Unknown or unsupported OS.
105 rc = GetEnvironmentVariable(
name, NULL, 0);
107 DWORD error = GetLastError();
108 if (error != ERROR_ENVVAR_NOT_FOUND) {
118 rc = GetEnvironmentVariable(
name,
result, len);
122 DWORD error = GetLastError();
123 if (error != ERROR_SUCCESS) {
134#error Unknown or unsupported OS.
155 return ((
value == NULL) ? (0) : (1));
158 rc = GetEnvironmentVariable(
name, NULL, 0);
160 DWORD error = GetLastError();
161 if (error != ERROR_ENVVAR_NOT_FOUND) {
168#error Unknown or unsupported OS.
189 rc = GetEnvironmentVariable(
name, NULL, 0);
194 DWORD error = GetLastError();
195 if (error != ERROR_ENVVAR_NOT_FOUND) {
199 rc = SetEnvironmentVariable(
name,
value);
201 DWORD error = GetLastError();
205#error Unknown or unsupported OS.
215 BOOL rc = SetEnvironmentVariable(
name, NULL);
217 DWORD error = GetLastError();
221#error Unknown or unsupported OS.
241 char const chr_delimiter =
'|';
242 char const str_delimiter[] = {chr_delimiter, 0};
255 char const *ptr = bulk;
257 ptr = strchr(ptr, chr_delimiter);
276 while (var != NULL) {
305static void ___kmp_env_blk_parse_windows(
391 while (env[
count] != NULL) {
411 [[maybe_unused]]
size_t ssize =
size - (var - bulk);
439 ___kmp_env_blk_parse_unix(block, environ);
442 char *mem = GetEnvironmentStrings();
444 DWORD error = GetLastError();
448 ___kmp_env_blk_parse_windows(block, mem);
449 FreeEnvironmentStrings(mem);
452#error Unknown or unsupported OS.
460 return strcmp(lhs->
name, rhs->
name);
491 for (
i = 0;
i < block->
count; ++
i) {
__itt_string_handle * name
void const char const char int ITT_FORMAT __itt_group_sync x void const char ITT_FORMAT __itt_group_sync s void ITT_FORMAT __itt_group_sync p void ITT_FORMAT p void ITT_FORMAT p no args __itt_suppress_mode_t unsigned int void size_t ITT_FORMAT d void ITT_FORMAT p void ITT_FORMAT p __itt_model_site __itt_model_site_instance ITT_FORMAT p __itt_model_task __itt_model_task_instance ITT_FORMAT p void ITT_FORMAT p void ITT_FORMAT p void size_t ITT_FORMAT d void ITT_FORMAT p const wchar_t ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s no args void ITT_FORMAT p size_t count
void const char const char int ITT_FORMAT __itt_group_sync x void const char ITT_FORMAT __itt_group_sync s void ITT_FORMAT __itt_group_sync p void ITT_FORMAT p void ITT_FORMAT p no args __itt_suppress_mode_t unsigned int void size_t ITT_FORMAT d void ITT_FORMAT p void ITT_FORMAT p __itt_model_site __itt_model_site_instance ITT_FORMAT p __itt_model_task __itt_model_task_instance ITT_FORMAT p void ITT_FORMAT p void ITT_FORMAT p void size_t ITT_FORMAT d void ITT_FORMAT p const wchar_t ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s no args void ITT_FORMAT p size_t ITT_FORMAT d no args const wchar_t const wchar_t ITT_FORMAT s __itt_heap_function void size_t int ITT_FORMAT d __itt_heap_function void ITT_FORMAT p __itt_heap_function void void size_t int ITT_FORMAT d no args no args unsigned int ITT_FORMAT u const __itt_domain __itt_id ITT_FORMAT lu const __itt_domain __itt_id __itt_id __itt_string_handle ITT_FORMAT p const __itt_domain __itt_id ITT_FORMAT p const __itt_domain __itt_id __itt_timestamp __itt_timestamp ITT_FORMAT lu const __itt_domain __itt_id __itt_id __itt_string_handle ITT_FORMAT p const __itt_domain ITT_FORMAT p const __itt_domain __itt_string_handle unsigned long long value
void const char const char int ITT_FORMAT __itt_group_sync x void const char ITT_FORMAT __itt_group_sync s void ITT_FORMAT __itt_group_sync p void ITT_FORMAT p void ITT_FORMAT p no args __itt_suppress_mode_t unsigned int void size_t size
void const char const char int ITT_FORMAT __itt_group_sync x void const char ITT_FORMAT __itt_group_sync s void ITT_FORMAT __itt_group_sync p void ITT_FORMAT p void ITT_FORMAT p no args __itt_suppress_mode_t unsigned int void size_t ITT_FORMAT d void ITT_FORMAT p void ITT_FORMAT p __itt_model_site __itt_model_site_instance ITT_FORMAT p __itt_model_task __itt_model_task_instance ITT_FORMAT p void ITT_FORMAT p void ITT_FORMAT p void size_t ITT_FORMAT d void ITT_FORMAT p const wchar_t ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s no args void ITT_FORMAT p size_t ITT_FORMAT d no args const wchar_t const wchar_t ITT_FORMAT s __itt_heap_function void size_t int ITT_FORMAT d __itt_heap_function void ITT_FORMAT p __itt_heap_function void void size_t int ITT_FORMAT d no args no args unsigned int ITT_FORMAT u const __itt_domain __itt_id ITT_FORMAT lu const __itt_domain __itt_id __itt_id __itt_string_handle ITT_FORMAT p const __itt_domain __itt_id ITT_FORMAT p const __itt_domain __itt_id __itt_timestamp __itt_timestamp ITT_FORMAT lu const __itt_domain __itt_id __itt_id __itt_string_handle ITT_FORMAT p const __itt_domain ITT_FORMAT p const __itt_domain __itt_string_handle unsigned long long ITT_FORMAT lu const __itt_domain __itt_string_handle unsigned long long ITT_FORMAT lu const __itt_domain __itt_id __itt_string_handle __itt_metadata_type size_t void ITT_FORMAT p const __itt_domain __itt_id __itt_string_handle const wchar_t size_t ITT_FORMAT lu const __itt_domain __itt_id __itt_relation __itt_id ITT_FORMAT p const wchar_t int ITT_FORMAT __itt_group_mark d int
#define KMP_INTERNAL_MALLOC(sz)
#define KMP_INTERNAL_FREE(p)
#define KMP_DEBUG_ASSERT(cond)
char const * __kmp_env_blk_var(kmp_env_blk_t *block, char const *name)
void __kmp_env_free(char const **value)
static void ___kmp_env_blk_parse_string(kmp_env_blk_t *block, char const *env)
static void * allocate(size_t size)
static int ___kmp_env_var_cmp(kmp_env_var_t const *lhs, kmp_env_var_t const *rhs)
void __kmp_env_blk_sort(kmp_env_blk_t *block)
char * __kmp_env_get(char const *name)
int __kmp_env_exists(char const *name)
void __kmp_env_blk_init(kmp_env_blk_t *block, char const *bulk)
void __kmp_env_blk_free(kmp_env_blk_t *block)
void __kmp_env_set(char const *name, char const *value, int overwrite)
void __kmp_env_unset(char const *name)
struct __kmp_env_var kmp_env_var_t
void __kmp_fatal(kmp_msg_t message,...)
#define KMP_STRNCPY_S(dst, bsz, src, cnt)
#define KMP_MEMCPY_S(dst, bsz, src, cnt)
void __kmp_str_split(char *str, char delim, char **head, char **tail)
char * __kmp_str_format(char const *format,...)
char * __kmp_str_token(char *str, char const *delim, char **buf)
void __kmp_str_free(char **str)