Annotation of coherent/f/usr/include/sys/shm.h, revision 1.1.1.1

1.1       root        1: /*
                      2:  * /usr/include/sys/shm.h
                      3:  *
                      4:  * Shared memory support.
                      5:  *
                      6:  * Revised: Thu Jul 15 14:05:25 1993 CDT
                      7:  */
                      8: #ifndef __SYS_SHM_H__
                      9: #define        __SYS_SHM_H__
                     10: /*
                     11: **     IPC Shared Memory Facility.
                     12: */
                     13: #include <sys/ipc.h>
                     14: #include <common/_time.h>
                     15: 
                     16: extern int shmfd;              /* file descriptor to access shared memory */
                     17: 
                     18: /*
                     19: **     Permission Definitions.
                     20: */
                     21: #define        SHM_R   0400            /* read permission */
                     22: #define        SHM_W   0200            /* write permission */
                     23: 
                     24: /*
                     25: **     ipc_perm Mode Definitions.
                     26: */
                     27: #define        SHM_CLEAR       01000   /* clear segment on next attach */
                     28: #define        SHM_DEST        02000   /* destroy segment when # attached = 0 */
                     29: 
                     30: /*
                     31: **     Message Operations Flags.
                     32: */
                     33: #define        SHM_RDONLY      010000  /* attach read-only (else read-write) */
                     34: #define SHM_RND                020000  /* round attach address to SHMLBA */
                     35: 
                     36: /* 
                     37:  * Shared memory control operations (are not included in iBCS2)
                     38:  * COHERENT 4.0.x does not use a swapper.
                     39:  */
                     40: #define        SHM_LOCK        3       /* lock shared memory segment in core */
                     41: #define SHM_UNLOCK     4       /* unlock shared memory segment */
                     42: 
                     43: #if _I386
                     44: 
                     45: /*
                     46: **     There is a shared mem id data structure for each segment in the system.
                     47: */
                     48: struct shmid_ds {
                     49:        struct ipc_perm shm_perm;       /* operation permission struct */
                     50:        int             shm_segsz;      /* segment size */
                     51:        unsigned short  shm_cpid;       /* pid of creator */
                     52:        unsigned short  shm_lpid;       /* pid of last shmop */
                     53:        unsigned short  shm_nattch;     /* current # attached */
                     54:        time_t          shm_atime;      /* last shmat time */
                     55:        time_t          shm_dtime;      /* last shmdt time */
                     56:        time_t          shm_ctime;      /* last change time */
                     57: };
                     58: 
                     59: #ifdef __KERNEL__
                     60: 
                     61: /* Patchable kernel values. */
                     62: 
                     63: extern int SHMMAX;     /* Max size in bytes of shared memory segment */
                     64:                        /* Not more than 4 Megs, please! */
                     65: 
                     66: extern int SHMMNI;     /* Maximum # of shared memory segments, systemwide */
                     67: 
                     68: #endif
                     69: 
                     70: #else /* !_I386 */
                     71: 
                     72: struct shmid_ds {
                     73:        struct ipc_perm shm_perm;       /* operation permission struct */
                     74:        int             shm_segsz;      /* segment size */
                     75:        unsigned short  shm_lpid;       /* pid of last shmop */
                     76:        unsigned short  shm_cpid;       /* pid of creator */
                     77:        unsigned short  shm_nattch;     /* current # attached */
                     78:        unsigned short  shm_cnattch;    /* in memory # attached */
                     79:        time_t          shm_atime;      /* last shmat time */
                     80:        time_t          shm_dtime;      /* last shmdt time */
                     81:        time_t          shm_ctime;      /* last change time */
                     82: };
                     83: 
                     84: /*
                     85: **     Ioctl Commands issued to Shared Memory Device Driver (on Coherent).
                     86: */
                     87: #define        SHMIOC  ('H'<<8)
                     88: #define        SHMCTL  (SHMIOC+'C')
                     89: #define        SHMGET  (SHMIOC+'G')
                     90: #define        SHMAT   (SHMIOC+'A')
                     91: #define        SHMDT   (SHMIOC+'D')
                     92: 
                     93: 
                     94: #endif /* !_I386 */
                     95: 
                     96: #endif /* !defined(__SYS_SHM_H__) */

unix.superglobalmegacorp.com

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