|
|
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 __SYS_SHM_H__ ! 7: #define __SYS_SHM_H__ ! 8: /* ! 9: ** IPC Shared Memory Facility. ! 10: */ ! 11: #include <sys/ipc.h> ! 12: #include <sys/_time.h> ! 13: ! 14: extern int shmfd; /* file descriptor to access shared memory */ ! 15: ! 16: /* ! 17: ** Permission Definitions. ! 18: */ ! 19: #define SHM_R 0400 /* read permission */ ! 20: #define SHM_W 0200 /* write permission */ ! 21: ! 22: /* ! 23: ** ipc_perm Mode Definitions. ! 24: */ ! 25: #define SHM_CLEAR 01000 /* clear segment on next attach */ ! 26: #define SHM_DEST 02000 /* destroy segment when # attached = 0 */ ! 27: ! 28: /* ! 29: ** Message Operations Flags. ! 30: */ ! 31: #define SHM_RDONLY 010000 /* attach read-only (else read-write) */ ! 32: #define SHM_RND 020000 /* round attach address to SHMLBA */ ! 33: ! 34: /* ! 35: * Shared memory control operations (are not included in iBCS2) ! 36: * COHERENT 4.0.x does not use a swapper. ! 37: */ ! 38: #define SHM_LOCK 3 /* lock shared memory segment in core */ ! 39: #define SHM_UNLOCK 4 /* unlock shared memory segment */ ! 40: ! 41: /* ! 42: ** There is a shared mem id data structure for each segment in the system. ! 43: */ ! 44: struct shmid_ds { ! 45: struct ipc_perm shm_perm; /* operation permission struct */ ! 46: int shm_segsz; /* segment size */ ! 47: #ifdef _I386 ! 48: unsigned short shm_cpid; /* pid of creator */ ! 49: unsigned short shm_lpid; /* pid of last shmop */ ! 50: #else ! 51: unsigned short shm_lpid; /* pid of last shmop */ ! 52: unsigned short shm_cpid; /* pid of creator */ ! 53: #endif ! 54: unsigned short shm_nattch; /* current # attached */ ! 55: #ifndef _I386 ! 56: unsigned short shm_cnattch; /* in memory # attached */ ! 57: #endif ! 58: time_t shm_atime; /* last shmat time */ ! 59: time_t shm_dtime; /* last shmdt time */ ! 60: time_t shm_ctime; /* last change time */ ! 61: }; ! 62: ! 63: /* ! 64: ** Ioctl Commands issued to Shared Memory Device Driver (on Coherent). ! 65: */ ! 66: #define SHMIOC ('H'<<8) ! 67: #define SHMCTL (SHMIOC+'C') ! 68: #define SHMGET (SHMIOC+'G') ! 69: #define SHMAT (SHMIOC+'A') ! 70: #define SHMDT (SHMIOC+'D') ! 71: ! 72: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.