|
|
1.1 root 1: /*
2: * (User) Shared Memory Control Functions
3: *
4: * Note: shmget() must be first function called.
5: *
6: * $Log:$
7: * 87/04/26 Allan Cornish
8: * Support for 32 bit 'key' added to shmget.
9: */
10:
11: #include <sys/shm.h>
12:
13: int shmfd = -1;
14: static char shmdev[] = "/dev/shm";
15:
16: /*
17: * Shared Memory Control Operations.
18: */
19:
20: shmctl( shmid, cmd, buf )
21:
22: int shmid;
23: int cmd;
24: int buf;
25:
26: {
27: int parm[4];
28:
29: if ( shmfd < 0 )
30: return -1;
31:
32: parm[0] = -1;
33: parm[1] = shmid;
34: parm[2] = cmd;
35: parm[3] = buf;
36:
37: ioctl( shmfd, SHMCTL, parm );
38: return parm[0];
39: }
40:
41: /*
42: * Get Shared Memory Segment.
43: */
44:
45: shmget( key, size, shmflg )
46:
47: key_t key;
48: int size;
49: int shmflg;
50:
51: {
52: int parm[5];
53:
54: if ( shmfd < 0 ) {
55:
56: if ( (shmfd = open(shmdev, 2)) < 0 ) {
57:
58: perror( shmdev );
59: return -1;
60: }
61: }
62:
63: parm[0] = -1;
64: parm[1] = key;
65: parm[2] = key >> 16;
66: parm[3] = size;
67: parm[4] = shmflg;
68:
69: ioctl( shmfd, SHMGET, parm );
70: return parm[0];
71: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.