home *** CD-ROM | disk | FTP | other *** search
/ Boot Disc 8 / boot-disc-1997-04.iso / PDA_Soft / Psion / comms / p3nfs / nfsd / nfs_prot.c < prev    next >
C/C++ Source or Header  |  1996-03-17  |  5KB  |  218 lines

  1. /*
  2.  * Please do not edit this file.
  3.  * It was generated using rpcgen.
  4.  * And tuned by me (Rudi)
  5.  */
  6.  
  7. #define PORTMAP
  8. #ifdef __svr4__
  9. #include <unistd.h>
  10. #endif
  11. #include <stdio.h>
  12. #include <rpc/rpc.h>
  13. #include "nfs_prot.h"
  14. #include "mp.h"
  15.  
  16. #if 0
  17. static void nfs_program_2();
  18.  
  19. main()
  20. {
  21.     register SVCXPRT *transp;
  22.  
  23.     (void) pmap_unset(NFS_PROGRAM, NFS_VERSION);
  24.  
  25.     transp = svcudp_create(RPC_ANYSOCK);
  26.     if (transp == NULL) {
  27.         fprintf(stderr, "cannot create udp service.");
  28.         exit(1);
  29.     }
  30.     if (!svc_register(transp, NFS_PROGRAM, NFS_VERSION, nfs_program_2, IPPROTO_UDP)) {
  31.         fprintf(stderr, "unable to register (NFS_PROGRAM, NFS_VERSION, udp).");
  32.         exit(1);
  33.     }
  34.  
  35.     transp = svctcp_create(RPC_ANYSOCK, 0, 0);
  36.     if (transp == NULL) {
  37.         fprintf(stderr, "cannot create tcp service.");
  38.         exit(1);
  39.     }
  40.     if (!svc_register(transp, NFS_PROGRAM, NFS_VERSION, nfs_program_2, IPPROTO_TCP)) {
  41.         fprintf(stderr, "unable to register (NFS_PROGRAM, NFS_VERSION, tcp).");
  42.         exit(1);
  43.     }
  44.  
  45.     svc_run();
  46.     fprintf(stderr, "svc_run returned");
  47.     exit(1);
  48.     /* NOTREACHED */
  49. }
  50. #endif
  51.  
  52. void
  53. nfs_program_2(rqstp, transp)
  54.     struct svc_req *rqstp;
  55.     register SVCXPRT *transp;
  56. {
  57.     union {
  58.         nfs_fh nfsproc_getattr_2_arg;
  59.         sattrargs nfsproc_setattr_2_arg;
  60.         diropargs nfsproc_lookup_2_arg;
  61.         nfs_fh nfsproc_readlink_2_arg;
  62.         readargs nfsproc_read_2_arg;
  63.         writeargs nfsproc_write_2_arg;
  64.         createargs nfsproc_create_2_arg;
  65.         diropargs nfsproc_remove_2_arg;
  66.         renameargs nfsproc_rename_2_arg;
  67.         linkargs nfsproc_link_2_arg;
  68.         symlinkargs nfsproc_symlink_2_arg;
  69.         createargs nfsproc_mkdir_2_arg;
  70.         diropargs nfsproc_rmdir_2_arg;
  71.         readdirargs nfsproc_readdir_2_arg;
  72.         nfs_fh nfsproc_statfs_2_arg;
  73.     } argument;
  74.     char *result;
  75.     bool_t (*xdr_argument)(), (*xdr_result)();
  76.     char *(*local)();
  77.  
  78.     switch (rqstp->rq_proc) {
  79.     case NFSPROC_NULL:
  80.         xdr_argument = xdr_void;
  81.         xdr_result = xdr_void;
  82.         local = (char *(*)()) nfsproc_null_2;
  83.         break;
  84.  
  85.     case NFSPROC_GETATTR:
  86.         xdr_argument = xdr_nfs_fh;
  87.         xdr_result = xdr_attrstat;
  88.         local = (char *(*)()) nfsproc_getattr_2;
  89.         break;
  90.  
  91.     case NFSPROC_SETATTR:
  92.         xdr_argument = xdr_sattrargs;
  93.         xdr_result = xdr_attrstat;
  94.         local = (char *(*)()) nfsproc_setattr_2;
  95.         break;
  96.  
  97.     case NFSPROC_ROOT:
  98.         xdr_argument = xdr_void;
  99.         xdr_result = xdr_void;
  100.         local = (char *(*)()) nfsproc_root_2;
  101.         break;
  102.  
  103.     case NFSPROC_LOOKUP:
  104.         xdr_argument = xdr_diropargs;
  105.         xdr_result = xdr_diropres;
  106.         local = (char *(*)()) nfsproc_lookup_2;
  107.         break;
  108.  
  109.     case NFSPROC_READLINK:
  110.         xdr_argument = xdr_nfs_fh;
  111.         xdr_result = xdr_readlinkres;
  112.         local = (char *(*)()) nfsproc_readlink_2;
  113.         break;
  114.  
  115.     case NFSPROC_READ:
  116.         xdr_argument = xdr_readargs;
  117.         xdr_result = xdr_readres;
  118.         local = (char *(*)()) nfsproc_read_2;
  119.         break;
  120.  
  121.     case NFSPROC_WRITECACHE:
  122.         xdr_argument = xdr_void;
  123.         xdr_result = xdr_void;
  124.         local = (char *(*)()) nfsproc_writecache_2;
  125.         break;
  126.  
  127.     case NFSPROC_WRITE:
  128.         xdr_argument = xdr_writeargs;
  129.         xdr_result = xdr_attrstat;
  130.         local = (char *(*)()) nfsproc_write_2;
  131.         break;
  132.  
  133.     case NFSPROC_CREATE:
  134.         xdr_argument = xdr_createargs;
  135.         xdr_result = xdr_diropres;
  136.         local = (char *(*)()) nfsproc_create_2;
  137.         break;
  138.  
  139.     case NFSPROC_REMOVE:
  140.         xdr_argument = xdr_diropargs;
  141.         xdr_result = xdr_nfsstat;
  142.         local = (char *(*)()) nfsproc_remove_2;
  143.         break;
  144.  
  145.     case NFSPROC_RENAME:
  146.         xdr_argument = xdr_renameargs;
  147.         xdr_result = xdr_nfsstat;
  148.         local = (char *(*)()) nfsproc_rename_2;
  149.         break;
  150.  
  151.     case NFSPROC_LINK:
  152.         xdr_argument = xdr_linkargs;
  153.         xdr_result = xdr_nfsstat;
  154.         local = (char *(*)()) nfsproc_link_2;
  155.         break;
  156.  
  157.     case NFSPROC_SYMLINK:
  158.         xdr_argument = xdr_symlinkargs;
  159.         xdr_result = xdr_nfsstat;
  160.         local = (char *(*)()) nfsproc_symlink_2;
  161.         break;
  162.  
  163.     case NFSPROC_MKDIR:
  164.         xdr_argument = xdr_createargs;
  165.         xdr_result = xdr_diropres;
  166.         local = (char *(*)()) nfsproc_mkdir_2;
  167.         break;
  168.  
  169.     case NFSPROC_RMDIR:
  170.         xdr_argument = xdr_diropargs;
  171.         xdr_result = xdr_nfsstat;
  172.         local = (char *(*)()) nfsproc_rmdir_2;
  173.         break;
  174.  
  175.     case NFSPROC_READDIR:
  176.         xdr_argument = xdr_readdirargs;
  177.         xdr_result = xdr_readdirres;
  178.         local = (char *(*)()) nfsproc_readdir_2;
  179.         break;
  180.  
  181.     case NFSPROC_STATFS:
  182.         xdr_argument = xdr_nfs_fh;
  183.         xdr_result = xdr_statfsres;
  184.         local = (char *(*)()) nfsproc_statfs_2;
  185.         break;
  186.  
  187.     default:
  188.         svcerr_noproc(transp);
  189.         return;
  190.     }
  191.     bzero((char *)&argument, sizeof(argument));
  192. #ifndef __svr4__
  193.     if (!svc_getargs(transp, xdr_argument, &argument)) {
  194. #else
  195.     if (!svc_getargs(transp, xdr_argument, (char *)&argument)) {
  196. #endif
  197.         svcerr_decode(transp);
  198.         return;
  199.     }
  200.     result = (*local)(&argument, rqstp);
  201. #ifdef linux
  202.     if (result != NULL && !svc_sendreply(transp, (xdrproc_t) xdr_result, result)) {
  203. #else
  204.     if (result != NULL && !svc_sendreply(transp, xdr_result, result)) {
  205. #endif
  206.         svcerr_systemerr(transp);
  207.     }
  208. #ifndef __svr4__
  209.     if (!svc_freeargs(transp, xdr_argument, &argument)) {
  210. #else
  211.     if (!svc_freeargs(transp, xdr_argument, (char *)&argument)) {
  212. #endif
  213.         fprintf(stderr, "unable to free arguments");
  214.         exit(1);
  215.     }
  216.     return;
  217. }
  218.