| Function report | 
| Source Code: ipc\msg.c | Create Date:2022-07-28 16:41:35 | 
| Last Modify:2020-03-17 22:56:56 | Copyright©Brick | 
| home page | Tree | 
| Annotation kernel can get tool activity | Download SCCT | Chinese | 
Name: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.
Proto:static int msgctl_down(struct ipc_namespace *ns, int msqid, int cmd, struct ipc64_perm *perm, int msg_qbytes)
Type:int
Parameter:
| Type | Parameter | Name | 
|---|---|---|
| struct ipc_namespace * | ns | |
| int | msqid | |
| int | cmd | |
| struct ipc64_perm * | perm | |
| int | msg_qbytes | 
| 386 | lock for writing | 
| 393 | Go to out_unlock1 | 
| 398 | err = security_msg_queue_msgctl( & q_perm, cmd) | 
| 399 | If err Then Go to out_unlock1 | 
| 403 | Case cmd == move resource | 
| 404 | ipc_lock_object( & q_perm) | 
| 407 | Go to out_up | 
| 408 | Case cmd == set ipc_perm options | 
| 412 | If msg_qbytes > msg_ctlmnb && Not Check operation authority Then | 
| 415 | Go to 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 | If err Then Go to out_unlock0 | 
| 430 | expunge_all(msq, - EAGAIN, & wake_q) | 
| 436 | ipc_unlock_object( & q_perm) | 
| 439 | Go to out_unlock1 | 
| 441 | Default | 
| 443 | Go to out_unlock1 | 
| 446 | out_unlock0 : | 
| 447 | ipc_unlock_object( & q_perm) | 
| 448 | out_unlock1 : | 
| 450 | out_up : | 
| 452 | Return err | 
| Name | Describe | 
|---|---|
| ksys_msgctl | |
| compat_ksys_msgctl | 
| 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 |