函数逻辑报告 |
Source Code:kernel\trace\trace_probe_tmpl.h |
Create Date:2022-07-27 13:49:11 |
Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
首页 | 函数Tree |
注解内核,赢得工具 | 下载SCCT | English |
函数名称:From the 2nd stage, routine is same
函数原型:static inline __attribute__((__always_inline__)) int process_fetch_insn_bottom(struct fetch_insn *code, unsigned long val, void *dest, void *base)
返回类型:int
参数:
类型 | 参数 | 名称 |
---|---|---|
struct fetch_insn * | code | |
unsigned long | val | |
void * | dest | |
void * | base |
75 | struct fetch_insn * s3 = NULL |
77 | loc等于0 |
80 | stage2 : |
82 | 循环 |
96 | 当1循环 |
99 | stage3 : |
101 | 如果此条件成立可能性小(为编译器优化)(!dest)则 |
102 | 如果op恒等于 String: .offset, .size 则 |
106 | 否则如果op恒等于 User String: .offset, .size 则 |
110 | 否则返回:负EILSEQ |
115 | 当:op恒等于 Raw: .size |
117 | 退出 |
118 | 当:op恒等于 Mem: .offset, .size |
121 | 当:op恒等于 Mem: .offset, .size |
124 | 当:op恒等于 String: .offset, .size |
126 | ret等于Fetch a null-terminated string. Caller MUST set *(u32 *)dest with max* length and relative data location. |
127 | 退出 |
128 | 当:op恒等于 User String: .offset, .size |
130 | ret等于Fetch a null-terminated string from user. Caller MUST set *(u32 *)buf* with max length and relative data location. |
131 | 退出 |
132 | 默认 |
133 | 返回:负EILSEQ |
135 | code自加 |
138 | 如果op恒等于 Bitfield: .basesize, .lshift, .rshift 则 |
139 | fetch_apply_bitfield(code, dest) |
140 | code自加 |
143 | array : |
145 | 如果op恒等于 Array: .param = loop count 则 |
149 | 如果op不等于 String: .offset, .size 且op不等于 User String: .offset, .size 则 |
155 | code自减 |
157 | 如果dest则 |
161 | 转到:stage2 |
163 | code自加 |
167 | 返回:如果op恒等于FETCH_OP_END则ret否则负EILSEQ |
名称 | 描述 |
---|---|
process_fetch_insn | Note that we don't verify it, since the code does not come from user space |
process_fetch_insn | Note that we don't verify it, since the code does not come from user space |
源代码转换工具 开放的插件接口 | X |
---|---|
支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |