1 /* 2 * arch/arm/include/asm/fiq.h 3 * 4 * Support for FIQ on ARM architectures. 5 * Written by Philip Blundell <philb@gnu.org>, 1998 6 * Re-written by Russell King 7 */ 8 9 #ifndef __ASM_FIQ_H 10 #define __ASM_FIQ_H 11 12 #include <asm/ptrace.h> 13 14 struct fiq_handler { 15 struct fiq_handler *next; 16 /* Name 17 */ 18 const char *name; 19 /* Called to ask driver to relinquish/ 20 * reacquire FIQ 21 * return zero to accept, or -<errno> 22 */ 23 int (*fiq_op)(void *, int relinquish); 24 /* data for the relinquish/reacquire functions 25 */ 26 void *dev_id; 27 }; 28 29 extern int claim_fiq(struct fiq_handler *f); 30 extern void release_fiq(struct fiq_handler *f); 31 extern void set_fiq_handler(void *start, unsigned int length); 32 extern void enable_fiq(int fiq); 33 extern void disable_fiq(int fiq); 34 35 /* helpers defined in fiqasm.S: */ 36 extern void __set_fiq_regs(unsigned long const *regs); 37 extern void __get_fiq_regs(unsigned long *regs); 38 39 static inline void set_fiq_regs(struct pt_regs const *regs) 40 { 41 __set_fiq_regs(®s->ARM_r8); 42 } 43 44 static inline void get_fiq_regs(struct pt_regs *regs) 45 { 46 __get_fiq_regs(®s->ARM_r8); 47 } 48 49 #endif 50