Date: Thu, 22 Feb 1996 17:06:03 -0800 (PST) From: "Brant Katkansky" <brantk@gatekeeper.atlas.com> To: msmith@atrad.adelaide.edu.au (Michael Smith) Cc: bmk@dtr.com, msmith@atrad.adelaide.edu.au, brantk@gatekeeper.atlas.com, hackers@freebsd.org Subject: Re: need help w/rpc stuff Message-ID: <9602230106.AA01360@billthecat.atlas.com.> In-Reply-To: <199602230030.LAA20596@genesis.atrad.adelaide.edu.au> from "Michael Smith" at Feb 23, 96 11:00:22 am
next in thread | previous in thread | raw e-mail | index | archive | help
> > bmk@dtr.com stands accused of saying: > > > > I'm also having problems compiling some NFS stuff - it compiles and runs > > under SunOS (4.x and 5.x), SCO, dynix, and dynix/ptx. > > > > Unfortunately, there seems to be some structures in > > /usr/include/nfs/nfs.h which aren't implemented in FreeBSD. I can't be > > more specific right now, as the machine in question has been shut down > > for the rest of the morning for emergency A/C repairs in our machine > > room. > > You'll need to be more specific about your problem 8) OK - keep in mind I'm working under an NDA here, so I can't post the entire source. Here's a representative sample of what I'm up against: cc -g -I../include -I/usr/include -DSYSV_IPC -Dfreebsd -c fe_xdr.c fe_xdr.c: In function `xdr_fattr': fe_xdr.c:78: dereferencing pointer to incomplete type fe_xdr.c:80: dereferencing pointer to incomplete type fe_xdr.c:82: dereferencing pointer to incomplete type fe_xdr.c:84: dereferencing pointer to incomplete type fe_xdr.c:86: dereferencing pointer to incomplete type 73:xdr_fattr(xdrsp, fattrp) 74:XDR *xdrsp; 75:struct nfsfattr *fattrp; 76:{ 77: 78: if (!xdr_enum(xdrsp, &fattrp->na_type)) 79: return(0); 80: if (!xdr_u_long(xdrsp, &fattrp->na_mode)) 81: return(0); 82: if (!xdr_u_long(xdrsp, &fattrp->na_nlink)) 83: return(0); 84: if (!xdr_u_long(xdrsp, &fattrp->na_uid)) 85: return(0); 86: if (!xdr_u_long(xdrsp, &fattrp->na_gid)) 87: return(0); It looks to me like struct type nfsfattr is the culprit - in SunOS it's defined in <nfs/nfs.h>, but I can find no such user or kernel stucture in FreeBSD. Also, the SunOS <nfs/nfs.h> specifies some other structs like nfswriteargs and nfsreadargs, which I suspect are probably kernel structs in FreeBSD. There are other problems, I'm sure, but if I can tackle these, the rest are probably trivial. > > So I guess I have two more questions: > > > > * Is userland NFS code from SunOS generally workable under BSD? > > "Generally" Playing it safe? :) > > * If so, are there any references to assist in porting? > > You just need to be prepared to rework your #includes, and chase stuff that > SunOS put in the user headers that's really kernel data structures. I'm > not a real SunOS porting guru, these are just my observations based on > what I've done. > > Sun invented most of the NFS stuff, so we should still be pretty compatible. Yeah, well, IBM invented the PC, too. :) -- Brant Katkansky (brantk@atlas.com) Systems Test Engineer, ADC
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?9602230106.AA01360>