函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:lib\test_bpf.c Create Date:2022-07-27 07:25:13
Last Modify:2020-03-12 14:18:49 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:generate_filter

函数原型:static struct bpf_prog *generate_filter(int which, int *err)

返回类型:struct bpf_prog

参数:

类型参数名称
intwhich
int *err
6580  test_type等于aux按位与TEST_TYPE_MASK
6581  flen等于filter_length(which)
6582  fptr等于filter_pointer(which)
6587  :test_type恒等于CLASSIC
6588  filter等于fptr
6589  len等于flen
6591  err等于bpf_prog_create( & fp, & fprog)
6592  如果aux按位与FLAG_EXPECTED_FAIL
6594  打印标准信息("PASS\n")
6596  err等于0
6597  返回:NULL
6598  否则
6599  打印标准信息("UNEXPECTED_PASS\n")
6603  err等于负EINVAL
6604  返回:NULL
6607  如果err
6608  打印标准信息("FAIL to prog_create err=%d len=%d\n", * err, len)
6610  返回:NULL
6612  退出
6614  :test_type恒等于INTERNAL
6615  fp等于bpf_prog_alloc(bpf_prog_size(flen), 0)
6616  如果(fp == NULL)则
6617  打印标准信息("UNEXPECTED_FAIL no memory left\n")
6618  err等于负ENOMEM
6619  返回:NULL
6622  Number of filter blocks 等于flen
6624  Type of BPF program 等于BPF_PROG_TYPE_SOCKET_FILTER
6625  内存复制(insnsi, fptr, Number of filter blocks * sizeof(structbpf_insn))
6626  stack_depth等于 for eBPF only, since tests don't call verifier
6631  fp等于pf_prog_select_runtime - select exec runtime for BPF program*@fp: bpf_prog populated with internal BPF program*@err: pointer to error variable* Try to JIT eBPF program, if JIT is not available, use interpreter.
6632  如果err
6633  打印标准信息("FAIL to select_runtime err=%d\n", * err)
6634  返回:NULL
6636  退出
6639  err等于0
6640  返回:fp
调用者
名称描述
test_bpf