uprobe_opcode_t
uprobe_opcode_t bpinsn;
bool is_swbp_insn(uprobe_opcode_t *insn)
bool is_swbp_insn(uprobe_opcode_t *insn)
bool is_trap_insn(uprobe_opcode_t *insn)
bool is_trap_insn(uprobe_opcode_t *insn)
bool is_swbp_insn(uprobe_opcode_t *insn)
*(uprobe_opcode_t *)dst = __BUG_INSN_32;
bool is_trap_insn(uprobe_opcode_t *insn)
uprobe_opcode_t insn[3];
uprobe_opcode_t ixol[3];
static bool __is_optimized(uprobe_opcode_t *insn, unsigned long vaddr)
uprobe_opcode_t insn[5];
return __is_optimized((uprobe_opcode_t *)&insn, vaddr);
return uprobe_write_opcode(auprobe, vma, vaddr, *(uprobe_opcode_t *)&auprobe->insn,
uprobe_opcode_t insn[5];
if (!is_swbp_insn((uprobe_opcode_t*) &insn))
static uprobe_opcode_t insn = UPROBE_SWBP_INSN;
static int is_call_insn(uprobe_opcode_t *insn)
static int verify_insn(struct page *page, unsigned long vaddr, uprobe_opcode_t *new_opcode,
uprobe_opcode_t old_opcode[5];
uprobe_copy_from_page(page, ctx->base, (uprobe_opcode_t *) &old_opcode, 5);
uprobe_opcode_t int3 = UPROBE_SWBP_INSN;
uprobe_opcode_t *insn, int nbytes, void *data);
extern bool is_swbp_insn(uprobe_opcode_t *insn);
extern bool is_trap_insn(uprobe_opcode_t *insn);
extern int uprobe_write_opcode(struct arch_uprobe *auprobe, struct vm_area_struct *vma, unsigned long vaddr, uprobe_opcode_t,
uprobe_opcode_t *insn, int nbytes, uprobe_write_verify_t verify, bool is_register, bool do_update_ref_ctr,
if (is_trap_insn((uprobe_opcode_t *)&uprobe->arch.insn))
bool __weak is_swbp_insn(uprobe_opcode_t *insn)
static uprobe_opcode_t insn = UPROBE_SWBP_INSN;
bool __weak is_trap_insn(uprobe_opcode_t *insn)
static int verify_opcode(struct page *page, unsigned long vaddr, uprobe_opcode_t *insn,
uprobe_opcode_t old_opcode;
uprobe_opcode_t opcode;
result = __get_user(opcode, (uprobe_opcode_t __user *)vaddr);
unsigned long insn_vaddr, uprobe_opcode_t *insn, int nbytes,
const unsigned long opcode_vaddr, uprobe_opcode_t opcode,
const unsigned long insn_vaddr, uprobe_opcode_t *insn, int nbytes,
*(uprobe_opcode_t *)&auprobe->insn, false);