xref: /original-bsd/sys/i386/stand/conf.c (revision ba762ddc)
1 /*-
2  * Copyright (c) 1990 The Regents of the University of California.
3  * All rights reserved.
4  *
5  * This code is derived from software contributed to Berkeley by
6  * William Jolitz.
7  *
8  * %sccs.include.redist.c%
9  *
10  *	@(#)conf.c	7.2 (Berkeley) 04/28/91
11  */
12 
13 #include "param.h"
14 
15 #include "saio.h"
16 #ifdef BOOT
17 extern exception;
18 extern int debugflag;
19 #endif
20 
21 devread(io)
22 	register struct iob *io;
23 {
24 	int cc;
25 	char c;
26 
27 	io->i_flgs |= F_RDDATA;
28 	io->i_error = 0;
29 	cc = (*devsw[io->i_dev].dv_strategy)(io, READ);
30 	io->i_flgs &= ~F_TYPEMASK;
31 
32 #ifdef BOOT
33 if(/*io->i_error || */(c=scankbd()))
34 	_longjmp(&exception,1);
35 #endif
36 	return (cc);
37 }
38 
39 devwrite(io)
40 	register struct iob *io;
41 {
42 	int cc;
43 	char c;
44 
45 	io->i_flgs |= F_WRDATA;
46 	io->i_error = 0;
47 	cc = (*devsw[io->i_dev].dv_strategy)(io, WRITE);
48 	io->i_flgs &= ~F_TYPEMASK;
49 #ifdef BOOT
50 if(/* io->i_error || */ (c=scankbd()))
51 	_longjmp(&exception,1);
52 #endif
53 	return (cc);
54 }
55 
56 devopen(io)
57 	register struct iob *io;
58 {
59 
60 	(*devsw[io->i_dev].dv_open)(io);
61 }
62 
63 devclose(io)
64 	register struct iob *io;
65 {
66 
67 	(*devsw[io->i_dev].dv_close)(io);
68 }
69 
70 devioctl(io, cmd, arg)
71 	register struct iob *io;
72 	int cmd;
73 	caddr_t arg;
74 {
75 
76 	return ((*devsw[io->i_dev].dv_ioctl)(io, cmd, arg));
77 }
78 
79 /*ARGSUSED*/
80 nullsys(io)
81 	struct iob *io;
82 {
83 
84 	;
85 }
86 
87 /*ARGSUSED*/
88 nullioctl(io, cmd, arg)
89 	struct iob *io;
90 	int cmd;
91 	caddr_t arg;
92 {
93 
94 	return (ECMD);
95 }
96 
97 int	nullsys(), nullioctl();
98 int	wdstrategy(), wdopen()/*, wdioctl()*/;
99 int	fdstrategy(), fdopen()/*, fdioctl()*/;
100 
101 struct devsw devsw[] = {
102 	/*{ "xx",	xxstrategy,	xxopen,		nullsys, nullioctl },*/
103 	{ "wd",	wdstrategy,	wdopen,		nullsys,/*wdioctl*/ nullioctl },
104 	{ "", 0, 0, 0, 0 }, /* swapdev place holder */
105 	{ "fd",	fdstrategy,	fdopen,		nullsys,/*fdioctl*/ nullioctl },
106 	{ 0, 0, 0, 0, 0 },
107 };
108 int ndevs = 3 ;
109