775 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			775 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| %/* This file is copied from RFC1813
 | |
| % * Copyright 1995 Sun Micrososystems (I assume)
 | |
| % */
 | |
| 
 | |
| const NFS3_FHSIZE = 64;
 | |
| const NFS3_COOKIEVERFSIZE = 8;
 | |
| const NFS3_CREATEVERFSIZE = 8;
 | |
| const NFS3_WRITEVERFSIZE = 8;
 | |
| 
 | |
| const ACCESS3_READ = 0x0001;
 | |
| const ACCESS3_LOOKUP = 0x0002;
 | |
| const ACCESS3_MODIFY = 0x0004;
 | |
| const ACCESS3_EXTEND = 0x0008;
 | |
| const ACCESS3_DELETE = 0x0010;
 | |
| const ACCESS3_EXECUTE = 0x0020;
 | |
| 
 | |
| const FSF3_LINK = 0x0001;
 | |
| const FSF3_SYMLINK = 0x0002;
 | |
| const FSF3_HOMOGENEOUS = 0x0008;
 | |
| const FSF3_CANSETTIME = 0x0010;
 | |
| 
 | |
| typedef unsigned hyper uint64;
 | |
| typedef hyper int64;
 | |
| typedef unsigned long uint32;
 | |
| typedef long int32;
 | |
| typedef string filename3<>;
 | |
| typedef string nfspath3<>;
 | |
| typedef uint64 fileid3;
 | |
| typedef uint64 cookie3;
 | |
| typedef opaque cookieverf3[NFS3_COOKIEVERFSIZE];
 | |
| typedef opaque createverf3[NFS3_CREATEVERFSIZE];
 | |
| typedef opaque writeverf3[NFS3_WRITEVERFSIZE];
 | |
| typedef uint32 uid3;
 | |
| typedef uint32 gid3;
 | |
| typedef uint64 size3;
 | |
| typedef uint64 offset3;
 | |
| typedef uint32 mode3;
 | |
| typedef uint32 count3;
 | |
| 
 | |
| enum nfsstat3 {
 | |
| 	NFS3_OK = 0,
 | |
| 	NFS3ERR_PERM = 1,
 | |
| 	NFS3ERR_NOENT = 2,
 | |
| 	NFS3ERR_IO = 5,
 | |
| 	NFS3ERR_NXIO = 6,
 | |
| 	NFS3ERR_ACCES = 13,
 | |
| 	NFS3ERR_EXIST = 17,
 | |
| 	NFS3ERR_XDEV = 18,
 | |
| 	NFS3ERR_NODEV = 19,
 | |
| 	NFS3ERR_NOTDIR = 20,
 | |
| 	NFS3ERR_ISDIR = 21,
 | |
| 	NFS3ERR_INVAL = 22,
 | |
| 	NFS3ERR_FBIG = 27,
 | |
| 	NFS3ERR_NOSPC = 28,
 | |
| 	NFS3ERR_ROFS = 30,
 | |
| 	NFS3ERR_MLINK = 31,
 | |
| 	NFS3ERR_NAMETOOLONG = 63,
 | |
| 	NFS3ERR_NOTEMPTY = 66,
 | |
| 	NFS3ERR_DQUOT = 69,
 | |
| 	NFS3ERR_STALE = 70,
 | |
| 	NFS3ERR_REMOTE = 71,
 | |
| 	NFS3ERR_BADHANDLE = 10001,
 | |
| 	NFS3ERR_NOT_SYNC = 10002,
 | |
| 	NFS3ERR_BAD_COOKIE = 10003,
 | |
| 	NFS3ERR_NOTSUPP = 10004,
 | |
| 	NFS3ERR_TOOSMALL = 10005,
 | |
| 	NFS3ERR_SERVERFAULT = 10006,
 | |
| 	NFS3ERR_BADTYPE = 10007,
 | |
| 	NFS3ERR_JUKEBOX = 10008
 | |
| };
 | |
| 
 | |
| enum ftype3 {
 | |
| 	NFS3REG = 1,
 | |
| 	NFS3DIR = 2,
 | |
| 	NFS3BLK = 3,
 | |
| 	NFS3CHR = 4,
 | |
| 	NFS3LNK = 5,
 | |
| 	NFS3SOCK = 6,
 | |
| 	NFS3FIFO = 7
 | |
| };
 | |
