Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/c/arch/ia32/src/tls.c

    r7f9bc04 r63f8966  
    3737#include <tls.h>
    3838#include <sys/types.h>
    39 #include <align.h>
    4039
    4140tcb_t * __alloc_tls(void **data, size_t size)
     
    4948}
    5049
    51 /*
    52  * Rtld TLS support
    53  */
    54 
    55 typedef struct {
    56         unsigned long int ti_module;
    57         unsigned long int ti_offset;
    58 } tls_index;
    59 
    60 void __attribute__ ((__regparm__ (1)))
    61     *___tls_get_addr(tls_index *ti);
    62 
    63 void __attribute__ ((__regparm__ (1)))
    64     *___tls_get_addr(tls_index *ti)
    65 {
    66         size_t tls_size;
    67         uint8_t *tls;
    68 
    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 
    75         return tls + ti->ti_offset;
    76 }
    77 
    7850/** @}
    7951 */
Note: See TracChangeset for help on using the changeset viewer.