uprobes.h (1017B)
1/* SPDX-License-Identifier: GPL-2.0-or-later */ 2#ifndef _ASM_UPROBES_H 3#define _ASM_UPROBES_H 4/* 5 * User-space Probes (UProbes) for x86 6 * 7 * Copyright (C) IBM Corporation, 2008-2011 8 * Authors: 9 * Srikar Dronamraju 10 * Jim Keniston 11 */ 12 13#include <linux/notifier.h> 14 15typedef u8 uprobe_opcode_t; 16 17#define MAX_UINSN_BYTES 16 18#define UPROBE_XOL_SLOT_BYTES 128 /* to keep it cache aligned */ 19 20#define UPROBE_SWBP_INSN 0xcc 21#define UPROBE_SWBP_INSN_SIZE 1 22 23struct uprobe_xol_ops; 24 25struct arch_uprobe { 26 union { 27 u8 insn[MAX_UINSN_BYTES]; 28 u8 ixol[MAX_UINSN_BYTES]; 29 }; 30 31 const struct uprobe_xol_ops *ops; 32 33 union { 34 struct { 35 s32 offs; 36 u8 ilen; 37 u8 opc1; 38 } branch; 39 struct { 40 u8 fixups; 41 u8 ilen; 42 } defparam; 43 struct { 44 u8 reg_offset; /* to the start of pt_regs */ 45 u8 ilen; 46 } push; 47 }; 48}; 49 50struct arch_uprobe_task { 51#ifdef CONFIG_X86_64 52 unsigned long saved_scratch_register; 53#endif 54 unsigned int saved_trap_nr; 55 unsigned int saved_tf; 56}; 57 58#endif /* _ASM_UPROBES_H */