/*1* arch/arm/include/asm/fiq.h2*3* Support for FIQ on ARM architectures.4* Written by Philip Blundell <[email protected]>, 19985* Re-written by Russell King6*7* NOTE: The FIQ mode registers are not magically preserved across8* suspend/resume.9*10* Drivers which require these registers to be preserved across power11* management operations must implement appropriate suspend/resume handlers to12* save and restore them.13*/1415#ifndef __ASM_FIQ_H16#define __ASM_FIQ_H1718#include <asm/ptrace.h>1920struct fiq_handler {21struct fiq_handler *next;22/* Name23*/24const char *name;25/* Called to ask driver to relinquish/26* reacquire FIQ27* return zero to accept, or -<errno>28*/29int (*fiq_op)(void *, int relinquish);30/* data for the relinquish/reacquire functions31*/32void *dev_id;33};3435extern int claim_fiq(struct fiq_handler *f);36extern void release_fiq(struct fiq_handler *f);37extern void set_fiq_handler(void *start, unsigned int length);38extern void enable_fiq(int fiq);39extern void disable_fiq(int fiq);4041/* helpers defined in fiqasm.S: */42extern void __set_fiq_regs(unsigned long const *regs);43extern void __get_fiq_regs(unsigned long *regs);4445static inline void set_fiq_regs(struct pt_regs const *regs)46{47__set_fiq_regs(®s->ARM_r8);48}4950static inline void get_fiq_regs(struct pt_regs *regs)51{52__get_fiq_regs(®s->ARM_r8);53}5455#endif565758