root/arch/x86/include/asm/uprobes.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   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 
  15 typedef 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 
  23 struct uprobe_xol_ops;
  24 
  25 struct 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 
  50 struct 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 */

/* [<][>][^][v][top][bottom][index][help] */