函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

函数名称:trie_alloc

函数原型:static struct bpf_map *trie_alloc(union bpf_attr *attr)

返回类型:struct bpf_map

参数:

类型参数名称
union bpf_attr *attr
543  cost等于trie的长度
546  如果非操作权限检查则返回:错误号
550  如果 max number of entries in a map 恒等于0或非 BPF_MAP_CREATE related * flags defined above.按位与lags for BPF_MAP_CREATE command 的值或 BPF_MAP_CREATE related * flags defined above.按位与LPM_CREATE_FLAG_MASK的反或非bpf_map_flags_access_ok( BPF_MAP_CREATE related * flags defined above.)或 size of key in bytes 小于LPM_KEY_SIZE_MIN size of key in bytes 大于LPM_KEY_SIZE_MAX size of value in bytes 小于LPM_VAL_SIZE_MIN size of value in bytes 大于LPM_VAL_SIZE_MAX则返回:错误号
560  trie等于分配内存并置零
561  如果非trie则返回:错误号
565  bpf_map_init_from_attr( & map, attr)
566  data_size等于 size of key in bytes offsetof(structbpf_lpm_trie_key, data)
568  max_prefixlen等于data_size乘8
570  cost_per_node等于sizeof(structlpm_trie_node)加 size of value in bytes data_size
572  cost加等于 max number of entries in a map cost_per_node
574  ret等于bpf_map_charge_init( & memory, cost)
575  如果ret则转到:out_err
578  raw_spin_lock_init( & lock)
580  返回:map
581  out_err :
582  kfree(trie)
583  返回:错误号