omp.h.var 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  1. /*
  2. * include/40/omp.h.var
  3. */
  4. //===----------------------------------------------------------------------===//
  5. //
  6. // The LLVM Compiler Infrastructure
  7. //
  8. // This file is dual licensed under the MIT and the University of Illinois Open
  9. // Source Licenses. See LICENSE.txt for details.
  10. //
  11. //===----------------------------------------------------------------------===//
  12. #ifndef __OMP_H
  13. # define __OMP_H
  14. # define KMP_VERSION_MAJOR @LIBOMP_VERSION_MAJOR@
  15. # define KMP_VERSION_MINOR @LIBOMP_VERSION_MINOR@
  16. # define KMP_VERSION_BUILD @LIBOMP_VERSION_BUILD@
  17. # define KMP_BUILD_DATE "@LIBOMP_BUILD_DATE@"
  18. # ifdef __cplusplus
  19. extern "C" {
  20. # endif
  21. # if defined(_WIN32)
  22. # define __KAI_KMPC_CONVENTION __cdecl
  23. # else
  24. # define __KAI_KMPC_CONVENTION
  25. # endif
  26. /* schedule kind constants */
  27. typedef enum omp_sched_t {
  28. omp_sched_static = 1,
  29. omp_sched_dynamic = 2,
  30. omp_sched_guided = 3,
  31. omp_sched_auto = 4
  32. } omp_sched_t;
  33. /* set API functions */
  34. extern void __KAI_KMPC_CONVENTION omp_set_num_threads (int);
  35. extern void __KAI_KMPC_CONVENTION omp_set_dynamic (int);
  36. extern void __KAI_KMPC_CONVENTION omp_set_nested (int);
  37. extern void __KAI_KMPC_CONVENTION omp_set_max_active_levels (int);
  38. extern void __KAI_KMPC_CONVENTION omp_set_schedule (omp_sched_t, int);
  39. /* query API functions */
  40. extern int __KAI_KMPC_CONVENTION omp_get_num_threads (void);
  41. extern int __KAI_KMPC_CONVENTION omp_get_dynamic (void);
  42. extern int __KAI_KMPC_CONVENTION omp_get_nested (void);
  43. extern int __KAI_KMPC_CONVENTION omp_get_max_threads (void);
  44. extern int __KAI_KMPC_CONVENTION omp_get_thread_num (void);
  45. extern int __KAI_KMPC_CONVENTION omp_get_num_procs (void);
  46. extern int __KAI_KMPC_CONVENTION omp_in_parallel (void);
  47. extern int __KAI_KMPC_CONVENTION omp_in_final (void);
  48. extern int __KAI_KMPC_CONVENTION omp_get_active_level (void);
  49. extern int __KAI_KMPC_CONVENTION omp_get_level (void);
  50. extern int __KAI_KMPC_CONVENTION omp_get_ancestor_thread_num (int);
  51. extern int __KAI_KMPC_CONVENTION omp_get_team_size (int);
  52. extern int __KAI_KMPC_CONVENTION omp_get_thread_limit (void);
  53. extern int __KAI_KMPC_CONVENTION omp_get_max_active_levels (void);
  54. extern void __KAI_KMPC_CONVENTION omp_get_schedule (omp_sched_t *, int *);
  55. /* lock API functions */
  56. typedef struct omp_lock_t {
  57. void * _lk;
  58. } omp_lock_t;
  59. extern void __KAI_KMPC_CONVENTION omp_init_lock (omp_lock_t *);
  60. extern void __KAI_KMPC_CONVENTION omp_set_lock (omp_lock_t *);
  61. extern void __KAI_KMPC_CONVENTION omp_unset_lock (omp_lock_t *);
  62. extern void __KAI_KMPC_CONVENTION omp_destroy_lock (omp_lock_t *);
  63. extern int __KAI_KMPC_CONVENTION omp_test_lock (omp_lock_t *);
  64. /* nested lock API functions */
  65. typedef struct omp_nest_lock_t {
  66. void * _lk;
  67. } omp_nest_lock_t;
  68. extern void __KAI_KMPC_CONVENTION omp_init_nest_lock (omp_nest_lock_t *);
  69. extern void __KAI_KMPC_CONVENTION omp_set_nest_lock (omp_nest_lock_t *);
  70. extern void __KAI_KMPC_CONVENTION omp_unset_nest_lock (omp_nest_lock_t *);
  71. extern void __KAI_KMPC_CONVENTION omp_destroy_nest_lock (omp_nest_lock_t *);
  72. extern int __KAI_KMPC_CONVENTION omp_test_nest_lock (omp_nest_lock_t *);
  73. /* time API functions */
  74. extern double __KAI_KMPC_CONVENTION omp_get_wtime (void);
  75. extern double __KAI_KMPC_CONVENTION omp_get_wtick (void);
  76. /* OpenMP 4.0 */
  77. extern int __KAI_KMPC_CONVENTION omp_get_default_device (void);
  78. extern void __KAI_KMPC_CONVENTION omp_set_default_device (int);
  79. extern int __KAI_KMPC_CONVENTION omp_is_initial_device (void);
  80. extern int __KAI_KMPC_CONVENTION omp_get_num_devices (void);
  81. extern int __KAI_KMPC_CONVENTION omp_get_num_teams (void);
  82. extern int __KAI_KMPC_CONVENTION omp_get_team_num (void);
  83. extern int __KAI_KMPC_CONVENTION omp_get_cancellation (void);
  84. # include <stdlib.h>
  85. /* kmp API functions */
  86. extern int __KAI_KMPC_CONVENTION kmp_get_stacksize (void);
  87. extern void __KAI_KMPC_CONVENTION kmp_set_stacksize (int);
  88. extern size_t __KAI_KMPC_CONVENTION kmp_get_stacksize_s (void);
  89. extern void __KAI_KMPC_CONVENTION kmp_set_stacksize_s (size_t);
  90. extern int __KAI_KMPC_CONVENTION kmp_get_blocktime (void);
  91. extern int __KAI_KMPC_CONVENTION kmp_get_library (void);
  92. extern void __KAI_KMPC_CONVENTION kmp_set_blocktime (int);
  93. extern void __KAI_KMPC_CONVENTION kmp_set_library (int);
  94. extern void __KAI_KMPC_CONVENTION kmp_set_library_serial (void);
  95. extern void __KAI_KMPC_CONVENTION kmp_set_library_turnaround (void);
  96. extern void __KAI_KMPC_CONVENTION kmp_set_library_throughput (void);
  97. extern void __KAI_KMPC_CONVENTION kmp_set_defaults (char const *);
  98. /* Intel affinity API */
  99. typedef void * kmp_affinity_mask_t;
  100. extern int __KAI_KMPC_CONVENTION kmp_set_affinity (kmp_affinity_mask_t *);
  101. extern int __KAI_KMPC_CONVENTION kmp_get_affinity (kmp_affinity_mask_t *);
  102. extern int __KAI_KMPC_CONVENTION kmp_get_affinity_max_proc (void);
  103. extern void __KAI_KMPC_CONVENTION kmp_create_affinity_mask (kmp_affinity_mask_t *);
  104. extern void __KAI_KMPC_CONVENTION kmp_destroy_affinity_mask (kmp_affinity_mask_t *);
  105. extern int __KAI_KMPC_CONVENTION kmp_set_affinity_mask_proc (int, kmp_affinity_mask_t *);
  106. extern int __KAI_KMPC_CONVENTION kmp_unset_affinity_mask_proc (int, kmp_affinity_mask_t *);
  107. extern int __KAI_KMPC_CONVENTION kmp_get_affinity_mask_proc (int, kmp_affinity_mask_t *);
  108. /* OpenMP 4.0 affinity API */
  109. typedef enum omp_proc_bind_t {
  110. omp_proc_bind_false = 0,
  111. omp_proc_bind_true = 1,
  112. omp_proc_bind_master = 2,
  113. omp_proc_bind_close = 3,
  114. omp_proc_bind_spread = 4
  115. } omp_proc_bind_t;
  116. extern omp_proc_bind_t __KAI_KMPC_CONVENTION omp_get_proc_bind (void);
  117. extern void * __KAI_KMPC_CONVENTION kmp_malloc (size_t);
  118. extern void * __KAI_KMPC_CONVENTION kmp_calloc (size_t, size_t);
  119. extern void * __KAI_KMPC_CONVENTION kmp_realloc (void *, size_t);
  120. extern void __KAI_KMPC_CONVENTION kmp_free (void *);
  121. extern void __KAI_KMPC_CONVENTION kmp_set_warnings_on(void);
  122. extern void __KAI_KMPC_CONVENTION kmp_set_warnings_off(void);
  123. # undef __KAI_KMPC_CONVENTION
  124. /* Warning:
  125. The following typedefs are not standard, deprecated and will be removed in a future release.
  126. */
  127. typedef int omp_int_t;
  128. typedef double omp_wtime_t;
  129. # ifdef __cplusplus
  130. }
  131. # endif
  132. #endif /* __OMP_H */