| enum stable_how {
 | |
| 	UNSTABLE = 0,
 | |
| 	DATA_SYNC = 1,
 | |
| 	FILE_SYNC = 2
 | |
| };
 | |
| 
 | |
| enum createmode3 {
 | |
| 	UNCHECKED = 0,
 | |
| 	GUARDED = 1,
 | |
| 	EXCLUSIVE = 2
 | |
| };
 | |
| 
 | |
| struct specdata3 {
 | |
| 	uint32 specdata1;
 | |
| 	uint32 specdata2;
 | |
| };
 | |
| 
 | |
| struct nfs_fh3 {
 | |
| 	opaque data<NFS3_FHSIZE>;
 | |
| };
 | |
| 
 | |
| struct nfstime3 {
 | |
| 	uint32 seconds;
 | |
| 	uint32 nseconds;
 | |
| };
 | |
| 
 | |
| struct fattr3 {
 | |
| 	ftype3 type;
 | |
| 	mode3 mode;
 | |
| 	uint32 nlink;
 | |
| 	uid3 uid;
 | |
| 	gid3 gid;
 | |
| 	size3 size;
 | |
| 	size3 used;
 | |
| 	specdata3 rdev;
 | |
| 	uint64 fsid;
 | |
| 	fileid3 fileid;
 | |
| 	nfstime3 atime;
 | |
| 	nfstime3 mtime;
 | |
| 	nfstime3 ctime;
 | |
| };
 | |
| 
 | |
| union post_op_attr switch (bool attributes_follow) {
 | |
| case TRUE:
 | |
| 	fattr3 attributes;
 | |
| case FALSE:
 | |
| 	void;
 | |
| };
 | |
| 
 | |
| struct wcc_attr {
 | |
| 	size3 size;
 | |
| 	nfstime3 mtime;
 | |
| 	nfstime3 ctime;
 | |
| };
 | |
| 
 | |
| union pre_op_attr switch (bool attributes_follow) {
 | |
| case TRUE:
 | |
| 	wcc_attr attributes;
 | |
| case FALSE:
 | |
| 	void;
 | |
| };
 | |
| 
 | |
| struct wcc_data {
 | |
| 	pre_op_attr before;
 | |
| 	post_op_attr after;
 | |
| };
 | |
| 
 | |
| union post_op_fh3 switch (bool handle_follows) {
 | |
| case TRUE:
 | |
| 	nfs_fh3 handle;
 | |
| case FALSE:
 | |
| 	void;
 | |
| };
 | |
| 
 | |
| enum time_how {
 | |
| 	DONT_CHANGE = 0,
 | |
| 	SET_TO_SERVER_TIME = 1,
 | |
| 	SET_TO_CLIENT_TIME = 2
 | |
| };
 | |
| 
 | |
| union set_mode3 switch (bool set_it) {
 | |
| case TRUE:
 | |
| 	mode3 mode;
 | |
| default:
 | |
| 	void;
 | |
| };
 | |
| 
 | |
| union set_uid3 switch (bool set_it) {
 | |
| case TRUE:
 | |
| 	uid3 uid;
 | |
| default:
 | |
| 	void;
 | |
| };
 | |
| 
 | |
| union set_gid3 switch (bool set_it) {
 | |
| case TRUE:
 | |
| 	gid3 gid;
 | |
| default:
 | |
| 	void;
 | |
| };
 | |
| 
 | |
| union set_size3 switch (bool set_it) {
 | |
| case TRUE:
 | |
| 	size3 size;
 | |
| default:
 | |
| 	void;
 | |
| };
 | |
| 
 | |
| union set_atime switch (time_how set_it) {
 | |
| case SET_TO_CLIENT_TIME:
 | |
| 	nfstime3 atime;
 | |
| default:
 | |
| 	void;
 | |
| };
 | |
| 
 | |
| union set_mtime switch (time_how set_it) {
 | |
| case SET_TO_CLIENT_TIME:
 | |
| 	nfstime3 mtime;
 | |
| default:
 | |
| 	void;
 | |
| };
 | |
| 
 | |
