1 1.20 chs /* $NetBSD: extern.h,v 1.20 2022/11/17 06:40:39 chs Exp $ */ 2 1.1 christos 3 1.1 christos /* 4 1.1 christos * Copyright (c) 1997 Christos Zoulas. All rights reserved. 5 1.1 christos * 6 1.1 christos * Redistribution and use in source and binary forms, with or without 7 1.1 christos * modification, are permitted provided that the following conditions 8 1.1 christos * are met: 9 1.1 christos * 1. Redistributions of source code must retain the above copyright 10 1.1 christos * notice, this list of conditions and the following disclaimer. 11 1.1 christos * 2. Redistributions in binary form must reproduce the above copyright 12 1.1 christos * notice, this list of conditions and the following disclaimer in the 13 1.1 christos * documentation and/or other materials provided with the distribution. 14 1.1 christos * 15 1.1 christos * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 16 1.1 christos * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 17 1.1 christos * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 18 1.1 christos * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 19 1.1 christos * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 20 1.1 christos * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 21 1.1 christos * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 22 1.1 christos * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 23 1.1 christos * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 24 1.1 christos * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 25 1.1 christos */ 26 1.1 christos 27 1.3 simonb /* prototypes */ 28 1.13 christos void mkfs(const char *, int, int, mode_t, uid_t, gid_t); 29 1.3 simonb 30 1.3 simonb /* * variables set up by front end. */ 31 1.3 simonb extern int mfs; /* run as the memory based filesystem */ 32 1.3 simonb extern int Nflag; /* run mkfs without writing file system */ 33 1.3 simonb extern int Oflag; /* format as an 4.3BSD file system */ 34 1.20 chs extern int eaflag; /* use UFS2ea fs_magic */ 35 1.12 dsl extern int verbosity; /* amount of printf() output */ 36 1.9 fvdl extern int64_t fssize; /* file system size */ 37 1.3 simonb extern int sectorsize; /* bytes/sector */ 38 1.3 simonb extern int rpm; /* revolutions/minute of drive */ 39 1.3 simonb extern int fsize; /* fragment size */ 40 1.3 simonb extern int bsize; /* block size */ 41 1.9 fvdl extern int maxbsize; 42 1.3 simonb extern int cpg; /* cylinders/cylinder group */ 43 1.3 simonb extern int cpgflg; /* cylinders/cylinder group flag was given */ 44 1.3 simonb extern int minfree; /* free space threshold */ 45 1.3 simonb extern int opt; /* optimization preference (space or time) */ 46 1.3 simonb extern int density; /* number of bytes per inode */ 47 1.11 dsl extern int num_inodes; /* number of inodes (overrides density) */ 48 1.3 simonb extern int maxcontig; /* max contiguous blocks to allocate */ 49 1.3 simonb extern int maxbpg; /* maximum blocks per file in a cyl group */ 50 1.9 fvdl extern int maxblkspercg; 51 1.3 simonb extern int nrpos; /* # of distinguished rotational positions */ 52 1.6 lukem extern int avgfilesize; /* expected average file size */ 53 1.6 lukem extern int avgfpdir; /* expected number of files per directory */ 54 1.3 simonb extern u_long memleft; /* virtual memory available */ 55 1.3 simonb extern caddr_t membase; /* start address of memory based filesystem */ 56 1.16 rin extern int quotas; /* filesystem quota to enable */ 57 1.16 rin 58 1.16 rin #ifndef NO_FFS_EI 59 1.3 simonb extern int needswap; /* Filesystem not in native byte order */ 60 1.16 rin #else 61 1.16 rin /* Disable Endian-Independent FFS support for install media */ 62 1.16 rin #define needswap (0) 63 1.18 rin #define ffs_cg_swap(a, b, c) __nothing 64 1.18 rin #define ffs_csum_swap(a, b, c) __nothing 65 1.18 rin #define ffs_dinode1_swap(a, b) __nothing 66 1.18 rin #define ffs_sb_swap(a, b) __nothing 67 1.16 rin #endif 68 1.16 rin 69 1.16 rin #ifndef NO_APPLE_UFS 70 1.8 dbj extern int isappleufs; /* Filesystem is Apple UFS */ 71 1.8 dbj extern char *appleufs_volname; /* Apple UFS volume name */ 72 1.16 rin #else 73 1.16 rin /* Disable Apple UFS support for install media */ 74 1.16 rin #define isappleufs (0) 75 1.16 rin #endif 76 1.19 jdolecek 77 1.19 jdolecek #ifdef NO_IOBUF_ALIGNED 78 1.19 jdolecek #define aligned_alloc(align, size) malloc((size)) 79 1.19 jdolecek #endif 80 1.19 jdolecek 81