`
`/etc/mount —o port=3049,intr localhost:/null /crypt
`
`fi
`
`7a) on some platforms (especially BSDI), you may get better CFS
`
`performance with a smaller mount blocksize:
`if [ —x /usr/local/etc/cfsd ];
`then
`
`/usr/local/etc/cfsd && \
`
`/etc/mount —o port=3049,intr,rsize=2048,wsize=2048 localhost:/null /crypt
`
`fi
`
`7b) Solaris 2.5 users will need to add "vers=2,proto=udp" to the list of
`
`mount options.
`
`8)
`
`run the commands in step 7 by hand to get it started now.
`
`you may have to
`
`do an "exportfs —a" and/or /etc/rpc.mountd first if you aren't already running
`an NFS server, but this will be done automatically at boot
`time from now on.
`
`9)
`
`if any of this fails, go back and read notes.ms.
`
`Notes:
`
`Some systems (e.g., Solaris, Irix, etc.) don't use /etc/rc as the
`
`startup file or have different options on some of the mount commands.
`
`The basic idea, however,
`
`is the same: configure your system so that
`
`when it boots it first starts mountd (with something exported to
`
`localhost),
`
`then starts cfsd, and finally mounts cfsd at the /crypt
`
`mountpoint.
`
`See README.irix for step—by—step Irix instructions (which
`
`may help with other SysV systems,
`
`too).
`
`If you already have cfs,
`
`this version may not be compatable with the
`
`encryption format used by your old copy.
`
`If you have encrypted directories
`
`created under previous versions of cfs that you want to save,
`
`tar them
`
`out to a plaintext file under your existing cfsd prior to installing
`
`the new version.
`
`See the README.history file for details.
`
`To install a new version, first cdetach any directories in the cfs mount
`
`Then (as root) do a make install_cfs, and restart cfsd.
`point (/crypt/*).
`You need not unmount and remount /crypt, although you may see a few stale
`
`file handle errors in any processes with open references to /crypt.
`
`For information on ESM, see README.esm.
`
`Problems -> cfs@research.att.com. But READ THE MANUAL first.
`
`EXNbflD
`
`Petitioner Oracle-Apple - Exhibit 1010 - Page 266
`
`
`
`README.irix
`
`Exhibit D
`
`Petitioner Oracle-Apple - Exhibit 1010 - Page 267
`
`
`
`From:
`To:
`
`Date:
`
`"Richard Moxley" <mox@grunt.autometric.com>
`Matt Blaze <mab@research.att.com>
`
`Thu, 26 Oct 1995 13:33:15 -0400
`
`Irix 5.3 readme for CFS
`Subject:
`Posted-Date: Thu, 26 Oct 1995 13:33:15 -0400
`
`--PART-BOUNDARY=.19510261333.ZM1297.autometric.com
`
`Content—Type:
`
`text/plain; charset=us—ascii
`
`Matt:
`
`Thanks for 1.3.0... it built on Irix without a problem using
`
`the Irix 4.0 settings.
`
`Attached is a README.irix that explains the modifications
`that need to be made to the Makefile to build on Irix 5.3.
`
`Also attached is cfs.rc.irix, which does the work that gets
`
`done in rc.local on a Sun. This file gets installed to
`/etc/init.d and is linked from /etc/rc2.d and /etc/rc0.d.
`
`All of this happens in the new install_cfs actions that I
`describe in README.irix.
`So, if you add README.irix to your
`
`distribution, you should add cfs.rc.irix also.
`
`Cheers,
`R
`
`+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --+
`
`| Richard Moxley
`
`Frustra fit per plura quod |
`
`|
`potest fieri per pauciora.
`rmoxley@autometric.com
`|
`+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --+
`
`——PART—BOUNDARY=.19510261333.ZM1297.autometric.com
`
`X—Zm—Content—Name: README.irix
`
`Content-Description: Text
`
`Content—Type:
`
`text/plain ; name="README.irix"
`
`; charset=us—ascii
`
`CFS 1.3.0 under Irix 5.3
`
`Compiling:
`
`1. Edit the Makefile to use the makeflags for Irix 4.0
`
`CFLAGS=-cckr $(COPT)
`
`-Dirix
`
`LIBS:-lrpcsvc -lsun -I$(RINCLUDES)
`COMPAT=
`
`-DPROTOTYPES=O
`
`Also, change the install_cfs actions to the following:
`
`install —m 0755 —u root —f $(ETCDIR) cfsd
`
`install —m 0755 —u root —f $(BINDIR) cattach cdetach \
`
`cmkdir cpasswd ssh cname ccat i o
`
`install —m 0755 —u root -f /etc/init.d cfs.rc.irix
`ln —s /etc/init.d/cfs.rc.irix /etc/rc2.d/S35cfs
`EXMDHD
`
`PetitionerOraC|e_App|e_Exhibit1010_Page268
`
`
`
`ln —s /etc/init.d/cfs.rc.irix /etc/rcO.d/K35cfs
`
`3.
`
`Type "make cfs"
`
`Installing:
`
`1.
`
`Become root and type "make insta11_cfs".
`
`2. Create the cfs bootstrap mount point:
`
`mkdir /null
`
`chmod 0 /null
`
`3. Add this line to /etc/exports:
`
`/null localhost
`
`4. Create the mount point
`
`mkdir /crypt
`
`(or whatever you want to call it)
`
`5. Reboot
`
`Richard Moxley
`
`rmox1ey@autometric.com
`
`——PART-BOUNDARY=.19510261333.ZMl297.autometriC.Com
`
`X—Zm—Content—Name: cfs.rc.irix
`
`Content-Description: Text
`
`Content—Type:
`
`text/plain ; name="cfs.rc.irix" ; charset=us—ascii
`
`#1/sbin/sh
`
`# CFS boot script for Irix 5.3
`
`# Richard Moxley
`
`rmox1ey@autometric.com
`
`MOUNT:/sbin/mount
`
`CFSD=/usr/local/etc/cfsd
`
`CFS_NULLDIR=/ null
`
`CFS_MOUNTPT=/ crypt
`
`case "$1" in
`'start')
`
`if test -x $CFSD;
`
`then
`
`echo "Starting CFS...
`
`\c"
`
`if test
`
`!
`
`-d $CFS_NULLDIR;
`
`then
`
`mkdir $CFS_NULLDIR
`
`fi
`
`cd $CFS_NULLDIR
`chown root
`
`chgrp sys
`chmod 0
`
`if test
`EXNDHD
`
`!
`
`-d $CFS_MOUNTPT;
`
`then
`
`Petitioner Oracle-Apple - Exhibit 1010 - Page 269
`
`
`
`mkdir $CFS_MOUNTPT
`
`fi
`
`cd $CFS_MOUNTPT
`chown root
`
`chown sys
`chmod 755
`
`$CFSD
`
`sleep 1
`
`$MOUNT —o port=3049,intr 1oca1host:$CFS_NULLDIR $CFS_MOUNTPT
`
`echo "CFS not found."
`
`else
`
`fi
`
`'stop')
`
`/sbin/killall cfsd
`if
`
`*)
`
`esac
`
`echo "usage: $0 {start|stop}"
`
`——PART-BOUNDARY=.19510261333.ZMl297.autometric.com--
`
`EXNbflD
`
`Petitioner Oracle-Apple - Exhibit 1010 - Page 270
`
`
`
`README.linuX
`
`Exhibit D
`
`Petitioner Oracle-Apple - Exhibit 1010 - Page 271
`
`
`
`There are two versions of RPCGEN on various linuxes. Read the makefile
`
`carefully to make sure you compile for the right one (if you get it
`
`wrong, do a "make clean" before switching to the other).
`
`—matt
`
`(3/96)
`
`Here's some background:
`
`From owner—cfs—users Wed Mar
`
`8 18:22:15 1995
`
`Received: by merckx.info.att.com (4.1/4.7)
`id AA15369; Wed,
`8 Mar 95 18:22:15 EST
`Posted-Date: Wed, 08 Mar 1995 15:17:01 -0800
`
`Message-Id: <199503082317.PAAO2390@gwarn.versant.com>
`
`To: root <root@esprit.topaz.com>
`
`From: strick@techwood.org
`
`Reply—To: strick@techwood.org
`Cc: cfs—users@research.att.com
`
`Subject: Re:
`
`linux problems
`
`In—Reply—To: Your message of "Wed, 08 Mar 1995 02:51:09 EST."
`
`<199503080751.CAA23174@esprit.topaz.com>
`Date: Wed, 08 Mar 1995 15:17:01 -0800
`
`THUS SPAKE owner—cfs—users@research.att.com:
`
`#
`
`I'm still having problems getting CFS to compile under the newest
`
`# version of slackware.
`
`I was told that it worked on previous versions of
`
`is delete the _svc suffices
`What I had to do in slackware 2.1.0 (Linux 1.1.59)
`on the global names in the .c files that are generated from the .x files.
`
`(I'm not enough of a SUNRPC GOD to know why.)
`
`Then it would link okay.
`
`(Was linking your problem?)
`
`Oh, and you need —Dd_fileno=d_ino
`
`... see below
`
`strick
`
`p.s.
`
`ESM is fantastic,
`
`too.
`
`make CC="cc —traditional —Dd_fileno=d_ino
`
`\
`
`—Dnfsproc_null_2_svc=nfsproc_null_2
`
`\
`
`—Dnfsproc_getattr_2_svc=nfsproc_getattr_2
`
`—Dnfsproc_setattr_2_svc=nfsproc_setattr_2
`
`-Dnfsproc_root_2_svc=nfsproc_root_2
`
`\
`
`—Dnfsproc_lookup_2_svc=nfsproc_lookup_2 \
`
`-Dnfsproc_readlink_2_svc=nfsproc_readlink_2
`
`—Dnfsproc_read_2_svc=nfsproc_read_2
`
`\
`
`\
`
`\
`
`\
`
`-Dnfsproc_writecache_2_svc=nfsproc_writecache_2 \
`
`-Dnfsproc_write_2_svc=nfsproc_write_2
`
`\
`
`—Dnfsproc_create_2_svc=nfsproc_create_2 \
`
`—Dnfsproc_remove_2_svc=nfsproc_remove_2 \
`
`—Dnfsproc_rename_2_svc=nfsproc_rename_2 \
`
`\
`'D“fSPr°C—1i“k—2—S"C=“fSPr°C—1i“k—2
`-Dnfsproc_symlink_2_svc=nfsproc_symlink_2
`EXNbflD
`
`\
`
`Petitioner Oracle-Apple — Exhibit 1010 — Page 272
`
`
`
`-Dnfsproc_mkdir_2_sVc=nfsproc_mkdir_2
`
`-Dnfsproc_rmdir_2_sVc=nfsproc_rmdir_2
`
`\
`
`\
`
`—Dnfsproc_readdir_2_svc=nfsproc_readdir_2
`
`—Dnfsproc_statfs_2_svc=nfsproc_statfs_2 \
`
`—Dadmproc_null_1_svc=admproc_null_1
`
`\
`
`—Dadmproc_attach_1_svc=admproc_attach_1 \
`
`—Dadmproc_detach_1_svc=admproc_detach_1 \
`
`—Dadmproc_ls_1_svc=admproc_ls_1 \
`
`From:
`To:
`
`Date:
`
`Monty Walls <mwalls@castor.oktax.state.ok.us>
`Matt Blaze <mab@research.att.com>
`
`Fri, 16 Feb 1996 14:34:50 -0600 (CST)
`
`Subject: Re: Linux Compatibility & rpcgen
`
`In-Reply-To: <199602151603.LAA14987@nsa.tempo.att.com>
`
`References: <199602151603.LAA14987@nsa.tempo.att.com>
`
`Here are the cflags I used for Slackware 2.3:
`
`RPCGEN=rpcgen -k -b
`
`CFLAGS=$(COPT) —U__OPTIMIZE__ -traditional —Dd_fileno=d_inO —I$(RINCLUDES)
`
`why:
`
`for some
`—U__OPTIMIZE__ — turns off inline code (turned on by —O)
`functions which will give syntax errors when using -traditional
`(GCC
`
`again).
`
`-traditional
`
`— required because rpcgen.new generates prototypes even in
`
`k&r mode (tests for __STDC__, which is true with GCC).
`
`I done some preliminary testing and it appears to work ok.
`
`Rpcinfo does
`
`complain about how cfs is registered:
`
`castor# /usr/sbin/rpcinfo —p
`program Vers proto
`port
`
`100000
`
`100000
`
`100005
`
`100005
`
`2
`
`2
`
`1
`
`1
`
`tcp
`
`udp
`
`udp
`
`tcp
`
`111 portmapper
`
`111 portmapper
`
`849 mountd
`
`851 mountd
`
`clnttcp_create: RPC: Program not registered
`
`clnttcp_create: RPC: Program not registered
`1092830567
`2
`udp
`3049
`
`—Monty Walls (mwalls@castor.oktax.state.ok.us)
`
`—
`
`MIS(Technical Supt), Oklahoma Tax Commission
`
`- My opinions are my own, my employer knows nothing about it.
`
`EXNbflD
`
`Petitioner Oracle-Apple - Exhibit 1010 - Page 273
`
`
`
`README
`
`Exhibit D
`
`Petitioner Oracle-Apple - Exhibit 1010 - Page 274
`
`
`
`This is version 1.3.3 of CFS,
`
`the Cryptographic File System, which
`
`also includes version 1.0 of ESM,
`
`the Encrypting Session Manager.
`
`To unpack this distribution, create a directory for the cfs sources, cd
`
`there and copy every thing after the "cut here" line to a file called
`
`Then type
`"cfs.shar".
`/bin/sh cfs.shar
`
`at your shell prompt.
`
`For installation instructions, see the files "README.install",
`"notes.ms" and "README.esm".
`
`There is a mailing list, cfs—users, for discussion of topics of interest to
`
`CFS users and developers.
`
`It is a fairly quiet list, and it's where bug
`
`fixes and new ports are announced, so I encourage you to join.
`
`To subscribe:
`
`echo subscribe cfs—users | mail cfs—users—request@research.att.com
`You will automatically receive a "welcome" message confirming that you
`have been added to the list.
`
`User—contributed ports to other platforms are available in the list archive.
`
`echo help | mail cfs—users—request@research.att.com
`
`and
`
`echo get cfs—users README.archive | mail cfs—users-request@research.att.com
`for details.
`
`-matt
`
`THIS SOFTWARE IS SUBJECT TO EXPORT CONTROLS.
`
`See the README.install file
`
`for distribution restrictions.
`
`ExmbflD
`
`Petitioner Oracle-Apple - Exhibit 1010 - Page 275
`
`
`
`1pcgenout.shar
`
`Exhibit D
`
`Petitioner Oracle-Apple - Exhibit 1010 - Page 276
`
`
`
`This is a shell archive.
`
`Save it in a file,
`
`remove anything before
`
`this line, and then unpack it by entering "sh file". Note, it may
`
`create directories; files and directories will be owned by you and
`
`have default permissions.
`
`This archive contains:
`
`nfsproto.h
`
`nfsproto_svr.c
`
`nfsproto_xdr.c
`
`admproto_clnt.c
`
`admproto_svr.c
`
`admproto_xdr.c
`admproto.h
`
`=+“l==fi==fi==+”t=+“l==tl==+“t=+”t=tt=+”t=+”t=8=l==+*t=+*t=tt
`
`echo x — nfsproto.h
`
`sed 's/‘X//' >nfsproto.h << 'END—of—nfsproto.h'
`X/*
`X * Please do not edit this file.
`
`X * It was generated using rpcgen.
`X */
`
`X X
`
`X X
`
`#include <rpc/types.h>
`
`#define NFS_PORT 2049
`
`X#define NFS_MAXDATA 8192
`
`X#define NFS_MAXPATHLEN 1024
`
`X#define NFS_MAXNAMLEN 255
`
`X#define NFS_FHSIZE 32
`
`X#define NFS_COOKIESIZE 4
`
`X#define NFS_FIFO_DEV -1
`
`X#define NFSMODE_FMT 0170000
`
`X#define NFSMODE_DIR 0040000
`
`X#define NFSMODE_CHR 0020000
`
`X#define NFSMODE_BLK 0060000
`
`X#define NFSMODE_REG 0100000
`
`X#define NFSMODE_LNK 0120000
`
`X#define NFSMODE_SOCK 0140000
`
`X#define NFSMODE_FIFO 0010000
`
`X X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`X
`
`enum nfsstat {
`NFS_OK = 0,
`
`NFSERR_PERM = 1,
`
`NFSERR_NOENT = 2,
`
`NFSERR_IO = 5,
`
`NFSERR_NXIO = 6,
`
`NFSERR_ACCES = 13,
`
`NFSERR_EXIST = 17,
`
`NFSERR_NODEV = 19,
`
`NFSERR_NOTDIR = 20,
`
`NFSERR_ISDIR = 21,
`
`NFSERR_FBIG = 27,
`
`NFSERR_NOSPC = 28,
`
`NFsERR—R°FS = 3°’
`NFSERR_NAMETOOLONG = 63,
`EXNbflD
`
`Petitioner Oracle-Apple — Exhibit 1010 — Page 277
`
`
`
`><1><1.'><1
`
`X
`
`NFSERR_NOTEMPTY = 66 ,
`
`NFSERR_DQUOT = 69,
`
`NFSERR_STALE = 70 ,
`
`NFSERR_WFLUSH = 99 ,
`
`X} ;
`Xtypedef enum nfsstat nfsstat;
`
`Xboo1_t xdr_nfsstat();
`
`X X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`enum ftype {
`NFNON = 0 ,
`
`NFREG = l ,
`
`NFDIR = 2 ,
`
`NFBLK = 3 ,
`
`NFCHR = 4 ,
`
`NFLNK = 5 ,
`
`NFSOCK = 6 ,
`
`NFBAD = 7 ,
`
`NFFI FO = 8 ,
`
`X} ;
`Xtypedef enum ftype ftype;
`
`Xboo1_t xdr_ftype();
`
`X X
`
`X
`
`struct nfs_fh {
`char data[NFS_FHSIZE];
`
`X};
`Xtypedef struct nfs_fh nfs_fh;
`
`Xboo1_t xdr_nfs_fh();
`
`X X
`
`X
`
`X
`
`struct nfstime {
`u_int seconds;
`
`u_int useconds;
`
`X};
`Xtypedef struct nfstime nfstime;
`
`Xboo1_t xdr_nfstime();
`
`X X
`
`><1.'><1><1><1><1><1><1><1><1><1><1><1><1
`
`X
`
`struct fattr {
`ftype type;
`
`u_int mode;
`
`u_int nlink;
`
`u_int uid;
`
`u_int gid;
`
`u_int size;
`
`u_int blocksize;
`
`u_int rdev;
`
`u_int blocks;
`
`u_int fsid;
`
`u_int fileid;
`nfstime atime;
`
`nfstime mtime;
`
`nfstime ctime;
`
`X};
`Xtypedef struct fattr fattr;
`
`Xboo1_t xdr_fattr();
`
`X X
`
`X
`
`struct sattr {
`u_int mode;
`EXMDHD
`
`Petitioner Oracle-Apple - Exhibit 1010 - Page 278
`
`
`
`><1><1><1.'><1
`
`X
`
`u_int uid;
`
`u_int gid;
`
`u_int size;
`nfstime atime;
`
`nfstime mtime;
`
`X};
`Xtypedef struct sattr sattr;
`
`Xboo1_t xdr_sattr();
`
`X X
`
`typedef char *fi1ename;
`
`Xboo1_t xdr_fi1ename();
`
`X X
`
`typedef char *nfspath;
`
`Xboo1_t xdr_nfspath();
`
`X X
`
`X
`
`X
`X
`
`X
`
`struct attrstat {
`nfsstat status;
`
`union {
`fattr attributes;
`
`} attrstat_u;
`
`X};
`Xtypedef struct attrstat attrstat;
`
`Xboo1_t xdr_attrstat();
`
`X X
`
`X
`X
`
`struct sattrargs {
`nfs_fh file;
`sattr attributes;
`
`X};
`Xtypedef struct sattrargs sattrargs;
`
`Xboo1_t xdr_sattrargs();
`
`X X
`
`X
`X
`
`struct diropargs {
`nfs_fh dir;
`filename name;
`
`X};
`Xtypedef struct diropargs diropargs;
`
`Xboo1_t xdr_diropargs();
`
`X X
`
`X
`X
`
`struct diropokres {
`nfs_fh file;
`fattr attributes;
`
`X};
`Xtypedef struct diropokres diropokres;
`
`Xboo1_t xdr_diropokres();
`
`X X
`
`X
`
`X
`X
`
`X
`
`struct diropres {
`nfsstat status;
`
`union {
`diropokres diropres;
`
`} diropres_u;
`
`X};
`Xtypedef struct diropres diropres;
`
`Xboo1_t xdr_diropres();
`
`X X
`
`X
`
`struct readlinkres {
`nfsstat status;
`EXMDHD
`
`Petitioner Oracle-Apple - Exhibit 1010 - Page 279
`
`
`
`X
`X
`
`X
`
`union {
`nfspath data;
`
`} read1inkres_u;
`
`X};
`Xtypedef struct readlinkres readlinkres;
`
`Xboo1_t xdr_readlinkres();
`
`X X
`
`X
`
`X
`
`X
`
`X
`
`struct readargs {
`nfs_fh file;
`
`u_int offset;
`
`u_int count;
`
`u_int totalcount;
`
`X};
`Xtypedef struct readargs readargs;
`
`Xboo1_t xdr_readargs();
`
`X X
`
`X
`
`X
`X
`X
`
`X
`
`struct readokres {
`fattr attributes;
`
`struct {
`u_int data_1en;
`char *data_va1;
`
`} data;
`
`X};
`Xtypedef struct readokres readokres;
`
`Xboo1_t xdr_readokres();
`
`X X
`
`X
`
`X
`X
`
`X
`
`struct readres {
`nfsstat status;
`
`union {
`readokres reply;
`
`} readres_u;
`
`X};
`Xtypedef struct readres readres;
`
`Xboo1_t xdr_readres();
`
`X X
`
`struct writeargs {
`nfs_fh file;
`
`><1><1><1><1><1><1><1
`
`X
`
`u_int beginoffset;
`
`u_int offset;
`
`u_int totalcount;
`
`struct {
`u_int data_1en;
`
`char *data_va1;
`
`} data;
`
`X};
`Xtypedef struct writeargs writeargs;
`
`Xboo1_t xdr_writeargs();
`
`X X
`
`X
`X
`
`struct createargs {
`diropargs where;
`sattr attributes;
`
`X};
`Xtypedef struct createargs createargs;
`
`Xboo1_t xdr_createargs();
`
`X X
`
`struct renameargs {
`EXMDHD
`
`Petitioner Oracle-Apple - Exhibit 1010 - Page 280
`
`
`
`X
`
`X
`
`diropargs from;
`
`diropargs to;
`
`X};
`Xtypedef struct renameargs renameargs;
`
`Xboo1_t xdr_renameargs();
`
`X X
`
`X
`X
`
`struct linkargs {
`nfs_fh from;
`diropargs to;
`
`X};
`Xtypedef struct linkargs linkargs;
`
`Xboo1_t xdr_1inkargs();
`
`X X
`
`X
`
`X
`X
`
`struct symlinkargs {
`diropargs from;
`
`nfspath to;
`sattr attributes;
`
`X};
`Xtypedef struct symlinkargs symlinkargs;
`
`Xboo1_t xdr_sym1inkargs();
`
`X X
`
`typedef char nfscookie[NFS_COOKIESIZE];
`
`Xboo1_t xdr_nfscookie();
`
`X X
`
`X
`X
`
`X
`
`struct readdirargs {
`nfs_fh dir;
`nfscookie cookie;
`
`u_int count;
`
`X};
`Xtypedef struct readdirargs readdirargs;
`
`Xboo1_t xdr_readdirargs();
`
`X X
`
`X
`X
`
`X
`
`X
`
`struct entry {
`u_int fileid;
`filename name;
`
`nfscookie cookie;
`
`struct entry *nextentry;
`
`X};
`Xtypedef struct entry entry;
`
`Xboo1_t xdr_entry();
`
`X X
`
`X
`
`X
`
`struct dirlist {
`entry *entries;
`
`boo1_t eof;
`
`X};
`Xtypedef struct dirlist dirlist;
`
`Xboo1_t xdr_dir1ist();
`
`X X
`
`X
`
`X
`X
`
`X
`
`struct readdirres {
`nfsstat status;
`
`union {
`dirlist reply;
`
`} readdirres_u;
`
`X} ;
`
`XtYPedef Struct readdirres readd-fires"
`Xboo1_t xdr_readdirres();
`EXMDHD
`
`Petitioner Oracle-Apple-Exhibit1010-Page 281
`
`
`
`X X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`struct statfsokres {
`u_int tsize;
`
`u_int bsize;
`
`u_int blocks;
`
`u_int bfree;
`
`u_int bavail;
`
`X} ;
`Xtypedef struct statfsokres statfsokres;
`
`Xboo1_t xdr_statfsokres();
`
`X X
`
`X
`
`X
`X
`
`X
`
`struct statfsres {
`nfsstat status;
`
`union {
`statfsokres reply;
`
`} statfsres_u;
`
`X} ;
`Xtypedef struct statfsres statfsres;
`
`Xboo1_t xdr_statfsres();
`
`X X
`
`#define NFS_PROGRAM ((u_1ong)lOOOO3)
`
`X#define NFS_VERSION ((u_long)2)
`
`X#define NFSPROC_NULL ( (u_1ong) 0)
`
`Xextern Void *nfsproc_nu11_2();
`
`X#define NFSPROC_GETATTR ((u_long)l)
`
`Xextern attrstat *nfsproc_getattr_2();
`
`X#define NFSPROC_SETATTR ((u_long)2)
`
`Xextern attrstat *nfsproc_setattr_2();
`
`X#define NFSPROC_ROOT ((u_1ong)3)
`
`Xextern void *nfsproc_root_2();
`
`X#define NFSPROC_LOOKUP ((u_1ong)4)
`
`Xextern diropres *nfsproc_1ookup_2();
`
`X#define NFSPROC_READLINK ((u_lOng)5)
`
`Xextern readlinkres *nfsproc_read1ink_2();
`
`X#define NFSPROC_READ ((u_1ong)6)
`
`Xextern readres *nfsproc_read_2();
`
`X#define NFSPROC_WRITECACHE ((u_long)7)
`
`Xextern void *nfsproc_writecache_2();
`
`X#define NFSPROC_WRITE ((u_long)8)
`
`Xextern attrstat *nfsproc_write_2();
`
`X#define NFSPROC_CREATE ((u_lOng)9)
`
`Xextern diropres *nfsproc_create_2();
`
`X#define NFSPROC_REMOVE ((u_long)lO)
`
`Xextern nfsstat *nfsproc_remove_2();
`
`X#define NFSPROC_RENAME ((u_1ong)l1)
`
`Xextern nfsstat *nfsproc_rename_2();
`
`X#define NFSPROC_LINK ((u_long)l2)
`
`Xextern nfsstat *nfsproc_1ink_2();
`
`X#define NFSPROC_SYMLINK ((u_long)l3)
`
`Xextern nfsstat *nfsproc_sym1ink_2();
`
`X#define NFSPROC_MKDIR ((u_long)l4)
`
`Xextern diropres *nfsproc_mkdir_2();
`
`X#define NFSPROC_RMDIR ((u_1ong)l5)
`
`Xextern nfsstat *nfsproc_rmdir_2();
`
`X#define NFSPROC_READDIR ((u_1ong)l6)
`
`Xextern readdirres *nfsproc_readdir_2();
`EXMDHD
`
`Petitioner Oracle-Apple - Exhibit 1010 - Page 282
`
`
`
`Petitioner Oracle-Apple — Exhibit 1010 — Page 283
`
`X#define NFSPROC_STATFS ((u_long)l7)
`
`Xextern statfsres *nfsproc_statfs_2();
`END—of—nfsproto.h
`
`echo x — nfsproto_svr.c
`
`sed 's/‘X//' >nfsproto_svr.c << 'END—of—nfsproto_svr.c'
`X/*
`X * Please do not edit this file.
`
`X * It was generated using rpcgen.
`X */
`
`X X
`
`#include <stdio.h>
`
`X#include <rpc/rpc.h>
`X#include "nfsproto.h"
`
`X X
`
`void
`
`transp)
`Xnfs_program_2(rqstp,
`X
`struct svc_req *rqstp;
`N
`register SVCXPRT *transp;
`
`I-"-\
`
`NN><NNN><NNN><NNN><NNN><NNN><NNN><NNN><NNN><NNN
`
`union {
`nfs_fh nfsproc_getattr_2_arg;
`
`sattrargs nfsproc_setattr_2_arg;
`
`diropargs nfsproc_lookup_2_arg;
`
`nfs_fh nfsproc_readlink_2_arg;
`readargs nfsproc_read_2_arg;
`
`writeargs nfsproc_write_2_arg;
`
`createargs nfsproc_create_2_arg;
`
`diropargs nfsproc_remove_2_arg;
`renameargs nfsproc_rename_2_arg;
`
`linkargs nfsproc_link_2_arg;
`
`symlinkargs nfsproc_symlink_2_arg;
`
`createargs nfsproc_mkdir_2_arg;
`
`diropargs nfsproc_rmdir_2_arg;
`
`readdirargs nfsproc_readdir_2_arg;
`
`nfs_fh nfsproc_statfs_2_arg;
`
`} argument;
`char *result;
`
`(*xdr_argument)(),
`bool_t
`char *(*local)();
`
`(*xdr_result)();
`
`switch (rqstp—>rq_proc)
`case NFSPROC_NULL:
`
`{
`
`xdr_argument = xdr_Void;
`
`xdr_result = xdr_void;
`
`local =
`break;
`
`(char *(*)()) nfsproc_null_2;
`
`case NFSPROC_GETATTR:
`
`xdr_argument = xdr_nfs_fh;
`
`xdr_result = xdr_attrstat;
`
`local =
`break;
`
`(char *(*)()) nfsproc_getattr_2;
`
`case NFSPROC_SETATTR:
`
`Xdr—ar9”“‘e“t = Xdr—Sattrar9S"
`xdr_result = xdr_attrstat;
`EXNbflD
`
`
`
`local =
`break;
`
`(char *(*)()) nfsproc_setattr_2;
`
`case NFSPROC_ROOT:
`
`xdr_argument = xdr_Void;
`
`xdr_result = xdr_void;
`
`local =
`break;
`
`(char *(*)()) nfsproc_root_2;
`
`Case NFSPROC_LOOKUP:
`
`xdr_argument = xdr_diropargs;
`
`xdr_result = xdr_diropres;
`
`local =
`break;
`
`(char *(*)()) nfsproc_lookup_2;
`
`case NFSPROC_READLINK:
`
`xdr_argument = xdr_nfs_fh;
`
`xdr_result = xdr_readlinkres;
`
`local =
`break;
`
`(char *(*)()) nfsproc_readlink_2;
`
`case NFSPROC_READ:
`
`xdr_argument = xdr_readargs;
`
`xdr_result = xdr_readres;
`
`local =
`break;
`
`(char *(*)()) nfsproc_read_2;
`
`case NFSPROC_WRITECACHE:
`
`xdr_argument = xdr_Void;
`
`xdr_result = xdr_void;
`
`local =
`break;
`
`(char *(*)()) nfsproc_writecache_2;
`
`case NFSPROC_WRITE:
`
`xdr_argument = xdr_writeargs;
`
`xdr_result = xdr_attrstat;
`
`local =
`break;
`
`(char *(*)()) nfsproc_write_2;
`
`case NFSPROC_CREATE:
`
`xdr_argument = xdr_createargs;
`
`xdr_result = xdr_diropres;
`
`local =
`break;
`
`(char *(*)()) nfsproc_create_2;
`
`case NFSPROC_REMOVE:
`
`xdr_argument = xdr_diropargs;
`
`xdr_result = xdr_nfsstat;
`
`local =
`break;
`
`(char *(*)()) nfsproc_remove_2;
`
`case NFSPROC_RENAME:
`
`xdr_argument = xdr_renameargs;
`
`xdr_result = xdr_nfsstat;
`
`NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
`
`(char *(*)()) nfsproc_rename_2;
`
`Petitioner Oracle-Apple - Exhibit 1010 - Page 284
`
`local =
`break;
`EXMDHD
`
`
`
`case NFSPROC_LINK:
`
`xdr_argument = xdr_linkargs;
`
`xdr_result = xdr_nfsstat;
`
`local =
`break;
`
`(char *(*)()) nfsproc_link_2;
`
`case NFSPROC_SYMLINK:
`
`xdr_argument = xdr_symlinkargs;
`
`xdr_result = xdr_nfsstat;
`
`local =
`break;
`
`(char *(*)()) nfsproc_symlink_2;
`
`case NFSPROC_MKDIR:
`
`xdr_argument = xdr_createargs;
`
`xdr_result = xdr_diropres;
`
`local =
`break;
`
`(char *(*)()) nfsproc_mkdir_2;
`
`case NFSPROC_RMDIR:
`
`xdr_argument = xdr_diropargs;
`
`xdr_result = xdr_nfsstat;
`
`local =
`break;
`
`(char *(*)()) nfsproc_rmdir_2;
`
`case NFSPROC_READDIR:
`
`xdr_argument = xdr_readdirargs;
`
`xdr_result = xdr_readdirres;
`
`local =
`break;
`
`(char *(*)()) nfsproc_readdir_2;
`
`case NFSPROC_STATFS:
`
`xdr_argument = xdr_nfs_fh;
`
`xdr_result = xdr_statfsres;
`
`(char *(*)()) nfsproc_statfs_2;
`
`local =
`break;
`
`default:
`
`svcerr_noproc(transp);
`return;
`
`} b
`
`zero((char *)&argument, sizeof(argument));
`
`if (!svc_getargs(transp, xdr_argument, &argument))
`svcerr_decode(transp);
`return;
`
`{
`
`} r
`
`esult =
`
`(*local)(&argument, rqstp);
`
`!= NULL && !svc_sendreply(transp, xdr_result, result))
`if (result
`svcerr_systemerr(transp);
`
`{
`
`} i
`
`f (!svc_freeargs(transp, xdr_argument, &argument))
`fprintf(stderr, "unable to free arguments");
`exit(1);
`
`{
`
`Petitioner Oracle-Apple — Exhibit 1010 — Page 285
`
`} r
`
`eturn’
`
`EXNbflD
`
`NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
`
`
`
`END—of—nfsproto_svr.c
`
`echo x — nfsproto_xdr.c
`
`sed 's/‘X//' >nfsproto_xdr.c << 'END—of—nfsproto_xdr.c'
`X/*
`X * Please do not edit this file.
`
`X * It was generated using rpcgen.
`X */
`
`X X
`
`#inc1ude <rpc/rpc.h>
`
`X#inc1ude "nfsproto.h"
`
`X X
`
`boo1_t
`
`Xxdr_nfsstat(xdrs, objp)
`X
`XDR *xdrs;
`
`X
`
`X{
`
`X
`X
`
`X
`X
`
`nfsstat *objp;
`
`if (!xdr_enum(xdrs,
`return (FALSE);
`
`(enum_t *)objp))
`
`{
`
`}
`return (TRUE);
`
`X}
`
`X X
`
`boo1_t
`
`Xxdr_ftype(xdrs, objp)
`X
`XDR *xdrs;
`
`X
`
`X{
`
`X
`X
`
`X
`X
`
`fq@e*dflp;
`
`if (!xdr_enum(xdrs,
`return (FALSE);
`
`(enum_t *)objp))
`
`{
`
`}
`return (TRUE);
`
`X}
`
`X X
`
`boo1_t
`
`Petitioner Oracle-Apple - Exhibit 1010 - Page 286
`
`Xxdr_nfs_fh(xdrs, objp)
`X
`XDR *xdrs;
`
`nfs_fh *objp;
`
`if (!xdr_opaque(xdrs, objp—>data, NFS_FHSIZE))
`return (FALSE);
`
`{
`
`} r
`
`eturn (TRUE);
`
`X
`
`X{
`
`X
`
`><1><1><1><1><1
`
`Xboo1_t
`
`Xxdr_nfstime(xdrs, objp)
`X
`XDR *xdrs;
`
`X
`
`X{
`
`X
`X
`
`X
`
`X
`X
`
`X
`X
`
`nfstime *objp;
`
`if (!xdr_u_int(xdrs, &objp—>seconds))
`return (FALSE);
`
`{
`
`}
`
`if (!xdr_u_int(xdrs, &objp—>useconds))
`return (FALSE);
`
`{
`
`}
`return (TRUE);
`EXNbflD
`
`
`
`X
`
`X X
`
`}
`
`boo1_t
`
`Xxdr_fattr(xdrs, objp)
`X
`XDR *xdrs;
`
`fattr *objp;
`
`if (!xdr_ftype(xdrs,
`return (FALSE);
`
`}
`if (!xdr_u_int(xdrs,
`return (FALSE);
`
`}
`if (!xdr_u_int(xdrs,
`return (FALSE);
`
`}
`if (!xdr_u_int(xdrs,
`return (FALSE);
`
`}
`if (!xdr_u_int(xdrs,
`return (FALSE);
`
`}
`if (!xdr_u_int(xdrs,
`return (FALSE);
`
`}
`if (!xdr_u_int(xdrs,
`return (FALSE);
`
`}
`if (!xdr_u_int(xdrs,
`return (FALSE);
`
`}
`if (!xdr_u_int(xdrs,
`return (FALSE);
`
`}
`if (!xdr_u_int(xdrs,
`return (FALSE);
`
`}
`if (!xdr_u_int(xdrs,
`return (FALSE);
`
`X
`
`X{
`X
`X
`
`X
`X
`X
`
`X
`X
`X
`
`X
`X
`X
`
`X
`X
`X
`
`X
`X
`X
`
`X
`X
`X
`
`X
`X
`X
`
`X
`X
`X
`
`X
`X
`X
`
`X
`X
`X
`
`X
`X
`X
`
`X
`X
`X
`
`X
`X
`X
`
`X
`X
`
`&objp—>type))
`
`&objp->mode))
`
`{
`
`{
`
`&objp->n1ink))
`
`{
`
`&objp—>uid))
`
`&objp—>gid))
`
`{
`
`{
`
`&objp->size))
`
`{
`
`&objp—>b1ocksize))
`
`{
`
`&objp—>rdev))
`
`{
`
`&objp—>b1ocks))
`
`&objp—>fsid))
`
`{
`
`&objp—>fi1eid))
`
`{
`
`{
`
`)
`
`)
`
`)
`
`}
`if (!xdr_nfstime(xdrs,
`return (FALSE);
`
`}
`if (!xdr_nfstime(xdrs,
`return (FALSE);
`
`}
`if (!xdr_nfstime(xdrs,
`return (FALSE);
`
`}
`return (TRUE);
`
`&objp->atime)
`
`&objp—>mtime)
`
`&objp->ctime)
`
`X}
`
`X X
`
`boo1_t
`
`Xxdr_sattr(xdrs, objp)
`X
`XDR *xdrs;
`
`X
`
`sattr *objp;
`EXNbflD
`
`Petitioner Oracle-Apple - Exhibit 1010 - Page 287
`
`
`
`1-"-\
`
`if (!xdr_u_int(xdrs, &objp—>mode))
`return (FALSE);
`
`{
`
`if (!xdr_u_int(xdrs, &objp—>uid))
`return (FALSE);
`
`1f
`
`(!xdr_u_int(xdrs, &objp->gid))
`return (FALSE);
`
`{
`
`{
`
`1f
`
`(!xdr_u_int(xdrs, &objp->size))
`return (FALSE);
`
`{
`
`1f
`
`(!xdr_nfstime(xdrs, &objp—>atime))
`return (FALSE);
`
`1f
`
`(!xdr_nfstime(xdrs, &objp—>mtime))
`return (FALSE);
`
`{
`
`{
`
`} r
`
`‘—I-’
`
`eturn (TRUE);
`
`><1><1><1><1><1><1><1><1><1><1><1><1><1><1><1><1><1><><1><><1><1
`
`Xboo1_t
`
`Xxdr_fi1ename(xdrs, objp)
`X
`XDR *xdrs;
`
`filename *objp;
`
`if (!xdr_string(xdrs, objp, NFS_MAXNAMLEN))
`return (FALSE);
`
`{
`
`} r
`
`eturn (TRUE);
`
`X
`
`X{
`
`X
`
`><1><1><1><1><1
`
`Xboo1_t
`
`Xxdr_nfspath(xdrs, objp)
`X
`XDR *xdrs;
`
`nfspath *objp;
`
`if (!xdr_string(xdrs, objp, NFS_MAXPATHLEN))
`return (FALSE);
`
`{
`
`} r
`
`eturn (TRUE);
`
`X
`
`X{
`
`X
`
`><1><1><1><1><1
`
`Xboo1_t
`
`Xxdr_attrstat(xdrs, objp)
`X
`XDR *xdrs;
`
`X
`
`X{
`
`X
`X
`
`X
`
`X
`X
`X
`X
`
`attrstat *objp;
`
`if (!xdr_nfsstat(xdrs, &objp—>status))
`return (FALSE);
`
`{
`
`}
`
`{
`
`switch (objp—>status)
`case NFS_OK:
`if (!xdr_fattr(xdrs, &objp—>attrstat_u.attributesbgfiéonerC”ack%Apme__Exmbfl1010__Page288
`return (FALSE);
`EXNbflD
`
`
`
`} b
`
`reak;
`
`} r
`
`eturn (TRUE);
`
`><1><1><1><1><1.’><1
`
`Xboo1_t
`
`Xxdr_sattrargs(xdrs, objp)
`X
`XDR *xdrs;
`
`X
`
`X{
`
`X
`X
`
`X
`
`X
`X
`
`X
`X
`
`sattrargs *objp;
`
`if (!xdr_nfs_fh(xdrs, &objp->fi1e))
`return (FALSE);
`
`{
`
`}
`
`if (!xdr_sattr(xdrs, &objp—>attributes))
`return (FALSE);
`
`{
`
`}
`return (TRUE);
`
`X}
`
`X X
`
`boo1_t
`
`Xxdr_diropargs(xdrs, objp)
`X
`XDR *xdrs;
`
`X
`
`X{
`
`X
`X
`
`X
`
`X
`X
`
`X
`X
`
`diropargs *objp;
`
`if (!xdr_nfs_fh(xdrs, &objp—>dir))
`return (FALSE);
`
`{
`
`}
`
`if (!xdr_fi1ename(xdrs, &objp->name))
`return (FALSE);
`
`{
`
`}
`return (TRUE);
`
`X}
`
`X X
`
`boo1_t
`
`Xxdr_diropokres(xdrs, objp)
`X
`XDR *xdrs;
`
`X
`
`X{
`
`X
`X
`
`X
`
`X
`X
`
`X
`X
`
`diropokres *objp;
`
`if (!xdr_nfs_fh(xdrs, &objp->fi1e))
`return (FALSE);
`
`{
`
`}
`
`if (!xdr_fattr(xdrs, &objp->attributes))
`return (FALSE);
`
`{
`
`}
`return (TRUE);
`
`X}
`
`X X
`
`boo1_t
`
`Xxdr_diropres(xdrs, objp)
`X
`XDR *xdrs;
`
`X
`
`X{
`
`X
`
`X
`X
`
`diropres *objp;
`
`if (!xdr_nfsstat(xdrs, &objp—>status))
`
`{
`
`}
`
`return (FALSE) 7
`
`EXNbflD
`
`Petitioner Oracle-Apple — Exhibit 1010 — Page 289
`
`
`
`X
`X
`
`X
`X
`
`X
`X
`
`X
`X
`
`switch (objp—>status)
`case NFS_OK:
`
`{
`
`if (!xdr_diropokres(xdrs, &objp—>diropres_u.diropres))
`return (FALSE);
`
`{
`
`}
`break;
`
`}
`return (TRUE);
`
`X}
`
`X X
`
`boo1_t
`
`Xxdr_read1inkres(xdrs, objp)
`X
`XDR *xdrs;
`N
`
`readlinkres *objp;
`
`if (!xdr_nfsstat(xdrs, &objp—>status))
`return (FALSE);
`
`{
`
`{
`
`} s
`
`witch (objp—>status)
`case NFS_OK:
`
`if (!xdr_nfspath(xdrs, &objp—>read1inkres_u.data))
`return (FALSE);
`
`{
`
`} b
`
`reak;
`
`} r
`
`eturn (TRUE);
`
`I—’‘-\
`
`‘—é
`
`><1><1><1><1><1><1><1><1><1><1><1><1><1><1
`
`Xboo1_t
`
`Xxdr_readargs(xdrs, objp)
`X
`XDR *xdrs;
`
`X
`
`X{
`
`X
`X
`
`X
`
`X
`X
`
`X
`
`X
`X
`
`X
`
`X
`X
`
`X
`X
`
`readargs *objp;
`
`if (!xdr_nfs_fh(xdrs, &objp->fi1e))
`return (FALSE);
`
`}
`
`if (!xdr_u_int(xdrs, &objp—>offset))
`return (FALSE);
`
`}
`
`if (!xdr_u_int(xdrs, &objp—>count))
`return (FALSE);
`
`{
`
`{
`
`{
`
`}
`
`if (!xdr_u_int(xdrs, &objp->tota1count))
`return (FALSE);
`
`{
`
`}
`return (TRUE);
`
`X}
`
`X X
`
`boo1_t
`
`Xxdr_readokres(xdrs, objp)
`X
`XDR *xdrs;
`
`X
`
`X{
`
`X
`
`X
`X
`
`readokres *objp;
`
`if (!xdr_fattr(xdrs, &objp->attributes))
`
`{
`
`}
`
`return (FALSE) "
`
`EXNbflD
`
`Petitioner Oracle-Apple — Exhibit 1010 — Page 290
`
`
`
`X
`
`if (!xdr_bytes(xdrs,
`
`(char **)&objp—>data.data_va1,
`
`(u_int *)&objp—>data.data_1en,
`
`{
`NFS_MAXDATA))
`X
`return (FALSE);
`
`X}
`X
`return (TRUE);
`
`X}
`
`X X
`
`boo1_t
`
`Xxdr_readres(xdrs, objp)
`X
`XDR *xdrs;
`><1
`
`readres *objp;
`
`if (!xdr_nfsstat(xdrs, &objp—>status))
`return (FALSE);
`
`{
`
`{
`
`} s
`
`witch (objp—>status)
`case NFS_OK:
`
`if (!xdr_readokres(xdrs, &objp->readres_u.rep1y))
`return (FALSE);
`
`{
`
`} b
`
`reak;
`
`} r
`
`eturn (TRUE);
`
`1-A-\
`
`‘—é
`
`><1><1><1><1><1><1><1><1><1><1><1><1><1><1
`
`Xboo1_t
`
`Xxdr_writeargs(xdrs, objp)
`X
`XDR *xdrs;
`
`X writeargs *objp;
`
`X{
`
`X
`X
`
`X
`
`X
`X
`
`X
`
`X
`X
`
`X
`
`X
`X
`
`X
`X
`
`if (!xdr_nfs_fh(xdrs, &objp->fi1e))
`return (FALSE);
`
`{
`
`}
`
`if (!xdr_u_int(xdrs, &objp—>beginoffset))
`return (FALSE);
`
`{
`
`}
`
`if (!xdr_u_int(xdrs, &objp—>offset))
`return (FALSE);
`
`{
`
`}
`
`if (!xdr_u_int(xdrs, &objp->tota1count))
`return (FALSE);
`
`{
`
`}
`if (!xdr_bytes(xdrs,
`
`(char **)&objp—>data.data_va1,
`
`(u_int *)&objp—>data.data_1en,
`
`{
`NFS_MAXDATA))
`X
`return (FALSE);
`
`X
`X
`
`}
`return (TRUE);
`
`X}
`
`X X
`
`boo1_t
`
`Xxdr_createargs(xdrs, objp)
`X
`XDR *xdrs;
`
`X
`
`X{
`X
`X
`
`createargs *objp;
`
`if "Xdr—dir°Par9S‘XdrS' &°bjP‘>‘"here” {
`return (FALSE);
`EXNbflD
`
`PetitionerOrac|e-App|e-Exhibit1010-Page291
`
`
`
`} i
`
`f (!xdr_sattr(xdrs, &objp—>attributes))
`return (FALSE);
`
`{
`
`} r
`
`eturn (TRUE);
`
`><1><1><1><1><1><1.'><1
`
`Xboo1_t
`
`Xxdr_renameargs(xdrs, objp)
`X
`XDR *xdrs;
`
`X
`
`X{
`
`X
`X
`
`X
`
`X
`X
`
`X
`X
`
`renameargs *objp;
`
`if (!xdr_diropargs(xdrs, &objp—>from))
`return (FALSE);
`
`{
`
`}
`
`if (!xdr_diropargs(xdrs, &objp—>to))
`return (FALSE);
`
`{
`
`}
`return (TRUE);
`
`X}
`
`X X
`
`boo1_t
`
`Xxdr_1inkargs(xdrs, objp)
`X
`XDR *xdrs;
`
`X
`
`X{
`
`X
`X
`
`X
`
`X
`X
`
`X
`X
`
`linkargs *objp;
`
`if (!xdr_nfs_fh(xdrs, &objp->from))
`return (FALSE);
`
`{
`
`}
`
`if (!xdr_diropargs(xdrs, &objp—>to))
`return (FALSE);
`
`{
`
`}
`return (TRUE);
`
`X}
`
`X X
`
`boo1_t
`
`Xxdr_sym1inkargs(xdrs, objp)
`X
`XDR *xdrs;
`
`X
`
`X{
`
`X
`X
`
`X
`
`X
`X
`
`X
`
`X
`X
`
`X
`X
`
`symlinkargs *objp;
`
`if (!xdr_diropargs(xdrs, &objp—>from))
`return (FALSE);
`
`{
`
`}
`
`if (!xdr_nfspath(xdrs, &objp—>to))
`return (FALSE);
`
`{
`
`}
`
`if (!xdr_sattr(xdrs, &objp—>attributes))
`return (FALSE);
`
`{
`
`}
`return (TRUE);
`
`X}
`
`X X
`
`boo1_t
`
`Xxdr_nfscookie(xdrs, objp)
`X
`XDR *xdrs;
`
`X
`
`nfscookie objp;
`EXMDHD
`
`Petitioner Oracle-Apple - Exhibit 1010 - Page 292
`
`
`
`X{
`
`X
`X
`
`if (!xdr_opaque(xdrs, objp, NFS_COOKIESIZE))
`return (FALSE);
`
`{
`
`X}
`X
`return (TRUE);
`
`X}
`
`X X
`
`boo1_t
`
`Xxdr_readdirargs(xdrs, objp)
`X
`XDR *xdrs;
`
`X
`
`X{
`
`X
`X
`
`X
`
`X
`X
`
`X
`
`X
`X
`
`X
`X
`
`readdirargs *objp;
`
`if (!xdr_nfs_fh(xdrs, &objp->dir))
`return (FALSE);
`
`{
`
`}
`
`if (!xdr_nfscookie(xdrs, objp—>cookie))
`return (FALSE);
`
`{
`
`}
`
`if (!xdr_u_int(xdrs, &objp—>count))
`return (FALSE);
`
`{
`
`}
`return (TRUE);
`
`X}
`
`X X
`
`boo1_t
`
`Xxdr_entry(xdrs, objp)
`X
`XDR *xdrs;
`
`X
`
`X{
`
`X
`X
`
`X
`
`X
`X
`
`X
`
`X
`X
`
`X
`
`X
`X
`
`X
`X
`
`entry *objp;
`
`if (!xdr_u_int(xdrs, &objp—>fi1eid))
`return (FALSE);
`
`{
`
`}
`
`if (!xdr_fi1ename(xdrs, &objp->name))
`return (FALSE);
`
`{
`
`}
`
`if (!xdr_nfscookie(xdrs, objp—>cookie))
`return (FALSE);
`
`{
`
`}
`
`if (!xdr_pointer(xdrs,
`return (FALSE);
`
`}
`return (TRUE);
`
`(char **)&objp->nextentry, sizeof(entry), xdr_entry))
`
`{
`
`X}
`
`X X
`
`boo1_t
`
`Xxdr_dir1ist(xdrs, objp)
`X
`XDR *xdrs;
`
`X
`
`X{
`
`X
`X
`
`X
`
`X
`X
`
`X
`X
`
`dirlist *objp;
`
`if (!xdr_pointer(xdrs,
`return (FALSE);
`
`}
`
`(char **)&objp—>entries, sizeof(entry), xdr_entry))
`
`{
`
`if (!xdr_boo1(xdrs, &objp—>eof))
`return (FALSE);
`
`{
`
`}
`return (TRUE);
`EXNbflD
`
`Petitioner Oracle-Apple - Exhibit 1010 - Page 293
`
`
`
`X}
`
`X X
`
`boo1_t
`
`Xxdr_readdirres(xdrs, objp)
`X
`XDR *xdrs;
`N
`
`readdirres *objp;
`
`if (!xdr_nfsstat(xdrs, &objp—>status))
`return (FALSE);
`
`{
`
`{
`
`} s
`
`witch (objp->status)
`case NFS_OK:
`
`if (!xdr_dir1ist(xdrs, &objp—>readdirres_u.reply))
`return (FALSE);
`
`{
`
`} b
`
`reak;
`
`} r
`
`eturn (TRUE);
`
`I-’‘-\
`
`‘—I-’
`
`><1><1><1><1><1><1><1><1><1><1><1><1><1><1
`><1><1><1><1><1><1><1><1><1><1><1><1><1><1><1><1><1><1><1
`
`Xboo1_t
`
`Xxdr_statfsokres(xdrs, objp)
`X
`XDR *xdrs;
`N
`
`statfsokres *objp;
`
`{
`
`{
`
`{
`
`{
`
`{
`
`if (!xdr_u_int(xdrs, &objp—>tsize))
`return (FALSE);
`
`1f
`
`(!xdr_u_int(xdrs, &objp—>bsize))
`return (FALSE);
`
`(!xdr_u_int(xdrs, &objp—>b1ocks))
`return (FALSE);
`
`1f
`
`‘—I-’
`
`if (!xdr_u_int(xdrs, &objp—>bfree))
`return (FALSE);
`
`1f
`
`(!xdr_u_int(xdrs, &objp->bavai1))
`return (FALSE);
`
`} r
`
`eturn (TRUE);
`
`I-’‘-\
`
`‘—I-’
`
`Xboo1_t
`
`Xxdr_statfsres(xdrs, objp)
`X
`XDR *xdrs;
`><1
`
`statfsres *objp;
`
`if (!xdr_nfsstat(xdrs, &objp—>status))
`return (FALSE);
`
`{
`
`{
`
`} s
`
`witch (objp->status)
`case NFS_OK:
`
`if (!xdr_statfsokres(xdrs, &objp—>statfsres_u.reply))
`
`{
`
`return (FALSE) "
`
`}
`
`Exhibit D
`
`Petitioner Oracle-Apple — Exhibit 1010 — Page 294
`
`:—’~
`
`><1><1><1><1><1><1><1><1.'><1
`
`
`
`X
`
`X
`X
`
`break;
`
`}
`return (TRUE);
`
`X}
`END—of—nfsproto_xdr.c
`
`echo x — admproto_c1nt.c
`
`sed 's/‘X//' >admproto_c1nt.c << 'END—of—admproto_c1nt.c'
`X/*
`X * Please do not edit this file.
`
`X * It was generated using rpcgen.
`X */
`
`X X
`
`#inc1ude <rpc/rpc.h>
`
`X#inc1ude "admproto.h"
`
`X X
`
`/* Default timeout can be changed using c1nt_contro1() */
`
`Xstatic struct timeval TIMEOUT = { 25,
`
`0 };
`
`X X
`
`void *
`
`Xadmproc_nu11_2(argp, clnt)
`X
`void *argp;
`N
`CLIENT *clnt;
`
`static char res;
`
`bzero((char *)&res, sizeof(res));
`
`if (c1nt_ca11(c1nt, ADMPROC_NULL, xdr_Void, argp, xdr_Void, &res, TIMEOUT)
`return (NULL);
`
`!= RPC_SUCCESS)
`
`{
`
`} r
`
`eturn ((void *)&res);
`
`I-"-\
`
`NN><NNN><NNN ‘—I-’
`
`Xcfsstat *