函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:arch\x86\kernel\uprobes.c Create Date:2022-07-27 09:46:44
Last Modify:2020-03-12 14:18:49 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:If arch_uprobe->insn doesn't use rip-relative addressing, return* immediately. Otherwise, rewrite the instruction so that it accesses* its memory operand indirectly through a scratch register. Set* defparam->fixups accordingly

函数原型:static void riprel_analyze(struct arch_uprobe *auprobe, struct insn *insn)

返回类型:void

参数:

类型参数名称
struct arch_uprobe *auprobe
struct insn *insn
340  如果非sn_rip_relative() - Does instruction use RIP-relative addressing mode?*@insn: &struct insn containing instruction* If necessary, first collects the instruction up to and including the* ModRM byte. No effect if @insn->x86_64 is 0.则返回
348  如果nbytes
349  cursor等于insnOffset of each field from kaddr
351  cursor与等于0xfe
357  如果nbytes大于等于3则
368  cursor等于insninsn_offset_vex_prefix(insn)加1
369  cursor或等于0x60
412  reg等于MODRM_REG(insn)
413  reg2等于0xff
414  如果nbytesreg2等于bytes[2]
423  reg2等于reg2右移3位按位与0x7按位异或0x7
430  如果reg不等于6且reg2不等于6则
431  reg2等于6
432  fixups或等于UPROBE_FIX_RIP_SI
433  否则如果reg不等于7且reg2不等于7则
434  reg2等于7
435  fixups或等于UPROBE_FIX_RIP_DI
437  否则
438  reg2等于3
439  fixups或等于UPROBE_FIX_RIP_BX
446  cursor等于insninsn_offset_modrm(insn)
452  cursor等于0x80按位或reg左移3位按位或reg2
调用者
名称描述
arch_uprobe_analyze_insnarch_uprobe_analyze_insn - instruction analysis including validity and fixups.*@auprobe: the probepoint information.*@mm: the probed address space.*@addr: virtual address at which to install the probepoint* Return 0 on success or a -ve number on error.