1/* $NetBSD: nfs_prot_aix5_1.h,v 1.1.1.2 2009/03/20 20:26:51 christos Exp $ */ 2 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. 9 * 10 * This code is derived from software contributed to Berkeley by 11 * Jan-Simon Pendry at Imperial College, London. 12 * 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. 28 * 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. 40 * 41 * 42 * File: am-utils/conf/nfs_prot/nfs_prot_aix5_1.h 43 * 44 */ 45 46#ifndef _AMU_NFS_PROT_H 47#define _AMU_NFS_PROT_H 48 49 50/* 51 * AIX 5.1 has a different aix5_nfs_args structure, hence the separate header. 52 */ 53 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 */ 69 70 71/* 72 * MACROS 73 */ 74 75#ifndef MNTPATHLEN 76# define MNTPATHLEN 1024 77#endif /* not MNTPATHLEN */ 78#ifndef MNTNAMLEN 79# define MNTNAMLEN 255 80#endif /* not MNTNAMLEN */ 81 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 89 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 175 176 177/* 178 * TYPEDEFS: 179 */ 180typedef char *dirpath; 181typedef char *name; 182typedef struct exports *exports; 183typedef struct exports exportnode; 184typedef struct groups *groups; 185typedef struct groups groupnode; 186typedef struct mountlist *mountlist; 187 188typedef attrstat nfsattrstat; 189typedef createargs nfscreateargs; 190typedef dirlist nfsdirlist; 191typedef diropargs nfsdiropargs; 192typedef diropokres nfsdiropokres; 193typedef diropres nfsdiropres; 194typedef entry nfsentry; 195typedef fattr nfsfattr; 196typedef ftype nfsftype; 197typedef linkargs nfslinkargs; 198typedef readargs nfsreadargs; 199typedef readdirargs nfsreaddirargs; 200typedef readdirres nfsreaddirres; 201typedef readlinkres nfsreadlinkres; 202typedef readokres nfsreadokres; 203typedef readres nfsreadres; 204typedef renameargs nfsrenameargs; 205typedef sattr nfssattr; 206typedef sattrargs nfssattrargs; 207typedef statfsokres nfsstatfsokres; 208typedef statfsres nfsstatfsres; 209typedef symlinkargs nfssymlinkargs; 210typedef writeargs nfswriteargs; 211 212 213/* 214 * EXTERNALS: 215 */ 216 217 218/* 219 * STRUCTURES: 220 */ 221 222/* 223 * AIX 5.1 has NFS V3, but it is undefined in the header files. 224 * so I define everything that's needed for NFS V3 here. 225 */ 226#ifdef MNT_NFS3 227 228struct aix5_nfs_args { 229 struct sockaddr_in addr; /* server address and port */ 230 caddr_t u0; /* ??? UNKNOWN ??? */ 231 unsigned long proto; /* IPPROTO_TCP/IPPROTO_UDP */ 232 char *hostname; /* pointer to hostname? */ 233 char *netname; /* pointer to netname? */ 234 caddr_t fh; /* pointer to NFS v3 fh? */ 235 unsigned long u5; /* IBM sux, IBM sux, IBM sux... */ 236 unsigned long flags; /* flags */ 237 unsigned long wsize; /* wsize */ 238 unsigned long rsize; /* rsize */ 239 unsigned long timeo; /* timeo */ 240 unsigned long retrans; /* retrans */ 241 unsigned long acregmin; /* acregmin */ 242 unsigned long acregmax; /* acregmax */ 243 unsigned long acdirmin; /* acdirmin */ 244 unsigned long acdirmax; /* acdirmax */ 245 unsigned long u15; /* ??? UNKNOWN ??? */ 246 struct pathcnf *pathconf; /* pathconf */ 247}; 248 249#endif /* MNT_NFS3 */ 250 251#ifdef MNT_AUTOFS 252#define A_MAXNAME 255 253#define A_MAXOPTS 255 254#define A_MAXPATH 1024 255 256struct mntrequest { 257 char *name; 258 char *map; 259 char *opts; 260 char *path; 261}; 262typedef struct mntrequest mntrequest; 263 264struct mntres { 265 int status; 266}; 267typedef struct mntres mntres; 268 269struct umntrequest { 270 int isdirect; 271 u_int devid; 272 u_long rdevid; 273 struct umntrequest *next; 274}; 275typedef struct umntrequest umntrequest; 276 277struct umntres { 278 int status; 279}; 280typedef struct umntres umntres; 281 282#define AUTOFS_PROG ((unsigned long)(100099)) 283#define AUTOFS_VERS ((unsigned long)(1)) 284 285#endif /* MNT_AUTOFS */ 286 287/* 288 ************************************************************************** 289 * AIX 5.1's autofs is not ported or tested yet... 290 * For now, undefine it or define dummy entries. 291 ************************************************************************** 292 */ 293#ifdef MNT_AUTOFS 294# undef MNT_AUTOFS 295#endif /* MNT_AUTOFS */ 296#ifdef HAVE_FS_AUTOFS 297# undef HAVE_FS_AUTOFS 298#endif /* HAVE_FS_AUTOFS */ 299 300/* 301 * EXTERNALS: 302 */ 303extern bool_t xdr_groups(XDR *xdrs, groups *objp); 304extern char *yperr_string (int incode); 305 306#endif /* not _AMU_NFS_PROT_H */ 307