diff options
Diffstat (limited to 'mdk-stage1/dietlibc/libpthread/pthread_getspecific.c')
-rw-r--r-- | mdk-stage1/dietlibc/libpthread/pthread_getspecific.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/mdk-stage1/dietlibc/libpthread/pthread_getspecific.c b/mdk-stage1/dietlibc/libpthread/pthread_getspecific.c new file mode 100644 index 000000000..c2f84c814 --- /dev/null +++ b/mdk-stage1/dietlibc/libpthread/pthread_getspecific.c @@ -0,0 +1,20 @@ +#include <unistd.h> +#include <errno.h> + +#include <pthread.h> +#include "thread_internal.h" + +extern struct _thread_key __thread_keys[PTHREAD_KEYS_MAX]; +const void *pthread_getspecific(pthread_key_t key) +{ + int id; + __THREAD_INIT(); + + id=__find_thread_id(getpid()); + + if ((key<PTHREAD_KEYS_MAX) && (__thread_keys[key].used)) { + return __thread_keys[key].tkd[id]; + } + return 0; +} + |