函数逻辑报告 |
Source Code:kernel\bpf\reuseport_array.c |
Create Date:2022-07-27 14:48:24 |
Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
首页 | 函数Tree |
注解内核,赢得工具 | 下载SCCT | English |
函数名称:Called from syscall only.* The "nsk" in the fd refcnt.* The "osk" and "reuse" are protected by reuseport_lock.
函数原型:int bpf_fd_reuseport_array_update_elem(struct bpf_map *map, void *key, void *value, u64 map_flags)
返回类型:int
参数:
类型 | 参数 | 名称 |
---|---|---|
struct bpf_map * | map | |
void * | key | |
void * | value | |
u64 | map_flags |
251 | array等于reuseport_array(map) |
258 | 如果map_flags大于update existing element 则返回:负EINVAL |
261 | 如果index大于等于max_entries则返回:负E2BIG |
264 | 如果value_size恒等于sizeof(u64)则 |
270 | 否则 |
274 | socket等于sockfd_lookup(fd, & err) |
279 | 如果非nsk则 |
292 | spin_lock_bh( & reuseport_lock) |
298 | write_lock_bh( & sk_callback_lock) |
305 | 如果err则转到:put_file_unlock |
309 | err等于reuseport_get_id(reuse) |
310 | 如果err小于0则转到:put_file_unlock |
313 | WRITE_ONCE(sk_user_data, & ptrs[index]) |
316 | err等于0 |
318 | put_file_unlock : |
319 | write_unlock_bh( & sk_callback_lock) |
321 | 如果free_osk则 |
322 | write_lock_bh( & sk_callback_lock) |
323 | WRITE_ONCE(sk_user_data, NULL) |
324 | write_unlock_bh( & sk_callback_lock) |
327 | spin_unlock_bh( & reuseport_lock) |
328 | put_file : |
330 | 返回:err |
名称 | 描述 |
---|---|
map_update_elem |
源代码转换工具 开放的插件接口 | X |
---|---|
支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |