summaryrefslogtreecommitdiffstats
path: root/libc/private/bionic_tls.h
diff options
context:
space:
mode:
authorvinay harugop <vinay.harugop@stericsson.com>2009-08-05 02:09:29 +0530
committerJean-Baptiste Queru <jbq@google.com>2009-09-16 14:38:40 -0700
commita246a71975c1b4a939421ed20fdd8557f93de46f (patch)
tree4b22fcf89ca32961cb12ef7b9a3bf9752ea22d65 /libc/private/bionic_tls.h
parentc7f65a01e5ac3c4d3599ea3508459ecd6b54a71d (diff)
downloadbionic-a246a71975c1b4a939421ed20fdd8557f93de46f.zip
bionic-a246a71975c1b4a939421ed20fdd8557f93de46f.tar.gz
bionic-a246a71975c1b4a939421ed20fdd8557f93de46f.tar.bz2
Linux kernel helpers support is provided to android for its TLS implementation. This fix addresses this by modifying
the TLS access functions to use the kernel helper. This Fix is verified on ST Ericsson's U8500 platform and Submitted on behalf of a third-party: Surinder-pal SINGH from STMicroelectronics.
Diffstat (limited to 'libc/private/bionic_tls.h')
-rw-r--r--libc/private/bionic_tls.h4
1 files changed, 3 insertions, 1 deletions
diff --git a/libc/private/bionic_tls.h b/libc/private/bionic_tls.h
index 82c8cd9..742ef8c 100644
--- a/libc/private/bionic_tls.h
+++ b/libc/private/bionic_tls.h
@@ -87,8 +87,10 @@ extern void __init_tls(void** tls, void* thread_info);
extern int __set_tls(void *ptr);
/* get the TLS */
+/* Linux kernel helpers for its TLS implementation */
#ifdef __arm__
-# define __get_tls() ( *((volatile void **) 0xffff0ff0) )
+typedef void* (__kernel_get_tls_t)(void);
+#define __get_tls (*(__kernel_get_tls_t *)0xffff0fe0)
#else
extern void* __get_tls( void );
#endif