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.386.c% 9 * 10 * @(#)conf.c 5.2 (Berkeley) 06/23/90 11 */ 12 13 /* conf.c 1.9 87/03/28 */ 14 15 #include "param.h" 16 #include "systm.h" 17 #include "buf.h" 18 #include "ioctl.h" 19 #include "tty.h" 20 #include "conf.h" 21 22 int nulldev(); 23 int nodev(); 24 25 #include "wd.h" 26 #if NWD > 0 27 int wdopen(),wdclose(),wdstrategy(),wdread(),wdwrite(),wdioctl(); 28 int wddump(),wdsize(); 29 #else 30 #define wdopen nodev 31 #define wdclose nodev 32 #define wdstrategy nodev 33 #define wdread nodev 34 #define wdwrite nodev 35 #define wdioctl nodev 36 #define wddump nodev 37 #define wdsize 0 38 #endif 39 40 int fdstrategy(),fdopen(),fdclose(),fdread(),fdwrite(); 41 42 43 int swstrategy(),swread(),swwrite(); 44 45 struct bdevsw bdevsw[] = 46 { 47 { wdopen, wdclose, wdstrategy, wdioctl, /*0*/ 48 wddump, wdsize, 0 }, 49 { nodev, nodev, swstrategy, nodev, /*1*/ 50 nodev, nodev, 0 }, 51 { fdopen, fdclose, fdstrategy, nulldev, /*2*/ 52 nodev, nodev, 0 }, 53 }; 54 int nblkdev = sizeof (bdevsw) / sizeof (bdevsw[0]); 55 56 int cnopen(),cnclose(),cnread(),cnwrite(),cnioctl(); 57 extern struct tty cons; 58 59 int syopen(),syread(),sywrite(),syioctl(),syselect(); 60 61 int mmread(),mmwrite(); 62 #define mmselect seltrue 63 64 #include "pty.h" 65 #if NPTY > 0 66 int ptsopen(),ptsclose(),ptsread(),ptswrite(),ptsstop(); 67 int ptcopen(),ptcclose(),ptcread(),ptcwrite(),ptcselect(); 68 int ptyioctl(); 69 struct tty pt_tty[]; 70 #else 71 #define ptsopen nodev 72 #define ptsclose nodev 73 #define ptsread nodev 74 #define ptswrite nodev 75 #define ptcopen nodev 76 #define ptcclose nodev 77 #define ptcread nodev 78 #define ptcwrite nodev 79 #define ptyioctl nodev 80 #define pt_tty 0 81 #define ptcselect nodev 82 #define ptsstop nulldev 83 #endif 84 85 int logopen(),logclose(),logread(),logioctl(),logselect(); 86 87 int ttselect(), seltrue(); 88 89 int comopen(),comclose(),comread(),comwrite(),comioctl(); 90 int comreset(); 91 extern struct tty com_tty[]; 92 93 struct cdevsw cdevsw[] = 94 { 95 cnopen, cnclose, cnread, cnwrite, /*0*/ 96 cnioctl, nulldev, nulldev, &cons, 97 ttselect, nodev, 98 syopen, nulldev, syread, sywrite, /*1*/ 99 syioctl, nulldev, nulldev, 0, 100 syselect, nodev, 101 nulldev, nulldev, mmread, mmwrite, /*2*/ 102 nodev, nulldev, nulldev, 0, 103 mmselect, nodev, 104 wdopen, wdclose, wdread, wdwrite, /*3*/ 105 wdioctl, nodev, nulldev, 0, 106 seltrue, nodev, 107 nulldev, nulldev, swread, swwrite, /*4*/ 108 nodev, nodev, nulldev, 0, 109 nodev, nodev, 110 ptsopen, ptsclose, ptsread, ptswrite, /*5*/ 111 ptyioctl, ptsstop, nodev, pt_tty, 112 ttselect, nodev, 113 ptcopen, ptcclose, ptcread, ptcwrite, /*6*/ 114 ptyioctl, nulldev, nodev, pt_tty, 115 ptcselect, nodev, 116 logopen, logclose, logread, nodev, /*7*/ 117 logioctl, nodev, nulldev, 0, 118 logselect, nodev, 119 comopen, comclose, comread, comwrite, /*8*/ 120 comioctl, nodev, comreset, com_tty, 121 ttselect, nodev, 122 fdopen, nulldev, fdread, fdwrite, /*9*/ 123 nulldev, nodev, nulldev, 0, 124 seltrue, nodev, 125 }; 126 int nchrdev = sizeof (cdevsw) / sizeof (cdevsw[0]); 127 128 int mem_no = 2; /* major device number of memory special file */ 129 130 /* 131 * Swapdev is a fake device implemented 132 * in sw.c used only internally to get to swstrategy. 133 * It cannot be provided to the users, because the 134 * swstrategy routine munches the b_dev and b_blkno entries 135 * before calling the appropriate driver. This would horribly 136 * confuse, e.g. the hashing routines. Instead, /dev/drum is 137 * provided as a character (raw) device. 138 */ 139 dev_t swapdev = makedev(1, 0); 140