This is the initial commit.
[keystone-rtos/netapi.git] / ti / runtime / netapi / OLD / shmtest.c
1 #include <stdlib.h>
2 #include <sys/shm.h>
3 #include <errno.h>
5  char * p= NULL;
6 main(int argc, char * argv[])
7 {
8 int fd;
9 int op=0;
10 int name = 0xfeed;
11 int err;
12 if (argc<3) {printf("shmtest  (c[reate]| d[delete]| o[open])  key\n"); exit(1);}
15 switch (argv[1][0])
16 {
17 case 'D':
18 case 'd':
19         op =2; //delete
20         break;
21 case 'c':
22 case 'C':
23         op =0; //create
24         break;
25 case 'o':
26 case 'O':
27         op =1; //open
28         break;
29 default:
30 printf(" unknown op code %c.  Need d, o, or c\n", argv[1][0]);
31 exit(1);
32 break;
33 }
35 name = atoi(argv[2]); printf("key = %d op=%d\n", name,op);
36 switch (op)
37 {
38 case(1): /* open */
39 default:
40         fd = shmget( (key_t) name, 100000, 0666 );
41         if (fd <0) {
42           perror(" shget open failed\n"); 
43           exit( 1);
44         }
45         break;
47 case(0): /* create */
48   fd = shmget(name, 100000, IPC_CREAT | 0666 );
49   if (fd<0) {perror(" shget create failed , exiting "); exit(1);}
50   break;
52 case(2):
53    fd = shmget( (key_t) name, 100000, 0666 );
54   if (fd <0) {
55       perror(" delete: shget open failed\n");
56       exit( 1);
57   }
58   err=shmctl(fd, IPC_RMID, 0);
59   if(err<0) {perror("ctl failed: ");}
60   exit( 0);  //all we do 
61   break;
62 }
64 /* map into us */  
65 p = shmat(fd, 0, 0);
66 if (p == -1) {
67 perror("shmat failed\n"); exit(1);
68 }
69  else {printf("mapped to %x\n",p);}
71 if (op==1) { printf("got something: %s\n", p);}
72 else if(op==0) 
73 {
74 sprintf(p,"created some shared memory, key=%d...\n",name); 
75 printf("creating shm ok: %s",p);
76 }
78 }