11921c4c6SJanosch Frank /* SPDX-License-Identifier: GPL-2.0-or-later */ 21921c4c6SJanosch Frank /* 31921c4c6SJanosch Frank * Headers for fault.c 41921c4c6SJanosch Frank * 51921c4c6SJanosch Frank * Copyright 2021 IBM Corp. 61921c4c6SJanosch Frank * 71921c4c6SJanosch Frank * Authors: 81921c4c6SJanosch Frank * Janosch Frank <frankja@linux.ibm.com> 91921c4c6SJanosch Frank */ 101921c4c6SJanosch Frank #ifndef _S390X_FAULT_H_ 111921c4c6SJanosch Frank #define _S390X_FAULT_H_ 121921c4c6SJanosch Frank 131921c4c6SJanosch Frank #include <bitops.h> 14*c2c1663aSJanis Schoetterl-Glausch #include <asm/facility.h> 15*c2c1663aSJanis Schoetterl-Glausch #include <asm/interrupt.h> 161921c4c6SJanosch Frank 171921c4c6SJanosch Frank /* Instruction execution prevention, i.e. no-execute, 101 */ prot_is_iep(union teid teid)18*c2c1663aSJanis Schoetterl-Glauschstatic inline bool prot_is_iep(union teid teid) 191921c4c6SJanosch Frank { 20*c2c1663aSJanis Schoetterl-Glausch if (!test_facility(130)) 211921c4c6SJanosch Frank return false; 22*c2c1663aSJanis Schoetterl-Glausch /* IEP installed -> ESOP2 installed */ 23*c2c1663aSJanis Schoetterl-Glausch return teid_esop2_prot_code(teid) == PROT_IEP; 241921c4c6SJanosch Frank } 251921c4c6SJanosch Frank 261921c4c6SJanosch Frank void print_decode_teid(uint64_t teid); 271921c4c6SJanosch Frank 281921c4c6SJanosch Frank #endif /* _S390X_FAULT_H_ */ 29