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