/* SPDX-License-Identifier: GPL-2.0 */ /* Generated by xdrgen. Manual edits will be lost. */ /* XDR specification file: ../../Documentation/sunrpc/xdr/nfs2.x */ /* XDR specification modification time: Tue Sep 8 11:26:28 2026 */ #ifndef _LINUX_XDRGEN_NFS2_DEF_H #define _LINUX_XDRGEN_NFS2_DEF_H #include #include enum { NFS_MAXDATA = 8192 }; enum { NFS_MAXPATHLEN = 1024 }; enum { NFS_MAXNAMLEN = 255 }; enum { NFS_COOKIESIZE = 4 }; enum { NFS_FHSIZE = 32 }; enum nfsstat { NFS_OK = 0, NFSERR_PERM = 1, NFSERR_NOENT = 2, NFSERR_IO = 5, NFSERR_NXIO = 6, NFSERR_ACCES = 13, NFSERR_EXIST = 17, NFSERR_NODEV = 19, NFSERR_NOTDIR = 20, NFSERR_ISDIR = 21, NFSERR_FBIG = 27, NFSERR_NOSPC = 28, NFSERR_ROFS = 30, NFSERR_NAMETOOLONG = 63, NFSERR_NOTEMPTY = 66, NFSERR_DQUOT = 69, NFSERR_STALE = 70, NFSERR_WFLUSH = 99, }; typedef __be32 nfsstat; enum ftype { NFNON = 0, NFREG = 1, NFDIR = 2, NFBLK = 3, NFCHR = 4, NFLNK = 5, }; typedef enum ftype ftype; typedef u8 fhandle[NFS_FHSIZE]; typedef u8 nfscookie[NFS_COOKIESIZE]; struct timeval { u32 seconds; u32 useconds; }; struct fattr { ftype type; u32 mode; u32 nlink; u32 uid; u32 gid; u32 size; u32 blocksize; u32 rdev; u32 blocks; u32 fsid; u32 fileid; struct timeval atime; struct timeval mtime; struct timeval ctime; }; struct sattr { u32 mode; u32 uid; u32 gid; u32 size; struct timeval atime; struct timeval mtime; }; typedef string filename; typedef string path; struct attrstat { nfsstat status; union { struct fattr attributes; } u; }; struct diropargs { fhandle dir; filename name; }; struct diropok { fhandle file; struct fattr attributes; }; struct diropres { nfsstat status; union { struct diropok diropok; } u; }; struct sattrargs { fhandle file; struct sattr attributes; }; struct readlinkres { nfsstat status; union { path data; } u; }; struct readargs { fhandle file; u32 offset; u32 count; u32 totalcount; }; struct readresok { struct fattr attributes; opaque data; }; struct readres { nfsstat status; union { struct readresok readresok; } u; }; struct writeargs { fhandle file; u32 beginoffset; u32 offset; u32 totalcount; struct xdr_buf data; }; struct createargs { struct diropargs where; struct sattr attributes; }; struct renameargs { struct diropargs from; struct diropargs to; }; struct linkargs { fhandle from; struct diropargs to; }; struct symlinkargs { struct diropargs from; struct xdr_buf to; struct sattr attributes; }; struct readdirargs { fhandle dir; nfscookie cookie; u32 count; }; struct entry { u32 fileid; filename name; nfscookie cookie; }; struct readdirok { struct entry *entries; bool eof; }; struct readdirres { nfsstat status; union { struct readdirok readdirok; } u; }; struct info { u32 tsize; u32 bsize; u32 blocks; u32 bfree; u32 bavail; }; struct statfsres { nfsstat status; union { struct info info; } u; }; enum { NFSPROC_NULL = 0, NFSPROC_GETATTR = 1, NFSPROC_SETATTR = 2, NFSPROC_ROOT = 3, NFSPROC_LOOKUP = 4, NFSPROC_READLINK = 5, NFSPROC_READ = 6, NFSPROC_WRITECACHE = 7, NFSPROC_WRITE = 8, NFSPROC_CREATE = 9, NFSPROC_REMOVE = 10, NFSPROC_RENAME = 11, NFSPROC_LINK = 12, NFSPROC_SYMLINK = 13, NFSPROC_MKDIR = 14, NFSPROC_RMDIR = 15, NFSPROC_READDIR = 16, NFSPROC_STATFS = 17, }; #ifndef NFS_PROGRAM #define NFS_PROGRAM (100003) #endif #define NFS2_nfsstat_sz (XDR_int) #define NFS2_ftype_sz (XDR_int) #define NFS2_fhandle_sz (XDR_QUADLEN(NFS_FHSIZE)) #define NFS2_nfscookie_sz (XDR_QUADLEN(NFS_COOKIESIZE)) #define NFS2_timeval_sz \ (XDR_unsigned_int + XDR_unsigned_int) #define NFS2_fattr_sz \ (NFS2_ftype_sz + XDR_unsigned_int + XDR_unsigned_int + XDR_unsigned_int + XDR_unsigned_int + XDR_unsigned_int + XDR_unsigned_int + XDR_unsigned_int + XDR_unsigned_int + XDR_unsigned_int + XDR_unsigned_int + NFS2_timeval_sz + NFS2_timeval_sz + NFS2_timeval_sz) #define NFS2_sattr_sz \ (XDR_unsigned_int + XDR_unsigned_int + XDR_unsigned_int + XDR_unsigned_int + NFS2_timeval_sz + NFS2_timeval_sz) #define NFS2_filename_sz (XDR_unsigned_int + XDR_QUADLEN(NFS_MAXNAMLEN)) #define NFS2_path_sz (XDR_unsigned_int + XDR_QUADLEN(NFS_MAXPATHLEN)) #define NFS2_attrstat_sz \ (NFS2_nfsstat_sz + NFS2_fattr_sz) #define NFS2_diropargs_sz \ (NFS2_fhandle_sz + NFS2_filename_sz) #define NFS2_diropok_sz \ (NFS2_fhandle_sz + NFS2_fattr_sz) #define NFS2_diropres_sz \ (NFS2_nfsstat_sz + NFS2_diropok_sz) #define NFS2_sattrargs_sz \ (NFS2_fhandle_sz + NFS2_sattr_sz) #define NFS2_readlinkres_sz \ (NFS2_nfsstat_sz + NFS2_path_sz) #define NFS2_readargs_sz \ (NFS2_fhandle_sz + XDR_unsigned_int + XDR_unsigned_int + XDR_unsigned_int) #define NFS2_readresok_sz \ (NFS2_fattr_sz + XDR_unsigned_int + XDR_QUADLEN(NFS_MAXDATA)) #define NFS2_readres_sz \ (NFS2_nfsstat_sz + NFS2_readresok_sz) #define NFS2_writeargs_sz \ (NFS2_fhandle_sz + XDR_unsigned_int + XDR_unsigned_int + XDR_unsigned_int + XDR_unsigned_int + XDR_QUADLEN(NFS_MAXDATA)) #define NFS2_createargs_sz \ (NFS2_diropargs_sz + NFS2_sattr_sz) #define NFS2_renameargs_sz \ (NFS2_diropargs_sz + NFS2_diropargs_sz) #define NFS2_linkargs_sz \ (NFS2_fhandle_sz + NFS2_diropargs_sz) #define NFS2_symlinkargs_sz \ (NFS2_diropargs_sz + NFS2_path_sz + NFS2_sattr_sz) #define NFS2_readdirargs_sz \ (NFS2_fhandle_sz + NFS2_nfscookie_sz + XDR_unsigned_int) #define NFS2_entry_sz \ (XDR_bool + XDR_unsigned_int + NFS2_filename_sz + NFS2_nfscookie_sz) #define NFS2_readdirok_sz \ (XDR_bool + XDR_bool) #define NFS2_readdirres_sz \ (NFS2_nfsstat_sz + NFS2_readdirok_sz) #define NFS2_info_sz \ (XDR_unsigned_int + XDR_unsigned_int + XDR_unsigned_int + XDR_unsigned_int + XDR_unsigned_int) #define NFS2_statfsres_sz \ (NFS2_nfsstat_sz + NFS2_info_sz) #define NFS2_MAX_ARGS_SZ \ (NFS2_writeargs_sz) #endif /* _LINUX_XDRGEN_NFS2_DEF_H */