Subversion Repositories HelenOS-historic

Rev

Rev 747 | Rev 1078 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 747 Rev 919
Line 46... Line 46...
46
    __asm__ volatile ("and %0 = %1, r12" : "=r" (v) : "r" (~(STACK_SIZE-1)));
46
    __asm__ volatile ("and %0 = %1, r12" : "=r" (v) : "r" (~(STACK_SIZE-1)));
47
   
47
   
48
    return v;
48
    return v;
49
}
49
}
50
 
50
 
-
 
51
/** Return Processor State Register.
-
 
52
 *
-
 
53
 * @return PSR.
-
 
54
 */
-
 
55
static inline __u64 psr_read(void)
-
 
56
{
-
 
57
    __u64 v;
-
 
58
   
-
 
59
    __asm__ volatile ("mov %0 = psr\n" : "=r" (v));
-
 
60
   
-
 
61
    return v;
-
 
62
}
-
 
63
 
51
/** Read IVA (Interruption Vector Address).
64
/** Read IVA (Interruption Vector Address).
52
 *
65
 *
53
 * @return Return location of interruption vector table.
66
 * @return Return location of interruption vector table.
54
 */
67
 */
55
static inline __u64 iva_read(void)
68
static inline __u64 iva_read(void)
Line 230... Line 243...
230
 *
243
 *
231
 * @return PSR.
244
 * @return PSR.
232
 */
245
 */
233
static inline ipl_t interrupts_read(void)
246
static inline ipl_t interrupts_read(void)
234
{
247
{
235
    __u64 v;
-
 
236
   
-
 
237
    __asm__ volatile ("mov %0 = psr\n" : "=r" (v));
-
 
238
   
-
 
239
    return (ipl_t) v;
248
    return (ipl_t) psr_read();
240
}
249
}
241
 
250
 
242
/** Disable protection key checking. */
251
/** Disable protection key checking. */
243
static inline void pk_disable(void)
252
static inline void pk_disable(void)
244
{
253
{
Line 247... Line 256...
247
 
256
 
248
extern void cpu_halt(void);
257
extern void cpu_halt(void);
249
extern void cpu_sleep(void);
258
extern void cpu_sleep(void);
250
extern void asm_delay_loop(__u32 t);
259
extern void asm_delay_loop(__u32 t);
251
 
260
 
-
 
261
extern void switch_to_userspace(__address entry, __address sp, __address bsp, __u64 ipsr, __u64 rsc);
-
 
262
 
252
#endif
263
#endif