Subversion Repositories HelenOS-historic

Rev

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
}