]> CyberLeo.Net >> Repos - FreeBSD/releng/8.0.git/blob - sbin/newfs/newfs.h
Adjust to reflect 8.0-RELEASE.
[FreeBSD/releng/8.0.git] / sbin / newfs / newfs.h
1 /*
2  * Copyright (c) 2002 Networks Associates Technology, Inc.
3  * All rights reserved.
4  *
5  * This software was developed for the FreeBSD Project by Marshall
6  * Kirk McKusick and Network Associates Laboratories, the Security
7  * Research Division of Network Associates, Inc. under DARPA/SPAWAR
8  * contract N66001-01-C-8035 ("CBOSS"), as part of the DARPA CHATS
9  * research program.
10  *
11  * Copyright (c) 1980, 1989, 1993
12  *      The Regents of the University of California.  All rights reserved.
13  *
14  * Redistribution and use in source and binary forms, with or without
15  * modification, are permitted provided that the following conditions
16  * are met:
17  * 1. Redistributions of source code must retain the above copyright
18  *    notice, this list of conditions and the following disclaimer.
19  * 2. Redistributions in binary form must reproduce the above copyright
20  *    notice, this list of conditions and the following disclaimer in the
21  *    documentation and/or other materials provided with the distribution.
22  * 4. Neither the name of the University nor the names of its contributors
23  *    may be used to endorse or promote products derived from this software
24  *    without specific prior written permission.
25  *
26  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
27  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
28  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
29  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
30  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
31  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
32  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
33  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
34  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
35  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
36  * SUCH DAMAGE.
37  *
38  * $FreeBSD$
39  */
40
41 #include <libufs.h>
42
43 /*
44  * variables set up by front end.
45  */
46 extern int      Eflag;          /* Erase previous disk contents */
47 extern int      Lflag;          /* add a volume label */
48 extern int      Nflag;          /* run mkfs without writing file system */
49 extern int      Oflag;          /* build UFS1 format file system */
50 extern int      Rflag;          /* regression test */
51 extern int      Uflag;          /* enable soft updates for file system */
52 extern int      Xflag;          /* exit in middle of newfs for testing */
53 extern int      Jflag;          /* enable gjournal for file system */
54 extern int      lflag;          /* enable multilabel MAC for file system */
55 extern int      nflag;          /* do not create .snap directory */
56 extern intmax_t fssize;         /* file system size */
57 extern int      sectorsize;     /* bytes/sector */
58 extern int      realsectorsize; /* bytes/sector in hardware*/
59 extern int      fsize;          /* fragment size */
60 extern int      bsize;          /* block size */
61 extern int      maxbsize;       /* maximum clustering */
62 extern int      maxblkspercg;   /* maximum blocks per cylinder group */
63 extern int      minfree;        /* free space threshold */
64 extern int      opt;            /* optimization preference (space or time) */
65 extern int      density;        /* number of bytes per inode */
66 extern int      maxcontig;      /* max contiguous blocks to allocate */
67 extern int      maxbpg;         /* maximum blocks per file in a cyl group */
68 extern int      avgfilesize;    /* expected average file size */
69 extern int      avgfilesperdir; /* expected number of files per directory */
70 extern u_char   *volumelabel;   /* volume label for filesystem */
71 extern struct uufsd disk;       /* libufs disk structure */
72
73 /*
74  * To override a limitation in libufs, export the offset (in sectors) of the
75  * partition on the underlying media (file or disk). The value is used as
76  * an offset for all accesses to the media through bread(), which is only
77  * invoked directly in this program.
78  * For bwrite() we need a different approach, namely override the library
79  * version with one defined here. This is because bwrite() is called also
80  * by the library function sbwrite() which we cannot intercept nor want to
81  * rewrite. As a consequence, the internal version of bwrite() adds the
82  * partition offset itself when calling the underlying function, pwrite().
83  *
84  * XXX This info really ought to go into the struct uufsd, at which point
85  * we can remove the above hack.
86  */
87 extern ufs2_daddr_t part_ofs;   /* partition offset in blocks */
88
89 void mkfs (struct partition *, char *);