386BSD 0.1 development
[unix-history] / usr / src / bin / df / df.c
index e333a07..1ed82c7 100644 (file)
@@ -2,19 +2,33 @@
  * Copyright (c) 1980, 1990 The Regents of the University of California.
  * All rights reserved.
  *
  * Copyright (c) 1980, 1990 The Regents of the University of California.
  * All rights reserved.
  *
- * Redistribution and use in source and binary forms are permitted provided
- * that: (1) source distributions retain this entire copyright notice and
- * comment, and (2) distributions including binaries display the following
- * acknowledgement:  ``This product includes software developed by the
- * University of California, Berkeley and its contributors'' in the
- * documentation or other materials provided with the distribution and in
- * all advertising materials mentioning features or use of this software.
- * Neither the name of the University nor the names of its contributors may
- * be used to endorse or promote products derived from this software without
- * specific prior written permission.
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+ * 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.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *     This product includes software developed by the University of
+ *     California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``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 REGENTS 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 lint
  */
 
 #ifndef lint
@@ -24,7 +38,7 @@ char copyright[] =
 #endif /* not lint */
 
 #ifndef lint
 #endif /* not lint */
 
 #ifndef lint
-static char sccsid[] = "@(#)df.c       5.21 (Berkeley) 6/24/90";
+static char sccsid[] = "@(#)df.c       5.24 (Berkeley) 3/6/91";
 #endif /* not lint */
 
 /*
 #endif /* not lint */
 
 /*
@@ -33,22 +47,25 @@ static char sccsid[] = "@(#)df.c    5.21 (Berkeley) 6/24/90";
 #include <sys/param.h>
 #include <sys/stat.h>
 #include <sys/mount.h>
 #include <sys/param.h>
 #include <sys/stat.h>
 #include <sys/mount.h>
-#include <sys/file.h>
+#include <fcntl.h>
 #include <stdio.h>
 #include <stdio.h>
+#include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
 
 char   *getmntpt();
 #include <string.h>
 #include <unistd.h>
 
 char   *getmntpt();
+void   ufs_df(), prtstat();
 int    iflag, kflag, nflag;
 struct ufs_args mdev;
 
 int    iflag, kflag, nflag;
 struct ufs_args mdev;
 
+int
 main(argc, argv)
        int argc;
        char **argv;
 {
        extern int errno, optind;
        int err, ch, i;
 main(argc, argv)
        int argc;
        char **argv;
 {
        extern int errno, optind;
        int err, ch, i;
-       long width, maxwidth, mntsize, getmntinfo();
+       long width, maxwidth, mntsize;
        char *mntpt, *mktemp();
        struct stat stbuf;
        struct statfs statfsbuf, *mntbuf;
        char *mntpt, *mktemp();
        struct stat stbuf;
        struct statfs statfsbuf, *mntbuf;
@@ -99,9 +116,9 @@ main(argc, argv)
                        continue;
                } else if ((stbuf.st_mode & S_IFMT) == S_IFBLK) {
                        if ((mntpt = getmntpt(*argv)) == 0) {
                        continue;
                } else if ((stbuf.st_mode & S_IFMT) == S_IFBLK) {
                        if ((mntpt = getmntpt(*argv)) == 0) {
-                               mntpt = mktemp("/tmp/df.XXXXXX");
+                               mntpt = mktemp(strdup("/tmp/df.XXXXXX"));
                                mdev.fspec = *argv;
                                mdev.fspec = *argv;
-                               if (mkdir(mntpt) != 0) {
+                               if (mkdir(mntpt, DEFFILEMODE) != 0) {
                                        fprintf(stderr, "df: %s: %s\n",
                                            mntpt, strerror(errno));
                                        continue;
                                        fprintf(stderr, "df: %s: %s\n",
                                            mntpt, strerror(errno));
                                        continue;
@@ -136,7 +153,7 @@ main(argc, argv)
                        maxwidth = strlen(statfsbuf.f_mntfromname) + 1;
                prtstat(&statfsbuf, maxwidth);
        }
                        maxwidth = strlen(statfsbuf.f_mntfromname) + 1;
                prtstat(&statfsbuf, maxwidth);
        }
-       exit(0);
+       return (0);
 }
 
 char *
 }
 
 char *
@@ -157,6 +174,7 @@ getmntpt(name)
 /*
  * Print out status about a filesystem.
  */
 /*
  * Print out status about a filesystem.
  */
+void
 prtstat(sfsp, maxwidth)
        register struct statfs *sfsp;
        long maxwidth;
 prtstat(sfsp, maxwidth)
        register struct statfs *sfsp;
        long maxwidth;
@@ -208,17 +226,16 @@ union {
 #define sblock sb.iu_fs
 
 int    fi;
 #define sblock sb.iu_fs
 
 int    fi;
-char   *strcpy();
+int    bread();
 
 
+void
 ufs_df(file, maxwidth)
        char *file;
        long maxwidth;
 {
        extern int errno;
 ufs_df(file, maxwidth)
        char *file;
        long maxwidth;
 {
        extern int errno;
-       struct stat stbuf;
        struct statfs statfsbuf;
        register struct statfs *sfsp;
        struct statfs statfsbuf;
        register struct statfs *sfsp;
-       struct fstab *fsp;
        char *mntpt;
        static int synced;
 
        char *mntpt;
        static int synced;
 
@@ -259,9 +276,11 @@ ufs_df(file, maxwidth)
 
 long lseek();
 
 
 long lseek();
 
+int
 bread(off, buf, cnt)
        long off;
        char *buf;
 bread(off, buf, cnt)
        long off;
        char *buf;
+       int cnt;
 {
        int n;
        extern errno;
 {
        int n;
        extern errno;