函数逻辑报告 |
Source Code:kernel\rcu\srcutree.c |
Create Date:2022-07-27 11:18:44 |
| Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
| 首页 | 函数Tree |
| 注解内核,赢得工具 | 下载SCCT | English |
函数名称:Initialize SRCU combining tree. Note that statically allocated* srcu_struct structures might already have srcu_read_lock() and* srcu_read_unlock() running against them. So if the is_static parameter
函数原型:static void init_srcu_struct_nodes(struct srcu_struct *ssp, bool is_static)
返回类型:void
参数:
| 类型 | 参数 | 名称 |
|---|---|---|
| struct srcu_struct * | ssp | |
| bool | is_static |
| 87 | level等于0 |
| 95 | 以i小于rcu_num_lvls循环level[i]等于level[i - 1]加num_rcu_lvl[i - 1] |
| 101 | spin_lock_init( & ACCESS_PRIVATE(snp, lock)) |
| 105 | srcu_have_cbs[i]等于0 |
| 106 | srcu_data_have_cbs[i]等于0 |
| 108 | srcu_gp_seq_needed_exp等于0 |
| 109 | grplo等于负1 |
| 110 | grphi等于负1 |
| 113 | srcu_parent = NULL |
| 114 | 继续下一循环 |
| 120 | srcu_parent等于level[level - 1]加snp减level[level]的差除levelspread[level - 1] |
| 131 | level等于rcu_num_lvls减1 |
| 134 | sdp等于per_cpu_ptr(sda, cpu) |
| 135 | spin_lock_init( & ACCESS_PRIVATE(sdp, lock)) |
| 136 | rcu_segcblist_init( & srcu_cblist) |
| 137 | srcu_cblist_invoking = false |
| 140 | mynode等于snp_first[cpu / levelspread[level]] |
| 147 | INIT_WORK( & work, srcu_invoke_callbacks) |
| 151 | 如果is_static则继续下一循环 |
| 156 | srcu_lock_count[i]等于0 |
| 157 | srcu_unlock_count[i]等于0 |
| 名称 | 描述 |
|---|---|
| init_srcu_struct_fields | Initialize non-compile-time initialized fields, including the* associated srcu_node and srcu_data structures. The is_static* parameter is passed through to init_srcu_struct_nodes(), and* also tells us that ->sda has already been wired up to srcu_data. |
| 源代码转换工具 开放的插件接口 | X |
|---|---|
| 支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |