+++ /dev/null
-/*
- * Please do not edit this file.
- * It was generated using rpcgen.
- */
-
-#include "trbrpc.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>
-
-#include <sys/types.h>
-#include <unistd.h>
-#include <trbnet.h>
-
-#ifndef SIG_PF
-#define SIG_PF void(*)(int)
-#endif
-
-int
-_register_read_1(register_read_1_argument * argp, void *result,
- struct svc_req *rqstp)
-{
- return (register_read_1_svc
- (argp->arg1, argp->arg2, argp->arg3, result, rqstp));
-}
-
-int
-_register_read_mem_1(register_read_mem_1_argument * argp, void *result,
- struct svc_req *rqstp)
-{
- return (register_read_mem_1_svc
- (argp->arg1, argp->arg2, argp->arg3, argp->arg4, argp->arg5, result,
- rqstp));
-}
-
-int
-_register_write_1(register_write_1_argument * argp, void *result,
- struct svc_req *rqstp)
-{
- return (register_write_1_svc
- (argp->arg1, argp->arg2, argp->arg3, result, rqstp));
-}
-
-int
-_register_write_mem_1(register_write_mem_1_argument * argp, void *result,
- struct svc_req *rqstp)
-{
- return (register_write_mem_1_svc
- (argp->arg1, argp->arg2, argp->arg3, argp->arg4, result, rqstp));
-}
-
-int
-_read_uid_1(read_uid_1_argument * argp, void *result, struct svc_req *rqstp)
-{
- return (read_uid_1_svc(argp->arg1, argp->arg2, result, rqstp));
-}
-
-int
-_set_address_1(set_address_1_argument * argp, void *result,
- struct svc_req *rqstp)
-{
- return (set_address_1_svc
- (argp->arg1, argp->arg2, argp->arg3, result, rqstp));
-}
-
-int
-_send_trigger_1(send_trigger_1_argument * argp, void *result,
- struct svc_req *rqstp)
-{
- return (send_trigger_1_svc
- (argp->arg1, argp->arg2, argp->arg3, argp->arg4, result, rqstp));
-}
-
-int
-_send_trigger_rich_1(send_trigger_rich_1_argument * argp, void *result,
- struct svc_req *rqstp)
-{
- return (send_trigger_rich_1_svc
- (argp->arg1, argp->arg2, argp->arg3, argp->arg4, argp->arg5, result,
- rqstp));
-}
-
-int
-_ipu_data_read_1(ipu_data_read_1_argument * argp, void *result,
- struct svc_req *rqstp)
-{
- return (ipu_data_read_1_svc
- (argp->arg1, argp->arg2, argp->arg3, argp->arg4, argp->arg5, result,
- rqstp));
-}
-
-int
-_fpga_register_read_1(uint16_t * argp, void *result, struct svc_req *rqstp)
-{
- return (fpga_register_read_1_svc(*argp, result, rqstp));
-}
-
-int
-_fpga_register_write_1(fpga_register_write_1_argument * argp, void *result,
- struct svc_req *rqstp)
-{
- return (fpga_register_write_1_svc(argp->arg1, argp->arg2, result, rqstp));
-}
-
-int _trb_fifo_flush_1(uint8_t * argp, void *result, struct svc_req *rqstp)
-{
- return (trb_fifo_flush_1_svc(*argp, result, rqstp));
-}
-
-int _network_reset_1(void *argp, void *result, struct svc_req *rqstp)
-{
- return (network_reset_1_svc(result, rqstp));
-}
-
-int _com_reset_1(void *argp, void *result, struct svc_req *rqstp)
-{
- return (com_reset_1_svc(result, rqstp));
-}
-
-int
-_register_modify_1(register_modify_1_argument * argp, void *result,
- struct svc_req *rqstp)
-{
- return (register_modify_1_svc
- (argp->arg1, argp->arg2, argp->arg3, argp->arg4, argp->arg5, result,
- rqstp));
-}
-
-static void trbnetrpcprog_1(struct svc_req *rqstp, register SVCXPRT * transp)
-{
- union
- {
- register_read_1_argument register_read_1_arg;
- register_read_mem_1_argument register_read_mem_1_arg;
- register_write_1_argument register_write_1_arg;
- register_write_mem_1_argument register_write_mem_1_arg;
- read_uid_1_argument read_uid_1_arg;
- set_address_1_argument set_address_1_arg;
- send_trigger_1_argument send_trigger_1_arg;
- send_trigger_rich_1_argument send_trigger_rich_1_arg;
- ipu_data_read_1_argument ipu_data_read_1_arg;
- uint16_t fpga_register_read_1_arg;
- fpga_register_write_1_argument fpga_register_write_1_arg;
- uint8_t trb_fifo_flush_1_arg;
- register_modify_1_argument register_modify_1_arg;
- } argument;
- union
- {
- RetVal register_read_1_res;
- RetVal register_read_mem_1_res;
- Status register_write_1_res;
- Status register_write_mem_1_res;
- RetVal read_uid_1_res;
- Status set_address_1_res;
- Status send_trigger_1_res;
- Status send_trigger_rich_1_res;
- RetVal ipu_data_read_1_res;
- RetVal fpga_register_read_1_res;
- Status fpga_register_write_1_res;
- Status trb_fifo_flush_1_res;
- Status network_reset_1_res;
- Status com_reset_1_res;
- Status register_modify_1_res;
- } result;
- bool_t retval;
- xdrproc_t _xdr_argument, _xdr_result;
- bool_t(*local) (char *, void *, struct svc_req *);
-
- switch (rqstp->rq_proc) {
- case NULLPROC:
- (void)svc_sendreply(transp, (xdrproc_t) xdr_void, (char *)NULL);
- return;
-
- case REGISTER_READ:
- _xdr_argument = (xdrproc_t) xdr_register_read_1_argument;
- _xdr_result = (xdrproc_t) xdr_RetVal;
- local = (bool_t(*)(char *, void *, struct svc_req *))_register_read_1;
- break;
-
- case REGISTER_READ_MEM:
- _xdr_argument = (xdrproc_t) xdr_register_read_mem_1_argument;
- _xdr_result = (xdrproc_t) xdr_RetVal;
- local = (bool_t(*)(char *, void *, struct svc_req *))_register_read_mem_1;
- break;
-
- case REGISTER_WRITE:
- _xdr_argument = (xdrproc_t) xdr_register_write_1_argument;
- _xdr_result = (xdrproc_t) xdr_Status;
- local = (bool_t(*)(char *, void *, struct svc_req *))_register_write_1;
- break;
-
- case REGISTER_WRITE_MEM:
- _xdr_argument = (xdrproc_t) xdr_register_write_mem_1_argument;
- _xdr_result = (xdrproc_t) xdr_Status;
- local =
- (bool_t(*)(char *, void *, struct svc_req *))_register_write_mem_1;
- break;
-
- case READ_UID:
- _xdr_argument = (xdrproc_t) xdr_read_uid_1_argument;
- _xdr_result = (xdrproc_t) xdr_RetVal;
- local = (bool_t(*)(char *, void *, struct svc_req *))_read_uid_1;
- break;
-
- case SET_ADDRESS:
- _xdr_argument = (xdrproc_t) xdr_set_address_1_argument;
- _xdr_result = (xdrproc_t) xdr_Status;
- local = (bool_t(*)(char *, void *, struct svc_req *))_set_address_1;
- break;
-
- case SEND_TRIGGER:
- _xdr_argument = (xdrproc_t) xdr_send_trigger_1_argument;
- _xdr_result = (xdrproc_t) xdr_Status;
- local = (bool_t(*)(char *, void *, struct svc_req *))_send_trigger_1;
- break;
-
- case SEND_TRIGGER_RICH:
- _xdr_argument = (xdrproc_t) xdr_send_trigger_rich_1_argument;
- _xdr_result = (xdrproc_t) xdr_Status;
- local = (bool_t(*)(char *, void *, struct svc_req *))_send_trigger_rich_1;
- break;
-
- case IPU_DATA_READ:
- _xdr_argument = (xdrproc_t) xdr_ipu_data_read_1_argument;
- _xdr_result = (xdrproc_t) xdr_RetVal;
- local = (bool_t(*)(char *, void *, struct svc_req *))_ipu_data_read_1;
- break;
-
- case FPGA_REGISTER_READ:
- _xdr_argument = (xdrproc_t) xdr_uint16_t;
- _xdr_result = (xdrproc_t) xdr_RetVal;
- local =
- (bool_t(*)(char *, void *, struct svc_req *))_fpga_register_read_1;
- break;
-
- case FPGA_REGISTER_WRITE:
- _xdr_argument = (xdrproc_t) xdr_fpga_register_write_1_argument;
- _xdr_result = (xdrproc_t) xdr_Status;
- local =
- (bool_t(*)(char *, void *, struct svc_req *))_fpga_register_write_1;
- break;
-
- case TRB_FIFO_FLUSH:
- _xdr_argument = (xdrproc_t) xdr_uint8_t;
- _xdr_result = (xdrproc_t) xdr_Status;
- local = (bool_t(*)(char *, void *, struct svc_req *))_trb_fifo_flush_1;
- break;
-
- case NETWORK_RESET:
- _xdr_argument = (xdrproc_t) xdr_void;
- _xdr_result = (xdrproc_t) xdr_Status;
- local = (bool_t(*)(char *, void *, struct svc_req *))_network_reset_1;
- break;
-
- case COM_RESET:
- _xdr_argument = (xdrproc_t) xdr_void;
- _xdr_result = (xdrproc_t) xdr_Status;
- local = (bool_t(*)(char *, void *, struct svc_req *))_com_reset_1;
- break;
-
- case REGISTER_MODIFY:
- _xdr_argument = (xdrproc_t) xdr_register_modify_1_argument;
- _xdr_result = (xdrproc_t) xdr_Status;
- local = (bool_t(*)(char *, void *, struct svc_req *))_register_modify_1;
- break;
-
- default:
- svcerr_noproc(transp);
- return;
- }
- memset((char *)&argument, 0, sizeof(argument));
- if (!svc_getargs(transp, (xdrproc_t) _xdr_argument, (caddr_t) & argument)) {
- svcerr_decode(transp);
- return;
- }
- retval = (bool_t) (*local) ((char *)&argument, (void *)&result, rqstp);
- if (retval > 0
- && !svc_sendreply(transp, (xdrproc_t) _xdr_result, (char *)&result)) {
- svcerr_systemerr(transp);
- }
- if (!svc_freeargs(transp, (xdrproc_t) _xdr_argument, (caddr_t) & argument)) {
- fprintf(stderr, "%s", "unable to free arguments");
- exit(EXIT_FAILURE);
- }
- if (!trbnetrpcprog_1_freeresult(transp, _xdr_result, (caddr_t) & result))
- fprintf(stderr, "%s", "unable to free results");
-
- return;
-}
-
-static pid_t myPid = -1;
-
-int main(int argc, char **argv)
-{
- int daemonMode = 1;
- register SVCXPRT *transp;
-
- if ((argc >= 2) && (strcmp(argv[1], "-f") == 0))
- daemonMode = 0;
-
- pmap_unset(TRBNETRPCPROG, TRBNETRPCVERS);
-
- transp = svcudp_create(RPC_ANYSOCK);
- if (transp == NULL) {
- fprintf(stderr, "%s", "cannot create udp service.");
- exit(EXIT_FAILURE);
- }
- if (!svc_register
- (transp, TRBNETRPCPROG, TRBNETRPCVERS, trbnetrpcprog_1, IPPROTO_UDP)) {
- fprintf(stderr, "%s",
- "unable to register (TRBNETRPCPROG, TRBNETRPCVERS, udp).");
- exit(EXIT_FAILURE);
- }
-
- transp = svctcp_create(RPC_ANYSOCK, 0, 0);
- if (transp == NULL) {
- fprintf(stderr, "%s", "cannot create tcp service.");
- exit(EXIT_FAILURE);
- }
- if (!svc_register
- (transp, TRBNETRPCPROG, TRBNETRPCVERS, trbnetrpcprog_1, IPPROTO_TCP)) {
- fprintf(stderr, "%s",
- "unable to register (TRBNETRPCPROG, TRBNETRPCVERS, tcp).");
- exit(EXIT_FAILURE);
- }
-
- /* initialize FPGA */
- init_ports();
-
-
- if (daemonMode == 1) {
- /* fork the first time */
- if ((myPid = fork()) == -1) { /* Error fork, Mother exit, no child */
- perror(argv[0]);
- exit(EXIT_FAILURE);
- }
- if (myPid > 0) {
- exit(EXIT_SUCCESS); /* Mother exit */
- }
- /* fork the second time */
- setsid();
- if ((myPid = fork()) == -1) { /* Error fork, Mother exit, no child */
- perror(argv[0]);
- exit(EXIT_FAILURE);
- }
- if (myPid > 0) {
- exit(EXIT_SUCCESS); /* Mother exit */
- }
- /* close stdin, stdout, stderr, change dir */
- chdir("/");
- freopen("/dev/null", "r", stdin);
- freopen("/dev/null", "a", stdout);
- freopen("/dev/console", "a", stderr);
- }
- svc_run();
-
- /* NOTREACHED */
- fprintf(stderr, "%s", "svc_run returned");
- exit(EXIT_FAILURE);
-}