diff options
Diffstat (limited to 'usr/src/lib/libbc/libc/gen/common/fstab.c')
-rw-r--r-- | usr/src/lib/libbc/libc/gen/common/fstab.c | 148 |
1 files changed, 0 insertions, 148 deletions
diff --git a/usr/src/lib/libbc/libc/gen/common/fstab.c b/usr/src/lib/libbc/libc/gen/common/fstab.c deleted file mode 100644 index 7fa88f0a5b..0000000000 --- a/usr/src/lib/libbc/libc/gen/common/fstab.c +++ /dev/null @@ -1,148 +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 1990 Sun Microsystems, Inc. All rights reserved. - * Use is subject to license terms. - */ - -#pragma ident "%Z%%M% %I% %E% SMI" - -#include <fstab.h> -#include <stdio.h> -#include <ctype.h> -#include <mntent.h> - -static struct fstab *pfs; -static FILE *fs_file; - -static int -fstabscan(struct fstab *fs) -{ - struct mntent *mnt; - - /* skip over all filesystem types except '4.2', 'swap' & 'ignore' */ - while (((mnt = getmntent(fs_file)) != NULL) && - !((strcmp(mnt->mnt_type, MNTTYPE_42) == 0) || - (strcmp(mnt->mnt_type, MNTTYPE_SWAP) == 0) || - (strcmp(mnt->mnt_type, MNTTYPE_IGNORE) == 0))) - continue; - if (mnt == NULL) - return (EOF); - fs->fs_spec = mnt->mnt_fsname; - fs->fs_file = mnt->mnt_dir; - if (strcmp(mnt->mnt_type, MNTTYPE_IGNORE) == 0) { - strcpy(mnt->mnt_opts, FSTAB_XX); - } else if (strcmp(mnt->mnt_type, MNTTYPE_SWAP) == 0) { - strcpy(mnt->mnt_opts, FSTAB_SW); - } else if (hasmntopt(mnt, MNTOPT_RO)) { - strcpy(mnt->mnt_opts, FSTAB_RO); - } else if (hasmntopt(mnt, MNTOPT_QUOTA)) { - strcpy(mnt->mnt_opts, FSTAB_RQ); - } else { - strcpy(mnt->mnt_opts, FSTAB_RW); - } - fs->fs_type = mnt->mnt_opts; - fs->fs_freq = mnt->mnt_freq; - fs->fs_passno = mnt->mnt_passno; - return (5); -} - -int -setfsent(void) -{ - - if (fs_file) - endfsent(); - if ((fs_file = setmntent(FSTAB, "r")) == NULL) { - fs_file = 0; - return (0); - } - return (1); -} - -int -endfsent(void) -{ - - if (fs_file) { - endmntent(fs_file); - fs_file = 0; - } - return (1); -} - -struct fstab * -getfsent(void) -{ - int nfields; - - if ((fs_file == 0) && (setfsent() == 0)) - return ((struct fstab *)0); - if (pfs == 0) { - pfs = (struct fstab *)malloc(sizeof (struct fstab)); - if (pfs == 0) - return (0); - } - nfields = fstabscan(pfs); - if (nfields == EOF || nfields != 5) - return ((struct fstab *)0); - return (pfs); -} - -struct fstab * -getfsspec(char *name) -{ - struct fstab *fsp; - - if (setfsent() == 0) /* start from the beginning */ - return ((struct fstab *)0); - while((fsp = getfsent()) != 0) - if (strcmp(fsp->fs_spec, name) == 0) - return (fsp); - return ((struct fstab *)0); -} - -struct fstab * -getfsfile(char *name) -{ - struct fstab *fsp; - - if (setfsent() == 0) /* start from the beginning */ - return ((struct fstab *)0); - while ((fsp = getfsent()) != 0) - if (strcmp(fsp->fs_file, name) == 0) - return (fsp); - return ((struct fstab *)0); -} - -struct fstab * -getfstype(char *type) -{ - struct fstab *fs; - - if (setfsent() == 0) - return ((struct fstab *)0); - while ((fs = getfsent()) != 0) - if (strcmp(fs->fs_type, type) == 0) - return (fs); - return ((struct fstab *)0); -} |