Expand PMF_FN_* macros.
[netbsd-mini2440.git] / external / bsd / am-utils / dist / conf / nfs_prot / nfs_prot_aix4_3.h
blob699d4fbfaacfc4dc685803bc2d9f607c2e2e26c4
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_aix4_3.h
46 #ifndef _AMU_NFS_PROT_H
47 #define _AMU_NFS_PROT_H
51 * AIX 4.3 and newer support NFS V.3, 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
67 # include <rpcsvc/mount.h>
68 #endif /* HAVE_RPCSVC_MOUNT_H */
72 * MACROS
75 #ifndef MNTPATHLEN
76 # define MNTPATHLEN 1024
77 #endif /* not MNTPATHLEN */
78 #ifndef MNTNAMLEN
79 # define MNTNAMLEN 255
80 #endif /* not MNTNAMLEN */
82 /* map field names */
83 #define ex_dir ex_name
84 #define gr_name g_name
85 #define gr_next g_next
86 #define ml_directory ml_path
87 #define ml_hostname ml_name
88 #define ml_next ml_nxt
90 #define dr_drok_u diropres
91 #define ca_attributes attributes
92 #define ca_where where
93 #define da_fhandle dir
94 #define da_name name
95 #define dl_entries entries
96 #define dl_eof eof
97 #define dr_status status
98 #define dr_u diropres_u
99 #define drok_attributes attributes
100 #define drok_fhandle file
101 #define fh_data data
102 #define la_fhandle from
103 #define la_to to
104 #define na_atime atime
105 #define na_blocks blocks
106 #define na_blocksize blocksize
107 #define na_ctime ctime
108 #define na_fileid fileid
109 #define na_fsid fsid
110 #define na_gid gid
111 #define na_mode mode
112 #define na_mtime mtime
113 #define na_nlink nlink
114 #define na_rdev rdev
115 #define na_size size
116 #define na_type type
117 #define na_uid uid
118 #define ne_cookie cookie
119 #define ne_fileid fileid
120 #define ne_name name
121 #define ne_nextentry nextentry
122 #define ns_attr_u attributes
123 #define ns_status status
124 #define ns_u attrstat_u
125 #define nt_seconds seconds
126 #define nt_useconds useconds
127 #define ra_count count
128 #define ra_fhandle file
129 #define ra_offset offset
130 #define ra_totalcount totalcount
131 #define raok_attributes attributes
132 #define raok_len_u data_len
133 #define raok_u data
134 #define raok_val_u data_val
135 #define rda_cookie cookie
136 #define rda_count count
137 #define rda_fhandle dir
138 #define rdr_reply_u reply
139 #define rdr_status status
140 #define rdr_u readdirres_u
141 #define rlr_data_u data
142 #define rlr_status status
143 #define rlr_u readlinkres_u
144 #define rna_from from
145 #define rna_to to
146 #define rr_reply_u reply
147 #define rr_status status
148 #define rr_u readres_u
149 #define sa_atime atime
150 #define sa_gid gid
151 #define sa_mode mode
152 #define sa_mtime mtime
153 #define sa_size size
154 #define sa_uid uid
155 #define sag_attributes attributes
156 #define sag_fhandle file
157 #define sfr_reply_u reply
158 #define sfr_status status
159 #define sfr_u statfsres_u
160 #define sfrok_bavail bavail
161 #define sfrok_bfree bfree
162 #define sfrok_blocks blocks
163 #define sfrok_bsize bsize
164 #define sfrok_tsize tsize
165 #define sla_attributes attributes
166 #define sla_from from
167 #define sla_to to
168 #define wra_beginoffset beginoffset
169 #define wra_fhandle file
170 #define wra_len_u data_len
171 #define wra_offset offset
172 #define wra_totalcount totalcount
173 #define wra_u data
174 #define wra_val_u data_val
178 * TYPEDEFS:
180 typedef char *dirpath;
181 typedef char *name;
182 typedef struct exports *exports;
183 typedef struct exports exportnode;
184 typedef struct groups *groups;
185 typedef struct groups groupnode;
186 typedef struct mountlist *mountlist;
188 typedef attrstat nfsattrstat;
189 typedef createargs nfscreateargs;
190 typedef dirlist nfsdirlist;
191 typedef diropargs nfsdiropargs;
192 typedef diropokres nfsdiropokres;
193 typedef diropres nfsdiropres;
194 typedef entry nfsentry;
195 typedef fattr nfsfattr;
196 typedef ftype nfsftype;
197 typedef linkargs nfslinkargs;
198 typedef readargs nfsreadargs;
199 typedef readdirargs nfsreaddirargs;
200 typedef readdirres nfsreaddirres;
201 typedef readlinkres nfsreadlinkres;
202 typedef readokres nfsreadokres;
203 typedef readres nfsreadres;
204 typedef renameargs nfsrenameargs;
205 typedef sattr nfssattr;
206 typedef sattrargs nfssattrargs;
207 typedef statfsokres nfsstatfsokres;
208 typedef statfsres nfsstatfsres;
209 typedef symlinkargs nfssymlinkargs;
210 typedef writeargs nfswriteargs;
214 * EXTERNALS:
219 * STRUCTURES:
223 * AIX 4.3 has NFS V3, but it is undefined in the header files.
224 * so I define everything that's needed for NFS V3 here.
226 #ifdef MNT_NFS3
228 struct aix4_nfs_args {
229 struct sockaddr_in addr; /* file server address */
230 struct sockaddr_in *syncaddr; /* secure NFS time sync addr */
231 int proto; /* IPPROTO_TCP/IPPROTO_UDP ??? */
232 char *hostname; /* server's hostname */
233 char *netname; /* server's netname */
234 caddr_t fh; /* File handle to be mounted */
235 int flags; /* flags */
236 int wsize; /* write size in bytes */
237 int rsize; /* read size in bytes */
238 int timeo; /* initial timeout in .1 secs */
239 int retrans; /* times to retry send */
240 int acregmin; /* attr cache file min secs */
241 int acregmax; /* attr cache file max secs */
242 int acdirmin; /* attr cache dir min secs */
243 int acdirmax; /* attr cache dir max secs */
244 struct ppathcnf *pathconf; /* static pathconf kludge */
245 int biods; /* biods per mount */
246 int numclust; /* numclust per mount */
249 #if 0
250 /* old structure we hand crafted. no longer needed */
251 struct aix4_nfs_args {
252 struct sockaddr_in addr; /* server address and port */
253 caddr_t u0; /* ??? UNKNOWN ??? */
254 unsigned long proto; /* IPPROTO_TCP/IPPROTO_UDP */
255 char *hostname; /* pointer to hostname? */
256 char *netname; /* pointer to netname? */
257 caddr_t fh; /* pointer to NFS v3 fh? */
258 unsigned long flags; /* flags */
259 unsigned long wsize; /* wsize */
260 unsigned long rsize; /* rsize */
261 unsigned long timeo; /* timeo */
262 unsigned long retrans; /* retrans */
263 unsigned long acregmin; /* acregmin */
264 unsigned long acregmax; /* acregmax */
265 unsigned long acdirmin; /* acdirmin */
266 unsigned long acdirmax; /* acdirmax */
267 unsigned long u14; /* ??? UNKNOWN ??? */
268 struct pathcnf *pathconf; /* pathconf */
270 #endif /* 0 */
273 * IBM is in dire need of taking a soft-eng class.
274 * They changed the API/ABI (namely the nfs3_args structure)
275 * in a service pack...
277 * All the following *_bis junk is here to try and deal with this idiocy.
279 #define MOUNT_TYPE_NFS3_BIS 0x12344321
280 struct aix4_nfs_args_bis {
281 struct sockaddr_in addr; /* server address and port */
282 struct sockaddr_in *syncaddr; /* secure NFS time sync addr */
283 int proto; /* IPPROTO_TCP/IPPROTO_UDP ??? */
284 char *hostname; /* pointer to hostname? */
285 char *netname; /* pointer to netname? */
286 caddr_t fh; /* pointer to NFS v3 fh? */
287 unsigned long flags; /* flags */
288 unsigned long wsize; /* wsize */
289 unsigned long rsize; /* rsize */
290 unsigned long timeo; /* timeo */
291 unsigned long retrans; /* retrans */
292 unsigned long acregmin; /* acregmin */
293 unsigned long acregmax; /* acregmax */
294 unsigned long acdirmin; /* acdirmin */
295 unsigned long acdirmax; /* acdirmax */
296 unsigned long u14; /* ??? UNKNOWN ??? */
297 struct ppathcnf *pathconf; /* static pathconf kludge */
298 int biods; /* biods per mount */
299 int numclust; /* numclust per mount */
302 #endif /* MNT_NFS3 */
305 **************************************************************************
306 * AIX 4.3's autofs is not ported or tested yet...
307 * For now, undefine it or define dummy entries.
308 **************************************************************************
310 #ifdef MNT_AUTOFS
311 # undef MNT_AUTOFS
312 #endif /* MNT_AUTOFS */
313 #ifdef HAVE_FS_AUTOFS
314 # undef HAVE_FS_AUTOFS
315 #endif /* HAVE_FS_AUTOFS */
318 * EXTERNALS:
320 extern bool_t xdr_groups(XDR *xdrs, groups *objp);
321 extern char *yperr_string (int incode);
323 #endif /* not _AMU_NFS_PROT_H */