Expand PMF_FN_* macros.
[netbsd-mini2440.git] / external / bsd / am-utils / dist / conf / nfs_prot / nfs_prot_aix5_2.h
blobbf81a683833d085bba384f8de83047dd40038d7e
1 /* $NetBSD$ */
3 /*
4 * Copyright (c) 1997-2009 Erez Zadok
5 * Copyright (c) 1990 Jan-Simon Pendry
6 * Copyright (c) 1990 Imperial College of Science, Technology & Medicine
7 * Copyright (c) 1990 The Regents of the University of California.
8 * All rights reserved.
10 * This code is derived from software contributed to Berkeley by
11 * Jan-Simon Pendry at Imperial College, London.
13 * Redistribution and use in source and binary forms, with or without
14 * modification, are permitted provided that the following conditions
15 * are met:
16 * 1. Redistributions of source code must retain the above copyright
17 * notice, this list of conditions and the following disclaimer.
18 * 2. Redistributions in binary form must reproduce the above copyright
19 * notice, this list of conditions and the following disclaimer in the
20 * documentation and/or other materials provided with the distribution.
21 * 3. All advertising materials mentioning features or use of this software
22 * must display the following acknowledgment:
23 * This product includes software developed by the University of
24 * California, Berkeley and its contributors.
25 * 4. Neither the name of the University nor the names of its contributors
26 * may be used to endorse or promote products derived from this software
27 * without specific prior written permission.
29 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
30 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
31 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
32 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
33 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
34 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
35 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
36 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
37 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
38 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
39 * SUCH DAMAGE.
42 * File: am-utils/conf/nfs_prot/nfs_prot_aix5_2.h
46 #ifndef _AMU_NFS_PROT_H
47 #define _AMU_NFS_PROT_H
51 * AIX 5.2 has a different aix5_nfs_args structure, hence the separate header.
54 #ifdef HAVE_RPCSVC_NFS_PROT_H
55 # include <rpcsvc/nfs_prot.h>
56 #endif /* HAVE_RPCSVC_NFS_PROT_H */
57 #ifdef HAVE_NFS_NFSV2_H
58 # include <nfs/nfsv2.h>
59 #endif /* HAVE_NFS_NFSV2_H */
60 #ifdef HAVE_NFS_RPCV2_H
61 # include <nfs/rpcv2.h>
62 #endif /* HAVE_NFS_RPCV2_H */
63 #ifdef HAVE_SYS_FS_NFS_H
64 # include <sys/fs/nfs.h>
65 #endif /* HAVE_SYS_FS_NFS_H */
66 #ifdef HAVE_RPCSVC_MOUNT_H
68 * AIX 5.2 wants 'struct pathcnf', but I couldn't find its definition
69 * anywhere. Luckily, amd doesn't need the size of this structure in
70 * any other structure that it uses. So we sidestep it for now.
72 struct pathcnf;
73 # include <rpcsvc/mount.h>
74 #endif /* HAVE_RPCSVC_MOUNT_H */
75 #ifdef HAVE_SYS_VFS_H
76 /* AIX 5.3 (ppc) wants definition of kernel-specific structure */
77 struct thread_credentials;
78 #endif /* HAVE_SYS_VFS_H */
81 * MACROS
84 #ifndef MNTPATHLEN
85 # define MNTPATHLEN 1024
86 #endif /* not MNTPATHLEN */
87 #ifndef MNTNAMLEN
88 # define MNTNAMLEN 255
89 #endif /* not MNTNAMLEN */
91 /* compatible macro name with other OSs */
92 #ifdef UVMNT_FORCE
93 # define MS_FORCE UVMNT_FORCE
94 #endif /* UVMNT_FORCE */
96 /********************************************************************************/
98 * NFS mount option flags (out of mount.h)
99 * Maybe one day IBM will include them in system headers.
101 #ifndef MNTOPT_ACDIRMAX
102 # define MNTOPT_ACDIRMAX "acdirmax" /* max ac timeout for dirs (sec) */
103 # define MNTOPT_ACDIRMIN "acdirmin" /* min ac timeout for dirs (sec) */
104 # define MNTOPT_ACREGMAX "acregmax" /* max ac timeout for reg files (sec) */
105 # define MNTOPT_ACREGMIN "acregmin" /* min ac timeout for reg files (sec) */
106 # define MNTOPT_ACTIMEO "actimeo" /* attr cache timeout (sec) */
107 # define MNTOPT_BG "bg" /* mount op in background if 1st attempt fails */
108 # define MNTOPT_FASTATTR "fastattr" /* no sync_vp in nfs3_getattr */
109 # define MNTOPT_FG "fg" /* mount op in fg if 1st attempt fails, default */
110 # define MNTOPT_GRPID "grpid" /* SysV-compatible group-id on create */
111 # define MNTOPT_HARD "hard" /* hard mount (default) */
112 # define MNTOPT_INTR "intr" /* allow interrupts on hard mount */
113 # define MNTOPT_NOAC "noac" /* don't cache file attributes */
114 # define MNTOPT_NOACL "noacl" /* don't read acl's from server - default */
115 # define MNTOPT_ACL "acl" /* read acl's from server means we load ksec */
116 # define MNTOPT_NOAUTO "noauto"/* hide entry from mount -a */
117 # define MNTOPT_NOCTO "nocto" /* no "close to open" attr consistency */
118 # define MNTOPT_NODEV "nodev" /*don't allow opening of devices accross mount*/
119 # define MNTOPT_NOINTR "nointr" /* don't allow interrupts on hard mounts */
120 # define MNTOPT_NOQUOTA "noquota" /* don't check quotas */
121 # define MNTOPT_NOSUID "nosuid" /* no set uid allowed */
122 # define MNTOPT_BSY "bsy"
123 # define MNTOPT_PORT "port" /* server IP port number */
124 # define MNTOPT_POSIX "posix" /* ask for static pathconf values from mountd */
125 # define MNTOPT_QUOTA "quota" /* quotas */
126 # define MNTOPT_RETRANS "retrans" /* set number of request retries */
127 # define MNTOPT_RETRYS "retry" /* # of times mount is attempted, def=10000*/
128 # define MNTOPT_RMNT "remount" /* remount to rw if mode ro */
129 # define MNTOPT_RO "ro" /* read only */
130 # define MNTOPT_RSIZE "rsize" /* set read size (bytes) */
131 # define MNTOPT_RW "rw" /* read/write */
132 # define MNTOPT_SECURE "secure"/* use secure RPC for NFS */
133 # define MNTOPT_SHORTDEV "shortdev" /* server dev */
134 # define MNTOPT_SOFT "soft" /* soft mount */
135 # define MNTOPT_TIMEO "timeo" /* set initial timeout (1/10 sec) */
136 # define MNTOPT_WSIZE "wsize" /* set write size (bytes) */
137 # define MNTOPT_VERS "vers" /* protocol version number indicator */
138 # define MNTOPT_PROTO "proto" /* protocol network_id indicator */
139 # define MNTOPT_LLOCK "llock" /* Local locking (no lock manager) */
140 # define MNTOPT_BIODS "biods" /* max biods per mount */
141 # define MNTOPT_EXTATTR "extraattr" /* extended attribute usage */
142 # define MNTOPT_COMBEHND "combehind" /* extended attribute usage */
143 # define MNTOPT_NUMCLUST "numclust" /* max numclust per mount */
144 # define MNTOPT_NODIRCACHE "nodircache" /* No readdir cache */
146 # define NFSMNT_NOACL 0x0 /* turn off acl support (not supported) */
147 # define NFSMNT_SHORTDEV 0x0 /* server does not support 32-bit device no.
148 (not supported) */
149 # define NFSMNT_SOFT 0x001 /* soft mount (hard is default) */
150 # define NFSMNT_WSIZE 0x002 /* set write size */
151 # define NFSMNT_RSIZE 0x004 /* set read size */
152 # define NFSMNT_TIMEO 0x008 /* set initial timeout */
153 # define NFSMNT_RETRANS 0x010 /* set number of request retrys */
154 # define NFSMNT_HOSTNAME 0x020 /* set hostname for error printf */
155 # define NFSMNT_INT 0x040 /* allow interrupts on hard mount */
156 # define NFSMNT_NOAC 0x080 /* don't cache attributes */
157 # define NFSMNT_ACREGMIN 0x0100 /* set min secs for file attr cache */
158 # define NFSMNT_ACREGMAX 0x0200 /* set max secs for file attr cache */
159 # define NFSMNT_ACDIRMIN 0x0400 /* set min secs for dir attr cache */
160 # define NFSMNT_ACDIRMAX 0x0800 /* set max secs for dir attr cache */
161 # define NFSMNT_SECURE 0x1000 /* secure mount */
162 # define NFSMNT_NOCTO 0x2000 /* no close-to-open consistency */
163 # define NFSMNT_KNCONF 0x4000 /* transport's knetconfig structure */
164 # define NFSMNT_GRPID 0x8000 /* System V-style gid inheritance */
165 # define NFSMNT_RPCTIMESYNC 0x10000 /* use RPC to do secure NFS time sync */
166 # define NFSMNT_KERBEROS 0x20000 /* use kerberos credentials */
167 # define NFSMNT_POSIX 0x40000 /* static pathconf kludge info */
168 # define NFSMNT_LLOCK 0x80000 /* Local locking (no lock manager) */
169 # define NFSMNT_ACL 0x100000 /* turn on acl support */
170 # define NFSMNT_BIODS 0x200000 /* number of biods per mount */
171 # define NFSMNT_EXTATTR 0x400000 /* extended attribute usage */
172 # define NFSMNT_FASTATTR 0x800000 /* no sync_vp in nfs3_getattr */
173 # define NFSMNT_COMBEHND 0x1000000 /* allow commit behind */
174 # define NFSMNT_NUMCLUST 0x2000000 /* number of cluster per mount */
175 # define NFSMNT_NODIRCACHE 0x4000000 /* No readdir cache */
176 #endif /* not MNTOPT_ACDIRMAX */
177 /********************************************************************************/
179 /* map field names */
180 #define ex_dir ex_name
181 #define gr_name g_name
182 #define gr_next g_next
183 #define ml_directory ml_path
184 #define ml_hostname ml_name
185 #define ml_next ml_nxt
187 #define dr_drok_u diropres
188 #define ca_attributes attributes
189 #define ca_where where
190 #define da_fhandle dir
191 #define da_name name
192 #define dl_entries entries
193 #define dl_eof eof
194 #define dr_status status
195 #define dr_u diropres_u
196 #define drok_attributes attributes
197 #define drok_fhandle file
198 #define fh_data data
199 #define la_fhandle from
200 #define la_to to
201 #define na_atime atime
202 #define na_blocks blocks
203 #define na_blocksize blocksize
204 #define na_ctime ctime
205 #define na_fileid fileid
206 #define na_fsid fsid
207 #define na_gid gid
208 #define na_mode mode
209 #define na_mtime mtime
210 #define na_nlink nlink
211 #define na_rdev rdev
212 #define na_size size
213 #define na_type type
214 #define na_uid uid
215 #define ne_cookie cookie
216 #define ne_fileid fileid
217 #define ne_name name
218 #define ne_nextentry nextentry
219 #define ns_attr_u attributes
220 #define ns_status status
221 #define ns_u attrstat_u
222 #define nt_seconds seconds
223 #define nt_useconds useconds
224 #define ra_count count
225 #define ra_fhandle file
226 #define ra_offset offset
227 #define ra_totalcount totalcount
228 #define raok_attributes attributes
229 #define raok_len_u data_len
230 #define raok_u data
231 #define raok_val_u data_val
232 #define rda_cookie cookie
233 #define rda_count count
234 #define rda_fhandle dir
235 #define rdr_reply_u reply
236 #define rdr_status status
237 #define rdr_u readdirres_u
238 #define rlr_data_u data
239 #define rlr_status status
240 #define rlr_u readlinkres_u
241 #define rna_from from
242 #define rna_to to
243 #define rr_reply_u reply
244 #define rr_status status
245 #define rr_u readres_u
246 #define sa_atime atime
247 #define sa_gid gid
248 #define sa_mode mode
249 #define sa_mtime mtime
250 #define sa_size size
251 #define sa_uid uid
252 #define sag_attributes attributes
253 #define sag_fhandle file
254 #define sfr_reply_u reply
255 #define sfr_status status
256 #define sfr_u statfsres_u
257 #define sfrok_bavail bavail
258 #define sfrok_bfree bfree
259 #define sfrok_blocks blocks
260 #define sfrok_bsize bsize
261 #define sfrok_tsize tsize
262 #define sla_attributes attributes
263 #define sla_from from
264 #define sla_to to
265 #define wra_beginoffset beginoffset
266 #define wra_fhandle file
267 #define wra_len_u data_len
268 #define wra_offset offset
269 #define wra_totalcount totalcount
270 #define wra_u data
271 #define wra_val_u data_val
275 * TYPEDEFS:
277 typedef char *dirpath;
278 typedef char *name;
279 typedef struct exports *exports;
280 typedef struct exports exportnode;
281 typedef struct groups *groups;
282 typedef struct groups groupnode;
283 typedef struct mountlist *mountlist;
286 * If these definitions fail to compile on your AIX 5.2 system, be
287 * sure you install all of the necessary header files.
289 typedef attrstat nfsattrstat;
290 typedef createargs nfscreateargs;
291 typedef dirlist nfsdirlist;
292 typedef diropargs nfsdiropargs;
293 typedef diropokres nfsdiropokres;
294 typedef diropres nfsdiropres;
295 typedef entry nfsentry;
296 typedef fattr nfsfattr;
297 typedef ftype nfsftype;
298 typedef linkargs nfslinkargs;
299 typedef readargs nfsreadargs;
300 typedef readdirargs nfsreaddirargs;
301 typedef readdirres nfsreaddirres;
302 typedef readlinkres nfsreadlinkres;
303 typedef readokres nfsreadokres;
304 typedef readres nfsreadres;
305 typedef renameargs nfsrenameargs;
306 typedef sattr nfssattr;
307 typedef sattrargs nfssattrargs;
308 typedef statfsokres nfsstatfsokres;
309 typedef statfsres nfsstatfsres;
310 typedef symlinkargs nfssymlinkargs;
311 typedef writeargs nfswriteargs;
315 * EXTERNALS:
320 * STRUCTURES:
324 * AIX 5.2 has NFS V3, but it is undefined in the header files.
325 * so I define everything that's needed for NFS V3 here.
327 #ifdef MNT_NFS3
329 struct aix5_nfs_args {
330 struct sockaddr_in addr; /* file server address */
331 struct sockaddr_in *syncaddr; /* secure NFS time sync addr */
332 int proto;
333 char *hostname; /* server's hostname */
334 char *netname; /* server's netname */
335 caddr_t fh; /* File handle to be mounted */
336 int flags; /* flags */
337 int wsize; /* write size in bytes */
338 int rsize; /* read size in bytes */
339 int timeo; /* initial timeout in .1 secs */
340 int retrans; /* times to retry send */
341 int acregmin; /* attr cache file min secs */
342 int acregmax; /* attr cache file max secs */
343 int acdirmin; /* attr cache dir min secs */
344 int acdirmax; /* attr cache dir max secs */
345 struct ppathcnf *pathconf; /* static pathconf kludge */
346 int biods; /* biods per mount */
347 int numclust; /* numclust per mount */
350 #endif /* MNT_NFS3 */
353 **************************************************************************
354 * AIX 5.2's autofs is not ported or tested yet...
355 * For now, undefine it or define dummy entries.
356 **************************************************************************
358 #ifdef MNT_AUTOFS
359 # undef MNT_AUTOFS
360 #endif /* MNT_AUTOFS */
361 #ifdef HAVE_FS_AUTOFS
362 # undef HAVE_FS_AUTOFS
363 #endif /* HAVE_FS_AUTOFS */
366 * EXTERNALS:
368 extern bool_t xdr_groups(XDR *xdrs, groups *objp);
369 extern char *yperr_string (int incode);
371 #endif /* not _AMU_NFS_PROT_H */