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_timedlock VSF_LINUX_WRAPPER(pthread_mutex_timedlock)
70#define pthread_mutex_trylock VSF_LINUX_WRAPPER(pthread_mutex_trylock)
71#define pthread_mutex_unlock VSF_LINUX_WRAPPER(pthread_mutex_unlock)
72#define pthread_mutexattr_init VSF_LINUX_WRAPPER(pthread_mutexattr_init)
73#define pthread_mutexattr_destroy VSF_LINUX_WRAPPER(pthread_mutexattr_destroy)
74#define pthread_mutexattr_setpshared VSF_LINUX_WRAPPER(pthread_mutexattr_setpshared)
75#define pthread_mutexattr_getpshared VSF_LINUX_WRAPPER(pthread_mutexattr_getpshared)
76#define pthread_mutexattr_settype VSF_LINUX_WRAPPER(pthread_mutexattr_settype)
77#define pthread_mutexattr_gettype VSF_LINUX_WRAPPER(pthread_mutexattr_gettype)
78
79#define pthread_cond_init VSF_LINUX_WRAPPER(pthread_cond_init)
80#define pthread_cond_destroy VSF_LINUX_WRAPPER(pthread_cond_destroy)
81#define pthread_cond_signal VSF_LINUX_WRAPPER(pthread_cond_signal)
82#define pthread_cond_broadcast VSF_LINUX_WRAPPER(pthread_cond_broadcast)
83#define pthread_cond_wait VSF_LINUX_WRAPPER(pthread_cond_wait)
84#define pthread_cond_timedwait VSF_LINUX_WRAPPER(pthread_cond_timedwait)
85#define pthread_condattr_init VSF_LINUX_WRAPPER(pthread_condattr_init)
86#define pthread_condattr_destroy VSF_LINUX_WRAPPER(pthread_condattr_destroy)
87#define pthread_condattr_setpshared VSF_LINUX_WRAPPER(pthread_condattr_setpshared)
88#define pthread_condattr_getpshared VSF_LINUX_WRAPPER(pthread_condattr_getpshared)
89#define pthread_condattr_setclock VSF_LINUX_WRAPPER(pthread_condattr_setclock)
90#define pthread_condattr_getclock VSF_LINUX_WRAPPER(pthread_condattr_getclock)
91
92#define pthread_rwlock_init VSF_LINUX_WRAPPER(pthread_rwlock_init)
93#define pthread_rwlock_destroy VSF_LINUX_WRAPPER(pthread_rwlock_destroy)
94#define pthread_rwlock_rdlock VSF_LINUX_WRAPPER(pthread_rwlock_rdlock)
95#define pthread_rwlock_tryrdlock VSF_LINUX_WRAPPER(pthread_rwlock_tryrdlock)
96#define pthread_rwlock_timedrdlock VSF_LINUX_WRAPPER(pthread_rwlock_timedrdlock)
97#define pthread_rwlock_wrlock VSF_LINUX_WRAPPER(pthread_rwlock_wrlock)
98#define pthread_rwlock_trywrlock VSF_LINUX_WRAPPER(pthread_rwlock_trywrlock)
99#define pthread_rwlock_timedwrlock VSF_LINUX_WRAPPER(pthread_rwlock_timedwrlock)
100#define pthread_rwlock_unlock VSF_LINUX_WRAPPER(pthread_rwlock_unlock)
101
102#define pthread_barrier_init VSF_LINUX_WRAPPER(pthread_barrier_init)
103#define pthread_barrier_destroy VSF_LINUX_WRAPPER(pthread_barrier_destroy)
104#define pthread_barrier_wait VSF_LINUX_WRAPPER(pthread_barrier_wait)
105#define pthread_barrierattr_init VSF_LINUX_WRAPPER(pthread_barrierattr_init)
106#define pthread_barrierattr_destroy VSF_LINUX_WRAPPER(pthread_barrierattr_destroy)
107#define pthread_barrierattr_getpshared VSF_LINUX_WRAPPER(pthread_barrierattr_getpshared)
108#define pthread_barrierattr_setpshared VSF_LINUX_WRAPPER(pthread_barrierattr_setpshared)
109
110#define pthread_setname_np VSF_LINUX_WRAPPER(pthread_setname_np)
111#define pthread_getname_np VSF_LINUX_WRAPPER(pthread_getname_np)
112
113#define pthread_getcpuclockid VSF_LINUX_WRAPPER(pthread_getcpuclockid)
114#endif
115
116// to use PTHREAD_MUTEX_INITIALIZER, __VSF_EDA_CLASS_INHERIT__ is needed or ooc is disabled
117#if __IS_COMPILER_IAR__
118#define PTHREAD_MUTEX_INITIALIZER { \
119 .use_as__vsf_mutex_t.use_as__vsf_sync_t.max_union.max_value = 1 | VSF_SYNC_AUTO_RST,\
120 .use_as__vsf_mutex_t.use_as__vsf_sync_t.cur_union.bits.cur = 1 | VSF_SYNC_HAS_OWNER,\
121 }
122#define PTHREAD_COND_INITIALIZER { \
123 .max_union.max_value = 1 | VSF_SYNC_AUTO_RST,\
124 }
125#else
126#define PTHREAD_MUTEX_INITIALIZER (pthread_mutex_t) { \
127 .use_as__vsf_mutex_t.use_as__vsf_sync_t.max_union.max_value = 1 | VSF_SYNC_AUTO_RST,\
128 .use_as__vsf_mutex_t.use_as__vsf_sync_t.cur_union.bits.cur = 1 | VSF_SYNC_HAS_OWNER,\
129 }
130#define PTHREAD_COND_INITIALIZER (pthread_cond_t) { \
131 .max_union.max_value = 1 | VSF_SYNC_AUTO_RST,\
132 }
133#endif
134
135
136typedef int pthread_key_t;
137
138enum {
139 // pshared
141#define PTHREAD_PROCESS_SHARED PTHREAD_PROCESS_SHARED
143#define PTHREAD_PROCESS_PRIVATE PTHREAD_PROCESS_PRIVATE
144
146#define PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_JOINABLE
148#define PTHREAD_CREATE_DETACHED PTHREAD_CREATE_DETACHED
149
150 // mutex
155
156 // cond
157};
158typedef struct {
159 int attr;
161typedef struct pthread_mutex_t {
162 implement(vsf_mutex_t)
163 int attr;
166
168typedef struct {
169 int attr;
172
173#define PTHREAD_RWLOCK_INITIALIZER { 0 }
174typedef struct pthread_rwlock_t {
184typedef struct {
185 int attr;
187
188typedef struct {
189 int attr;
191typedef struct {
194 unsigned threshold;
195 unsigned in;
196 unsigned out;
198#define PTHREAD_BARRIER_SERIAL_THREAD (-2)
199
200typedef int pthread_t;
201typedef struct pthread_once_t {
205#if __IS_COMPILER_IAR__
206#define PTHREAD_ONCE_INIT { \
207 .mutex.max_union.max_value = 1 | VSF_SYNC_AUTO_RST,\
208 .mutex.cur_union.cur_value = 1 | VSF_SYNC_HAS_OWNER,\
209 .is_inited = false, \
210 }
211#else
212#define PTHREAD_ONCE_INIT (pthread_once_t) { \
213 .mutex.use_as__vsf_mutex_t.use_as__vsf_sync_t.max_union.max_value = 1 | VSF_SYNC_AUTO_RST,\
214 .mutex.use_as__vsf_mutex_t.use_as__vsf_sync_t.cur_union.cur_value = 1 | VSF_SYNC_HAS_OWNER,\
215 .is_inited = false, \
216 }
217#endif
218typedef struct {
221 struct sched_param schedparam;
223 int scope;
224 size_t guardsize;
226 size_t stacksize;
228
229enum {
232};
233enum {
236};
237
238#ifndef PTHREAD_STACK_MIN
239# define PTHREAD_STACK_MIN 1024
240#endif
241
242#if VSF_LINUX_APPLET_USE_PTHREAD == ENABLED
245
250
263
276
286
304
325
333
338# ifndef __VSF_APPLET__
340# endif
341#endif
342
343#if defined(__VSF_APPLET__) && (defined(__VSF_APPLET_LIB__) || defined(__VSF_APPLET_LINUX_PTHREAD_LIB__))\
344 && VSF_APPLET_CFG_ABI_PATCH != ENABLED && VSF_LINUX_APPLET_USE_PTHREAD == ENABLED
345
346#ifndef VSF_LINUX_APPLET_PTHREAD_VPLT
347# if VSF_LINUX_USE_APPLET == ENABLED
348# define VSF_LINUX_APPLET_PTHREAD_VPLT \
349 ((vsf_linux_pthread_vplt_t *)(VSF_LINUX_APPLET_VPLT->pthread_vplt))
350# else
351# define VSF_LINUX_APPLET_PTHREAD_VPLT \
352 ((vsf_linux_pthread_vplt_t *)vsf_vplt((void *)0))
353# endif
354#endif
355
356#define VSF_LINUX_APPLET_PTHREAD_ENTRY(__NAME) \
357 VSF_APPLET_VPLT_ENTRY_FUNC_ENTRY(VSF_LINUX_APPLET_PTHREAD_VPLT, __NAME)
358#define VSF_LINUX_APPLET_PTHREAD_IMP(...) \
359 VSF_APPLET_VPLT_ENTRY_FUNC_IMP(VSF_LINUX_APPLET_PTHREAD_VPLT, __VA_ARGS__)
360
361VSF_LINUX_APPLET_PTHREAD_IMP(pthread_key_create, int, pthread_key_t *key, void (*destructor)(void*)) {
363 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_key_create)(key, destructor);
364}
365VSF_LINUX_APPLET_PTHREAD_IMP(pthread_key_delete, int, pthread_key_t key) {
367 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_key_delete)(key);
368}
369VSF_LINUX_APPLET_PTHREAD_IMP(pthread_setspecific, int, pthread_key_t key, const void *value) {
371 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_setspecific)(key, value);
372}
373VSF_LINUX_APPLET_PTHREAD_IMP(pthread_getspecific, void *, pthread_key_t key) {
375 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_getspecific)(key);
376}
377VSF_LINUX_APPLET_PTHREAD_IMP(pthread_mutex_init, int, pthread_mutex_t *mutex, const pthread_mutexattr_t *mattr) {
379 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_mutex_init)(mutex, mattr);
380}
381VSF_LINUX_APPLET_PTHREAD_IMP(pthread_mutex_destroy, int, pthread_mutex_t *mutex) {
383 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_mutex_destroy)(mutex);
384}
385VSF_LINUX_APPLET_PTHREAD_IMP(pthread_mutex_lock, int, pthread_mutex_t *mutex) {
387 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_mutex_lock)(mutex);
388}
389VSF_LINUX_APPLET_PTHREAD_IMP(pthread_mutex_timedlock, int, pthread_mutex_t *mutex, const struct timespec *abstime) {
391 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_mutex_timedlock)(mutex, abstime);
392}
393VSF_LINUX_APPLET_PTHREAD_IMP(pthread_mutex_trylock, int, pthread_mutex_t *mutex) {
395 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_mutex_trylock)(mutex);
396}
397VSF_LINUX_APPLET_PTHREAD_IMP(pthread_mutex_unlock, int, pthread_mutex_t *mutex) {
399 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_mutex_unlock)(mutex);
400}
401VSF_LINUX_APPLET_PTHREAD_IMP(pthread_mutexattr_init, int, pthread_mutexattr_t *mattr) {
403 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_mutexattr_init)(mattr);
404}
405VSF_LINUX_APPLET_PTHREAD_IMP(pthread_mutexattr_destroy, int, pthread_mutexattr_t *mattr) {
407 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_mutexattr_destroy)(mattr);
408}
409VSF_LINUX_APPLET_PTHREAD_IMP(pthread_mutexattr_setpshared, int, pthread_mutexattr_t *mattr, int pshared) {
411 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_mutexattr_setpshared)(mattr, pshared);
412}
413VSF_LINUX_APPLET_PTHREAD_IMP(pthread_mutexattr_getpshared, int, pthread_mutexattr_t *mattr, int *pshared) {
415 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_mutexattr_getpshared)(mattr, pshared);
416}
417VSF_LINUX_APPLET_PTHREAD_IMP(pthread_mutexattr_settype, int, pthread_mutexattr_t *mattr , int type) {
419 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_mutexattr_settype)(mattr, type);
420}
421VSF_LINUX_APPLET_PTHREAD_IMP(pthread_mutexattr_gettype, int, pthread_mutexattr_t *mattr , int *type) {
423 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_mutexattr_gettype)(mattr, type);
424}
425VSF_LINUX_APPLET_PTHREAD_IMP(pthread_cond_init, int, pthread_cond_t *cond, const pthread_condattr_t *cattr) {
427 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_cond_init)(cond, cattr);
428}
429VSF_LINUX_APPLET_PTHREAD_IMP(pthread_cond_destroy, int, pthread_cond_t *cond) {
431 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_cond_destroy)(cond);
432}
433VSF_LINUX_APPLET_PTHREAD_IMP(pthread_cond_signal, int, pthread_cond_t *cond) {
435 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_cond_signal)(cond);
436}
437VSF_LINUX_APPLET_PTHREAD_IMP(pthread_cond_broadcast, int, pthread_cond_t *cond) {
439 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_cond_broadcast)(cond);
440}
441VSF_LINUX_APPLET_PTHREAD_IMP(pthread_cond_wait, int, pthread_cond_t *cond, pthread_mutex_t *mutex) {
443 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_cond_wait)(cond, mutex);
444}
445VSF_LINUX_APPLET_PTHREAD_IMP(pthread_cond_timedwait, int, pthread_cond_t *cond, pthread_mutex_t *mutex, const struct timespec *abstime) {
447 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_cond_timedwait)(cond, mutex, abstime);
448}
449VSF_LINUX_APPLET_PTHREAD_IMP(pthread_condattr_init, int, pthread_condattr_t *cattr) {
451 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_condattr_init)(cattr);
452}
453VSF_LINUX_APPLET_PTHREAD_IMP(pthread_condattr_destroy, int, pthread_condattr_t *cattr) {
455 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_condattr_destroy)(cattr);
456}
457VSF_LINUX_APPLET_PTHREAD_IMP(pthread_condattr_setpshared, int, pthread_condattr_t *cattr, int pshared) {
459 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_condattr_setpshared)(cattr, pshared);
460}
461VSF_LINUX_APPLET_PTHREAD_IMP(pthread_condattr_getpshared, int, pthread_condattr_t *cattr, int *pshared) {
463 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_condattr_getpshared)(cattr, pshared);
464}
465VSF_LINUX_APPLET_PTHREAD_IMP(pthread_condattr_getclock, int, const pthread_condattr_t *cattr, clockid_t *clockid) {
467 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_condattr_getclock)(cattr, clockid);
468}
469VSF_LINUX_APPLET_PTHREAD_IMP(pthread_condattr_setclock, int, pthread_condattr_t *cattr, clockid_t clockid) {
471 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_condattr_setclock)(cattr, clockid);
472}
473VSF_LINUX_APPLET_PTHREAD_IMP(pthread_rwlock_init, int, pthread_rwlock_t *rwlock, const pthread_rwlockattr_t *attr) {
475 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_rwlock_init)(rwlock, attr);
476}
477VSF_LINUX_APPLET_PTHREAD_IMP(pthread_rwlock_destroy, int, pthread_rwlock_t *rwlock) {
479 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_rwlock_destroy)(rwlock);
480}
481VSF_LINUX_APPLET_PTHREAD_IMP(pthread_rwlock_rdlock, int, pthread_rwlock_t *rwlock) {
483 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_rwlock_rdlock)(rwlock);
484}
485VSF_LINUX_APPLET_PTHREAD_IMP(pthread_rwlock_tryrdlock, int, pthread_rwlock_t *rwlock) {
487 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_rwlock_tryrdlock)(rwlock);
488}
489VSF_LINUX_APPLET_PTHREAD_IMP(pthread_rwlock_timedrdlock, int, pthread_rwlock_t *rwlock, const struct timespec *abstime) {
491 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_rwlock_timedrdlock)(rwlock, abstime);
492}
493VSF_LINUX_APPLET_PTHREAD_IMP(pthread_rwlock_wrlock, int, pthread_rwlock_t *rwlock) {
495 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_rwlock_wrlock)(rwlock);
496}
497VSF_LINUX_APPLET_PTHREAD_IMP(pthread_rwlock_trywrlock, int, pthread_rwlock_t *rwlock) {
499 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_rwlock_trywrlock)(rwlock);
500}
501VSF_LINUX_APPLET_PTHREAD_IMP(pthread_rwlock_timedwrlock, int, pthread_rwlock_t *rwlock, const struct timespec *abstime) {
503 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_rwlock_timedwrlock)(rwlock, abstime);
504}
505VSF_LINUX_APPLET_PTHREAD_IMP(pthread_rwlock_unlock, int, pthread_rwlock_t *rwlock) {
507 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_rwlock_unlock)(rwlock);
508}
509VSF_LINUX_APPLET_PTHREAD_IMP(pthread_atfork, int, void (*prepare)(void), void (*parent)(void), void (*child)(void)) {
511 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_atfork)(prepare, parent, child);
512}
513VSF_LINUX_APPLET_PTHREAD_IMP(pthread_self, pthread_t, void) {
515 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_self)();
516}
517VSF_LINUX_APPLET_PTHREAD_IMP(pthread_equal, int, pthread_t t1, pthread_t t2) {
519 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_equal)(t1, t2);
520}
521VSF_LINUX_APPLET_PTHREAD_IMP(pthread_create, int, pthread_t *tidp, const pthread_attr_t *attr, void * (*start_rtn)(void *), void *arg) {
523 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_create)(tidp, attr, start_rtn, arg);
524}
525VSF_LINUX_APPLET_PTHREAD_IMP(pthread_join, int, pthread_t tid, void **retval) {
527 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_join)(tid, retval);
528}
529VSF_LINUX_APPLET_PTHREAD_IMP(pthread_detach, int, pthread_t thread) {
531 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_detach)(thread);
532}
533VSF_LINUX_APPLET_PTHREAD_IMP(pthread_exit, void, void *retval) {
535 VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_exit)(retval);
536}
537VSF_LINUX_APPLET_PTHREAD_IMP(pthread_cancel, int, pthread_t thread) {
539 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_cancel)(thread);
540}
541VSF_LINUX_APPLET_PTHREAD_IMP(pthread_kill, int, pthread_t thread, int sig) {
543 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_kill)(thread, sig);
544}
545VSF_LINUX_APPLET_PTHREAD_IMP(pthread_once, int, pthread_once_t *once_control, void (*init_routine)(void)) {
547 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_once)(once_control, init_routine);
548}
549VSF_LINUX_APPLET_PTHREAD_IMP(pthread_testcancel, void, void) {
551 VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_testcancel)();
552}
553VSF_LINUX_APPLET_PTHREAD_IMP(pthread_setcancelstate, int, int state, int *oldstate) {
555 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_setcancelstate)(state, oldstate);
556}
557VSF_LINUX_APPLET_PTHREAD_IMP(pthread_setcanceltype, int, int type, int *oldtype) {
559 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_setcanceltype)(type, oldtype);
560}
561VSF_LINUX_APPLET_PTHREAD_IMP(pthread_setschedparam, int, pthread_t thread, int policy, const struct sched_param *param) {
563 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_setschedparam)(thread, policy, param);
564}
565VSF_LINUX_APPLET_PTHREAD_IMP(pthread_getschedparam, int, pthread_t thread, int *policy, struct sched_param *param) {
567 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_getschedparam)(thread, policy, param);
568}
569VSF_LINUX_APPLET_PTHREAD_IMP(pthread_cleanup_push, void, void (*routine)(void *), void *arg) {
571 VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_cleanup_push)(routine, arg);
572}
573VSF_LINUX_APPLET_PTHREAD_IMP(pthread_cleanup_pop, void, int execute) {
575 VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_cleanup_pop)(execute);
576}
577VSF_LINUX_APPLET_PTHREAD_IMP(pthread_attr_init, int, pthread_attr_t *attr) {
579 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_attr_init)(attr);
580}
581VSF_LINUX_APPLET_PTHREAD_IMP(pthread_attr_destroy, int, pthread_attr_t *attr) {
583 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_attr_destroy)(attr);
584}
585VSF_LINUX_APPLET_PTHREAD_IMP(pthread_attr_setstack, int, pthread_attr_t *attr, void *stackaddr, size_t stacksize) {
587 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_attr_setstack)(attr, stackaddr, stacksize);
588}
589VSF_LINUX_APPLET_PTHREAD_IMP(pthread_attr_getstack, int, const pthread_attr_t *attr, void **stackaddr, size_t *stacksize) {
591 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_attr_getstack)(attr, stackaddr, stacksize);
592}
593VSF_LINUX_APPLET_PTHREAD_IMP(pthread_attr_setstackaddr, int, pthread_attr_t *attr, void *stackaddr) {
595 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_attr_setstackaddr)(attr, stackaddr);
596}
597VSF_LINUX_APPLET_PTHREAD_IMP(pthread_attr_getstackaddr, int, const pthread_attr_t *attr, void **stackaddr) {
599 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_attr_getstackaddr)(attr, stackaddr);
600}
601VSF_LINUX_APPLET_PTHREAD_IMP(pthread_attr_setstacksize, int, pthread_attr_t *attr, size_t stacksize) {
603 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_attr_setstacksize)(attr, stacksize);
604}
605VSF_LINUX_APPLET_PTHREAD_IMP(pthread_attr_getstacksize, int, const pthread_attr_t *attr, size_t *stacksize) {
607 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_attr_getstacksize)(attr, stacksize);
608}
609VSF_LINUX_APPLET_PTHREAD_IMP(pthread_attr_setguardsize, int, pthread_attr_t *attr, size_t guardsize) {
611 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_attr_setguardsize)(attr, guardsize);
612}
613VSF_LINUX_APPLET_PTHREAD_IMP(pthread_attr_getguardsize, int, const pthread_attr_t *attr, size_t *guardsize) {
615 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_attr_getguardsize)(attr, guardsize);
616}
617VSF_LINUX_APPLET_PTHREAD_IMP(pthread_attr_setdetachstate, int, pthread_attr_t *attr, int detachstate) {
619 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_attr_setdetachstate)(attr, detachstate);
620}
621VSF_LINUX_APPLET_PTHREAD_IMP(pthread_attr_getdetachstate, int, const pthread_attr_t *attr, int *detachstate) {
623 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_attr_getdetachstate)(attr, detachstate);
624}
625VSF_LINUX_APPLET_PTHREAD_IMP(pthread_attr_setinheritsched, int, pthread_attr_t *attr, int inheritsched) {
627 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_attr_setinheritsched)(attr, inheritsched);
628}
629VSF_LINUX_APPLET_PTHREAD_IMP(pthread_attr_getinheritsched, int, const pthread_attr_t *attr, int *inheritsched) {
631 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_attr_getinheritsched)(attr, inheritsched);
632}
633VSF_LINUX_APPLET_PTHREAD_IMP(pthread_attr_setschedparam, int, pthread_attr_t *attr, const struct sched_param *param) {
635 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_attr_setschedparam)(attr, param);
636}
637VSF_LINUX_APPLET_PTHREAD_IMP(pthread_attr_getschedparam, int, pthread_attr_t *attr, struct sched_param *param) {
639 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_attr_getschedparam)(attr, param);
640}
641VSF_LINUX_APPLET_PTHREAD_IMP(pthread_attr_setschedpolicy, int, pthread_attr_t *attr, int policy) {
643 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_attr_setschedpolicy)(attr, policy);
644}
645VSF_LINUX_APPLET_PTHREAD_IMP(pthread_attr_getschedpolicy, int, const pthread_attr_t *attr, int *policy) {
647 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_attr_getschedpolicy)(attr, policy);
648}
649VSF_LINUX_APPLET_PTHREAD_IMP(pthread_attr_setscope, int, pthread_attr_t *attr, int contentionscope) {
651 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_attr_setscope)(attr, contentionscope);
652}
653VSF_LINUX_APPLET_PTHREAD_IMP(pthread_attr_getscope, int, const pthread_attr_t *attr, int *contentionscope) {
655 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_attr_getscope)(attr, contentionscope);
656}
657VSF_LINUX_APPLET_PTHREAD_IMP(pthread_barrier_init, int, pthread_barrier_t *barrier, const pthread_barrierattr_t *attr, unsigned int count) {
659 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_barrier_init)(barrier, attr, count);
660}
661VSF_LINUX_APPLET_PTHREAD_IMP(pthread_barrier_destroy, int, pthread_barrier_t *barrier) {
663 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_barrier_destroy)(barrier);
664}
665VSF_LINUX_APPLET_PTHREAD_IMP(pthread_barrier_wait, int, pthread_barrier_t *barrier) {
667 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_barrier_wait)(barrier);
668}
669VSF_LINUX_APPLET_PTHREAD_IMP(pthread_barrierattr_init, int, pthread_barrierattr_t *attr) {
671 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_barrierattr_init)(attr);
672}
673VSF_LINUX_APPLET_PTHREAD_IMP(pthread_barrierattr_destroy, int, pthread_barrierattr_t *attr) {
675 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_barrierattr_destroy)(attr);
676}
677VSF_LINUX_APPLET_PTHREAD_IMP(pthread_barrierattr_getpshared, int, const pthread_barrierattr_t *attr, int *pshared) {
679 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_barrierattr_getpshared)(attr, pshared);
680}
681VSF_LINUX_APPLET_PTHREAD_IMP(pthread_barrierattr_setpshared, int, pthread_barrierattr_t *attr, int pshared) {
683 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_barrierattr_setpshared)(attr, pshared);
684}
685VSF_LINUX_APPLET_PTHREAD_IMP(pthread_setname_np, int, pthread_t thread, const char *name) {
687 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_setname_np)(thread, name);
688}
689VSF_LINUX_APPLET_PTHREAD_IMP(pthread_getname_np, int, pthread_t thread, char *name, size_t size) {
691 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_getname_np)(thread, name, size);
692}
693VSF_LINUX_APPLET_PTHREAD_IMP(pthread_getcpuclockid, int, pthread_t thread, clockid_t *clockid) {
695 return VSF_LINUX_APPLET_PTHREAD_ENTRY(pthread_getcpuclockid)(thread, clockid);
696}
697
698#else // __VSF_APPLET__ && VSF_LINUX_APPLET_USE_PTHREAD
699
700#if VSF_LINUX_CFG_TLS_NUM > 0
701int pthread_key_create(pthread_key_t *key, void (*destructor)(void*));
703int pthread_setspecific(pthread_key_t key, const void *value);
705#endif
706
710int pthread_mutex_timedlock(pthread_mutex_t *mutex, const struct timespec *abstime);
716int pthread_mutexattr_getpshared(pthread_mutexattr_t *mattr, int *pshared);
719
726 const struct timespec *abstime);
729int pthread_condattr_setpshared(pthread_condattr_t *cattr, int pshared);
730int pthread_condattr_getpshared(pthread_condattr_t *cattr, int *pshared);
731int pthread_condattr_getclock(const pthread_condattr_t *cattr, clockid_t *clockid);
733
738int pthread_rwlock_timedrdlock(pthread_rwlock_t *rwlock, const struct timespec *abstime);
741int pthread_rwlock_timedwrlock(pthread_rwlock_t *rwlock, const struct timespec *abstime);
743
744int pthread_atfork(void (*prepare)(void), void (*parent)(void), void (*child)(void));
747int pthread_create(pthread_t *tidp, const pthread_attr_t *attr, void * (*start_rtn)(void *), void *arg);
748int pthread_join(pthread_t tid, void **retval);
749int pthread_detach(pthread_t thread);
750void pthread_exit(void *retval);
751int pthread_cancel(pthread_t thread);
752int pthread_kill(pthread_t thread, int sig);
753int pthread_once(pthread_once_t *once_control, void (*init_routine)(void));
754void pthread_testcancel(void);
755int pthread_setcancelstate(int state, int *oldstate);
756int pthread_setcanceltype(int type, int *oldtype);
757int pthread_setschedparam(pthread_t thread, int policy, const struct sched_param *param);
758int pthread_getschedparam(pthread_t thread, int *policy, struct sched_param *param);
759void pthread_cleanup_push(void (*routine)(void *), void *arg);
760void pthread_cleanup_pop(int execute);
761
764int pthread_attr_setstack(pthread_attr_t *attr, void *stackaddr, size_t stacksize);
765int pthread_attr_getstack(const pthread_attr_t *attr, void **stackaddr, size_t *stacksize);
766int pthread_attr_setstackaddr(pthread_attr_t *attr, void *stackaddr);
767int pthread_attr_getstackaddr(const pthread_attr_t *attr, void **stackaddr);
768int pthread_attr_setstacksize(pthread_attr_t *attr, size_t stacksize);
769int pthread_attr_getstacksize(const pthread_attr_t *attr, size_t *stacksize);
770int pthread_attr_setguardsize(pthread_attr_t *attr, size_t guardsize);
771int pthread_attr_getguardsize(const pthread_attr_t *attr, size_t *guardsize);
772int pthread_attr_setdetachstate(pthread_attr_t *attr, int detachstate);
773int pthread_attr_getdetachstate(const pthread_attr_t *attr, int *detachstate);
774int pthread_attr_setinheritsched(pthread_attr_t *attr, int inheritsched);
775int pthread_attr_getinheritsched(const pthread_attr_t *attr, int *inheritsched);
779int pthread_attr_getschedpolicy(const pthread_attr_t *attr, int *policy);
780int pthread_attr_setscope(pthread_attr_t *attr, int contentionscope);
781int pthread_attr_getscope(const pthread_attr_t *attr, int *contentionscope);
782
783int pthread_barrier_init(pthread_barrier_t *barrier, const pthread_barrierattr_t *attr, unsigned int count);
788int pthread_barrierattr_getpshared(const pthread_barrierattr_t *battr, int *pshared);
790
791int pthread_setname_np(pthread_t thread, const char *name);
792int pthread_getname_np(pthread_t thread, char *name, size_t size);
793
794int pthread_getcpuclockid(pthread_t thread, clockid_t* clockid);
795
796#endif // __VSF_APPLET__ && VSF_LINUX_APPLET_USE_PTHREAD
797
798#ifdef __cplusplus
799}
800#endif
801
802#endif
Definition vsf_eda.h:895
Definition vsf_eda.h:867
clockid_t
Definition types.h:168
#define pthread_condattr_destroy
Definition pthread.h:86
#define pthread_join
Definition pthread.h:27
#define pthread_attr_setstack
Definition pthread.h:42
#define PTHREAD_PROCESS_SHARED
Definition pthread.h:141
#define pthread_mutexattr_getpshared
Definition pthread.h:75
#define pthread_condattr_setpshared
Definition pthread.h:87
#define pthread_rwlock_rdlock
Definition pthread.h:94
#define pthread_barrier_init
Definition pthread.h:102
#define pthread_rwlock_init
Definition pthread.h:92
#define pthread_atfork
Definition pthread.h:23
#define pthread_mutexattr_destroy
Definition pthread.h:73
#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:97
#define PTHREAD_CREATE_DETACHED
Definition pthread.h:148
int pthread_key_t
Definition pthread.h:136
#define pthread_cond_broadcast
Definition pthread.h:82
int pthread_t
Definition pthread.h:200
#define pthread_attr_getstackaddr
Definition pthread.h:45
#define pthread_create
Definition pthread.h:26
#define pthread_condattr_getpshared
Definition pthread.h:88
#define PTHREAD_PROCESS_PRIVATE
Definition pthread.h:143
#define pthread_mutex_trylock
Definition pthread.h:70
#define pthread_attr_setinheritsched
Definition pthread.h:52
#define pthread_condattr_getclock
Definition pthread.h:90
#define pthread_rwlock_timedwrlock
Definition pthread.h:99
#define pthread_mutexattr_gettype
Definition pthread.h:77
#define pthread_attr_init
Definition pthread.h:40
#define pthread_setname_np
Definition pthread.h:110
#define pthread_attr_setscope
Definition pthread.h:58
#define pthread_mutex_lock
Definition pthread.h:68
#define pthread_mutexattr_setpshared
Definition pthread.h:74
__VSF_VPLT_DECORATOR__ vsf_linux_pthread_vplt_t vsf_linux_pthread_vplt
Definition vsf_linux_glibc_pthread.c:1163
#define pthread_rwlock_trywrlock
Definition pthread.h:98
#define pthread_getspecific
Definition pthread.h:64
#define pthread_barrier_destroy
Definition pthread.h:103
#define pthread_attr_destroy
Definition pthread.h:41
#define pthread_setcancelstate
Definition pthread.h:34
@ PTHREAD_CANCEL_DEFERRED
Definition pthread.h:234
@ PTHREAD_CANCEL_ASYNCHRONOUS
Definition pthread.h:235
#define pthread_cleanup_push
Definition pthread.h:38
#define pthread_attr_setschedpolicy
Definition pthread.h:56
#define pthread_mutex_timedlock
Definition pthread.h:69
#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:76
#define pthread_barrierattr_destroy
Definition pthread.h:106
#define pthread_getname_np
Definition pthread.h:111
#define pthread_attr_setstackaddr
Definition pthread.h:44
#define pthread_detach
Definition pthread.h:28
#define pthread_condattr_setclock
Definition pthread.h:89
#define pthread_mutex_unlock
Definition pthread.h:71
#define pthread_barrierattr_getpshared
Definition pthread.h:107
@ PTHREAD_CANCEL_ENABLE
Definition pthread.h:230
@ PTHREAD_CANCEL_DISABLE
Definition pthread.h:231
#define pthread_barrierattr_init
Definition pthread.h:105
#define pthread_attr_getschedparam
Definition pthread.h:55
#define pthread_attr_setstacksize
Definition pthread.h:46
#define pthread_barrierattr_setpshared
Definition pthread.h:108
#define pthread_mutex_destroy
Definition pthread.h:67
#define pthread_setcanceltype
Definition pthread.h:35
#define pthread_rwlock_tryrdlock
Definition pthread.h:95
#define pthread_self
Definition pthread.h:24
@ PTHREAD_MUTEX_RECURSIVE
Definition pthread.h:152
@ PTHREAD_MUTEX_ERRORCHECK
Definition pthread.h:151
@ PTHREAD_MUTEX_NORMAL
Definition pthread.h:153
@ PTHREAD_MUTEX_DEFAULT
Definition pthread.h:154
#define pthread_cond_destroy
Definition pthread.h:80
#define pthread_rwlock_unlock
Definition pthread.h:100
#define pthread_cond_signal
Definition pthread.h:81
#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:79
#define pthread_getcpuclockid
Definition pthread.h:113
#define pthread_rwlock_destroy
Definition pthread.h:93
#define pthread_testcancel
Definition pthread.h:33
#define pthread_cond_timedwait
Definition pthread.h:84
#define pthread_cond_wait
Definition pthread.h:83
#define pthread_condattr_init
Definition pthread.h:85
#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:96
#define pthread_attr_setschedparam
Definition pthread.h:54
#define pthread_cancel
Definition pthread.h:30
#define pthread_mutexattr_init
Definition pthread.h:72
#define PTHREAD_CREATE_JOINABLE
Definition pthread.h:146
#define pthread_barrier_wait
Definition pthread.h:104
unsigned short uint16_t
Definition stdint.h:7
Definition mutex.h:10
Definition pthread.h:218
void * stackaddr
Definition pthread.h:225
size_t stacksize
Definition pthread.h:226
size_t guardsize
Definition pthread.h:224
int scope
Definition pthread.h:223
int schedpolicy
Definition pthread.h:220
int inheritsched
Definition pthread.h:222
int detachstate
Definition pthread.h:219
Definition pthread.h:191
pthread_mutex_t mutex
Definition pthread.h:192
unsigned threshold
Definition pthread.h:194
pthread_cond_t cond
Definition pthread.h:193
unsigned in
Definition pthread.h:195
unsigned out
Definition pthread.h:196
Definition pthread.h:188
int attr
Definition pthread.h:189
Definition pthread.h:168
int attr
Definition pthread.h:169
clockid_t clockid
Definition pthread.h:170
Definition pthread.h:161
int recursive_cnt
Definition pthread.h:164
vsf_mutex_t int attr
Definition pthread.h:163
Definition pthread.h:158
int attr
Definition pthread.h:159
Definition pthread.h:201
bool is_inited
Definition pthread.h:203
pthread_mutex_t mutex
Definition pthread.h:202
Definition pthread.h:174
vsf_sync_t wrsync
Definition pthread.h:182
uint16_t wrpend
Definition pthread.h:178
vsf_dlist_t rdlist
Definition pthread.h:179
vsf_dlist_t wrlist
Definition pthread.h:180
uint16_t rdref
Definition pthread.h:175
uint16_t rdpend
Definition pthread.h:177
uint16_t wrref
Definition pthread.h:176
vsf_sync_t rdsync
Definition pthread.h:181
Definition pthread.h:184
int attr
Definition pthread.h:185
Definition sched.h:34
Definition time.h:67
Definition vsf_list.h:883
Definition pthread.h:243
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_mutex_timedlock)
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:244
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_getcpuclockid)
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
Generated from commit: vsfteam/vsf@85be636