1/* This file is automatically generated.  DO NOT EDIT! */
2/* Generated from: NetBSD: mknative-gcc,v 1.113 2021/04/11 01:44:14 mrg Exp  */
3/* Generated from: NetBSD: mknative.common,v 1.16 2018/04/15 15:13:37 christos Exp  */
4
5/* Copyright (C) 2005-2020 Free Software Foundation, Inc.
6   Contributed by Richard Henderson <rth@redhat.com>.
7
8   This file is part of the GNU Offloading and Multi Processing Library
9   (libgomp).
10
11   Libgomp is free software; you can redistribute it and/or modify it
12   under the terms of the GNU General Public License as published by
13   the Free Software Foundation; either version 3, or (at your option)
14   any later version.
15
16   Libgomp is distributed in the hope that it will be useful, but WITHOUT ANY
17   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
18   FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
19   more details.
20
21   Under Section 7 of GPL version 3, you are granted additional
22   permissions described in the GCC Runtime Library Exception, version
23   3.1, as published by the Free Software Foundation.
24
25   You should have received a copy of the GNU General Public License and
26   a copy of the GCC Runtime Library Exception along with this program;
27   see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
28   <http://www.gnu.org/licenses/>.  */
29
30#ifndef _OMP_H
31#define _OMP_H 1
32
33#ifndef _LIBGOMP_OMP_LOCK_DEFINED
34#define _LIBGOMP_OMP_LOCK_DEFINED 1
35/* These two structures get edited by the libgomp build process to
36   reflect the shape of the two types.  Their internals are private
37   to the library.  */
38
39typedef struct
40{
41  unsigned char _x[8]
42    __attribute__((__aligned__(8)));
43} omp_lock_t;
44
45typedef struct
46{
47  unsigned char _x[24]
48    __attribute__((__aligned__(8)));
49} omp_nest_lock_t;
50#endif
51
52typedef enum omp_sched_t
53{
54  omp_sched_static = 1,
55  omp_sched_dynamic = 2,
56  omp_sched_guided = 3,
57  omp_sched_auto = 4,
58  omp_sched_monotonic = 0x80000000U
59} omp_sched_t;
60
61typedef enum omp_proc_bind_t
62{
63  omp_proc_bind_false = 0,
64  omp_proc_bind_true = 1,
65  omp_proc_bind_master = 2,
66  omp_proc_bind_close = 3,
67  omp_proc_bind_spread = 4
68} omp_proc_bind_t;
69
70typedef enum omp_sync_hint_t
71{
72  omp_sync_hint_none = 0,
73  omp_lock_hint_none = omp_sync_hint_none,
74  omp_sync_hint_uncontended = 1,
75  omp_lock_hint_uncontended = omp_sync_hint_uncontended,
76  omp_sync_hint_contended = 2,
77  omp_lock_hint_contended = omp_sync_hint_contended,
78  omp_sync_hint_nonspeculative = 4,
79  omp_lock_hint_nonspeculative = omp_sync_hint_nonspeculative,
80  omp_sync_hint_speculative = 8,
81  omp_lock_hint_speculative = omp_sync_hint_speculative
82} omp_sync_hint_t;
83
84typedef omp_sync_hint_t omp_lock_hint_t;
85
86typedef struct __attribute__((__aligned__ (sizeof (void *)))) omp_depend_t
87{
88  char __omp_depend_t__[2 * sizeof (void *)];
89} omp_depend_t;
90
91typedef enum omp_pause_resource_t
92{
93  omp_pause_soft = 1,
94  omp_pause_hard = 2
95} omp_pause_resource_t;
96
97#ifdef __cplusplus
98extern "C" {
99# define __GOMP_NOTHROW throw ()
100#else
101# define __GOMP_NOTHROW __attribute__((__nothrow__))
102#endif
103
104extern void omp_set_num_threads (int) __GOMP_NOTHROW;
105extern int omp_get_num_threads (void) __GOMP_NOTHROW;
106extern int omp_get_max_threads (void) __GOMP_NOTHROW;
107extern int omp_get_thread_num (void) __GOMP_NOTHROW;
108extern int omp_get_num_procs (void) __GOMP_NOTHROW;
109
110extern int omp_in_parallel (void) __GOMP_NOTHROW;
111
112extern void omp_set_dynamic (int) __GOMP_NOTHROW;
113extern int omp_get_dynamic (void) __GOMP_NOTHROW;
114
115extern void omp_set_nested (int) __GOMP_NOTHROW;
116extern int omp_get_nested (void) __GOMP_NOTHROW;
117
118extern void omp_init_lock (omp_lock_t *) __GOMP_NOTHROW;
119extern void omp_init_lock_with_hint (omp_lock_t *, omp_sync_hint_t)
120  __GOMP_NOTHROW;
121extern void omp_destroy_lock (omp_lock_t *) __GOMP_NOTHROW;
122extern void omp_set_lock (omp_lock_t *) __GOMP_NOTHROW;
123extern void omp_unset_lock (omp_lock_t *) __GOMP_NOTHROW;
124extern int omp_test_lock (omp_lock_t *) __GOMP_NOTHROW;
125
126extern void omp_init_nest_lock (omp_nest_lock_t *) __GOMP_NOTHROW;
127extern void omp_init_nest_lock_with_hint (omp_nest_lock_t *, omp_sync_hint_t)
128  __GOMP_NOTHROW;
129extern void omp_destroy_nest_lock (omp_nest_lock_t *) __GOMP_NOTHROW;
130extern void omp_set_nest_lock (omp_nest_lock_t *) __GOMP_NOTHROW;
131extern void omp_unset_nest_lock (omp_nest_lock_t *) __GOMP_NOTHROW;
132extern int omp_test_nest_lock (omp_nest_lock_t *) __GOMP_NOTHROW;
133
134extern double omp_get_wtime (void) __GOMP_NOTHROW;
135extern double omp_get_wtick (void) __GOMP_NOTHROW;
136
137extern void omp_set_schedule (omp_sched_t, int) __GOMP_NOTHROW;
138extern void omp_get_schedule (omp_sched_t *, int *) __GOMP_NOTHROW;
139extern int omp_get_thread_limit (void) __GOMP_NOTHROW;
140extern void omp_set_max_active_levels (int) __GOMP_NOTHROW;
141extern int omp_get_max_active_levels (void) __GOMP_NOTHROW;
142extern int omp_get_level (void) __GOMP_NOTHROW;
143extern int omp_get_ancestor_thread_num (int) __GOMP_NOTHROW;
144extern int omp_get_team_size (int) __GOMP_NOTHROW;
145extern int omp_get_active_level (void) __GOMP_NOTHROW;
146
147extern int omp_in_final (void) __GOMP_NOTHROW;
148
149extern int omp_get_cancellation (void) __GOMP_NOTHROW;
150extern omp_proc_bind_t omp_get_proc_bind (void) __GOMP_NOTHROW;
151extern int omp_get_num_places (void) __GOMP_NOTHROW;
152extern int omp_get_place_num_procs (int) __GOMP_NOTHROW;
153extern void omp_get_place_proc_ids (int, int *) __GOMP_NOTHROW;
154extern int omp_get_place_num (void) __GOMP_NOTHROW;
155extern int omp_get_partition_num_places (void) __GOMP_NOTHROW;
156extern void omp_get_partition_place_nums (int *) __GOMP_NOTHROW;
157
158extern void omp_set_default_device (int) __GOMP_NOTHROW;
159extern int omp_get_default_device (void) __GOMP_NOTHROW;
160extern int omp_get_num_devices (void) __GOMP_NOTHROW;
161extern int omp_get_num_teams (void) __GOMP_NOTHROW;
162extern int omp_get_team_num (void) __GOMP_NOTHROW;
163
164extern int omp_is_initial_device (void) __GOMP_NOTHROW;
165extern int omp_get_initial_device (void) __GOMP_NOTHROW;
166extern int omp_get_max_task_priority (void) __GOMP_NOTHROW;
167
168extern void *omp_target_alloc (__SIZE_TYPE__, int) __GOMP_NOTHROW;
169extern void omp_target_free (void *, int) __GOMP_NOTHROW;
170extern int omp_target_is_present (const void *, int) __GOMP_NOTHROW;
171extern int omp_target_memcpy (void *, const void *, __SIZE_TYPE__,
172			      __SIZE_TYPE__, __SIZE_TYPE__, int, int)
173  __GOMP_NOTHROW;
174extern int omp_target_memcpy_rect (void *, const void *, __SIZE_TYPE__, int,
175				   const __SIZE_TYPE__ *,
176				   const __SIZE_TYPE__ *,
177				   const __SIZE_TYPE__ *,
178				   const __SIZE_TYPE__ *,
179				   const __SIZE_TYPE__ *, int, int)
180  __GOMP_NOTHROW;
181extern int omp_target_associate_ptr (const void *, const void *, __SIZE_TYPE__,
182				     __SIZE_TYPE__, int) __GOMP_NOTHROW;
183extern int omp_target_disassociate_ptr (const void *, int) __GOMP_NOTHROW;
184
185extern void omp_set_affinity_format (const char *) __GOMP_NOTHROW;
186extern __SIZE_TYPE__ omp_get_affinity_format (char *, __SIZE_TYPE__)
187  __GOMP_NOTHROW;
188extern void omp_display_affinity (const char *) __GOMP_NOTHROW;
189extern __SIZE_TYPE__ omp_capture_affinity (char *, __SIZE_TYPE__, const char *)
190  __GOMP_NOTHROW;
191
192extern int omp_pause_resource (omp_pause_resource_t, int) __GOMP_NOTHROW;
193extern int omp_pause_resource_all (omp_pause_resource_t) __GOMP_NOTHROW;
194
195#ifdef __cplusplus
196}
197#endif
198
199#endif /* _OMP_H */
200