Hamlib/rpcrig/rpcrig_svc.c

239 wiersze
6.6 KiB
C

/*
* Please do not edit this file.
* It was generated using rpcgen.
*/
#include "rpcrig.h"
#include <stdio.h>
#include <stdlib.h>
#include <rpc/pmap_clnt.h>
#include <string.h>
#include <memory.h>
#include <sys/socket.h>
#include <netinet/in.h>
#ifndef SIG_PF
#define SIG_PF void(*)(int)
#endif
/*
* Hamlib Interface - RPC definitions
* Copyright (c) 2000,2001 by Stephane Fillod and Frank Singleton
*
* $Id: rpcrig_svc.c,v 1.3 2001-12-27 21:58:47 fillods Exp $
*
* This library is free software; you can redistribute it and/or modify
* it under the terms of the GNU Library General Public License as
* published by the Free Software Foundation; either version 2 of
* the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
*/
void
rigprog_1(struct svc_req *rqstp, register SVCXPRT *transp)
{
union {
freq_arg setfreq_1_arg;
vfo_x getfreq_1_arg;
mode_arg setmode_1_arg;
vfo_x getmode_1_arg;
vfo_x setvfo_1_arg;
vfo_x getvfo_1_arg;
freq_arg setsplitfreq_1_arg;
vfo_x getsplitfreq_1_arg;
mode_arg setsplitmode_1_arg;
vfo_x getsplitmode_1_arg;
split_arg setsplit_1_arg;
vfo_x getsplit_1_arg;
ptt_arg setptt_1_arg;
vfo_x getptt_1_arg;
vfo_x getdcd_1_arg;
setting_arg setfunc_1_arg;
setting_arg getfunc_1_arg;
setting_arg setlevel_1_arg;
setting_arg getlevel_1_arg;
setting_arg setparm_1_arg;
setting_arg getparm_1_arg;
vfo_op_arg vfoop_1_arg;
} argument;
char *result;
xdrproc_t _xdr_argument, _xdr_result;
char *(*local)(char *, struct svc_req *);
switch (rqstp->rq_proc) {
case NULLPROC:
(void) svc_sendreply (transp, (xdrproc_t) xdr_void, (char *)NULL);
return;
case GETMODEL:
_xdr_argument = (xdrproc_t) xdr_void;
_xdr_result = (xdrproc_t) xdr_model_x;
local = (char *(*)(char *, struct svc_req *)) getmodel_1_svc;
break;
case GETRIGSTATE:
_xdr_argument = (xdrproc_t) xdr_void;
_xdr_result = (xdrproc_t) xdr_rigstate_res;
local = (char *(*)(char *, struct svc_req *)) getrigstate_1_svc;
break;
case SETFREQ:
_xdr_argument = (xdrproc_t) xdr_freq_arg;
_xdr_result = (xdrproc_t) xdr_int;
local = (char *(*)(char *, struct svc_req *)) setfreq_1_svc;
break;
case GETFREQ:
_xdr_argument = (xdrproc_t) xdr_vfo_x;
_xdr_result = (xdrproc_t) xdr_freq_res;
local = (char *(*)(char *, struct svc_req *)) getfreq_1_svc;
break;
case SETMODE:
_xdr_argument = (xdrproc_t) xdr_mode_arg;
_xdr_result = (xdrproc_t) xdr_int;
local = (char *(*)(char *, struct svc_req *)) setmode_1_svc;
break;
case GETMODE:
_xdr_argument = (xdrproc_t) xdr_vfo_x;
_xdr_result = (xdrproc_t) xdr_mode_res;
local = (char *(*)(char *, struct svc_req *)) getmode_1_svc;
break;
case SETVFO:
_xdr_argument = (xdrproc_t) xdr_vfo_x;
_xdr_result = (xdrproc_t) xdr_int;
local = (char *(*)(char *, struct svc_req *)) setvfo_1_svc;
break;
case GETVFO:
_xdr_argument = (xdrproc_t) xdr_vfo_x;
_xdr_result = (xdrproc_t) xdr_vfo_res;
local = (char *(*)(char *, struct svc_req *)) getvfo_1_svc;
break;
case SETSPLITFREQ:
_xdr_argument = (xdrproc_t) xdr_freq_arg;
_xdr_result = (xdrproc_t) xdr_int;
local = (char *(*)(char *, struct svc_req *)) setsplitfreq_1_svc;
break;
case GETSPLITFREQ:
_xdr_argument = (xdrproc_t) xdr_vfo_x;
_xdr_result = (xdrproc_t) xdr_freq_res;
local = (char *(*)(char *, struct svc_req *)) getsplitfreq_1_svc;
break;
case SETSPLITMODE:
_xdr_argument = (xdrproc_t) xdr_mode_arg;
_xdr_result = (xdrproc_t) xdr_int;
local = (char *(*)(char *, struct svc_req *)) setsplitmode_1_svc;
break;
case GETSPLITMODE:
_xdr_argument = (xdrproc_t) xdr_vfo_x;
_xdr_result = (xdrproc_t) xdr_mode_res;
local = (char *(*)(char *, struct svc_req *)) getsplitmode_1_svc;
break;
case SETSPLIT:
_xdr_argument = (xdrproc_t) xdr_split_arg;
_xdr_result = (xdrproc_t) xdr_int;
local = (char *(*)(char *, struct svc_req *)) setsplit_1_svc;
break;
case GETSPLIT:
_xdr_argument = (xdrproc_t) xdr_vfo_x;
_xdr_result = (xdrproc_t) xdr_split_res;
local = (char *(*)(char *, struct svc_req *)) getsplit_1_svc;
break;
case SETPTT:
_xdr_argument = (xdrproc_t) xdr_ptt_arg;
_xdr_result = (xdrproc_t) xdr_int;
local = (char *(*)(char *, struct svc_req *)) setptt_1_svc;
break;
case GETPTT:
_xdr_argument = (xdrproc_t) xdr_vfo_x;
_xdr_result = (xdrproc_t) xdr_ptt_res;
local = (char *(*)(char *, struct svc_req *)) getptt_1_svc;
break;
case GETDCD:
_xdr_argument = (xdrproc_t) xdr_vfo_x;
_xdr_result = (xdrproc_t) xdr_dcd_res;
local = (char *(*)(char *, struct svc_req *)) getdcd_1_svc;
break;
case SETFUNC:
_xdr_argument = (xdrproc_t) xdr_setting_arg;
_xdr_result = (xdrproc_t) xdr_int;
local = (char *(*)(char *, struct svc_req *)) setfunc_1_svc;
break;
case GETFUNC:
_xdr_argument = (xdrproc_t) xdr_setting_arg;
_xdr_result = (xdrproc_t) xdr_val_res;
local = (char *(*)(char *, struct svc_req *)) getfunc_1_svc;
break;
case SETLEVEL:
_xdr_argument = (xdrproc_t) xdr_setting_arg;
_xdr_result = (xdrproc_t) xdr_int;
local = (char *(*)(char *, struct svc_req *)) setlevel_1_svc;
break;
case GETLEVEL:
_xdr_argument = (xdrproc_t) xdr_setting_arg;
_xdr_result = (xdrproc_t) xdr_val_res;
local = (char *(*)(char *, struct svc_req *)) getlevel_1_svc;
break;
case SETPARM:
_xdr_argument = (xdrproc_t) xdr_setting_arg;
_xdr_result = (xdrproc_t) xdr_int;
local = (char *(*)(char *, struct svc_req *)) setparm_1_svc;
break;
case GETPARM:
_xdr_argument = (xdrproc_t) xdr_setting_arg;
_xdr_result = (xdrproc_t) xdr_val_res;
local = (char *(*)(char *, struct svc_req *)) getparm_1_svc;
break;
case VFOOP:
_xdr_argument = (xdrproc_t) xdr_vfo_op_arg;
_xdr_result = (xdrproc_t) xdr_int;
local = (char *(*)(char *, struct svc_req *)) vfoop_1_svc;
break;
default:
svcerr_noproc (transp);
return;
}
memset ((char *)&argument, 0, sizeof (argument));
if (!svc_getargs (transp, _xdr_argument, (caddr_t) &argument)) {
svcerr_decode (transp);
return;
}
result = (*local)((char *)&argument, rqstp);
if (result != NULL && !svc_sendreply(transp, _xdr_result, result)) {
svcerr_systemerr (transp);
}
if (!svc_freeargs (transp, _xdr_argument, (caddr_t) &argument)) {
fprintf (stderr, "%s", "unable to free arguments");
exit (1);
}
return;
}