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