16842bc34SLaurent Vivier #ifndef _ASMPOWERPC_PROCESSOR_H_ 26842bc34SLaurent Vivier #define _ASMPOWERPC_PROCESSOR_H_ 36842bc34SLaurent Vivier 4*f4d8d939SSuraj Jitindar Singh #include <libcflat.h> 56842bc34SLaurent Vivier #include <asm/ptrace.h> 66842bc34SLaurent Vivier 76842bc34SLaurent Vivier #ifndef __ASSEMBLY__ 86842bc34SLaurent Vivier void handle_exception(int trap, void (*func)(struct pt_regs *, void *), void *); 96842bc34SLaurent Vivier void do_handle_exception(struct pt_regs *regs); 106842bc34SLaurent Vivier #endif /* __ASSEMBLY__ */ 116842bc34SLaurent Vivier 12*f4d8d939SSuraj Jitindar Singh static inline uint64_t get_tb(void) 13*f4d8d939SSuraj Jitindar Singh { 14*f4d8d939SSuraj Jitindar Singh uint64_t tb; 15*f4d8d939SSuraj Jitindar Singh 16*f4d8d939SSuraj Jitindar Singh asm volatile ("mfspr %[tb],268" : [tb] "=r" (tb)); 17*f4d8d939SSuraj Jitindar Singh 18*f4d8d939SSuraj Jitindar Singh return tb; 19*f4d8d939SSuraj Jitindar Singh } 20*f4d8d939SSuraj Jitindar Singh 21*f4d8d939SSuraj Jitindar Singh extern void delay(uint64_t cycles); 22*f4d8d939SSuraj Jitindar Singh extern void udelay(uint64_t us); 23*f4d8d939SSuraj Jitindar Singh 24*f4d8d939SSuraj Jitindar Singh static inline void mdelay(uint64_t ms) 25*f4d8d939SSuraj Jitindar Singh { 26*f4d8d939SSuraj Jitindar Singh while (ms--) 27*f4d8d939SSuraj Jitindar Singh udelay(1000); 28*f4d8d939SSuraj Jitindar Singh } 29*f4d8d939SSuraj Jitindar Singh 306842bc34SLaurent Vivier #endif /* _ASMPOWERPC_PROCESSOR_H_ */ 31