| struct sattr3 {
 | |
| 	set_mode3 mode;
 | |
| 	set_uid3 uid;
 | |
| 	set_gid3 gid;
 | |
| 	set_size3 size;
 | |
| 	set_atime atime;
 | |
| 	set_mtime mtime;
 | |
| };
 | |
| 
 | |
| struct diropargs3 {
 | |
| 	nfs_fh3 dir;
 | |
| 	filename3 name;
 | |
| };
 | |
| 
 | |
| 
 | |
| struct GETATTR3args {
 | |
| 	nfs_fh3 object;
 | |
| };
 | |
| 
 | |
| struct GETATTR3resok {
 | |
| 	fattr3 obj_attributes;
 | |
| };
 | |
| 
 | |
| union GETATTR3res switch (nfsstat3 status) {
 | |
| case NFS3_OK:
 | |
| 	GETATTR3resok resok;
 | |
| default:
 | |
| 	void;
 | |
| };
 | |
| 
 | |
| union sattrguard3 switch (bool check) {
 | |
| case TRUE:
 | |
| 	nfstime3 obj_ctime;
 | |
| case FALSE:
 | |
| 	void;
 | |
| };
 | |
| 
 | |
| struct SETATTR3args {
 | |
| 	nfs_fh3 object;
 | |
| 	sattr3 new_attributes;
 | |
| 	sattrguard3 guard;
 | |
| };
 | |
| 
 | |
| struct SETATTR3resok {
 | |
| 	wcc_data obj_wcc;
 | |
| };
 | |
| 
 | |
| struct SETATTR3resfail {
 | |
| 	wcc_data obj_wcc;
 | |
| };
 | |
| 
 | |
| union SETATTR3res switch (nfsstat3 status) {
 | |
| case NFS3_OK:
 | |
| 	SETATTR3resok resok;
 | |
| default:
 | |
| 	SETATTR3resfail resfail;
 | |
| };
 | |
| 
 | |
| struct LOOKUP3args {
 | |
| 	diropargs3 what;
 | |
| };
 | |
| 
 | |
| struct LOOKUP3resok {
 | |
| 	nfs_fh3 object;
 | |
| 	post_op_attr obj_attributes;
 | |
| 	post_op_attr dir_attributes;
 | |
| };
 | |
| 
 | |
| struct LOOKUP3resfail {
 | |
| 	post_op_attr dir_attributes;
 | |
| };
 | |
| 
 | |
| union LOOKUP3res switch (nfsstat3 status) {
 | |
| case NFS3_OK:
 | |
| 	LOOKUP3resok resok;
 | |
| default:
 | |
| 	LOOKUP3resfail resfail;
 | |
| };
 | |
| 
 | |
| struct ACCESS3args {
 | |
| 	nfs_fh3 object;
 | |
| 	uint32 access;
 | |
| };
 | |
| 
 | |
| struct ACCESS3resok {
 | |
| 	post_op_attr obj_attributes;
 | |
| 	uint32 access;
 | |
| };
 | |
| 
 | |
| struct ACCESS3resfail {
 | |
| 	post_op_attr obj_attributes;
 | |
| };
 | |
| 
 | |
| union ACCESS3res switch (nfsstat3 status) {
 | |
| case NFS3_OK:
 | |
| 	ACCESS3resok resok;
 | |
| default:
 | |
| 	ACCESS3resfail resfail;
 | |
| };
 | |
| 
 | |
| struct READLINK3args {
 | |
| 	nfs_fh3 symlink;
 | |
| };
 | |
| 
 | |
| struct READLINK3resok {
 | |
| 	post_op_attr symlink_attributes;
 | |
| 	nfspath3 data;
 | |
| };
 | |
| 
 | |
| struct READLINK3resfail {
 | |
| 	post_op_attr symlink_attributes;
 | |
| };
 | |
| 
 | |
| union READLINK3res switch (nfsstat3 status) {
 | |
| case NFS3_OK:
 | |
| 	READLINK3resok resok;
 | |
| default:
 | |
| 	READLINK3resfail resfail;
 | |
| };
 | |
| 
 | |
| struct READ3args {
 | |
| 	nfs_fh3 file;
 | |
| 	offset3 offset;
 | |
| 	count3 count;
 | |
| };
 | |
| 
 | |
| struct READ3resok {
 | |
| 	post_op_attr file_attributes;
 | |
| 	count3 count;
 | |
| 	bool eof;
 | |
| 	opaque data<>;
 | |
| };
 | |
