Annotation of coherent/a/usr/include.b4ps2/sys/sem.h, revision 1.1.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.