Function report

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:arch\x86\lib\insn-eval.c Create Date:2022-07-28 07:25:36
Last Modify:2020-03-12 14:18:49 Copyright©Brick
home page Tree
Annotation kernel can get tool activityDownload SCCTChinese

Name:get_eff_addr_reg() - Obtain effective address from register operand*@insn: Instruction

Proto:static int get_eff_addr_reg(struct insn *insn, struct pt_regs *regs, int *regoff, long *eff_addr)

Type:int

Parameter:

TypeParameterName
struct insn *insn
struct pt_regs *regs
int *regoff
long *eff_addr
882  sn_get_modrm - collect ModRM byte, if any*@insn: &struct insn containing instruction* Populates @insn->modrm and updates @insn->next_byte to point past the* ModRM byte, if any. If necessary, first collects the preceding bytes* (prefixes and opcode(s))
884  If Not nbytes Then Return -EINVAL
887  If X86_MODRM_MOD(value) != 3 Then Return -EINVAL
890  regoff = get_reg_offset(insn, regs, REG_TYPE_RM)
891  If regoff < 0 Then Return -EINVAL
895  If addr_bytes == 2 Then eff_addr = gs_get_register() - get register value from its offset*@regs: pt_regs from which register value is gotten.*@offset: offset number of the register.* regs_get_register returns the value of a register. The @offset is the & 0xffff
897  Else if addr_bytes == 4 Then eff_addr = gs_get_register() - get register value from its offset*@regs: pt_regs from which register value is gotten.*@offset: offset number of the register.* regs_get_register returns the value of a register. The @offset is the & 0xffffffff
899  Else eff_addr = gs_get_register() - get register value from its offset*@regs: pt_regs from which register value is gotten.*@offset: offset number of the register.* regs_get_register returns the value of a register. The @offset is the
902  Return 0
Caller
NameDescribe
get_addr_ref_16get_addr_ref_16() - Obtain the 16-bit address referred by instruction*@insn: Instruction containing ModRM byte and displacement*@regs: Register values as seen when entering kernel mode* This function is to be used with 16-bit address encodings
get_addr_ref_32get_addr_ref_32() - Obtain a 32-bit linear address*@insn: Instruction with ModRM, SIB bytes and displacement*@regs: Register values as seen when entering kernel mode* This function is to be used with 32-bit address encodings to obtain the* linear memory
get_addr_ref_64