1*1921c4c6SJanosch Frank /* SPDX-License-Identifier: GPL-2.0-or-later */ 2*1921c4c6SJanosch Frank /* 3*1921c4c6SJanosch Frank * Headers for fault.c 4*1921c4c6SJanosch Frank * 5*1921c4c6SJanosch Frank * Copyright 2021 IBM Corp. 6*1921c4c6SJanosch Frank * 7*1921c4c6SJanosch Frank * Authors: 8*1921c4c6SJanosch Frank * Janosch Frank <frankja@linux.ibm.com> 9*1921c4c6SJanosch Frank */ 10*1921c4c6SJanosch Frank #ifndef _S390X_FAULT_H_ 11*1921c4c6SJanosch Frank #define _S390X_FAULT_H_ 12*1921c4c6SJanosch Frank 13*1921c4c6SJanosch Frank #include <bitops.h> 14*1921c4c6SJanosch Frank 15*1921c4c6SJanosch Frank /* Instruction execution prevention, i.e. no-execute, 101 */ 16*1921c4c6SJanosch Frank static inline bool prot_is_iep(uint64_t teid) 17*1921c4c6SJanosch Frank { 18*1921c4c6SJanosch Frank if (test_bit_inv(56, &teid) && !test_bit_inv(60, &teid) && test_bit_inv(61, &teid)) 19*1921c4c6SJanosch Frank return true; 20*1921c4c6SJanosch Frank 21*1921c4c6SJanosch Frank return false; 22*1921c4c6SJanosch Frank } 23*1921c4c6SJanosch Frank 24*1921c4c6SJanosch Frank /* Standard DAT exception, 001 */ 25*1921c4c6SJanosch Frank static inline bool prot_is_datp(uint64_t teid) 26*1921c4c6SJanosch Frank { 27*1921c4c6SJanosch Frank if (!test_bit_inv(56, &teid) && !test_bit_inv(60, &teid) && test_bit_inv(61, &teid)) 28*1921c4c6SJanosch Frank return true; 29*1921c4c6SJanosch Frank 30*1921c4c6SJanosch Frank return false; 31*1921c4c6SJanosch Frank } 32*1921c4c6SJanosch Frank 33*1921c4c6SJanosch Frank /* Low-address protection exception, 100 */ 34*1921c4c6SJanosch Frank static inline bool prot_is_lap(uint64_t teid) 35*1921c4c6SJanosch Frank { 36*1921c4c6SJanosch Frank if (test_bit_inv(56, &teid) && !test_bit_inv(60, &teid) && !test_bit_inv(61, &teid)) 37*1921c4c6SJanosch Frank return true; 38*1921c4c6SJanosch Frank 39*1921c4c6SJanosch Frank return false; 40*1921c4c6SJanosch Frank } 41*1921c4c6SJanosch Frank 42*1921c4c6SJanosch Frank void print_decode_teid(uint64_t teid); 43*1921c4c6SJanosch Frank 44*1921c4c6SJanosch Frank #endif /* _S390X_FAULT_H_ */ 45