xref: /openbmc/linux/arch/arm/mm/fault.h (revision 136848d4)
1136848d4SCatalin Marinas #ifndef __ARCH_ARM_FAULT_H
2136848d4SCatalin Marinas #define __ARCH_ARM_FAULT_H
31da177e4SLinus Torvalds 
4136848d4SCatalin Marinas /*
5136848d4SCatalin Marinas  * Fault status register encodings.  We steal bit 31 for our own purposes.
6136848d4SCatalin Marinas  */
7136848d4SCatalin Marinas #define FSR_LNX_PF		(1 << 31)
8136848d4SCatalin Marinas #define FSR_WRITE		(1 << 11)
9136848d4SCatalin Marinas #define FSR_FS4			(1 << 10)
10136848d4SCatalin Marinas #define FSR_FS3_0		(15)
11136848d4SCatalin Marinas 
12136848d4SCatalin Marinas static inline int fsr_fs(unsigned int fsr)
13136848d4SCatalin Marinas {
14136848d4SCatalin Marinas 	return (fsr & FSR_FS3_0) | (fsr & FSR_FS4) >> 6;
15136848d4SCatalin Marinas }
16136848d4SCatalin Marinas 
17136848d4SCatalin Marinas void do_bad_area(unsigned long addr, unsigned int fsr, struct pt_regs *regs);
181da177e4SLinus Torvalds unsigned long search_exception_table(unsigned long addr);
19136848d4SCatalin Marinas 
20136848d4SCatalin Marinas #endif	/* __ARCH_ARM_FAULT_H */
21