Lines Matching defs:ipcp
320 * @ipcp: ipc permission set
330 * It is called with ipc_ids.rw_mutex and ipcp->lock held.
332 static int ipc_check_perms(struct kern_ipc_perm *ipcp, struct ipc_ops *ops,
337 if (ipcperms(ipcp, params->flg))
340 err = ops->associate(ipcp, params->flg);
342 err = ipcp->id;
365 struct kern_ipc_perm *ipcp;
376 ipcp = ipc_findkey(ids, params->key);
377 if (ipcp == NULL) {
393 err = ops->more_checks(ipcp, params);
399 err = ipc_check_perms(ipcp, ops, params);
401 ipc_unlock(ipcp);
415 * @ipcp: ipc perm structure containing the identifier to remove
421 void ipc_rmid(struct ipc_ids *ids, struct kern_ipc_perm *ipcp)
423 int lid = ipcid_to_idx(ipcp->id);
429 ipcp->deleted = 1;
608 * @ipcp: IPC permission set
615 int ipcperms (struct kern_ipc_perm *ipcp, short flag)
620 audit_ipc_obj(ipcp);
622 granted_mode = ipcp->mode;
623 if (euid == ipcp->cuid ||
624 euid == ipcp->uid)
626 else if (in_group_p(ipcp->cgid) || in_group_p(ipcp->gid))
633 return security_ipc_permission(ipcp, flag);
785 struct kern_ipc_perm *ipcp;
790 ipcp = ipc_lock_check(ids, id);
791 if (IS_ERR(ipcp)) {
792 err = PTR_ERR(ipcp);
796 audit_ipc_obj(ipcp);
802 if (euid == ipcp->cuid ||
803 euid == ipcp->uid || capable(CAP_SYS_ADMIN))
804 return ipcp;
807 ipc_unlock(ipcp);