Annotation of coherent/d/286_KERNEL/USRSRC/io/ipc.c, revision 1.1.1.1

1.1       root        1: /* $Header: /usr/src/sys/i8086/drv/RCS/ipc.c,v 2.1 88/09/03 13:06:15 src Exp $
                      2:  *
                      3:  *     The  information  contained herein  is a trade secret  of INETCO
                      4:  *     Systems, and is confidential information.   It is provided under
                      5:  *     a license agreement,  and may be copied or disclosed  only under
                      6:  *     the terms of that agreement.   Any reproduction or disclosure of
                      7:  *     this  material  without  the express  written  authorization  of
                      8:  *     INETCO Systems or persuant to the license agreement is unlawful.
                      9:  *
                     10:  *     Copyright (c) 1985
                     11:  *     An unpublished work by INETCO Systems, Ltd.
                     12:  *     All rights reserved.
                     13:  */
                     14: 
                     15: /*
                     16:  * Inter-Process Communication.
                     17:  *
                     18:  * $Log:       /usr/src/sys/i8086/drv/RCS/ipc.c,v $
                     19:  * Revision 2.1        88/09/03  13:06:15      src
                     20:  * *** empty log message ***
                     21:  * 
                     22:  * Revision 1.1        88/03/24  17:05:02      src
                     23:  * Initial revision
                     24:  * 
                     25:  */
                     26: #include <coherent.h>
                     27: #include <sys/ipc.h>
                     28: #include <sys/uproc.h>
                     29: 
                     30: /*
                     31:  * Determine Inter-Process Communication Access Permissions.
                     32:  *
                     33:  *     Input:  p = pointer to inter-process communication permission struct.
                     34:  *
                     35:  *     Action: If super user, permissions are 0600.
                     36:  *             If uid is that of the creator or owner of the message id,
                     37:  *                     use user permissions.
                     38:  *             If gid is that of the creator or owner of the message id,
                     39:  *                     use group permissions.
                     40:  *             Otherwise, use others permissions.
                     41:  *
                     42:  *     Output: 0600 = Read/Alter permission.
                     43:  *             0400 = Read permission.
                     44:  *             0200 = Alter permission.
                     45:  *                0 = No permission.
                     46:  */
                     47: 
                     48: ipcaccess( p )
                     49: 
                     50: register struct ipc_perm * p;
                     51: 
                     52: {
                     53:        if ( u.u_uid == 0 )
                     54:                return 0600;
                     55: 
                     56:        if ((u.u_uid == p->uid) || (u.u_uid == p->cuid))
                     57:                return p->mode & 0600;
                     58: 
                     59:        if ((u.u_gid == p->gid) || (u.u_gid == p->cgid))
                     60:                return (p->mode << 3) & 0600;
                     61: 
                     62:        return (p->mode << 6) & 0600;
                     63: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.