Rev 2320 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 2320 | Rev 2333 | ||
---|---|---|---|
Line 44... | Line 44... | ||
44 | /* TODO */ |
44 | /* TODO */ |
45 | } tcb_t; |
45 | } tcb_t; |
46 | 46 | ||
47 | static inline void __tcb_set(tcb_t *tcb) |
47 | static inline void __tcb_set(tcb_t *tcb) |
48 | { |
48 | { |
- | 49 | void* tmp = (void*)tcb + sizeof(tcb_t); |
|
49 | asm( |
50 | asm( |
50 | "mov r9, %0" |
51 | "mov r9, %0" |
51 | : |
52 | : |
52 | : "r"(tcb) |
53 | : "r"(tmp) |
53 | ); |
54 | ); |
54 | } |
55 | } |
55 | 56 | ||
56 | static inline tcb_t *__tcb_get(void) |
57 | static inline tcb_t *__tcb_get(void) |
57 | { |
58 | { |
58 | tcb_t* ret; |
59 | void* ret; |
59 | asm( |
60 | asm( |
60 | "mov %0, r9" |
61 | "mov %0, r9" |
61 | : "=r"(ret) |
62 | : "=r"(ret) |
62 | ); |
63 | ); |
- | 64 | ret -= sizeof(tcb_t); |
|
63 | return ret; |
65 | return (tcb_t*)ret; |
64 | } |
66 | } |
65 | 67 | ||
66 | #endif |
68 | #endif |
67 | 69 | ||
68 | /** @} |
70 | /** @} |