xref: /netbsd/sys/arch/vax/boot/boot/conf.c (revision bf9ec67e)
1 /*	$NetBSD: conf.c,v 1.10 2000/06/15 19:53:23 ragge Exp $ */
2 /*
3  * Copyright (c) 1994 Ludd, University of Lule}, Sweden.
4  * All rights reserved.
5  *
6  * Redistribution and use in source and binary forms, with or without
7  * modification, are permitted provided that the following conditions
8  * are met:
9  * 1. Redistributions of source code must retain the above copyright
10  *    notice, this list of conditions and the following disclaimer.
11  * 2. Redistributions in binary form must reproduce the above copyright
12  *    notice, this list of conditions and the following disclaimer in the
13  *    documentation and/or other materials provided with the distribution.
14  * 3. All advertising materials mentioning features or use of this software
15  *    must display the following acknowledgement:
16  *     This product includes software developed at Ludd, University of Lule}.
17  * 4. The name of the author may not be used to endorse or promote products
18  *    derived from this software without specific prior written permission
19  *
20  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
21  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
22  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
23  * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
24  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
25  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
29  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30  */
31 
32  /* All bugs are subject to removal without further notice */
33 
34 #include "sys/param.h"
35 
36 #include <netinet/in.h>
37 
38 #include "../../include/rpb.h"
39 
40 #include "lib/libkern/libkern.h"
41 
42 #include "lib/libsa/stand.h"
43 #include "lib/libsa/ufs.h"
44 #include "lib/libsa/nfs.h"
45 #include "lib/libsa/cd9660.h"
46 #include "lib/libsa/ustarfs.h"
47 
48 #include "vaxstand.h"
49 
50 static int nostrategy(void *, int, daddr_t, size_t, void *, size_t *);
51 
52 struct	devsw devsw[]={
53 	SADEV("hp",hpstrategy, hpopen, nullsys, noioctl),
54 	SADEV("qe",nostrategy, qeopen, qeclose, noioctl), /* DEQNA */
55 	SADEV("ctu",ctustrategy, ctuopen, nullsys, noioctl),
56 	SADEV("ra",rastrategy, raopen, nullsys, noioctl),
57 	SADEV("mt",rastrategy, raopen, nullsys, noioctl),
58         SADEV("rom",romstrategy, romopen, nullsys, noioctl),
59         SADEV("rd",mfmstrategy, mfmopen, nullsys, noioctl),
60         SADEV("sd",romstrategy, romopen, nullsys, noioctl),
61 	SADEV("st",nullsys, nullsys, nullsys, noioctl),
62 	SADEV("le",nostrategy, leopen, leclose, noioctl), /* LANCE */
63         SADEV("ze",nostrategy, zeopen, zeclose, noioctl), /* SGEC */
64 	SADEV("rl",romstrategy, romopen, nullsys, noioctl),
65 	SADEV("de",nostrategy, deopen, declose, noioctl), /* DEUNA */
66 	SADEV("ni",nostrategy, niopen, nullsys, noioctl), /* DEBNA */
67 };
68 
69 int	cnvtab[] = {
70 	BDEV_HP,
71 	BDEV_QE,
72 	BDEV_CNSL,
73 	BDEV_UDA,
74 	BDEV_TK,
75 	-1,
76 	BDEV_RD,
77 	BDEV_SD,
78 	BDEV_ST,
79 	BDEV_LE,
80 	BDEV_ZE,
81 	BDEV_RL,
82 	BDEV_DE,
83 	BDEV_NI,
84 };
85 
86 int     ndevs = (sizeof(devsw)/sizeof(devsw[0]));
87 
88 struct fs_ops file_system[] = {
89 	{ ufs_open, ufs_close, ufs_read, ufs_write, ufs_seek, ufs_stat },
90 	{ nfs_open, nfs_close, nfs_read, nfs_write, nfs_seek, nfs_stat },
91 	{ cd9660_open, cd9660_close, cd9660_read, cd9660_write,
92 	    cd9660_seek, cd9660_stat },
93 	{ ustarfs_open, ustarfs_close, ustarfs_read, ustarfs_write,
94 	    ustarfs_seek, ustarfs_stat },
95 };
96 
97 int nfsys = (sizeof(file_system) / sizeof(struct fs_ops));
98 
99 int
100 nostrategy(void *f, int func, daddr_t dblk,
101     size_t size, void *buf, size_t *rsize)
102 {
103 	*rsize = size;
104 	bzero(buf, size);
105 	return 0;
106 }
107