ipcctl_pre_down — retrieve an ipc and check permissions for some IPC_XXX cmd
struct kern_ipc_perm * ipcctl_pre_down ( | struct ipc_ids * | ids, |
int | id, | |
int | cmd, | |
struct ipc64_perm * | perm, | |
int | extra_perm) ; |
ids
the table of ids where to look for the ipc
id
the id of the ipc to retrieve
cmd
the cmd to check
perm
the permission to set
extra_perm
one extra permission parameter used by msq
This function does some common audit and permissions check for some IPC_XXX cmd and is called from semctl_down, shmctl_down and msgctl_down. It must be called without any lock held and - retrieves the ipc with the given id in the given table. - performs some audit and permission check, depending on the given cmd - returns the ipc with both ipc and rw_mutex locks held in case of success or an err-code without any lock held otherwise.