Rev 1217 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 1217 | Rev 1286 | ||
|---|---|---|---|
| Line 29... | Line 29... | ||
| 29 | #ifndef __LIBC__ppc32__PSTHREAD_H__ |
29 | #ifndef __LIBC__ppc32__PSTHREAD_H__ |
| 30 | #define __LIBC__ppc32__PSTHREAD_H__ |
30 | #define __LIBC__ppc32__PSTHREAD_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 | */ |
|
| 34 | #define context_set(c, _pc, stack, size, ptls) \ |
39 | #define context_set(c, _pc, stack, size, ptls) \ |
| 35 | (c)->pc = (sysarg_t) (_pc); \ |
40 | (c)->pc = (sysarg_t) (_pc); \ |
| 36 | (c)->sp = ((sysarg_t) (stack)) + (size) - SP_DELTA; \ |
41 | (c)->sp = ((sysarg_t) (stack)) + (size) - SP_DELTA; \ |
| 37 | (c)->tls = ((sysarg_t)(ptls)) + 0x7000 + sizeof(tcb_t); |
42 | (c)->tls = ((sysarg_t) (ptls)) + 0x7000 + sizeof(tcb_t); |
| 38 | 43 | ||
| 39 | #define SP_DELTA (8+16) |
44 | #define SP_DELTA 16 |
| 40 | 45 | ||
| 41 | typedef struct { |
46 | typedef struct { |
| 42 | uint32_t sp; |
47 | uint32_t sp; |
| 43 | uint32_t pc; |
48 | uint32_t pc; |
| 44 | 49 | ||
| 45 | uint32_t tls; |
50 | uint32_t tls; |
| - | 51 | uint32_t r13; |
|
| - | 52 | uint32_t r14; |
|
| - | 53 | uint32_t r15; |
|
| - | 54 | uint32_t r16; |
|
| - | 55 | uint32_t r17; |
|
| - | 56 | uint32_t r18; |
|
| - | 57 | uint32_t r19; |
|
| - | 58 | uint32_t r20; |
|
| - | 59 | uint32_t r21; |
|
| - | 60 | uint32_t r22; |
|
| - | 61 | uint32_t r23; |
|
| - | 62 | uint32_t r24; |
|
| - | 63 | uint32_t r25; |
|
| - | 64 | uint32_t r26; |
|
| - | 65 | uint32_t r27; |
|
| - | 66 | uint32_t r28; |
|
| - | 67 | uint32_t r29; |
|
| - | 68 | uint32_t r30; |
|
| - | 69 | uint32_t r31; |
|
| - | 70 | ||
| 46 | } context_t; |
71 | uint32_t cr; |
| - | 72 | } __attribute__ ((packed)) context_t; |
|
| 47 | 73 | ||
| 48 | #endif |
74 | #endif |