Changes in uspace/lib/c/arch/ia32/src/tls.c [31399f3:d2bb25e7] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/c/arch/ia32/src/tls.c
r31399f3 rd2bb25e7 1 1 /* 2 2 * Copyright (c) 2006 Ondrej Palkovsky 3 * Copyright (c) 2016 Jiri Svoboda 3 4 * All rights reserved. 4 5 * … … 39 40 #include <align.h> 40 41 42 #ifdef CONFIG_RTLD 43 #include <rtld/rtld.h> 44 #endif 45 41 46 tcb_t *tls_alloc_arch(void **data, size_t size) 42 47 { … … 64 69 *___tls_get_addr(tls_index *ti) 65 70 { 66 size_t tls_size;67 71 uint8_t *tls; 68 72 69 /* Calculate size of TLS block */ 70 tls_size = ALIGN_UP(&_tbss_end - &_tdata_start, &_tls_alignment); 71 72 /* The TLS block is just before TCB */ 73 tls = (uint8_t *)__tcb_get() - tls_size; 74 73 #ifdef CONFIG_RTLD 74 if (runtime_env != NULL) { 75 return rtld_tls_get_addr(runtime_env, __tcb_get(), 76 ti->ti_module, ti->ti_offset); 77 } 78 #endif 79 /* Get address of static TLS block */ 80 tls = tls_get(); 75 81 return tls + ti->ti_offset; 76 82 }
Note:
See TracChangeset
for help on using the changeset viewer.