Rev 204 | Rev 253 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 204 | Rev 210 | ||
---|---|---|---|
Line 76... | Line 76... | ||
76 | */ |
76 | */ |
77 | static inline void cpu_priority_restore(pri_t pri) { |
77 | static inline void cpu_priority_restore(pri_t pri) { |
78 | __asm__ volatile ( |
78 | __asm__ volatile ( |
79 | "mfmsr %%r31\n" |
79 | "mfmsr %%r31\n" |
80 | "rlwimi %0, %%r31, 0, 17, 15\n" |
80 | "rlwimi %0, %%r31, 0, 17, 15\n" |
- | 81 | "cmpw 0, %0, %%r31\n" |
|
- | 82 | "beq 0f\n" |
|
81 | "mtmsr %0\n" |
83 | "mtmsr %0\n" |
- | 84 | "0:\n" |
|
82 | : "=r" (pri) |
85 | : "=r" (pri) |
83 | : "0" (pri) |
86 | : "0" (pri) |
84 | : "%r31" |
87 | : "%r31" |
85 | ); |
88 | ); |
86 | } |
89 | } |
87 | 90 | ||
- | 91 | /** Return raw priority level |
|
- | 92 | * |
|
- | 93 | * Return EE. |
|
- | 94 | */ |
|
- | 95 | static inline pri_t cpu_priority_read(void) { |
|
- | 96 | pri_t v; |
|
- | 97 | __asm__ volatile ( |
|
- | 98 | "mfmsr %0\n" |
|
- | 99 | : "=r" (v) |
|
- | 100 | ); |
|
- | 101 | return v; |
|
- | 102 | } |
|
- | 103 | ||
88 | /* TODO: implement the real stuff */ |
104 | /* TODO: implement the real stuff */ |
89 | static inline __address get_stack_base(void) |
105 | static inline __address get_stack_base(void) |
90 | { |
106 | { |
91 | return NULL; |
107 | return NULL; |
92 | } |
108 | } |