函数逻辑报告 |
Source Code:kernel\bpf\hashtab.c |
Create Date:2022-07-27 14:25:50 |
| Last Modify:2022-05-23 09:15:29 | Copyright©Brick |
| 首页 | 函数Tree |
| 注解内核,赢得工具 | 下载SCCT | English |
函数名称:alloc_htab_elem
函数原型:static struct htab_elem *alloc_htab_elem(struct bpf_htab *htab, void *key, void *value, u32 key_size, u32 hash, bool percpu, bool onallcpus, struct htab_elem *old_elem)
返回类型:struct htab_elem
参数:
| 类型 | 参数 | 名称 |
|---|---|---|
| struct bpf_htab * | htab | |
| void * | key | |
| void * | value | |
| u32 | key_size | |
| u32 | hash | |
| bool | percpu | |
| bool | onallcpus | |
| struct htab_elem * | old_elem |
| 726 | size等于value_size |
| 727 | prealloc等于htab_is_prealloc(htab) |
| 731 | 如果prealloc则 |
| 747 | 否则 |
| 748 | 如果atomic_inc_return( & number of elements in this hashtable )大于max_entries则如果非old_elem则 |
| 760 | 如果非l_new则 |
| 769 | 如果percpu则 |
| 771 | 如果prealloc则 |
| 772 | pptr等于htab_elem_get_ptr(l_new, key_size) |
| 773 | 否则 |
| 777 | 如果非pptr则 |
| 784 | pcpu_copy_value(htab, pptr, value, onallcpus) |
| 786 | 如果非prealloc则htab_elem_set_ptr(l_new, key_size, pptr) |
| 788 | 否则如果fd_htab_map_needs_adjust(htab)则 |
| 791 | 否则 |
| 798 | 返回:l_new |
| 799 | dec_count : |
| 801 | 返回:l_new |
| 名称 | 描述 |
|---|---|
| htab_map_update_elem | Called from syscall or from eBPF program |
| __htab_percpu_map_update_elem |
| 源代码转换工具 开放的插件接口 | X |
|---|---|
| 支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |