00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013 #ifndef _TLS_H
00014 #define _TLS_H 1
00015
00016 #include <support/SupportDefs.h>
00017
00018 #include <SysThread.h>
00019
00020
00021
00022 #ifdef __cplusplus
00023 extern "C" {
00024 #endif
00025
00026
00027
00028 static inline int32_t tls_allocate()
00029 {
00030 int32_t index = -1;
00031 SysTSDAllocate((SysTSDSlotID*)&index, NULL, sysTSDAnonymous);
00032 return index;
00033 }
00034
00035 static inline void* tls_get(int32_t index)
00036 {
00037 return SysTSDGet((SysTSDSlotID)index);
00038 }
00039
00040 static inline void tls_set(int32_t index, void *value)
00041 {
00042 SysTSDSet((SysTSDSlotID)index, value);
00043 }
00044
00045
00046 #ifdef __cplusplus
00047 }
00048 #endif
00049
00050 #endif