dab49df5c0a250f482b030a344f35959bbd902f5
[xfstests-dev.git] / dmapi / src / simple / dm_find_eventmsg.c
1 /*
2  * Copyright (c) 2000-2001 Silicon Graphics, Inc.
3  * All Rights Reserved.
4  *
5  * This program is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU General Public License as
7  * published by the Free Software Foundation.
8  *
9  * This program is distributed in the hope that it would be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12  * GNU General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License
15  * along with this program; if not, write the Free Software Foundation,
16  * Inc.,  51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
17  */
18 #include <stdio.h>
19 #include <stdlib.h>
20 #include <sys/errno.h>
21 #include <getopt.h>
22 #ifdef linux
23 #include <dmapi.h>
24 #endif
25
26 int
27 main( int argc, char **argv )
28 {
29         extern char *optarg;
30         int c;
31         int ret;
32         dm_sessid_t sid = 0;
33         dm_token_t token = 0;
34         dm_eventmsg_t msg;
35         size_t rlen;
36         int buflen = sizeof(dm_eventmsg_t) + 100;
37         char *versionstr;
38
39         while( (c = getopt(argc, argv, "hs:t:l:q")) != -1 ) {
40                 switch(c){
41                 case 's':
42                         sid = atoi( optarg );
43                         break;
44                 case 't':
45                         token = atoi( optarg );
46                         break;
47                 case 'l':
48                         buflen = atoi( optarg );
49                         break;
50                 case 'q':
51                         printf("dm_eventmsg_t=%zd\n", sizeof(dm_eventmsg_t) );
52                         exit(0);
53                 case 'h':
54                         fprintf(stderr, "Usage: %s <-s sid> <-t token> [-l buflen]\n", argv[0]);
55                         fprintf(stderr, "       %s -q\n", argv[0]);
56                         exit(2);
57                 }
58         }
59
60         if( sid == 0 ){
61                 fprintf(stderr, "%s: must specify -s\n", argv[0] );
62                 exit(1);
63         }
64
65         if( token == 0 ){
66                 fprintf(stderr, "%s: must specify -t\n", argv[0] );
67                 exit(1);
68         }
69
70         if( dm_init_service( &versionstr ) < 0 )
71                 exit(1);
72
73         ret = dm_find_eventmsg( sid, token, buflen, &msg, &rlen );
74         printf( "ret=%d\n", ret );
75         printf( "rlen=%zd\n", rlen );
76         exit(0);
77 }