| 
 | |
| struct READ3resfail {
 | |
| 	post_op_attr file_attributes;
 | |
| };
 | |
| 
 | |
| union READ3res switch (nfsstat3 status) {
 | |
| case NFS3_OK:
 | |
| 	READ3resok resok;
 | |
| default:
 | |
| 	READ3resfail resfail;
 | |
| };
 | |
| 
 | |
| struct WRITE3args {
 | |
| 	nfs_fh3	file;
 | |
| 	offset3	offset;
 | |
| 	count3 count;
 | |
| 	stable_how stable;
 | |
| 	opaque data<>;
 | |
| };
 | |
| 
 | |
| struct WRITE3resok {
 | |
| 	wcc_data file_wcc;
 | |
| 	count3 count;
 | |
| 	stable_how committed;
 | |
| 	writeverf3 verf;
 | |
| };
 | |
| 
 | |
| struct WRITE3resfail {
 | |
| 	wcc_data file_wcc;
 | |
| };
 | |
| 
 | |
| union WRITE3res switch (nfsstat3 status) {
 | |
| case NFS3_OK:
 | |
| 	WRITE3resok resok;
 | |
| default:
 | |
| 	WRITE3resfail resfail;
 | |
| };
 | |
| 
 | |
| 
 | |
| union createhow3 switch (createmode3 mode) {
 | |
| case UNCHECKED:
 | |
| case GUARDED:
 | |
| 	sattr3 obj_attributes;
 | |
| case EXCLUSIVE:
 | |
| 	createverf3 verf;
 | |
| };
 | |
| 
 | |
| struct CREATE3args {
 | |
| 	diropargs3 where;
 | |
| 	createhow3 how;
 | |
| };
 | |
| 
 | |
| struct CREATE3resok {
 | |
| 	post_op_fh3 obj;
 | |
| 	post_op_attr obj_attributes;
 | |
| 	wcc_data dir_wcc;
 | |
| };
 | |
| 
 | |
| struct CREATE3resfail {
 | |
| 	wcc_data dir_wcc;
 | |
| };
 | |
| 
 | |
| union CREATE3res switch (nfsstat3 status) {
 | |
| case NFS3_OK:
 | |
| 	CREATE3resok resok;
 | |
| default:
 | |
| 	CREATE3resfail resfail;
 | |
| };
 | |
| 
 | |
| struct MKDIR3args {
 | |
| 	diropargs3 where;
 | |
| 	sattr3 attributes;
 | |
| };
 | |
| 
 | |
| struct MKDIR3resok {
 | |
| 	post_op_fh3 obj;
 | |
| 	post_op_attr obj_attributes;
 | |
| 	wcc_data dir_wcc;
 | |
| };
 | |
| 
 | |
| struct MKDIR3resfail {
 | |
| 	wcc_data dir_wcc;
 | |
| };
 | |
| 
 | |
| union MKDIR3res switch (nfsstat3 status) {
 | |
| case NFS3_OK:
 | |
| 	MKDIR3resok resok;
 | |
| default:
 | |
| 	MKDIR3resfail resfail;
 | |
| };
 | |
| 
 | |
| struct symlinkdata3 {
 | |
| 	sattr3 symlink_attributes;
 | |
| 	nfspath3 symlink_data;
 | |
| };
 | |
| 
 | |
| struct SYMLINK3args {
 | |
| 	diropargs3 where;
 | |
| 	symlinkdata3 symlink;
 | |
| };
 | |
| 
 | |
| struct SYMLINK3resok {
 | |
| 	post_op_fh3 obj;
 | |
| 	post_op_attr obj_attributes;
 | |
| 	wcc_data dir_wcc;
 | |
| };
 | |
| 
 | |
| struct SYMLINK3resfail {
 | |
| 	wcc_data dir_wcc;
 | |
| };
 | |
| 
 | |
| union SYMLINK3res switch (nfsstat3 status) {
 | |
| case NFS3_OK:
 | |
| 	SYMLINK3resok resok;
 | |
| default:
 | |
| 	SYMLINK3resfail resfail;
 | |
| };
 | |
| 
 | |
| struct devicedata3 {
 | |
| 	sattr3 dev_attributes;
 | |
| 	specdata3 spec;
 | |
| };
 | |
