+/* conf.c 1.1 86/01/12 */
+/* conf.c 6.1 83/07/29 */
+
+#include "../machine/pte.h"
+
+#include "param.h"
+#include "inode.h"
+#include "fs.h"
+
+
+#include "saio.h"
+
+devread(io)
+ register struct iob *io;
+{
+ int cc;
+
+ io->i_flgs |= F_RDDATA;
+ io->i_error = 0;
+ cc = (*devsw[io->i_ino.i_dev].dv_strategy)(io, READ);
+ io->i_flgs &= ~F_TYPEMASK;
+ return (cc);
+}
+
+devwrite(io)
+ register struct iob *io;
+{
+ int cc;
+
+ io->i_flgs |= F_WRDATA;
+ io->i_error = 0;
+ cc = (*devsw[io->i_ino.i_dev].dv_strategy)(io, WRITE);
+ io->i_flgs &= ~F_TYPEMASK;
+ return (cc);
+}
+
+devopen(io)
+ register struct iob *io;
+{
+
+ (*devsw[io->i_ino.i_dev].dv_open)(io);
+}
+
+devclose(io)
+ register struct iob *io;
+{
+
+ (*devsw[io->i_ino.i_dev].dv_close)(io);
+}
+
+
+/*ARGSUSED*/
+nullsys(io)
+ struct iob *io;
+{
+
+ ;
+}
+
+
+int nullsys();
+
+
+#define wchstrategy nullsys
+#define wchopen nullsys
+#define ctstrategy nullsys
+#define ctopen nullsys
+#define ctclose nullsys
+
+int udstrategy(), udopen();
+int vdstrategy(), vdopen();
+int cystrategy(), cyopen(), cyclose();
+
+struct devsw devsw[] = {
+ "fsd", vdstrategy, vdopen, nullsys,
+ "smd", vdstrategy, vdopen, nullsys,
+ "xfd", vdstrategy, vdopen, nullsys,
+ "fuj", vdstrategy, vdopen, nullsys,
+ "xsd", vdstrategy, vdopen, nullsys,
+
+ "xmd", udstrategy, udopen, nullsys,
+ "flp", udstrategy, udopen, nullsys,
+ "cyp", cystrategy, cyopen, cyclose,
+ "wch", wchstrategy, wchopen, nullsys,
+ "ctp", ctstrategy, ctopen, ctclose,
+ 0, 0, 0, 0
+};
+