Function report |
Source Code:kernel\rcu\srcutree.c |
Create Date:2022-07-28 10:18:22 |
| Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
| home page | Tree |
| Annotation kernel can get tool activity | Download SCCT | Chinese |
Name: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
Proto:static void init_srcu_struct_nodes(struct srcu_struct *ssp, bool is_static)
Type:void
Parameter:
| Type | Parameter | Name |
|---|---|---|
| struct srcu_struct * | ssp | |
| bool | is_static |
| 87 | level = 0 |
| 95 | When i < rcu_num_lvls cycle level[i] = level[i - 1] + num_rcu_lvl[i - 1] |
| 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 | Continue |
| 120 | srcu_parent = level[level - 1] + (snp - level[level]) / levelspread[level - 1] |
| 131 | level = rcu_num_lvls - 1 |
| 133 | for_each_possible_cpu(cpu) |
| 134 | sdp = per_cpu_ptr(sda, cpu) |
| 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 | If is_static Then Continue |
| 156 | srcu_lock_count[i] = 0 |
| 157 | srcu_unlock_count[i] = 0 |
| Name | Describe |
|---|---|
| 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. |
| 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 |