xref: /openbmc/linux/arch/arm64/include/asm/uprobes.h (revision ef08c0fa)
1d2912cb1SThomas Gleixner /* SPDX-License-Identifier: GPL-2.0-only */
29842ceaeSPratyush Anand /*
39842ceaeSPratyush Anand  * Copyright (C) 2014-2016 Pratyush Anand <panand@redhat.com>
49842ceaeSPratyush Anand  */
59842ceaeSPratyush Anand 
69842ceaeSPratyush Anand #ifndef _ASM_UPROBES_H
79842ceaeSPratyush Anand #define _ASM_UPROBES_H
89842ceaeSPratyush Anand 
99842ceaeSPratyush Anand #include <asm/debug-monitors.h>
109842ceaeSPratyush Anand #include <asm/insn.h>
119842ceaeSPratyush Anand #include <asm/probes.h>
129842ceaeSPratyush Anand 
139842ceaeSPratyush Anand #define MAX_UINSN_BYTES		AARCH64_INSN_SIZE
149842ceaeSPratyush Anand 
1560f07e22Sjunhua huang #define UPROBE_SWBP_INSN	cpu_to_le32(BRK64_OPCODE_UPROBES)
169842ceaeSPratyush Anand #define UPROBE_SWBP_INSN_SIZE	AARCH64_INSN_SIZE
179842ceaeSPratyush Anand #define UPROBE_XOL_SLOT_BYTES	MAX_UINSN_BYTES
189842ceaeSPratyush Anand 
19*ef08c0faSjunhua huang typedef __le32 uprobe_opcode_t;
209842ceaeSPratyush Anand 
219842ceaeSPratyush Anand struct arch_uprobe_task {
229842ceaeSPratyush Anand };
239842ceaeSPratyush Anand 
249842ceaeSPratyush Anand struct arch_uprobe {
259842ceaeSPratyush Anand 	union {
269842ceaeSPratyush Anand 		u8 insn[MAX_UINSN_BYTES];
279842ceaeSPratyush Anand 		u8 ixol[MAX_UINSN_BYTES];
289842ceaeSPratyush Anand 	};
299842ceaeSPratyush Anand 	struct arch_probe_insn api;
309842ceaeSPratyush Anand 	bool simulate;
319842ceaeSPratyush Anand };
329842ceaeSPratyush Anand 
339842ceaeSPratyush Anand #endif
34