diff options
| author | Jakob Kaivo <jkk@ung.org> | 2019-02-08 18:42:39 -0500 |
|---|---|---|
| committer | Jakob Kaivo <jkk@ung.org> | 2019-02-08 18:42:39 -0500 |
| commit | 7ef8a7379f7f7d09e71ccae2a0b688c3cd80423f (patch) | |
| tree | 092ab0aed1769117fd7b28b8592f6f96b0e0d5af /src/nonstd/__libc_per_thread.c | |
| parent | 6acf19370e8adff79cd83b257d3f04aeaf2a59dd (diff) | |
merge sources into single tree
Diffstat (limited to 'src/nonstd/__libc_per_thread.c')
| -rw-r--r-- | src/nonstd/__libc_per_thread.c | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/src/nonstd/__libc_per_thread.c b/src/nonstd/__libc_per_thread.c new file mode 100644 index 00000000..5cc2f2a5 --- /dev/null +++ b/src/nonstd/__libc_per_thread.c @@ -0,0 +1,28 @@ +#include "nonstd/internal.h" +#include "locale.h" +#include "nonstd/locale.h" + +#if defined __STDC_VERSION__ && 201112L <= __STDC_VERSION__ && !defined __STDC_NO_THREADS__ +#define THREAD_LOCAL static _Thread_local +#else +#define THREAD_LOCAL static +#endif + +void *__libc_per_thread(LIBC_INTERNAL variable) +{ + THREAD_LOCAL int errno; + THREAD_LOCAL struct __locale_t *locale; + + switch (variable) { + case ERRNO: + return &errno; + + case THREAD_LOCALE: + return &locale; + + default: + break; + } + + return (void*)0; +} |
