1*31bdb48aSchristos /* $NetBSD: am_xdr_func.h,v 1.1.1.3 2015/01/17 16:34:18 christos Exp $ */ 2a53f50b9Schristos 3a53f50b9Schristos /* 4*31bdb48aSchristos * Copyright (c) 1997-2014 Erez Zadok 5a53f50b9Schristos * Copyright (c) 1990 Jan-Simon Pendry 6a53f50b9Schristos * Copyright (c) 1990 Imperial College of Science, Technology & Medicine 7a53f50b9Schristos * Copyright (c) 1990 The Regents of the University of California. 8a53f50b9Schristos * All rights reserved. 9a53f50b9Schristos * 10a53f50b9Schristos * This code is derived from software contributed to Berkeley by 11a53f50b9Schristos * Jan-Simon Pendry at Imperial College, London. 12a53f50b9Schristos * 13a53f50b9Schristos * Redistribution and use in source and binary forms, with or without 14a53f50b9Schristos * modification, are permitted provided that the following conditions 15a53f50b9Schristos * are met: 16a53f50b9Schristos * 1. Redistributions of source code must retain the above copyright 17a53f50b9Schristos * notice, this list of conditions and the following disclaimer. 18a53f50b9Schristos * 2. Redistributions in binary form must reproduce the above copyright 19a53f50b9Schristos * notice, this list of conditions and the following disclaimer in the 20a53f50b9Schristos * documentation and/or other materials provided with the distribution. 21*31bdb48aSchristos * 3. Neither the name of the University nor the names of its contributors 22a53f50b9Schristos * may be used to endorse or promote products derived from this software 23a53f50b9Schristos * without specific prior written permission. 24a53f50b9Schristos * 25a53f50b9Schristos * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 26a53f50b9Schristos * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 27a53f50b9Schristos * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 28a53f50b9Schristos * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 29a53f50b9Schristos * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 30a53f50b9Schristos * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 31a53f50b9Schristos * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 32a53f50b9Schristos * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 33a53f50b9Schristos * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 34a53f50b9Schristos * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 35a53f50b9Schristos * SUCH DAMAGE. 36a53f50b9Schristos * 37a53f50b9Schristos * 38a53f50b9Schristos * File: am-utils/include/am_xdr_func.h 39a53f50b9Schristos * 40a53f50b9Schristos */ 41a53f50b9Schristos 42a53f50b9Schristos #ifdef HAVE_FS_NFS3 43a53f50b9Schristos 44a53f50b9Schristos #define AM_MOUNTVERS3 ((unsigned long)(3)) 45a53f50b9Schristos 46*31bdb48aSchristos #define AM_FHSIZE3 64 /* size in bytes of a file handle (v3) */ 47*31bdb48aSchristos #define AM_NFS3_WRITEVERFSIZE 8 48*31bdb48aSchristos #define AM_NFS3_CREATEVERFSIZE 8 49*31bdb48aSchristos #define AM_NFS3_COOKIEVERFSIZE 8 50*31bdb48aSchristos #define AM_ACCESS3_READ 0x0001 51*31bdb48aSchristos #define AM_ACCESS3_LOOKUP 0x0002 52*31bdb48aSchristos #define AM_ACCESS3_MODIFY 0x0004 53*31bdb48aSchristos #define AM_ACCESS3_EXTEND 0x0008 54*31bdb48aSchristos #define AM_ACCESS3_DELETE 0x0010 55*31bdb48aSchristos #define AM_ACCESS3_EXECUTE 0x0020 56*31bdb48aSchristos #define AM_FSF3_LINK 0x0001 57*31bdb48aSchristos #define AM_FSF3_SYMLINK 0x0002 58*31bdb48aSchristos #define AM_FSF3_HOMOGENEOUS 0x0008 59*31bdb48aSchristos #define AM_FSF3_CANSETTIME 0x0010 60*31bdb48aSchristos 61*31bdb48aSchristos typedef char am_cookieverf3[AM_NFS3_COOKIEVERFSIZE]; 62*31bdb48aSchristos 63*31bdb48aSchristos typedef u_quad_t uint64; 64*31bdb48aSchristos 65*31bdb48aSchristos typedef uint64 am_cookie3; 66*31bdb48aSchristos 67a53f50b9Schristos /* NFSv3 handle */ 68a53f50b9Schristos struct am_nfs_fh3 { 69a53f50b9Schristos u_int am_fh3_length; 70a53f50b9Schristos char am_fh3_data[AM_FHSIZE3]; 71a53f50b9Schristos }; 72a53f50b9Schristos typedef struct am_nfs_fh3 am_nfs_fh3; 73a53f50b9Schristos 74a53f50b9Schristos #define AM_NFSPROC3_LOOKUP ((u_long) 3) 75a53f50b9Schristos enum am_nfsstat3 { 76a53f50b9Schristos AM_NFS3_OK = 0, 77a53f50b9Schristos AM_NFS3ERR_PERM = 1, 78a53f50b9Schristos AM_NFS3ERR_NOENT = 2, 79a53f50b9Schristos AM_NFS3ERR_IO = 5, 80a53f50b9Schristos AM_NFS3ERR_NXIO = 6, 81a53f50b9Schristos AM_NFS3ERR_ACCES = 13, 82a53f50b9Schristos AM_NFS3ERR_EXIST = 17, 83a53f50b9Schristos AM_NFS3ERR_XDEV = 18, 84a53f50b9Schristos AM_NFS3ERR_NODEV = 19, 85a53f50b9Schristos AM_NFS3ERR_NOTDIR = 20, 86a53f50b9Schristos AM_NFS3ERR_ISDIR = 21, 87a53f50b9Schristos AM_NFS3ERR_INVAL = 22, 88a53f50b9Schristos AM_NFS3ERR_FBIG = 27, 89a53f50b9Schristos AM_NFS3ERR_NOSPC = 28, 90a53f50b9Schristos AM_NFS3ERR_ROFS = 30, 91a53f50b9Schristos AM_NFS3ERR_MLINK = 31, 92a53f50b9Schristos AM_NFS3ERR_NAMETOOLONG = 63, 93a53f50b9Schristos AM_NFS3ERR_NOTEMPTY = 66, 94a53f50b9Schristos AM_NFS3ERR_DQUOT = 69, 95a53f50b9Schristos AM_NFS3ERR_STALE = 70, 96a53f50b9Schristos AM_NFS3ERR_REMOTE = 71, 97a53f50b9Schristos AM_NFS3ERR_BADHANDLE = 10001, 98a53f50b9Schristos AM_NFS3ERR_NOT_SYNC = 10002, 99a53f50b9Schristos AM_NFS3ERR_BAD_COOKIE = 10003, 100a53f50b9Schristos AM_NFS3ERR_NOTSUPP = 10004, 101a53f50b9Schristos AM_NFS3ERR_TOOSMALL = 10005, 102a53f50b9Schristos AM_NFS3ERR_SERVERFAULT = 10006, 103a53f50b9Schristos AM_NFS3ERR_BADTYPE = 10007, 104a53f50b9Schristos AM_NFS3ERR_JUKEBOX = 10008 105a53f50b9Schristos }; 106a53f50b9Schristos typedef enum am_nfsstat3 am_nfsstat3; 107a53f50b9Schristos 108a53f50b9Schristos typedef struct { 109a53f50b9Schristos u_int fhandle3_len; 110a53f50b9Schristos char *fhandle3_val; 111a53f50b9Schristos } am_fhandle3; 112a53f50b9Schristos 113a53f50b9Schristos enum am_mountstat3 { 114a53f50b9Schristos AM_MNT3_OK = 0, 115a53f50b9Schristos AM_MNT3ERR_PERM = 1, 116a53f50b9Schristos AM_MNT3ERR_NOENT = 2, 117a53f50b9Schristos AM_MNT3ERR_IO = 5, 118a53f50b9Schristos AM_MNT3ERR_ACCES = 13, 119a53f50b9Schristos AM_MNT3ERR_NOTDIR = 20, 120a53f50b9Schristos AM_MNT3ERR_INVAL = 22, 121a53f50b9Schristos AM_MNT3ERR_NAMETOOLONG = 63, 122a53f50b9Schristos AM_MNT3ERR_NOTSUPP = 10004, 123a53f50b9Schristos AM_MNT3ERR_SERVERFAULT = 10006 124a53f50b9Schristos }; 125a53f50b9Schristos typedef enum am_mountstat3 am_mountstat3; 126a53f50b9Schristos 127a53f50b9Schristos struct am_mountres3_ok { 128a53f50b9Schristos am_fhandle3 fhandle; 129a53f50b9Schristos struct { 130a53f50b9Schristos u_int auth_flavors_len; 131a53f50b9Schristos int *auth_flavors_val; 132a53f50b9Schristos } auth_flavors; 133a53f50b9Schristos }; 134a53f50b9Schristos typedef struct am_mountres3_ok am_mountres3_ok; 135a53f50b9Schristos 136a53f50b9Schristos struct am_mountres3 { 137a53f50b9Schristos am_mountstat3 fhs_status; 138a53f50b9Schristos union { 139a53f50b9Schristos am_mountres3_ok mountinfo; 140a53f50b9Schristos } mountres3_u; 141a53f50b9Schristos }; 142a53f50b9Schristos typedef struct am_mountres3 am_mountres3; 143a53f50b9Schristos 144a53f50b9Schristos typedef char *am_filename3; 145a53f50b9Schristos 146a53f50b9Schristos struct am_diropargs3 { 147a53f50b9Schristos am_nfs_fh3 dir; 148a53f50b9Schristos am_filename3 name; 149a53f50b9Schristos }; 150a53f50b9Schristos typedef struct am_diropargs3 am_diropargs3; 151a53f50b9Schristos 152*31bdb48aSchristos enum am_ftype3 { 153*31bdb48aSchristos AM_NF3REG = 1, 154*31bdb48aSchristos AM_NF3DIR = 2, 155*31bdb48aSchristos AM_NF3BLK = 3, 156*31bdb48aSchristos AM_NF3CHR = 4, 157*31bdb48aSchristos AM_NF3LNK = 5, 158*31bdb48aSchristos AM_NF3SOCK = 6, 159*31bdb48aSchristos AM_NF3FIFO = 7, 160*31bdb48aSchristos }; 161*31bdb48aSchristos typedef enum am_ftype3 am_ftype3; 162*31bdb48aSchristos 163*31bdb48aSchristos typedef u_int am_mode3; 164*31bdb48aSchristos 165*31bdb48aSchristos typedef u_int am_uid3; 166*31bdb48aSchristos 167*31bdb48aSchristos typedef u_int am_gid3; 168*31bdb48aSchristos 169*31bdb48aSchristos typedef uint64 am_size3; 170*31bdb48aSchristos 171*31bdb48aSchristos typedef uint64 am_fileid3; 172*31bdb48aSchristos 173*31bdb48aSchristos struct am_specdata3 { 174*31bdb48aSchristos u_int specdata1; 175*31bdb48aSchristos u_int specdata2; 176*31bdb48aSchristos }; 177*31bdb48aSchristos typedef struct am_specdata3 am_specdata3; 178*31bdb48aSchristos 179*31bdb48aSchristos struct am_nfstime3 { 180*31bdb48aSchristos u_int seconds; 181*31bdb48aSchristos u_int nseconds; 182*31bdb48aSchristos }; 183*31bdb48aSchristos typedef struct am_nfstime3 am_nfstime3; 184*31bdb48aSchristos 185*31bdb48aSchristos struct am_fattr3 { 186*31bdb48aSchristos am_ftype3 type; 187*31bdb48aSchristos am_mode3 mode; 188*31bdb48aSchristos u_int nlink; 189*31bdb48aSchristos am_uid3 uid; 190*31bdb48aSchristos am_gid3 gid; 191*31bdb48aSchristos am_size3 size; 192*31bdb48aSchristos am_size3 used; 193*31bdb48aSchristos am_specdata3 rdev; 194*31bdb48aSchristos uint64 fsid; 195*31bdb48aSchristos am_fileid3 fileid; 196*31bdb48aSchristos am_nfstime3 atime; 197*31bdb48aSchristos am_nfstime3 mtime; 198*31bdb48aSchristos am_nfstime3 ctime; 199*31bdb48aSchristos }; 200*31bdb48aSchristos typedef struct am_fattr3 am_fattr3; 201*31bdb48aSchristos 202*31bdb48aSchristos struct am_post_op_attr { 203*31bdb48aSchristos bool_t attributes_follow; 204*31bdb48aSchristos union { 205*31bdb48aSchristos am_fattr3 attributes; 206*31bdb48aSchristos } am_post_op_attr_u; 207*31bdb48aSchristos }; 208*31bdb48aSchristos typedef struct am_post_op_attr am_post_op_attr; 209*31bdb48aSchristos 210*31bdb48aSchristos enum am_stable_how { 211*31bdb48aSchristos AM_UNSTABLE = 0, 212*31bdb48aSchristos AM_DATA_SYNC = 1, 213*31bdb48aSchristos AM_FILE_SYNC = 2, 214*31bdb48aSchristos }; 215*31bdb48aSchristos typedef enum am_stable_how am_stable_how; 216*31bdb48aSchristos 217*31bdb48aSchristos typedef uint64 am_offset3; 218*31bdb48aSchristos 219*31bdb48aSchristos typedef u_int am_count3; 220*31bdb48aSchristos 221*31bdb48aSchristos struct am_wcc_attr { 222*31bdb48aSchristos am_size3 size; 223*31bdb48aSchristos am_nfstime3 mtime; 224*31bdb48aSchristos am_nfstime3 ctime; 225*31bdb48aSchristos }; 226*31bdb48aSchristos typedef struct am_wcc_attr am_wcc_attr; 227*31bdb48aSchristos 228*31bdb48aSchristos struct am_pre_op_attr { 229*31bdb48aSchristos bool_t attributes_follow; 230*31bdb48aSchristos union { 231*31bdb48aSchristos am_wcc_attr attributes; 232*31bdb48aSchristos } am_pre_op_attr_u; 233*31bdb48aSchristos }; 234*31bdb48aSchristos typedef struct am_pre_op_attr am_pre_op_attr; 235*31bdb48aSchristos 236*31bdb48aSchristos struct am_wcc_data { 237*31bdb48aSchristos am_pre_op_attr before; 238*31bdb48aSchristos am_post_op_attr after; 239*31bdb48aSchristos }; 240*31bdb48aSchristos typedef struct am_wcc_data am_wcc_data; 241*31bdb48aSchristos 242*31bdb48aSchristos struct am_WRITE3args { 243*31bdb48aSchristos am_nfs_fh3 file; 244*31bdb48aSchristos am_offset3 offset; 245*31bdb48aSchristos am_count3 count; 246*31bdb48aSchristos am_stable_how stable; 247*31bdb48aSchristos struct { 248*31bdb48aSchristos u_int data_len; 249*31bdb48aSchristos char *data_val; 250*31bdb48aSchristos } data; 251*31bdb48aSchristos }; 252*31bdb48aSchristos typedef struct am_WRITE3args am_WRITE3args; 253*31bdb48aSchristos 254*31bdb48aSchristos typedef char am_writeverf3[AM_NFS3_WRITEVERFSIZE]; 255*31bdb48aSchristos 256*31bdb48aSchristos struct am_WRITE3resok { 257*31bdb48aSchristos am_wcc_data file_wcc; 258*31bdb48aSchristos am_count3 count; 259*31bdb48aSchristos am_stable_how committed; 260*31bdb48aSchristos am_writeverf3 verf; 261*31bdb48aSchristos }; 262*31bdb48aSchristos typedef struct am_WRITE3resok am_WRITE3resok; 263*31bdb48aSchristos 264*31bdb48aSchristos struct am_WRITE3resfail { 265*31bdb48aSchristos am_wcc_data file_wcc; 266*31bdb48aSchristos }; 267*31bdb48aSchristos typedef struct am_WRITE3resfail am_WRITE3resfail; 268*31bdb48aSchristos 269*31bdb48aSchristos struct am_WRITE3res { 270*31bdb48aSchristos am_nfsstat3 status; 271*31bdb48aSchristos union { 272*31bdb48aSchristos am_WRITE3resok ok; 273*31bdb48aSchristos am_WRITE3resfail fail; 274*31bdb48aSchristos } res_u; 275*31bdb48aSchristos }; 276*31bdb48aSchristos typedef struct am_WRITE3res am_WRITE3res; 277*31bdb48aSchristos 278a53f50b9Schristos struct am_LOOKUP3args { 279a53f50b9Schristos am_diropargs3 what; 280a53f50b9Schristos }; 281a53f50b9Schristos typedef struct am_LOOKUP3args am_LOOKUP3args; 282a53f50b9Schristos 283a53f50b9Schristos struct am_LOOKUP3resok { 284a53f50b9Schristos am_nfs_fh3 object; 285*31bdb48aSchristos am_post_op_attr obj_attributes; 286*31bdb48aSchristos am_post_op_attr dir_attributes; 287a53f50b9Schristos }; 288a53f50b9Schristos typedef struct am_LOOKUP3resok am_LOOKUP3resok; 289a53f50b9Schristos 290a53f50b9Schristos struct am_LOOKUP3resfail { 291*31bdb48aSchristos am_post_op_attr dir_attributes; 292a53f50b9Schristos }; 293a53f50b9Schristos typedef struct am_LOOKUP3resfail am_LOOKUP3resfail; 294a53f50b9Schristos 295a53f50b9Schristos struct am_LOOKUP3res { 296a53f50b9Schristos am_nfsstat3 status; 297a53f50b9Schristos union { 298a53f50b9Schristos am_LOOKUP3resok ok; 299a53f50b9Schristos am_LOOKUP3resfail fail; 300a53f50b9Schristos } res_u; 301a53f50b9Schristos }; 302a53f50b9Schristos typedef struct am_LOOKUP3res am_LOOKUP3res; 303*31bdb48aSchristos 304*31bdb48aSchristos struct am_COMMIT3args { 305*31bdb48aSchristos am_nfs_fh3 file; 306*31bdb48aSchristos am_offset3 offset; 307*31bdb48aSchristos am_count3 count; 308*31bdb48aSchristos }; 309*31bdb48aSchristos typedef struct am_COMMIT3args am_COMMIT3args; 310*31bdb48aSchristos 311*31bdb48aSchristos struct am_COMMIT3resok { 312*31bdb48aSchristos am_wcc_data file_wcc; 313*31bdb48aSchristos am_writeverf3 verf; 314*31bdb48aSchristos }; 315*31bdb48aSchristos typedef struct am_COMMIT3resok am_COMMIT3resok; 316*31bdb48aSchristos 317*31bdb48aSchristos struct am_COMMIT3resfail { 318*31bdb48aSchristos am_wcc_data file_wcc; 319*31bdb48aSchristos }; 320*31bdb48aSchristos typedef struct am_COMMIT3resfail am_COMMIT3resfail; 321*31bdb48aSchristos 322*31bdb48aSchristos struct am_COMMIT3res { 323*31bdb48aSchristos am_nfsstat3 status; 324*31bdb48aSchristos union { 325*31bdb48aSchristos am_COMMIT3resok ok; 326*31bdb48aSchristos am_COMMIT3resfail fail; 327*31bdb48aSchristos } res_u; 328*31bdb48aSchristos }; 329*31bdb48aSchristos typedef struct am_COMMIT3res am_COMMIT3res; 330*31bdb48aSchristos 331*31bdb48aSchristos struct am_ACCESS3args { 332*31bdb48aSchristos am_nfs_fh3 object; 333*31bdb48aSchristos u_int access; 334*31bdb48aSchristos }; 335*31bdb48aSchristos typedef struct am_ACCESS3args am_ACCESS3args; 336*31bdb48aSchristos 337*31bdb48aSchristos struct am_ACCESS3resok { 338*31bdb48aSchristos am_post_op_attr obj_attributes; 339*31bdb48aSchristos u_int access; 340*31bdb48aSchristos }; 341*31bdb48aSchristos typedef struct am_ACCESS3resok am_ACCESS3resok; 342*31bdb48aSchristos 343*31bdb48aSchristos struct am_ACCESS3resfail { 344*31bdb48aSchristos am_post_op_attr obj_attributes; 345*31bdb48aSchristos }; 346*31bdb48aSchristos typedef struct am_ACCESS3resfail am_ACCESS3resfail; 347*31bdb48aSchristos 348*31bdb48aSchristos struct am_ACCESS3res { 349*31bdb48aSchristos am_nfsstat3 status; 350*31bdb48aSchristos union { 351*31bdb48aSchristos am_ACCESS3resok ok; 352*31bdb48aSchristos am_ACCESS3resfail fail; 353*31bdb48aSchristos } res_u; 354*31bdb48aSchristos }; 355*31bdb48aSchristos typedef struct am_ACCESS3res am_ACCESS3res; 356*31bdb48aSchristos 357*31bdb48aSchristos struct am_GETATTR3args { 358*31bdb48aSchristos am_nfs_fh3 object; 359*31bdb48aSchristos }; 360*31bdb48aSchristos typedef struct am_GETATTR3args am_GETATTR3args; 361*31bdb48aSchristos 362*31bdb48aSchristos struct am_GETATTR3resok { 363*31bdb48aSchristos am_fattr3 obj_attributes; 364*31bdb48aSchristos }; 365*31bdb48aSchristos typedef struct am_GETATTR3resok am_GETATTR3resok; 366*31bdb48aSchristos 367*31bdb48aSchristos struct am_GETATTR3res { 368*31bdb48aSchristos am_nfsstat3 status; 369*31bdb48aSchristos union { 370*31bdb48aSchristos am_GETATTR3resok ok; 371*31bdb48aSchristos } res_u; 372*31bdb48aSchristos }; 373*31bdb48aSchristos typedef struct am_GETATTR3res am_GETATTR3res; 374*31bdb48aSchristos 375*31bdb48aSchristos enum am_time_how { 376*31bdb48aSchristos AM_DONT_CHANGE = 0, 377*31bdb48aSchristos AM_SET_TO_SERVER_TIME = 1, 378*31bdb48aSchristos AM_SET_TO_CLIENT_TIME = 2, 379*31bdb48aSchristos }; 380*31bdb48aSchristos typedef enum am_time_how am_time_how; 381*31bdb48aSchristos 382*31bdb48aSchristos struct am_set_mode3 { 383*31bdb48aSchristos bool_t set_it; 384*31bdb48aSchristos union { 385*31bdb48aSchristos am_mode3 mode; 386*31bdb48aSchristos } am_set_mode3_u; 387*31bdb48aSchristos }; 388*31bdb48aSchristos typedef struct am_set_mode3 am_set_mode3; 389*31bdb48aSchristos 390*31bdb48aSchristos struct am_set_uid3 { 391*31bdb48aSchristos bool_t set_it; 392*31bdb48aSchristos union { 393*31bdb48aSchristos am_uid3 uid; 394*31bdb48aSchristos } am_set_uid3_u; 395*31bdb48aSchristos }; 396*31bdb48aSchristos typedef struct am_set_uid3 am_set_uid3; 397*31bdb48aSchristos 398*31bdb48aSchristos struct am_set_gid3 { 399*31bdb48aSchristos bool_t set_it; 400*31bdb48aSchristos union { 401*31bdb48aSchristos am_gid3 gid; 402*31bdb48aSchristos } am_set_gid3_u; 403*31bdb48aSchristos }; 404*31bdb48aSchristos typedef struct am_set_gid3 am_set_gid3; 405*31bdb48aSchristos 406*31bdb48aSchristos struct am_set_size3 { 407*31bdb48aSchristos bool_t set_it; 408*31bdb48aSchristos union { 409*31bdb48aSchristos am_size3 size; 410*31bdb48aSchristos } am_set_size3_u; 411*31bdb48aSchristos }; 412*31bdb48aSchristos typedef struct am_set_size3 am_set_size3; 413*31bdb48aSchristos 414*31bdb48aSchristos struct am_set_atime { 415*31bdb48aSchristos am_time_how set_it; 416*31bdb48aSchristos union { 417*31bdb48aSchristos am_nfstime3 atime; 418*31bdb48aSchristos } am_set_atime_u; 419*31bdb48aSchristos }; 420*31bdb48aSchristos typedef struct am_set_atime am_set_atime; 421*31bdb48aSchristos 422*31bdb48aSchristos struct am_set_mtime { 423*31bdb48aSchristos am_time_how set_it; 424*31bdb48aSchristos union { 425*31bdb48aSchristos am_nfstime3 mtime; 426*31bdb48aSchristos } am_set_mtime_u; 427*31bdb48aSchristos }; 428*31bdb48aSchristos typedef struct am_set_mtime am_set_mtime; 429*31bdb48aSchristos 430*31bdb48aSchristos struct am_sattr3 { 431*31bdb48aSchristos am_set_mode3 mode; 432*31bdb48aSchristos am_set_uid3 uid; 433*31bdb48aSchristos am_set_gid3 gid; 434*31bdb48aSchristos am_set_size3 size; 435*31bdb48aSchristos am_set_atime atime; 436*31bdb48aSchristos am_set_mtime mtime; 437*31bdb48aSchristos }; 438*31bdb48aSchristos typedef struct am_sattr3 am_sattr3; 439*31bdb48aSchristos 440*31bdb48aSchristos enum am_createmode3 { 441*31bdb48aSchristos AM_UNCHECKED = 0, 442*31bdb48aSchristos AM_GUARDED = 1, 443*31bdb48aSchristos AM_EXCLUSIVE = 2, 444*31bdb48aSchristos }; 445*31bdb48aSchristos typedef enum am_createmode3 am_createmode3; 446*31bdb48aSchristos 447*31bdb48aSchristos typedef char am_createverf3[AM_NFS3_CREATEVERFSIZE]; 448*31bdb48aSchristos 449*31bdb48aSchristos struct am_createhow3 { 450*31bdb48aSchristos am_createmode3 mode; 451*31bdb48aSchristos union { 452*31bdb48aSchristos am_sattr3 obj_attributes; 453*31bdb48aSchristos am_sattr3 g_obj_attributes; 454*31bdb48aSchristos am_createverf3 verf; 455*31bdb48aSchristos } am_createhow3_u; 456*31bdb48aSchristos }; 457*31bdb48aSchristos typedef struct am_createhow3 am_createhow3; 458*31bdb48aSchristos 459*31bdb48aSchristos struct am_CREATE3args { 460*31bdb48aSchristos am_diropargs3 where; 461*31bdb48aSchristos am_createhow3 how; 462*31bdb48aSchristos }; 463*31bdb48aSchristos typedef struct am_CREATE3args am_CREATE3args; 464*31bdb48aSchristos 465*31bdb48aSchristos struct am_post_op_fh3 { 466*31bdb48aSchristos bool_t handle_follows; 467*31bdb48aSchristos union { 468*31bdb48aSchristos am_nfs_fh3 handle; 469*31bdb48aSchristos } am_post_op_fh3_u; 470*31bdb48aSchristos }; 471*31bdb48aSchristos typedef struct am_post_op_fh3 am_post_op_fh3; 472*31bdb48aSchristos 473*31bdb48aSchristos struct am_CREATE3resok { 474*31bdb48aSchristos am_post_op_fh3 obj; 475*31bdb48aSchristos am_post_op_attr obj_attributes; 476*31bdb48aSchristos am_wcc_data dir_wcc; 477*31bdb48aSchristos }; 478*31bdb48aSchristos typedef struct am_CREATE3resok am_CREATE3resok; 479*31bdb48aSchristos 480*31bdb48aSchristos struct am_CREATE3resfail { 481*31bdb48aSchristos am_wcc_data dir_wcc; 482*31bdb48aSchristos }; 483*31bdb48aSchristos typedef struct am_CREATE3resfail am_CREATE3resfail; 484*31bdb48aSchristos 485*31bdb48aSchristos struct am_CREATE3res { 486*31bdb48aSchristos am_nfsstat3 status; 487*31bdb48aSchristos union { 488*31bdb48aSchristos am_CREATE3resok ok; 489*31bdb48aSchristos am_CREATE3resfail fail; 490*31bdb48aSchristos } res_u; 491*31bdb48aSchristos }; 492*31bdb48aSchristos typedef struct am_CREATE3res am_CREATE3res; 493*31bdb48aSchristos 494*31bdb48aSchristos struct am_REMOVE3args { 495*31bdb48aSchristos am_diropargs3 object; 496*31bdb48aSchristos }; 497*31bdb48aSchristos typedef struct am_REMOVE3args am_REMOVE3args; 498*31bdb48aSchristos 499*31bdb48aSchristos struct am_REMOVE3resok { 500*31bdb48aSchristos am_wcc_data dir_wcc; 501*31bdb48aSchristos }; 502*31bdb48aSchristos typedef struct am_REMOVE3resok am_REMOVE3resok; 503*31bdb48aSchristos 504*31bdb48aSchristos struct am_REMOVE3resfail { 505*31bdb48aSchristos am_wcc_data dir_wcc; 506*31bdb48aSchristos }; 507*31bdb48aSchristos typedef struct am_REMOVE3resfail am_REMOVE3resfail; 508*31bdb48aSchristos 509*31bdb48aSchristos struct am_REMOVE3res { 510*31bdb48aSchristos am_nfsstat3 status; 511*31bdb48aSchristos union { 512*31bdb48aSchristos am_REMOVE3resok ok; 513*31bdb48aSchristos am_REMOVE3resfail fail; 514*31bdb48aSchristos } res_u; 515*31bdb48aSchristos }; 516*31bdb48aSchristos typedef struct am_REMOVE3res am_REMOVE3res; 517*31bdb48aSchristos 518*31bdb48aSchristos struct am_READ3args { 519*31bdb48aSchristos am_nfs_fh3 file; 520*31bdb48aSchristos am_offset3 offset; 521*31bdb48aSchristos am_count3 count; 522*31bdb48aSchristos }; 523*31bdb48aSchristos typedef struct am_READ3args am_READ3args; 524*31bdb48aSchristos 525*31bdb48aSchristos struct am_READ3resok { 526*31bdb48aSchristos am_post_op_attr file_attributes; 527*31bdb48aSchristos am_count3 count; 528*31bdb48aSchristos bool_t eof; 529*31bdb48aSchristos struct { 530*31bdb48aSchristos u_int data_len; 531*31bdb48aSchristos char *data_val; 532*31bdb48aSchristos } data; 533*31bdb48aSchristos }; 534*31bdb48aSchristos typedef struct am_READ3resok am_READ3resok; 535*31bdb48aSchristos 536*31bdb48aSchristos struct am_READ3resfail { 537*31bdb48aSchristos am_post_op_attr file_attributes; 538*31bdb48aSchristos }; 539*31bdb48aSchristos typedef struct am_READ3resfail am_READ3resfail; 540*31bdb48aSchristos 541*31bdb48aSchristos struct am_READ3res { 542*31bdb48aSchristos am_nfsstat3 status; 543*31bdb48aSchristos union { 544*31bdb48aSchristos am_READ3resok ok; 545*31bdb48aSchristos am_READ3resfail fail; 546*31bdb48aSchristos } res_u; 547*31bdb48aSchristos }; 548*31bdb48aSchristos typedef struct am_READ3res am_READ3res; 549*31bdb48aSchristos 550*31bdb48aSchristos struct am_FSINFO3args { 551*31bdb48aSchristos am_nfs_fh3 fsroot; 552*31bdb48aSchristos }; 553*31bdb48aSchristos typedef struct am_FSINFO3args am_FSINFO3args; 554*31bdb48aSchristos 555*31bdb48aSchristos struct am_FSINFO3resok { 556*31bdb48aSchristos am_post_op_attr obj_attributes; 557*31bdb48aSchristos u_int rtmax; 558*31bdb48aSchristos u_int rtpref; 559*31bdb48aSchristos u_int rtmult; 560*31bdb48aSchristos u_int wtmax; 561*31bdb48aSchristos u_int wtpref; 562*31bdb48aSchristos u_int wtmult; 563*31bdb48aSchristos u_int dtpref; 564*31bdb48aSchristos am_size3 maxfilesize; 565*31bdb48aSchristos am_nfstime3 time_delta; 566*31bdb48aSchristos u_int properties; 567*31bdb48aSchristos }; 568*31bdb48aSchristos typedef struct am_FSINFO3resok am_FSINFO3resok; 569*31bdb48aSchristos 570*31bdb48aSchristos struct am_FSINFO3resfail { 571*31bdb48aSchristos am_post_op_attr obj_attributes; 572*31bdb48aSchristos }; 573*31bdb48aSchristos typedef struct am_FSINFO3resfail am_FSINFO3resfail; 574*31bdb48aSchristos 575*31bdb48aSchristos struct am_FSINFO3res { 576*31bdb48aSchristos am_nfsstat3 status; 577*31bdb48aSchristos union { 578*31bdb48aSchristos am_FSINFO3resok ok; 579*31bdb48aSchristos am_FSINFO3resfail fail; 580*31bdb48aSchristos } res_u; 581*31bdb48aSchristos }; 582*31bdb48aSchristos typedef struct am_FSINFO3res am_FSINFO3res; 583*31bdb48aSchristos 584*31bdb48aSchristos struct am_FSSTAT3args { 585*31bdb48aSchristos am_nfs_fh3 fsroot; 586*31bdb48aSchristos }; 587*31bdb48aSchristos typedef struct am_FSSTAT3args am_FSSTAT3args; 588*31bdb48aSchristos 589*31bdb48aSchristos struct am_FSSTAT3resok { 590*31bdb48aSchristos am_post_op_attr obj_attributes; 591*31bdb48aSchristos am_size3 tbytes; 592*31bdb48aSchristos am_size3 fbytes; 593*31bdb48aSchristos am_size3 abytes; 594*31bdb48aSchristos am_size3 tfiles; 595*31bdb48aSchristos am_size3 ffiles; 596*31bdb48aSchristos am_size3 afiles; 597*31bdb48aSchristos u_int invarsec; 598*31bdb48aSchristos }; 599*31bdb48aSchristos typedef struct am_FSSTAT3resok am_FSSTAT3resok; 600*31bdb48aSchristos 601*31bdb48aSchristos struct am_FSSTAT3resfail { 602*31bdb48aSchristos am_post_op_attr obj_attributes; 603*31bdb48aSchristos }; 604*31bdb48aSchristos typedef struct am_FSSTAT3resfail am_FSSTAT3resfail; 605*31bdb48aSchristos 606*31bdb48aSchristos struct am_FSSTAT3res { 607*31bdb48aSchristos am_nfsstat3 status; 608*31bdb48aSchristos union { 609*31bdb48aSchristos am_FSSTAT3resok ok; 610*31bdb48aSchristos am_FSSTAT3resfail fail; 611*31bdb48aSchristos } res_u; 612*31bdb48aSchristos }; 613*31bdb48aSchristos typedef struct am_FSSTAT3res am_FSSTAT3res; 614*31bdb48aSchristos 615*31bdb48aSchristos struct am_PATHCONF3args { 616*31bdb48aSchristos am_nfs_fh3 object; 617*31bdb48aSchristos }; 618*31bdb48aSchristos typedef struct am_PATHCONF3args am_PATHCONF3args; 619*31bdb48aSchristos 620*31bdb48aSchristos struct am_PATHCONF3resok { 621*31bdb48aSchristos am_post_op_attr obj_attributes; 622*31bdb48aSchristos u_int linkmax; 623*31bdb48aSchristos u_int name_max; 624*31bdb48aSchristos bool_t no_trunc; 625*31bdb48aSchristos bool_t chown_restricted; 626*31bdb48aSchristos bool_t case_insensitive; 627*31bdb48aSchristos bool_t case_preserving; 628*31bdb48aSchristos }; 629*31bdb48aSchristos typedef struct am_PATHCONF3resok am_PATHCONF3resok; 630*31bdb48aSchristos 631*31bdb48aSchristos struct am_PATHCONF3resfail { 632*31bdb48aSchristos am_post_op_attr obj_attributes; 633*31bdb48aSchristos }; 634*31bdb48aSchristos typedef struct am_PATHCONF3resfail am_PATHCONF3resfail; 635*31bdb48aSchristos 636*31bdb48aSchristos struct am_PATHCONF3res { 637*31bdb48aSchristos am_nfsstat3 status; 638*31bdb48aSchristos union { 639*31bdb48aSchristos am_PATHCONF3resok ok; 640*31bdb48aSchristos am_PATHCONF3resfail fail; 641*31bdb48aSchristos } res_u; 642*31bdb48aSchristos }; 643*31bdb48aSchristos typedef struct am_PATHCONF3res am_PATHCONF3res; 644*31bdb48aSchristos 645*31bdb48aSchristos typedef char *am_nfspath3; 646*31bdb48aSchristos 647*31bdb48aSchristos struct am_symlinkdata3 { 648*31bdb48aSchristos am_sattr3 symlink_attributes; 649*31bdb48aSchristos am_nfspath3 symlink_data; 650*31bdb48aSchristos }; 651*31bdb48aSchristos typedef struct am_symlinkdata3 am_symlinkdata3; 652*31bdb48aSchristos 653*31bdb48aSchristos struct am_SYMLINK3args { 654*31bdb48aSchristos am_diropargs3 where; 655*31bdb48aSchristos am_symlinkdata3 symlink; 656*31bdb48aSchristos }; 657*31bdb48aSchristos typedef struct am_SYMLINK3args am_SYMLINK3args; 658*31bdb48aSchristos 659*31bdb48aSchristos struct am_SYMLINK3resok { 660*31bdb48aSchristos am_post_op_fh3 obj; 661*31bdb48aSchristos am_post_op_attr obj_attributes; 662*31bdb48aSchristos am_wcc_data dir_wcc; 663*31bdb48aSchristos }; 664*31bdb48aSchristos typedef struct am_SYMLINK3resok am_SYMLINK3resok; 665*31bdb48aSchristos 666*31bdb48aSchristos struct am_SYMLINK3resfail { 667*31bdb48aSchristos am_wcc_data dir_wcc; 668*31bdb48aSchristos }; 669*31bdb48aSchristos typedef struct am_SYMLINK3resfail am_SYMLINK3resfail; 670*31bdb48aSchristos 671*31bdb48aSchristos struct am_SYMLINK3res { 672*31bdb48aSchristos am_nfsstat3 status; 673*31bdb48aSchristos union { 674*31bdb48aSchristos am_SYMLINK3resok ok; 675*31bdb48aSchristos am_SYMLINK3resfail fail; 676*31bdb48aSchristos } res_u; 677*31bdb48aSchristos }; 678*31bdb48aSchristos typedef struct am_SYMLINK3res am_SYMLINK3res; 679*31bdb48aSchristos 680*31bdb48aSchristos struct am_READLINK3args { 681*31bdb48aSchristos am_nfs_fh3 symlink; 682*31bdb48aSchristos }; 683*31bdb48aSchristos typedef struct am_READLINK3args am_READLINK3args; 684*31bdb48aSchristos 685*31bdb48aSchristos struct am_READLINK3resok { 686*31bdb48aSchristos am_post_op_attr symlink_attributes; 687*31bdb48aSchristos am_nfspath3 data; 688*31bdb48aSchristos }; 689*31bdb48aSchristos typedef struct am_READLINK3resok am_READLINK3resok; 690*31bdb48aSchristos 691*31bdb48aSchristos struct am_READLINK3resfail { 692*31bdb48aSchristos am_post_op_attr symlink_attributes; 693*31bdb48aSchristos }; 694*31bdb48aSchristos typedef struct am_READLINK3resfail am_READLINK3resfail; 695*31bdb48aSchristos 696*31bdb48aSchristos struct am_READLINK3res { 697*31bdb48aSchristos am_nfsstat3 status; 698*31bdb48aSchristos union { 699*31bdb48aSchristos am_READLINK3resok ok; 700*31bdb48aSchristos am_READLINK3resfail fail; 701*31bdb48aSchristos } res_u; 702*31bdb48aSchristos }; 703*31bdb48aSchristos typedef struct am_READLINK3res am_READLINK3res; 704*31bdb48aSchristos 705*31bdb48aSchristos struct am_devicedata3 { 706*31bdb48aSchristos am_sattr3 dev_attributes; 707*31bdb48aSchristos am_specdata3 spec; 708*31bdb48aSchristos }; 709*31bdb48aSchristos typedef struct am_devicedata3 am_devicedata3; 710*31bdb48aSchristos 711*31bdb48aSchristos struct am_mknoddata3 { 712*31bdb48aSchristos am_ftype3 type; 713*31bdb48aSchristos union { 714*31bdb48aSchristos am_devicedata3 chr_device; 715*31bdb48aSchristos am_devicedata3 blk_device; 716*31bdb48aSchristos am_sattr3 sock_attributes; 717*31bdb48aSchristos am_sattr3 pipe_attributes; 718*31bdb48aSchristos } am_mknoddata3_u; 719*31bdb48aSchristos }; 720*31bdb48aSchristos typedef struct am_mknoddata3 am_mknoddata3; 721*31bdb48aSchristos 722*31bdb48aSchristos struct am_MKNOD3args { 723*31bdb48aSchristos am_diropargs3 where; 724*31bdb48aSchristos am_mknoddata3 what; 725*31bdb48aSchristos }; 726*31bdb48aSchristos typedef struct am_MKNOD3args am_MKNOD3args; 727*31bdb48aSchristos 728*31bdb48aSchristos struct am_MKNOD3resok { 729*31bdb48aSchristos am_post_op_fh3 obj; 730*31bdb48aSchristos am_post_op_attr obj_attributes; 731*31bdb48aSchristos am_wcc_data dir_wcc; 732*31bdb48aSchristos }; 733*31bdb48aSchristos typedef struct am_MKNOD3resok am_MKNOD3resok; 734*31bdb48aSchristos 735*31bdb48aSchristos struct am_MKNOD3resfail { 736*31bdb48aSchristos am_wcc_data dir_wcc; 737*31bdb48aSchristos }; 738*31bdb48aSchristos typedef struct am_MKNOD3resfail am_MKNOD3resfail; 739*31bdb48aSchristos 740*31bdb48aSchristos struct am_MKNOD3res { 741*31bdb48aSchristos am_nfsstat3 status; 742*31bdb48aSchristos union { 743*31bdb48aSchristos am_MKNOD3resok ok; 744*31bdb48aSchristos am_MKNOD3resfail fail; 745*31bdb48aSchristos } res_u; 746*31bdb48aSchristos }; 747*31bdb48aSchristos typedef struct am_MKNOD3res am_MKNOD3res; 748*31bdb48aSchristos 749*31bdb48aSchristos struct am_MKDIR3args { 750*31bdb48aSchristos am_diropargs3 where; 751*31bdb48aSchristos am_sattr3 attributes; 752*31bdb48aSchristos }; 753*31bdb48aSchristos typedef struct am_MKDIR3args am_MKDIR3args; 754*31bdb48aSchristos 755*31bdb48aSchristos struct am_MKDIR3resok { 756*31bdb48aSchristos am_post_op_fh3 obj; 757*31bdb48aSchristos am_post_op_attr obj_attributes; 758*31bdb48aSchristos am_wcc_data dir_wcc; 759*31bdb48aSchristos }; 760*31bdb48aSchristos typedef struct am_MKDIR3resok am_MKDIR3resok; 761*31bdb48aSchristos 762*31bdb48aSchristos struct am_MKDIR3resfail { 763*31bdb48aSchristos am_wcc_data dir_wcc; 764*31bdb48aSchristos }; 765*31bdb48aSchristos typedef struct am_MKDIR3resfail am_MKDIR3resfail; 766*31bdb48aSchristos 767*31bdb48aSchristos struct am_MKDIR3res { 768*31bdb48aSchristos am_nfsstat3 status; 769*31bdb48aSchristos union { 770*31bdb48aSchristos am_MKDIR3resok ok; 771*31bdb48aSchristos am_MKDIR3resfail fail; 772*31bdb48aSchristos } res_u; 773*31bdb48aSchristos }; 774*31bdb48aSchristos typedef struct am_MKDIR3res am_MKDIR3res; 775*31bdb48aSchristos 776*31bdb48aSchristos struct am_RMDIR3args { 777*31bdb48aSchristos am_diropargs3 object; 778*31bdb48aSchristos }; 779*31bdb48aSchristos typedef struct am_RMDIR3args am_RMDIR3args; 780*31bdb48aSchristos 781*31bdb48aSchristos struct am_RMDIR3resok { 782*31bdb48aSchristos am_wcc_data dir_wcc; 783*31bdb48aSchristos }; 784*31bdb48aSchristos typedef struct am_RMDIR3resok am_RMDIR3resok; 785*31bdb48aSchristos 786*31bdb48aSchristos struct am_RMDIR3resfail { 787*31bdb48aSchristos am_wcc_data dir_wcc; 788*31bdb48aSchristos }; 789*31bdb48aSchristos typedef struct am_RMDIR3resfail am_RMDIR3resfail; 790*31bdb48aSchristos 791*31bdb48aSchristos struct am_RMDIR3res { 792*31bdb48aSchristos am_nfsstat3 status; 793*31bdb48aSchristos union { 794*31bdb48aSchristos am_RMDIR3resok ok; 795*31bdb48aSchristos am_RMDIR3resfail fail; 796*31bdb48aSchristos } res_u; 797*31bdb48aSchristos }; 798*31bdb48aSchristos typedef struct am_RMDIR3res am_RMDIR3res; 799*31bdb48aSchristos 800*31bdb48aSchristos struct am_RENAME3args { 801*31bdb48aSchristos am_diropargs3 from; 802*31bdb48aSchristos am_diropargs3 to; 803*31bdb48aSchristos }; 804*31bdb48aSchristos typedef struct am_RENAME3args am_RENAME3args; 805*31bdb48aSchristos 806*31bdb48aSchristos struct am_RENAME3resok { 807*31bdb48aSchristos am_wcc_data fromdir_wcc; 808*31bdb48aSchristos am_wcc_data todir_wcc; 809*31bdb48aSchristos }; 810*31bdb48aSchristos typedef struct am_RENAME3resok am_RENAME3resok; 811*31bdb48aSchristos 812*31bdb48aSchristos struct am_RENAME3resfail { 813*31bdb48aSchristos am_wcc_data fromdir_wcc; 814*31bdb48aSchristos am_wcc_data todir_wcc; 815*31bdb48aSchristos }; 816*31bdb48aSchristos typedef struct am_RENAME3resfail am_RENAME3resfail; 817*31bdb48aSchristos 818*31bdb48aSchristos struct am_RENAME3res { 819*31bdb48aSchristos am_nfsstat3 status; 820*31bdb48aSchristos union { 821*31bdb48aSchristos am_RENAME3resok ok; 822*31bdb48aSchristos am_RENAME3resfail fail; 823*31bdb48aSchristos } res_u; 824*31bdb48aSchristos }; 825*31bdb48aSchristos typedef struct am_RENAME3res am_RENAME3res; 826*31bdb48aSchristos 827*31bdb48aSchristos struct am_READDIRPLUS3args { 828*31bdb48aSchristos am_nfs_fh3 dir; 829*31bdb48aSchristos am_cookie3 cookie; 830*31bdb48aSchristos am_cookieverf3 cookieverf; 831*31bdb48aSchristos am_count3 dircount; 832*31bdb48aSchristos am_count3 maxcount; 833*31bdb48aSchristos }; 834*31bdb48aSchristos typedef struct am_READDIRPLUS3args am_READDIRPLUS3args; 835*31bdb48aSchristos 836*31bdb48aSchristos struct am_entryplus3 { 837*31bdb48aSchristos am_fileid3 fileid; 838*31bdb48aSchristos am_filename3 name; 839*31bdb48aSchristos am_cookie3 cookie; 840*31bdb48aSchristos am_post_op_attr name_attributes; 841*31bdb48aSchristos am_post_op_fh3 name_handle; 842*31bdb48aSchristos struct am_entryplus3 *nextentry; 843*31bdb48aSchristos }; 844*31bdb48aSchristos typedef struct am_entryplus3 am_entryplus3; 845*31bdb48aSchristos 846*31bdb48aSchristos struct am_dirlistplus3 { 847*31bdb48aSchristos am_entryplus3 *entries; 848*31bdb48aSchristos bool_t eof; 849*31bdb48aSchristos }; 850*31bdb48aSchristos typedef struct am_dirlistplus3 am_dirlistplus3; 851*31bdb48aSchristos 852*31bdb48aSchristos struct am_READDIRPLUS3resok { 853*31bdb48aSchristos am_post_op_attr dir_attributes; 854*31bdb48aSchristos am_cookieverf3 cookieverf; 855*31bdb48aSchristos am_dirlistplus3 reply; 856*31bdb48aSchristos }; 857*31bdb48aSchristos typedef struct am_READDIRPLUS3resok am_READDIRPLUS3resok; 858*31bdb48aSchristos 859*31bdb48aSchristos struct am_READDIRPLUS3resfail { 860*31bdb48aSchristos am_post_op_attr dir_attributes; 861*31bdb48aSchristos }; 862*31bdb48aSchristos typedef struct am_READDIRPLUS3resfail am_READDIRPLUS3resfail; 863*31bdb48aSchristos 864*31bdb48aSchristos struct am_READDIRPLUS3res { 865*31bdb48aSchristos am_nfsstat3 status; 866*31bdb48aSchristos union { 867*31bdb48aSchristos am_READDIRPLUS3resok ok; 868*31bdb48aSchristos am_READDIRPLUS3resfail fail; 869*31bdb48aSchristos } res_u; 870*31bdb48aSchristos }; 871*31bdb48aSchristos typedef struct am_READDIRPLUS3res am_READDIRPLUS3res; 872*31bdb48aSchristos 873*31bdb48aSchristos struct am_READDIR3args { 874*31bdb48aSchristos am_nfs_fh3 dir; 875*31bdb48aSchristos am_cookie3 cookie; 876*31bdb48aSchristos am_cookieverf3 cookieverf; 877*31bdb48aSchristos am_count3 count; 878*31bdb48aSchristos }; 879*31bdb48aSchristos typedef struct am_READDIR3args am_READDIR3args; 880*31bdb48aSchristos 881*31bdb48aSchristos struct am_entry3 { 882*31bdb48aSchristos am_fileid3 fileid; 883*31bdb48aSchristos am_filename3 name; 884*31bdb48aSchristos am_cookie3 cookie; 885*31bdb48aSchristos struct am_entry3 *nextentry; 886*31bdb48aSchristos }; 887*31bdb48aSchristos typedef struct am_entry3 am_entry3; 888*31bdb48aSchristos 889*31bdb48aSchristos struct am_dirlist3 { 890*31bdb48aSchristos am_entry3 *entries; 891*31bdb48aSchristos bool_t eof; 892*31bdb48aSchristos }; 893*31bdb48aSchristos typedef struct am_dirlist3 am_dirlist3; 894*31bdb48aSchristos 895*31bdb48aSchristos struct am_READDIR3resok { 896*31bdb48aSchristos am_post_op_attr dir_attributes; 897*31bdb48aSchristos am_cookieverf3 cookieverf; 898*31bdb48aSchristos am_dirlist3 reply; 899*31bdb48aSchristos }; 900*31bdb48aSchristos typedef struct am_READDIR3resok am_READDIR3resok; 901*31bdb48aSchristos 902*31bdb48aSchristos struct am_READDIR3resfail { 903*31bdb48aSchristos am_post_op_attr dir_attributes; 904*31bdb48aSchristos }; 905*31bdb48aSchristos typedef struct am_READDIR3resfail am_READDIR3resfail; 906*31bdb48aSchristos 907*31bdb48aSchristos struct am_READDIR3res { 908*31bdb48aSchristos am_nfsstat3 status; 909*31bdb48aSchristos union { 910*31bdb48aSchristos am_READDIR3resok ok; 911*31bdb48aSchristos am_READDIR3resfail fail; 912*31bdb48aSchristos } res_u; 913*31bdb48aSchristos }; 914*31bdb48aSchristos typedef struct am_READDIR3res am_READDIR3res; 915*31bdb48aSchristos 916*31bdb48aSchristos struct am_LINK3args { 917*31bdb48aSchristos am_nfs_fh3 file; 918*31bdb48aSchristos am_diropargs3 link; 919*31bdb48aSchristos }; 920*31bdb48aSchristos typedef struct am_LINK3args am_LINK3args; 921*31bdb48aSchristos 922*31bdb48aSchristos struct am_LINK3resok { 923*31bdb48aSchristos am_post_op_attr file_attributes; 924*31bdb48aSchristos am_wcc_data linkdir_wcc; 925*31bdb48aSchristos }; 926*31bdb48aSchristos typedef struct am_LINK3resok am_LINK3resok; 927*31bdb48aSchristos 928*31bdb48aSchristos struct am_LINK3resfail { 929*31bdb48aSchristos am_post_op_attr file_attributes; 930*31bdb48aSchristos am_wcc_data linkdir_wcc; 931*31bdb48aSchristos }; 932*31bdb48aSchristos typedef struct am_LINK3resfail am_LINK3resfail; 933*31bdb48aSchristos 934*31bdb48aSchristos struct am_LINK3res { 935*31bdb48aSchristos am_nfsstat3 status; 936*31bdb48aSchristos union { 937*31bdb48aSchristos am_LINK3resok ok; 938*31bdb48aSchristos am_LINK3resfail fail; 939*31bdb48aSchristos } res_u; 940*31bdb48aSchristos }; 941*31bdb48aSchristos typedef struct am_LINK3res am_LINK3res; 942*31bdb48aSchristos 943*31bdb48aSchristos struct am_sattrguard3 { 944*31bdb48aSchristos bool_t check; 945*31bdb48aSchristos union { 946*31bdb48aSchristos am_nfstime3 obj_ctime; 947*31bdb48aSchristos } am_sattrguard3_u; 948*31bdb48aSchristos }; 949*31bdb48aSchristos typedef struct am_sattrguard3 am_sattrguard3; 950*31bdb48aSchristos 951*31bdb48aSchristos struct am_SETATTR3args { 952*31bdb48aSchristos am_nfs_fh3 object; 953*31bdb48aSchristos am_sattr3 new_attributes; 954*31bdb48aSchristos am_sattrguard3 guard; 955*31bdb48aSchristos }; 956*31bdb48aSchristos typedef struct am_SETATTR3args am_SETATTR3args; 957*31bdb48aSchristos 958*31bdb48aSchristos struct am_SETATTR3resok { 959*31bdb48aSchristos am_wcc_data obj_wcc; 960*31bdb48aSchristos }; 961*31bdb48aSchristos typedef struct am_SETATTR3resok am_SETATTR3resok; 962*31bdb48aSchristos 963*31bdb48aSchristos struct am_SETATTR3resfail { 964*31bdb48aSchristos am_wcc_data obj_wcc; 965*31bdb48aSchristos }; 966*31bdb48aSchristos typedef struct am_SETATTR3resfail am_SETATTR3resfail; 967*31bdb48aSchristos 968*31bdb48aSchristos struct am_SETATTR3res { 969*31bdb48aSchristos am_nfsstat3 status; 970*31bdb48aSchristos union { 971*31bdb48aSchristos am_SETATTR3resok ok; 972*31bdb48aSchristos am_SETATTR3resfail fail; 973*31bdb48aSchristos } res_u; 974*31bdb48aSchristos }; 975*31bdb48aSchristos typedef struct am_SETATTR3res am_SETATTR3res; 976a53f50b9Schristos #endif /* HAVE_FS_NFS3 */ 977a53f50b9Schristos 978a53f50b9Schristos /* 979a53f50b9Schristos * Multi-protocol NFS file handle 980a53f50b9Schristos */ 981a53f50b9Schristos union am_nfs_handle { 982a53f50b9Schristos /* placeholder for V4 file handle */ 983a53f50b9Schristos #ifdef HAVE_FS_NFS3 984a53f50b9Schristos am_nfs_fh3 v3; /* NFS version 3 handle */ 985a53f50b9Schristos #endif /* HAVE_FS_NFS3 */ 986a53f50b9Schristos am_nfs_fh v2; /* NFS version 2 handle */ 987a53f50b9Schristos }; 988a53f50b9Schristos typedef union am_nfs_handle am_nfs_handle_t; 989a53f50b9Schristos 990a53f50b9Schristos 991a53f50b9Schristos /* 992a53f50b9Schristos * Definitions of all possible xdr functions that are otherwise 993a53f50b9Schristos * not defined elsewhere. 994a53f50b9Schristos */ 995a53f50b9Schristos 996a53f50b9Schristos #ifndef _AM_XDR_FUNC_H 997a53f50b9Schristos #define _AM_XDR_FUNC_H 998a53f50b9Schristos 999a53f50b9Schristos #ifndef HAVE_XDR_ATTRSTAT 1000a53f50b9Schristos bool_t xdr_attrstat(XDR *xdrs, nfsattrstat *objp); 1001a53f50b9Schristos #endif /* not HAVE_XDR_ATTRSTAT */ 1002a53f50b9Schristos #ifndef HAVE_XDR_CREATEARGS 1003a53f50b9Schristos bool_t xdr_createargs(XDR *xdrs, nfscreateargs *objp); 1004a53f50b9Schristos #endif /* not HAVE_XDR_CREATEARGS */ 1005a53f50b9Schristos #ifndef HAVE_XDR_DIRLIST 1006a53f50b9Schristos bool_t xdr_dirlist(XDR *xdrs, nfsdirlist *objp); 1007a53f50b9Schristos #endif /* not HAVE_XDR_DIRLIST */ 1008a53f50b9Schristos #ifndef HAVE_XDR_DIROPARGS 1009a53f50b9Schristos bool_t xdr_diropargs(XDR *xdrs, nfsdiropargs *objp); 1010a53f50b9Schristos #endif /* not HAVE_XDR_DIROPARGS */ 1011a53f50b9Schristos #ifndef HAVE_XDR_DIROPOKRES 1012a53f50b9Schristos bool_t xdr_diropokres(XDR *xdrs, nfsdiropokres *objp); 1013a53f50b9Schristos #endif /* not HAVE_XDR_DIROPOKRES */ 1014a53f50b9Schristos #ifndef HAVE_XDR_DIROPRES 1015a53f50b9Schristos bool_t xdr_diropres(XDR *xdrs, nfsdiropres *objp); 1016a53f50b9Schristos #endif /* not HAVE_XDR_DIROPRES */ 1017a53f50b9Schristos #ifndef HAVE_XDR_DIRPATH 1018a53f50b9Schristos bool_t xdr_dirpath(XDR *xdrs, dirpath *objp); 1019a53f50b9Schristos #endif /* not HAVE_XDR_DIRPATH */ 1020a53f50b9Schristos #ifndef HAVE_XDR_ENTRY 1021a53f50b9Schristos bool_t xdr_entry(XDR *xdrs, nfsentry *objp); 1022a53f50b9Schristos #endif /* not HAVE_XDR_ENTRY */ 1023a53f50b9Schristos #ifndef HAVE_XDR_EXPORTNODE 1024a53f50b9Schristos bool_t xdr_exportnode(XDR *xdrs, exportnode *objp); 1025a53f50b9Schristos #endif /* not HAVE_XDR_EXPORTNODE */ 1026a53f50b9Schristos #ifndef HAVE_XDR_EXPORTS 1027a53f50b9Schristos bool_t xdr_exports(XDR *xdrs, exports *objp); 1028a53f50b9Schristos #endif /* not HAVE_XDR_EXPORTS */ 1029a53f50b9Schristos #ifndef HAVE_XDR_FATTR 1030a53f50b9Schristos bool_t xdr_fattr(XDR *xdrs, nfsfattr *objp); 1031a53f50b9Schristos #endif /* not HAVE_XDR_FATTR */ 1032a53f50b9Schristos #ifndef HAVE_XDR_FHANDLE 1033a53f50b9Schristos bool_t xdr_fhandle(XDR *xdrs, fhandle objp); 1034a53f50b9Schristos #endif /* not HAVE_XDR_FHANDLE */ 1035a53f50b9Schristos #ifndef HAVE_XDR_FHSTATUS 1036a53f50b9Schristos bool_t xdr_fhstatus(XDR *xdrs, fhstatus *objp); 1037a53f50b9Schristos #endif /* not HAVE_XDR_FHSTATUS */ 1038a53f50b9Schristos #ifndef HAVE_XDR_FILENAME 1039a53f50b9Schristos bool_t xdr_filename(XDR *xdrs, filename *objp); 1040a53f50b9Schristos #endif /* not HAVE_XDR_FILENAME */ 1041a53f50b9Schristos #ifndef HAVE_XDR_FTYPE 1042a53f50b9Schristos bool_t xdr_ftype(XDR *xdrs, nfsftype *objp); 1043a53f50b9Schristos #endif /* not HAVE_XDR_FTYPE */ 1044a53f50b9Schristos #ifndef HAVE_XDR_GROUPNODE 1045a53f50b9Schristos bool_t xdr_groupnode(XDR *xdrs, groupnode *objp); 1046a53f50b9Schristos #endif /* not HAVE_XDR_GROUPNODE */ 1047a53f50b9Schristos #ifndef HAVE_XDR_GROUPS 1048a53f50b9Schristos bool_t xdr_groups(XDR *xdrs, groups *objp); 1049a53f50b9Schristos #endif /* not HAVE_XDR_GROUPS */ 1050a53f50b9Schristos #ifndef HAVE_XDR_LINKARGS 1051a53f50b9Schristos bool_t xdr_linkargs(XDR *xdrs, nfslinkargs *objp); 1052a53f50b9Schristos #endif /* not HAVE_XDR_LINKARGS */ 1053a53f50b9Schristos #ifndef HAVE_XDR_MOUNTBODY 1054a53f50b9Schristos bool_t xdr_mountbody(XDR *xdrs, mountbody *objp); 1055a53f50b9Schristos #endif /* not HAVE_XDR_MOUNTBODY */ 1056a53f50b9Schristos #ifndef HAVE_XDR_MOUNTLIST 1057a53f50b9Schristos bool_t xdr_mountlist(XDR *xdrs, mountlist *objp); 1058a53f50b9Schristos #endif /* not HAVE_XDR_MOUNTLIST */ 1059a53f50b9Schristos #ifndef HAVE_XDR_NAME 1060a53f50b9Schristos bool_t xdr_name(XDR *xdrs, name *objp); 1061a53f50b9Schristos #endif /* not HAVE_XDR_NAME */ 1062a53f50b9Schristos #ifndef HAVE_XDR_NFS_FH 1063a53f50b9Schristos bool_t xdr_nfs_fh(XDR *xdrs, am_nfs_fh *objp); 1064a53f50b9Schristos #endif /* not HAVE_XDR_NFS_FH */ 1065a53f50b9Schristos #ifndef HAVE_XDR_NFSCOOKIE 1066a53f50b9Schristos bool_t xdr_nfscookie(XDR *xdrs, nfscookie objp); 1067a53f50b9Schristos #endif /* not HAVE_XDR_NFSCOOKIE */ 1068a53f50b9Schristos #ifndef HAVE_XDR_NFSPATH 1069a53f50b9Schristos bool_t xdr_nfspath(XDR *xdrs, nfspath *objp); 1070a53f50b9Schristos #endif /* not HAVE_XDR_NFSPATH */ 1071a53f50b9Schristos #ifndef HAVE_XDR_NFSSTAT 1072a53f50b9Schristos bool_t xdr_nfsstat(XDR *xdrs, nfsstat *objp); 1073a53f50b9Schristos #endif /* not HAVE_XDR_NFSSTAT */ 1074a53f50b9Schristos #ifndef HAVE_XDR_NFSTIME 1075a53f50b9Schristos bool_t xdr_nfstime(XDR *xdrs, nfstime *objp); 1076a53f50b9Schristos #endif /* not HAVE_XDR_NFSTIME */ 1077a53f50b9Schristos #ifndef HAVE_XDR_POINTER 1078a53f50b9Schristos bool_t xdr_pointer(register XDR *xdrs, char **objpp, u_int obj_size, XDRPROC_T_TYPE xdr_obj); 1079a53f50b9Schristos #endif /* not HAVE_XDR_POINTER */ 1080a53f50b9Schristos #ifndef HAVE_XDR_READARGS 1081a53f50b9Schristos bool_t xdr_readargs(XDR *xdrs, nfsreadargs *objp); 1082a53f50b9Schristos #endif /* not HAVE_XDR_READARGS */ 1083a53f50b9Schristos #ifndef HAVE_XDR_READDIRARGS 1084a53f50b9Schristos bool_t xdr_readdirargs(XDR *xdrs, nfsreaddirargs *objp); 1085a53f50b9Schristos #endif /* not HAVE_XDR_READDIRARGS */ 1086a53f50b9Schristos #ifndef HAVE_XDR_READDIRRES 1087a53f50b9Schristos bool_t xdr_readdirres(XDR *xdrs, nfsreaddirres *objp); 1088a53f50b9Schristos #endif /* not HAVE_XDR_READDIRRES */ 1089a53f50b9Schristos #ifndef HAVE_XDR_READLINKRES 1090a53f50b9Schristos bool_t xdr_readlinkres(XDR *xdrs, nfsreadlinkres *objp); 1091a53f50b9Schristos #endif /* not HAVE_XDR_READLINKRES */ 1092a53f50b9Schristos #ifndef HAVE_XDR_READOKRES 1093a53f50b9Schristos bool_t xdr_readokres(XDR *xdrs, nfsreadokres *objp); 1094a53f50b9Schristos #endif /* not HAVE_XDR_READOKRES */ 1095a53f50b9Schristos #ifndef HAVE_XDR_READRES 1096a53f50b9Schristos bool_t xdr_readres(XDR *xdrs, nfsreadres *objp); 1097a53f50b9Schristos #endif /* not HAVE_XDR_READRES */ 1098a53f50b9Schristos #ifndef HAVE_XDR_RENAMEARGS 1099a53f50b9Schristos bool_t xdr_renameargs(XDR *xdrs, nfsrenameargs *objp); 1100a53f50b9Schristos #endif /* not HAVE_XDR_RENAMEARGS */ 1101a53f50b9Schristos #ifndef HAVE_XDR_SATTR 1102a53f50b9Schristos bool_t xdr_sattr(XDR *xdrs, nfssattr *objp); 1103a53f50b9Schristos #endif /* not HAVE_XDR_SATTR */ 1104a53f50b9Schristos #ifndef HAVE_XDR_SATTRARGS 1105a53f50b9Schristos bool_t xdr_sattrargs(XDR *xdrs, nfssattrargs *objp); 1106a53f50b9Schristos #endif /* not HAVE_XDR_SATTRARGS */ 1107a53f50b9Schristos #ifndef HAVE_XDR_STATFSOKRES 1108a53f50b9Schristos bool_t xdr_statfsokres(XDR *xdrs, nfsstatfsokres *objp); 1109a53f50b9Schristos #endif /* not HAVE_XDR_STATFSOKRES */ 1110a53f50b9Schristos #ifndef HAVE_XDR_STATFSRES 1111a53f50b9Schristos bool_t xdr_statfsres(XDR *xdrs, nfsstatfsres *objp); 1112a53f50b9Schristos #endif /* not HAVE_XDR_STATFSRES */ 1113a53f50b9Schristos #ifndef HAVE_XDR_SYMLINKARGS 1114a53f50b9Schristos bool_t xdr_symlinkargs(XDR *xdrs, nfssymlinkargs *objp); 1115a53f50b9Schristos #endif /* not HAVE_XDR_SYMLINKARGS */ 1116a53f50b9Schristos #ifndef HAVE_XDR_WRITEARGS 1117a53f50b9Schristos bool_t xdr_writeargs(XDR *xdrs, nfswriteargs *objp); 1118a53f50b9Schristos #endif /* not HAVE_XDR_WRITEARGS */ 1119a53f50b9Schristos 1120a53f50b9Schristos /* 1121a53f50b9Schristos * NFS3 XDR FUNCTIONS: 1122a53f50b9Schristos */ 1123a53f50b9Schristos #ifdef HAVE_FS_NFS3 1124*31bdb48aSchristos #define AM_NFS3_NULL 0 1125*31bdb48aSchristos void * am_nfs3_null_3(void *, CLIENT *); 1126*31bdb48aSchristos void * am_nfs3_null_3_svc(void *, struct svc_req *); 1127*31bdb48aSchristos #define AM_NFS3_GETATTR 1 1128*31bdb48aSchristos am_GETATTR3res * am_nfs3_getattr_3(am_GETATTR3args *, CLIENT *); 1129*31bdb48aSchristos am_GETATTR3res * am_nfs3_getattr_3_svc(am_GETATTR3args *, struct svc_req *); 1130*31bdb48aSchristos #define AM_NFS3_SETATTR 2 1131*31bdb48aSchristos am_SETATTR3res * am_nfs3_setattr_3(am_SETATTR3args *, CLIENT *); 1132*31bdb48aSchristos am_SETATTR3res * am_nfs3_setattr_3_svc(am_SETATTR3args *, struct svc_req *); 1133*31bdb48aSchristos #define AM_NFS3_LOOKUP 3 1134*31bdb48aSchristos am_LOOKUP3res * am_nfs3_lookup_3(am_LOOKUP3args *, CLIENT *); 1135*31bdb48aSchristos am_LOOKUP3res * am_nfs3_lookup_3_svc(am_LOOKUP3args *, struct svc_req *); 1136*31bdb48aSchristos #define AM_NFS3_ACCESS 4 1137*31bdb48aSchristos am_ACCESS3res * am_nfs3_access_3(am_ACCESS3args *, CLIENT *); 1138*31bdb48aSchristos am_ACCESS3res * am_nfs3_access_3_svc(am_ACCESS3args *, struct svc_req *); 1139*31bdb48aSchristos #define AM_NFS3_READLINK 5 1140*31bdb48aSchristos am_READLINK3res * am_nfs3_readlink_3(am_READLINK3args *, CLIENT *); 1141*31bdb48aSchristos am_READLINK3res * am_nfs3_readlink_3_svc(am_READLINK3args *, struct svc_req *); 1142*31bdb48aSchristos #define AM_NFS3_READ 6 1143*31bdb48aSchristos am_READ3res * am_nfs3_read_3(am_READ3args *, CLIENT *); 1144*31bdb48aSchristos am_READ3res * am_nfs3_read_3_svc(am_READ3args *, struct svc_req *); 1145*31bdb48aSchristos #define AM_NFS3_WRITE 7 1146*31bdb48aSchristos am_WRITE3res * am_nfs3_write_3(am_WRITE3args *, CLIENT *); 1147*31bdb48aSchristos am_WRITE3res * am_nfs3_write_3_svc(am_WRITE3args *, struct svc_req *); 1148*31bdb48aSchristos #define AM_NFS3_CREATE 8 1149*31bdb48aSchristos am_CREATE3res * am_nfs3_create_3(am_CREATE3args *, CLIENT *); 1150*31bdb48aSchristos am_CREATE3res * am_nfs3_create_3_svc(am_CREATE3args *, struct svc_req *); 1151*31bdb48aSchristos #define AM_NFS3_MKDIR 9 1152*31bdb48aSchristos am_MKDIR3res * am_nfs3_mkdir_3(am_MKDIR3args *, CLIENT *); 1153*31bdb48aSchristos am_MKDIR3res * am_nfs3_mkdir_3_svc(am_MKDIR3args *, struct svc_req *); 1154*31bdb48aSchristos #define AM_NFS3_SYMLINK 10 1155*31bdb48aSchristos am_SYMLINK3res * am_nfs3_symlink_3(am_SYMLINK3args *, CLIENT *); 1156*31bdb48aSchristos am_SYMLINK3res * am_nfs3_symlink_3_svc(am_SYMLINK3args *, struct svc_req *); 1157*31bdb48aSchristos #define AM_NFS3_MKNOD 11 1158*31bdb48aSchristos am_MKNOD3res * am_nfs3_mknod_3(am_MKNOD3args *, CLIENT *); 1159*31bdb48aSchristos am_MKNOD3res * am_nfs3_mknod_3_svc(am_MKNOD3args *, struct svc_req *); 1160*31bdb48aSchristos #define AM_NFS3_REMOVE 12 1161*31bdb48aSchristos am_REMOVE3res * am_nfs3_remove_3(am_REMOVE3args *, CLIENT *); 1162*31bdb48aSchristos am_REMOVE3res * am_nfs3_remove_3_svc(am_REMOVE3args *, struct svc_req *); 1163*31bdb48aSchristos #define AM_NFS3_RMDIR 13 1164*31bdb48aSchristos am_RMDIR3res * am_nfs3_rmdir_3(am_RMDIR3args *, CLIENT *); 1165*31bdb48aSchristos am_RMDIR3res * am_nfs3_rmdir_3_svc(am_RMDIR3args *, struct svc_req *); 1166*31bdb48aSchristos #define AM_NFS3_RENAME 14 1167*31bdb48aSchristos am_RENAME3res * am_nfs3_rename_3(am_RENAME3args *, CLIENT *); 1168*31bdb48aSchristos am_RENAME3res * am_nfs3_rename_3_svc(am_RENAME3args *, struct svc_req *); 1169*31bdb48aSchristos #define AM_NFS3_LINK 15 1170*31bdb48aSchristos am_LINK3res * am_nfs3_link_3(am_LINK3args *, CLIENT *); 1171*31bdb48aSchristos am_LINK3res * am_nfs3_link_3_svc(am_LINK3args *, struct svc_req *); 1172*31bdb48aSchristos #define AM_NFS3_READDIR 16 1173*31bdb48aSchristos am_READDIR3res * am_nfs3_readdir_3(am_READDIR3args *, CLIENT *); 1174*31bdb48aSchristos am_READDIR3res * am_nfs3_readdir_3_svc(am_READDIR3args *, struct svc_req *); 1175*31bdb48aSchristos #define AM_NFS3_READDIRPLUS 17 1176*31bdb48aSchristos am_READDIRPLUS3res * am_nfs3_readdirplus_3(am_READDIRPLUS3args *, CLIENT *); 1177*31bdb48aSchristos am_READDIRPLUS3res * am_nfs3_readdirplus_3_svc(am_READDIRPLUS3args *, struct svc_req *); 1178*31bdb48aSchristos #define AM_NFS3_FSSTAT 18 1179*31bdb48aSchristos am_FSSTAT3res * am_nfs3_fsstat_3(am_FSSTAT3args *, CLIENT *); 1180*31bdb48aSchristos am_FSSTAT3res * am_nfs3_fsstat_3_svc(am_FSSTAT3args *, struct svc_req *); 1181*31bdb48aSchristos #define AM_NFS3_FSINFO 19 1182*31bdb48aSchristos am_FSINFO3res * am_nfs3_fsinfo_3(am_FSINFO3args *, CLIENT *); 1183*31bdb48aSchristos am_FSINFO3res * am_nfs3_fsinfo_3_svc(am_FSINFO3args *, struct svc_req *); 1184*31bdb48aSchristos #define AM_NFS3_PATHCONF 20 1185*31bdb48aSchristos am_PATHCONF3res * am_nfs3_pathconf_3(am_PATHCONF3args *, CLIENT *); 1186*31bdb48aSchristos am_PATHCONF3res * am_nfs3_pathconf_3_svc(am_PATHCONF3args *, struct svc_req *); 1187*31bdb48aSchristos #define AM_NFS3_COMMIT 21 1188*31bdb48aSchristos am_COMMIT3res * am_nfs3_commit_3(am_COMMIT3args *, CLIENT *); 1189*31bdb48aSchristos am_COMMIT3res * am_nfs3_commit_3_svc(am_COMMIT3args *, struct svc_req *); 1190*31bdb48aSchristos int nfs_program_3_freeresult (SVCXPRT *, xdrproc_t, caddr_t); 1191*31bdb48aSchristos 1192a53f50b9Schristos bool_t xdr_am_fhandle3(XDR *xdrs, am_fhandle3 *objp); 1193a53f50b9Schristos bool_t xdr_am_mountstat3(XDR *xdrs, am_mountstat3 *objp); 1194a53f50b9Schristos bool_t xdr_am_mountres3_ok(XDR *xdrs, am_mountres3_ok *objp); 1195a53f50b9Schristos bool_t xdr_am_mountres3(XDR *xdrs, am_mountres3 *objp); 1196a53f50b9Schristos bool_t xdr_am_diropargs3(XDR *xdrs, am_diropargs3 *objp); 1197a53f50b9Schristos bool_t xdr_am_filename3(XDR *xdrs, am_filename3 *objp); 1198a53f50b9Schristos bool_t xdr_am_LOOKUP3args(XDR *xdrs, am_LOOKUP3args *objp); 1199a53f50b9Schristos bool_t xdr_am_LOOKUP3res(XDR *xdrs, am_LOOKUP3res *objp); 1200a53f50b9Schristos bool_t xdr_am_LOOKUP3resfail(XDR *xdrs, am_LOOKUP3resfail *objp); 1201a53f50b9Schristos bool_t xdr_am_LOOKUP3resok(XDR *xdrs, am_LOOKUP3resok *objp); 1202a53f50b9Schristos bool_t xdr_am_nfsstat3(XDR *xdrs, am_nfsstat3 *objp); 1203a53f50b9Schristos bool_t xdr_am_nfs_fh3(XDR *xdrs, am_nfs_fh3 *objp); 1204*31bdb48aSchristos bool_t xdr_am_cookieverf3 (XDR *, am_cookieverf3); 1205*31bdb48aSchristos bool_t xdr_uint64 (XDR *, uint64*); 1206*31bdb48aSchristos bool_t xdr_am_cookie3 (XDR *, am_cookie3*); 1207*31bdb48aSchristos bool_t xdr_am_nfs_fh3 (XDR *, am_nfs_fh3*); 1208*31bdb48aSchristos bool_t xdr_am_nfsstat3 (XDR *, am_nfsstat3*); 1209*31bdb48aSchristos bool_t xdr_am_filename3 (XDR *, am_filename3*); 1210*31bdb48aSchristos bool_t xdr_am_diropargs3 (XDR *, am_diropargs3*); 1211*31bdb48aSchristos bool_t xdr_am_ftype3 (XDR *, am_ftype3*); 1212*31bdb48aSchristos bool_t xdr_am_mode3 (XDR *, am_mode3*); 1213*31bdb48aSchristos bool_t xdr_am_uid3 (XDR *, am_uid3*); 1214*31bdb48aSchristos bool_t xdr_am_gid3 (XDR *, am_gid3*); 1215*31bdb48aSchristos bool_t xdr_am_size3 (XDR *, am_size3*); 1216*31bdb48aSchristos bool_t xdr_am_fileid3 (XDR *, am_fileid3*); 1217*31bdb48aSchristos bool_t xdr_am_specdata3 (XDR *, am_specdata3*); 1218*31bdb48aSchristos bool_t xdr_am_nfstime3 (XDR *, am_nfstime3*); 1219*31bdb48aSchristos bool_t xdr_am_fattr3 (XDR *, am_fattr3*); 1220*31bdb48aSchristos bool_t xdr_am_post_op_attr (XDR *, am_post_op_attr*); 1221*31bdb48aSchristos bool_t xdr_am_stable_how (XDR *, am_stable_how*); 1222*31bdb48aSchristos bool_t xdr_am_offset3 (XDR *, am_offset3*); 1223*31bdb48aSchristos bool_t xdr_am_count3 (XDR *, am_count3*); 1224*31bdb48aSchristos bool_t xdr_am_wcc_attr (XDR *, am_wcc_attr*); 1225*31bdb48aSchristos bool_t xdr_am_pre_op_attr (XDR *, am_pre_op_attr*); 1226*31bdb48aSchristos bool_t xdr_am_wcc_data (XDR *, am_wcc_data*); 1227*31bdb48aSchristos bool_t xdr_am_WRITE3args (XDR *, am_WRITE3args*); 1228*31bdb48aSchristos bool_t xdr_am_writeverf3 (XDR *, am_writeverf3); 1229*31bdb48aSchristos bool_t xdr_am_WRITE3resok (XDR *, am_WRITE3resok*); 1230*31bdb48aSchristos bool_t xdr_am_WRITE3resfail (XDR *, am_WRITE3resfail*); 1231*31bdb48aSchristos bool_t xdr_am_WRITE3res (XDR *, am_WRITE3res*); 1232*31bdb48aSchristos bool_t xdr_am_LOOKUP3args (XDR *, am_LOOKUP3args*); 1233*31bdb48aSchristos bool_t xdr_am_LOOKUP3resok (XDR *, am_LOOKUP3resok*); 1234*31bdb48aSchristos bool_t xdr_am_LOOKUP3resfail (XDR *, am_LOOKUP3resfail*); 1235*31bdb48aSchristos bool_t xdr_am_LOOKUP3res (XDR *, am_LOOKUP3res*); 1236*31bdb48aSchristos bool_t xdr_am_COMMIT3args (XDR *, am_COMMIT3args*); 1237*31bdb48aSchristos bool_t xdr_am_COMMIT3resok (XDR *, am_COMMIT3resok*); 1238*31bdb48aSchristos bool_t xdr_am_COMMIT3resfail (XDR *, am_COMMIT3resfail*); 1239*31bdb48aSchristos bool_t xdr_am_COMMIT3res (XDR *, am_COMMIT3res*); 1240*31bdb48aSchristos bool_t xdr_am_ACCESS3args (XDR *, am_ACCESS3args*); 1241*31bdb48aSchristos bool_t xdr_am_ACCESS3resok (XDR *, am_ACCESS3resok*); 1242*31bdb48aSchristos bool_t xdr_am_ACCESS3resfail (XDR *, am_ACCESS3resfail*); 1243*31bdb48aSchristos bool_t xdr_am_ACCESS3res (XDR *, am_ACCESS3res*); 1244*31bdb48aSchristos bool_t xdr_am_GETATTR3args (XDR *, am_GETATTR3args*); 1245*31bdb48aSchristos bool_t xdr_am_GETATTR3resok (XDR *, am_GETATTR3resok*); 1246*31bdb48aSchristos bool_t xdr_am_GETATTR3res (XDR *, am_GETATTR3res*); 1247*31bdb48aSchristos bool_t xdr_am_time_how (XDR *, am_time_how*); 1248*31bdb48aSchristos bool_t xdr_am_set_mode3 (XDR *, am_set_mode3*); 1249*31bdb48aSchristos bool_t xdr_am_set_uid3 (XDR *, am_set_uid3*); 1250*31bdb48aSchristos bool_t xdr_am_set_gid3 (XDR *, am_set_gid3*); 1251*31bdb48aSchristos bool_t xdr_am_set_size3 (XDR *, am_set_size3*); 1252*31bdb48aSchristos bool_t xdr_am_set_atime (XDR *, am_set_atime*); 1253*31bdb48aSchristos bool_t xdr_am_set_mtime (XDR *, am_set_mtime*); 1254*31bdb48aSchristos bool_t xdr_am_sattr3 (XDR *, am_sattr3*); 1255*31bdb48aSchristos bool_t xdr_am_createmode3 (XDR *, am_createmode3*); 1256*31bdb48aSchristos bool_t xdr_am_createverf3 (XDR *, am_createverf3); 1257*31bdb48aSchristos bool_t xdr_am_createhow3 (XDR *, am_createhow3*); 1258*31bdb48aSchristos bool_t xdr_am_CREATE3args (XDR *, am_CREATE3args*); 1259*31bdb48aSchristos bool_t xdr_am_post_op_fh3 (XDR *, am_post_op_fh3*); 1260*31bdb48aSchristos bool_t xdr_am_CREATE3resok (XDR *, am_CREATE3resok*); 1261*31bdb48aSchristos bool_t xdr_am_CREATE3resfail (XDR *, am_CREATE3resfail*); 1262*31bdb48aSchristos bool_t xdr_am_CREATE3res (XDR *, am_CREATE3res*); 1263*31bdb48aSchristos bool_t xdr_am_REMOVE3args (XDR *, am_REMOVE3args*); 1264*31bdb48aSchristos bool_t xdr_am_REMOVE3resok (XDR *, am_REMOVE3resok*); 1265*31bdb48aSchristos bool_t xdr_am_REMOVE3resfail (XDR *, am_REMOVE3resfail*); 1266*31bdb48aSchristos bool_t xdr_am_REMOVE3res (XDR *, am_REMOVE3res*); 1267*31bdb48aSchristos bool_t xdr_am_READ3args (XDR *, am_READ3args*); 1268*31bdb48aSchristos bool_t xdr_am_READ3resok (XDR *, am_READ3resok*); 1269*31bdb48aSchristos bool_t xdr_am_READ3resfail (XDR *, am_READ3resfail*); 1270*31bdb48aSchristos bool_t xdr_am_READ3res (XDR *, am_READ3res*); 1271*31bdb48aSchristos bool_t xdr_am_FSINFO3args (XDR *, am_FSINFO3args*); 1272*31bdb48aSchristos bool_t xdr_am_FSINFO3resok (XDR *, am_FSINFO3resok*); 1273*31bdb48aSchristos bool_t xdr_am_FSINFO3resfail (XDR *, am_FSINFO3resfail*); 1274*31bdb48aSchristos bool_t xdr_am_FSINFO3res (XDR *, am_FSINFO3res*); 1275*31bdb48aSchristos bool_t xdr_am_FSSTAT3args (XDR *, am_FSSTAT3args*); 1276*31bdb48aSchristos bool_t xdr_am_FSSTAT3resok (XDR *, am_FSSTAT3resok*); 1277*31bdb48aSchristos bool_t xdr_am_FSSTAT3resfail (XDR *, am_FSSTAT3resfail*); 1278*31bdb48aSchristos bool_t xdr_am_FSSTAT3res (XDR *, am_FSSTAT3res*); 1279*31bdb48aSchristos bool_t xdr_am_PATHCONF3args (XDR *, am_PATHCONF3args*); 1280*31bdb48aSchristos bool_t xdr_am_PATHCONF3resok (XDR *, am_PATHCONF3resok*); 1281*31bdb48aSchristos bool_t xdr_am_PATHCONF3resfail (XDR *, am_PATHCONF3resfail*); 1282*31bdb48aSchristos bool_t xdr_am_PATHCONF3res (XDR *, am_PATHCONF3res*); 1283*31bdb48aSchristos bool_t xdr_am_nfspath3 (XDR *, am_nfspath3*); 1284*31bdb48aSchristos bool_t xdr_am_symlinkdata3 (XDR *, am_symlinkdata3*); 1285*31bdb48aSchristos bool_t xdr_am_SYMLINK3args (XDR *, am_SYMLINK3args*); 1286*31bdb48aSchristos bool_t xdr_am_SYMLINK3resok (XDR *, am_SYMLINK3resok*); 1287*31bdb48aSchristos bool_t xdr_am_SYMLINK3resfail (XDR *, am_SYMLINK3resfail*); 1288*31bdb48aSchristos bool_t xdr_am_SYMLINK3res (XDR *, am_SYMLINK3res*); 1289*31bdb48aSchristos bool_t xdr_am_READLINK3args (XDR *, am_READLINK3args*); 1290*31bdb48aSchristos bool_t xdr_am_READLINK3resok (XDR *, am_READLINK3resok*); 1291*31bdb48aSchristos bool_t xdr_am_READLINK3resfail (XDR *, am_READLINK3resfail*); 1292*31bdb48aSchristos bool_t xdr_am_READLINK3res (XDR *, am_READLINK3res*); 1293*31bdb48aSchristos bool_t xdr_am_devicedata3 (XDR *, am_devicedata3*); 1294*31bdb48aSchristos bool_t xdr_am_mknoddata3 (XDR *, am_mknoddata3*); 1295*31bdb48aSchristos bool_t xdr_am_MKNOD3args (XDR *, am_MKNOD3args*); 1296*31bdb48aSchristos bool_t xdr_am_MKNOD3resok (XDR *, am_MKNOD3resok*); 1297*31bdb48aSchristos bool_t xdr_am_MKNOD3resfail (XDR *, am_MKNOD3resfail*); 1298*31bdb48aSchristos bool_t xdr_am_MKNOD3res (XDR *, am_MKNOD3res*); 1299*31bdb48aSchristos bool_t xdr_am_MKDIR3args (XDR *, am_MKDIR3args*); 1300*31bdb48aSchristos bool_t xdr_am_MKDIR3resok (XDR *, am_MKDIR3resok*); 1301*31bdb48aSchristos bool_t xdr_am_MKDIR3resfail (XDR *, am_MKDIR3resfail*); 1302*31bdb48aSchristos bool_t xdr_am_MKDIR3res (XDR *, am_MKDIR3res*); 1303*31bdb48aSchristos bool_t xdr_am_RMDIR3args (XDR *, am_RMDIR3args*); 1304*31bdb48aSchristos bool_t xdr_am_RMDIR3resok (XDR *, am_RMDIR3resok*); 1305*31bdb48aSchristos bool_t xdr_am_RMDIR3resfail (XDR *, am_RMDIR3resfail*); 1306*31bdb48aSchristos bool_t xdr_am_RMDIR3res (XDR *, am_RMDIR3res*); 1307*31bdb48aSchristos bool_t xdr_am_RENAME3args (XDR *, am_RENAME3args*); 1308*31bdb48aSchristos bool_t xdr_am_RENAME3resok (XDR *, am_RENAME3resok*); 1309*31bdb48aSchristos bool_t xdr_am_RENAME3resfail (XDR *, am_RENAME3resfail*); 1310*31bdb48aSchristos bool_t xdr_am_RENAME3res (XDR *, am_RENAME3res*); 1311*31bdb48aSchristos bool_t xdr_am_READDIRPLUS3args (XDR *, am_READDIRPLUS3args*); 1312*31bdb48aSchristos bool_t xdr_am_entryplus3 (XDR *, am_entryplus3*); 1313*31bdb48aSchristos bool_t xdr_am_dirlistplus3 (XDR *, am_dirlistplus3*); 1314*31bdb48aSchristos bool_t xdr_am_READDIRPLUS3resok (XDR *, am_READDIRPLUS3resok*); 1315*31bdb48aSchristos bool_t xdr_am_READDIRPLUS3resfail (XDR *, am_READDIRPLUS3resfail*); 1316*31bdb48aSchristos bool_t xdr_am_READDIRPLUS3res (XDR *, am_READDIRPLUS3res*); 1317*31bdb48aSchristos bool_t xdr_am_READDIR3args (XDR *, am_READDIR3args*); 1318*31bdb48aSchristos bool_t xdr_am_entry3 (XDR *, am_entry3*); 1319*31bdb48aSchristos bool_t xdr_am_dirlist3 (XDR *, am_dirlist3*); 1320*31bdb48aSchristos bool_t xdr_am_READDIR3resok (XDR *, am_READDIR3resok*); 1321*31bdb48aSchristos bool_t xdr_am_READDIR3resfail (XDR *, am_READDIR3resfail*); 1322*31bdb48aSchristos bool_t xdr_am_READDIR3res (XDR *, am_READDIR3res*); 1323*31bdb48aSchristos bool_t xdr_am_LINK3args (XDR *, am_LINK3args*); 1324*31bdb48aSchristos bool_t xdr_am_LINK3resok (XDR *, am_LINK3resok*); 1325*31bdb48aSchristos bool_t xdr_am_LINK3resfail (XDR *, am_LINK3resfail*); 1326*31bdb48aSchristos bool_t xdr_am_LINK3res (XDR *, am_LINK3res*); 1327*31bdb48aSchristos bool_t xdr_am_sattrguard3 (XDR *, am_sattrguard3*); 1328*31bdb48aSchristos bool_t xdr_am_SETATTR3args (XDR *, am_SETATTR3args*); 1329*31bdb48aSchristos bool_t xdr_am_SETATTR3resok (XDR *, am_SETATTR3resok*); 1330*31bdb48aSchristos bool_t xdr_am_SETATTR3resfail (XDR *, am_SETATTR3resfail*); 1331*31bdb48aSchristos bool_t xdr_am_SETATTR3res (XDR *, am_SETATTR3res*); 1332a53f50b9Schristos #endif /* HAVE_FS_NFS3 */ 1333a53f50b9Schristos 1334a53f50b9Schristos #endif /* not _AM_XDR_FUNC_H */ 1335