diff options
author | Roland McGrath <roland@gnu.org> | 2000-02-04 03:21:18 +0000 |
---|---|---|
committer | Roland McGrath <roland@gnu.org> | 2000-02-04 03:21:18 +0000 |
commit | 9fd51e9b0ad33a89a83fdbbb66bd20d85f7893fb (patch) | |
tree | 8845b79f170028cb4380045c50277bbf075b5b7d /pfinet/linux-src/include/linux/nfs3.h |
Import of Linux 2.2.12 subset (ipv4 stack and related)
Diffstat (limited to 'pfinet/linux-src/include/linux/nfs3.h')
-rw-r--r-- | pfinet/linux-src/include/linux/nfs3.h | 252 |
1 files changed, 252 insertions, 0 deletions
diff --git a/pfinet/linux-src/include/linux/nfs3.h b/pfinet/linux-src/include/linux/nfs3.h new file mode 100644 index 00000000..94ec44b6 --- /dev/null +++ b/pfinet/linux-src/include/linux/nfs3.h @@ -0,0 +1,252 @@ +/* + * NFSv3 protocol definitions + */ +#ifndef _LINUX_NFS3_H +#define _LINUX_NFS3_H + +#include <linux/sunrpc/msg_prot.h> +#include <linux/nfs.h> + +#define NFS3_PORT 2049 +#define NFS3_MAXDATA 8192 +#define NFS3_MAXPATHLEN PATH_MAX +#define NFS3_MAXNAMLEN NAME_MAX +#define NFS3_MAXGROUPS 16 +#define NFS3_FHSIZE NFS_FHSIZE +#define NFS3_COOKIESIZE 4 +#define NFS3_FIFO_DEV (-1) +#define NFS3MODE_FMT 0170000 +#define NFS3MODE_DIR 0040000 +#define NFS3MODE_CHR 0020000 +#define NFS3MODE_BLK 0060000 +#define NFS3MODE_REG 0100000 +#define NFS3MODE_LNK 0120000 +#define NFS3MODE_SOCK 0140000 +#define NFS3MODE_FIFO 0010000 + + +enum nfs3_stat { + NFS3_OK = 0, + NFS3ERR_PERM = 1, + NFS3ERR_NOENT = 2, + NFS3ERR_IO = 5, + NFS3ERR_NXIO = 6, + NFS3ERR_EAGAIN = 11, + NFS3ERR_ACCES = 13, + NFS3ERR_EXIST = 17, + NFS3ERR_XDEV = 18, /* new in NFSv3 */ + NFS3ERR_NODEV = 19, + NFS3ERR_NOTDIR = 20, + NFS3ERR_ISDIR = 21, + NFS3ERR_INVAL = 22, /* new in NFSv3 */ + NFS3ERR_FBIG = 27, + NFS3ERR_NOSPC = 28, + NFS3ERR_ROFS = 30, + NFS3ERR_MLINK = 31, /* new in NFSv3 */ + NFS3ERR_NAMETOOLONG = 63, + NFS3ERR_NOTEMPTY = 66, + NFS3ERR_DQUOT = 69, + NFS3ERR_STALE = 70, + NFS3ERR_REMOTE = 71, /* new in NFSv3 */ + NFS3ERR_BADHANDLE = 10001,/* ditto */ + NFS3ERR_NOT_SYNC = 10002,/* ditto */ + NFS3ERR_BAD_COOKIE = 10003,/* ditto */ + NFS3ERR_NOTSUPP = 10004,/* ditto */ + NFS3ERR_TOOSMALL = 10005,/* ditto */ + NFS3ERR_SERVERFAULT = 10006,/* ditto */ + NFS3ERR_BADTYPE = 10007,/* ditto */ + NFS3ERR_JUKEBOX = 10008,/* ditto */ +}; + +enum nfs3_ftype { + NF3NON = 0, + NF3REG = 1, + NF3DIR = 2, + NF3BLK = 3, + NF3CHR = 4, + NF3LNK = 5, + NF3SOCK = 6, + NF3FIFO = 7, /* changed from NFSv2 (was 8) */ + NF3BAD = 8 +}; + +#define NFS3_VERSION 3 +#define NFSPROC_NULL 0 +#define NFSPROC_GETATTR 1 +#define NFSPROC_SETATTR 2 +#define NFSPROC_ROOT 3 +#define NFSPROC_LOOKUP 4 +#define NFSPROC_READLINK 5 +#define NFSPROC_READ 6 +#define NFSPROC_WRITECACHE 7 +#define NFSPROC_WRITE 8 +#define NFSPROC_CREATE 9 +#define NFSPROC_REMOVE 10 +#define NFSPROC_RENAME 11 +#define NFSPROC_LINK 12 +#define NFSPROC_SYMLINK 13 +#define NFSPROC_MKDIR 14 +#define NFSPROC_RMDIR 15 +#define NFSPROC_READDIR 16 +#define NFSPROC_STATFS 17 + +#if defined(__KERNEL__) || defined(NFS_NEED_KERNEL_TYPES) + +struct nfs3_fh { + __u32 size; + __u8 data[NFS3_FHSIZE]; +}; + +struct nfs3_fattr { + enum nfs3_ftype type; + __u32 mode; + __u32 nlink; + __u32 uid; + __u32 gid; + __u64 size; + __u64 used; + __u32 rdev_maj; + __u32 rdev_min; + __u32 fsid; + __u32 fileid; + struct nfs_time atime; + struct nfs_time mtime; + struct nfs_time ctime; +}; + +struct nfs3_wcc_attr { + __u64 size; + struct nfs_time mtime; + struct nfs_time ctime; +}; + +struct nfs3_wcc_data { + struct nfs3_wcc_attr before; + struct nfs3_wcc_attr after; +}; + +struct nfs3_sattr { + __u32 valid; + __u32 mode; + __u32 uid; + __u32 gid; + __u64 size; + struct nfs_time atime; + struct nfs_time mtime; +}; + +struct nfs3_entry { + __u32 fileid; + char * name; + unsigned int length; + __u32 cookie; + __u32 eof; +}; + +struct nfs3_fsinfo { + __u32 tsize; + __u32 bsize; + __u32 blocks; + __u32 bfree; + __u32 bavail; +}; + +#ifdef NFS_NEED_XDR_TYPES + +struct nfs3_sattrargs { + struct nfs_fh * fh; + struct nfs_sattr * sattr; +}; + +struct nfs3_diropargs { + struct nfs_fh * fh; + const char * name; +}; + +struct nfs3_readargs { + struct nfs_fh * fh; + __u32 offset; + __u32 count; + void * buffer; +}; + +struct nfs3_writeargs { + struct nfs_fh * fh; + __u32 offset; + __u32 count; + const void * buffer; +}; + +struct nfs3_createargs { + struct nfs_fh * fh; + const char * name; + struct nfs_sattr * sattr; +}; + +struct nfs3_renameargs { + struct nfs_fh * fromfh; + const char * fromname; + struct nfs_fh * tofh; + const char * toname; +}; + +struct nfs3_linkargs { + struct nfs_fh * fromfh; + struct nfs_fh * tofh; + const char * toname; +}; + +struct nfs3_symlinkargs { + struct nfs_fh * fromfh; + const char * fromname; + const char * topath; + struct nfs_sattr * sattr; +}; + +struct nfs3_readdirargs { + struct nfs_fh * fh; + __u32 cookie; + void * buffer; + unsigned int bufsiz; +}; + +struct nfs3_diropok { + struct nfs_fh * fh; + struct nfs_fattr * fattr; +}; + +struct nfs3_readres { + struct nfs_fattr * fattr; + unsigned int count; +}; + +struct nfs3_readlinkres { + char ** string; + unsigned int * lenp; + unsigned int maxlen; + void * buffer; +}; + +struct nfs3_readdirres { + void * buffer; + unsigned int bufsiz; +}; + +/* + * The following are for NFSv3 + */ +struct nfs3_fh { + __u32 size; + __u8 data[NFS3_FHSIZE] +}; + +struct nfs3_wcc_attr { + __u64 size; + struct nfs_time mtime; + struct nfs_time ctime; +}; + +#endif /* NFS_NEED_XDR_TYPES */ +#endif /* __KERNEL__ */ + +#endif |