Subversion Repositories HelenOS

Rev

Rev 2465 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2465 Rev 2468
Line 58... Line 58...
58
 *
58
 *
59
 *  @param tcb TCB (TLS starts behind)
59
 *  @param tcb TCB (TLS starts behind)
60
 */
60
 */
61
static inline void __tcb_set(tcb_t *tcb)
61
static inline void __tcb_set(tcb_t *tcb)
62
{
62
{
63
    void *tls = (void *)tcb;
63
    void *tls = (void *) tcb;
64
    tls += sizeof(tcb_t) + ARM_TP_OFFSET;
64
    tls += sizeof(tcb_t) + ARM_TP_OFFSET;
65
    asm volatile (
65
    asm volatile (
66
        "mov r9, %0"
66
        "mov r9, %0"
67
        :
67
        :
68
        : "r"(tls)
68
        : "r"(tls)
Line 79... Line 79...
79
    void *ret;
79
    void *ret;
80
    asm volatile (
80
    asm volatile (
81
        "mov %0, r9"
81
        "mov %0, r9"
82
        : "=r"(ret)
82
        : "=r"(ret)
83
    );
83
    );
84
    return (tcb_t *)(ret - ARM_TP_OFFSET - sizeof(tcb_t));
84
    return (tcb_t *) (ret - ARM_TP_OFFSET - sizeof(tcb_t));
85
}
85
}
86
 
86
 
87
 
87
 
88
/** Returns TLS address stored.
88
/** Returns TLS address stored.
89
 *
89
 *