Rev 2332 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 2332 | Rev 2334 | ||
---|---|---|---|
Line 42... | Line 42... | ||
42 | 42 | ||
43 | /** see <a href="http://www.arm.com/support/faqdev/14269.html">ABI</a> for details */ |
43 | /** see <a href="http://www.arm.com/support/faqdev/14269.html">ABI</a> for details */ |
44 | #define STACK_ALIGNMENT 8 |
44 | #define STACK_ALIGNMENT 8 |
45 | 45 | ||
46 | #define SP_DELTA (0 + ALIGN_UP(STACK_ITEM_SIZE, STACK_ALIGNMENT)) |
46 | #define SP_DELTA (0 + ALIGN_UP(STACK_ITEM_SIZE, STACK_ALIGNMENT)) |
- | 47 | ||
- | 48 | #define context_set(c, _pc, stack, size, ptls) \ |
|
47 | //TODO: check if correct |
49 | (c)->pc = (sysarg_t) (_pc); \ |
- | 50 | (c)->sp = ((sysarg_t) (stack)) + (size) - SP_DELTA; \ |
|
- | 51 | (c)->tls = ((sysarg_t)(ptls)) + sizeof(tcb_t); |
|
- | 52 | ||
48 | 53 | ||
49 | typedef struct { |
54 | typedef struct { |
50 | uint32_t sp; |
55 | uint32_t sp; |
51 | uint32_t pc; |
56 | uint32_t pc; |
52 | uint32_t r4; |
57 | uint32_t r4; |
Line 57... | Line 62... | ||
57 | uint32_t tls; |
62 | uint32_t tls; |
58 | uint32_t r10; |
63 | uint32_t r10; |
59 | uint32_t r11; |
64 | uint32_t r11; |
60 | } context_t; |
65 | } context_t; |
61 | 66 | ||
- | 67 | ||
62 | #endif |
68 | #endif |
63 | 69 | ||
64 | /** @} |
70 | /** @} |
65 | */ |
71 | */ |