/* $Id$ * * Please do not edit this file. * It was generated using rpcgen. * And tuned by me (Rudi) */ #include "OSdefs.h" #define PORTMAP #if defined(__SVR4) || defined(__NetBSD__) #include #include #endif #include #include #include "nfs_prot.h" #include "mp.h" #if defined(__GLIBC__) || defined(__NetBSD__) #include #endif #if 0 static void nfs_program_2(); main() { register SVCXPRT *transp; (void) pmap_unset(NFS_PROGRAM, NFS_VERSION); transp = svcudp_create(RPC_ANYSOCK); if (transp == NULL) { fprintf(stderr, "cannot create udp service."); exit(1); } if (!svc_register(transp, NFS_PROGRAM, NFS_VERSION, nfs_program_2, IPPROTO_UDP)) { fprintf(stderr, "unable to register (NFS_PROGRAM, NFS_VERSION, udp)."); exit(1); } transp = svctcp_create(RPC_ANYSOCK, 0, 0); if (transp == NULL) { fprintf(stderr, "cannot create tcp service."); exit(1); } if (!svc_register(transp, NFS_PROGRAM, NFS_VERSION, nfs_program_2, IPPROTO_TCP)) { fprintf(stderr, "unable to register (NFS_PROGRAM, NFS_VERSION, tcp)."); exit(1); } svc_run(); fprintf(stderr, "svc_run returned"); exit(1); /* NOTREACHED */ } #endif void nfs_program_2(rqstp, transp) struct svc_req *rqstp; register SVCXPRT *transp; { union { nfs_fh nfsproc_getattr_2_arg; sattrargs nfsproc_setattr_2_arg; diropargs nfsproc_lookup_2_arg; nfs_fh nfsproc_readlink_2_arg; readargs nfsproc_read_2_arg; writeargs nfsproc_write_2_arg; createargs nfsproc_create_2_arg; diropargs nfsproc_remove_2_arg; renameargs nfsproc_rename_2_arg; linkargs nfsproc_link_2_arg; symlinkargs nfsproc_symlink_2_arg; createargs nfsproc_mkdir_2_arg; diropargs nfsproc_rmdir_2_arg; readdirargs nfsproc_readdir_2_arg; nfs_fh nfsproc_statfs_2_arg; } argument; char *result; bool_t (*xdr_argument)(), (*xdr_result)(); char *(*local)(); switch (rqstp->rq_proc) { case NFSPROC_NULL: xdr_argument = xdr_void; xdr_result = xdr_void; local = (char *(*)()) nfsproc_null_2; break; case NFSPROC_GETATTR: xdr_argument = xdr_nfs_fh; xdr_result = xdr_attrstat; local = (char *(*)()) nfsproc_getattr_2; break; case NFSPROC_SETATTR: xdr_argument = xdr_sattrargs; xdr_result = xdr_attrstat; local = (char *(*)()) nfsproc_setattr_2; break; case NFSPROC_ROOT: xdr_argument = xdr_void; xdr_result = xdr_void; local = (char *(*)()) nfsproc_root_2; break; case NFSPROC_LOOKUP: xdr_argument = xdr_diropargs; xdr_result = xdr_diropres; local = (char *(*)()) nfsproc_lookup_2; break; case NFSPROC_READLINK: xdr_argument = xdr_nfs_fh; xdr_result = xdr_readlinkres; local = (char *(*)()) nfsproc_readlink_2; break; case NFSPROC_READ: xdr_argument = xdr_readargs; xdr_result = xdr_readres; local = (char *(*)()) nfsproc_read_2; break; case NFSPROC_WRITECACHE: xdr_argument = xdr_void; xdr_result = xdr_void; local = (char *(*)()) nfsproc_writecache_2; break; case NFSPROC_WRITE: xdr_argument = xdr_writeargs; xdr_result = xdr_attrstat; local = (char *(*)()) nfsproc_write_2; break; case NFSPROC_CREATE: xdr_argument = xdr_createargs; xdr_result = xdr_diropres; local = (char *(*)()) nfsproc_create_2; break; case NFSPROC_REMOVE: xdr_argument = xdr_diropargs; xdr_result = xdr_nfsstat; local = (char *(*)()) nfsproc_remove_2; break; case NFSPROC_RENAME: xdr_argument = xdr_renameargs; xdr_result = xdr_nfsstat; local = (char *(*)()) nfsproc_rename_2; break; case NFSPROC_LINK: xdr_argument = xdr_linkargs; xdr_result = xdr_nfsstat; local = (char *(*)()) nfsproc_link_2; break; case NFSPROC_SYMLINK: xdr_argument = xdr_symlinkargs; xdr_result = xdr_nfsstat; local = (char *(*)()) nfsproc_symlink_2; break; case NFSPROC_MKDIR: xdr_argument = xdr_createargs; xdr_result = xdr_diropres; local = (char *(*)()) nfsproc_mkdir_2; break; case NFSPROC_RMDIR: xdr_argument = xdr_diropargs; xdr_result = xdr_nfsstat; local = (char *(*)()) nfsproc_rmdir_2; break; case NFSPROC_READDIR: xdr_argument = xdr_readdirargs; xdr_result = xdr_readdirres; local = (char *(*)()) nfsproc_readdir_2; break; case NFSPROC_STATFS: xdr_argument = xdr_nfs_fh; xdr_result = xdr_statfsres; local = (char *(*)()) nfsproc_statfs_2; break; default: svcerr_noproc(transp); return; } memset((char *)&argument, 0, sizeof(argument)); #if !defined(__SVR4) && !defined(__FreeBSD__) #if defined(__GLIBC__) || defined(__NetBSD__) if (!svc_getargs(transp, (xdrproc_t)xdr_argument, (caddr_t)&argument)) { #else if (!svc_getargs(transp, xdr_argument, &argument)) { #endif #else if (!svc_getargs(transp, xdr_argument, (char *)&argument)) { #endif svcerr_decode(transp); return; } result = (*local)(&argument, rqstp); #ifdef linux if (result != NULL && !svc_sendreply(transp, (xdrproc_t) xdr_result, result)) { #else if (result != NULL && !svc_sendreply(transp, xdr_result, result)) { #endif svcerr_systemerr(transp); } #if !defined(__SVR4) && !defined(__FreeBSD__) #if defined(__GLIBC__) || defined(__NetBSD__) if (!svc_freeargs(transp, (xdrproc_t)xdr_argument,(caddr_t)&argument)) { #else if (!svc_freeargs(transp, xdr_argument, &argument)) { #endif #else if (!svc_freeargs(transp, xdr_argument, (char *)&argument)) { #endif fprintf(stderr, "unable to free arguments"); exit(1); } return; }