diff options
Diffstat (limited to 'usr/src/lib/libbc/libc/sys/4.2/mount.c')
| -rw-r--r-- | usr/src/lib/libbc/libc/sys/4.2/mount.c | 164 |
1 files changed, 0 insertions, 164 deletions
diff --git a/usr/src/lib/libbc/libc/sys/4.2/mount.c b/usr/src/lib/libbc/libc/sys/4.2/mount.c deleted file mode 100644 index ad9bcd6bfa..0000000000 --- a/usr/src/lib/libbc/libc/sys/4.2/mount.c +++ /dev/null @@ -1,164 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License, Version 1.0 only - * (the "License"). You may not use this file except in compliance - * with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ -/* - * Copyright 1997 Sun Microsystems, Inc. All rights reserved. - * Use is subject to license terms. - */ - -#pragma ident "%Z%%M% %I% %E% SMI" - -#include <errno.h> -#include <sys/types.h> -#include <rpc/types.h> -#include <sys/time.h> -#include <sys/mount.h> -#include <sys/syscall.h> -#include <netinet/in.h> - - -#define GETFSIND 1 /* translate fs id to ftype index */ -#define CLIENT 1 /* #defined in <pn.h> */ -#define MS_RFFLAGS (MS_CACHE) - -/* - * Flags bits passed to mount(2), from the SVR4 sys/mount.h header file. - */ -#define MS_RDONLY 0x01 /* read only bit */ -#define MS_DATA 0x04 /* 6-argument mount */ -#define MS_NOSUID 0x10 /* Setuid programs disallowed */ -#define MS_REMOUNT 0x20 /* Remount */ -#define MS_NOTRUNC 0x40 /* Return ENAMETOOLONG for long filenames */ - -/* - * structs netbuf, knetconfig, and nfsarg from SVR4 - */ - - -struct netbuf { - unsigned int maxlen; - unsigned int len; - char *buf; -}; - -struct knetconfig { - unsigned long knc_semantics; /* token name */ - char *knc_protofmly; /* protocol family */ - char *knc_proto; /* protocol */ - dev_t knc_rdev; /* device id */ - unsigned long knc_unused[8]; -}; - -struct nfsarg { - struct netbuf *addr; /* file server address */ - /* secure NFS time sync address */ - struct netbuf *syncaddr; - /* transport knetconfig struct */ - struct knetconfig *knconf; - char *hostname; /* server's hostname */ - char *netname; /* server's netname */ - caddr_t fh; /* File handle to be mounted */ - int flags; /* flags */ - int wsize; /* write size in bytes */ - int rsize; /* read size in bytes */ - int timeo; /* initial timeout in .1 secs */ - int retrans; /* times to retry send */ - int acregmin; /* attr cache file min secs */ - int acregmax; /* attr cache file max secs */ - int acdirmin; /* attr cache dir min secs */ - int acdirmax; /* attr cache dir max secs */ -}; - -int -mount(char *type, char *dir, int flags, caddr_t data) -{ - int idx, nflags = 0; - int returnValue; - char fstr[32]; - struct nfsarg narg; - struct nfsarg *na = &narg; - struct nfs_args *nfsa; - - if (strcmp(type, "4.2") == 0) - strcpy(fstr, "ufs"); - else if (strcmp(type, "lo") == 0) - strcpy(fstr, "lo"); - else if (strcmp(type, "nfs") == 0) - strcpy(fstr, "nfs"); - - if ((idx = sysfs(GETFSIND, fstr)) == -1) - return (-1); - - nflags = MS_NOTRUNC; - switch (flags) { - case M_RDONLY: nflags |= MS_RDONLY; - case M_NOSUID: nflags |= MS_NOSUID; - case M_REMOUNT: nflags |= MS_REMOUNT; - } - - if (strcmp(type, "4.2") == 0) - return (_syscall(SYS_mount, data, dir, nflags, idx, 0, 0)); - else if (strcmp(type, "lo") == 0) - return (_syscall(SYS_mount, data, dir, nflags, idx, 0, 0)); - else if (strcmp(type, "nfs") == 0) { - nflags |= MS_DATA; - nfsa = (struct nfs_args *)data; - if ((na->addr = - (struct netbuf *)malloc(sizeof (struct netbuf))) == NULL) - return (-1); - if ((na->syncaddr = - (struct netbuf *)malloc(sizeof (struct netbuf))) == NULL) { - free(na->addr); - return (-1); - } - if ((na->knconf = -(struct knetconfig *)malloc(sizeof (struct knetconfig))) == NULL) { - free(na->addr); - free(na->syncaddr); - return (-1); - } - na->addr->maxlen = sizeof (struct sockaddr_in); - na->addr->len = na->addr->maxlen; - na->addr->buf = (char *)nfsa->addr; - na->syncaddr->maxlen = na->addr->maxlen; - na->syncaddr->len = na->syncaddr->maxlen; - na->syncaddr->buf = (char *)nfsa->addr; - strcpy(na->hostname, nfsa->hostname); - strcpy(na->netname, nfsa->netname); - na->fh = nfsa->fh; - na->flags = nfsa->flags; - na->wsize = nfsa->wsize; - na->rsize = nfsa->rsize; - na->timeo = nfsa->timeo; - na->retrans = nfsa->retrans; - na->acregmin = nfsa->acregmin; - na->acregmax = nfsa->acregmax; - na->acdirmin = nfsa->acdirmin; - na->acdirmax = nfsa->acdirmax; - returnValue = (_syscall(SYS_mount, data, dir, nflags, idx, na, - sizeof (struct nfsarg))); - free(na->addr); - free(na->syncaddr); - free(na->knconf); - return (returnValue); - } - return (-1); -} |
