1 #ifndef __ARCH_ARM_FAULT_H 2 #define __ARCH_ARM_FAULT_H 3 4 /* 5 * Fault status register encodings. We steal bit 31 for our own purposes. 6 */ 7 #define FSR_LNX_PF (1 << 31) 8 #define FSR_WRITE (1 << 11) 9 #define FSR_FS4 (1 << 10) 10 #define FSR_FS3_0 (15) 11 #define FSR_FS5_0 (0x3f) 12 13 #ifdef CONFIG_ARM_LPAE 14 static inline int fsr_fs(unsigned int fsr) 15 { 16 return fsr & FSR_FS5_0; 17 } 18 #else 19 static inline int fsr_fs(unsigned int fsr) 20 { 21 return (fsr & FSR_FS3_0) | (fsr & FSR_FS4) >> 6; 22 } 23 #endif 24 25 void do_bad_area(unsigned long addr, unsigned int fsr, struct pt_regs *regs); 26 unsigned long search_exception_table(unsigned long addr); 27 void early_abt_enable(void); 28 29 #endif /* __ARCH_ARM_FAULT_H */ 30