138494Sobrien/* 2310490Scy * Copyright (c) 1997-2014 Erez Zadok 338494Sobrien * Copyright (c) 1990 Jan-Simon Pendry 438494Sobrien * Copyright (c) 1990 Imperial College of Science, Technology & Medicine 538494Sobrien * Copyright (c) 1990 The Regents of the University of California. 638494Sobrien * All rights reserved. 738494Sobrien * 838494Sobrien * This code is derived from software contributed to Berkeley by 938494Sobrien * Jan-Simon Pendry at Imperial College, London. 1038494Sobrien * 1138494Sobrien * Redistribution and use in source and binary forms, with or without 1238494Sobrien * modification, are permitted provided that the following conditions 1338494Sobrien * are met: 1438494Sobrien * 1. Redistributions of source code must retain the above copyright 1538494Sobrien * notice, this list of conditions and the following disclaimer. 1638494Sobrien * 2. Redistributions in binary form must reproduce the above copyright 1738494Sobrien * notice, this list of conditions and the following disclaimer in the 1838494Sobrien * documentation and/or other materials provided with the distribution. 19310490Scy * 3. Neither the name of the University nor the names of its contributors 2038494Sobrien * may be used to endorse or promote products derived from this software 2138494Sobrien * without specific prior written permission. 2238494Sobrien * 2338494Sobrien * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 2438494Sobrien * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 2538494Sobrien * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 2638494Sobrien * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 2738494Sobrien * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 2838494Sobrien * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 2938494Sobrien * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 3038494Sobrien * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 3138494Sobrien * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 3238494Sobrien * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 3338494Sobrien * SUCH DAMAGE. 3438494Sobrien * 3538494Sobrien * 36174294Sobrien * File: am-utils/amq/amq_clnt.c 3738494Sobrien * 3838494Sobrien */ 3938494Sobrien 4038494Sobrien#ifdef HAVE_CONFIG_H 4138494Sobrien# include <config.h> 4238494Sobrien#endif /* HAVE_CONFIG_H */ 4338494Sobrien#include <am_defs.h> 4438494Sobrien#include <amq.h> 4538494Sobrien 4638494Sobrien 4738494Sobrienstatic struct timeval TIMEOUT = {ALLOWED_MOUNT_TIME, 0}; 4838494Sobrien 4938494Sobrien 5038494Sobrienvoidp 5138494Sobrienamqproc_null_1(voidp argp, CLIENT *clnt) 5238494Sobrien{ 5338494Sobrien static char res; 5438494Sobrien 5538494Sobrien memset((char *) &res, 0, sizeof(res)); 5638494Sobrien if (clnt_call(clnt, AMQPROC_NULL, 5738494Sobrien (XDRPROC_T_TYPE) xdr_void, argp, 5838494Sobrien (XDRPROC_T_TYPE) xdr_void, &res, TIMEOUT) 5938494Sobrien != RPC_SUCCESS) { 6038494Sobrien return (NULL); 6138494Sobrien } 6238494Sobrien return ((voidp) &res); 6338494Sobrien} 6438494Sobrien 6538494Sobrien 6638494Sobrienamq_mount_tree_p * 6738494Sobrienamqproc_mnttree_1(amq_string *argp, CLIENT *clnt) 6838494Sobrien{ 6938494Sobrien static amq_mount_tree_p res; 7038494Sobrien 7138494Sobrien memset((char *) &res, 0, sizeof(res)); 7238494Sobrien if (clnt_call(clnt, AMQPROC_MNTTREE, 7338494Sobrien (XDRPROC_T_TYPE) xdr_amq_string, (SVC_IN_ARG_TYPE) argp, 74174294Sobrien (XDRPROC_T_TYPE) xdr_amq_mount_tree_p, (SVC_IN_ARG_TYPE) &res, 7538494Sobrien TIMEOUT) != RPC_SUCCESS) { 7638494Sobrien return (NULL); 7738494Sobrien } 7838494Sobrien return (&res); 7938494Sobrien} 8038494Sobrien 8138494Sobrien 8238494Sobrienvoidp 8338494Sobrienamqproc_umnt_1(amq_string *argp, CLIENT *clnt) 8438494Sobrien{ 8538494Sobrien static char res; 8638494Sobrien 8738494Sobrien memset((char *) &res, 0, sizeof(res)); 8838494Sobrien if (clnt_call(clnt, AMQPROC_UMNT, 8938494Sobrien (XDRPROC_T_TYPE) xdr_amq_string, (SVC_IN_ARG_TYPE) argp, 9038494Sobrien (XDRPROC_T_TYPE) xdr_void, &res, 9138494Sobrien TIMEOUT) != RPC_SUCCESS) { 9238494Sobrien return (NULL); 9338494Sobrien } 9438494Sobrien return ((voidp) &res); 9538494Sobrien} 9638494Sobrien 9738494Sobrien 98310490Scyamq_sync_umnt * 99310490Scyamqproc_sync_umnt_1(amq_string *argp, CLIENT *clnt) 100310490Scy{ 101310490Scy static amq_sync_umnt res; 102310490Scy enum clnt_stat rv; 103310490Scy 104310490Scy memset((char *) &res, 0, sizeof(res)); 105310490Scy if ((rv = clnt_call(clnt, AMQPROC_SYNC_UMNT, 106310490Scy (XDRPROC_T_TYPE) xdr_amq_string, (SVC_IN_ARG_TYPE) argp, 107310490Scy (XDRPROC_T_TYPE) xdr_amq_sync_umnt, (SVC_IN_ARG_TYPE) &res, 108310490Scy TIMEOUT)) != RPC_SUCCESS) { 109310490Scy return (NULL); 110310490Scy } 111310490Scy return &res; 112310490Scy} 113310490Scy 114310490Scy 11538494Sobrienamq_mount_stats * 11638494Sobrienamqproc_stats_1(voidp argp, CLIENT *clnt) 11738494Sobrien{ 11838494Sobrien static amq_mount_stats res; 11938494Sobrien 12038494Sobrien memset((char *) &res, 0, sizeof(res)); 12138494Sobrien if (clnt_call(clnt, AMQPROC_STATS, 12238494Sobrien (XDRPROC_T_TYPE) xdr_void, argp, 12338494Sobrien (XDRPROC_T_TYPE) xdr_amq_mount_stats, 124174294Sobrien (SVC_IN_ARG_TYPE) &res, 12538494Sobrien TIMEOUT) != RPC_SUCCESS) { 12638494Sobrien return (NULL); 12738494Sobrien } 12838494Sobrien return (&res); 12938494Sobrien} 13038494Sobrien 13138494Sobrien 13238494Sobrienamq_mount_tree_list * 13338494Sobrienamqproc_export_1(voidp argp, CLIENT *clnt) 13438494Sobrien{ 13538494Sobrien static amq_mount_tree_list res; 13638494Sobrien 13738494Sobrien memset((char *) &res, 0, sizeof(res)); 13838494Sobrien if (clnt_call(clnt, AMQPROC_EXPORT, 13938494Sobrien (XDRPROC_T_TYPE) xdr_void, argp, 14038494Sobrien (XDRPROC_T_TYPE) xdr_amq_mount_tree_list, 141174294Sobrien (SVC_IN_ARG_TYPE) &res, TIMEOUT) != RPC_SUCCESS) { 14238494Sobrien return (NULL); 14338494Sobrien } 14438494Sobrien return (&res); 14538494Sobrien} 14638494Sobrien 14738494Sobrien 14838494Sobrienint * 14938494Sobrienamqproc_setopt_1(amq_setopt *argp, CLIENT *clnt) 15038494Sobrien{ 15138494Sobrien static int res; 15238494Sobrien 15338494Sobrien memset((char *) &res, 0, sizeof(res)); 15438494Sobrien if (clnt_call(clnt, AMQPROC_SETOPT, (XDRPROC_T_TYPE) xdr_amq_setopt, 15538494Sobrien (SVC_IN_ARG_TYPE) argp, (XDRPROC_T_TYPE) xdr_int, 156174294Sobrien (SVC_IN_ARG_TYPE) &res, TIMEOUT) != RPC_SUCCESS) { 15738494Sobrien return (NULL); 15838494Sobrien } 15938494Sobrien return (&res); 16038494Sobrien} 16138494Sobrien 16238494Sobrien 16338494Sobrienamq_mount_info_list * 16438494Sobrienamqproc_getmntfs_1(voidp argp, CLIENT *clnt) 16538494Sobrien{ 16638494Sobrien static amq_mount_info_list res; 16738494Sobrien 16838494Sobrien memset((char *) &res, 0, sizeof(res)); 16938494Sobrien if (clnt_call(clnt, AMQPROC_GETMNTFS, (XDRPROC_T_TYPE) xdr_void, argp, 17038494Sobrien (XDRPROC_T_TYPE) xdr_amq_mount_info_list, 171174294Sobrien (SVC_IN_ARG_TYPE) &res, TIMEOUT) != RPC_SUCCESS) { 17238494Sobrien return (NULL); 17338494Sobrien } 17438494Sobrien return (&res); 17538494Sobrien} 17638494Sobrien 177310490Scyamq_map_info_list * 178310490Scyamqproc_getmapinfo_1(voidp argp, CLIENT *clnt) 179310490Scy{ 180310490Scy static amq_map_info_list res; 18138494Sobrien 182310490Scy memset((char *) &res, 0, sizeof(res)); 183310490Scy if (clnt_call(clnt, AMQPROC_GETMAPINFO, (XDRPROC_T_TYPE) xdr_void, argp, 184310490Scy (XDRPROC_T_TYPE) xdr_amq_map_info_list, 185310490Scy (SVC_IN_ARG_TYPE) &res, TIMEOUT) != RPC_SUCCESS) { 186310490Scy return (NULL); 187310490Scy } 188310490Scy return (&res); 189310490Scy} 190310490Scy 191310490Scy 19238494Sobrienint * 19338494Sobrienamqproc_mount_1(voidp argp, CLIENT *clnt) 19438494Sobrien{ 19538494Sobrien static int res; 19638494Sobrien 19738494Sobrien memset((char *) &res, 0, sizeof(res)); 19838494Sobrien if (clnt_call(clnt, AMQPROC_MOUNT, (XDRPROC_T_TYPE) xdr_amq_string, argp, 199174294Sobrien (XDRPROC_T_TYPE) xdr_int, (SVC_IN_ARG_TYPE) &res, 20038494Sobrien TIMEOUT) != RPC_SUCCESS) { 20138494Sobrien return (NULL); 20238494Sobrien } 20338494Sobrien return (&res); 20438494Sobrien} 20538494Sobrien 20638494Sobrien 20738494Sobrienamq_string * 20838494Sobrienamqproc_getvers_1(voidp argp, CLIENT *clnt) 20938494Sobrien{ 21038494Sobrien static amq_string res; 21138494Sobrien 21238494Sobrien memset((char *) &res, 0, sizeof(res)); 21338494Sobrien if (clnt_call(clnt, AMQPROC_GETVERS, (XDRPROC_T_TYPE) xdr_void, argp, 214174294Sobrien (XDRPROC_T_TYPE) xdr_amq_string, (SVC_IN_ARG_TYPE) &res, 21538494Sobrien TIMEOUT) != RPC_SUCCESS) { 21638494Sobrien return (NULL); 21738494Sobrien } 21838494Sobrien return (&res); 21938494Sobrien} 22038494Sobrien 22138494Sobrien 22238494Sobrienint * 22338494Sobrienamqproc_getpid_1(voidp argp, CLIENT *clnt) 22438494Sobrien{ 22538494Sobrien static int res; 22638494Sobrien 22738494Sobrien memset((char *) &res, 0, sizeof(res)); 22838494Sobrien if (clnt_call(clnt, AMQPROC_GETPID, (XDRPROC_T_TYPE) xdr_void, argp, 229174294Sobrien (XDRPROC_T_TYPE) xdr_int, (SVC_IN_ARG_TYPE) &res, 23038494Sobrien TIMEOUT) != RPC_SUCCESS) { 23138494Sobrien return (NULL); 23238494Sobrien } 23338494Sobrien return (&res); 23438494Sobrien} 235174294Sobrien 236174294Sobrien 237174294Sobrienamq_string * 238174294Sobrienamqproc_pawd_1(amq_string *argp, CLIENT *clnt) 239174294Sobrien{ 240174294Sobrien static amq_string res; 241174294Sobrien 242174294Sobrien memset((char *) &res, 0, sizeof(res)); 243174294Sobrien if (clnt_call(clnt, AMQPROC_PAWD, 244174294Sobrien (XDRPROC_T_TYPE) xdr_amq_string, (SVC_IN_ARG_TYPE) argp, 245174294Sobrien (XDRPROC_T_TYPE) xdr_amq_string, (SVC_IN_ARG_TYPE) &res, 246174294Sobrien TIMEOUT) != RPC_SUCCESS) { 247174294Sobrien return (NULL); 248174294Sobrien } 249174294Sobrien return (&res); 250174294Sobrien} 251