common/rc: factor out _scratch_xfs_[get|set]_sb_field
[xfstests-dev.git] / dmapi / src / simple / dm_query_session.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 <stdlib.h>
19 #include <stdio.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         char *sessinfo;
33         size_t rlen = 0;
34         dm_sessid_t sid = 0;
35         int buflen = 100;
36         char *versionstr;
37
38         while( (c = getopt(argc, argv, "hs:l:")) != -1 ) {
39                 switch(c){
40                 case 's':
41                         sid = atoi( optarg );
42                         break;
43                 case 'l':
44                         buflen = atoi( optarg );
45                         break;
46                 case 'h':
47                         fprintf(stderr, "Usage: %s <-s sid> [-l buflen]\n", argv[0]);
48                         exit(2);
49                 }
50         }
51
52         if( sid == 0 ){
53                 fprintf(stderr, "%s: must specify -s\n", argv[0] );
54                 exit(1);
55         }
56
57         if( (sessinfo = malloc( sizeof(char*) * buflen )) == NULL ){
58                 fprintf(stderr, "%s: malloc failed\n", argv[0] );
59                 exit(1);
60         }
61
62         if( dm_init_service( &versionstr ) < 0 )
63                 exit(1);
64
65         ret = dm_query_session( sid, buflen, sessinfo, &rlen );
66         printf( "ret=%d\n", ret );
67         printf( "rlen=%zd\n", rlen );
68         if( ret != -1 )
69                 printf( "sessinfo=%s\n", sessinfo );
70         exit(0);
71 }