xref: /illumos-gate/usr/src/cmd/fs.d/nfs/lib/webnfs.x (revision 2a8bcb4e)
17c478bd9Sstevel@tonic-gate /*
27c478bd9Sstevel@tonic-gate  * CDDL HEADER START
37c478bd9Sstevel@tonic-gate  *
47c478bd9Sstevel@tonic-gate  * The contents of this file are subject to the terms of the
57c478bd9Sstevel@tonic-gate  * Common Development and Distribution License, Version 1.0 only
67c478bd9Sstevel@tonic-gate  * (the "License").  You may not use this file except in compliance
77c478bd9Sstevel@tonic-gate  * with the License.
87c478bd9Sstevel@tonic-gate  *
97c478bd9Sstevel@tonic-gate  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
107c478bd9Sstevel@tonic-gate  * or http://www.opensolaris.org/os/licensing.
117c478bd9Sstevel@tonic-gate  * See the License for the specific language governing permissions
127c478bd9Sstevel@tonic-gate  * and limitations under the License.
137c478bd9Sstevel@tonic-gate  *
147c478bd9Sstevel@tonic-gate  * When distributing Covered Code, include this CDDL HEADER in each
157c478bd9Sstevel@tonic-gate  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
167c478bd9Sstevel@tonic-gate  * If applicable, add the following below this CDDL HEADER, with the
177c478bd9Sstevel@tonic-gate  * fields enclosed by brackets "[]" replaced with your own identifying
187c478bd9Sstevel@tonic-gate  * information: Portions Copyright [yyyy] [name of copyright owner]
197c478bd9Sstevel@tonic-gate  *
207c478bd9Sstevel@tonic-gate  * CDDL HEADER END
217c478bd9Sstevel@tonic-gate  */
227c478bd9Sstevel@tonic-gate /*
237c478bd9Sstevel@tonic-gate  * Copyright 1996-1999, 2003 Sun Microsystems, Inc.  All rights reserved.
247c478bd9Sstevel@tonic-gate  * Use is subject to license terms.
257c478bd9Sstevel@tonic-gate  */
267c478bd9Sstevel@tonic-gate 
277c478bd9Sstevel@tonic-gate const WNL_PORT          = 2049;
287c478bd9Sstevel@tonic-gate const WNL_MAXDATA       = 8192;
297c478bd9Sstevel@tonic-gate const WNL_MAXNAMLEN	= 255;
307c478bd9Sstevel@tonic-gate const WNL_FHSIZE	= 32;
317c478bd9Sstevel@tonic-gate const WNL_FIFO_DEV	= -1;	/* size kludge for named pipes */
327c478bd9Sstevel@tonic-gate 
337c478bd9Sstevel@tonic-gate /*
347c478bd9Sstevel@tonic-gate  * Indicator for native path semantics.
357c478bd9Sstevel@tonic-gate  */
367c478bd9Sstevel@tonic-gate const WNL_NATIVEPATH	= 0x80;
377c478bd9Sstevel@tonic-gate 
387c478bd9Sstevel@tonic-gate /*
397c478bd9Sstevel@tonic-gate  * Indicator for security negotiation.
407c478bd9Sstevel@tonic-gate  */
417c478bd9Sstevel@tonic-gate const WNL_SEC_NEGO	= 0x81;
427c478bd9Sstevel@tonic-gate 
437c478bd9Sstevel@tonic-gate /*
447c478bd9Sstevel@tonic-gate  * File types
457c478bd9Sstevel@tonic-gate  */
467c478bd9Sstevel@tonic-gate const WNLMODE_FMT  = 0170000;	/* type of file */
477c478bd9Sstevel@tonic-gate const WNLMODE_DIR  = 0040000;	/* directory */
487c478bd9Sstevel@tonic-gate const WNLMODE_CHR  = 0020000;	/* character special */
497c478bd9Sstevel@tonic-gate const WNLMODE_BLK  = 0060000;	/* block special */
507c478bd9Sstevel@tonic-gate const WNLMODE_REG  = 0100000;	/* regular */
517c478bd9Sstevel@tonic-gate const WNLMODE_LNK  = 0120000;	/* symbolic link */
527c478bd9Sstevel@tonic-gate const WNLMODE_SOCK = 0140000;	/* socket */
537c478bd9Sstevel@tonic-gate const WNLMODE_FIFO = 0010000;	/* fifo */
547c478bd9Sstevel@tonic-gate 
557c478bd9Sstevel@tonic-gate /*
567c478bd9Sstevel@tonic-gate  * Error status
577c478bd9Sstevel@tonic-gate  */
587c478bd9Sstevel@tonic-gate enum wnl_stat {
597c478bd9Sstevel@tonic-gate 	WNL_OK= 0,		/* no error */
607c478bd9Sstevel@tonic-gate 	WNLERR_PERM=1,		/* Not owner */
617c478bd9Sstevel@tonic-gate 	WNLERR_NOENT=2,		/* No such file or directory */
627c478bd9Sstevel@tonic-gate 	WNLERR_IO=5,		/* I/O error */
637c478bd9Sstevel@tonic-gate 	WNLERR_NXIO=6,		/* No such device or address */
647c478bd9Sstevel@tonic-gate 	WNLERR_ACCES=13,	/* Permission denied */
657c478bd9Sstevel@tonic-gate 	WNLERR_EXIST=17,	/* File exists */
667c478bd9Sstevel@tonic-gate 	WNLERR_XDEV=18,		/* Cross-device link */
677c478bd9Sstevel@tonic-gate 	WNLERR_NODEV=19,	/* No such device */
687c478bd9Sstevel@tonic-gate 	WNLERR_NOTDIR=20,	/* Not a directory*/
697c478bd9Sstevel@tonic-gate 	WNLERR_ISDIR=21,	/* Is a directory */
707c478bd9Sstevel@tonic-gate 	WNLERR_INVAL=22,	/* Invalid argument */
717c478bd9Sstevel@tonic-gate 	WNLERR_FBIG=27,		/* File too large */
727c478bd9Sstevel@tonic-gate 	WNLERR_NOSPC=28,	/* No space left on device */
737c478bd9Sstevel@tonic-gate 	WNLERR_ROFS=30,		/* Read-only file system */
747c478bd9Sstevel@tonic-gate 	WNLERR_OPNOTSUPP=45,	/* Operation not supported */
757c478bd9Sstevel@tonic-gate 	WNLERR_NAMETOOLONG=63,	/* File name too long */
767c478bd9Sstevel@tonic-gate 	WNLERR_NOTEMPTY=66,	/* Directory not empty */
777c478bd9Sstevel@tonic-gate 	WNLERR_DQUOT=69,	/* Disc quota exceeded */
787c478bd9Sstevel@tonic-gate 	WNLERR_STALE=70,	/* Stale WNL file handle */
797c478bd9Sstevel@tonic-gate 	WNLERR_REMOTE=71,	/* Object is remote */
807c478bd9Sstevel@tonic-gate 	WNLERR_WFLUSH=72	/* write cache flushed */
817c478bd9Sstevel@tonic-gate };
827c478bd9Sstevel@tonic-gate 
837c478bd9Sstevel@tonic-gate /*
847c478bd9Sstevel@tonic-gate  * File types
857c478bd9Sstevel@tonic-gate  */
867c478bd9Sstevel@tonic-gate enum wnl_ftype {
877c478bd9Sstevel@tonic-gate 	WNL_NON = 0,	/* non-file */
887c478bd9Sstevel@tonic-gate 	WNL_REG = 1,	/* regular file */
897c478bd9Sstevel@tonic-gate 	WNL_DIR = 2,	/* directory */
907c478bd9Sstevel@tonic-gate 	WNL_BLK = 3,	/* block special */
917c478bd9Sstevel@tonic-gate 	WNL_CHR = 4,	/* character special */
927c478bd9Sstevel@tonic-gate 	WNL_LNK = 5,	/* symbolic link */
937c478bd9Sstevel@tonic-gate 	WNL_SOCK = 6,	/* unix domain sockets */
947c478bd9Sstevel@tonic-gate 	WNL_BAD = 7,	/* unused */
957c478bd9Sstevel@tonic-gate 	WNL_FIFO = 8 	/* named pipe */
967c478bd9Sstevel@tonic-gate };
977c478bd9Sstevel@tonic-gate 
987c478bd9Sstevel@tonic-gate /*
997c478bd9Sstevel@tonic-gate  * File access handle
1007c478bd9Sstevel@tonic-gate  */
1017c478bd9Sstevel@tonic-gate struct wnl_fh {
1027c478bd9Sstevel@tonic-gate 	opaque data[WNL_FHSIZE];
1037c478bd9Sstevel@tonic-gate };
1047c478bd9Sstevel@tonic-gate 
105*2a8bcb4eSToomas Soome /*
1067c478bd9Sstevel@tonic-gate  * Timeval
1077c478bd9Sstevel@tonic-gate  */
1087c478bd9Sstevel@tonic-gate struct wnl_time {
1097c478bd9Sstevel@tonic-gate 	unsigned seconds;
1107c478bd9Sstevel@tonic-gate 	unsigned useconds;
1117c478bd9Sstevel@tonic-gate };
1127c478bd9Sstevel@tonic-gate 
1137c478bd9Sstevel@tonic-gate 
1147c478bd9Sstevel@tonic-gate /*
1157c478bd9Sstevel@tonic-gate  * File attributes
1167c478bd9Sstevel@tonic-gate  */
1177c478bd9Sstevel@tonic-gate struct wnl_fattr {
1187c478bd9Sstevel@tonic-gate 	wnl_ftype type;		/* file type */
1197c478bd9Sstevel@tonic-gate 	unsigned mode;		/* protection mode bits */
1207c478bd9Sstevel@tonic-gate 	unsigned nlink;		/* # hard links */
1217c478bd9Sstevel@tonic-gate 	unsigned uid;		/* owner user id */
1227c478bd9Sstevel@tonic-gate 	unsigned gid;		/* owner group id */
1237c478bd9Sstevel@tonic-gate 	unsigned size;		/* file size in bytes */
1247c478bd9Sstevel@tonic-gate 	unsigned blocksize;	/* prefered block size */
1257c478bd9Sstevel@tonic-gate 	unsigned rdev;		/* special device # */
1267c478bd9Sstevel@tonic-gate 	unsigned blocks;	/* Kb of disk used by file */
1277c478bd9Sstevel@tonic-gate 	unsigned fsid;		/* device # */
1287c478bd9Sstevel@tonic-gate 	unsigned fileid;	/* inode # */
1297c478bd9Sstevel@tonic-gate 	wnl_time	atime;		/* time of last access */
1307c478bd9Sstevel@tonic-gate 	wnl_time	mtime;		/* time of last modification */
1317c478bd9Sstevel@tonic-gate 	wnl_time	ctime;		/* time of last change */
1327c478bd9Sstevel@tonic-gate };
1337c478bd9Sstevel@tonic-gate 
134*2a8bcb4eSToomas Soome typedef string wnl_filename<WNL_MAXNAMLEN>;
1357c478bd9Sstevel@tonic-gate 
1367c478bd9Sstevel@tonic-gate /*
1377c478bd9Sstevel@tonic-gate  * Arguments for directory operations
1387c478bd9Sstevel@tonic-gate  */
1397c478bd9Sstevel@tonic-gate struct wnl_diropargs {
1407c478bd9Sstevel@tonic-gate 	wnl_fh	dir;	/* directory file handle */
1417c478bd9Sstevel@tonic-gate 	wnl_filename name;		/* name (up to WNL_MAXNAMLEN bytes) */
1427c478bd9Sstevel@tonic-gate };
1437c478bd9Sstevel@tonic-gate 
1447c478bd9Sstevel@tonic-gate struct wnl_diropokres {
1457c478bd9Sstevel@tonic-gate 	wnl_fh file;
1467c478bd9Sstevel@tonic-gate 	wnl_fattr attributes;
1477c478bd9Sstevel@tonic-gate };
1487c478bd9Sstevel@tonic-gate 
1497c478bd9Sstevel@tonic-gate /*
1507c478bd9Sstevel@tonic-gate  * Results from directory operation
1517c478bd9Sstevel@tonic-gate  */
1527c478bd9Sstevel@tonic-gate union wnl_diropres switch (wnl_stat status) {
1537c478bd9Sstevel@tonic-gate case WNL_OK:
1547c478bd9Sstevel@tonic-gate 	wnl_diropokres wnl_diropres;
1557c478bd9Sstevel@tonic-gate default:
1567c478bd9Sstevel@tonic-gate 	void;
1577c478bd9Sstevel@tonic-gate };
1587c478bd9Sstevel@tonic-gate 
1597c478bd9Sstevel@tonic-gate /*
1607c478bd9Sstevel@tonic-gate  * Version 3 declarations and definitions.
1617c478bd9Sstevel@tonic-gate  */
1627c478bd9Sstevel@tonic-gate 
1637c478bd9Sstevel@tonic-gate /*
1647c478bd9Sstevel@tonic-gate  * Sizes
1657c478bd9Sstevel@tonic-gate  */
1667c478bd9Sstevel@tonic-gate const WNL3_FHSIZE         = 64;
1677c478bd9Sstevel@tonic-gate 
1687c478bd9Sstevel@tonic-gate /*
1697c478bd9Sstevel@tonic-gate  * Basic data types
1707c478bd9Sstevel@tonic-gate  */
1717c478bd9Sstevel@tonic-gate typedef unsigned hyper	wnl_uint64;
1727c478bd9Sstevel@tonic-gate typedef hyper		wnl_int64;
1737c478bd9Sstevel@tonic-gate typedef unsigned int	wnl_uint32;
1747c478bd9Sstevel@tonic-gate typedef string		wnl_filename3<>;
1757c478bd9Sstevel@tonic-gate typedef wnl_uint64	wnl_fileid3;
1767c478bd9Sstevel@tonic-gate typedef wnl_uint32	wnl_uid3;
1777c478bd9Sstevel@tonic-gate typedef wnl_uint32	wnl_gid3;
1787c478bd9Sstevel@tonic-gate typedef wnl_uint64	wnl_size3;
1797c478bd9Sstevel@tonic-gate typedef wnl_uint32	wnl_mode3;
1807c478bd9Sstevel@tonic-gate 
1817c478bd9Sstevel@tonic-gate /*
1827c478bd9Sstevel@tonic-gate  * Error status
1837c478bd9Sstevel@tonic-gate  */
1847c478bd9Sstevel@tonic-gate enum wnl_stat3 {
1857c478bd9Sstevel@tonic-gate 	WNL3_OK = 0,
1867c478bd9Sstevel@tonic-gate 	WNL3ERR_PERM = 1,
1877c478bd9Sstevel@tonic-gate 	WNL3ERR_NOENT = 2,
1887c478bd9Sstevel@tonic-gate 	WNL3ERR_IO = 5,
1897c478bd9Sstevel@tonic-gate 	WNL3ERR_NXIO = 6,
1907c478bd9Sstevel@tonic-gate 	WNL3ERR_ACCES = 13,
1917c478bd9Sstevel@tonic-gate 	WNL3ERR_EXIST = 17,
1927c478bd9Sstevel@tonic-gate 	WNL3ERR_XDEV = 18,
1937c478bd9Sstevel@tonic-gate 	WNL3ERR_NODEV = 19,
1947c478bd9Sstevel@tonic-gate 	WNL3ERR_NOTDIR = 20,
1957c478bd9Sstevel@tonic-gate 	WNL3ERR_ISDIR = 21,
1967c478bd9Sstevel@tonic-gate 	WNL3ERR_INVAL = 22,
1977c478bd9Sstevel@tonic-gate 	WNL3ERR_FBIG = 27,
1987c478bd9Sstevel@tonic-gate 	WNL3ERR_NOSPC = 28,
1997c478bd9Sstevel@tonic-gate 	WNL3ERR_ROFS = 30,
2007c478bd9Sstevel@tonic-gate 	WNL3ERR_MLINK = 31,
2017c478bd9Sstevel@tonic-gate 	WNL3ERR_NAMETOOLONG = 63,
2027c478bd9Sstevel@tonic-gate 	WNL3ERR_NOTEMPTY = 66,
2037c478bd9Sstevel@tonic-gate 	WNL3ERR_DQUOT = 69,
2047c478bd9Sstevel@tonic-gate 	WNL3ERR_STALE = 70,
2057c478bd9Sstevel@tonic-gate 	WNL3ERR_REMOTE = 71,
2067c478bd9Sstevel@tonic-gate 	WNL3ERR_BADHANDLE = 10001,
2077c478bd9Sstevel@tonic-gate 	WNL3ERR_NOT_SYNC = 10002,
2087c478bd9Sstevel@tonic-gate 	WNL3ERR_BAD_COOKIE = 10003,
2097c478bd9Sstevel@tonic-gate 	WNL3ERR_NOTSUPP = 10004,
2107c478bd9Sstevel@tonic-gate 	WNL3ERR_TOOSMALL = 10005,
2117c478bd9Sstevel@tonic-gate 	WNL3ERR_SERVERFAULT = 10006,
2127c478bd9Sstevel@tonic-gate 	WNL3ERR_BADTYPE = 10007,
2137c478bd9Sstevel@tonic-gate 	WNL3ERR_JUKEBOX = 10008
2147c478bd9Sstevel@tonic-gate };
2157c478bd9Sstevel@tonic-gate 
2167c478bd9Sstevel@tonic-gate /*
2177c478bd9Sstevel@tonic-gate  * File types
2187c478bd9Sstevel@tonic-gate  */
2197c478bd9Sstevel@tonic-gate enum wnl_ftype3 {
2207c478bd9Sstevel@tonic-gate 	WNL_3REG = 1,
2217c478bd9Sstevel@tonic-gate 	WNL_3DIR = 2,
2227c478bd9Sstevel@tonic-gate 	WNL_3BLK = 3,
2237c478bd9Sstevel@tonic-gate 	WNL_3CHR = 4,
2247c478bd9Sstevel@tonic-gate 	WNL_3LNK = 5,
2257c478bd9Sstevel@tonic-gate 	WNL_3SOCK = 6,
2267c478bd9Sstevel@tonic-gate 	WNL_3FIFO = 7
2277c478bd9Sstevel@tonic-gate };
2287c478bd9Sstevel@tonic-gate 
2297c478bd9Sstevel@tonic-gate struct wnl_specdata3 {
2307c478bd9Sstevel@tonic-gate 	wnl_uint32	specdata1;
2317c478bd9Sstevel@tonic-gate 	wnl_uint32	specdata2;
2327c478bd9Sstevel@tonic-gate };
2337c478bd9Sstevel@tonic-gate 
2347c478bd9Sstevel@tonic-gate /*
2357c478bd9Sstevel@tonic-gate  * File access handle
2367c478bd9Sstevel@tonic-gate  */
2377c478bd9Sstevel@tonic-gate struct wnl_fh3 {
2387c478bd9Sstevel@tonic-gate 	opaque data<WNL3_FHSIZE>;
2397c478bd9Sstevel@tonic-gate };
2407c478bd9Sstevel@tonic-gate 
241*2a8bcb4eSToomas Soome /*
2427c478bd9Sstevel@tonic-gate  * Timeval
2437c478bd9Sstevel@tonic-gate  */
2447c478bd9Sstevel@tonic-gate struct wnl_time3 {
2457c478bd9Sstevel@tonic-gate 	wnl_uint32 seconds;
2467c478bd9Sstevel@tonic-gate 	wnl_uint32 nseconds;
2477c478bd9Sstevel@tonic-gate };
2487c478bd9Sstevel@tonic-gate 
2497c478bd9Sstevel@tonic-gate /*
2507c478bd9Sstevel@tonic-gate  * File attributes
2517c478bd9Sstevel@tonic-gate  */
2527c478bd9Sstevel@tonic-gate struct wnl_fattr3 {
2537c478bd9Sstevel@tonic-gate 	wnl_ftype3	  type;
2547c478bd9Sstevel@tonic-gate 	wnl_mode3	  mode;
2557c478bd9Sstevel@tonic-gate 	wnl_uint32	  nlink;
2567c478bd9Sstevel@tonic-gate 	wnl_uid3	  uid;
2577c478bd9Sstevel@tonic-gate 	wnl_gid3	  gid;
2587c478bd9Sstevel@tonic-gate 	wnl_size3	  size;
2597c478bd9Sstevel@tonic-gate 	wnl_size3	  used;
2607c478bd9Sstevel@tonic-gate 	wnl_specdata3 rdev;
2617c478bd9Sstevel@tonic-gate 	wnl_uint64	  fsid;
2627c478bd9Sstevel@tonic-gate 	wnl_fileid3	  fileid;
2637c478bd9Sstevel@tonic-gate 	wnl_time3  atime;
2647c478bd9Sstevel@tonic-gate 	wnl_time3  mtime;
2657c478bd9Sstevel@tonic-gate 	wnl_time3  ctime;
2667c478bd9Sstevel@tonic-gate };
2677c478bd9Sstevel@tonic-gate 
2687c478bd9Sstevel@tonic-gate /*
2697c478bd9Sstevel@tonic-gate  * File attributes
2707c478bd9Sstevel@tonic-gate  */
2717c478bd9Sstevel@tonic-gate union wnl_post_op_attr switch (bool attributes_follow) {
2727c478bd9Sstevel@tonic-gate case TRUE:
2737c478bd9Sstevel@tonic-gate 	wnl_fattr3 attributes;
2747c478bd9Sstevel@tonic-gate case FALSE:
2757c478bd9Sstevel@tonic-gate 	void;
276*2a8bcb4eSToomas Soome };
2777c478bd9Sstevel@tonic-gate 
2787c478bd9Sstevel@tonic-gate union wln_post_op_fh3 switch (bool handle_follows) {
2797c478bd9Sstevel@tonic-gate case TRUE:
2807c478bd9Sstevel@tonic-gate 	wnl_fh3 handle;
2817c478bd9Sstevel@tonic-gate case FALSE:
2827c478bd9Sstevel@tonic-gate 	void;
2837c478bd9Sstevel@tonic-gate };
2847c478bd9Sstevel@tonic-gate 
2857c478bd9Sstevel@tonic-gate struct wnl_diropargs3 {
2867c478bd9Sstevel@tonic-gate 	wnl_fh3   dir;
2877c478bd9Sstevel@tonic-gate 	wnl_filename3 name;
2887c478bd9Sstevel@tonic-gate };
2897c478bd9Sstevel@tonic-gate 
2907c478bd9Sstevel@tonic-gate /*
2917c478bd9Sstevel@tonic-gate  * LOOKUP: Lookup wnl_filename
2927c478bd9Sstevel@tonic-gate  */
2937c478bd9Sstevel@tonic-gate struct WNL_LOOKUP3args {
2947c478bd9Sstevel@tonic-gate 	wnl_diropargs3 what;
2957c478bd9Sstevel@tonic-gate };
2967c478bd9Sstevel@tonic-gate 
2977c478bd9Sstevel@tonic-gate struct WNL_LOOKUP3resok {
2987c478bd9Sstevel@tonic-gate 	wnl_fh3		object;
2997c478bd9Sstevel@tonic-gate 	wnl_post_op_attr	obj_attributes;
3007c478bd9Sstevel@tonic-gate 	wnl_post_op_attr	dir_attributes;
3017c478bd9Sstevel@tonic-gate };
3027c478bd9Sstevel@tonic-gate 
3037c478bd9Sstevel@tonic-gate struct WNL_LOOKUP3resfail {
3047c478bd9Sstevel@tonic-gate 	wnl_post_op_attr	dir_attributes;
3057c478bd9Sstevel@tonic-gate };
3067c478bd9Sstevel@tonic-gate 
3077c478bd9Sstevel@tonic-gate union WNL_LOOKUP3res switch (wnl_stat3 status) {
3087c478bd9Sstevel@tonic-gate case WNL3_OK:
3097c478bd9Sstevel@tonic-gate 	WNL_LOOKUP3resok	res_ok;
3107c478bd9Sstevel@tonic-gate default:
3117c478bd9Sstevel@tonic-gate 	WNL_LOOKUP3resfail	res_fail;
3127c478bd9Sstevel@tonic-gate };
3137c478bd9Sstevel@tonic-gate 
3147c478bd9Sstevel@tonic-gate const MAX_FLAVORS	= 128;
3157c478bd9Sstevel@tonic-gate 
3167c478bd9Sstevel@tonic-gate struct snego_t {
3177c478bd9Sstevel@tonic-gate 	int cnt;
3187c478bd9Sstevel@tonic-gate 	int array[MAX_FLAVORS];
3197c478bd9Sstevel@tonic-gate };
3207c478bd9Sstevel@tonic-gate 
3217c478bd9Sstevel@tonic-gate enum snego_stat {
3227c478bd9Sstevel@tonic-gate 	/* default flavor invalid and a flavor has been negotiated */
3237c478bd9Sstevel@tonic-gate 	SNEGO_SUCCESS = 0,
3247c478bd9Sstevel@tonic-gate 
3257c478bd9Sstevel@tonic-gate 	/* default flavor valid, no need to negotiate flavors */
3267c478bd9Sstevel@tonic-gate 	SNEGO_DEF_VALID = 1,
3277c478bd9Sstevel@tonic-gate 
3287c478bd9Sstevel@tonic-gate 	/* array size too small */
3297c478bd9Sstevel@tonic-gate 	SNEGO_ARRAY_TOO_SMALL = 2,
3307c478bd9Sstevel@tonic-gate 
3317c478bd9Sstevel@tonic-gate 	SNEGO_FAILURE = 3
3327c478bd9Sstevel@tonic-gate };
3337c478bd9Sstevel@tonic-gate 
3347c478bd9Sstevel@tonic-gate /*
3357c478bd9Sstevel@tonic-gate  * Remote file service routines
3367c478bd9Sstevel@tonic-gate  */
3377c478bd9Sstevel@tonic-gate program WNL_PROGRAM {
3387c478bd9Sstevel@tonic-gate 	version WNL_V2 {
339*2a8bcb4eSToomas Soome 		void
3407c478bd9Sstevel@tonic-gate 		WNLPROC_NULL(void) = 0;
3417c478bd9Sstevel@tonic-gate 
342*2a8bcb4eSToomas Soome 		wnl_diropres
3437c478bd9Sstevel@tonic-gate 		WNLPROC_LOOKUP(wnl_diropargs) = 4;
3447c478bd9Sstevel@tonic-gate 	} = 2;
3457c478bd9Sstevel@tonic-gate 
3467c478bd9Sstevel@tonic-gate 	version WNL_V3 {
347*2a8bcb4eSToomas Soome 		void
3487c478bd9Sstevel@tonic-gate 		WNLPROC3_NULL(void) = 0;
3497c478bd9Sstevel@tonic-gate 
350*2a8bcb4eSToomas Soome 		WNL_LOOKUP3res
3517c478bd9Sstevel@tonic-gate 		WNLPROC3_LOOKUP(WNL_LOOKUP3args) = 3;
3527c478bd9Sstevel@tonic-gate 	} = 3;
3537c478bd9Sstevel@tonic-gate 
3547c478bd9Sstevel@tonic-gate 	version WNL_V4 {
3557c478bd9Sstevel@tonic-gate 		void
3567c478bd9Sstevel@tonic-gate 		WNLPROC4_NULL(void) = 0;
3577c478bd9Sstevel@tonic-gate 	} = 4;
3587c478bd9Sstevel@tonic-gate 
3597c478bd9Sstevel@tonic-gate } = 100003;
360