1*8044SWilliam.Kucharski@Sun.COM #ifndef _NFS_H 2*8044SWilliam.Kucharski@Sun.COM #define _NFS_H 3*8044SWilliam.Kucharski@Sun.COM 4*8044SWilliam.Kucharski@Sun.COM #define SUNRPC_PORT 111 5*8044SWilliam.Kucharski@Sun.COM 6*8044SWilliam.Kucharski@Sun.COM #define PROG_PORTMAP 100000 7*8044SWilliam.Kucharski@Sun.COM #define PROG_NFS 100003 8*8044SWilliam.Kucharski@Sun.COM #define PROG_MOUNT 100005 9*8044SWilliam.Kucharski@Sun.COM 10*8044SWilliam.Kucharski@Sun.COM #define MSG_CALL 0 11*8044SWilliam.Kucharski@Sun.COM #define MSG_REPLY 1 12*8044SWilliam.Kucharski@Sun.COM 13*8044SWilliam.Kucharski@Sun.COM #define PORTMAP_GETPORT 3 14*8044SWilliam.Kucharski@Sun.COM 15*8044SWilliam.Kucharski@Sun.COM #define MOUNT_ADDENTRY 1 16*8044SWilliam.Kucharski@Sun.COM #define MOUNT_UMOUNTALL 4 17*8044SWilliam.Kucharski@Sun.COM 18*8044SWilliam.Kucharski@Sun.COM #define NFS_LOOKUP 4 19*8044SWilliam.Kucharski@Sun.COM #define NFS_READLINK 5 20*8044SWilliam.Kucharski@Sun.COM #define NFS_READ 6 21*8044SWilliam.Kucharski@Sun.COM 22*8044SWilliam.Kucharski@Sun.COM #define NFS_FHSIZE 32 23*8044SWilliam.Kucharski@Sun.COM 24*8044SWilliam.Kucharski@Sun.COM #define NFSERR_PERM 1 25*8044SWilliam.Kucharski@Sun.COM #define NFSERR_NOENT 2 26*8044SWilliam.Kucharski@Sun.COM #define NFSERR_ACCES 13 27*8044SWilliam.Kucharski@Sun.COM #define NFSERR_ISDIR 21 28*8044SWilliam.Kucharski@Sun.COM #define NFSERR_INVAL 22 29*8044SWilliam.Kucharski@Sun.COM 30*8044SWilliam.Kucharski@Sun.COM /* Block size used for NFS read accesses. A RPC reply packet (including all 31*8044SWilliam.Kucharski@Sun.COM * headers) must fit within a single Ethernet frame to avoid fragmentation. 32*8044SWilliam.Kucharski@Sun.COM * Chosen to be a power of two, as most NFS servers are optimized for this. */ 33*8044SWilliam.Kucharski@Sun.COM #define NFS_READ_SIZE 1024 34*8044SWilliam.Kucharski@Sun.COM 35*8044SWilliam.Kucharski@Sun.COM #define NFS_MAXLINKDEPTH 16 36*8044SWilliam.Kucharski@Sun.COM 37*8044SWilliam.Kucharski@Sun.COM struct rpc_t { 38*8044SWilliam.Kucharski@Sun.COM struct iphdr ip; 39*8044SWilliam.Kucharski@Sun.COM struct udphdr udp; 40*8044SWilliam.Kucharski@Sun.COM union { 41*8044SWilliam.Kucharski@Sun.COM uint8_t data[300]; /* longest RPC call must fit!!!! */ 42*8044SWilliam.Kucharski@Sun.COM struct { 43*8044SWilliam.Kucharski@Sun.COM uint32_t id; 44*8044SWilliam.Kucharski@Sun.COM uint32_t type; 45*8044SWilliam.Kucharski@Sun.COM uint32_t rpcvers; 46*8044SWilliam.Kucharski@Sun.COM uint32_t prog; 47*8044SWilliam.Kucharski@Sun.COM uint32_t vers; 48*8044SWilliam.Kucharski@Sun.COM uint32_t proc; 49*8044SWilliam.Kucharski@Sun.COM uint32_t data[1]; 50*8044SWilliam.Kucharski@Sun.COM } call; 51*8044SWilliam.Kucharski@Sun.COM struct { 52*8044SWilliam.Kucharski@Sun.COM uint32_t id; 53*8044SWilliam.Kucharski@Sun.COM uint32_t type; 54*8044SWilliam.Kucharski@Sun.COM uint32_t rstatus; 55*8044SWilliam.Kucharski@Sun.COM uint32_t verifier; 56*8044SWilliam.Kucharski@Sun.COM uint32_t v2; 57*8044SWilliam.Kucharski@Sun.COM uint32_t astatus; 58*8044SWilliam.Kucharski@Sun.COM uint32_t data[1]; 59*8044SWilliam.Kucharski@Sun.COM } reply; 60*8044SWilliam.Kucharski@Sun.COM } u; 61*8044SWilliam.Kucharski@Sun.COM }; 62*8044SWilliam.Kucharski@Sun.COM 63*8044SWilliam.Kucharski@Sun.COM #endif /* _NFS_H */ 64