Annotation of coherent/d/PS2_KERNEL/include/sys/sem.h, revision 1.1

1.1     ! root        1: /* (-lgl
        !             2:  *     COHERENT Version 3.0
        !             3:  *     Copyright (c) 1982, 1990 by Mark Williams Company.
        !             4:  *     All rights reserved. May not be copied without permission.
        !             5:  -lgl) */
        !             6: #ifndef SEM_H
        !             7: #define SEM_H
        !             8: 
        !             9: /*
        !            10: **     IPC Semaphore Facility
        !            11: */
        !            12: 
        !            13: #include <sys/ipc.h>
        !            14: #include <sys/types.h>
        !            15: 
        !            16: /*
        !            17: **     Permission Definitions.
        !            18: */
        !            19: 
        !            20: #define        SEM_A   0200            /* alter permission */
        !            21: #define        SEM_R   0400            /* read permission */
        !            22: 
        !            23: /*
        !            24: **     Semaphore Operation Flags.
        !            25: */
        !            26: 
        !            27: /* #define SEM_UNDO 010000 */  /* set up adjust on exit entry */
        !            28: 
        !            29: /*
        !            30: **     Semctl Command Definitions.
        !            31: */
        !            32: 
        !            33: #define        GETNCNT 3               /* get semncnt */
        !            34: #define        GETPID  4               /* get sempid  */
        !            35: #define        GETVAL  5               /* get semval  */
        !            36: #define        GETALL  6               /* get all semval's */
        !            37: #define        GETZCNT 7               /* get semzcnt */
        !            38: #define        SETVAL  8               /* set semval */
        !            39: #define        SETALL  9               /* set all semval's */
        !            40: 
        !            41: /*
        !            42: **     Structure Definitions.
        !            43: */
        !            44: 
        !            45: /*
        !            46: **     There is one semaphore structure for each semaphore in the system.
        !            47: */
        !            48: 
        !            49: struct sem {
        !            50: 
        !            51:        unsigned short  semval;         /* semaphore text map address */
        !            52:        short           sempid;         /* pid of last operation */
        !            53:        unsigned short  semncnt;        /* # awaiting semval > cval */
        !            54:        unsigned short  semzcnt;        /* # awaiting semval = 0 */
        !            55: };
        !            56: 
        !            57: /*
        !            58: **     There is one semaphore id data structure for each set of semaphores
        !            59: **             in the system.
        !            60: */
        !            61: 
        !            62: struct semid_ds {
        !            63: 
        !            64:        struct ipc_perm sem_perm;       /* operation permission struct */
        !            65:        struct sem      *sem_base;      /* pointer to first semaphore in set */
        !            66:        unsigned short  sem_nsems;      /* # of semaphores in set */
        !            67:        time_t          sem_otime;      /* last semop time */
        !            68:        time_t          sem_ctime;      /* last change time */
        !            69: };
        !            70: 
        !            71: /*
        !            72: **     There is one undo structure per process in the system.
        !            73: */
        !            74: 
        !            75: struct sem_undo {
        !            76: 
        !            77:        struct sem_undo *un_np;         /* ptr to next active undo structure */
        !            78:        short           un_cnt;         /* # of active entries */
        !            79:        struct undo {
        !            80:                short   un_aoe;         /* adjust on exit values */
        !            81:                short   un_num;         /* semaphore # */
        !            82:                int     un_id;          /* semid */
        !            83:        } un_ent[1];                    /* undo entries (one minimum) */
        !            84: };
        !            85: 
        !            86: /*
        !            87: **     User semaphore template for semop system calls.
        !            88: */
        !            89: 
        !            90: struct sembuf {
        !            91: 
        !            92:        unsigned short  sem_num;        /* semaphore # */
        !            93:        short           sem_op;         /* semaphore operation */
        !            94:        short           sem_flg;        /* operation flags */
        !            95: };
        !            96: 
        !            97: /*
        !            98: ** Ioctl commands issued to Semaphore device driver (Coherent specific).
        !            99: */
        !           100: 
        !           101: #define        SEMIOC  ('S'<<8)
        !           102: #define        SEMCTL  (SEMIOC|0)
        !           103: #define        SEMGET  (SEMIOC|1)
        !           104: #define        SEMOP   (SEMIOC|2)
        !           105: 
        !           106: #endif

unix.superglobalmegacorp.com

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