Rev 2927 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 2927 | Rev 3772 | ||
|---|---|---|---|
| Line 44... | Line 44... | ||
| 44 | void __free_tls_arch(tcb_t *tcb, size_t size) |
44 | void __free_tls_arch(tcb_t *tcb, size_t size) |
| 45 | { |
45 | { |
| 46 | tls_free_variant_1(tcb, size); |
46 | tls_free_variant_1(tcb, size); |
| 47 | } |
47 | } |
| 48 | 48 | ||
| - | 49 | typedef struct { |
|
| - | 50 | unsigned long ti_module; |
|
| - | 51 | unsigned long ti_offset; |
|
| - | 52 | } tls_index; |
|
| - | 53 | ||
| - | 54 | void *__tls_get_addr(tls_index *ti); |
|
| - | 55 | ||
| - | 56 | /* mips32 uses TLS variant 1 */ |
|
| - | 57 | void *__tls_get_addr(tls_index *ti) |
|
| - | 58 | { |
|
| - | 59 | uint8_t *tls; |
|
| - | 60 | uint32_t v; |
|
| - | 61 | ||
| - | 62 | tls = (uint8_t *)__tcb_get() + sizeof(tcb_t); |
|
| - | 63 | ||
| - | 64 | /* Hopefully this is right. No docs found. */ |
|
| - | 65 | v = (uint32_t) (tls + ti->ti_offset + 0x8000); |
|
| - | 66 | return (void *) v; |
|
| - | 67 | } |
|
| - | 68 | ||
| 49 | /** @} |
69 | /** @} |
| 50 | */ |
70 | */ |