Module Name:    src
Committed By:   pooka
Date:           Fri Jul 31 14:58:21 UTC 2009

Modified Files:
        src/sbin/mount_fdesc: mount_fdesc.c
Added Files:
        src/sbin/mount_fdesc: mount_fdesc.h

Log Message:
convert to parseargs form


To generate a diff of this commit:
cvs rdiff -u -r1.23 -r1.24 src/sbin/mount_fdesc/mount_fdesc.c
cvs rdiff -u -r0 -r1.1 src/sbin/mount_fdesc/mount_fdesc.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sbin/mount_fdesc/mount_fdesc.c
diff -u src/sbin/mount_fdesc/mount_fdesc.c:1.23 src/sbin/mount_fdesc/mount_fdesc.c:1.24
--- src/sbin/mount_fdesc/mount_fdesc.c:1.23	Fri Jul 31 14:56:11 2009
+++ src/sbin/mount_fdesc/mount_fdesc.c	Fri Jul 31 14:58:21 2009
@@ -1,4 +1,4 @@
-/*	$NetBSD: mount_fdesc.c,v 1.23 2009/07/31 14:56:11 pooka Exp $	*/
+/*	$NetBSD: mount_fdesc.c,v 1.24 2009/07/31 14:58:21 pooka Exp $	*/
 
 /*
  * Copyright (c) 1992, 1993, 1994
@@ -77,7 +77,7 @@
 #if 0
 static char sccsid[] = "@(#)mount_fdesc.c	8.3 (Berkeley) 4/26/95";
 #else
-__RCSID("$NetBSD: mount_fdesc.c,v 1.23 2009/07/31 14:56:11 pooka Exp $");
+__RCSID("$NetBSD: mount_fdesc.c,v 1.24 2009/07/31 14:58:21 pooka Exp $");
 #endif
 #endif /* not lint */
 
@@ -92,6 +92,8 @@
 
 #include <mntopts.h>
 
+#include "mount_fdesc.h"
+
 static const struct mntopt mopts[] = {
 	MOPT_STDOPTS,
 	MOPT_GETARGS,
@@ -109,18 +111,18 @@
 }
 #endif
 
-int
-mount_fdesc(int argc, char *argv[])
+void
+mount_fdesc_parseargs(int argc, char *argv[], void *dummy, int *mntflags,
+	char *canon_dev, char *canon_dir)
 {
-	int ch, mntflags;
-	char canon_dir[MAXPATHLEN];
+	int ch;
 	mntoptparse_t mp;
 
-	mntflags = 0;
+	*mntflags = 0;
 	while ((ch = getopt(argc, argv, "o:")) != -1)
 		switch (ch) {
 		case 'o':
-			mp = getmntopts(optarg, mopts, &mntflags, 0);
+			mp = getmntopts(optarg, mopts, mntflags, 0);
 			if (mp == NULL)
 				err(1, "getmntopts");
 			freemntopts(mp);
@@ -136,7 +138,7 @@
 		usage();
 
 	/* getargs is a NULL op and kernel would return EINVAL */
-	if (mntflags & MNT_GETARGS)
+	if (*mntflags & MNT_GETARGS)
 		exit(0);
 
 	if (realpath(argv[1], canon_dir) == NULL)    /* Check mounton path */
@@ -145,9 +147,18 @@
 		warnx("\"%s\" is a relative path.", argv[1]);
 		warnx("using \"%s\" instead.", canon_dir);
 	}
+}
+
+int
+mount_fdesc(int argc, char *argv[])
+{
+	int mntflags;
+	char canon_dev[MAXPATHLEN], canon_dir[MAXPATHLEN];
 
+	mount_fdesc_parseargs(argc, argv, NULL, &mntflags,
+	    canon_dev, canon_dir);
 	if (mount(MOUNT_FDESC, canon_dir, mntflags, NULL, 0) == -1)
-		err(1, "fdesc on %s", argv[1]);
+		err(1, "fdesc on %s", canon_dir);
 	exit(0);
 }
 

Added files:

Index: src/sbin/mount_fdesc/mount_fdesc.h
diff -u /dev/null src/sbin/mount_fdesc/mount_fdesc.h:1.1
--- /dev/null	Fri Jul 31 14:58:21 2009
+++ src/sbin/mount_fdesc/mount_fdesc.h	Fri Jul 31 14:58:21 2009
@@ -0,0 +1,35 @@
+/*	$NetBSD: mount_fdesc.h,v 1.1 2009/07/31 14:58:21 pooka Exp $	*/
+
+/*
+ * Copyright (c) 2008 The NetBSD Foundation.  All Rights Reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+ * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#ifndef _SBIN_MOUNT_FDESC_MOUNT_FDESC_H_
+#define _SBIN_MOUNT_FDESC_MOUNT_FDESC_H_
+
+int	mount_fdesc(int, char **);
+void	mount_fdesc_parseargs(int, char **, void *, int *,
+			      char *, char *);
+
+#endif /* _SBIN_MOUNT_FDESC_MOUNT_FDESC_H_ */

Reply via email to