1 /*
   2  * CDDL HEADER START
   3  *
   4  * The contents of this file are subject to the terms of the
   5  * Common Development and Distribution License, Version 1.0 only
   6  * (the "License").  You may not use this file except in compliance
   7  * with the License.
   8  *
   9  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  10  * or http://www.opensolaris.org/os/licensing.
  11  * See the License for the specific language governing permissions
  12  * and limitations under the License.
  13  *
  14  * When distributing Covered Code, include this CDDL HEADER in each
  15  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  16  * If applicable, add the following below this CDDL HEADER, with the
  17  * fields enclosed by brackets "[]" replaced with your own identifying
  18  * information: Portions Copyright [yyyy] [name of copyright owner]
  19  *
  20  * CDDL HEADER END
  21  */
  22 /*
  23  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
  24  */
  25 /*      Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T     */
  26 /*        All Rights Reserved   */
  27 
  28 
  29 #ifndef _SYS_VFSTAB_H
  30 #define _SYS_VFSTAB_H
  31 
  32 #ifdef  __cplusplus
  33 extern "C" {
  34 #endif
  35 
  36 #define VFSTAB  "/etc/vfstab"
  37 #define VFS_LINE_MAX    1024
  38 
  39 #define VFS_TOOLONG     1       /* entry exceeds VFS_LINE_MAX */
  40 #define VFS_TOOMANY     2       /* too many fields in line */
  41 #define VFS_TOOFEW      3       /* too few fields in line */
  42 
  43 #define vfsnull(vp)     ((vp)->vfs_special = (vp)->vfs_fsckdev = \
  44                             (vp)->vfs_mountp = (vp)->vfs_fstype = \
  45                             (vp)->vfs_fsckpass = (vp)->vfs_automnt = \
  46                             (vp)->vfs_mntopts = NULL)
  47 
  48 #define putvfsent(fd, vp)\
  49         fprintf((fd), "%s\t%s\t%s\t%s\t%s\t%s\t%s\n", \
  50                 (vp)->vfs_special ? (vp)->vfs_special : "-", \
  51                 (vp)->vfs_fsckdev ? (vp)->vfs_fsckdev : "-", \
  52                 (vp)->vfs_mountp ? (vp)->vfs_mountp : "-", \
  53                 (vp)->vfs_fstype ? (vp)->vfs_fstype : "-", \
  54                 (vp)->vfs_fsckpass ? (vp)->vfs_fsckpass : "-", \
  55                 (vp)->vfs_automnt ? (vp)->vfs_automnt : "-", \
  56                 (vp)->vfs_mntopts ? (vp)->vfs_mntopts : "-")
  57 
  58 struct vfstab {
  59         char    *vfs_special;
  60         char    *vfs_fsckdev;
  61         char    *vfs_mountp;
  62         char    *vfs_fstype;
  63         char    *vfs_fsckpass;
  64         char    *vfs_automnt;
  65         char    *vfs_mntopts;
  66 };
  67 
  68 extern int      getvfsent(FILE *, struct vfstab *);
  69 extern int      getvfsspec(FILE *, struct vfstab *, char *);
  70 extern int      getvfsfile(FILE *, struct vfstab *, char *);
  71 extern int      getvfsany(FILE *, struct vfstab *, struct vfstab *);
  72 
  73 #ifdef  __cplusplus
  74 }
  75 #endif
  76 
  77 #endif  /* _SYS_VFSTAB_H */