kopia lustrzana https://github.com/Hamlib/Hamlib
239 wiersze
6.6 KiB
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;
|
|
}
|