| 
 | |
| union mknoddata3 switch (ftype3 type) {
 | |
| case NFS3CHR:
 | |
| case NFS3BLK:
 | |
| 	devicedata3 device;
 | |
| case NFS3SOCK:
 | |
| case NFS3FIFO:
 | |
| 	sattr3 pipe_attributes;
 | |
| default:
 | |
| 	void;
 | |
| };
 | |
| 
 | |
| struct MKNOD3args {
 | |
| 	diropargs3 where;
 | |
| 	mknoddata3 what;
 | |
| };
 | |
| 
 | |
| struct MKNOD3resok {
 | |
| 	post_op_fh3 obj;
 | |
| 	post_op_attr obj_attributes;
 | |
| 	wcc_data dir_wcc;
 | |
| };
 | |
| 
 | |
| struct MKNOD3resfail {
 | |
| 	wcc_data dir_wcc;
 | |
| };
 | |
| 
 | |
| union MKNOD3res switch (nfsstat3 status) {
 | |
| case NFS3_OK:
 | |
| 	MKNOD3resok resok;
 | |
| default:
 | |
| 	MKNOD3resfail resfail;
 | |
| };
 | |
| 
 | |
| struct REMOVE3args {
 | |
| 	diropargs3 object;
 | |
| };
 | |
| 
 | |
| struct REMOVE3resok {
 | |
| 	wcc_data dir_wcc;
 | |
| };
 | |
| 
 | |
| struct REMOVE3resfail {
 | |
| 	wcc_data dir_wcc;
 | |
| };
 | |
| 
 | |
| union REMOVE3res switch (nfsstat3 status) {
 | |
| case NFS3_OK:
 | |
| 	REMOVE3resok resok;
 | |
| default:
 | |
| 	REMOVE3resfail resfail;
 | |
| };
 | |
| 
 | |
| struct RMDIR3args {
 | |
| 	diropargs3 object;
 | |
| };
 | |
| 
 | |
| struct RMDIR3resok {
 | |
| 	wcc_data dir_wcc;
 | |
| };
 | |
| 
 | |
| struct RMDIR3resfail {
 | |
| 	wcc_data dir_wcc;
 | |
| };
 | |
| 
 | |
| union RMDIR3res switch (nfsstat3 status) {
 | |
| case NFS3_OK:
 | |
| 	RMDIR3resok resok;
 | |
| default:
 | |
| 	RMDIR3resfail resfail;
 | |
| };
 | |
| 
 | |
| struct RENAME3args {
 | |
| 	diropargs3 from;
 | |
| 	diropargs3 to;
 | |
| };
 | |
| 
 | |
| struct RENAME3resok {
 | |
| 	wcc_data fromdir_wcc;
 | |
| 	wcc_data todir_wcc;
 | |
| };
 | |
| 
 | |
| struct RENAME3resfail {
 | |
| 	wcc_data fromdir_wcc;
 | |
| 	wcc_data todir_wcc;
 | |
| };
 | |
| 
 | |
| union RENAME3res switch (nfsstat3 status) {
 | |
| case NFS3_OK:
 | |
| 	RENAME3resok resok;
 | |
| default:
 | |
| 	RENAME3resfail resfail;
 | |
| };
 | |
| struct LINK3args {
 | |
| 	nfs_fh3	file;
 | |
| 	diropargs3 link;
 | |
| };
 | |
| 
 | |
| struct LINK3resok {
 | |
| 	post_op_attr file_attributes;
 | |
| 	wcc_data linkdir_wcc;
 | |
| };
 | |
| 
 | |
| struct LINK3resfail {
 | |
| 	post_op_attr file_attributes;
 | |
| 	wcc_data linkdir_wcc;
 | |
| };
 | |
| 
 | |
| union LINK3res switch (nfsstat3 status) {
 | |
| case NFS3_OK:
 | |
| 	LINK3resok resok;
 | |
| default:
 | |
| 	LINK3resfail resfail;
 | |
| };
 | |
| 
 | |
| struct READDIR3args {
 | |
| 	nfs_fh3 dir;
 | |
| 	cookie3 cookie;
 | |
| 	cookieverf3 cookieverf;
 | |
| 	count3 count;
 | |
| };
 | |
