1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0-only */ 2*4882a593Smuzhiyun /* 3*4882a593Smuzhiyun * Copyright (C) 2014-2016 Pratyush Anand <panand@redhat.com> 4*4882a593Smuzhiyun */ 5*4882a593Smuzhiyun 6*4882a593Smuzhiyun #ifndef _ASM_UPROBES_H 7*4882a593Smuzhiyun #define _ASM_UPROBES_H 8*4882a593Smuzhiyun 9*4882a593Smuzhiyun #include <asm/debug-monitors.h> 10*4882a593Smuzhiyun #include <asm/insn.h> 11*4882a593Smuzhiyun #include <asm/probes.h> 12*4882a593Smuzhiyun 13*4882a593Smuzhiyun #define MAX_UINSN_BYTES AARCH64_INSN_SIZE 14*4882a593Smuzhiyun 15*4882a593Smuzhiyun #define UPROBE_SWBP_INSN BRK64_OPCODE_UPROBES 16*4882a593Smuzhiyun #define UPROBE_SWBP_INSN_SIZE AARCH64_INSN_SIZE 17*4882a593Smuzhiyun #define UPROBE_XOL_SLOT_BYTES MAX_UINSN_BYTES 18*4882a593Smuzhiyun 19*4882a593Smuzhiyun typedef u32 uprobe_opcode_t; 20*4882a593Smuzhiyun 21*4882a593Smuzhiyun struct arch_uprobe_task { 22*4882a593Smuzhiyun }; 23*4882a593Smuzhiyun 24*4882a593Smuzhiyun struct arch_uprobe { 25*4882a593Smuzhiyun union { 26*4882a593Smuzhiyun u8 insn[MAX_UINSN_BYTES]; 27*4882a593Smuzhiyun u8 ixol[MAX_UINSN_BYTES]; 28*4882a593Smuzhiyun }; 29*4882a593Smuzhiyun struct arch_probe_insn api; 30*4882a593Smuzhiyun bool simulate; 31*4882a593Smuzhiyun }; 32*4882a593Smuzhiyun 33*4882a593Smuzhiyun #endif 34