annotate openmp/runtime/src/kmp_environment.h @ 165:597b3f1c2c93

fix call createTailCallEliminationPass
author anatofuz
date Tue, 24 Mar 2020 15:30:52 +0900
parents 1d019706d866
children 0572611fdcc8
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
150
anatofuz
parents:
diff changeset
1 /*
anatofuz
parents:
diff changeset
2 * kmp_environment.h -- Handle environment varoiables OS-independently.
anatofuz
parents:
diff changeset
3 */
anatofuz
parents:
diff changeset
4
anatofuz
parents:
diff changeset
5 //===----------------------------------------------------------------------===//
anatofuz
parents:
diff changeset
6 //
anatofuz
parents:
diff changeset
7 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
anatofuz
parents:
diff changeset
8 // See https://llvm.org/LICENSE.txt for license information.
anatofuz
parents:
diff changeset
9 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
anatofuz
parents:
diff changeset
10 //
anatofuz
parents:
diff changeset
11 //===----------------------------------------------------------------------===//
anatofuz
parents:
diff changeset
12
anatofuz
parents:
diff changeset
13 #ifndef KMP_ENVIRONMENT_H
anatofuz
parents:
diff changeset
14 #define KMP_ENVIRONMENT_H
anatofuz
parents:
diff changeset
15
anatofuz
parents:
diff changeset
16 #ifdef __cplusplus
anatofuz
parents:
diff changeset
17 extern "C" {
anatofuz
parents:
diff changeset
18 #endif
anatofuz
parents:
diff changeset
19
anatofuz
parents:
diff changeset
20 // Return a copy of the value of environment variable or NULL if the variable
anatofuz
parents:
diff changeset
21 // does not exist.
anatofuz
parents:
diff changeset
22 // *Note*: Returned pointed *must* be freed after use with __kmp_env_free().
anatofuz
parents:
diff changeset
23 char *__kmp_env_get(char const *name);
anatofuz
parents:
diff changeset
24 void __kmp_env_free(char const **value);
anatofuz
parents:
diff changeset
25
anatofuz
parents:
diff changeset
26 // Return 1 if the environment variable exists or 0 if does not exist.
anatofuz
parents:
diff changeset
27 int __kmp_env_exists(char const *name);
anatofuz
parents:
diff changeset
28
anatofuz
parents:
diff changeset
29 // Set the environment variable.
anatofuz
parents:
diff changeset
30 void __kmp_env_set(char const *name, char const *value, int overwrite);
anatofuz
parents:
diff changeset
31
anatofuz
parents:
diff changeset
32 // Unset (remove) environment variable.
anatofuz
parents:
diff changeset
33 void __kmp_env_unset(char const *name);
anatofuz
parents:
diff changeset
34
anatofuz
parents:
diff changeset
35 // -----------------------------------------------------------------------------
anatofuz
parents:
diff changeset
36 // Working with environment blocks.
anatofuz
parents:
diff changeset
37
anatofuz
parents:
diff changeset
38 /* kmp_env_blk_t is read-only collection of environment variables (or
anatofuz
parents:
diff changeset
39 environment-like). Usage:
anatofuz
parents:
diff changeset
40
anatofuz
parents:
diff changeset
41 kmp_env_blk_t block;
anatofuz
parents:
diff changeset
42 __kmp_env_blk_init( & block, NULL ); // Initialize block from process
anatofuz
parents:
diff changeset
43 // environment.
anatofuz
parents:
diff changeset
44 // or
anatofuz
parents:
diff changeset
45 __kmp_env_blk_init( & block, "KMP_WARNING=1|KMP_AFFINITY=none" ); // from string
anatofuz
parents:
diff changeset
46 __kmp_env_blk_sort( & block ); // Optionally, sort list.
anatofuz
parents:
diff changeset
47 for ( i = 0; i < block.count; ++ i ) {
anatofuz
parents:
diff changeset
48 // Process block.vars[ i ].name and block.vars[ i ].value...
anatofuz
parents:
diff changeset
49 }
anatofuz
parents:
diff changeset
50 __kmp_env_block_free( & block );
anatofuz
parents:
diff changeset
51 */
anatofuz
parents:
diff changeset
52
anatofuz
parents:
diff changeset
53 struct __kmp_env_var {
anatofuz
parents:
diff changeset
54 char *name;
anatofuz
parents:
diff changeset
55 char *value;
anatofuz
parents:
diff changeset
56 };
anatofuz
parents:
diff changeset
57 typedef struct __kmp_env_var kmp_env_var_t;
anatofuz
parents:
diff changeset
58
anatofuz
parents:
diff changeset
59 struct __kmp_env_blk {
anatofuz
parents:
diff changeset
60 char *bulk;
anatofuz
parents:
diff changeset
61 kmp_env_var_t *vars;
anatofuz
parents:
diff changeset
62 int count;
anatofuz
parents:
diff changeset
63 };
anatofuz
parents:
diff changeset
64 typedef struct __kmp_env_blk kmp_env_blk_t;
anatofuz
parents:
diff changeset
65
anatofuz
parents:
diff changeset
66 void __kmp_env_blk_init(kmp_env_blk_t *block, char const *bulk);
anatofuz
parents:
diff changeset
67 void __kmp_env_blk_free(kmp_env_blk_t *block);
anatofuz
parents:
diff changeset
68 void __kmp_env_blk_sort(kmp_env_blk_t *block);
anatofuz
parents:
diff changeset
69 char const *__kmp_env_blk_var(kmp_env_blk_t *block, char const *name);
anatofuz
parents:
diff changeset
70
anatofuz
parents:
diff changeset
71 #ifdef __cplusplus
anatofuz
parents:
diff changeset
72 }
anatofuz
parents:
diff changeset
73 #endif
anatofuz
parents:
diff changeset
74
anatofuz
parents:
diff changeset
75 #endif // KMP_ENVIRONMENT_H
anatofuz
parents:
diff changeset
76
anatofuz
parents:
diff changeset
77 // end of file //