| 
 | |
| struct entry3 {
 | |
| 	fileid3 fileid;
 | |
| 	filename3 name;
 | |
| 	cookie3 cookie;
 | |
| 	entry3 *nextentry;
 | |
| };
 | |
| 
 | |
| struct dirlist3 {
 | |
| 	entry3 *entries;
 | |
| 	bool eof;
 | |
| };
 | |
| 
 | |
| struct READDIR3resok {
 | |
| 	post_op_attr dir_attributes;
 | |
| 	cookieverf3 cookieverf;
 | |
| 	dirlist3 reply;
 | |
| };
 | |
| 
 | |
| struct READDIR3resfail {
 | |
| 	post_op_attr dir_attributes;
 | |
| };
 | |
| 
 | |
| union READDIR3res switch (nfsstat3 status) {
 | |
| case NFS3_OK:
 | |
| 	READDIR3resok resok;
 | |
| default:
 | |
| 	READDIR3resfail resfail;
 | |
| };
 | |
| 
 | |
| struct READDIRPLUS3args {
 | |
| 	nfs_fh3 dir;
 | |
| 	cookie3 cookie;
 | |
| 	cookieverf3 cookieverf;
 | |
| 	count3 dircount;
 | |
| 	count3 maxcount;
 | |
| };
 | |
| 
 | |
| struct entryplus3 {
 | |
| 	fileid3 fileid;
 | |
| 	filename3 name;
 | |
| 	cookie3 cookie;
 | |
| 	post_op_attr name_attributes;
 | |
| 	post_op_fh3 name_handle;
 | |
| 	entryplus3 *nextentry;
 | |
| };
 | |
| 
 | |
| struct dirlistplus3 {
 | |
| 	entryplus3 *entries;
 | |
| 	bool eof;
 | |
| };
 | |
| 
 | |
| struct READDIRPLUS3resok {
 | |
| 	post_op_attr dir_attributes;
 | |
| 	cookieverf3 cookieverf;
 | |
| 	dirlistplus3 reply;
 | |
| };
 | |
| 
 | |
| struct READDIRPLUS3resfail {
 | |
| 	post_op_attr dir_attributes;
 | |
| };
 | |
| 
 | |
| union READDIRPLUS3res switch (nfsstat3 status) {
 | |
| case NFS3_OK:
 | |
| 	READDIRPLUS3resok resok;
 | |
| default:
 | |
| 	READDIRPLUS3resfail resfail;
 | |
| };
 | |
| 
 | |
| struct FSSTAT3args {
 | |
| 	nfs_fh3 fsroot;
 | |
| };
 | |
| 
 | |
| struct FSSTAT3resok {
 | |
| 	post_op_attr obj_attributes;
 | |
| 	size3 tbytes;
 | |
| 	size3 fbytes;
 | |
| 	size3 abytes;
 | |
| 	size3 tfiles;
 | |
| 	size3 ffiles;
 | |
| 	size3 afiles;
 | |
| 	uint32 invarsec;
 | |
| };
 | |
| 
 | |
| struct FSSTAT3resfail {
 | |
| 	post_op_attr obj_attributes;
 | |
| };
 | |
| 
 | |
| union FSSTAT3res switch (nfsstat3 status) {
 | |
| case NFS3_OK:
 | |
| 	FSSTAT3resok resok;
 | |
| default:
 | |
| 	FSSTAT3resfail resfail;
 | |
| };
 | |
| 
 | |
| struct FSINFO3args {
 | |
| 	nfs_fh3 fsroot;
 | |
| };
 | |
| 
 | |
| struct FSINFO3resok {
 | |
| 	post_op_attr obj_attributes;
 | |
| 	uint32 rtmax;
 | |
| 	uint32 rtpref;
 | |
| 	uint32 rtmult;
 | |
| 	uint32 wtmax;
 | |
| 	uint32 wtpref;
 | |
| 	uint32 wtmult;
 | |
| 	uint32 dtpref;
 | |
| 	size3 maxfilesize;
 | |
| 	nfstime3 time_delta;
 | |
| 	uint32 properties;
 | |
| };
 | |
| 
 | |
| struct FSINFO3resfail {
 | |
| 	post_op_attr obj_attributes;
 | |
| };
 | |
| 
 | |
