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 */