xref: /openbmc/linux/arch/arm/include/asm/fiq.h (revision 4baa9922430662431231ac637adedddbb0cfb2d7)
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