diff --git a/src/cmd/vbackup/mount-Darwin.c b/src/cmd/vbackup/mount-Darwin.c index 3dde4fdf..0cb4ce2c 100644 --- a/src/cmd/vbackup/mount-Darwin.c +++ b/src/cmd/vbackup/mount-Darwin.c @@ -1 +1,51 @@ -#include "mount-none.c" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "mountnfs.h" + +void +mountnfs(int proto, struct sockaddr_in *sa, + uchar *handle, int nhandle, char *mtpt) +{ + int mflag; + struct nfs_args na; + + memset(&na, 0, sizeof na); + na.version = NFS_ARGSVERSION; + na.addr = (struct sockaddr*)sa; + na.addrlen = sizeof *sa; + na.sotype = proto; + na.proto = (proto == SOCK_STREAM) ? IPPROTO_TCP : IPPROTO_UDP; + na.fh = handle; + na.fhsize = nhandle; + na.flags = NFSMNT_RESVPORT|NFSMNT_NFSV3|NFSMNT_INT; + na.wsize = NFS_WSIZE; + na.rsize = NFS_RSIZE; + na.readdirsize = NFS_READDIRSIZE; + na.timeo = 2; + na.retrans = NFS_RETRANS; + na.maxgrouplist = NFS_MAXGRPS; + na.readahead = 0; + na.deadthresh = 0; + na.hostname = "backup"; + na.acregmin = 60; + na.acregmax = 600; + na.acdirmin = 60; + na.acdirmax = 600; + + mflag = MNT_RDONLY|MNT_NOSUID|MNT_NODEV; + if(mount("nfs", mtpt, mflag, &na) < 0) + sysfatal("mount: %r"); +}