1 #ifndef _ASMPOWERPC_PROCESSOR_H_ 2 #define _ASMPOWERPC_PROCESSOR_H_ 3 4 #include <libcflat.h> 5 #include <asm/ptrace.h> 6 #include <asm/reg.h> 7 8 #ifndef __ASSEMBLY__ 9 void handle_exception(int trap, void (*func)(struct pt_regs *, void *), void *); 10 void do_handle_exception(struct pt_regs *regs); 11 #endif /* __ASSEMBLY__ */ 12 13 static inline uint64_t mfspr(int nr) 14 { 15 uint64_t ret; 16 17 asm volatile("mfspr %0,%1" : "=r"(ret) : "i"(nr) : "memory"); 18 19 return ret; 20 } 21 22 static inline void mtspr(int nr, uint64_t val) 23 { 24 asm volatile("mtspr %0,%1" : : "i"(nr), "r"(val) : "memory"); 25 } 26 27 static inline uint64_t mfmsr(void) 28 { 29 uint64_t msr; 30 31 asm volatile ("mfmsr %[msr]" : [msr] "=r" (msr) :: "memory"); 32 33 return msr; 34 } 35 36 static inline void mtmsr(uint64_t msr) 37 { 38 asm volatile ("mtmsrd %[msr]" :: [msr] "r" (msr) : "memory"); 39 } 40 41 #endif /* _ASMPOWERPC_PROCESSOR_H_ */ 42