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