Where Online Learning is simpler!
The C and C++ Include Header Files
/usr/include/rpcsvc/nfs_prot.x
$ cat -n /usr/include/rpcsvc/nfs_prot.x 1 /* @(#)nfs_prot.x 2.1 88/08/01 4.0 RPCSRC */ 2 3 /* 4 * nfs_prot.x 1.2 87/10/12 5 * Copyright (c) 2010, Oracle America, Inc. 6 * 7 * Redistribution and use in source and binary forms, with or without 8 * modification, are permitted provided that the following conditions are 9 * met: 10 * 11 * * Redistributions of source code must retain the above copyright 12 * notice, this list of conditions and the following disclaimer. 13 * * Redistributions in binary form must reproduce the above 14 * copyright notice, this list of conditions and the following 15 * disclaimer in the documentation and/or other materials 16 * provided with the distribution. 17 * * Neither the name of the "Oracle America, Inc." nor the names of its 18 * contributors may be used to endorse or promote products derived 19 * from this software without specific prior written permission. 20 * 21 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 22 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 23 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 24 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 25 * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 26 * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 27 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE 28 * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 29 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 30 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 31 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 32 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 33 */ 34 const NFS_PORT = 2049; 35 const NFS_MAXDATA = 8192; 36 const NFS_MAXPATHLEN = 1024; 37 const NFS_MAXNAMLEN = 255; 38 const NFS_FHSIZE = 32; 39 const NFS_COOKIESIZE = 4; 40 const NFS_FIFO_DEV = -1; /* size kludge for named pipes */ 41 42 /* 43 * File types 44 */ 45 const NFSMODE_FMT = 0170000; /* type of file */ 46 const NFSMODE_DIR = 0040000; /* directory */ 47 const NFSMODE_CHR = 0020000; /* character special */ 48 const NFSMODE_BLK = 0060000; /* block special */ 49 const NFSMODE_REG = 0100000; /* regular */ 50 const NFSMODE_LNK = 0120000; /* symbolic link */ 51 const NFSMODE_SOCK = 0140000; /* socket */ 52 const NFSMODE_FIFO = 0010000; /* fifo */ 53 54 /* 55 * Error status 56 */ 57 enum nfsstat { 58 NFS_OK= 0, /* no error */ 59 NFSERR_PERM=1, /* Not owner */ 60 NFSERR_NOENT=2, /* No such file or directory */ 61 NFSERR_IO=5, /* I/O error */ 62 NFSERR_NXIO=6, /* No such device or address */ 63 NFSERR_ACCES=13, /* Permission denied */ 64 NFSERR_EXIST=17, /* File exists */ 65 NFSERR_NODEV=19, /* No such device */ 66 NFSERR_NOTDIR=20, /* Not a directory*/ 67 NFSERR_ISDIR=21, /* Is a directory */ 68 NFSERR_FBIG=27, /* File too large */ 69 NFSERR_NOSPC=28, /* No space left on device */ 70 NFSERR_ROFS=30, /* Read-only file system */ 71 NFSERR_NAMETOOLONG=63, /* File name too long */ 72 NFSERR_NOTEMPTY=66, /* Directory not empty */ 73 NFSERR_DQUOT=69, /* Disc quota exceeded */ 74 NFSERR_STALE=70, /* Stale NFS file handle */ 75 NFSERR_WFLUSH=99 /* write cache flushed */ 76 }; 77 78 /* 79 * File types 80 */ 81 enum ftype { 82 NFNON = 0, /* non-file */ 83 NFREG = 1, /* regular file */ 84 NFDIR = 2, /* directory */ 85 NFBLK = 3, /* block special */ 86 NFCHR = 4, /* character special */ 87 NFLNK = 5, /* symbolic link */ 88 NFSOCK = 6, /* unix domain sockets */ 89 NFBAD = 7, /* unused */ 90 NFFIFO = 8 /* named pipe */ 91 }; 92 93 /* 94 * File access handle 95 */ 96 struct nfs_fh { 97 opaque data[NFS_FHSIZE]; 98 }; 99 100 /* 101 * Timeval 102 */ 103 struct nfstime { 104 unsigned seconds; 105 unsigned useconds; 106 }; 107 108 109 /* 110 * File attributes 111 */ 112 struct fattr { 113 ftype type; /* file type */ 114 unsigned mode; /* protection mode bits */ 115 unsigned nlink; /* # hard links */ 116 unsigned uid; /* owner user id */ 117 unsigned gid; /* owner group id */ 118 unsigned size; /* file size in bytes */ 119 unsigned blocksize; /* preferred block size */ 120 unsigned rdev; /* special device # */ 121 unsigned blocks; /* Kb of disk used by file */ 122 unsigned fsid; /* device # */ 123 unsigned fileid; /* inode # */ 124 nfstime atime; /* time of last access */ 125 nfstime mtime; /* time of last modification */ 126 nfstime ctime; /* time of last change */ 127 }; 128 129 /* 130 * File attributes which can be set 131 */ 132 struct sattr { 133 unsigned mode; /* protection mode bits */ 134 unsigned uid; /* owner user id */ 135 unsigned gid; /* owner group id */ 136 unsigned size; /* file size in bytes */ 137 nfstime atime; /* time of last access */ 138 nfstime mtime; /* time of last modification */ 139 }; 140 141 142 typedef string filename
; 143 typedef string nfspath
; 144 145 /* 146 * Reply status with file attributes 147 */ 148 union attrstat switch (nfsstat status) { 149 case NFS_OK: 150 fattr attributes; 151 default: 152 void; 153 }; 154 155 struct sattrargs { 156 nfs_fh file; 157 sattr attributes; 158 }; 159 160 /* 161 * Arguments for directory operations 162 */ 163 struct diropargs { 164 nfs_fh dir; /* directory file handle */ 165 filename name; /* name (up to NFS_MAXNAMLEN bytes) */ 166 }; 167 168 struct diropokres { 169 nfs_fh file; 170 fattr attributes; 171 }; 172 173 /* 174 * Results from directory operation 175 */ 176 union diropres switch (nfsstat status) { 177 case NFS_OK: 178 diropokres diropres; 179 default: 180 void; 181 }; 182 183 union readlinkres switch (nfsstat status) { 184 case NFS_OK: 185 nfspath data; 186 default: 187 void; 188 }; 189 190 /* 191 * Arguments to remote read 192 */ 193 struct readargs { 194 nfs_fh file; /* handle for file */ 195 unsigned offset; /* byte offset in file */ 196 unsigned count; /* immediate read count */ 197 unsigned totalcount; /* total read count (from this offset)*/ 198 }; 199 200 /* 201 * Status OK portion of remote read reply 202 */ 203 struct readokres { 204 fattr attributes; /* attributes, need for pagin*/ 205 opaque data
; 206 }; 207 208 union readres switch (nfsstat status) { 209 case NFS_OK: 210 readokres reply; 211 default: 212 void; 213 }; 214 215 /* 216 * Arguments to remote write 217 */ 218 struct writeargs { 219 nfs_fh file; /* handle for file */ 220 unsigned beginoffset; /* beginning byte offset in file */ 221 unsigned offset; /* current byte offset in file */ 222 unsigned totalcount; /* total write count (to this offset)*/ 223 opaque data
; 224 }; 225 226 struct createargs { 227 diropargs where; 228 sattr attributes; 229 }; 230 231 struct renameargs { 232 diropargs from; 233 diropargs to; 234 }; 235 236 struct linkargs { 237 nfs_fh from; 238 diropargs to; 239 }; 240 241 struct symlinkargs { 242 diropargs from; 243 nfspath to; 244 sattr attributes; 245 }; 246 247 248 typedef opaque nfscookie[NFS_COOKIESIZE]; 249 250 /* 251 * Arguments to readdir 252 */ 253 struct readdirargs { 254 nfs_fh dir; /* directory handle */ 255 nfscookie cookie; 256 unsigned count; /* number of directory bytes to read */ 257 }; 258 259 struct entry { 260 unsigned fileid; 261 filename name; 262 nfscookie cookie; 263 entry *nextentry; 264 }; 265 266 struct dirlist { 267 entry *entries; 268 bool eof; 269 }; 270 271 union readdirres switch (nfsstat status) { 272 case NFS_OK: 273 dirlist reply; 274 default: 275 void; 276 }; 277 278 struct statfsokres { 279 unsigned tsize; /* preferred transfer size in bytes */ 280 unsigned bsize; /* fundamental file system block size */ 281 unsigned blocks; /* total blocks in file system */ 282 unsigned bfree; /* free blocks in fs */ 283 unsigned bavail; /* free blocks avail to non-superuser */ 284 }; 285 286 union statfsres switch (nfsstat status) { 287 case NFS_OK: 288 statfsokres reply; 289 default: 290 void; 291 }; 292 293 /* 294 * Remote file service routines 295 */ 296 program NFS_PROGRAM { 297 version NFS_VERSION { 298 void 299 NFSPROC_NULL(void) = 0; 300 301 attrstat 302 NFSPROC_GETATTR(nfs_fh) = 1; 303 304 attrstat 305 NFSPROC_SETATTR(sattrargs) = 2; 306 307 void 308 NFSPROC_ROOT(void) = 3; 309 310 diropres 311 NFSPROC_LOOKUP(diropargs) = 4; 312 313 readlinkres 314 NFSPROC_READLINK(nfs_fh) = 5; 315 316 readres 317 NFSPROC_READ(readargs) = 6; 318 319 void 320 NFSPROC_WRITECACHE(void) = 7; 321 322 attrstat 323 NFSPROC_WRITE(writeargs) = 8; 324 325 diropres 326 NFSPROC_CREATE(createargs) = 9; 327 328 nfsstat 329 NFSPROC_REMOVE(diropargs) = 10; 330 331 nfsstat 332 NFSPROC_RENAME(renameargs) = 11; 333 334 nfsstat 335 NFSPROC_LINK(linkargs) = 12; 336 337 nfsstat 338 NFSPROC_SYMLINK(symlinkargs) = 13; 339 340 diropres 341 NFSPROC_MKDIR(createargs) = 14; 342 343 nfsstat 344 NFSPROC_RMDIR(diropargs) = 15; 345 346 readdirres 347 NFSPROC_READDIR(readdirargs) = 16; 348 349 statfsres 350 NFSPROC_STATFS(nfs_fh) = 17; 351 } = 2; 352 } = 100003;
Contact us
|
About us
|
Term of use
|
Copyright © 2000-2025 MyWebUniversity.com ™