xref: /illumos-gate/usr/src/boot/libsa/nfsv2.h (revision 22028508fd28d36ff74dc02c5774a8ba1f0db045)
1*22028508SToomas Soome /* $FreeBSD$ */
2*22028508SToomas Soome /*	$NetBSD: nfsv2.h,v 1.2 1996/02/26 23:05:23 gwr Exp $	*/
3*22028508SToomas Soome 
4*22028508SToomas Soome /*
5*22028508SToomas Soome  * Copyright (c) 1989, 1993
6*22028508SToomas Soome  *	The Regents of the University of California.  All rights reserved.
7*22028508SToomas Soome  *
8*22028508SToomas Soome  * This code is derived from software contributed to Berkeley by
9*22028508SToomas Soome  * Rick Macklem at The University of Guelph.
10*22028508SToomas Soome  *
11*22028508SToomas Soome  * Redistribution and use in source and binary forms, with or without
12*22028508SToomas Soome  * modification, are permitted provided that the following conditions
13*22028508SToomas Soome  * are met:
14*22028508SToomas Soome  * 1. Redistributions of source code must retain the above copyright
15*22028508SToomas Soome  *    notice, this list of conditions and the following disclaimer.
16*22028508SToomas Soome  * 2. Redistributions in binary form must reproduce the above copyright
17*22028508SToomas Soome  *    notice, this list of conditions and the following disclaimer in the
18*22028508SToomas Soome  *    documentation and/or other materials provided with the distribution.
19*22028508SToomas Soome  * 3. Neither the name of the University nor the names of its contributors
20*22028508SToomas Soome  *    may be used to endorse or promote products derived from this software
21*22028508SToomas Soome  *    without specific prior written permission.
22*22028508SToomas Soome  *
23*22028508SToomas Soome  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
24*22028508SToomas Soome  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
25*22028508SToomas Soome  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
26*22028508SToomas Soome  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
27*22028508SToomas Soome  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
28*22028508SToomas Soome  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
29*22028508SToomas Soome  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
30*22028508SToomas Soome  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
31*22028508SToomas Soome  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
32*22028508SToomas Soome  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
33*22028508SToomas Soome  * SUCH DAMAGE.
34*22028508SToomas Soome  *
35*22028508SToomas Soome  *	@(#)nfsv2.h	8.1 (Berkeley) 6/10/93
36*22028508SToomas Soome  */
37*22028508SToomas Soome 
38*22028508SToomas Soome /*
39*22028508SToomas Soome  * nfs definitions as per the version 2 specs
40*22028508SToomas Soome  */
41*22028508SToomas Soome 
42*22028508SToomas Soome /*
43*22028508SToomas Soome  * Constants as defined in the Sun NFS Version 2 spec.
44*22028508SToomas Soome  * "NFS: Network File System Protocol Specification" RFC1094
45*22028508SToomas Soome  */
46*22028508SToomas Soome 
47*22028508SToomas Soome #define NFS_PORT	2049
48*22028508SToomas Soome #define	NFS_PROG	100003
49*22028508SToomas Soome #define NFS_VER2	2
50*22028508SToomas Soome #define	NFS_MAXDGRAMDATA 8192
51*22028508SToomas Soome #define	NFS_MAXDATA	32768
52*22028508SToomas Soome #define	NFS_MAXPATHLEN	1024
53*22028508SToomas Soome #define	NFS_MAXNAMLEN	255
54*22028508SToomas Soome #define	NFS_FHSIZE	32
55*22028508SToomas Soome #define	NFS_MAXPKTHDR	404
56*22028508SToomas Soome #define NFS_MAXPACKET	(NFS_MAXPKTHDR+NFS_MAXDATA)
57*22028508SToomas Soome #define	NFS_MINPACKET	20
58*22028508SToomas Soome #define	NFS_FABLKSIZE	512	/* Size in bytes of a block wrt fa_blocks */
59*22028508SToomas Soome #define	NFS_READDIRSIZE	1024
60*22028508SToomas Soome 
61*22028508SToomas Soome /* Stat numbers for rpc returns */
62*22028508SToomas Soome #define	NFS_OK		0
63*22028508SToomas Soome #define	NFSERR_PERM	1
64*22028508SToomas Soome #define	NFSERR_NOENT	2
65*22028508SToomas Soome #define	NFSERR_IO	5
66*22028508SToomas Soome #define	NFSERR_NXIO	6
67*22028508SToomas Soome #define	NFSERR_ACCES	13
68*22028508SToomas Soome #define	NFSERR_EXIST	17
69*22028508SToomas Soome #define	NFSERR_NODEV	19
70*22028508SToomas Soome #define	NFSERR_NOTDIR	20
71*22028508SToomas Soome #define	NFSERR_ISDIR	21
72*22028508SToomas Soome #define	NFSERR_FBIG	27
73*22028508SToomas Soome #define	NFSERR_NOSPC	28
74*22028508SToomas Soome #define	NFSERR_ROFS	30
75*22028508SToomas Soome #define	NFSERR_NAMETOL	63
76*22028508SToomas Soome #define	NFSERR_NOTEMPTY	66
77*22028508SToomas Soome #define	NFSERR_DQUOT	69
78*22028508SToomas Soome #define	NFSERR_STALE	70
79*22028508SToomas Soome #define	NFSERR_WFLUSH	99
80*22028508SToomas Soome 
81*22028508SToomas Soome /* Sizes in bytes of various nfs rpc components */
82*22028508SToomas Soome #define	NFSX_FH		32
83*22028508SToomas Soome #define	NFSX_UNSIGNED	4
84*22028508SToomas Soome #define	NFSX_FATTR	68
85*22028508SToomas Soome #define	NFSX_SATTR	32
86*22028508SToomas Soome #define NFSX_STATFS	20
87*22028508SToomas Soome #define	NFSX_COOKIE	4
88*22028508SToomas Soome 
89*22028508SToomas Soome /* nfs rpc procedure numbers */
90*22028508SToomas Soome #define	NFSPROC_NULL		0
91*22028508SToomas Soome #define	NFSPROC_GETATTR		1
92*22028508SToomas Soome #define	NFSPROC_SETATTR		2
93*22028508SToomas Soome #define	NFSPROC_NOOP		3
94*22028508SToomas Soome #define	NFSPROC_ROOT		NFSPROC_NOOP	/* Obsolete */
95*22028508SToomas Soome #define	NFSPROC_LOOKUP		4
96*22028508SToomas Soome #define	NFSPROC_READLINK	5
97*22028508SToomas Soome #define	NFSPROC_READ		6
98*22028508SToomas Soome #define	NFSPROC_WRITECACHE	NFSPROC_NOOP	/* Obsolete */
99*22028508SToomas Soome #define	NFSPROC_WRITE		8
100*22028508SToomas Soome #define	NFSPROC_CREATE		9
101*22028508SToomas Soome #define	NFSPROC_REMOVE		10
102*22028508SToomas Soome #define	NFSPROC_RENAME		11
103*22028508SToomas Soome #define	NFSPROC_LINK		12
104*22028508SToomas Soome #define	NFSPROC_SYMLINK		13
105*22028508SToomas Soome #define	NFSPROC_MKDIR		14
106*22028508SToomas Soome #define	NFSPROC_RMDIR		15
107*22028508SToomas Soome #define	NFSPROC_READDIR		16
108*22028508SToomas Soome #define	NFSPROC_STATFS		17
109*22028508SToomas Soome 
110*22028508SToomas Soome #define	NFS_NPROCS		18
111*22028508SToomas Soome 
112*22028508SToomas Soome 
113*22028508SToomas Soome /* File types */
114*22028508SToomas Soome typedef enum {
115*22028508SToomas Soome 	NFNON=0,
116*22028508SToomas Soome 	NFREG=1,
117*22028508SToomas Soome 	NFDIR=2,
118*22028508SToomas Soome 	NFBLK=3,
119*22028508SToomas Soome 	NFCHR=4,
120*22028508SToomas Soome 	NFLNK=5
121*22028508SToomas Soome } nfstype;
122