函数逻辑报告 |
Source Code:kernel\rcu\rcutorture.c |
Create Date:2022-07-27 11:22:01 |
Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
首页 | 函数Tree |
注解内核,赢得工具 | 下载SCCT | English |
函数名称:Do one extension of an RCU read-side critical section using the* current reader state in readstate (set to zero for initial entry* to extended critical section), set the new state as specified by* newstate (set to zero for final exit from extended
函数原型:static void rcutorture_one_extend(int *readstate, int newstate, struct torture_random_state *trsp, struct rt_read_seg *rtrsp)
返回类型:void
参数:
类型 | 参数 | 名称 |
---|---|---|
int * | readstate | |
int | newstate | |
struct torture_random_state * | trsp | |
struct rt_read_seg * | rtrsp |
1147 | idxnew等于负1 |
1152 | WARN_ON_ONCE(idxold < 0) |
1153 | WARN_ON_ONCE((idxold >> Put SRCU index in upper bits. ) > 1) |
1154 | rt_readstate等于newstate |
1157 | 如果statesnew按位与Extend readers by disabling bh. 则local_bh_disable() |
1159 | 如果statesnew按位与... disabling interrupts. 则禁止中断() |
1161 | 如果statesnew按位与... disabling preemption. 则禁止抢占() |
1163 | 如果statesnew按位与... rcu_read_lock_bh(). 则_read_lock_bh() - mark the beginning of an RCU-bh critical section* This is equivalent of rcu_read_lock(), but also disables softirqs |
1167 | 如果statesnew按位与... entering another RCU reader. 则idxnew等于readlock()左移Put SRCU index in upper bits. 位 |
1171 | 如果statesold按位与... disabling interrupts. 则开中断() |
1173 | 如果statesold按位与Extend readers by disabling bh. 则local_bh_enable() |
1175 | 如果statesold按位与... disabling preemption. 则禁用抢占和中断() |
1177 | 如果statesold按位与... rcu_read_lock_bh(). 则标记rcu锁结束的软中断 |
1179 | 如果statesold按位与... rcu_read_lock_sched(). 则标记rcu锁结束 |
1181 | 如果statesold按位与... entering another RCU reader. 则readunlock(idxold >> Put SRCU index in upper bits. ) |
1189 | 如果idxnew恒等于负1则idxnew等于idxold按位与RCUTORTURE_RDR_MASK的反 |
1191 | WARN_ON_ONCE(idxnew < 0) |
1192 | WARN_ON_ONCE((idxnew >> Put SRCU index in upper bits. ) > 1) |
1194 | WARN_ON_ONCE(( * readstate >> Put SRCU index in upper bits. ) < 0) |
1195 | WARN_ON_ONCE(( * readstate >> Put SRCU index in upper bits. ) > 1) |
名称 | 描述 |
---|---|
rcutorture_loop_extend | Do a randomly selected number of extensions of an existing RCU read-side* critical section. |
rcu_torture_one_read | Do one read-side critical section, returning false if there was* no data to read. Can be invoked both from process context and* from a timer handler. |
源代码转换工具 开放的插件接口 | X |
---|---|
支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |