home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Internet Tools 1993 July / Internet Tools.iso / RockRidge / ip / nfs / nfswatch4.0 / rpcdefs.h < prev    next >
Encoding:
C/C++ Source or Header  |  1993-03-01  |  5.3 KB  |  141 lines

  1. /*
  2.  * $Header: /home/harbor/davy/system/nfswatch/RCS/rpcdefs.h,v 4.0 1993/03/01 19:59:00 davy Exp $
  3.  *
  4.  * rpcdefs.h - definitions for RPC processing code.
  5.  *
  6.  * David A. Curry                Jeffrey C. Mogul
  7.  * Purdue University                Digital Equipment Corporation
  8.  * Engineering Computer Network            Western Research Laboratory
  9.  * 1285 Electrical Engineering Building        250 University Avenue
  10.  * West Lafayette, IN 47907-1285        Palo Alto, CA 94301
  11.  * davy@ecn.purdue.edu                mogul@decwrl.dec.com
  12.  *
  13.  * $Log: rpcdefs.h,v $
  14.  * Revision 4.0  1993/03/01  19:59:00  davy
  15.  * NFSWATCH Version 4.0.
  16.  *
  17.  * Revision 3.3  1993/01/16  19:08:59  davy
  18.  * Corrected Jeff's address.
  19.  *
  20.  * Revision 3.2  1993/01/15  19:33:39  davy
  21.  * Miscellaneous cleanups.
  22.  *
  23.  * Revision 3.1  1993/01/13  20:18:17  davy
  24.  * Put in OS-specific define scheme, and merged in Tim Hudson's code for
  25.  * SGI systems (as yet untested).
  26.  *
  27.  * Revision 3.0  1991/01/23  08:23:19  davy
  28.  * NFSWATCH Version 3.0.
  29.  *
  30.  * Revision 1.2  90/08/17  15:47:10  davy
  31.  * NFSWATCH Version 2.0.
  32.  * 
  33.  * Revision 1.1  88/11/29  11:20:30  davy
  34.  * NFSWATCH Release 1.0
  35.  * 
  36.  */
  37.  
  38. #define NFS_READ        0
  39. #define NFS_WRITE        1
  40.  
  41. /*
  42.  * RPC programs, from "Remote Procedure Call Programming Guide",
  43.  * Revision A, 9 May 1988, pp. 64-65.
  44.  */
  45. #define RPC_PMAPPROG        ((u_long) 100000) /* portmapper             */
  46. #define RPC_RSTATPROG        ((u_long) 100001) /* remote stats         */
  47. #define RPC_RUSERSPROG        ((u_long) 100002) /* remote users         */
  48. #define RPC_NFSPROG        ((u_long) 100003) /* NFS             */
  49. #define RPC_YPPROG        ((u_long) 100004) /* Yellow Pages         */
  50. #define RPC_MOUNTPROG        ((u_long) 100005) /* mount daemon         */
  51. #define RPC_DBXPROG        ((u_long) 100006) /* remote dbx             */
  52. #define RPC_YPBINDPROG        ((u_long) 100007) /* yp binder             */
  53. #define RPC_WALLPROG        ((u_long) 100008) /* shutdown msg         */
  54. #define RPC_YPPASSWDPROG    ((u_long) 100009) /* yppasswd server         */
  55. #define RPC_ETHERSTATPROG    ((u_long) 100010) /* ether stats         */
  56. #define RPC_RQUOTAPROG        ((u_long) 100011) /* disk quotas         */
  57. #define RPC_SPRAYPROG        ((u_long) 100012) /* spray packets         */
  58. #define RPC_IBM3270PROG        ((u_long) 100013) /* 3270 mapper         */
  59. #define RPC_IBMRJEPROG        ((u_long) 100014) /* RJE mapper             */
  60. #define RPC_SELNSVCPROG        ((u_long) 100015) /* selection service         */
  61. #define RPC_RDATABASEPROG    ((u_long) 100016) /* remote database access  */
  62. #define RPC_REXECPROG        ((u_long) 100017) /* remote execution         */
  63. #define RPC_ALICEPROG        ((u_long) 100018) /* Alice Office Automation */
  64. #define RPC_SCHEDPROG        ((u_long) 100019) /* scheduling service      */
  65. #define RPC_LOCKPROG        ((u_long) 100020) /* local lock manager      */
  66. #define RPC_NETLOCKPROG        ((u_long) 100021) /* network lock manager    */
  67. #define RPC_X25PROG        ((u_long) 100022) /* X.25 inr protocol         */
  68. #define RPC_STATMON1PROG    ((u_long) 100023) /* status monitor 1         */
  69. #define RPC_STATMON2PROG    ((u_long) 100024) /* status monitor 2         */
  70. #define RPC_SELNLIBPROG        ((u_long) 100025) /* selection library         */
  71. #define RPC_BOOTPARAMPROG    ((u_long) 100026) /* boot parameters service */
  72. #define RPC_MAZEPROG        ((u_long) 100027) /* mazewars game         */
  73. #define RPC_YPUPDATEPROG    ((u_long) 100028) /* yp update             */
  74. #define RPC_KEYSERVEPROG    ((u_long) 100029) /* key server             */
  75. #define RPC_SECURECMDPROG    ((u_long) 100030) /* secure login         */
  76. #define RPC_NETFWDIPROG        ((u_long) 100031) /* NFS net forwarder init  */
  77. #define RPC_NETFWDTPROG        ((u_long) 100032) /* NFS net forwarder trans */
  78. #define RPC_SUNLINKMAP_PROG    ((u_long) 100033) /* sunlink MAP         */
  79. #define RPC_NETMONPROG        ((u_long) 100034) /* network monitor         */
  80. #define RPC_DBASEPROG        ((u_long) 100035) /* lightweight database    */
  81. #define RPC_PWDAUTHPROG        ((u_long) 100036) /* password authorization  */
  82. #define RPC_TFSPROG        ((u_long) 100037) /* translucent file svc    */
  83. #define RPC_NSEPROG        ((u_long) 100038) /* nse server             */
  84. #define RPC_NSE_ACTIVATE_PROG    ((u_long) 100039) /* nse activate daemon     */
  85. #define RPC_CACHEPROG        ((u_long) 100301) /* nis+ cache             */
  86. #define RPC_CB_PROG        ((u_long) 100302) /* nis+ callback         */
  87.  
  88. #define RPC_PCNFSDPROG        ((u_long) 150001) /* pc passwd authorization */
  89.  
  90. #define RPC_PYRAMIDLOCKINGPROG    ((u_long) 200000) /* Pyramid-locking         */
  91. #define RPC_PYRAMIDSYS5        ((u_long) 200001) /* Pyramid-sys5         */
  92. #define RPC_CADDS_IMAGE        ((u_long) 200002) /* CV cadds_image         */
  93.  
  94. #define RPC_ADT_RFLOCKPROG    ((u_long) 300001) /* ADT file locking         */
  95.  
  96. #ifdef NFSSERVER
  97. /*
  98.  * Classification of NFS procedures.
  99.  */
  100. struct nfs_proc {
  101.     int        nfs_proctype;
  102.     xdrproc_t    nfs_xdrargs;
  103.     int        nfs_argsz;
  104. };
  105.  
  106. /*
  107.  * NFS procedure argument structures.
  108.  */
  109. union nfs_rfsargs {
  110.     fhandle_t fhandle;
  111.     struct nfssaargs nfssaargs;
  112.     struct nfsdiropargs nfsdiropargs;
  113.     struct nfsreadargs nfsreadargs;
  114.     struct nfswriteargs nfswriteargs;
  115.     struct nfscreatargs nfscreatargs;
  116.     struct nfsrnmargs nfsrnmargs;
  117.     struct nfslinkargs nfslinkargs;
  118.     struct nfsslargs nfsslargs;
  119.     struct nfsrddirargs nfsrddirargs;
  120. };
  121.  
  122. /*
  123.  * Macros for use with RPC stuff.
  124.  */
  125. #define min(a, b)        ((a) < (b) ? (a) : (b))
  126. #define rpc_buffer(xprt)    ((xprt)->xp_p1)
  127. #define su_data(xprt)        ((struct svcudp_data *)((xprt)->xp_p2))
  128.  
  129. bool_t    rpcxdr_getargs();    /* get rpc arguments            */
  130.  
  131. /*
  132.  * UDP service data.
  133.  */
  134. struct svcudp_data {
  135.     u_int    su_iosz;    /* byte size of send/recv buffer    */
  136.     u_long    su_xid;        /* transaction id            */
  137.     XDR    su_xdrs;    /* XDR handle                */
  138.     char    su_verfbody[MAX_AUTH_BYTES];    /* verifier body    */
  139. };
  140. #endif
  141.