函数逻辑报告 |
Source Code:ipc\msg.c |
Create Date:2022-07-27 18:16:50 |
| Last Modify:2020-03-17 22:56:56 | Copyright©Brick |
| 首页 | 函数Tree |
| 注解内核,赢得工具 | 下载SCCT | English |
函数名称:This function handles some msgctl commands which require the rwsem* to be held in write mode.* NOTE: no locks must be held, the rwsem is taken inside this function.
函数原型:static int msgctl_down(struct ipc_namespace *ns, int msqid, int cmd, struct ipc64_perm *perm, int msg_qbytes)
返回类型:int
参数:
| 类型 | 参数 | 名称 |
|---|---|---|
| struct ipc_namespace * | ns | |
| int | msqid | |
| int | cmd | |
| struct ipc64_perm * | perm | |
| int | msg_qbytes |
| 386 | lock for writing |
| 391 | 如果是错误则 |
| 393 | 转到:out_unlock1 |
| 398 | err等于security_msg_queue_msgctl( & q_perm, cmd) |
| 399 | 如果err则转到:out_unlock1 |
| 403 | 当:cmd恒等于move resource |
| 404 | ipc_lock_object( & q_perm) |
| 407 | 转到:out_up |
| 408 | 当:cmd恒等于set ipc_perm options |
| 412 | 如果msg_qbytes大于msg_ctlmnb且非操作权限检查则 |
| 415 | 转到:out_unlock1 |
| 418 | ipc_lock_object( & q_perm) |
| 419 | err等于pc_update_perm - update the permissions of an ipc object*@in: the permission given as input.*@out: the permission of the ipc to set. |
| 420 | 如果err则转到:out_unlock0 |
| 430 | expunge_all(msq, - EAGAIN, & wake_q) |
| 436 | ipc_unlock_object( & q_perm) |
| 439 | 转到:out_unlock1 |
| 441 | 默认 |
| 443 | 转到:out_unlock1 |
| 446 | out_unlock0 : |
| 447 | ipc_unlock_object( & q_perm) |
| 448 | out_unlock1 : |
| 450 | out_up : |
| 452 | 返回:err |
| 名称 | 描述 |
|---|---|
| ksys_msgctl | |
| compat_ksys_msgctl |
| 源代码转换工具 开放的插件接口 | X |
|---|---|
| 支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |