Subversion Repositories HelenOS

Rev

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

Rev 2479 Rev 2482
Line 33... Line 33...
33
 * @ingroup libcmips32eb   
33
 * @ingroup libcmips32eb   
34
 */
34
 */
35
 
35
 
36
/* TLS for MIPS is described in http://www.linux-mips.org/wiki/NPTL */
36
/* TLS for MIPS is described in http://www.linux-mips.org/wiki/NPTL */
37
 
37
 
38
#ifndef LIBC_mips32THREAD_H_
38
#ifndef LIBC_mips32_THREAD_H_
39
#define LIBC_mips32THREAD_H_
39
#define LIBC_mips32_THREAD_H_
40
 
40
 
41
/* I did not find any specification (neither MIPS nor PowerPC), but
41
/* I did not find any specification (neither MIPS nor PowerPC), but
42
 * as I found it
42
 * as I found it
43
 * - it uses Variant II
43
 * - it uses Variant II
44
 * - TCB is at Address(First TLS Block)+0x7000.
44
 * - TCB is at Address(First TLS Block)+0x7000.
Line 51... Line 51...
51
 * - No assumption about DTV etc., but it will not have a fixed address
51
 * - No assumption about DTV etc., but it will not have a fixed address
52
 */
52
 */
53
#define MIPS_TP_OFFSET 0x7000
53
#define MIPS_TP_OFFSET 0x7000
54
 
54
 
55
typedef struct {
55
typedef struct {
56
    void *pst_data;
56
    void *fibril_data;
57
} tcb_t;
57
} tcb_t;
58
 
58
 
59
static inline void __tcb_set(tcb_t *tcb)
59
static inline void __tcb_set(tcb_t *tcb)
60
{
60
{
61
    void *tp = tcb;
61
    void *tp = tcb;