函数逻辑报告 |
Source Code:arch\x86\lib\insn-eval.c |
Create Date:2022-07-27 08:24:45 |
Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
首页 | 函数Tree |
注解内核,赢得工具 | 下载SCCT | English |
函数名称:get_eff_addr_sib() - Obtain referenced effective address via SIB*@insn: Instruction
函数原型:static int get_eff_addr_sib(struct insn *insn, struct pt_regs *regs, int *base_offset, long *eff_addr)
返回类型:int
参数:
类型 | 参数 | 名称 |
---|---|---|
struct insn * | insn | |
struct pt_regs * | regs | |
int * | base_offset | |
long * | eff_addr |
1068 | 如果addr_bytes不等于8且addr_bytes不等于4则返回:负EINVAL |
1076 | 如果X86_MODRM_MOD(value)大于2则返回:负EINVAL |
1084 | base_offset等于get_reg_offset(insn, regs, REG_TYPE_BASE) |
1085 | indx_offset等于get_reg_offset(insn, regs, REG_TYPE_INDEX) |
1092 | 如果base_offset恒等于负EDOM则base等于0 |
1094 | 否则如果base_offset小于0则返回:负EINVAL |
1099 | 如果indx_offset恒等于负EDOM则indx等于0 |
1101 | 否则如果indx_offset小于0则返回:负EINVAL |
1106 | 如果addr_bytes恒等于4则 |
1112 | addr32等于base32加idx32乘1左移X86_SIB_SCALE(value)位的值 |
1116 | 否则 |
1121 | 返回:0 |
名称 | 描述 |
---|---|
get_addr_ref_32 | get_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 |
源代码转换工具 开放的插件接口 | X |
---|---|
支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |