函数逻辑报告 |
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 插件可实现:逻辑报告 代码生成和批量转换代码 |