VSF Documented
pthread.h
Go to the documentation of this file.
1#ifndef __VSF_LINUX_PTHREAD_H__
2#define __VSF_LINUX_PTHREAD_H__
3
5#include "vsf.h"
6
7#if VSF_LINUX_CFG_RELATIVE_PATH == ENABLED && VSF_LINUX_USE_SIMPLE_TIME == ENABLED
8# include "./simple_libc/time.h"
9#else
10# include <time.h>
11#endif
12#if VSF_LINUX_CFG_RELATIVE_PATH == ENABLED
13# include "./sched.h"
14#else
15# include <sched.h>
16#endif
17
18#ifdef __cplusplus
19extern "C" {
20#endif
21
22#if VSF_LINUX_CFG_WRAPPER == ENABLED
23#define pthread_atfork VSF_LINUX_WRAPPER(pthread_atfork)
24#define pthread_self VSF_LINUX_WRAPPER(pthread_self)
25#define pthread_equal VSF_LINUX_WRAPPER(pthread_equal)
26#define pthread_create VSF_LINUX_WRAPPER(pthread_create)
27#define pthread_join VSF_LINUX_WRAPPER(pthread_join)
28#define pthread_detach VSF_LINUX_WRAPPER(pthread_detach)
29#define pthread_exit VSF_LINUX_WRAPPER(pthread_exit)
30#define pthread_cancel VSF_LINUX_WRAPPER(pthread_cancel)
31#define pthread_kill VSF_LINUX_WRAPPER(pthread_kill)
32#define pthread_once VSF_LINUX_WRAPPER(pthread_once)
33#define pthread_testcancel VSF_LINUX_WRAPPER(pthread_testcancel)
34#define pthread_setcancelstate VSF_LINUX_WRAPPER(pthread_setcancelstate)
35#define pthread_setcanceltype VSF_LINUX_WRAPPER(pthread_setcanceltype)
36#define pthread_setschedparam VSF_LINUX_WRAPPER(pthread_setschedparam)
37#define pthread_getschedparam VSF_LINUX_WRAPPER(pthread_getschedparam)
38#define pthread_cleanup_push VSF_LINUX_WRAPPER(pthread_cleanup_push)
39#define pthread_cleanup_pop VSF_LINUX_WRAPPER(pthread_cleanup_pop)
40#define pthread_attr_init VSF_LINUX_WRAPPER(pthread_attr_init)
41#define pthread_attr_destroy VSF_LINUX_WRAPPER(pthread_attr_destroy)
42#define pthread_attr_setstack VSF_LINUX_WRAPPER(pthread_attr_setstack)
43#define pthread_attr_getstack VSF_LINUX_WRAPPER(pthread_attr_getstack)
44#define pthread_attr_setstackaddr VSF_LINUX_WRAPPER(pthread_attr_setstackaddr)
45#define pthread_attr_getstackaddr VSF_LINUX_WRAPPER(pthread_attr_getstackaddr)
46#define pthread_attr_setstacksize VSF_LINUX_WRAPPER(pthread_attr_setstacksize)
47#define pthread_attr_getstacksize VSF_LINUX_WRAPPER(pthread_attr_getstacksize)
48#define pthread_attr_setguardsize VSF_LINUX_WRAPPER(pthread_attr_setguardsize)
49#define pthread_attr_getguardsize VSF_LINUX_WRAPPER(pthread_attr_getguardsize)
50#define pthread_attr_setdetachstate VSF_LINUX_WRAPPER(pthread_attr_setdetachstate)
51#define pthread_attr_getdetachstate VSF_LINUX_WRAPPER(pthread_attr_getdetachstate)
52#define pthread_attr_setinheritsched VSF_LINUX_WRAPPER(pthread_attr_setinheritsched)
53#define pthread_attr_getinheritsched VSF_LINUX_WRAPPER(pthread_attr_getinheritsched)
54#define pthread_attr_setschedparam VSF_LINUX_WRAPPER(pthread_attr_setschedparam)
55#define pthread_attr_getschedparam VSF_LINUX_WRAPPER(pthread_attr_getschedparam)
56#define pthread_attr_setschedpolicy VSF_LINUX_WRAPPER(pthread_attr_setschedpolicy)
57#define pthread_attr_getschedpolicy VSF_LINUX_WRAPPER(pthread_attr_getschedpolicy)
58#define pthread_attr_setscope VSF_LINUX_WRAPPER(pthread_attr_setscope)
59#define pthread_attr_getscope VSF_LINUX_WRAPPER(pthread_attr_getscope)
60
61#define pthread_key_create VSF_LINUX_WRAPPER(pthread_key_create)
62#define pthread_key_delete VSF_LINUX_WRAPPER(pthread_key_delete)
63#define pthread_setspecific VSF_LINUX_WRAPPER(pthread_setspecific)
64#define pthread_getspecific VSF_LINUX_WRAPPER(pthread_getspecific)
65
66#define pthread_mutex_init VSF_LINUX_WRAPPER(pthread_mutex_init)
67#define pthread_mutex_destroy VSF_LINUX_WRAPPER(pthread_mutex_destroy)
68#define pthread_mutex_lock VSF_LINUX_WRAPPER(pthread_mutex_lock)
69#define pthread_mutex_trylock VSF_LINUX_WRAPPER(pthread_mutex_trylock)
70#define pthread_mutex_unlock VSF_LINUX_WRAPPER(pthread_mutex_unlock)
71#define pthread_mutexattr_init VSF_LINUX_WRAPPER(pthread_mutexattr_init)
72#define pthread_mutexattr_destroy VSF_LINUX_WRAPPER(pthread_mutexattr_destroy)
73#define pthread_mutexattr_setpshared VSF_LINUX_WRAPPER(pthread_mutexattr_setpshared)
74#define pthread_mutexattr_getpshared VSF_LINUX_WRAPPER(pthread_mutexattr_getpshared)
75#define pthread_mutexattr_settype VSF_LINUX_WRAPPER(pthread_mutexattr_settype)
76#define pthread_mutexattr_gettype VSF_LINUX_WRAPPER(pthread_mutexattr_gettype)
77
78#define pthread_cond_init VSF_LINUX_WRAPPER(pthread_cond_init)
79#define pthread_cond_destroy VSF_LINUX_WRAPPER(pthread_cond_destroy)
80#define pthread_cond_signal VSF_LINUX_WRAPPER(pthread_cond_signal)
81#define pthread_cond_broadcast VSF_LINUX_WRAPPER(pthread_cond_broadcast)
82#define pthread_cond_wait VSF_LINUX_WRAPPER(pthread_cond_wait)
83#define pthread_cond_timedwait VSF_LINUX_WRAPPER(pthread_cond_timedwait)
84#define pthread_condattr_init VSF_LINUX_WRAPPER(pthread_condattr_init)
85#define pthread_condattr_destroy VSF_LINUX_WRAPPER(pthread_condattr_destroy)
86#define pthread_condattr_setpshared VSF_LINUX_WRAPPER(pthread_condattr_setpshared)
87#define pthread_condattr_getpshared VSF_LINUX_WRAPPER(pthread_condattr_getpshared)
88#define pthread_condattr_setclock VSF_LINUX_WRAPPER(pthread_condattr_setclock)
89#define pthread_condattr_getclock VSF_LINUX_WRAPPER(pthread_condattr_getclock)
90
91#define pthread_rwlock_init VSF_LINUX_WRAPPER(pthread_rwlock_init)
92#define pthread_rwlock_destroy VSF_LINUX_WRAPPER(pthread_rwlock_destroy)
93#define pthread_rwlock_rdlock VSF_LINUX_WRAPPER(pthread_rwlock_rdlock)
94#define pthread_rwlock_tryrdlock VSF_LINUX_WRAPPER(pthread_rwlock_tryrdlock)
95#define pthread_rwlock_timedrdlock VSF_LINUX_WRAPPER(pthread_rwlock_timedrdlock)
96#define pthread_rwlock_wrlock VSF_LINUX_WRAPPER(pthread_rwlock_wrlock)
97#define pthread_rwlock_trywrlock VSF_LINUX_WRAPPER(pthread_rwlock_trywrlock)
98#define pthread_rwlock_timedwrlock VSF_LINUX_WRAPPER(pthread_rwlock_timedwrlock)
99#define pthread_rwlock_unlock VSF_LINUX_WRAPPER(pthread_rwlock_unlock)
100
101#define pthread_barrier_init VSF_LINUX_WRAPPER(pthread_barrier_init)
102#define pthread_barrier_destroy VSF_LINUX_WRAPPER(pthread_barrier_destroy)
103#define pthread_barrier_wait VSF_LINUX_WRAPPER(pthread_barrier_wait)
104#define pthread_barrierattr_init VSF_LINUX_WRAPPER(pthread_barrierattr_init)
105#define pthread_barrierattr_destroy VSF_LINUX_WRAPPER(pthread_barrierattr_destroy)
106#define pthread_barrierattr_getpshared VSF_LINUX_WRAPPER(pthread_barrierattr_getpshared)
107#define pthread_barrierattr_setpshared VSF_LINUX_WRAPPER(pthread_barrierattr_setpshared)
108
109#define pthread_setname_np VSF_LINUX_WRAPPER(pthread_setname_np)
110#define pthread_getname_np VSF_LINUX_WRAPPER(pthread_getname_np)
111#endif
112
113// to use PTHREAD_MUTEX_INITIALIZER, __VSF_EDA_CLASS_INHERIT__ is needed or ooc is disabled
114#if __IS_COMPILER_IAR__
115#define PTHREAD_MUTEX_INITIALIZER { \
116 .use_as__vsf_mutex_t.use_as__vsf_sync_t.max_union.max_value = 1 | VSF_SYNC_AUTO_RST,\
117 .use_as__vsf_mutex_t.use_as__vsf_sync_t.cur_union.bits.cur = 1 | VSF_SYNC_HAS_OWNER,\
118 }
119#define PTHREAD_COND_INITIALIZER { \
120 .max_union.max_value = 1 | VSF_SYNC_AUTO_RST,\
121 }
122#else
123#define PTHREAD_MUTEX_INITIALIZER (pthread_mutex_t) { \
124 .use_as__vsf_mutex_t.use_as__vsf_sync_t.max_union.max_value = 1 | VSF_SYNC_AUTO_RST,\
125 .use_as__vsf_mutex_t.use_as__vsf_sync_t.cur_union.bits.cur = 1 | VSF_SYNC_HAS_OWNER,\
126 }
127#define PTHREAD_COND_INITIALIZER (pthread_cond_t) { \
128 .max_union.max_value = 1 | VSF_SYNC_AUTO_RST,\
129 }
130#endif
131
132
133typedef int pthread_key_t;
134
135enum {
136 // pshared
138#define PTHREAD_PROCESS_SHARED PTHREAD_PROCESS_SHARED
140#define PTHREAD_PROCESS_PRIVATE PTHREAD_PROCESS_PRIVATE
141
143#define PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_JOINABLE
145#define PTHREAD_CREATE_DETACHED PTHREAD_CREATE_DETACHED
146
147 // mutex
152
153 // cond
154};
155typedef struct {
156 int attr;
158typedef struct pthread_mutex_t {
159 implement(vsf_mutex_t)
160 int attr;
163
165typedef struct {
166 int attr;
169
170#define PTHREAD_RWLOCK_INITIALIZER { 0 }
171typedef struct pthread_rwlock_t {
181typedef struct {
182 int attr;
184
185typedef struct {
186 int attr;
188typedef struct {
191 unsigned threshold;
192 unsigned in;
193 unsigned out;
195#define PTHREAD_BARRIER_SERIAL_THREAD (-2)
196
197typedef int pthread_t;
198typedef struct pthread_once_t {
202#if __IS_COMPILER_IAR__
203#define PTHREAD_ONCE_INIT { \
204 .mutex.max_union.max_value = 1 | VSF_SYNC_AUTO_RST,\
205 .mutex.cur_union.cur_value = 1 | VSF_SYNC_HAS_OWNER,\
206 .is_inited = false, \
207 }
208#else
209#define PTHREAD_ONCE_INIT (pthread_once_t) { \
210 .mutex.use_as__vsf_mutex_t.use_as__vsf_sync_t.max_union.max_value = 1 | VSF_SYNC_AUTO_RST,\
211 .mutex.use_as__vsf_mutex_t.use_as__vsf_sync_t.cur_union.cur_value = 1 | VSF_SYNC_HAS_OWNER,\
212 .is_inited = false, \
213 }
214#endif
215typedef struct {
218 struct sched_param schedparam;
220 int scope;
221 size_t guardsize;
223 size_t stacksize;
225
226enum {
229};
230enum {
233};
234
235#ifndef PTHREAD_STACK_MIN
236# define PTHREAD_STACK_MIN 1024
237#endif
238
239#if VSF_LINUX_APPLET_USE_PTHREAD == ENABLED
242
247
259
272
282
300
321
329
333# ifndef __VSF_APPLET__
335# endif
336#endif
337
338#if defined(__VSF_APPLET__) && (defined(__VSF_APPLET_LIB__) || defined(__VSF_APPLET_LINUX_PTHREAD_LIB__))\
339 && VSF_APPLET_CFG_ABI_PATCH != ENABLED && VSF_LINUX_APPLET_USE_PTHREAD == ENABLED
340
341#ifndef VSF_LINUX_APPLET_PTHREAD_VPLT
342# if VSF_LINUX_USE_APPLET == ENABLED
343# define VSF_LINUX_APPLET_PTHREAD_VPLT \
344 ((vsf_linux_pthread_vplt_t *)(VSF_LINUX_APPLET_VPLT->pthread_vplt))
345# else
346# define VSF_LINUX_APPLET_PTHREAD_VPLT \
347 ((vsf_linux_pthread_vplt_t *)vsf_vplt((void *)0))
348# endif
349#endif
350
351#define VSF_LINUX_APPLET_PTHREAD_ENTRY(__NAME) \
352 VSF_APPLET_VPLT_ENTRY_FUNC_ENTRY(VSF_LINUX_APPLET_PTHREAD_VPLT, __NAME)
353#define VSF_LINUX_APPLET_PTHREAD_IMP(...) \
354 VSF_APPLET_VPLT_ENTRY_FUNC_IMP(VSF_LINUX_APPLET_PTHREAD_VPLT, __VA_ARGS__)
355
356VSF_LINUX_APPLET_PTHREAD_IMP(pthread_key_create, int, pthread_key_t *key, void (*destructor)(void*)) {
358 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_key_create)(key, destructor);
359}
360VSF_LINUX_APPLET_PTHREAD_IMP(pthread_key_delete, int, pthread_key_t key) {
362 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_key_delete)(key);
363}
364VSF_LINUX_APPLET_PTHREAD_IMP(pthread_setspecific, int, pthread_key_t key, const void *value) {
366 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_setspecific)(key, value);
367}
368VSF_LINUX_APPLET_PTHREAD_IMP(pthread_getspecific, void *, pthread_key_t key) {
370 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_getspecific)(key);
371}
372VSF_LINUX_APPLET_PTHREAD_IMP(pthread_mutex_init, int, pthread_mutex_t *mutex, const pthread_mutexattr_t *mattr) {
374 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_mutex_init)(mutex, mattr);
375}
376VSF_LINUX_APPLET_PTHREAD_IMP(pthread_mutex_destroy, int, pthread_mutex_t *mutex) {
378 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_mutex_destroy)(mutex);
379}
380VSF_LINUX_APPLET_PTHREAD_IMP(pthread_mutex_lock, int, pthread_mutex_t *mutex) {
382 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_mutex_lock)(mutex);
383}
384VSF_LINUX_APPLET_PTHREAD_IMP(pthread_mutex_trylock, int, pthread_mutex_t *mutex) {
386 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_mutex_trylock)(mutex);
387}
388VSF_LINUX_APPLET_PTHREAD_IMP(pthread_mutex_unlock, int, pthread_mutex_t *mutex) {
390 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_mutex_unlock)(mutex);
391}
392VSF_LINUX_APPLET_PTHREAD_IMP(pthread_mutexattr_init, int, pthread_mutexattr_t *mattr) {
394 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_mutexattr_init)(mattr);
395}
396VSF_LINUX_APPLET_PTHREAD_IMP(pthread_mutexattr_destroy, int, pthread_mutexattr_t *mattr) {
398 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_mutexattr_destroy)(mattr);
399}
400VSF_LINUX_APPLET_PTHREAD_IMP(pthread_mutexattr_setpshared, int, pthread_mutexattr_t *mattr, int pshared) {
402 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_mutexattr_setpshared)(mattr, pshared);
403}
404VSF_LINUX_APPLET_PTHREAD_IMP(pthread_mutexattr_getpshared, int, pthread_mutexattr_t *mattr, int *pshared) {
406 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_mutexattr_getpshared)(mattr, pshared);
407}
408VSF_LINUX_APPLET_PTHREAD_IMP(pthread_mutexattr_settype, int, pthread_mutexattr_t *mattr , int type) {
410 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_mutexattr_settype)(mattr, type);
411}
412VSF_LINUX_APPLET_PTHREAD_IMP(pthread_mutexattr_gettype, int, pthread_mutexattr_t *mattr , int *type) {
414 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_mutexattr_gettype)(mattr, type);
415}
416VSF_LINUX_APPLET_PTHREAD_IMP(pthread_cond_init, int, pthread_cond_t *cond, const pthread_condattr_t *cattr) {
418 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_cond_init)(cond, cattr);
419}
420VSF_LINUX_APPLET_PTHREAD_IMP(pthread_cond_destroy, int, pthread_cond_t *cond) {
422 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_cond_destroy)(cond);
423}
424VSF_LINUX_APPLET_PTHREAD_IMP(pthread_cond_signal, int, pthread_cond_t *cond) {
426 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_cond_signal)(cond);
427}
428VSF_LINUX_APPLET_PTHREAD_IMP(pthread_cond_broadcast, int, pthread_cond_t *cond) {
430 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_cond_broadcast)(cond);
431}
432VSF_LINUX_APPLET_PTHREAD_IMP(pthread_cond_wait, int, pthread_cond_t *cond, pthread_mutex_t *mutex) {
434 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_cond_wait)(cond, mutex);
435}
436VSF_LINUX_APPLET_PTHREAD_IMP(pthread_cond_timedwait, int, pthread_cond_t *cond, pthread_mutex_t *mutex, const struct timespec *abstime) {
438 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_cond_timedwait)(cond, mutex, abstime);
439}
440VSF_LINUX_APPLET_PTHREAD_IMP(pthread_condattr_init, int, pthread_condattr_t *cattr) {
442 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_condattr_init)(cattr);
443}
444VSF_LINUX_APPLET_PTHREAD_IMP(pthread_condattr_destroy, int, pthread_condattr_t *cattr) {
446 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_condattr_destroy)(cattr);
447}
448VSF_LINUX_APPLET_PTHREAD_IMP(pthread_condattr_setpshared, int, pthread_condattr_t *cattr, int pshared) {
450 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_condattr_setpshared)(cattr, pshared);
451}
452VSF_LINUX_APPLET_PTHREAD_IMP(pthread_condattr_getpshared, int, pthread_condattr_t *cattr, int *pshared) {
454 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_condattr_getpshared)(cattr, pshared);
455}
456VSF_LINUX_APPLET_PTHREAD_IMP(pthread_condattr_getclock, int, const pthread_condattr_t *cattr, clockid_t *clockid) {
458 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_condattr_getclock)(cattr, clockid);
459}
460VSF_LINUX_APPLET_PTHREAD_IMP(pthread_condattr_setclock, int, pthread_condattr_t *cattr, clockid_t clockid) {
462 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_condattr_setclock)(cattr, clockid);
463}
464VSF_LINUX_APPLET_PTHREAD_IMP(pthread_rwlock_init, int, pthread_rwlock_t *rwlock, const pthread_rwlockattr_t *attr) {
466 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_rwlock_init)(rwlock, attr);
467}
468VSF_LINUX_APPLET_PTHREAD_IMP(pthread_rwlock_destroy, int, pthread_rwlock_t *rwlock) {
470 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_rwlock_destroy)(rwlock);
471}
472VSF_LINUX_APPLET_PTHREAD_IMP(pthread_rwlock_rdlock, int, pthread_rwlock_t *rwlock) {
474 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_rwlock_rdlock)(rwlock);
475}
476VSF_LINUX_APPLET_PTHREAD_IMP(pthread_rwlock_tryrdlock, int, pthread_rwlock_t *rwlock) {
478 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_rwlock_tryrdlock)(rwlock);
479}
480VSF_LINUX_APPLET_PTHREAD_IMP(pthread_rwlock_timedrdlock, int, pthread_rwlock_t *rwlock, const struct timespec *abstime) {
482 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_rwlock_timedrdlock)(rwlock, abstime);
483}
484VSF_LINUX_APPLET_PTHREAD_IMP(pthread_rwlock_wrlock, int, pthread_rwlock_t *rwlock) {
486 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_rwlock_wrlock)(rwlock);
487}
488VSF_LINUX_APPLET_PTHREAD_IMP(pthread_rwlock_trywrlock, int, pthread_rwlock_t *rwlock) {
490 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_rwlock_trywrlock)(rwlock);
491}
492VSF_LINUX_APPLET_PTHREAD_IMP(pthread_rwlock_timedwrlock, int, pthread_rwlock_t *rwlock, const struct timespec *abstime) {
494 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_rwlock_timedwrlock)(rwlock, abstime);
495}
496VSF_LINUX_APPLET_PTHREAD_IMP(pthread_rwlock_unlock, int, pthread_rwlock_t *rwlock) {
498 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_rwlock_unlock)(rwlock);
499}
500VSF_LINUX_APPLET_PTHREAD_IMP(pthread_atfork, int, void (*prepare)(void), void (*parent)(void), void (*child)(void)) {
502 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_atfork)(prepare, parent, child);
503}
504VSF_LINUX_APPLET_PTHREAD_IMP(pthread_self, pthread_t, void) {
506 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_self)();
507}
508VSF_LINUX_APPLET_PTHREAD_IMP(pthread_equal, int, pthread_t t1, pthread_t t2) {
510 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_equal)(t1, t2);
511}
512VSF_LINUX_APPLET_PTHREAD_IMP(pthread_create, int, pthread_t *tidp, const pthread_attr_t *attr, void * (*start_rtn)(void *), void *arg) {
514 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_create)(tidp, attr, start_rtn, arg);
515}
516VSF_LINUX_APPLET_PTHREAD_IMP(pthread_join, int, pthread_t tid, void **retval) {
518 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_join)(tid, retval);
519}
520VSF_LINUX_APPLET_PTHREAD_IMP(pthread_detach, int, pthread_t thread) {
522 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_detach)(thread);
523}
524VSF_LINUX_APPLET_PTHREAD_IMP(pthread_exit, void, void *retval) {
526 VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_exit)(retval);
527}
528VSF_LINUX_APPLET_PTHREAD_IMP(pthread_cancel, int, pthread_t thread) {
530 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_cancel)(thread);
531}
532VSF_LINUX_APPLET_PTHREAD_IMP(pthread_kill, int, pthread_t thread, int sig) {
534 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_kill)(thread, sig);
535}
536VSF_LINUX_APPLET_PTHREAD_IMP(pthread_once, int, pthread_once_t *once_control, void (*init_routine)(void)) {
538 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_once)(once_control, init_routine);
539}
540VSF_LINUX_APPLET_PTHREAD_IMP(pthread_testcancel, void, void) {
542 VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_testcancel)();
543}
544VSF_LINUX_APPLET_PTHREAD_IMP(pthread_setcancelstate, int, int state, int *oldstate) {
546 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_setcancelstate)(state, oldstate);
547}
548VSF_LINUX_APPLET_PTHREAD_IMP(pthread_setcanceltype, int, int type, int *oldtype) {
550 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_setcanceltype)(type, oldtype);
551}
552VSF_LINUX_APPLET_PTHREAD_IMP(pthread_setschedparam, int, pthread_t thread, int policy, const struct sched_param *param) {
554 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_setschedparam)(thread, policy, param);
555}
556VSF_LINUX_APPLET_PTHREAD_IMP(pthread_getschedparam, int, pthread_t thread, int *policy, struct sched_param *param) {
558 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_getschedparam)(thread, policy, param);
559}
560VSF_LINUX_APPLET_PTHREAD_IMP(pthread_cleanup_push, void, void (*routine)(void *), void *arg) {
562 VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_cleanup_push)(routine, arg);
563}
564VSF_LINUX_APPLET_PTHREAD_IMP(pthread_cleanup_pop, void, int execute) {
566 VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_cleanup_pop)(execute);
567}
568VSF_LINUX_APPLET_PTHREAD_IMP(pthread_attr_init, int, pthread_attr_t *attr) {
570 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_attr_init)(attr);
571}
572VSF_LINUX_APPLET_PTHREAD_IMP(pthread_attr_destroy, int, pthread_attr_t *attr) {
574 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_attr_destroy)(attr);
575}
576VSF_LINUX_APPLET_PTHREAD_IMP(pthread_attr_setstack, int, pthread_attr_t *attr, void *stackaddr, size_t stacksize) {
578 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_attr_setstack)(attr, stackaddr, stacksize);
579}
580VSF_LINUX_APPLET_PTHREAD_IMP(pthread_attr_getstack, int, const pthread_attr_t *attr, void **stackaddr, size_t *stacksize) {
582 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_attr_getstack)(attr, stackaddr, stacksize);
583}
584VSF_LINUX_APPLET_PTHREAD_IMP(pthread_attr_setstackaddr, int, pthread_attr_t *attr, void *stackaddr) {
586 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_attr_setstackaddr)(attr, stackaddr);
587}
588VSF_LINUX_APPLET_PTHREAD_IMP(pthread_attr_getstackaddr, int, const pthread_attr_t *attr, void **stackaddr) {
590 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_attr_getstackaddr)(attr, stackaddr);
591}
592VSF_LINUX_APPLET_PTHREAD_IMP(pthread_attr_setstacksize, int, pthread_attr_t *attr, size_t stacksize) {
594 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_attr_setstacksize)(attr, stacksize);
595}
596VSF_LINUX_APPLET_PTHREAD_IMP(pthread_attr_getstacksize, int, const pthread_attr_t *attr, size_t *stacksize) {
598 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_attr_getstacksize)(attr, stacksize);
599}
600VSF_LINUX_APPLET_PTHREAD_IMP(pthread_attr_setguardsize, int, pthread_attr_t *attr, size_t guardsize) {
602 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_attr_setguardsize)(attr, guardsize);
603}
604VSF_LINUX_APPLET_PTHREAD_IMP(pthread_attr_getguardsize, int, const pthread_attr_t *attr, size_t *guardsize) {
606 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_attr_getguardsize)(attr, guardsize);
607}
608VSF_LINUX_APPLET_PTHREAD_IMP(pthread_attr_setdetachstate, int, pthread_attr_t *attr, int detachstate) {
610 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_attr_setdetachstate)(attr, detachstate);
611}
612VSF_LINUX_APPLET_PTHREAD_IMP(pthread_attr_getdetachstate, int, const pthread_attr_t *attr, int *detachstate) {
614 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_attr_getdetachstate)(attr, detachstate);
615}
616VSF_LINUX_APPLET_PTHREAD_IMP(pthread_attr_setinheritsched, int, pthread_attr_t *attr, int inheritsched) {
618 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_attr_setinheritsched)(attr, inheritsched);
619}
620VSF_LINUX_APPLET_PTHREAD_IMP(pthread_attr_getinheritsched, int, const pthread_attr_t *attr, int *inheritsched) {
622 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_attr_getinheritsched)(attr, inheritsched);
623}
624VSF_LINUX_APPLET_PTHREAD_IMP(pthread_attr_setschedparam, int, pthread_attr_t *attr, const struct sched_param *param) {
626 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_attr_setschedparam)(attr, param);
627}
628VSF_LINUX_APPLET_PTHREAD_IMP(pthread_attr_getschedparam, int, pthread_attr_t *attr, struct sched_param *param) {
630 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_attr_getschedparam)(attr, param);
631}
632VSF_LINUX_APPLET_PTHREAD_IMP(pthread_attr_setschedpolicy, int, pthread_attr_t *attr, int policy) {
634 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_attr_setschedpolicy)(attr, policy);
635}
636VSF_LINUX_APPLET_PTHREAD_IMP(pthread_attr_getschedpolicy, int, const pthread_attr_t *attr, int *policy) {
638 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_attr_getschedpolicy)(attr, policy);
639}
640VSF_LINUX_APPLET_PTHREAD_IMP(pthread_attr_setscope, int, pthread_attr_t *attr, int contentionscope) {
642 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_attr_setscope)(attr, contentionscope);
643}
644VSF_LINUX_APPLET_PTHREAD_IMP(pthread_attr_getscope, int, const pthread_attr_t *attr, int *contentionscope) {
646 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_attr_getscope)(attr, contentionscope);
647}
648VSF_LINUX_APPLET_PTHREAD_IMP(pthread_barrier_init, int, pthread_barrier_t *barrier, const pthread_barrierattr_t *attr, unsigned int count) {
650 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_barrier_init)(barrier, attr, count);
651}
652VSF_LINUX_APPLET_PTHREAD_IMP(pthread_barrier_destroy, int, pthread_barrier_t *barrier) {
654 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_barrier_destroy)(barrier);
655}
656VSF_LINUX_APPLET_PTHREAD_IMP(pthread_barrier_wait, int, pthread_barrier_t *barrier) {
658 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_barrier_wait)(barrier);
659}
660VSF_LINUX_APPLET_PTHREAD_IMP(pthread_barrierattr_init, int, pthread_barrierattr_t *attr) {
662 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_barrierattr_init)(attr);
663}
664VSF_LINUX_APPLET_PTHREAD_IMP(pthread_barrierattr_destroy, int, pthread_barrierattr_t *attr) {
666 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_barrierattr_destroy)(attr);
667}
668VSF_LINUX_APPLET_PTHREAD_IMP(pthread_barrierattr_getpshared, int, const pthread_barrierattr_t *attr, int *pshared) {
670 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_barrierattr_getpshared)(attr, pshared);
671}
672VSF_LINUX_APPLET_PTHREAD_IMP(pthread_barrierattr_setpshared, int, pthread_barrierattr_t *attr, int pshared) {
674 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_barrierattr_setpshared)(attr, pshared);
675}
676VSF_LINUX_APPLET_PTHREAD_IMP(pthread_setname_np, int, pthread_t thread, const char *name) {
678 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_setname_np)(thread, name);
679}
680VSF_LINUX_APPLET_PTHREAD_IMP(pthread_getname_np, int, pthread_t thread, char *name, size_t size) {
682 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_getname_np)(thread, name, size);
683}
684
685#else // __VSF_APPLET__ && VSF_LINUX_APPLET_USE_PTHREAD
686
687#if VSF_LINUX_CFG_TLS_NUM > 0
688int pthread_key_create(pthread_key_t *key, void (*destructor)(void*));
690int pthread_setspecific(pthread_key_t key, const void *value);
692#endif
693
702int pthread_mutexattr_getpshared(pthread_mutexattr_t *mattr, int *pshared);
705
712 const struct timespec *abstime);
715int pthread_condattr_setpshared(pthread_condattr_t *cattr, int pshared);
716int pthread_condattr_getpshared(pthread_condattr_t *cattr, int *pshared);
717int pthread_condattr_getclock(const pthread_condattr_t *cattr, clockid_t *clockid);
719
724int pthread_rwlock_timedrdlock(pthread_rwlock_t *rwlock, const struct timespec *abstime);
727int pthread_rwlock_timedwrlock(pthread_rwlock_t *rwlock, const struct timespec *abstime);
729
730int pthread_atfork(void (*prepare)(void), void (*parent)(void), void (*child)(void));
733int pthread_create(pthread_t *tidp, const pthread_attr_t *attr, void * (*start_rtn)(void *), void *arg);
734int pthread_join(pthread_t tid, void **retval);
735int pthread_detach(pthread_t thread);
736void pthread_exit(void *retval);
737int pthread_cancel(pthread_t thread);
738int pthread_kill(pthread_t thread, int sig);
739int pthread_once(pthread_once_t *once_control, void (*init_routine)(void));
740void pthread_testcancel(void);
741int pthread_setcancelstate(int state, int *oldstate);
742int pthread_setcanceltype(int type, int *oldtype);
743int pthread_setschedparam(pthread_t thread, int policy, const struct sched_param *param);
744int pthread_getschedparam(pthread_t thread, int *policy, struct sched_param *param);
745void pthread_cleanup_push(void (*routine)(void *), void *arg);
746void pthread_cleanup_pop(int execute);
747
750int pthread_attr_setstack(pthread_attr_t *attr, void *stackaddr, size_t stacksize);
751int pthread_attr_getstack(const pthread_attr_t *attr, void **stackaddr, size_t *stacksize);
752int pthread_attr_setstackaddr(pthread_attr_t *attr, void *stackaddr);
753int pthread_attr_getstackaddr(const pthread_attr_t *attr, void **stackaddr);
754int pthread_attr_setstacksize(pthread_attr_t *attr, size_t stacksize);
755int pthread_attr_getstacksize(const pthread_attr_t *attr, size_t *stacksize);
756int pthread_attr_setguardsize(pthread_attr_t *attr, size_t guardsize);
757int pthread_attr_getguardsize(const pthread_attr_t *attr, size_t *guardsize);
758int pthread_attr_setdetachstate(pthread_attr_t *attr, int detachstate);
759int pthread_attr_getdetachstate(const pthread_attr_t *attr, int *detachstate);
760int pthread_attr_setinheritsched(pthread_attr_t *attr, int inheritsched);
761int pthread_attr_getinheritsched(const pthread_attr_t *attr, int *inheritsched);
765int pthread_attr_getschedpolicy(const pthread_attr_t *attr, int *policy);
766int pthread_attr_setscope(pthread_attr_t *attr, int contentionscope);
767int pthread_attr_getscope(const pthread_attr_t *attr, int *contentionscope);
768
769int pthread_barrier_init(pthread_barrier_t *barrier, const pthread_barrierattr_t *attr, unsigned int count);
774int pthread_barrierattr_getpshared(const pthread_barrierattr_t *battr, int *pshared);
776
777int pthread_setname_np(pthread_t thread, const char *name);
778int pthread_getname_np(pthread_t thread, char *name, size_t size);
779
780#endif // __VSF_APPLET__ && VSF_LINUX_APPLET_USE_PTHREAD
781
782#ifdef __cplusplus
783}
784#endif
785
786#endif
Definition vsf_eda.h:892
Definition vsf_eda.h:864
clockid_t
Definition types.h:138
#define pthread_condattr_destroy
Definition pthread.h:85
#define pthread_join
Definition pthread.h:27
#define pthread_attr_setstack
Definition pthread.h:42
#define PTHREAD_PROCESS_SHARED
Definition pthread.h:138
#define pthread_mutexattr_getpshared
Definition pthread.h:74
#define pthread_condattr_setpshared
Definition pthread.h:86
#define pthread_rwlock_rdlock
Definition pthread.h:93
#define pthread_barrier_init
Definition pthread.h:101
#define pthread_rwlock_init
Definition pthread.h:91
#define pthread_atfork
Definition pthread.h:23
#define pthread_mutexattr_destroy
Definition pthread.h:72
#define pthread_getschedparam
Definition pthread.h:37
#define pthread_attr_getguardsize
Definition pthread.h:49
#define pthread_attr_getstack
Definition pthread.h:43
#define pthread_kill
Definition pthread.h:31
#define pthread_rwlock_wrlock
Definition pthread.h:96
@ PTHREAD_CANCEL_ENABLE
Definition pthread.h:227
@ PTHREAD_CANCEL_DISABLE
Definition pthread.h:228
#define PTHREAD_CREATE_DETACHED
Definition pthread.h:145
int pthread_key_t
Definition pthread.h:133
#define pthread_cond_broadcast
Definition pthread.h:81
int pthread_t
Definition pthread.h:197
#define pthread_attr_getstackaddr
Definition pthread.h:45
#define pthread_create
Definition pthread.h:26
#define pthread_condattr_getpshared
Definition pthread.h:87
#define PTHREAD_PROCESS_PRIVATE
Definition pthread.h:140
#define pthread_mutex_trylock
Definition pthread.h:69
#define pthread_attr_setinheritsched
Definition pthread.h:52
#define pthread_condattr_getclock
Definition pthread.h:89
#define pthread_rwlock_timedwrlock
Definition pthread.h:98
#define pthread_mutexattr_gettype
Definition pthread.h:76
#define pthread_attr_init
Definition pthread.h:40
#define pthread_setname_np
Definition pthread.h:109
#define pthread_attr_setscope
Definition pthread.h:58
#define pthread_mutex_lock
Definition pthread.h:68
#define pthread_mutexattr_setpshared
Definition pthread.h:73
__VSF_VPLT_DECORATOR__ vsf_linux_pthread_vplt_t vsf_linux_pthread_vplt
Definition vsf_linux_glibc_pthread.c:1130
#define pthread_rwlock_trywrlock
Definition pthread.h:97
#define pthread_getspecific
Definition pthread.h:64
#define pthread_barrier_destroy
Definition pthread.h:102
#define pthread_attr_destroy
Definition pthread.h:41
#define pthread_setcancelstate
Definition pthread.h:34
#define pthread_cleanup_push
Definition pthread.h:38
#define pthread_attr_setschedpolicy
Definition pthread.h:56
@ PTHREAD_MUTEX_RECURSIVE
Definition pthread.h:149
@ PTHREAD_MUTEX_ERRORCHECK
Definition pthread.h:148
@ PTHREAD_MUTEX_NORMAL
Definition pthread.h:150
@ PTHREAD_MUTEX_DEFAULT
Definition pthread.h:151
#define pthread_cleanup_pop
Definition pthread.h:39
#define pthread_setschedparam
Definition pthread.h:36
#define pthread_attr_getdetachstate
Definition pthread.h:51
#define pthread_attr_getstacksize
Definition pthread.h:47
#define pthread_mutexattr_settype
Definition pthread.h:75
#define pthread_barrierattr_destroy
Definition pthread.h:105
#define pthread_getname_np
Definition pthread.h:110
#define pthread_attr_setstackaddr
Definition pthread.h:44
#define pthread_detach
Definition pthread.h:28
#define pthread_condattr_setclock
Definition pthread.h:88
#define pthread_mutex_unlock
Definition pthread.h:70
#define pthread_barrierattr_getpshared
Definition pthread.h:106
#define pthread_barrierattr_init
Definition pthread.h:104
#define pthread_attr_getschedparam
Definition pthread.h:55
#define pthread_attr_setstacksize
Definition pthread.h:46
#define pthread_barrierattr_setpshared
Definition pthread.h:107
#define pthread_mutex_destroy
Definition pthread.h:67
#define pthread_setcanceltype
Definition pthread.h:35
#define pthread_rwlock_tryrdlock
Definition pthread.h:94
#define pthread_self
Definition pthread.h:24
#define pthread_cond_destroy
Definition pthread.h:79
#define pthread_rwlock_unlock
Definition pthread.h:99
#define pthread_cond_signal
Definition pthread.h:80
#define pthread_once
Definition pthread.h:32
#define pthread_key_create
Definition pthread.h:61
#define pthread_attr_getschedpolicy
Definition pthread.h:57
#define pthread_equal
Definition pthread.h:25
#define pthread_mutex_init
Definition pthread.h:66
#define pthread_key_delete
Definition pthread.h:62
#define pthread_attr_getinheritsched
Definition pthread.h:53
#define pthread_setspecific
Definition pthread.h:63
#define pthread_attr_setdetachstate
Definition pthread.h:50
#define pthread_cond_init
Definition pthread.h:78
#define pthread_rwlock_destroy
Definition pthread.h:92
#define pthread_testcancel
Definition pthread.h:33
#define pthread_cond_timedwait
Definition pthread.h:83
#define pthread_cond_wait
Definition pthread.h:82
#define pthread_condattr_init
Definition pthread.h:84
#define pthread_exit
Definition pthread.h:29
#define pthread_attr_setguardsize
Definition pthread.h:48
#define pthread_attr_getscope
Definition pthread.h:59
#define pthread_rwlock_timedrdlock
Definition pthread.h:95
@ PTHREAD_CANCEL_DEFERRED
Definition pthread.h:231
@ PTHREAD_CANCEL_ASYNCHRONOUS
Definition pthread.h:232
#define pthread_attr_setschedparam
Definition pthread.h:54
#define pthread_cancel
Definition pthread.h:30
#define pthread_mutexattr_init
Definition pthread.h:71
#define PTHREAD_CREATE_JOINABLE
Definition pthread.h:143
#define pthread_barrier_wait
Definition pthread.h:103
unsigned short uint16_t
Definition stdint.h:7
Definition mutex.h:10
Definition pthread.h:215
void * stackaddr
Definition pthread.h:222
size_t stacksize
Definition pthread.h:223
size_t guardsize
Definition pthread.h:221
int scope
Definition pthread.h:220
int schedpolicy
Definition pthread.h:217
int inheritsched
Definition pthread.h:219
int detachstate
Definition pthread.h:216
Definition pthread.h:188
pthread_mutex_t mutex
Definition pthread.h:189
unsigned threshold
Definition pthread.h:191
pthread_cond_t cond
Definition pthread.h:190
unsigned in
Definition pthread.h:192
unsigned out
Definition pthread.h:193
Definition pthread.h:185
int attr
Definition pthread.h:186
Definition pthread.h:165
int attr
Definition pthread.h:166
clockid_t clockid
Definition pthread.h:167
Definition pthread.h:158
int recursive_cnt
Definition pthread.h:161
vsf_mutex_t int attr
Definition pthread.h:160
Definition pthread.h:155
int attr
Definition pthread.h:156
Definition pthread.h:198
bool is_inited
Definition pthread.h:200
pthread_mutex_t mutex
Definition pthread.h:199
Definition pthread.h:171
vsf_sync_t wrsync
Definition pthread.h:179
uint16_t wrpend
Definition pthread.h:175
vsf_dlist_t rdlist
Definition pthread.h:176
vsf_dlist_t wrlist
Definition pthread.h:177
uint16_t rdref
Definition pthread.h:172
uint16_t rdpend
Definition pthread.h:174
uint16_t wrref
Definition pthread.h:173
vsf_sync_t rdsync
Definition pthread.h:178
Definition pthread.h:181
int attr
Definition pthread.h:182
Definition sched.h:33
Definition time.h:66
Definition vsf_list.h:883
Definition pthread.h:240
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(pthread_attr_getguardsize)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(pthread_attr_getstackaddr)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(pthread_cond_timedwait)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(pthread_cleanup_push)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(pthread_barrier_destroy)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(pthread_rwlock_wrlock)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(pthread_detach)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(pthread_attr_destroy)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(pthread_attr_setscope)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(pthread_mutex_trylock)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(pthread_mutex_lock)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(pthread_condattr_getclock)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(pthread_cond_broadcast)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(pthread_rwlock_tryrdlock)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(pthread_condattr_destroy)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(pthread_barrier_wait)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(pthread_attr_init)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(pthread_rwlock_rdlock)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(pthread_mutexattr_init)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(pthread_condattr_getpshared)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(pthread_rwlock_init)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(pthread_key_delete)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(pthread_setspecific)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(pthread_getschedparam)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(pthread_attr_setschedpolicy)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(pthread_create)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(pthread_mutexattr_setpshared)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(pthread_rwlock_trywrlock)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(pthread_rwlock_unlock)
vsf_vplt_info_t info
Definition pthread.h:241
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(pthread_attr_setdetachstate)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(pthread_attr_getschedparam)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(pthread_getname_np)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(pthread_barrierattr_setpshared)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(pthread_mutexattr_gettype)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(pthread_once)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(pthread_getspecific)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(pthread_attr_getstack)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(pthread_mutexattr_getpshared)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(pthread_atfork)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(pthread_attr_getdetachstate)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(pthread_exit)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(pthread_attr_setguardsize)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(pthread_attr_setstackaddr)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(pthread_cond_wait)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(pthread_cond_destroy)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(pthread_attr_getscope)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(pthread_rwlock_timedwrlock)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(pthread_join)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(pthread_setcanceltype)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(pthread_mutexattr_destroy)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(pthread_cond_init)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(pthread_equal)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(pthread_attr_getinheritsched)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(pthread_attr_getschedpolicy)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(pthread_kill)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(pthread_attr_setschedparam)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(pthread_mutexattr_settype)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(pthread_testcancel)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(pthread_condattr_init)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(pthread_mutex_init)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(pthread_barrierattr_destroy)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(pthread_mutex_destroy)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(pthread_self)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(pthread_attr_getstacksize)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(pthread_setschedparam)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(pthread_rwlock_destroy)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(pthread_setname_np)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(pthread_mutex_unlock)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(pthread_attr_setstack)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(pthread_cleanup_pop)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(pthread_cancel)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(pthread_condattr_setclock)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(pthread_cond_signal)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(pthread_setcancelstate)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(pthread_condattr_setpshared)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(pthread_key_create)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(pthread_barrier_init)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(pthread_rwlock_timedrdlock)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(pthread_barrierattr_getpshared)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(pthread_attr_setinheritsched)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(pthread_barrierattr_init)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(pthread_attr_setstacksize)
Definition vsf_cfg.h:95
vk_av_control_value_t value
Definition vsf_audio.h:171
vk_av_control_type_t type
Definition vsf_audio.h:170
#define __VSF_VPLT_DECORATOR__
Definition vsf_cfg.h:93
#define VSF_APPLET_VPLT_ENTRY_FUNC_TRACE()
Definition vsf_cfg.h:165
uint32_t size
Definition vsf_memfs.h:50
uint8_t state
Definition vsf_msg_tree.h:247
int sig
Definition vsf_thread.h:421