| union FSINFO3res switch (nfsstat3 status) {
 | |
| case NFS3_OK:
 | |
| 	FSINFO3resok resok;
 | |
| default:
 | |
| 	FSINFO3resfail resfail;
 | |
| };
 | |
| 
 | |
| struct PATHCONF3args {
 | |
| 	nfs_fh3 object;
 | |
| };
 | |
| 
 | |
| struct PATHCONF3resok {
 | |
| 	post_op_attr obj_attributes;
 | |
| 	uint32 linkmax;
 | |
| 	uint32 name_max;
 | |
| 	bool no_trunc;
 | |
| 	bool chown_restricted;
 | |
| 	bool case_insensitive;
 | |
| 	bool case_preserving;
 | |
| };
 | |
| 
 | |
| struct PATHCONF3resfail {
 | |
| 	post_op_attr obj_attributes;
 | |
| };
 | |
| 
 | |
| union PATHCONF3res switch (nfsstat3 status) {
 | |
| case NFS3_OK:
 | |
| 	PATHCONF3resok resok;
 | |
| default:
 | |
| 	PATHCONF3resfail resfail;
 | |
| };
 | |
| 
 | |
| struct COMMIT3args {
 | |
| 	nfs_fh3 file;
 | |
| 	offset3 offset;
 | |
| 	count3 count;
 | |
| };
 | |
| 
 | |
| struct COMMIT3resok {
 | |
| 	wcc_data file_wcc;
 | |
| 	writeverf3 verf;
 | |
| };
 | |
| 
 | |
| struct COMMIT3resfail {
 | |
| 	wcc_data file_wcc;
 | |
| };
 | |
| 
 | |
| union COMMIT3res switch (nfsstat3 status) {
 | |
| case NFS3_OK:
 | |
| 	COMMIT3resok resok;
 | |
| default:
 | |
| 	COMMIT3resfail resfail;
 | |
| };
 | |
| 
 | |
| program NFS_PROGRAM {
 | |
| 	version NFS_V3 {
 | |
| 		void NFSPROC3_NULL(void) = 0;
 | |
| 		GETATTR3res NFSPROC3_GETATTR(GETATTR3args) = 1;
 | |
| 		SETATTR3res NFSPROC3_SETATTR(SETATTR3args) = 2;
 | |
| 		LOOKUP3res NFSPROC3_LOOKUP(LOOKUP3args) = 3;
 | |
| 		ACCESS3res NFSPROC3_ACCESS(ACCESS3args) = 4;
 | |
| 		READLINK3res NFSPROC3_READLINK(READLINK3args) = 5;
 | |
| 		READ3res NFSPROC3_READ(READ3args) = 6;
 | |
| 		WRITE3res NFSPROC3_WRITE(WRITE3args) = 7;
 | |
| 		CREATE3res NFSPROC3_CREATE(CREATE3args) = 8;
 | |
| 		MKDIR3res NFSPROC3_MKDIR(MKDIR3args) = 9;
 | |
| 		SYMLINK3res NFSPROC3_SYMLINK(SYMLINK3args) = 10;
 | |
| 		MKNOD3res NFSPROC3_MKNOD(MKNOD3args) = 11;
 | |
| 		REMOVE3res NFSPROC3_REMOVE(REMOVE3args) = 12;
 | |
| 		RMDIR3res NFSPROC3_RMDIR(RMDIR3args) = 13;
 | |
| 		RENAME3res NFSPROC3_RENAME(RENAME3args) = 14;
 | |
| 		LINK3res NFSPROC3_LINK(LINK3args) = 15;
 | |
| 		READDIR3res NFSPROC3_READDIR(READDIR3args) = 16;
 | |
| 		READDIRPLUS3res NFSPROC3_READDIRPLUS(READDIRPLUS3args) = 17;
 | |
| 		FSSTAT3res NFSPROC3_FSSTAT(FSSTAT3args) = 18;
 | |
| 		FSINFO3res NFSPROC3_FSINFO(FSINFO3args) = 19;
 | |
| 		PATHCONF3res NFSPROC3_PATHCONF(PATHCONF3args) = 20;
 | |
| 		COMMIT3res NFSPROC3_COMMIT(COMMIT3args) = 21;
 | |
| 	} = 3;
 | |
| } = 100003;
 |