|
|
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.