Lines 46-51
Link Here
|
46 |
#include <sched.h> |
46 |
#include <sched.h> |
47 |
#include <time.h> |
47 |
#include <time.h> |
48 |
|
48 |
|
|
|
49 |
__NULLABILITY_PRAGMA_PUSH |
50 |
|
49 |
/* |
51 |
/* |
50 |
* Run-time invariant values: |
52 |
* Run-time invariant values: |
51 |
*/ |
53 |
*/ |
Lines 147-174
Link Here
|
147 |
*/ |
149 |
*/ |
148 |
__BEGIN_DECLS |
150 |
__BEGIN_DECLS |
149 |
int pthread_atfork(void (*)(void), void (*)(void), void (*)(void)); |
151 |
int pthread_atfork(void (*)(void), void (*)(void), void (*)(void)); |
150 |
int pthread_attr_destroy(pthread_attr_t *); |
152 |
int pthread_attr_destroy(pthread_attr_t * _Nonnull); |
151 |
int pthread_attr_getstack(const pthread_attr_t * __restrict, |
153 |
int pthread_attr_getstack( |
152 |
void ** __restrict, size_t * __restrict); |
154 |
const pthread_attr_t * _Nonnull __restrict, |
153 |
int pthread_attr_getstacksize(const pthread_attr_t *, size_t *); |
155 |
void ** _Nonnull __restrict, |
154 |
int pthread_attr_getguardsize(const pthread_attr_t *, size_t *); |
156 |
size_t * _Nonnull __restrict); |
|
|
157 |
int pthread_attr_getstacksize(const pthread_attr_t * _Nonnull, |
158 |
size_t * _Nonnull); |
159 |
int pthread_attr_getguardsize(const pthread_attr_t * _Nonnull, |
160 |
size_t * _Nonnull); |
155 |
int pthread_attr_getstackaddr(const pthread_attr_t *, void **); |
161 |
int pthread_attr_getstackaddr(const pthread_attr_t *, void **); |
156 |
int pthread_attr_getdetachstate(const pthread_attr_t *, int *); |
162 |
int pthread_attr_getdetachstate(const pthread_attr_t * _Nonnull, |
157 |
int pthread_attr_init(pthread_attr_t *); |
163 |
int * _Nonnull); |
158 |
int pthread_attr_setstacksize(pthread_attr_t *, size_t); |
164 |
int pthread_attr_init(pthread_attr_t * _Nonnull); |
159 |
int pthread_attr_setguardsize(pthread_attr_t *, size_t); |
165 |
int pthread_attr_setstacksize(pthread_attr_t * _Nonnull, size_t); |
160 |
int pthread_attr_setstack(pthread_attr_t *, void *, size_t); |
166 |
int pthread_attr_setguardsize(pthread_attr_t * _Nonnull, size_t); |
|
|
167 |
int pthread_attr_setstack(pthread_attr_t * _Nonnull, void *, |
168 |
size_t); |
161 |
int pthread_attr_setstackaddr(pthread_attr_t *, void *); |
169 |
int pthread_attr_setstackaddr(pthread_attr_t *, void *); |
162 |
int pthread_attr_setdetachstate(pthread_attr_t *, int); |
170 |
int pthread_attr_setdetachstate(pthread_attr_t * _Nonnull, int); |
163 |
int pthread_barrier_destroy(pthread_barrier_t *); |
171 |
int pthread_barrier_destroy(pthread_barrier_t * _Nonnull); |
164 |
int pthread_barrier_init(pthread_barrier_t *, |
172 |
int pthread_barrier_init(pthread_barrier_t * _Nonnull, |
165 |
const pthread_barrierattr_t *, unsigned); |
173 |
const pthread_barrierattr_t *, unsigned); |
166 |
int pthread_barrier_wait(pthread_barrier_t *); |
174 |
int pthread_barrier_wait(pthread_barrier_t * _Nonnull); |
167 |
int pthread_barrierattr_destroy(pthread_barrierattr_t *); |
175 |
int pthread_barrierattr_destroy(pthread_barrierattr_t * _Nonnull); |
168 |
int pthread_barrierattr_getpshared(const pthread_barrierattr_t *, |
176 |
int pthread_barrierattr_getpshared( |
169 |
int *); |
177 |
const pthread_barrierattr_t * _Nonnull, int * _Nonnull); |
170 |
int pthread_barrierattr_init(pthread_barrierattr_t *); |
178 |
int pthread_barrierattr_init(pthread_barrierattr_t * _Nonnull); |
171 |
int pthread_barrierattr_setpshared(pthread_barrierattr_t *, int); |
179 |
int pthread_barrierattr_setpshared(pthread_barrierattr_t * _Nonnull, |
|
|
180 |
int); |
172 |
|
181 |
|
173 |
#define pthread_cleanup_push(cleanup_routine, cleanup_arg) \ |
182 |
#define pthread_cleanup_push(cleanup_routine, cleanup_arg) \ |
174 |
{ \ |
183 |
{ \ |
Lines 183-282
Link Here
|
183 |
__pthread_cleanup_pop_imp(execute); \ |
192 |
__pthread_cleanup_pop_imp(execute); \ |
184 |
} |
193 |
} |
185 |
|
194 |
|
186 |
int pthread_condattr_destroy(pthread_condattr_t *); |
195 |
int pthread_condattr_destroy(pthread_condattr_t * _Nonnull); |
187 |
int pthread_condattr_getclock(const pthread_condattr_t *, |
196 |
int pthread_condattr_getclock(const pthread_condattr_t * _Nonnull, |
188 |
clockid_t *); |
197 |
clockid_t * _Nonnull); |
189 |
int pthread_condattr_getpshared(const pthread_condattr_t *, int *); |
198 |
int pthread_condattr_getpshared(const pthread_condattr_t * _Nonnull, |
190 |
int pthread_condattr_init(pthread_condattr_t *); |
199 |
int * _Nonnull); |
191 |
int pthread_condattr_setclock(pthread_condattr_t *, clockid_t); |
200 |
int pthread_condattr_init(pthread_condattr_t * _Nonnull); |
192 |
int pthread_condattr_setpshared(pthread_condattr_t *, int); |
201 |
int pthread_condattr_setclock(pthread_condattr_t * _Nonnull, |
193 |
int pthread_cond_broadcast(pthread_cond_t *); |
202 |
clockid_t); |
194 |
int pthread_cond_destroy(pthread_cond_t *); |
203 |
int pthread_condattr_setpshared(pthread_condattr_t * _Nonnull, int); |
195 |
int pthread_cond_init(pthread_cond_t *, |
204 |
int pthread_cond_broadcast(pthread_cond_t * _Nonnull); |
|
|
205 |
int pthread_cond_destroy(pthread_cond_t * _Nonnull); |
206 |
int pthread_cond_init(pthread_cond_t * _Nonnull, |
196 |
const pthread_condattr_t *); |
207 |
const pthread_condattr_t *); |
197 |
int pthread_cond_signal(pthread_cond_t *); |
208 |
int pthread_cond_signal(pthread_cond_t * _Nonnull); |
198 |
int pthread_cond_timedwait(pthread_cond_t *, |
209 |
int pthread_cond_timedwait(pthread_cond_t * _Nonnull, |
199 |
pthread_mutex_t *__mutex, const struct timespec *) |
210 |
pthread_mutex_t * _Nonnull __mutex, |
|
|
211 |
const struct timespec * _Nonnull) |
200 |
__requires_exclusive(*__mutex); |
212 |
__requires_exclusive(*__mutex); |
201 |
int pthread_cond_wait(pthread_cond_t *, pthread_mutex_t *__mutex) |
213 |
int pthread_cond_wait(pthread_cond_t * _Nonnull, |
|
|
214 |
pthread_mutex_t * _Nonnull __mutex) |
202 |
__requires_exclusive(*__mutex); |
215 |
__requires_exclusive(*__mutex); |
203 |
int pthread_create(pthread_t *, const pthread_attr_t *, |
216 |
int pthread_create(pthread_t * _Nonnull, const pthread_attr_t *, |
204 |
void *(*) (void *), void *); |
217 |
void *(* _Nonnull) (void *), void *); |
205 |
int pthread_detach(pthread_t); |
218 |
int pthread_detach(pthread_t); |
206 |
int pthread_equal(pthread_t, pthread_t); |
219 |
int pthread_equal(pthread_t, pthread_t); |
207 |
void pthread_exit(void *) __dead2; |
220 |
void pthread_exit(void *) __dead2; |
208 |
void *pthread_getspecific(pthread_key_t); |
221 |
void *pthread_getspecific(pthread_key_t); |
209 |
int pthread_getcpuclockid(pthread_t, clockid_t *); |
222 |
int pthread_getcpuclockid(pthread_t, clockid_t * _Nonnull); |
210 |
int pthread_join(pthread_t, void **); |
223 |
int pthread_join(pthread_t, void **); |
211 |
int pthread_key_create(pthread_key_t *, |
224 |
int pthread_key_create(pthread_key_t * _Nonnull, |
212 |
void (*) (void *)); |
225 |
void (*) (void *)); |
213 |
int pthread_key_delete(pthread_key_t); |
226 |
int pthread_key_delete(pthread_key_t); |
214 |
int pthread_mutexattr_init(pthread_mutexattr_t *); |
227 |
int pthread_mutexattr_init(pthread_mutexattr_t * _Nonnull); |
215 |
int pthread_mutexattr_destroy(pthread_mutexattr_t *); |
228 |
int pthread_mutexattr_destroy(pthread_mutexattr_t * _Nonnull); |
216 |
int pthread_mutexattr_getpshared(const pthread_mutexattr_t *, |
229 |
int pthread_mutexattr_getpshared( |
217 |
int *); |
230 |
const pthread_mutexattr_t * _Nonnull, int * _Nonnull); |
218 |
int pthread_mutexattr_gettype(pthread_mutexattr_t *, int *); |
231 |
int pthread_mutexattr_gettype(pthread_mutexattr_t * _Nonnull, |
219 |
int pthread_mutexattr_settype(pthread_mutexattr_t *, int); |
232 |
int * _Nonnull); |
220 |
int pthread_mutexattr_setpshared(pthread_mutexattr_t *, int); |
233 |
int pthread_mutexattr_settype(pthread_mutexattr_t * _Nonnull, int); |
221 |
int pthread_mutex_consistent(pthread_mutex_t *__mutex) |
234 |
int pthread_mutexattr_setpshared(pthread_mutexattr_t * _Nonnull, |
222 |
__nonnull(1) __requires_exclusive(*__mutex); |
235 |
int); |
223 |
int pthread_mutex_destroy(pthread_mutex_t *__mutex) |
236 |
int pthread_mutex_consistent(pthread_mutex_t * _Nonnull __mutex) |
|
|
237 |
__requires_exclusive(*__mutex); |
238 |
int pthread_mutex_destroy(pthread_mutex_t * _Nonnull __mutex) |
224 |
__requires_unlocked(*__mutex); |
239 |
__requires_unlocked(*__mutex); |
225 |
int pthread_mutex_init(pthread_mutex_t *__mutex, |
240 |
int pthread_mutex_init(pthread_mutex_t * _Nonnull __mutex, |
226 |
const pthread_mutexattr_t *) |
241 |
const pthread_mutexattr_t *) |
227 |
__requires_unlocked(*__mutex); |
242 |
__requires_unlocked(*__mutex); |
228 |
int pthread_mutex_lock(pthread_mutex_t *__mutex) |
243 |
int pthread_mutex_lock(pthread_mutex_t * _Nonnull __mutex) |
229 |
__locks_exclusive(*__mutex); |
244 |
__locks_exclusive(*__mutex); |
230 |
int pthread_mutex_trylock(pthread_mutex_t *__mutex) |
245 |
int pthread_mutex_trylock(pthread_mutex_t * _Nonnull __mutex) |
231 |
__trylocks_exclusive(0, *__mutex); |
246 |
__trylocks_exclusive(0, *__mutex); |
232 |
int pthread_mutex_timedlock(pthread_mutex_t *__mutex, |
247 |
int pthread_mutex_timedlock(pthread_mutex_t * _Nonnull __mutex, |
233 |
const struct timespec *) |
248 |
const struct timespec * _Nonnull) |
234 |
__trylocks_exclusive(0, *__mutex); |
249 |
__trylocks_exclusive(0, *__mutex); |
235 |
int pthread_mutex_unlock(pthread_mutex_t *__mutex) |
250 |
int pthread_mutex_unlock(pthread_mutex_t * _Nonnull __mutex) |
236 |
__unlocks(*__mutex); |
251 |
__unlocks(*__mutex); |
237 |
int pthread_once(pthread_once_t *, void (*) (void)); |
252 |
int pthread_once(pthread_once_t * _Nonnull, |
238 |
int pthread_rwlock_destroy(pthread_rwlock_t *__rwlock) |
253 |
void (* _Nonnull) (void)); |
|
|
254 |
int pthread_rwlock_destroy(pthread_rwlock_t * _Nonnull __rwlock) |
239 |
__requires_unlocked(*__rwlock); |
255 |
__requires_unlocked(*__rwlock); |
240 |
int pthread_rwlock_init(pthread_rwlock_t *__rwlock, |
256 |
int pthread_rwlock_init(pthread_rwlock_t * _Nonnull __rwlock, |
241 |
const pthread_rwlockattr_t *) |
257 |
const pthread_rwlockattr_t *) |
242 |
__requires_unlocked(*__rwlock); |
258 |
__requires_unlocked(*__rwlock); |
243 |
int pthread_rwlock_rdlock(pthread_rwlock_t *__rwlock) |
259 |
int pthread_rwlock_rdlock(pthread_rwlock_t * _Nonnull __rwlock) |
244 |
__locks_shared(*__rwlock); |
260 |
__locks_shared(*__rwlock); |
245 |
int pthread_rwlock_timedrdlock(pthread_rwlock_t *__rwlock, |
261 |
int pthread_rwlock_timedrdlock(pthread_rwlock_t * _Nonnull __rwlock, |
246 |
const struct timespec *) |
262 |
const struct timespec * _Nonnull) |
247 |
__trylocks_shared(0, *__rwlock); |
263 |
__trylocks_shared(0, *__rwlock); |
248 |
int pthread_rwlock_timedwrlock(pthread_rwlock_t *__rwlock, |
264 |
int pthread_rwlock_timedwrlock(pthread_rwlock_t * _Nonnull __rwlock, |
249 |
const struct timespec *) |
265 |
const struct timespec * _Nonnull) |
250 |
__trylocks_exclusive(0, *__rwlock); |
266 |
__trylocks_exclusive(0, *__rwlock); |
251 |
int pthread_rwlock_tryrdlock(pthread_rwlock_t *__rwlock) |
267 |
int pthread_rwlock_tryrdlock(pthread_rwlock_t * _Nonnull __rwlock) |
252 |
__trylocks_shared(0, *__rwlock); |
268 |
__trylocks_shared(0, *__rwlock); |
253 |
int pthread_rwlock_trywrlock(pthread_rwlock_t *__rwlock) |
269 |
int pthread_rwlock_trywrlock(pthread_rwlock_t * _Nonnull __rwlock) |
254 |
__trylocks_exclusive(0, *__rwlock); |
270 |
__trylocks_exclusive(0, *__rwlock); |
255 |
int pthread_rwlock_unlock(pthread_rwlock_t *__rwlock) |
271 |
int pthread_rwlock_unlock(pthread_rwlock_t * _Nonnull __rwlock) |
256 |
__unlocks(*__rwlock); |
272 |
__unlocks(*__rwlock); |
257 |
int pthread_rwlock_wrlock(pthread_rwlock_t *__rwlock) |
273 |
int pthread_rwlock_wrlock(pthread_rwlock_t * _Nonnull __rwlock) |
258 |
__locks_exclusive(*__rwlock); |
274 |
__locks_exclusive(*__rwlock); |
259 |
int pthread_rwlockattr_destroy(pthread_rwlockattr_t *); |
275 |
int pthread_rwlockattr_destroy(pthread_rwlockattr_t * _Nonnull); |
260 |
int pthread_rwlockattr_getkind_np(const pthread_rwlockattr_t *, |
276 |
int pthread_rwlockattr_getkind_np( |
261 |
int *); |
277 |
const pthread_rwlockattr_t * _Nonnull, int *); |
262 |
int pthread_rwlockattr_getpshared(const pthread_rwlockattr_t *, |
278 |
int pthread_rwlockattr_getpshared( |
263 |
int *); |
279 |
const pthread_rwlockattr_t * _Nonnull, int * _Nonnull); |
264 |
int pthread_rwlockattr_init(pthread_rwlockattr_t *); |
280 |
int pthread_rwlockattr_init(pthread_rwlockattr_t * _Nonnull); |
265 |
int pthread_rwlockattr_setkind_np(pthread_rwlockattr_t *, int); |
281 |
int pthread_rwlockattr_setkind_np(pthread_rwlockattr_t * _Nonnull, |
266 |
int pthread_rwlockattr_setpshared(pthread_rwlockattr_t *, int); |
282 |
int); |
|
|
283 |
int pthread_rwlockattr_setpshared(pthread_rwlockattr_t * _Nonnull, |
284 |
int); |
267 |
pthread_t pthread_self(void); |
285 |
pthread_t pthread_self(void); |
268 |
int pthread_setspecific(pthread_key_t, const void *); |
286 |
int pthread_setspecific(pthread_key_t, const void *); |
269 |
|
287 |
|
270 |
int pthread_spin_init(pthread_spinlock_t *__spin, int) |
288 |
int pthread_spin_init(pthread_spinlock_t * _Nonnull __spin, int) |
271 |
__requires_unlocked(*__spin); |
289 |
__requires_unlocked(*__spin); |
272 |
int pthread_spin_destroy(pthread_spinlock_t *__spin) |
290 |
int pthread_spin_destroy(pthread_spinlock_t * _Nonnull __spin) |
273 |
__requires_unlocked(*__spin); |
291 |
__requires_unlocked(*__spin); |
274 |
int pthread_spin_lock(pthread_spinlock_t *__spin) |
292 |
int pthread_spin_lock(pthread_spinlock_t * _Nonnull __spin) |
275 |
__locks_exclusive(*__spin); |
293 |
__locks_exclusive(*__spin); |
276 |
int pthread_spin_trylock(pthread_spinlock_t *__spin) |
294 |
int pthread_spin_trylock(pthread_spinlock_t * _Nonnull __spin) |
277 |
__trylocks_exclusive(0, *__spin); |
295 |
__trylocks_exclusive(0, *__spin); |
278 |
int pthread_spin_unlock(pthread_spinlock_t *__spin) |
296 |
int pthread_spin_unlock(pthread_spinlock_t * _Nonnull __spin) |
279 |
__unlocks(*__spin); |
297 |
__unlocks(*__spin); |
280 |
int pthread_cancel(pthread_t); |
298 |
int pthread_cancel(pthread_t); |
281 |
int pthread_setcancelstate(int, int *); |
299 |
int pthread_setcancelstate(int, int *); |
282 |
int pthread_setcanceltype(int, int *); |
300 |
int pthread_setcanceltype(int, int *); |
Lines 288-297
Link Here
|
288 |
void pthread_yield(void); |
306 |
void pthread_yield(void); |
289 |
#endif |
307 |
#endif |
290 |
|
308 |
|
291 |
int pthread_mutexattr_getprioceiling(pthread_mutexattr_t *, |
309 |
int pthread_mutexattr_getprioceiling(pthread_mutexattr_t *, int *); |
292 |
int *); |
310 |
int pthread_mutexattr_setprioceiling(pthread_mutexattr_t *, int); |
293 |
int pthread_mutexattr_setprioceiling(pthread_mutexattr_t *, |
|
|
294 |
int); |
295 |
int pthread_mutex_getprioceiling(pthread_mutex_t *, int *); |
311 |
int pthread_mutex_getprioceiling(pthread_mutex_t *, int *); |
296 |
int pthread_mutex_setprioceiling(pthread_mutex_t *, int, int *); |
312 |
int pthread_mutex_setprioceiling(pthread_mutex_t *, int, int *); |
297 |
|
313 |
|
Lines 298-322
Link Here
|
298 |
int pthread_mutexattr_getprotocol(pthread_mutexattr_t *, int *); |
314 |
int pthread_mutexattr_getprotocol(pthread_mutexattr_t *, int *); |
299 |
int pthread_mutexattr_setprotocol(pthread_mutexattr_t *, int); |
315 |
int pthread_mutexattr_setprotocol(pthread_mutexattr_t *, int); |
300 |
|
316 |
|
301 |
int pthread_mutexattr_getrobust(pthread_mutexattr_t *__restrict, |
317 |
int pthread_mutexattr_getrobust( |
302 |
int *__restrict) __nonnull_all; |
318 |
pthread_mutexattr_t * _Nonnull __restrict, |
303 |
int pthread_mutexattr_setrobust(pthread_mutexattr_t *, int) |
319 |
int * _Nonnull __restrict); |
304 |
__nonnull(1); |
320 |
int pthread_mutexattr_setrobust(pthread_mutexattr_t * _Nonnull, |
|
|
321 |
int); |
305 |
|
322 |
|
306 |
int pthread_attr_getinheritsched(const pthread_attr_t *, int *); |
323 |
int pthread_attr_getinheritsched(const pthread_attr_t *, int *); |
307 |
int pthread_attr_getschedparam(const pthread_attr_t *, |
324 |
int pthread_attr_getschedparam(const pthread_attr_t * _Nonnull, |
308 |
struct sched_param *); |
325 |
struct sched_param * _Nonnull); |
309 |
int pthread_attr_getschedpolicy(const pthread_attr_t *, int *); |
326 |
int pthread_attr_getschedpolicy(const pthread_attr_t * _Nonnull, |
310 |
int pthread_attr_getscope(const pthread_attr_t *, int *); |
327 |
int * _Nonnull); |
|
|
328 |
int pthread_attr_getscope(const pthread_attr_t * _Nonnull, |
329 |
int * _Nonnull); |
311 |
int pthread_attr_setinheritsched(pthread_attr_t *, int); |
330 |
int pthread_attr_setinheritsched(pthread_attr_t *, int); |
312 |
int pthread_attr_setschedparam(pthread_attr_t *, |
331 |
int pthread_attr_setschedparam(pthread_attr_t * _Nonnull, |
313 |
const struct sched_param *); |
332 |
const struct sched_param * _Nonnull); |
314 |
int pthread_attr_setschedpolicy(pthread_attr_t *, int); |
333 |
int pthread_attr_setschedpolicy(pthread_attr_t * _Nonnull, int); |
315 |
int pthread_attr_setscope(pthread_attr_t *, int); |
334 |
int pthread_attr_setscope(pthread_attr_t * _Nonnull, int); |
316 |
int pthread_getschedparam(pthread_t pthread, int *, |
335 |
int pthread_getschedparam(pthread_t pthread, int * _Nonnull, |
317 |
struct sched_param *); |
336 |
struct sched_param * _Nonnull); |
318 |
int pthread_setschedparam(pthread_t, int, |
337 |
int pthread_setschedparam(pthread_t, int, |
319 |
const struct sched_param *); |
338 |
const struct sched_param * _Nonnull); |
320 |
#if __XSI_VISIBLE |
339 |
#if __XSI_VISIBLE |
321 |
int pthread_getconcurrency(void); |
340 |
int pthread_getconcurrency(void); |
322 |
int pthread_setconcurrency(int); |
341 |
int pthread_setconcurrency(int); |
Lines 326-330
Link Here
|
326 |
struct _pthread_cleanup_info *); |
345 |
struct _pthread_cleanup_info *); |
327 |
void __pthread_cleanup_pop_imp(int); |
346 |
void __pthread_cleanup_pop_imp(int); |
328 |
__END_DECLS |
347 |
__END_DECLS |
|
|
348 |
__NULLABILITY_PRAGMA_POP |
329 |
|
349 |
|
330 |
#endif |
350 |
#endif /* _PTHREAD_H_ */ |