Rev 1123 | Rev 1656 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1123 | Rev 1129 | ||
---|---|---|---|
Line 29... | Line 29... | ||
29 | #ifndef __LIBC__mips32PSTHREAD_H__ |
29 | #ifndef __LIBC__mips32PSTHREAD_H__ |
30 | #define __LIBC__mips32PSTHREAD_H__ |
30 | #define __LIBC__mips32PSTHREAD_H__ |
31 | 31 | ||
32 | #include <types.h> |
32 | #include <types.h> |
33 | 33 | ||
- | 34 | /* We define our own context_set, because we need to set |
|
- | 35 | * the TLS pointer to the tcb+0x7000 |
|
- | 36 | * |
|
- | 37 | * See tls_set in thread.h |
|
- | 38 | */ |
|
- | 39 | #define context_set(c, _pc, stack, size, ptls) \ |
|
- | 40 | (c)->pc = (sysarg_t) (_pc); \ |
|
- | 41 | (c)->sp = ((sysarg_t) (stack)) + (size) - SP_DELTA; \ |
|
- | 42 | (c)->tls = ((sysarg_t)(ptls)) + 0x7000 + sizeof(tcb_t); |
|
- | 43 | ||
- | 44 | ||
34 | /* +16 is just for sure that the called function |
45 | /* +16 is just for sure that the called function |
35 | * have space to store it's arguments |
46 | * have space to store it's arguments |
36 | */ |
47 | */ |
37 | #define SP_DELTA (8+16) |
48 | #define SP_DELTA (8+16) |
38 | 49 |