Function report |
Source Code:kernel\bpf\arraymap.c |
Create Date:2022-07-28 13:11:13 |
| Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
| home page | Tree |
| Annotation kernel can get tool activity | Download SCCT | Chinese |
Name:Called from syscall or from eBPF program
Proto:static int array_map_update_elem(struct bpf_map *map, void *key, void *value, u64 map_flags)
Type:int
Parameter:
| Type | Parameter | Name |
|---|---|---|
| struct bpf_map * | map | |
| void * | key | |
| void * | value | |
| u64 | map_flags |
| 305 | If Value for the false possibility is greater at compile time((map_flags & ~spin_lock-ed map_lookup/map_update ) > update existing element ) Then Return -EINVAL |
| 309 | If Value for the false possibility is greater at compile time(index >= max_entries) Then Return -E2BIG |
| 313 | If Value for the false possibility is greater at compile time(map_flags & create new element if it didn't exist ) Then Return -EEXIST |
| 317 | If Value for the false possibility is greater at compile time((map_flags & spin_lock-ed map_lookup/map_update ) && !map_value_has_spin_lock(map)) Then Return -EINVAL |
| 321 | If map_type == BPF_MAP_TYPE_PERCPU_ARRAY Then |
| 322 | No 3D Now!(this_cpu_ptr(pptrs[index & index_mask]), value, value_size) |
| 324 | Else |
| 325 | val = value + elem_size * (index & index_mask) |
| 327 | If map_flags & spin_lock-ed map_lookup/map_update Then copy_map_value_locked(map, val, value, false) |
| 329 | Else py everything but bpf_spin_lock |
| 332 | Return 0 |
| Source code conversion tool public plug-in interface | X |
|---|---|
| Support c/c++/esqlc/java Oracle/Informix/Mysql Plug-in can realize: logical Report Code generation and batch code conversion |