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