函数逻辑报告 |
Source Code:kernel\bpf\core.c |
Create Date:2022-07-27 13:59:33 |
Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
首页 | 函数Tree |
注解内核,赢得工具 | 下载SCCT | English |
函数名称:bpf_prog_calc_tag
函数原型:int bpf_prog_calc_tag(struct bpf_prog *fp)
返回类型:int
参数:
类型 | 参数 | 名称 |
---|---|---|
struct bpf_prog * | fp |
267 | bits_offset等于s减sizeof(__be64) |
282 | 初始化一个SHA1向量 |
289 | 以i小于 Number of filter blocks 循环 |
291 | 如果非was_ld_map且 opcode 恒等于BPF_LD按位或BPF_IMM按位或double word (64-bit) 的值且 source register 恒等于When BPF ldimm64's insn[0]或 source register 恒等于BPF_PSEUDO_MAP_VALUE的值则 |
295 | was_ld_map = true |
296 | signed immediate constant 等于0 |
297 | 否则如果was_ld_map且 opcode 恒等于0且 dest register 恒等于0且 source register 恒等于0且 signed offset 恒等于0则 |
302 | was_ld_map = false |
303 | signed immediate constant 等于0 |
304 | 否则 |
305 | was_ld_map = false |
309 | psize等于bpf_prog_insn_size(fp) |
318 | 否则 |
319 | bits等于todo加bsize加bits_offset |
320 | blocks自加 |
322 | bits等于cpu_to_be64((psize - 1) << 3) |
330 | 以i小于SHA_DIGEST_WORDS循环result[i]等于cpu_to_be32(digest[i]) |
335 | 返回:0 |
名称 | 描述 |
---|---|
replace_map_fd_with_map_ptr | look for pseudo eBPF instructions that access map FDs and* replace them with actual map pointers |
jit_subprogs |
源代码转换工具 开放的插件接口 | X |
---|---|
支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |