1 /* $NetBSD: conf.c,v 1.3 2019/09/26 12:21:03 nonaka Exp $ */ 2 3 /* 4 * Copyright (c) 1997 5 * Matthias Drochner. All rights reserved. 6 * 7 * Redistribution and use in source and binary forms, with or without 8 * modification, are permitted provided that the following conditions 9 * are met: 10 * 1. Redistributions of source code must retain the above copyright 11 * notice, this list of conditions and the following disclaimer. 12 * 2. Redistributions in binary form must reproduce the above copyright 13 * notice, this list of conditions and the following disclaimer in the 14 * documentation and/or other materials provided with the distribution. 15 * 16 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 17 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 18 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 19 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 20 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 21 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 22 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 23 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 25 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 */ 27 28 #include <sys/cdefs.h> 29 #include <sys/types.h> 30 31 #include <lib/libsa/stand.h> 32 #include <lib/libsa/ufs.h> 33 #include <lib/libsa/lfs.h> 34 #ifdef SUPPORT_EXT2FS 35 #include <lib/libsa/ext2fs.h> 36 #endif 37 #ifdef SUPPORT_MINIXFS3 38 #include <lib/libsa/minixfs3.h> 39 #endif 40 #ifdef SUPPORT_DOSFS 41 #include <lib/libsa/dosfs.h> 42 #endif 43 #ifdef SUPPORT_CD9660 44 #include <lib/libsa/cd9660.h> 45 #endif 46 #if defined(SUPPORT_NFS) || defined(SUPPORT_TFTP) 47 #include <lib/libsa/net.h> 48 #include <lib/libsa/dev_net.h> 49 #ifdef SUPPORT_NFS 50 #include <lib/libsa/nfs.h> 51 #endif 52 #ifdef SUPPORT_TFTP 53 #include <lib/libsa/tftp.h> 54 #endif 55 #endif 56 #include <biosdisk.h> 57 #include "devopen.h" 58 #include "efinet.h" 59 60 struct devsw devsw[] = { 61 { "disk", biosdisk_strategy, biosdisk_open, biosdisk_close, biosdisk_ioctl }, 62 #if defined(SUPPORT_NFS) || defined(SUPPORT_TFTP) 63 { "net", net_strategy, net_open, net_close, net_ioctl }, 64 #endif 65 }; 66 int ndevs = __arraycount(devsw); 67 68 struct netif_driver *netif_drivers[] = { 69 #if defined(SUPPORT_NFS) || defined(SUPPORT_TFTP) 70 &efinetif, 71 #endif 72 }; 73 int n_netif_drivers = __arraycount(netif_drivers); 74 75 struct fs_ops file_system[] = { 76 #ifdef SUPPORT_CD9660 77 FS_OPS(null), 78 #endif 79 FS_OPS(null), FS_OPS(null), 80 FS_OPS(null), FS_OPS(null), 81 #ifdef SUPPORT_EXT2FS 82 FS_OPS(null), 83 #endif 84 #ifdef SUPPORT_MINIXFS3 85 FS_OPS(null), 86 #endif 87 #ifdef SUPPORT_DOSFS 88 FS_OPS(null), 89 #endif 90 }; 91 int nfsys = __arraycount(file_system); 92 93 struct fs_ops file_system_disk[] = { 94 #ifdef SUPPORT_CD9660 95 FS_OPS(cd9660), 96 #endif 97 FS_OPS(ffsv1), FS_OPS(ffsv2), 98 FS_OPS(lfsv1), FS_OPS(lfsv2), 99 #ifdef SUPPORT_EXT2FS 100 FS_OPS(ext2fs), 101 #endif 102 #ifdef SUPPORT_MINIXFS3 103 FS_OPS(minixfs3), 104 #endif 105 #ifdef SUPPORT_DOSFS 106 FS_OPS(dosfs), 107 #endif 108 }; 109 __CTASSERT(__arraycount(file_system) == __arraycount(file_system_disk)); 110 const int nfsys_disk = __arraycount(file_system_disk); 111 112 struct fs_ops file_system_null = FS_OPS(null); 113 #ifdef SUPPORT_NFS 114 struct fs_ops file_system_nfs = FS_OPS(nfs); 115 #endif 116 #ifdef SUPPORT_TFTP 117 struct fs_ops file_system_tftp = FS_OPS(tftp); 118 #endif 119 120 #if defined(SUPPORT_NFS) || defined(SUPPORT_TFTP) 121 const struct netboot_fstab netboot_fstab[] = { 122 #ifdef SUPPORT_NFS 123 { "nfs", &file_system_nfs }, 124 #endif 125 #ifdef SUPPORT_TFTP 126 { "tftp", &file_system_tftp }, 127 #endif 128 }; 129 const int nnetboot_fstab = __arraycount(netboot_fstab); 130 #endif 131