1*1a59d1b8SThomas Gleixner /* SPDX-License-Identifier: GPL-2.0-or-later */ 2ff3a3e9bSPekka Paalanen /* 3ff3a3e9bSPekka Paalanen * Fault Injection Test harness (FI) 4ff3a3e9bSPekka Paalanen * Copyright (C) Intel Crop. 5ff3a3e9bSPekka Paalanen */ 6ff3a3e9bSPekka Paalanen 7ff3a3e9bSPekka Paalanen #ifndef __PF_H_ 8ff3a3e9bSPekka Paalanen #define __PF_H_ 9ff3a3e9bSPekka Paalanen 10ff3a3e9bSPekka Paalanen enum reason_type { 11ff3a3e9bSPekka Paalanen NOT_ME, /* page fault is not in regions */ 12ff3a3e9bSPekka Paalanen NOTHING, /* access others point in regions */ 13ff3a3e9bSPekka Paalanen REG_READ, /* read from addr to reg */ 14ff3a3e9bSPekka Paalanen REG_WRITE, /* write from reg to addr */ 15ff3a3e9bSPekka Paalanen IMM_WRITE, /* write from imm to addr */ 16ff3a3e9bSPekka Paalanen OTHERS /* Other instructions can not intercept */ 17ff3a3e9bSPekka Paalanen }; 18ff3a3e9bSPekka Paalanen 19ff3a3e9bSPekka Paalanen enum reason_type get_ins_type(unsigned long ins_addr); 20ff3a3e9bSPekka Paalanen unsigned int get_ins_mem_width(unsigned long ins_addr); 21ff3a3e9bSPekka Paalanen unsigned long get_ins_reg_val(unsigned long ins_addr, struct pt_regs *regs); 22ff3a3e9bSPekka Paalanen unsigned long get_ins_imm_val(unsigned long ins_addr); 23ff3a3e9bSPekka Paalanen 24ff3a3e9bSPekka Paalanen #endif /* __PF_H_ */ 25