函数逻辑报告 | 
Source Code:ipc\sem.c | 
Create Date:2022-07-27 18:19:04 | 
| Last Modify:2020-03-12 14:18:49 | Copyright©Brick | 
| 首页 | 函数Tree | 
| 注解内核,赢得工具 | 下载SCCT | English | 
函数名称:perform_atomic_semop
函数原型:static int perform_atomic_semop(struct sem_array *sma, struct sem_queue *q)
返回类型:int
参数:
| 类型 | 参数 | 名称 | 
|---|---|---|
| struct sem_array * | sma | |
| struct sem_queue * | q | 
| 707 | nsops等于umber of operations | 
| 708 | un等于undo structure | 
| 710 | 如果此条件成立可能性小(为编译器优化)(sops on more than one sem_num )则返回:perform_atomic_semop[_slow] - Attempt to perform semaphore* operations on a given array | 
| 724 | result等于current value | 
| 726 | 如果非sem_op且result则转到:would_block | 
| 730 | 如果result小于0则转到:would_block | 
| 733 | 如果result大于<= 32767 semaphore maximum value 则返回:负ERANGE | 
| 736 | 如果peration flags 按位与undo the operation on exit 则 | 
| 740 | 如果undo小于负adjust on exit max value 减1或undo大于adjust on exit max value 则返回:负ERANGE | 
| 746 | curr等于sems[semaphore index in array ] | 
| 748 | result等于current value | 
| 750 | 如果peration flags 按位与undo the operation on exit 则 | 
| 755 | current value 加等于sem_op | 
| 759 | 返回:0 | 
| 761 | would_block : | 
| 762 | he operation that blocked 等于sop | 
| 763 | 返回:如果peration flags 按位与urn error on wait 则负EAGAIN否则1 | 
| 名称 | 描述 | 
|---|---|
| wake_const_ops | wake_const_ops - wake up non-alter tasks*@sma: semaphore array.*@semnum: semaphore that was modified.*@wake_q: lockless wake-queue head.* wake_const_ops must be called after a semaphore in a semaphore array* was set to 0 | 
| update_queue | pdate_queue - look for tasks that can be completed.*@sma: semaphore array.*@semnum: semaphore that was modified.*@wake_q: lockless wake-queue head.* update_queue must be called after a semaphore in a semaphore array* was modified | 
| do_semtimedop | 
| 源代码转换工具 开放的插件接口  | X | 
|---|---|
| 支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码  |