This source file includes following definitions.
- wscnprobe
- wscninit
- wscnputc
- wscngetc
- wscnpollc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 #include <sys/param.h>
30 #include <sys/systm.h>
31 #include <sys/kernel.h>
32 #include <sys/conf.h>
33 #include <sys/device.h>
34 #include <sys/extent.h>
35
36 #include <machine/bus.h>
37
38 #include <dev/cons.h>
39
40 #include "vga.h"
41 #include "ega.h"
42 #include "pcdisplay.h"
43 #if (NVGA > 0) || (NEGA > 0) || (NPCDISPLAY > 0)
44 #include <dev/ic/mc6845reg.h>
45 #include <dev/ic/pcdisplayvar.h>
46 #if (NVGA > 0)
47 #include <dev/ic/vgareg.h>
48 #include <dev/ic/vgavar.h>
49 #endif
50 #if (NEGA > 0)
51 #include <dev/isa/egavar.h>
52 #endif
53 #if (NPCDISPLAY > 0)
54 #include <dev/isa/pcdisplayvar.h>
55 #endif
56 #endif
57
58 #include "wsdisplay.h"
59 #if NWSDISPLAY > 0
60 #include <dev/wscons/wsdisplayvar.h>
61 #endif
62
63 #include "pckbc.h"
64 #if (NPCKBC > 0)
65 #include <dev/isa/isareg.h>
66 #include <dev/ic/i8042reg.h>
67 #include <dev/ic/pckbcvar.h>
68 #endif
69 #include "pckbd.h"
70 #include "ukbd.h"
71 #if (NPCKBD > 0) || (NUKBD > 0)
72 #include <dev/wscons/wskbdvar.h>
73 #endif
74 #if (NUKBD > 0)
75 #include <dev/usb/ukbdvar.h>
76 #endif
77
78 cons_decl(ws);
79
80 void
81 wscnprobe(struct consdev *cp)
82 {
83 int maj;
84
85
86 for (maj = 0; maj < nchrdev; maj++) {
87 if (cdevsw[maj].d_open == wsdisplayopen)
88 break;
89 }
90
91 if (maj == nchrdev) {
92
93 panic("wsdisplay is not in cdevsw[]");
94 }
95
96 cp->cn_dev = makedev(maj, 0);
97 cp->cn_pri = CN_INTERNAL;
98 }
99
100 void
101 wscninit(struct consdev *cp)
102 {
103 static int initted;
104
105 if (initted)
106 return;
107
108 initted = 1;
109
110 #if (NVGA > 0) || (NEGA > 0) || (NPCDISPLAY > 0)
111 #if (NVGA > 0)
112 if (!vga_cnattach(I386_BUS_SPACE_IO, I386_BUS_SPACE_MEM, -1, 1))
113 goto dokbd;
114 #endif
115 #if (NEGA > 0)
116 if (!ega_cnattach(I386_BUS_SPACE_IO, I386_BUS_SPACE_MEM))
117 goto dokbd;
118 #endif
119 #if (NPCDISPLAY > 0)
120 if (!pcdisplay_cnattach(I386_BUS_SPACE_IO, I386_BUS_SPACE_MEM))
121 goto dokbd;
122 #endif
123 if (0) goto dokbd;
124 dokbd:
125 #if (NPCKBC > 0)
126 if (!pckbc_cnattach(I386_BUS_SPACE_IO, IO_KBD, KBCMDP, PCKBC_KBD_SLOT))
127 return;
128 #endif
129 #if (NUKBD > 0)
130 if (!ukbd_cnattach())
131 return;
132 #endif
133 #endif
134 return;
135 }
136
137 void
138 wscnputc(dev_t dev, int i)
139 {
140 wsdisplay_cnputc(dev, i);
141 }
142
143 int
144 wscngetc(dev_t dev)
145 {
146 return (wskbd_cngetc(dev));
147 }
148
149 void
150 wscnpollc(dev_t dev, int on)
151 {
152 wskbd_cnpollc(dev, on);
153 }